Wednesday, February 18, 2015

GeneTorrent - Building release 3.8.7 on Debian Wheezy stable+backports system

BACKGROUND

The University of Californa at Santa Cruz Genomics Institute, established in 2014, connects many efforts, including the UC Santa Cruz Cancer Genomics Hub, launched in 2012:
The Cancer Genomics Hub (CGHub) is a central repository for the genomics information for three different National Cancer Institute (NCI) programs, including The Cancer Genomics Atlas (TCGA). In addition to providing a repository, CGHub supports the establishment of standards and application programming interfaces (APIs), and provides support to end users.
An aside: Dawn says she thinks of the 1990's-era television series MST3K when she hears the name "Genomics Institute," because the name sounds like Gizmonic Institute, the fictitious cover organization of the show's antagonists. They send bad movies to the show's protagonist, Joel Robinson, as part of a psychological experiment. Note: Of course, UC Santa Cruz Genomics Institute staff do not compare, to my knowledge, to the antagonists in MST3K! : o )

CGHub staff provide "binary and source distributions of the GeneTorrent client software for downloading sequence data from CGHub's repository. The distribution contains two main programs: gtdownload and cgquery." Note: CGHub staff have a few other packages available at their bitbucket repository.

From my very limited, outsider experience with the project, it seems UCSC CGHub staff contracted with a private vendor, Annai Systems, Inc., to obtain the GeneTorrent client software and the other architectural components needed to store and transfer the terabytes (possibly petabytes, now) of cancer genome data.

From a 2012 press release, it appears UCSC CGHub licensed technology from Annai Systems Inc. to support the acquisition of a "new 5-petabyte-capacity data repository." The press release indicates the UCSC CGHub deployment represented the first release of the Annai Systems, Inc. architecture. Dr. David Haussler, Professor of Biomolecular Engineering at UCSC, who leads the CGHub project, stated, "Annai has been an exceptional partner in the development of CGHub." This seems to imply UCSC CGHub staff paid Annai Systems staff to create and maintain the system, at least initially, in combination with some on-campus dedicated operational support. From commit logs, it appears CGHub staff maintain GeneTorrent. Less likely, to me, they may only apply patches from the vendor. (?)

For what it's worth, Annai Systems staff seem to have sub-contracted some or most of the development work, at least on GeneTorrent, to private vendor Cardinal Peak (for example, see GeneTorrent repository file headers ./README, which states, "Created under contract by Cardinal Peak, LLC.  www.cardinalpeak.com"--the header reads "Copyright (c) 2011-2012, Annai Systems, Inc.")

Annai Systems, in a 2013 whitepaper, describes GeneTorrent as follows:
"Whole genome sequence data files range from several hundred gigabytes to over one terabyte in size. GeneTorrent enables accelerated transfers of terabyte-scale data. It employs a proprietary variant of the popular BitTorrent algorithm to securely transfer files at speeds limited only by the base network bandwidth. 
Technical Specifications 
GeneTorrent’s key functionality is as follows:
  • High-fidelity parallel file transfer at up to multi-Gbits/sec (speeds as high as 200 Mbps are routinely achieved) 
  • Highly resilient to in-network and computing failures with automatic recovery
  • Highly secure 256-bit encrypted file transfer"
Whitepaper notwithstanding, it seems to me the GeneTorrent client's ability to operate within the larger ecosystem of the Annai Systems architecture represents the main selling point of the client. It does seem they have extended libtorrent in some minor ways, but I have not had time to investigate fully.

GENETORRENT INTERNALS

The source code reveals GeneTorrent version 3.8.7 relies primarily on release 0.16 of package libtorrent, which seems to represent the version extant in March 2012, during initial development:
"libtorrent is a C++ library that aims to be a good alternative to all the other bittorrent implementations around. It is a library and not a full featured client, although it comes with a working example client."
Currently at release 1.0.3, libtorrent originates from Swedish programmer Arvid Norberg, which also explains the origin of the word rasterbar, which I noticed frequently while building GeneTorrent. Rasterbar represents the name of a Swedish company, Rasterbar Software, which was founded in Umeå, Sweden. This further explains the shout-out of libtorrent developers to Umeå University for "providing development and test hardware" for the libtorrent project.

The source code also relies on project xqilla (which requires xerces-c) for XML parsing, OpenSSL for encryption, libcurl for file transfer, and boost (used for building libtorrent and GeneTorrent).

BUILDING GENETORRENT

First, install prerequisite packages:
  • autoconf
  • devscripts
  • gettext
  • libboost-all-dev
  • sudo apt-get install libp11-kit0/wheezy (note: "/wheezy" overrides installing from backports repository, to prepare the way to install libcurl4-openssl-dev)
  • libcurl4-openssl-dev (note: override backports, as above, first)
  • libtool
  • libxerces-c-dev
  • libxqilla-dev
  • lsb
  • python-openssl
  • xqilla
Second, download the source:

Go here, then select link "Download repository" (currently; all versions)

Optionally (if not the first go-round): rm -rf cghub-genetorrent-476d7bd44985
unzip cghub-genetorrent-476d7bd44985.zip
cd cghub-genetorrent-476d7bd44985

Third, customize for Debian Wheezy (7.8), as the source code currently seems to only support Debian Squeeze (6.0.6), out-of-the-box:

# Make Wheezy dpkg the same as squeeze...
ln -s squeeze dpkg/wheezy

# grab all ./dpkg/Makefile.am lines with squeeze, modify them to wheezy, fix the spacing of backslashes,
# then insert the modified lines back into ./dpkg/Makefile.am
export _cghub_file=./dpkg/Makefile.am && \
export _cghub_text=$(grep squeeze ./dpkg/Makefile.am | sed 's/squeeze/wheezy/g;s/\\/ \\/g') && \
awk '/squeeze/ && !done { print ENVIRON["_cghub_text"] ; done=1;}; 1;' $_cghub_file > ${_cghub_file}.new && \
mv ${_cghub_file}.new $_cghub_file && \
unset _cghub_text _cghub_file

# NOTE: Manually patch ./Makefile.am as follows ... too complicated to script, for now
# line numbers precede the actual line contents
# Note: the name--in this case, wheezy--must match the results of command "lsb_release -cs"
128 .PHONY: deb deb-builder deb-trusty deb-saucy deb-raring deb-precise deb-quantal deb-oneiric deb-lucid deb-squeeze deb-wheezy
161 
162 # Debian wheezy (7.8)
163 deb-wheezy:
164   $(MAKE) DEB_DISTRO_TAG=debian${DEB_PACKAGE_VER}-${DEB_RELEASE} deb-builder

# Rebuild Makefile.in ....
./autoregen.sh

Fourth, start building dependencies:

# Build dependencies
deps/boost/buildGeneTorrentBoost.sh && \
deps/openssl/buildGeneTorrentOpenSSL.sh && \
deps/xerces-c/buildGeneTorrentXerces-C.sh && \
deps/xqilla/buildGeneTorrentXQilla.sh

Fifth, fix what seems like a non-git bug in the configure script, which causes configure to not generate file src/gt_scm_rev.h:

# Fix missing header file src/gt_scm_rev.h (?)
# The GeneTorrent 3.8.5 release's NEWS file, dated March, 2014, states:
# "Generate gt_scm_rev.h during configure instead of make. That way it is included in the source
# distribution, make clean doesn't remove it, make install doesn't skip its creation."
# However, configure seems to fail and not create it (?) This needs verification.
# First, touch .git file, per scm-rev-update, which requires it to proceed to generating the file
# Second, re-run scm-rev-update to produce the file
# Possibly, this validation step prevents the creation of the file in non-git source builds (?), causing
# the error (?)
touch ./scripts/.git
./scripts/scm-rev-update

Sixth, configure with dependencies (optionally, with debug/verbose):

# Configure
# Note: To enable verbose logging, configure with --enable-logging=verbose
# Note: To create a debug build, configure with --enable-debug --enable-logging=verbose
./configure --with-boost=$PWD/deps/boost --with-openssl=$PWD/deps/openssl --with-xerces=$PWD/deps/xerces-c --with-xqilla=$PWD/deps/xqilla

Seventh, build the Debian packages (optionally, make install?):

# Build
# Note: make deb seems to represent a wrapper around make dist
make deb

Done, hopefully, without errors.

TO-DO

Try running gtdownload and cgquery and gtupload and cgsubmit programs.

NOTES - LIBCURL4-OPENSSL-DEV INSTALL ERROR

I got to a certain point and saw this configure error:
checking curl/curl.h usability... no
checking curl/curl.h presence... no
checking for curl/curl.h... no
configure: error: curl headers required but not found
So, who provides curl.h?
File Packages
/usr/include/curl/curl.h libcurl4-gnutls-dev, libcurl4-nss-dev, libcurl4-openssl-dev
/usr/include/discover/curl.h libdiscover-dev
/usr/include/lua5.1/lua-curl.h lua-curl-dev
/usr/include/rheolef/curl.h librheolef-dev [not armel, armhf]
/usr/include/rheolef/s_curl.h librheolef-dev [not armel, armhf]Attempts to install libcurl4-gnutls-dev, libcurl4-nss-dev, or libcurl4-openssl-dev results in errors:
Attempts to install libcurl4-openssl-dev:
The following packages have unmet dependencies:
libcurl4-openssl-dev : Depends: librtmp-dev but it is not going to be installed
Conflicts: libcurl-dev
Conflicts: libcurl4-gnutls-dev but 7.26.0-1+wheezy12 is to be installed
Conflicts: libcurl4-nss-dev but 7.26.0-1+wheezy12 is to be installed
E: Unable to correct problems, you have held broken packages.
Seems like they all depend on package librtmp-dev. Drilling down into this:
sudo apt-get install librtmp-dev
The following packages have unmet dependencies:
librtmp-dev : Depends: libgnutls-dev but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
Uh-oh...going further...
sudo apt-get install libgnutls-dev
The following packages have unmet dependencies:
libgnutls-dev : Depends: libp11-kit-dev (>= 0.4) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
Erm...almost there (?)
sudo apt-get install libp11-kit-dev
The following packages have unmet dependencies:
libp11-kit-dev : Depends: libp11-kit0 (= 0.12-3) but 0.20.7-1~bpo70+1 is to be installed
E: Unable to correct problems, you have held broken packages.
So...it has come to this. libp11-kit-dev depends on libp11-kit0. What? : o \ Let's dig a bit more:
sudo apt-cache policy libp11-kit0
libp11-kit0:
Installed: 0.20.7-1~bpo70+1
Candidate: 0.20.7-1~bpo70+1
Version table:
*** 0.20.7-1~bpo70+1 0
100 http://ftp.us.debian.org/debian/ wheezy-backports/main amd64 Packages
100 /var/lib/dpkg/status
0.12-3 0
500 http://ftp.us.debian.org/debian/ wheezy/main amd64 Packages
Wheezy backports provides a later version...ah! So, learning something new, I have to tell apt-get to use wheezy target instead of backports:
sudo apt-get install libp11-kit0/wheezy
This works! Now "sudo apt-get install libcurl4-openssl-dev" succeeds. Ta-da. : o )

NOTES - GT_SCM_REV.H

Running make fails.
libtool: compile: g++ -DHAVE_CONFIG_H -I. -I/usr/include -I/usr/include -I/usr/include/xercesc -I/usr/include -DGT_RESOURCEDIR=\"/usr/local/share/GeneTorrent\" -DGT_BUILD_NUMBER=\"undefined\" -DGT_BUILD_TYPE=\"undefined\" -DGT_BUILD_TARGET=\"undefined\" -DTORRENT_CALLBACK_LOGGER -DTORRENT_MINIMAL_LOGGING -DTORRENT_USE_OPENSSL -DTORRENT_DISABLE_GEO_IP -DTORRENT_DISABLE_DHT -DBOOST_ASIO_HASH_MAP_BUCKETS=1021 -DBOOST_EXCEPTION_DISABLE -DBOOST_ASIO_ENABLE_CANCELIO -DTORRENT_LINKING_SHARED -I/usr/local/include/GeneTorrent -I/usr/local/include/GeneTorrent/libtorrent -I../libtorrent/include -g -O2 -Wall -MT libgenetorrent_la-gtBaseOpts.lo -MD -MP -MF .deps/libgenetorrent_la-gtBaseOpts.Tpo -c gtBaseOpts.cpp -fPIC -DPIC -o .libs/libgenetorrent_la-gtBaseOpts.o
gtBaseOpts.cpp:41:24: fatal error: gt_scm_rev.h: No such file or directorycompilation terminated.
make[2]: *** [libgenetorrent_la-gtBaseOpts.lo] Error 1
It can't find header file gt_scm_rev.h.

Touch .git file in top directory...expected by ./scripts/scm-rev-update, line 11: 
11 if [ -d .git -o -f .git ] # in git >= 1.8, .git is a file if the working copy is a submodule
This should probably handle source code builds, in addition to git source code builds.

QUESTIONS
  • Do CGHub maintainers eventually foresee providing 64-bit Microsoft Windows binaries?
  • ./dpkg/squeeze/control lists Maintainer: Matt Lupfer <mlupfer@cardinalpeak.com>, but he no longer works there
  • make deb triggers re-downloading of boost package, even after running deps/boost/buildGeneTorrentBoost.sh, which downloads the tarball (?)
  • Other (?)
RANDOM OTHER ERRORS
A bunch of random errors & warnings from the build process (?) Not sure whether worthwhile to review, or not....
10287 ../configure: line 20168: #: command not found
10348 ./config.status: line 2384: scripts/scm-rev-update: No such file or directory
10516 sed: can't read include/libtorrent/version.hpp: No such file or directory
10713 ../../../libtorrent/src/rss.cpp:421:3: warning: invalid access to non-static data member 'libtorrent::feed::m_title'  of NULL object [-Winvalid-offsetof      ]
10714 ../../../libtorrent/src/rss.cpp:421:3: warning: (perhaps the 'offsetof' macro was used incorrectly) [-Winvalid-offsetof]
10715 ../../../libtorrent/src/rss.cpp:422:3: warning: invalid access to non-static data member 'libtorrent::feed::m_description'  of NULL object [-Winvalid-of      fsetof]
10716 ../../../libtorrent/src/rss.cpp:422:3: warning: (perhaps the 'offsetof' macro was used incorrectly) [-Winvalid-offsetof]
10717 ../../../libtorrent/src/rss.cpp:423:3: warning: invalid access to non-static data member 'libtorrent::feed::m_last_attempt'  of NULL object [-Winvalid-o      ffsetof]
10718 ../../../libtorrent/src/rss.cpp:423:3: warning: (perhaps the 'offsetof' macro was used incorrectly) [-Winvalid-offsetof]
10719 ../../../libtorrent/src/rss.cpp:424:3: warning: invalid access to non-static data member 'libtorrent::feed::m_last_update'  of NULL object [-Winvalid-of      fsetof]
10720 ../../../libtorrent/src/rss.cpp:424:3: warning: (perhaps the 'offsetof' macro was used incorrectly) [-Winvalid-offsetof]
10725 ../../../libtorrent/src/session_impl.cpp:519:3: warning: invalid access to non-static data member 'libtorrent::aux::session_impl::m_settings'  of NULL o      bject [-Winvalid-offsetof]
10726 ../../../libtorrent/src/session_impl.cpp:519:3: warning: (perhaps the 'offsetof' macro was used incorrectly) [-Winvalid-offsetof]
10727 ../../../libtorrent/src/session_impl.cpp:523:3: warning: invalid access to non-static data member 'libtorrent::aux::session_impl::m_proxy'  of NULL obje      ct [-Winvalid-offsetof]
10728 ../../../libtorrent/src/session_impl.cpp:523:3: warning: (perhaps the 'offsetof' macro was used incorrectly) [-Winvalid-offsetof]
10729 ../../../libtorrent/src/session_impl.cpp:528:3: warning: invalid access to non-static data member 'libtorrent::aux::session_impl::m_pe_settings'  of NUL      L object [-Winvalid-offsetof]
10730 ../../../libtorrent/src/session_impl.cpp:528:3: warning: (perhaps the 'offsetof' macro was used incorrectly) [-Winvalid-offsetof]
10751 ../../../libtorrent/src/torrent.cpp: In constructor 'libtorrent::torrent::torrent(libtorrent::aux::session_impl&, const endpoint&, int, int, const libto      rrent::add_torrent_params&, const sha1_hash&)':
10752 ../../../libtorrent/src/torrent.cpp:433:60: warning: large integer implicitly truncated to unsigned type [-Woverflow]
10753 ../../../libtorrent/src/torrent.cpp:433:60: warning: large integer implicitly truncated to unsigned type [-Woverflow]
10814 In file included from ../../src/gtBase.cpp:75:0:
10815 ../../src/gtBase.h: In constructor 'gtBase::gtBase(gtBaseOpts&, gtBase::opMode)':
10816 ../../src/gtBase.h:245:19: warning: 'gtBase::_bindIP' will be initialized after [-Wreorder]
10817 ../../src/gtBase.h:242:19: warning:   'std::string gtBase::_resourceDir' [-Wreorder]
10818 ../../src/gtBase.cpp:92:1: warning:   when initialized here [-Wreorder]
10825 ../../src/gtDownload.cpp: In member function 'void gtDownload::extractURIsFromTSV(std::string, vectOfStr&)':
10826 ../../src/gtDownload.cpp:528:38: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
10827 ../../src/gtDownload.cpp: In member function 'void gtDownload::performSingleTorrentDownload(std::string, int64_t&, int&)':
10828 ../../src/gtDownload.cpp:834:21: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
10829 ../../src/gtDownload.cpp:836:21: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
10830 ../../src/gtDownload.cpp:839:18: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
10866 /usr/bin/ld: warning: libboost_system.so.1.48.0, needed by /home/k/Documents/Code/cghub-genetorrent-476d7bd44985/GeneTorrent-3.8.7/deb-build/libtorrent/
10870 /usr/bin/ld: warning: libboost_system.so.1.48.0, needed by /home/k/Documents/Code/cghub-genetorrent-476d7bd44985/GeneTorrent-3.8.7/deb-build/libtorrent/
10876 /usr/bin/ld: warning: libboost_system.so.1.48.0, needed by /home/k/Documents/Code/cghub-genetorrent-476d7bd44985/GeneTorrent-3.8.7/deb-build/libtorrent/
1
10944 libtool: install: warning: remember to run `libtool --finish /usr/lib/GeneTorrent'

10990 libtool: install: warning: relinking `libgenetorrent.la'
10997 libtool: install: warning: remember to run `libtool --finish /usr/lib'
11000 libtool: install: warning: `/home/k/Documents/Code/cghub-genetorrent-476d7bd44985/GeneTorrent-3.8.7/deb-build/libtorrent/src/.libs/libtorrent-rasterbar.
11001 libtool: install: warning: `libgenetorrent.la' has not been installed in `/usr/lib'
11002 libtool: install: /usr/bin/install -c .libs/gtupload /home/k/Documents/Code/cghub-genetorrent-476d7bd44985/GeneTorrent-3.8.7/debian/tmp/usr/bin/gtupload
11003 libtool: install: warning: `/home/k/Documents/Code/cghub-genetorrent-476d7bd44985/GeneTorrent-3.8.7/deb-build/libtorrent/src/.libs/libtorrent-rasterbar.
11004 libtool: install: warning: `libgenetorrent.la' has not been installed in `/usr/lib'
11005 libtool: install: /usr/bin/install -c .libs/gtdownload /home/k/Documents/Code/cghub-genetorrent-476d7bd44985/GeneTorrent-3.8.7/debian/tmp/usr/bin/gtdown
11006 libtool: install: warning: `/home/k/Documents/Code/cghub-genetorrent-476d7bd44985/GeneTorrent-3.8.7/deb-build/libtorrent/src/.libs/libtorrent-rasterbar.
11007 libtool: install: warning: `libgenetorrent.la' has not been installed in `/usr/lib'
11111 dh_pysupport: This program is deprecated, you should use dh_python2 instead. Migration guide: http://deb.li/dhs2p
11137 dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/genetorrent-common/usr/lib/GeneTorrent/libboost_regex.so.1.48.0 was not link
11138 dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/genetorrent-upload/usr/bin/gtupload was not linked against libboost_regex.so
11139 dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/genetorrent-upload/usr/bin/gtupload was not linked against libboost_filesyst
11140 dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/genetorrent-upload/usr/bin/gtupload was not linked against libssl.so.1.0.0 (
11141 dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/genetorrent-download/usr/bin/gtdownload was not linked against libboost_rege
11142 dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/genetorrent-download/usr/bin/gtdownload was not linked against libxerces-c-3
11143 dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/genetorrent-download/usr/bin/gtdownload was not linked against libtorrent-ra
11144 dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/genetorrent-download/usr/bin/gtdownload was not linked against libboost_file
11145 dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/genetorrent-download/usr/bin/gtdownload was not linked against libxqilla.so.
11146 dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/genetorrent-download/usr/bin/gtdownload was not linked against libcrypto.so.
11147 dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/genetorrent-download/usr/bin/gtdownload was not linked against libssl.so.1.0
11150 dpkg-gencontrol: warning: package genetorrent-upload: unused substitution variable ${python:Depends}
11164 Now running lintian...
11165 E: genetorrent-download: binary-or-shlib-defines-rpath usr/bin/gtdownload /usr/lib/GeneTorrent
11166 W: genetorrent-download: hardening-no-relro usr/bin/gtdownload
11167 W: genetorrent-download: hardening-no-fortify-functions usr/bin/gtdownload
11168 W: genetorrent-common: package-name-doesnt-match-sonames libgenetorrent0
11169 W: genetorrent-common: hardening-no-relro usr/lib/GeneTorrent/libboost_filesystem.so.1.48.0
11170 W: genetorrent-common: hardening-no-fortify-functions usr/lib/GeneTorrent/libboost_filesystem.so.1.48.0
11171 W: genetorrent-common: hardening-no-relro usr/lib/GeneTorrent/libboost_program_options.so.1.48.0
11172 W: genetorrent-common: hardening-no-fortify-functions usr/lib/GeneTorrent/libboost_program_options.so.1.48.0
11173 W: genetorrent-common: hardening-no-relro usr/lib/GeneTorrent/libboost_regex.so.1.48.0
11174 W: genetorrent-common: hardening-no-fortify-functions usr/lib/GeneTorrent/libboost_regex.so.1.48.0
11175 W: genetorrent-common: hardening-no-relro usr/lib/GeneTorrent/libboost_system.so.1.48.0
11176 W: genetorrent-common: hardening-no-relro usr/lib/GeneTorrent/libboost_thread.so.1.48.0
11177 W: genetorrent-common: hardening-no-relro usr/lib/GeneTorrent/libtorrent-rasterbar.so.6.0.0
11178 W: genetorrent-common: hardening-no-fortify-functions usr/lib/GeneTorrent/libtorrent-rasterbar.so.6.0.0
11179 W: genetorrent-common: hardening-no-relro usr/lib/libgenetorrent.so.0.0.0
11180 W: genetorrent-common: hardening-no-fortify-functions usr/lib/libgenetorrent.so.0.0.0
11181 W: genetorrent-common: extra-license-file usr/share/doc/GeneTorrent/LICENSE.gz
11182 W: genetorrent-common: binary-without-manpage usr/bin/cgquery
11183 W: genetorrent-common: binary-without-manpage usr/bin/gtocheck
11184 W: genetorrent-common: binary-without-manpage usr/bin/gtoinfo
11185 W: genetorrent-common: non-dev-pkg-with-shlib-symlink usr/lib/libgenetorrent.so.0.0.0 usr/lib/libgenetorrent.so
11186 E: genetorrent-dbg: extended-description-is-empty
11187 W: genetorrent-dbg: wrong-section-according-to-package-name genetorrent-dbg => debug
11188 W: genetorrent-dbg: empty-binary-package
11189 E: genetorrent-upload: binary-or-shlib-defines-rpath usr/bin/gtupload /usr/lib/GeneTorrent
11190 W: genetorrent-upload: hardening-no-relro usr/bin/gtupload
11191 W: genetorrent-upload: hardening-no-fortify-functions usr/bin/gtupload
11192 W: genetorrent-upload: binary-without-manpage usr/bin/cgsubmit
11193 E: genetorrent-upload: python-script-but-no-python-dep usr/bin/cgsubmit
11194 Finished running lintian.

Tuesday, February 17, 2015

Angry attacks

Two of my favorite people have started attacking each other:
Phil Yu, publisher of the internet news blog Angry Asian Man: "I Am Being Threatened With An Angry Asian Lawsuit"
Lela Lee, creator of Angry Little Girls: "Why the "Angry Asian Man" is pissing me off."
As you might expect, it's...angry?

Background: I most definitely fall into the casual observer category. I follow Phil's blog feed. I have admired Lela's Angry Little Girls creations for years. Watching this public confrontation interests me roughly as much as the regular updates to blog 11-foot-8, which documents the completely avoidable demolition of over-sized vehicles attempting to pass under a bridge.

In my opinion, Lela seems to have a kernel of truth on her side. It sounds reasonable, to me, to assume she attempted to communicate her preferences to Phil, on a few occasions...I am guessing, given the casual context, Phil heard her preferences but didn't "hear" Lela's irritation/fear and her larger need to protect herself and her family's source of income.

Thus the "whoa, where did that come from, I-thought-we-were-friends" tone of Phil's post. It explains the corresponding escalation of tension and fear in Lela's actions and communications.

Rather than having it play out in public, this seems exactly the type of situation a skilled mediator might resolve, to begin de-escalating things and more quickly ensure each party gets their needs met.

However, first things first: each side needs to clearly articulate their needs and hear the needs of the other side.

Phil's attempt to formalize his blog with a trademark seems to represent the proverbial straw which broke the camel's back, for Lela. Therefore, it seems reasonable to infer Lela may want to protect herself and her family financially. She has also seemed to mention a need to be heard, especially in a timely way...stated a different way, perhaps a need for predictability in her interactions with Phil on this matter. It also sounds like, maybe as a secondary issue (?), Lela wants more recognition and appreciation from Phil, for her efforts and contributions in building her business and the inspirations it provided to the work of many people, Phil included.

Phil's needs seem a bit less clear, to me, but that's probably only because it's late and I am struggling to stay awake. I think it would make a lot of sense to ask and see if he can articulate his needs. If I had to guess, I would say Phil probably needs more trust from Lela about his intentions in operating his site, and that he only wants to operate his site if he can do so without significantly impacting Lela's financial situation. He seems overwhelmed with the implications of this issue and other, unmentioned, issues, of late, so I am guessing he needs more flexibility and consideration and autonomy in deciding the future of his site. Phil also seems to want recognition and appreciation for the years of time and energy he has invested into his site.

Things to avoid when identifying needs: evaluation, blame, criticism, labels, moralistic judgments, diagnoses, strategies, demands.

Then, stay with that discussion, and, once each side hears the other's needs and can repeat them back, it's most likely only a short hop to finding a way or ways to meet those needs...it usually follows naturally and quickly.

We are all human beings; we all share the same needs. Given Phil and Lela share so, so, so much common ground, I'm confident a mediator might help them not only reach an agreeable solution that meets everyone's needs, but also exit with a renewed commitment to work toward the larger goals of the community at large.

Sunday, February 15, 2015

CoeLux

Beautiful.

CoeLux: Artificial Sunlight That’s Real Enough to Trick Your Camera and Brain
http://petapixel.com/2015/02/09/coelux-artificial-sunlight-thats-good-enough-fool-cameras-brain/

Slug life

University of California, Santa Cruz McHenry Library

Dehumidifier

Researching a dehumidifier for a small apartment bathroom with only overhead fan ventilation (that is, no exterior windows).

TERMS
  • Humidity = amount of water vapor in the air (measured in grams?)
  • RH = relative humidity, the percentage of water vapor present, relative to the maximum amount a given space can hold, at a given temperature
  • Hygrometer = only measures and displays humidity (via)
  • Humidistat = both measures and controls humidity...may or may not have a display (via)
  • Adsorption = water molecules stick to the surface
  • Absorption = water molecules enter material
  • Hygroscopic = (of a substance) tending to absorb moisture from the air
HUMIDITY BASICS
  • Fundamentals, including an image showing how relative humidity decreases when the amount of water vapor remains constant while increasing temperature
  • The recommended average relative humidity level is between 35% and 45% (via)
  • RH above 50% can promote bacteria growth (via)
  • Misconception: Amount of water vapor which can enter a space depends on temperature and not on contents of the space...for example, a vacuum can hold the same amount of water vapor as air, at a given temperature...it depends on pressure of water vapor at a given temperature...not that we have a vacuum in our apartment...
BATHROOM DEHUMIDIFIERS
  • 1 or 2 pint-per-day models not enough (via)
  • 25 pint-per-day models seem to represent the next step up...really over-kill, however (via)
  • Humidistat allows unit to remove water quickly, then stay off the remainder of the day (via)
  • Drains
    • Bathtub
    • Toilet
      • Tank
      • Under seat
    • Sink
    • Other (?)
TYPES
  • Desiccant, passive (for example, DampRid)
    • Calcium chloride flakes, anhydrous
  • Desiccant, powered (for example, EcoSeb DD122EA)
  • Refrigeration
DESICCANT VERSUS REFRIGERATION DEHUMIDIFIERS
  • At colder temperatures, desiccant works a bit better, as getting down to 40% RH requires chilling refrigerant coils to around 30 degrees Fahrenheit, which causes frost build-up, which means more costly anti-frost measures needed (via)
  • Climates in which temperatures typically fall below 65 degrees Fahrenheit may require the purchase of a dehumidifier designed for low temperature operation (via)
  • Refrigerant dehumidifiers work more efficiently at higher temperatures and higher relative humidity (via)
  • Desiccant dehumidifiers may consume more electricity
  • Reddit
    • "How to dehumidify your room without an expensive dehumidifier?" (via)
OTHER
  • Nothing on TheSweetHome
  • Top 10 Reviews seems to only review larger, 70 pint-per-day models
  • Ecoseb is made by Ecoair, which is based in London, UK (via)
  • Ecoseb Simple and Ecoseb Classic differ in the control mechanisms: manual and electronic, respectively
BRANDS
  • Keystone
  • DeLonghi
  • Soleus
  • Comfort-Aire
  • Friedrich
  • Danby
  • Haier
  • Frigidaire
  • Sunpentown
  • GE
  • EdgeStar
UPDATE:

We went with the EcoSeb DD122EA-SIMPLE Desiccant Dehumidifier, 15-Pint, White, 120V. I liked the idea that it does not need refrigerant. It has a lot of high reviews. Also, a simple plastic tube to the toilet tank means no maintenance. I actually preferred the simple version, since it has a simple turning dial and functionally seems about the same, save for the electronic shut-off timer. I do not care for the ionizer. For our use case, we put it in our bathroom, run it on high while taking a shower, and turn it back to normal after a bit. We leave it on eco-mode the rest of the day. The warm air blowing out the top feels pleasant and the barely noticeable smell does not bother us, at all. Runs reasonably quiet. Very pleased--would highly recommend, if your use case seems similar.

Saturday, February 14, 2015

An idea is not a design...

An idea is not a design
A design is not a prototype
A prototype is not a program
A program is not a product
A product is not a business
A business is not profits
Profits are not an exit
And an exit is not happiness.

Via: http://www.eugenkiss.com/b/the-story-behind-true-fool/

Thursday, February 12, 2015

Marshall Rosenberg has died

Heavy news. Imagine the face of (what I imagine as, at least) a beardless Abraham Lincoln, the philosophical non-violence and grounded-ness of Gandhi, and the consistent gentleness of Fred Rogers--you have Dr. Marshall Rosenberg.

I heard about it from Miki Kashtan, who passed along an e-mail from the CNVC announcement.

Feelings-wise, the news did not seem to affect me much...no personal grief or sorrow. My thoughts are with his children and other family members. On two occasions, several years apart, I attended free beginner NVC group sessions hosted by Dr. M.R. (mentally, I came up with "Dr. Mr." a while back, as a joke) in Oakland, California. One in 2007, I think, and one before that, perhaps in 2005 or 2006. So, I got a first-hand perspective of listening to him.

These last few months, driving long distances, I have revisited his audio recordings. I have more to say about that in another post. For now, I only want to say his focus on teaching empathy has helped show me ways to connect and understand those around me. His ambitions went beyond just active listening, encompassing social change, restorative justice, and more.

That's all, for now.

Sunday, February 08, 2015

Riding light

Alphonse Swinehart visually displays the journey of a photon from the Sun to Jupiter: http://vimeo.com/117815404

Music: Steve Reich "Music for 18 Musicians"

Saturday, February 07, 2015

Particulates

Renting, above an occasional cigar smoker.

GENERAL CONCEPTS

  • Air exchanges per hour
  • CADR (clean air delivery rate)
  • Particulate removal differs from removing odor/VOC/gases

SEALING
  • Cracks
    • Silicone bathroom caulk (via)
  • Electrical face plates
    • Pre-cut foam insulating plates (via)
    • Spray foam insulation (via)
  • Exhaust/fresh air supply
  • Vents
  • Smoke detectors (hard wired)
  • Light fixtures
  • Window frames
  • Doors
    • Door excluder (via)
ODOR REMOVAL
  • "...the odor and many of the carcinogenic gas-phase pollutants from tobacco smoke will remain in filtered air." (via)
  • Febreze Air Effects Air Refresher (via)
  • Renuzit Subtle Effects (via)
  • Plain white vinegar in open bowls (via)
  • Coffee beans (via)
  • Fan venting out your window (via)
  • Fan blowing into apartment to create positive air pressure (via)
  • Tobacco Flower Home Fragrance Oil (via)
  • Soapstone Oil Burners (via)
  • Few drops of vanilla essence on your light bulbs...or in bowl of water (via)
  • Ozium (via)
  • Zeolite (via)
  • Activated charcoal (via)

PARTICULATE REMOVAL

  • "Coway AP-1512HH Mighty" air purifier (recommended general-use pick, via SweetHome)
  • Big names (via Sweethome)
    • IQAir
    • Coway
    • Blueair
    • Winix
    • HealthMate
    • Austin Air
    • Rabbit Air
    • Sharp
UPDATE:

We purchased the Coway AP-1512HH Mighty Air Purifier with True HEPA and Eco Mode. It's cheap to operate, small, and seems to operate just as effectively. Since all seem to work reduce particulates pretty much the same, after an hour or so, the extra money only seems to buy speed to reduce particulates and odor absorption/adsorption. Neither of these seemed worth the hundreds of dollars of extra expense and much higher ongoing operating costs. We have used it for about one month, now, and have no problems with it. Runs quiet--it never bothers us in the bedroom. Would recommend.

Sunday, February 01, 2015

Moving away from feedly

Looking for something that does not hijack bookmarks.

For example, https://directory.fsf.org/wiki/Category/Internet-application/newsreader

NULL - The Billion Dollar Mistake

Tony Hoare:
"I call it my billion-dollar mistake. It was the invention of the null reference in 1965. At that time, I was designing the first comprehensive type system for references in an object oriented language (ALGOL W). 
My goal was to ensure that all use of references should be absolutely safe, with checking performed automatically by the compiler. But I couldn't resist the temptation to put in a null reference, simply because it was so easy to implement. 
This has led to innumerable errors, vulnerabilities, and system crashes, which have probably caused a billion dollars of pain and damage in the last forty years. 
In recent years, a number of program analysers like PREfix and PREfast in Microsoft have been used to check references, and give warnings if there is a risk they may be non-null. More recent programming languages like Spec# have introduced declarations for non-null references. This is the solution, which I rejected in 1965."
Via: http://programmers.stackexchange.com/a/120372

Judy arrays

Had first heard of these over 10 years ago...nice to see they still seem competitive:

https://en.wikipedia.org/wiki/Judy_array

Note: "The Judy array was invented by Douglas Baskins and named after his sister." : o )

Unicode minimal perfect hash

Wondering if this might exist (?)

Saturday, January 31, 2015

java note to future self

Dear future self:

To save some time, make sure the javac and java binaries you run represent the ones you expect to run, when multiple said binaries exist on disk.

High speed chase

Driving through San Jose on Interstate 880 on Friday evening, when a white car whooshed by at high speed. Shortly there-after, two police vehicles passed by, in pursuit, lights flashing.

As I continued, additional police vehicles continued to intermittently pass me, one by one, lights flashing. By the time I got to Highway 17, about 5-8 vehicles had passed me, in total. Each time, I watched them pass out of sight ahead of me, giving me a clue as to where the initial white car had gone. Knowing how many switchbacks Highway 17 has, I guessed the pursuit might end badly. As I reached a backup of vehicles, I knew the pursuit had resolved itself.

After waiting for several minutes, the line of vehicles began moving. We eventually passed several police vehicles and the white car, at a turnout, the white car now sporting a number of damaged panels from where the police vehicles had likely forced it off the road. I did not see the driver.

After that, smooth sailing to Santa Cruz. I briefly looked for a news report on Saturday, but no success.


Gumnut

Gumnuts represent the "hard woody fruit of trees of the genus Eucalyptus."

Our local eucalyptus tree gumnuts have slots which look like this:


Which looks like something one might accept a Phillips screwdriver bit.

The Secret Life of the Seine

Books I want to read:
http://www.nytimes.com/1994/05/03/opinion/03iht-book_0.html

Clan MacLeod

Family surnames (tongue-in-cheek blog post title comes from the Highlander franchise)

Maternal
  • Anderson (Swedish)
  • Parent (French-Canadian)
Paternal

  • Schultz (German)
  • Hagar (Finnish)
    • Pentamo (sp?)
    • ?


Wednesday, January 28, 2015

Radio songs

Heard on radio KDFC, streaming out of San Francisco:

Nakano, Japan-born Joe Hisaishi's "The Rain", performed by Angèle Dubeau (violin) with her all-female string ensemble "La Pieta", on their 2014 album "Blanc", on the Analekta label. Video.

Note: You may recognize Joe Hisaishi's style from his collaborations with various Hayao Miyazaki productions.

Monday, January 26, 2015

Who versus Whom


"As a ready check in such sentences, simply substitute the personal pronoun “he/him” or “she/her” for “who/whom.” If he or she would be the correct form, the proper choice is who.” If “him” or “her” would be correct, use “whom.”"
Via: http://web.ku.edu/~edit/whom.html

Tuesday, January 20, 2015

Speed of electrons

Unconfirmed: "The actual speed of electrons is about 1.2 inches per minute in a typical, home lighting circuit."

(via)

Monday, January 19, 2015

Ada, Qt, Rust, Conrad, Builder pattern

Things I am reading about tonight.

C++ Qt overview playlist
https://www.youtube.com/watch?v=6KtOzh0StTc

Conrad, Builder Pattern
http://blog.piston.rs/2014/08/30/conrod-update/
http://blog.piston.rs/2014/09/14/conrod-api-overhaul/


Example blog bio

Well written bio:
As an American expat living in Cork, Ireland, Liz keeps her patriotism alive with sweet iced tea, country music, and the National Hockey League. Her American family is originally from the Caribbean. She was born and raised in Virginia, which is only kind of southern; and she graduated with a Bachelor of Arts in English from Fordham University in the Bronx, which is only kind of dangerous. Despite her multitude of living situations, she is neither very preppy nor very hipster, and she very consciously wears leggings as pants. 
She likes switching between a Southern-American, Cork Irish, and Trinidadian accent, and she takes great pride in her innate ability to sing any Disney song in full. She is a classically-trained pianist, a hip-hop dancer, and a ballet teacher. Her favorite books can't be picked but probably include Ella Enchanted and To Kill a Mockingbird. She has a penchant for Yeats, and all should know it is her life goal to play a villain in a Disney animated movie.
Via

Sunday, January 18, 2015

Cleo, CLEO, CL|E|O

The Cleo company's history seems to span four decades, multiple acquisitions, and a number of changes in hardware and software strategies.

I think CLEO originally represented an acronym: “CLuster Environment Operator”* . This seems to cross-check with the stylized trademark, below, which has separators between the letters, as “CL|E|O”. The CLEO software seems to have run on TurboDOS and does represent a play on the name Cleopatra.

ORIGINS

From the publication “Kelly/Grimes IBM PC compatible computer directory”, c. 1985 (link):
“Phone 1 was incorporated in 1976 to manufacture voice data gathering systems, hence the name, Phone 1, Inc. Over the years a support staff of communications software specialists was assembled and software emerged as the forte. Although successful as a hardware manufacturer, Phone 1 directed its expertise to expanding the quality software programs available and so Phone 1 as a software house evolved.

Today, Phone 1 has risen to the forefront in data communications through its offering of 327X and 3780 emulation programs. Its proprietary software, licensed under the trademark CLEO, has gained the approval of many major OEMs and is offered as a software/hardware package by several OEMs.”

In a nutshell, CLEO products helped personal computers, workstations, and midrange computers to talk to IBM-compatible mainframes.
CLEO ADVERTISEMENTS


It’s beautiful....
CLEO advertisement, BYTE magazine’s July 1983 issue (via)





Magic flying floppy diskette carpets (?) (c. 1985, via)

CLEO HISTORY


  • Phone 1, Inc. (Phone1), of Rockford, Illinois, forms in1976:
    • From the original chairman’s LinkedIn account: “Startup provided communications software solutions to O.E.M.s. After arrival on the PC, Cleo became a software publisher and manufacturer of high-speed modem cards.” (link)
    • Some names of prominent employees: Richard E. Newberry, Jeffrey C. Schneider, Gerald Lombardi, Jack G. Adams, and Carol Delheimer (via)
  • Interface Systems, Inc. (ISI) – sometime between 1988-1990, this Ann Arbor, Michigan-based company seems to have acquired Phone1 and/or CLEO Software, making it a division of the company
  • Tumbleweed Communications, of Scottsdale, Arizona, acquires ISI in 2000, and, as a condition of the acquisition, divests ISI’s Cleo solutions group (note: this divesture saves CLEO Software from Axway’s 2008 acquisition of Tumbleweed Communications)
  • DFI Communications – in 2000, this Rockford, Illinois-based company purchases the newly divested Cleo Communications Solutions...Brian Hampton, of DFI Communications, becomes CLEO Communications Solutions CEO & president
  • Globe Equity Partners – in 2012, this California private equity investment firm acquires CLEO Communications...chief principals of Globe Equity Partners, Mahesh Rajasekharan and Sumit Garg, take over as CLEO CEO and president, respectively, with Brian Hampton stays on as advisor

TRADEMARKS OVER TIME - JUST FOR FUN


Circa 1980’s (Phone 1, Inc)...my favorite


Circa 1996 (ISI)


Circa 2001 (DFI)


Circa 2007 (DFI)


Present (Global Equity Partners)

The end.


* Go to the copyright.gov "Search Records" page, select "Search By" value Keyword, enter "Phone 1" in textbox "Search for", select button "Begin Search"...on the results screen, see result, "Cluster environment operator : Cleo 1.01 : user's guide for TurboDos."

Sprint acronym

Via:
"Sprint’s moniker dates to the mid-1970s, when it stood for “Southern Pacific Railroad Internal Networking Telephony.”)"

Thursday, January 15, 2015

A very special DragonForce Christmas

Something my wife and I joked around about over the break--will DragonForce ever make a Christmas album? If so, and I hear about it, I will publish it here.

Adaptation

"Stratton wore special glasses which inverted images up and down and left and right for over a week, and discovered that the human brain could adapt to these new conditions."

Hrm--sounds like an interesting experiment.

Via: http://www.adafruit.com/blog/2015/01/14/crazy-helmets-let-you-see-like-an-animal-wearablewednesday/

You Will Be My Son - Film

Watched the 2011 film "You Will Be My Son" (French: Tu seras mon fils) this evening with a friend. Niels Arestrup crackles as Father while Patrick Chesnais plays the increasingly troubled estate steward. Nicolas Bridet plays Chesnais' preternaturally gifted son--over-praised by Arestrup--whose re-appearance sets in motion the movie's central conflict and story arcs of each main character.

Lush, outstanding cinematography of vineyards and estate buildings. My only regret--not having a glass of wine to drink while viewing. Casting seemed spot-perfect for all players.

The contrast between the warm, initial re-uniting of Chesnais and Bridet, at the beginning of the movie, and their later, wounded and hurting meetings, struck me. As observers, we see Arestrup's son, played skillfully by Lorànt Deutsch, peacefully interacting with Chesnais, making educated and insightful assessments of how to step-in and save the harvest, due to Chesnais' absence. Arestrup may have a point in that Deutsch does not have Chesnais' palette or nose; but Arestrup's judgments of his son prevent Arestrup from seeing him as anything but a burden.

The tension builds and builds--it seems a foregone conclusion the denouement will involve violence, but the resolution did come a bit unexpectedly, though the movie telegraphs it pretty clearly, in retrospect. Arestrup tells his story in three parts: first, to Deutsch, he relates how he falsely reported his own father's death as drowning in a local river, due to inebriation, to cover-up the the actual cause of death--drowning in a wine vat after succumbing to carbon dioxide fumes given off by the fermentation process (the false report allowed Arestrup to sell the wine and avoid tarnishing the name of the estate); second, to Bridet, confiding in him Arestrup's father's decision to adopt Arestrup, after observing his skill in maintaining the estate--echoing Arestrup's own fixation on Bridet as a non-biological heir; and third, to Deutsch, near the end of the film, explaining how the birth of a sickly Deutsch transformed Deutsch's mother, in Arestrup's opinion, from joyful to exhausted--revealing the root of Arestrup's animus toward Deutsch and, in effect, guilting Deutsch with her death.

I loved the drawing of the stick-figure on Anne Marivin's belly near the end. She plays a loyal supporting role, throwing elbows when needed to temper Arestrup's caustic barbs, which have beaten down Deutsch, by the start of the film.

Chesnais and Valérie Mairesse, as Chesnais' wife and Bridet's mother, to me, represent an oasis of safety for Deutsch--we see their genuine concern and caring for him, as the viewer might expect, given their long history with the estate and Arestrup. Deutsch confides in them and Chesnais' treats him as a peer, confirming Deutsch's analysis as sound. We can clearly see Chesnais' growing pain as he watches his son Bridet's choices--ignoring the needs of Deutsch to meet Arestrup's needs and his own. The conflict between them resolves with raised voices and a falling out. The last we see of Bridet, he does not have time to talk to Chesnais or attend Chesnais' health appointment...it seems Chesnais, perhaps, sees his son turning into Arestrup. In an attempt to save Bridet from continuing down that path, Chesnais murders Arestrup by asphyxiation from carbon dioxide released from the fermentation--an echoing of Arestrup's own father's death.

This development opens up questions, perhaps, of whether Arestrup's father truly died accidentally...or, teasingly, leaving me wondering if Chesnais' father killed Arestrup's father? And, if so, did Chesnais know, or, like Bridet, did he take on the role in ignorance of his own father's actions?

Other ambiguities: who inherits the estate after Arestrup's death? It seems Deutsch and Marivin will leave to start their family. Did Arestrup formally adopt Bridet before his death, and, in so doing, make Bridet an heir to the estate?

So much to praise about this movie. If it does not make you want a glass of wine, nothing will.

Note: as perhaps the weirdest pairing of all time, we first watched the 2014 animated film The Nut Job. The consensus: it was OK, but forgettable...so much human effort put into the film--at least they made a sizable profit. Never has Psy's Gangnam Style seemed so dated as watching him dance in the ending credits. A catchy tune, but it has not aged well.

Tuesday, January 13, 2015

Gaming and social justice viewpoints

Via Jeff Vogel's "Storytelling, Critical Nitpickery, and the Dragon Age":
"Dragon Age: Inquisition is pretty much a shopping list of almost every social justice wish list item you could hope for. Female player option? Check. Gay characters and same-sex romances? Check. Trans character? Check. (!) Bechdel Test? Hell, if you roll a female character, you can easily be 20 minutes into the game before you hear a male character say a line. More if you spend a lot of time looking for Elfroot. 
And yet, DAL:I as much of a hardcore gamery game as the gameriest gamer could want, and while applause is not unanimous, gamers are giving the thing a fair chance. Which has a message for both sides. For gamers: It is possible to have a big, fun gamer game with a more social justice viewpoint. For activists: Gamers are not evil, mindless orcs. We'll happily play games from all sorts of political points of view as long as they are fun."

Sunday, January 11, 2015

One of *those* guys - anecdote on Richard Stallman

An interesting anecdote from a recent Hacker News discussion, from user gumby:

> You haven't chosen to be the middle ground here. RMS has chosen to make you the middle ground, because that's where he wanted it to be, so he hiked all the way over there to plant his flag in order to move the middle.

I'm sorry: that's a good strategy, but I have known RMS since the late '70s (since back when he still had short hair!) and that is not has strategy. He is earnest, even when it is to his detriment.
Funny anecdote in this regard: I had never really met anyone quite so dogmatic, passionate, principled and resolute as RMS (you can say that whether you agree with him or not -- though roughly, I of course do agree with him). I used to consider him to be a uniquely polarizing figure. Anyway, in the 80s I had a girlfriend who wasn't in computing and had never heard of him. He came out to visit me in California. When she met him, she just commented, "oh, one of those guys."
WTF? Turned out the two of them had grown up in the same neighborhood in the Bronx. She said the 'hood was "full of guys just like him" (although presumably they were obcessed about some other topics). Sadly her family had since moved elsewhere so I never collected empirical confirmation.
kylebrown 23 hours ago | link
I have no idea what your then-girlfriend meant by one of those guys. Or whether the Bronx hood was full of obsessed guys in the '70s?? I am genuinely curious, though.
gumby 11 hours ago | link
FWIW I doubt she meant anything judgmental by her remark (approval or disapproval or whatever).
I think she just meant that she saw lots of RMSs growing up: a guy, perhaps a product of his time, who had a certain intensive attitude on a position, a taste for the extremist polemic, strongly held beliefs anchored in moral fervor etc. Also accent, body language, dress, etc. Surely similar people can be found everywhere, but in her case she meant that in the 60s, 70s and 80s Bronx you could get off the train and see bunch of guys that would look to her just like him. She grew up in the same cultural broth, even if it manifested itself differently -- but yes she was and is intense.
I haven't forgotten that simple sentence because it changed something for me: RMS sure can come off as being completely sui generis but really he (like everyone, whether a lowly ant like me or an Issac Newton or Barbara McClintock) is a product not only of self creation but also of his context and upbringing. And realizing that has helped me grow and change (or accept that some things are harder to change than others) over the past few decades.

Previously;  Previously; Previously

Smells that comfort

A Quora question listed some.

Wondering again how to communicate smells...have not researched it.

Previously;

Cupcakes and pizza


Stopped in Davis on the way out of Sacramento on Friday evening and got six cupcakes at Let Them Eat Cake:
  1. Wake Up Call - Coffee cake with coffee frosting
  2. Vegan Chocolate - Vegan chocolate cake and frosting
  3. To Grandmother's House We Go - Gingerbread cake with cream cheese frosting (seasonal, winter)
  4. Dubliner - Guinness Stout chocolate cake with chocolate buttercream
  5. Scarlett - Red velvet cake with cream cheese frosting
  6. Down by the Sea - Vanilla cake with salted caramel buttercream
Also, I stopped at the Village Bakery and got two slices of cheese and two slices of veggie. 

Collin Street Bakery - Miniature Pecan Cakes

This bakery, from Corsicana, Texas, makes delicious Miniature Pecan Cakes. We have tried two of the four:
  1. Mini DeLuxe Fruitcake
  2. Mini Apricot Pecan Cake
They sell them in a set of four, 9 oz. mini cakes (about 5" across), for $55.45. 

Note: they also sell Mini Pineapple Pecan Cake and one Mini Apple Cinnamon Pecan Cake.

Citrix Receiver 13.1 for Linux - More Citrix, More Problems

Smiled when I saw Citrix released Citrix Receiver 13.1 for Linux, what seems like a true 64-bit Citrix Receiver client. It seemed to install cleanly to Debian Wheezy--good. It even allowed me to login to my employer's install of Citrix Web Interface 5.? to access XenApp VM hosted apps--promising.

However, selecting a hosted app icon via the Web Interface only seemed to change my mouse cursor from a pointer into a spinning circle for a few seconds, after which it revered to a pointer. Waiting for several minutes, nothing appeared. I tried access in both Mozilla IceWeasel 31.3.0 and Google Chrome 37.0.2062.120. Poking around in /opt/Citrix/ICAClient/, I noted running the binaries seemed to work OK (for example, selfservice)...no core dumps or broken dependencies, it seems.

I also tried installing the Citrix Receiver for HTML5 1.5. This seemed to have similar results as the Citrix Receiver 13.1 for Linux--successful authentication, but no success when selecting hosted app icons.

A WORKAROUND

A brief web search discovered this URL:

http://zo0ok.com/techfindings/archives/1743

which pointed me to /opt/Citrix/ICAClient/wfica.sh . I downloaded the .ICA file after selecting the hosted app icon, then passed the file path to it as a parameter to wfica.sh, as described at the URL. Success.

So, at this point, I know I can run hosted apps manually, which suffices....

Previously; Previously; Previously

Saturday, January 10, 2015

Pack of Lies

Listened to a riveting performance of Pack of Lies, the play, on the drive last night. I heard the 2004 or 2005 version produced by L.A. Theatre Works and recorded in front of a live audience.

The performance features Martin Jarvis as Stewart and Rosalind Ayres as Barbara Jackson. In real life, Jarvis and Ayres married each other in 1974.
Description
Actual events during the Cold War inspired this thriller that takes place in a suburb of London during the autumn and winter of 1960-1961. Loyalty, duty, and friendship collide when the Jacksons slowly discover the Krogers, their neighbors and cherished friends, are not what they appear. A gripping play that may leave you wondering exactly what it is those nice people next door are really up to. Starring (in alphabetical order): Megan Austin Oberle as Julie, Sally Rosalind Ayres as Barbara Jackson Roxanne Hart as Helen Kroger Martin Jarvis as Stewart Sione Owen as Thelma Julian Sands as Bob Jackson David Selby as Peter Kroger.

Friday, January 09, 2015

'Meeting d'Aviation Nice', France, 1910

What a view!


"Description
Photolithographic poster, with artwork by Charles Dana Gibson. This poster was produced for an early aviation meeting in Nice, France, held from 10 to 25 April 1910, and shows an airman flying above the coastal town of Nice, scattering flowers from his aeroplane. The prize money offered at Nice totalled 210,000 francs (£9,000), and the speed prize was won by Efimoff at 35 miles an hour. The sport and spectacle of the first meetings were instrumental in the great rise in popularity of aviation in the first two decades of the 20th century.

Artist
Gibson, Charles Dana

Image Ref.
10200845"
Via: http://www.ssplprints.com/image/82420/gibson-charles-dana-meeting-daviation-nice-france-1910

Saturday, January 03, 2015

Blocking receptor in brain’s immune cells counters Alzheimer’s in mice, study finds

A Stanford study:
Blocking receptor in brain’s immune cells counters Alzheimer’s in mice, study finds
Brain cells called microglia chew up toxic substances and cell debris, calm inflammation and make nerve-cell-nurturing substances. New research shows that keeping them on the job may prevent neurodegeneration. 
http://med.stanford.edu/news/all-news/2014/12/blocking-receptor-in-brains-immune-cells-counters-alzheimers.html
KEY TERMS
  • microglia: a defense cell which regulates brain health, sort of like an immune cell
  • EP2: a receptor on microglia
  • PGE2: binds to EP2, causing microglia overstimulation and deterioration, which may ultimately lead to brain inflammation (means: prostaglandin E2)
  • Aspirin: provides upstream help by preventing certain enzymes from forming molecules which then get converted into PGE2
  • A-beta: microglia control the brain levels of this protein...can form clusters toxic to nerve cells--Alzheimer’s plaques
KEY TAKEAWAY

Brain immune system health (via microglia) seems to decline over time. Researchers have found a rather preliminary (in my opinion), but promising, way to restore microglial fitness by silencing microglia receptor EP2, which, when overstimulated, causes microglia deterioration. Researchers have not fully explored the consequences of doing this, it seems (?)

NOTES

Researchers increased the load of A-beta levels in brain cells with and without EP2 receptors and found several different results:
  1. Young brain cells did just fine with increased A-beta loads
  2. Older brain cells struggled with increased A-beta loads...perhaps as a result of less fit microglia
  3. When researchers silenced receptor EP2 on older brain cells, microglial fitness increased
Researchers noted increased EP2 signaling seemed to occur at the same time as microglial production of inflammation, decreased A-beta munching, and so forth.

Previous work in the same lab showed an increase in inflammation when EP2 binded to PGE2.

(Via)

Friday, January 02, 2015

Donnelly Chocolates

Visited this small shop on Mission the afternoon of New Year's Eve:
https://www.donnellychocolates.com/

Met Henry Donnelly at the cashier. He suggested reports of whale sightings from around 11:00 a.m., down at the beach. We later would check things out, but did not see anything.

Read more about their recent recognition:
http://www.santacruzsentinel.com/20130213/national-geographic-names-richard-donnelly-fine-chocolates-one-of-10-worlds-best-chocolatiers

Richard Donnelly, incidentally, attended Ripon College in Wisconsin.

The chocolate looks very smooth and consistent in color and dense. We purchased a dark chocolate ice cream bar with sea salt, a bar of dark chocolate dark French roast, a peanut-butter dark chocolate bar, and a dark-chocolate caramel sea salt bar. All delicious.

The Theory of Everything

Watched Subject at The Nickelodeon in Santa Cruz, on Lincoln Street. "The Nick" represents a cozy, locally-owned and operated theater, which resides a block away from Pacific Avenue, downtown. This was our first visit. We bought a medium popcorn and a plastic bag of caramel popcorn for later, sitting in theater #3.

The movie does an exceptional job showing the personal side of family life with an ALS member. It only rarely shows an aside of Hawking's later academic life. The parts where he begins struggling with muscle control feel tense; the frustration is real.

The University of Cambridge comes out looking marvelous. Cows grazing, wood paneling, tiny bunked rooms, croquet, rowing, hedges...such an alien world from corporate life. David Thewlis played Hawking's thesis supervisor, Dennis Sciama. In one scene, he brings Hawking to a University of Cambridge laboratory and invokes the name of J.J. Thompson and Rutherford, then leaves him to absorb it all in.

A surprise cameo: Emily Watson as Jane's mother.

A friend mentioned a late scene where Hawking lets Jane go resonated strongly with her--the tears flow freely and the close shots help bring the audience right into the perspective of each of them. The break-up felt a bit flat, however, in the sense that Hawking let her go only after he had securely met his own needs. The artificial conflict of God seems interesting but tacked-on.

I can understand why people tamp down their marks a bit when rating it. It covers a lot of ground. It goes for depth and compassion in a complicated (to put it mildly) relationship. It aims high and ends up a bit flat, though no fault of the lead actors.

The scene introducing Hawking's Equalizer software (I think?) seemed fresh. Four words per minute.

Hawking comes across as someone with raw talent, who finds inspiration in a lecture by Penrose. Wikipedia says Jane's love gave him something to live for, however.

On harrassment

Awareness tips

http://www.robot-hugs.com/harassment/

(via)

Thursday, January 01, 2015

Hawaii State Fish

Reef triggerfish, or: Humuhumunukunukuapua'a
HOOMOO HOOMOO NOOKOO NOOKOO AH POO AH AH

It means, "triggerfish with a snout like a pig."

Wednesday, December 31, 2014

Pogonip Pummelers


$25 of gift certificate glory

Current reigning champions, Dawn and I succeeded in besting all the teams one, potentially drunk team to win the $25 gift certificate at the Upper Crust New Year's Eve Trivia Night. Our win streak stands at one week...we stood-in for out-of-town friends who could not make it this week.

We answered questions like the following:

  • Round 1
    • What was Hermione's last name in the Harry Potter universe?
    • What sport throws salt before competing?
    • Kodiak Island represents the largest island of which U.S. state?
  • Round 2
    • The Gulf War started when Iraq invaded which country?
    • What instrument does the leader of an orchestra typically play?
    • How many moons does Mars have?
  • Round 3
    • What three U.S. states border Lake Superior? (such a gimmee, for me)
    • What is the eastern-most U.S. state?
    • What Kingdom owns Greenland?
  • Bonus round: What city housed the first U.S. Mint?
Due to low turnout, the host, Chris, played only one gift certificate challenge (I guess they usually do two or more). No beer chug-off needed--this seems like the customary way ties get decided, based on videos on their Facebook page...seeing who can quaff a beer faster. We got a +5 bonus for best team name (see Subject), due to his preference for the word Pogonip, a Shoshone word meaning "icy fog," which represents a local Santa Cruz city park near the UCSC campus.

Teams get 5 points for each correct answer. If the team provides a wrong answer, but it makes the host laugh, they get 1 point. Teams tear off a piece of paper from a 4"x6" index card and write their team name on one side and their answer on the other, then hand it to the host after each question. The last question represents the bonus round, during which teams must wager between 1 and 35 points. Depending on whether a team answers successfully or not, they gain or lose their wager. So, it can allow a team to win, even if they have a substantial deficit. 

We got all the answers except for the Greenland one. We wagered 10 points and answered the bonus round successfully. So, it seems we had 60 points out of a potential 85 maximum for the round (45 for the regular rounds + 35 for bonus round + 5 for team name). Chris seemed like a very personable and gregarious guy and congratulated the other team with a free pitcher of beer (in addition to their existing one).

Sadly, it looks like we will not have the ability to defend our title next week, as I am out-of-town.

Nerdolescence

Posted without comment, for now:

Finding out that you're not the Rebel Alliance, you're actually part of the Empire and have been all along
http://boingboing.net/2014/12/31/finding-out-that-youre-not-t.html#more-355857

What I believe
http://www.scottaaronson.com/blog/?p=2119

Heavy stuff and something I look forward to discussing further.

If a man has not discovered....

"If a man has not discovered something that he will die for, he isn’t fit to live."
-- Dr. Martin Luther King, Jr.
Speech on the Great March on Detroit23 June 1963

Sunday, December 21, 2014

Dell Inspiron 15r teardown and hinge repair

http://www.insidemylaptop.com/how-to-disassemble-dell-inspiron-15r-5521-15-3521laptop/

and

http://en.community.dell.com/support-forums/laptop/f/3518/t/19522781

The hinge repair seems like a common problem with this laptop. I used a soldering iron, per suggestion, to heat the metal, then gently pushed it down into the gap. I think I had the iron at 250 degrees Fahrenheit. Luckily, the original hinge screws still reached the metal and seem to secure the hinge.

I tore the laptop down in order to see if any cat hair needed removal from the CPU fan. It turned out only a minor amount of hair seemed stuck. Cleaned it up and put it back together. Put all the screws in labeled baggies, which helped with putting it back together. Took about 60-90 minutes, in total, with the hinge repair.

Saturday, December 20, 2014

Dell Inspiron 15r teardown

http://www.insidemylaptop.com/how-to-disassemble-dell-inspiron-15r-5521-15-3521laptop/

http://www.dell.com/support/article/us/en/19/SLN117599/EN

Warren Buffet's 2014 Memo to Berkshire Hathaway Managers

This biennial letter follows, nearly word-for-word, the format of letters from previous years, with updates to the various statistics (for example, number of employees). Mr. Buffett included the 2010 letter in that year's annual Shareholder Letter: http://www.berkshirehathaway.com/letters/2010ltr.pdf (via: http://www.berkshirehathaway.com/letters/letters.html)

Text of the memo:
Memo 
To: Berkshire Hathaway Managers (“The All-Stars”) 
cc: Berkshire Directors 
From: Warren E. Buffett 
Date: December 19, 2014 
This is my biennial letter to reemphasize Berkshire’s top priority and to get your help on succession planning (yours, not mine!). 
The top priority–trumping everything else, including profits–is that all of us continue to zealously guard Berkshire’s reputation. We can’t be perfect but we can try to be. As I’ve said in these memos for more than 25 years: “We can afford to lose money – even a lot of money. But we can’t afford to lose reputation – even a shred of reputation.” We must continue to measure every act against not only what is legal but also what we would be happy to have written about on the front page of a national newspaper in an article written by an unfriendly but intelligent reporter. 
Sometimes your associates will say “Everybody else is doing it.” This rationale is almost always a bad one if it is the main justification for a business action. It is totally unacceptable when evaluating a moral decision. Whenever somebody offers that phrase as a rationale, in effect they are saying that they can’t come up with a good reason. If anyone gives this explanation, tell them to try using it with a reporter or a judge and see how far it gets them. 
If you see anything whose propriety or legality causes you to hesitate, be sure to give me a call. However, it’s very likely that if a given course of action evokes such hesitation, it’s too close to the line and should be abandoned. There’s plenty of money to be made in the center of the court. If it’s questionable whether some action is close to the line, just assume it is outside and forget it. 
As a corollary, let me know promptly if there’s any significant bad news. I can handle bad news but I don’t like to deal with it after it has festered for awhile. A reluctance to face up immediately to bad news is what turned a problem at Salomon from one that could have easily been disposed of into one that almost caused the demise of a firm with 8,000 employees.
Somebody is doing something today at Berkshire that you and I would be unhappy about if we knew of it. That’s inevitable: We now employ more than 330,000 people and the chances of that number getting through the day without any bad behavior occurring is nil. But we can have a huge effect in minimizing such activities by jumping on anything immediately when there is the slightest odor of impropriety. Your attitude on such matters, expressed by behavior as well as words, will be the most important factor in how the culture of your business develops. Culture, more than rule books, determines how an organization behaves. 
In other respects, talk to me about what is going on as little or as much as you wish. Each of you does a first-class job of running your operation with your own individual style and you don’t need me to help. The only items you need to clear with me are any changes in post-retirement benefits, acquisitions, and any unusually large capital expenditures. But I like to read, so send along anything that you think I may find interesting. 
I need your help in respect to the question of succession. I’m not looking for any of you to retire and I hope you all live to 100. (In Charlie’s case, 110.) But just in case you don’t, please send me a letter or email giving your recommendation as who should take over tomorrow if you should become incapacitated overnight. These letters will be seen by no one but me unless I’m no longer CEO, in which case my successor will need the information. Please summarize the strengths and weaknesses of your primary candidate as well as any possible alternates you may wish to include. Most of you have participated in this exercise in the past and others have offered your ideas verbally. However, it’s important to me to get a periodic update, and now that we have added so many businesses, I need to have your thoughts in writing rather than trying to carry them around in my memory. Of course, there are a few operations that are run by two or more of you – such as the Blumkins, the Merschmans, the pair at Applied Underwriters, etc. – and in these cases, just forget about this item. Your note can be short, informal,handwritten, etc. Just mark it “Personal for Warren.” 
Thanks for your help on all of this. And thanks for the way you run your businesses. You make my job easy. 
WEB/db 
P.S. Another minor request: Please turn down all proposals for me to speak, make contributions, intercede with the Gates Foundation, etc. Sometimes these requests for you to act as intermediary will be accompanied by “It can’t hurt to ask.” It will be easier for both of us if you just say “no.” As an added favor, don’t suggest that they instead write or call me. Multiply 80 or so businesses by the periodic “I think he’ll be interested in this one” and you can understand why it is better to say no firmly and immediately.

GSBF Bonsai Garden at Lake Merritt

http://gsbf-lakemerritt.org/

From a brochure we picked up at a Cherry Blossom festival in San Francisco's Japantown several years ago.

Friday, December 19, 2014

Mean Gene's Burgers - Tracy, California


UPDATE, 2015-05-18: closed, for all intents and purposes...signage inside and outside remains, and staff will cook a burger for you, but no formal menu, no branded cups/placemats/and so forth.

Mean Gene, of course, represents the WWE announcer Gene Okerlund, a Minnesota native. Wikipedia explains:
His name has been associated with fast food concept, Mean Gene's Burgers, the brainchild of food-distributor Orion Food Systems (headed by two of Okerlund's nephews), which appeared on college campuses including Duke University and his alma mater West Virginia University, as well as a chain of pizzerias located within bowling alleys, Mean Gene's Pizza. These are owned by Hot Stuff Foods, which was headed by two of his nephews. Early in 2006, Okerlund and Hot Stuff split. Okerlund and one of the nephews were planning to start their own food company on the brands, but Hot Stuff sued, claiming they had "Mean Gene" trademarked. Okerlund lost, with the judge saying that Okerlund can't use the name "Mean Gene" for his new food company. Okerlund succeeded in canceling the trademark registrations held by Orion, but remains enjoined from competing with Orion.
The official Mean Gene web site, revamped in early 2014, seems to contain a page titled "Burgers"...however, it fails to have any info, as of this posting.

UPDATE: 2015-05-02, stopped here on Friday, May 1! They told me they had closed the grill at 3:00 p.m. due to lack of people...so, will have to stop by another day, before 3:00 p.m.

Soldering tips for shaky hands

From my supervisor, Dan:

  • Wooden toothpick, frayed end, to apply solder paste
  • Heat gun at 630 degrees
  • Touch hand poke
  • Tacky flux
  • Paste solder
  • SMD stands for Solder Mask Defined
  • Tip tinner

The Style Rookie

A wise-beyond-her-years Tavi Gavinson, interviewed in February 2014 on Marketplace.

Daruma Doll

Daruma Dolls and their origins:
The Daruma doll (達磨 daruma?), also known as a Dharma doll, is a hollow, round, Japanese traditional doll modeled after Bodhidharma, the founder of the Zen sect of Buddhism. 
The current popular symbolism associated with Daruma as a good luck charm in part originated with the Daruma-dera (Temple of Daruma) in the city of Takasaki (Gunma Prefecture, north of Tokyo). Josef Kyburz, author of "Omocha": Things to Play (Or Not to Play) with, explained that the founder of Daruma-Dera would draw New Year’s charms depicting Bodhidharma. The parishioners would keep these charms to "bring happiness and prosperity and ward off accidents and misfortune".[3] 
It is believed that the Daruma figurine then originated from this region when the ninth priest, Togaku, found a solution to handle the constant requests of the parishioners for new charms. The charms were always given with an effectiveness of one year, so the people required new ones every year. He solved this by entrusting them with the making of their own Daruma charms near the beginning of the Meiwa period (1764–72). The temple made wooden block molds for the people to use. The peasants then used these molds to make three-dimensional papier-mâché charms.[4]

“Who said “north” was up?

"Upside-down" world map

A specialty map published by Oxford Cartographers. The first panel, in the lower-left, reads:
“Who said “north” was up?
The world, like a ball, has no top.
We can look at it from any point of view.
Top is a matter of habit, convention, and emphasis. The map (1st picture, top) teaches us to question our assumptions.”
Available (note: I have no knowledge or experience with this vendor; caveat emptor).

Green Camel Company, Japan


Cute: http://www.greencamel.co.jp/property/property03_05.html

Dawn found these San-X plush cute:




Cecily Strong's Go-To Wine

Cecily Strong, in Glamour magazine:
DO pop a bottle of vino—you’ve earned it, sister.My first job after college was selling wine at Greenblatt’s Deli-Restaurant & Fine Wine Shop in Los Angeles. I was 22 and broke and had to wear a humiliating blue apron, but I left knowing which Bordeaux blends I liked most (those from the Saint-Emilion and Pomerol region, if you ever want to bribe me). A great bottle of wine—and, trust me, you can find one for 10 bucks—can make any night feel extra special. (Sorry if you don’t drink. This suggestion sucks for you. I’d bet you can research up on another staple of the good life, like steak or cheese or something.)

Sam's Market, Sacramento

I occasionally purchase an egg salad sandwich on a toasted soft roll for $5--one of the best lunch deals in town.

Sam's Market uses Raymond's Sweet French Bread.

Rotten Robbie

Here in the Bay Area, a company called Rotten Robbie sells gasoline:
The “Rotten Robbie” moniker was a fun (and inexpensive) way to have a name customers would remember and associate with the company’s competitive fuel prices and well run stores.  Rotten Robbie seemed to work, so we continue to be Rotten Robbie today, and hopefully well into tomorrow.

Fluency Illusion

Benedict Carey writes:
Psychologists have studied learning long enough to have an answer, and typically it’s not a lack of effort (or of some elusive test-taking gene). The problem is that we have misjudged the depth of what we know. We are duped by a misperception of “fluency,” believing that because facts or formulas or arguments are easy to remember right now, they will remain that way tomorrow or the next day. This fluency illusion is so strong that, once we feel we have some topic or assignment down, we assume that further study won’t strengthen our memory of the material. We move on, forgetting that we forget. 
Often our study “aids” simply create fluency illusions — including, yes, highlighting — as do chapter outlines provided by a teacher or a textbook. Such fluency misperceptions are automatic; they form subconsciously and render us extremely poor judges of what we need to restudy or practice again. “We know that if you study something twice, in spaced sessions, it’s harder to process the material the second time, and so people think it’s counterproductive,” Nate Kornell, a psychologist at Williams College, said. “But the opposite is true: You learn more, even though it feels harder. Fluency is playing a trick on judgment.”

Sunday, December 14, 2014

Unicode, UTF-8, Ken Thompson

Ken Thompson, boss:

https://www.cl.cam.ac.uk/~mgk25/ucs/utf-8-history.txt
http://en.wikipedia.org/wiki/Plan_9_from_Bell_Labs#Unicode
http://en.wikipedia.org/wiki/Unicode#Unicode_Transformation_Format_and_Universal_Character_Set

Also, the Internet has confirmed I am not the only one who thinks Dennis Ritchie looks like Adam Savage. ; o )

Note: Unicode originated a bit differently and does not mean the same thing as UTF-8.

Simón Wilson Music for Film and Video Gamers

Saw an ad for Mr. Wilson's SoundCloud account in the Jack Baskin School of Engineering.

Good stuff; sharing the love. If you need some music, check him out.

Comic Papyrus

Oh dear...someone went there (via):

Fictional (as far as I know) example font of typeface "Comic Papyrus", a combination of typefaces Comic Sans and Papyrus

Note: wondering about the difference between typeface and font, as I was?

Physics World Top 10 physics announcements of 2014

A listicle from the web site Physics World, outlining, in their determination, the top 10 physics announcements of 2014:
  1. Comet landing named Physics World 2014 Breakthrough of the Year
  2. Neutrinos spotted from Sun's main nuclear reaction 
  3. Laser fusion passes milestone 
  4. Data stored in magnetic holograms 
  5. Quasar shines a bright light on cosmic web 
  6. Lasers ignite 'supernovae' in the lab 
  7. Electrons' magnetic interactions isolated at long last 
  8. Disorder sharpens optical-fibre images 
  9. Physicists sound-out acoustic tractor beam 
  10. Quantum data are compressed for the first time
I felt inspired reading about things such as the tractor beam and the laser fusion. Note: UC-Santa Cruz researchers assisted with "Quasar shines a bright light on cosmic web". 

What color is it?

Clever and educational: http://whatcolourisit.scn9a.org/

Reference: web colors

Bring them inside - Grey alien

Laughed out loud when I saw this:

Caption reads: "If you're cold, they're cold; Bring them inside," with picture of Grey alien looking in through window pane

In all seriousness, consider helping out your fellow community members this year.

Saturday, December 13, 2014

Santa Cruz Mountain Brewing: Chocolate Pumpkin Porter

Dawn tried this beer last night at 99 Bottles in Santa Cruz:
#58: Santa Cruz Mountain Chocolate Pumpkin Porter - 6%  Draft
(Santa Cruz, CA) Brewed with TCHO cacao nibs, 150 lbs. of organic sugar pie pumpkins, ginger, cinnamon, nutmeg, and vanilla, this dark and luscious porter is the perfect fall treat.
$5.75/pint 8.75/25 oz. 16.25/pitcher
It turns out Santa Cruz Mountain Brewing tap room lives just a few blocks from our apartment.

Thursday, December 11, 2014

Debian Wheezy + Logitech Mini Boombox

A friend recently gifted me a Logitech Mini Boombox (Model F-00003, p/n 880-000243). Logitech introduced this product in the United States market in 2011 at a price point of about $100.

This product supports Bluetooth 2.1 and can play music up to 33 feet away. It supports four Bluetooth profiles:
  1. Advanced Audio Distribution Profile (A2DP)
  2. Audio/Video Remote Control Profile (AVRCP)
  3. Hands-Free Profile (HFP)
  4. Headset Profile (HSP)
GNU/LINUX DEBIAN WHEEZY CONFIGURATION

Initially, I successfully paired the device to my IBM Lenovo X201 laptop...no problems. However, the device did not appear under "Sound Settings" tab "Hardware" (that is, GNOME control center - Sound)

After a bunch of web searches and unsuccessful configurations of /etc/bluetooth/audio.conf (note: I eventually reverted it to default and it was fine), it turned out installing pulseaudio-module-bluetooth seemed to allow the device to appear:

sudo apt-get install pulseaudio-module-bluetooth
pacmd load-module module-bluetooth-discover

Note: I may have ran "pulseaudio -k" to restart audio...and the sound comes through with static...some fine-tuning still needs to occur.

UPDATE: to improve audio quality, access control panel "GNOME control center - Sound" (that is, "Sound Settings"), select tab "Hardware," then select device "Mini Boombox", then, under section "Settings for the selected device," select profile "High Fidelity Playback (A2DP)" from the pull-down list. (Via)

UPDATE: after a reboot, ran pulseaudio -k again before I could get it to work

UPDATE, 2015-05-03: Fresh install of Debian Jessie and everything works after installing pulseaudio-module-bluetooth and running pacmd.

Blog Archive