Programming language cook book

From Review or Discard at Will
Jump to: navigation, search

Mostly just for me to remember stuff

I might use a command once, then not again for years. Hopefully I can jog my memory quickly here.

Python

I wanted a json utc datetime for a MQTT payload. Found the arrow module that is much like moment.js for javascript.

import arrow
print (arrow.get(arrow.utcnow()).for_json()

results in: "2015-08-27T15:03:07.427351+00:00" I'd like to trim it further and replace the +00:00 with Z. ??? and less precision on the seconds.

Documentation for ISO 8601

vim

comment a block

What's a quick way to comment/uncomment lines in Vim? (Stack overflow)

ctl v (at start of block)
down arrow (to end of block)
shift I, #
  or
: s/^/# <- more likely
esc

global search and replace

:
%s/findString/replaceString/g

Apache

Resources

utility

# VirtualHost configuration:
apachectl -S
# Check .conf syntax
apachectl configtest
# What modules loaded?
httpd -M
apachectl -M

Redirect site root to wiki

This works to redirect to www.somedomain.tld from www.somedomain.tld/w - basically to point the root to your wiki as home / first page.

<VirtualHost *:80>
     RewriteEngine on
     RewriteRule ^/*$ %{DOCUMENT_ROOT}/w/index.php [L]
</VirtualHost>

MediaWiki Short URLs

<VirtualHost *:443>
        ServerName www.redacted.info
        ServerAlias redacted.info
        DocumentRoot /var/www/redacted.info
        CustomLog       /var/log/httpd/redacted.info-access.log combined
        ErrorLog        /var/log/httpd/redacted.info-error.log
        Include /etc/letsencrypt/options-ssl-apache.conf
        SSLCertificateFile /etc/letsencrypt/live/redacted.com/cert.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/redacted.com/privkey.pem
        Include /etc/letsencrypt/options-ssl-apache.conf
        SSLCertificateChainFile /etc/letsencrypt/live/redacted.com/chain.pem

        RewriteEngine on
        RewriteRule ^/*$ %{DOCUMENT_ROOT}/w/index.php [L]
        alias /wiki /var/www/redacted.info/w/index.php
        # Redirect / to Main Page
        RewriteRule ^/*$ %{DOCUMENT_ROOT}/w/index.php [L]
</VirtualHost>

Mediawiki

Visual Editor

parsoid

install start stop status

[root@myhost parsoid]#  systemctl daemon-reload  # Do this if when you make changes to a service file
[root@myhost parsoid]#  systemctl start parsoid  # start
[root@myhost parsoid]#  systemctl status parsoid # check status
[root@myhost parsoid]#  systemctl enable parsoid # start parsoid on boot

systemd service file.

[Unit]
Description=Mediawiki Parsoid web service on node.js
Documentation=http://www.mediawiki.org/wiki/Parsoid
Wants=local-fs.target network.target
After=local-fs.target network.target

[Install]
WantedBy=multi-user.target

[Service]
Type=simple
User=nobody
Group=nobody
WorkingDirectory=/opt/parsoid
EnvironmentFile=-/etc/parsoid/parsoid.env
ExecStart=/usr/bin/node /opt/parsoid/bin/server.js
KillMode=process
Restart=on-success
PrivateTmp=true
StandardOutput=syslog

stunnel

# groupadd -g 51 stunnel
# useradd -c "stunnel Daemon" -d /var/run/stunnel -g stunnel -s /bin/false -u 51 stunnel

/etc/stunnel/stunnel.conf

cert = /etc/letsencrypt/live/redacted/fullchain.pem
key = /etc/letsencrypt/live/recacted/privkey.pem
chroot = /var/run/stunnel
setuid = stunnel
setgid = stunnel
pid = /stunnel.pid

[parsoid]
accept  = 8143
connect = 8142

/lib/systemd/system/stunnel.service

[Unit]
Description=SSL tunnel for network daemons
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target
Alias=stunnel.target

[Service]
Type=forking
ExecStartPre=-/usr/bin/mkdir /var/run/stunnel
ExecStartPre=/usr/bin/chown -R stunnel:stunnel /var/run/stunnel/
ExecStartPre=-/bin/chmod 700 /var/run/stunnel
ExecStart=/usr/bin/stunnel /etc/stunnel/stunnel.conf
ExecStop=/usr/bin/killall -9 stunnel
RuntimeDirectory=stunnel
# Give up if ping don't get an answer
TimeoutSec=600
Restart=always
#PrivateTmp=false
PrivateTmp=false
EnvironmentFile=-/etc/stunnel/stunnel.conf
#PermissionsStartOnly=true
# RemainAfterExit=yes



Display unformated like code snippets

lang= text bash csharp cpp php xml py javascript (or js) <source lang="bash"> code snippet </source>

My Simple Template

{{ blockquote| text here }}

upgrade and move

  • upgrade php to allow mediawiki upgrade
  • upgrade mediawik to allow for contact page, VisualEditor etc...
  • Implement short URLs for better SEO and they're pretty.

current soon to be old wiki version info

Installed software
Product	Version
MediaWiki	1.21.1
PHP	5.3.3 (apache2handler)
MySQL	5.1.73
Entry point URLs
Entry point	URL
Article path	/wiki/index.php/$1
Script path	/wiki
index.php	/wiki/index.php
api.php	/wiki/api.php
load.php	/wiki/load.php
Installed extensions
Special pages
ContactPage (Version 2.2)	Contact form for visitors	Daniel Kinzler and Sam Reed
Renameuser	Adds a special page to rename a user (need renameuser right)	Ævar Arnfjörð Bjarmason and Aaron Schulz
Parser hooks
ParserFunctions (Version 1.5.1)	Enhance parser with logical functions	Tim Starling, Robert Rohde, Ross McClure and Juraj Simlovic
SyntaxHighlight (Version 1.0.8.11)	Provides syntax highlighting <syntaxhighlight> using GeSHi - Generic Syntax Highlighter	Brion Vibber, Tim Starling, Rob Church and Niklas Laxström
Media handlers
PDF Handler	Handler for viewing PDF files in image mode.	Martin Seidel and Mike Połtyn
Other
Gadgets	Lets users select custom CSS and JavaScript gadgets in their preferences	Daniel Kinzler and Max Semenik
WikiEditor (Version 0.3.1)	Provides an extendable wikitext editing interface and many feature-providing modules	Trevor Parscal, Roan Kattouw, Nimish Gautam and Adam Miller
Parser extension tags
<gallery>, <nowiki>, <pre>, <source> and <syntaxhighlight>
Parser function hooks
anchorencode, basepagename, basepagenamee, canonicalurl, canonicalurle, defaultsort, displaytitle, expr, filepath, formatdate, formatnum, fullpagename, fullpagenamee, fullurl, fullurle, gender, grammar, if, ifeq, iferror, ifexist, ifexpr, int, language, lc, lcfirst, localurl, localurle, namespace, namespacee, namespacenumber, ns, nse, numberingroup, numberofactiveusers, numberofadmins, numberofarticles, numberofedits, numberoffiles, numberofpages, numberofusers, numberofviews, padleft, padright, pagename, pagenamee, pagesincategory, pagesize, plural, protectionlevel, rel2abs, special, speciale, subjectpagename, subjectpagenamee, subjectspace, subjectspacee, subpagename, subpagenamee, switch, tag, talkpagename, talkpagenamee, talkspace, talkspacee, time, timel, titleparts, uc, ucfirst and urlencode

Fedora fc.22

I opened up node.js on port 3000 with this command.

firewall-cmd --permanent --add-port=3000/tcp
# be sure to reload
 firewall-cmd --reload
# tail a log with colored warnings
#> tail -f /var/log/maillog|egrep --ignore-case  --line-buffered --color=auto 'reject|ERROR|WARN|$'

7-zip

I wanted to create a .zip file for my FDDSE project from the command line. Perhaps in a batch file.

7z a -tzip FDDSE.zip FDDSE

VS 2015 IISExpress

.vs\config\applicationhost.config
%userprofile%\Documents\IISExpress\
netsh http show urlacl
netsh http add urlacl url=http://localhost:60262/ user=everyone
netsh http delete urlacl url=http://*:60262/
I 'ended' Microsoft.VsHub.Server.HttpHostx64.exe with TaskManager
// punch a hole in the firewall
// oopps just noticed I'm running public profile at home on nat. Another toDo
C:\Users\jeffa>netsh advfirewall firewall add rule name="IISExpressWeb" dir=in protocol=tcp localport=60262 profile=private remoteip=localsubnet action=allow
Ok.


C:\Users\jeffa>netsh advfirewall firewall add rule name="IISExpressWeb" dir=in protocol=tcp localport=60262 profile=public remoteip=localsubnet action=allow
Ok.

CentOS 7

Nifty resources

yum etc...

  • yum list installed
  • repoquery --list php56u
  • yum search all php-imap
  • yum install php56u-imap
  • rpm -qi postfix # show currently installed info

bacula

  • bconsole
    • status client

smtp etc...

mailq
postfix flush
postmap -q anexample.com  mysql:/afilenameWithQuery.cf
dovecot -n ; display configuration / check configuration syntax
echo `hostname` `cat /etc/*elease*` "this is some blah blah testing body text" | mail -s "Testing 1 2 3" somebody@somewhere.tld

Find a message ID.

[root@redacted cron.d]# mailq
-Queue ID-  --Size-- ----Arrival Time---- -Sender/Recipient-------
B077861458      758 Sat Jan 20 08:17:22  apache@redacted.net
(connect to example.com[2606:2800:220:1:248:1893:25c8:1946]:25: Network is unreachable)
                                         you@example.com

-- 0 Kbytes in 1 Request.
# Read it.
[root@dediserve1 conf]# postcat -q A9D1061AF9
....
# Delete it.
[root@dediserve1 cron.d]# postsuper -d B077861458
postsuper: B077861458: removed
postsuper: Deleted: 1 message
[root@redacted cron.d]# mailq
Mail queue is empty
[root@redacted cron.d]#

letscncrypt

https://crt.sh/?q=dediserve1.jhalbrecht.net
[root@thehost]# certbot certificates
[root@thehost]# certbot delete # prompted for certs to remove
[root@thehost]# certbot delete --cert-name delthisdname 
[root@thehost]# 
[root@thehost]# 
[root@thehost]# 
[root@thehost]#

stuff...

find ./ -exec ls -l {} + | less
sed -i 's/findstring/replacestring/g' *

systemctl

edit /etc/systemd/system.conf add LogLevel=debug for increased logging when debugging systemctl start something

systemctl cat bacula-fd will display the current bacula-fd.service file

iptables

iptables -L --line-numbers
iptables -D INPUT 3

iptables -L
iptables -S


service iptables save

Debian 9

Install

I'm attempting to install Stretch on a pair of 4TB drives in a Raid 1 configuration.

Some linke and notes

Windows

hosts and flush

I like to put the dns of the new site in hosts before I change name service enabling to verify proper operation first.

Elevate your privileges to Administrator

Edit c:\Windows\System32\Drivers\etc\hosts

ipconfig /flushdns

Once done testing don't forget to remove temporary ip from hosts

Not yet organized

Stuff I need to integrate into some order but I'm busy with other stuff and don't want to forget

  • journalctl -b -u fail2ban
  • fail2ban-client status
    • fail2ban-client status jail_name

disk stuff

is grub installed?

[root@seven ~]# dd if=/dev/sda bs=1 count=512 | grep -aob GRUB
378:GRUB
512+0 records in
512+0 records out
512 bytes (512 B) copied, 0.00301491 s, 170 kB/s
[root@seven ~]#

install boot on /dev/sdb

[root@seven ~]# grub2-install /dev/sdb
Installing for i386-pc platform.
grub2-install: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
grub2-install: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
Installation finished. No error reported.
[root@seven ~]#