wesley tanaka

Tech

What is memcache

()

memcached is a small executable program. In the most idiomatic deployment, it listens for TCP connections on port 11211. Clients that connect have access to read and write a single in-memory hashtable with short (up to 250 byte) binary keys and longer (up to 1 megabyte) binary values. Clients use a simple text based protocol to store values in the hashtable by key, or get them by key.

memcached makes no guarantees about how long it will store a key/value pair. If you store a key/value, it may or not be there later when you attempt to retrieve it.

Composable asset and vulnerability expected value model for security

()

Security is often thought of as a level of risk to "assets". An asset is anything of value, like a password, 1000 hours of CPU time, the ability to execute software on a machine, customer credit card numbers, employee Social Security Numbers, etc.

A "vulnerability" can be thought of as weaknesses that an attacker who already has access to assets X1, X2, X3, ... can exploit to gain access to new assets Y1, Y2.

Exporting a graph from neo4j and importing it into gephi

()

Some code to calculate the <key> elements needed to get Gephi to import the labels for nodes and edges exported by neo4j

Run neo4j-shell inside docker

()

To start the neo4j docker image with neo4j-shell enabled, run:

docker run \
--publish=7474:7474 --publish=7687:7687 \
--volume=$HOME/neo4j/data:/data \
neo4j sh -c "cd /var/lib/neo4j; sed -i -e 's/#dbms.shell/dbms.shell/g' conf/neo4j.conf; curl http://dist.neo4j.org/jexp/shell/neo4j-shell-tools_3.0.1.zip -o neo4j-shell-tools.zip; unzip -o neo4j-shell-tools.zip -d lib; /docker-entrypoint.sh neo4j" 

Rebase all local branches in git

()

To rebase all local branches on upstream/master in git:

BASEBRANCH=upstream/master
git for-each-ref --shell --format="git rebase $BASEBRANCH %(refname:short)" refs/heads/ | sh -x

Query a server certificate from the command line

()

To display SSL/TLS certificate information about a web server from the command line:

showcert()
{
  HOSTNAME="$1"
  : | openssl s_client -showcerts -servername "$HOSTNAME" -connect "$HOSTNAME":443 2>/dev/null | openssl x509 -inform pem -noout -text
}

Then, call this function with the hostname you want to check, like:

showcert example.com

UnsupportedJavaRuntimeException.assertUsingVersion in Android Studio

()

After upgrading Android Studio to version 2.3, you may get:

Decoding binary data in logstash

()

By default, logstash stores the "message" field as a unicode string (in this example, we avoid including a '\x0a' byte to keep the pipeline configuration shorter):

Downloading Ansible galaxy roles in parallel

()

To always ensure that I have the latest version of a role from Ansible Galaxy, I've found I needed to use both the --force option (to re-download even if the directory already exists) and the --ignore-errors option (to keep going through all the roles). Overall, the command line ends up looking like this:

ansible-galaxy install --force --ignore-errors -r priv/ansible/requirements.txt -p priv/ansible/roles/

letsencrypt / certbot incomplete certificate chain error

()

Some tutorials on enabling HTTPS in Apache recommend adding this in the <VirtualHost *:443> configuration block:

SSLEngine on
SSLCertificateFile "/etc/letsencrypt/live/wtanaka.com/fullchain.pem"
SSLCertificateKeyFile "/etc/letsencrypt/live/wtanaka.com/privkey.pem"

When this configuration is used with Apache versions prior to 2.4.8, Apache is not able to parse the intermediate CA out of a chain certificate.

Syndicate content Syndicate content
by Wesley Tanaka