- [Введение в программирование на Go][1]
- [Маленькая книга о Go][3]
- [Эффективный Go][2]
- Есть еще [Краткий пересказ Effective Go на русском языке][4], но 2009 года
package ciphers | |
import ( | |
"crypto/rand" | |
"crypto/rsa" | |
"crypto/sha512" | |
"crypto/x509" | |
"encoding/pem" | |
"log" | |
) |
func declOfNum(number int, titles []string) string { | |
cases := []int{2, 0, 1, 1, 1, 2} | |
var currentCase int | |
if number % 100 > 4 && number % 100 < 20 { | |
currentCase = 2 | |
} else if number % 10 < 5 { | |
currentCase = cases[number%10] | |
} else { | |
currentCase = cases[5] | |
} |
#!/bin/sh | |
## First convert .p12 cert to certificate and key .pem files: | |
openssl pkcs12 -in cert.p12 \ | |
-clcerts -nokeys -out usercert.pem | |
openssl pkcs12 -in cert.p12 \ | |
-nocerts -out userkey.pem -nodes |
So, with credit to the Factorio wiki and cbednarski's helpful gist, I managed to eventually setup a Factorio headless server. Although, I thought the process could be nailed down/simplified to be a bit more 'tutorialised' and also to document how I got it all working for my future records.
The specific distro/version I'm using for this guide being Ubuntu Server 16.04.1 LTS
. Although, that shouldn't matter, as long as your distro supports systemd
(just for this guide, not a Factorio headless requirement, although most distros use it as standard now).
The version of Factorio I shall be using is 0.14.20
, although should work for any version of Factorio 0.14.12
and higher.
Just a note to newcomers: If there are any issues with the installation steps, people in the comments are doing a good job
Using VAAPI's hardware accelerated video encoding on Linux with Intel's hardware on FFmpeg and libav
Hello, brethren :-)
As it turns out, the current version of FFmpeg (version 3.1 released earlier today) and libav (master branch) supports full H.264 and HEVC encode in VAAPI on supported hardware that works reliably well to be termed "production-ready".
package example_test | |
import ( | |
"crypto/aes" | |
"crypto/cipher" | |
"hex" | |
"io" | |
) | |
// AES-GCM should be used because the operation is an authenticated encryption |
nginx: | |
image: myclient/nginx | |
environment: | |
- HOSTHOST=UBUNTU | |
- PROXY_PORT=8069 | |
links: | |
- myservice:myservice | |
ports: | |
- "80:80" | |
- "443:443" |
<!-- | |
Tutorial code for: http://www.binpress.com/tutorial/generating-nice-movie-previews-with-ffmpeg/138 | |
--> | |
<!DOCTYPE html> | |
<html lang="en"> | |
<head> | |
<title></title> | |
</head> | |
<body> | |
<a href="https://www.youtube.com/watch?v=v1uyQZNg2vE" target="_blank" class="video-preview" data-frames="100" data-source="http://i.imgur.com/BX0pV4J.jpg"></a> |
-- show running queries (pre 9.2) | |
SELECT procpid, age(clock_timestamp(), query_start), usename, current_query | |
FROM pg_stat_activity | |
WHERE current_query != '<IDLE>' AND current_query NOT ILIKE '%pg_stat_activity%' | |
ORDER BY query_start desc; | |
-- show running queries (9.2) | |
SELECT pid, age(clock_timestamp(), query_start), usename, query | |
FROM pg_stat_activity | |
WHERE query != '<IDLE>' AND query NOT ILIKE '%pg_stat_activity%' |