/resume.md
/_site/resume.html
/_site/tmp
+/_site/misc
+/_site/gitstats*
#!/usr/bin/env ruby
# encoding: utf-8
-# Copyright (C) 2016 Ian Kelling
-
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 2 of the License, or
-# (at your option) any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# Copyright (C) 2019 Ian Kelling
+# SPDX-License-Identifier: AGPL-3.0-or-later
# debian sets LANG=C when starting apache2.
# the envoding comment above fixes the internal encoding afaik,
if new_count == 1
require 'net/smtp'
- to = 'root@' + FQDN
+ to = 'root@localhost'
from = 'www-data@' + FQDN
server = 'localhost'
msg = <<END_OF_MESSAGE
From: h <#{from}>
To: <#{to}>
-Subject: "new comment on #{FQDN}"
+Subject: new comment on #{FQDN}
empty body
END_OF_MESSAGE
<p>I actively maintain these projects. Please use them and <a href="/about-me.html">send me</a> feedback, patches, etc.</p>
<p>Once a project has a few users, I also put it on my
-<a href="https://gitlab.com/users/iankelling/projects">gitlab.com account</a>
+<a href="https://sr.ht/~iank/">sr.ht sourcehut account</a>
</p>
publishing it here since I do not see it anywhere else online. At the
bottom, there are a bunch of license texts and copyright holder notices
that I've omitted.</p>
-<div class="highlight"><pre>Open Source Software Information
+<div class="highlight"><pre><span></span>Open Source Software Information
For instructions on how to obtain a copy of any source code being made publicly available by ARRIS related to software used in this ARRIS product you may send your request in writing to:
<h2 id="unix-like">Unix-like</h2>
<p>Install over the existing installation with the same sources, recording installed files, then delete them.</p>
-<div class="highlight"><pre>sudo python setup.py install --record files.txt
+<div class="highlight"><pre><span></span>sudo python setup.py install --record files.txt
<span class="c1"># inspect files.txt to make sure it looks ok. Then in bash:</span>
tr <span class="s1">'\n'</span> <span class="s1">'\0'</span> < files.txt <span class="p">|</span> xargs -0 sudo rm -f --
</pre></div>
<h2 id="windows">Windows</h2>
<p>Install on top of the existing installation with a windows installer, then add-remove programs to uninstall.</p>
-<div class="highlight"><pre>python setup.py bdist_wininst
+<div class="highlight"><pre><span></span>python setup.py bdist_wininst
dist/foo-1.0.win32.exe
</pre></div>
<h2 id="use-other-methods-which-fully-support-uninstall-when-available">Use other methods which fully support uninstall when available</h2>
<h4>Contact Info</h4>
<ul>
- <li><a href="mailto:iank@fsf.org">iank@fsf.org</a>, I'm a senior sysadmin at fsf</li>
+ <li><a href="mailto:iank@fsf.org">iank@fsf.org</a>, I'm a senior sysadmin at FSF</li>
<li><a href="mailto:ian@iankelling.org">ian@iankelling.org</a></li>
<li><a href="ian-kelling-pubkey.asc">gpg key: B125 F60B 7B28 7FF6 A2B7 DF8F 170A F0E2 9542 95DF</a></li>
- <li>iank on <a href="https://freenode.net/">freenode</a></li>
- <li><a href="https://pump.iankelling.org/iank">iank@pump.iankelling.org</a>
- on <a href="https://pump.io">pump.io</a></li>
- <li><a href="https://mast.iankelling.org/@iank">@iank@mast.iankelling.org</a> on <a href="https://mastodon.social/about">Mastodon</a></li>
+ <li>iank on <a href="https://libera.chat/">Libera.Chat</a>. There was a false tweet about me in march 2021 claiming I said mean things in #perl 10+ years ago. That was not me. I started using the nick iank on freenode when I joined FSF in may 2017. I don't regularly read twitter. Apparently it's common for people to post on twitter about people who don't read twitter and never tell them about it. If you read something within the last month about me on twitter, please tell me. I respond to all emails I get. I contacted the original tweet author and they deleted the tweet and ignored my request to inform people that it was wrong.</li>
+</li>
+ <li><a rel="me" href="https://hostux.social/@iank">@iank@hostux.social</a> on <a href="https://joinmastodon.org">Mastodon</a></li>
+ <li>I do most of my computing on some librebooted x200's and KGPE-D16's + Trisquel, and a libreCMC router</li>
+ <li>I run my own mailserver on whichever computer I'm currently using. This server runs a VPN to send port 25 to traffic to me.</li>
</ul>
<h4>Other online activities</h4>
<ul>
- <li><a href="https://github.com/ian-kelling/">GitHub profile</a></li>
- <li><a href="https://gitlab.com/iankelling">GitLab profile</a></li>
+ <li><a href="https://sr.ht/~iank/">sourcehut profile</a></li>
+ <li><a href="https://github.com/ian-kelling/">GitHub</a>, <a href="https://gitlab.com/iankelling">GitLab</a> (Avoid when possible due to <a href="https://www.gnu.org/software/repo-criteria-evaluation.html">unethical practices</a>)</li>
<li><a href="https://directory.fsf.org/wiki/User:IanK">Free Software
Directory profile</a></li>
<li><a href="https://stackoverflow.com/users/14456/ian-kelling">StackOverflow profile</a></li>
<li><a href="https://en.wikipedia.org/wiki/Special:Contributions/Ian_Kelling">Wikipedia contributions</a></li>
<li><a href="https://debbugs.gnu.org/cgi/pkgreport.cgi?submitter=ian%40iankelling.org">GNU
bug submissions</a></li>
- <li>I've contributed to various other mailing lists, source repos, and bug trackers. Some are on
- my resume</li>
+ <li>I've contributed to various other mailing lists, source repos, and bug trackers.</li>
<!-- <li><a href=""></a></li> -->
</ul>
<h3>News/Blogs</h3>
<ul>
- <li><a href="http://deblanc.net/blog/">Life on M (Molly de Blanc)</a></li>
<li><a href="https://LWN.net">LWN.net: Linux News</a></li>
- <li><a href="https://sfconservancy.org/news/">Software Conservancy News</a></li>
+ <li><a href="https://sfconservancy.org/news/">Software Freedom Conservancy News</a></li>
<li><a href="https://mjg59.dreamwidth.org/">Mathew Garret's Blog</a></li>
- <li><a href="https://reddit.com">reddit</a></li>
+ <li><a href="https://libredd.it/">libre reddit</a></li>
<li><a href="https://www.fsf.org/blogs/recent-blog-posts">FSF's blog</a></li>
<li><a href="https://news.ycombinator.com/">Hacker News</a></li>
</ul>
<li><a href="http://www.gnu.org/philosophy/software-patents.html">GNU: Why software patents are bad</a></li>
<li>I'm a <a href="https://sfconservancy.org/supporter/">Software Freedom Conservancy supporter</a></li>
<li>I'm an <a href="https://supporters.eff.org/">Electronic Freedom Foundation supporter</a></li>
- <li>I'm an <a href="https://opensource.org/members">Open Source Initiative member</a></li>
+ <li>I'm an <a href="https://opensource.org/members">Open Source Initiative member</a>, mostly in order to vote in their board elections. I strongly prefer free software and software freedom, some reasons are listed <a href="https://www.gnu.org/philosophy/open-source-misses-the-point.en.html">here</a></li>
<li>I <a href="https://creativecommons.org/donate/">donate to Creative Commons</a></li>
<li><a href="https://hyperboleandahalf.blogspot.com/">Hyperbole and a Half</a></li>
<li><a href="https://my.fsf.org/join"><img src="/assets/48550.png"></a></li>
</ul>
- <pre>
-# rms asked me to...
-# __.. ,. .. ._.. .. . .___.. ..___
-# (__ \./ |\/|| | |\ ||_/ | |__|[__
-# .__) | | ||____|_| \|| \ | | |[___
-
-# ._.. ..___..___.__ . ..___.___. | | |
-# | |\ | | [__ [__)|\ |[__ | | | |
-# _|_| \| | [___| \| \|[___ | * * *
- </pre>
<p>You've come this far, here are some pictures of me.</p>
<img alt="head shot" src="/assets/profile250.jpg">
<img src="https://media.libreplanet.org/mgoblin_media/media_entries/1581/7S7A1964.medium.png" />
<img src="https://media.libreplanet.org/mgoblin_media/media_entries/1727/7S7A2604.medium.png" />
-<img src="https://media.libreplanet.org/mgoblin_media/media_entries/1561/7S7A1881.medium.png" />
cd "${BASH_SOURCE%/*}/proposed-comments"
all=false
-shell="ssh $(chost iankelling.org)"
+shell="ssh iankelling.org"
while [[ $1 ]]; do
case $1 in
-a) all=true; shift ;;
cd "${BASH_SOURCE%/*}/proposed-comments"
-shell="ssh -oStrictHostKeyChecking=no $(chost iankelling.org)"
+shell="ssh -oStrictHostKeyChecking=no iankelling.org"
while [[ $1 ]]; do
case $1 in
-l) shell= ; shift ;; # -l for local
source /a/bin/errhandle/err
usage() {
- cat <<EOF
+ cat <<EOF
Usage: ${0##*/} [OPTIONS] [DOMAIN_NAME] [LETSENCRYPT_EMAIL]
Setup dependencies, apache, and gitweb. Then call build.rb.
Note: Uses GNU getopt options parsing style
EOF
- exit $1
+ exit $1
}
##### begin command line parsing ########
+
port=443
-temp=$(getopt -l help, p:h "$@") || usage 1
+temp=$(getopt -l help, sp:h "$@") || usage 1
eval set -- "$temp"
while true; do
- case $1 in
- -p) port=$2; shift 2 ;;
- -h|--help) usage ;;
- --) shift; break ;;
- *) echo "$0: Internal error! unexpected args: $*" ; exit 1 ;;
- esac
+ case $1 in
+ -s) allow_symlinks_arg=-s; shift ;;
+ -p) port=$2; shift 2 ;;
+ -h|--help) usage ;;
+ --) shift; break ;;
+ *) echo "$0: Internal error! unexpected args: $*" ; exit 1 ;;
+ esac
done
##### end command line parsing ########
email=$2
if [[ $email ]]; then
email_arg="-e $email"
- fi
+fi
gitroot=/a/bin/githtml
if [[ $EUID != 0 ]]; then
- s=sudo
+ s=sudo
fi
deb8=false
if grep -xFq 'VERSION_ID="8"' /etc/os-release; then
- deb8=true
+ deb8=true
fi
shopt -s extglob
pkgs=(
- # build.rb dependencies
- ruby-pygments.rb ruby-safe-yaml ruby-sass
- # python pkgs used for o(n^2) voting blog entry
- python-bcrypt python-passlib
- # gitweb pkgs
- gitweb highlight
+ # build.rb dependencies
+ ruby-pygments.rb ruby-safe-yaml ruby-sass
+ # python pkgs used for o(n^2) voting blog entry
+ # # commented out, needs update to python3
+ #python-bcrypt python-passlib
+ # gitweb pkgs
+ gitweb highlight
)
if $deb8; then
- pkgs+=(build-essential ruby-dev)
+ pkgs+=(build-essential ruby-dev)
else
- pkgs+=(ruby-redcarpet)
+ pkgs+=(ruby-redcarpet)
fi
-
-$s apt-get -y install ${pkgs[@]}
+source /a/bin/distro-functions/src/package-manager-abstractions
+pi ${pkgs[@]}
if $deb8; then
- sudo gem install redcarpet
+ sudo gem install redcarpet
fi
chmod og+x _site/on2vote/vote.py
our \$projects_list_group_categories = 1;
EOF
-web-conf $email_arg -p $port - apache2 $domain <<EOF
+web-conf $allow_symlinks_arg $email_arg -p $port - apache2 $domain <<EOF
# to run python script on my site:
<Directory /var/www/$domain/html/on2vote>
# to run python scripts with cgi
AddHandler cgi-script .py
</Directory>
+<Directory /var/www/$domain/html/alex>
+ Options Indexes
+</Directory>
+
+
<Directory "/var/www/$domain/html/cgi">
Options +ExecCGI
SetHandler cgi-script