Choose a directory to be the root for this CA. All paths will be relative to it.
Create your local configuration for this CA. E.g. edit ca.conf
:
[ca]
using System; | |
using System.Threading.Tasks; | |
using System.Collections.Generic; | |
using System.Collections.ObjectModel; | |
using System.Diagnostics; | |
using System.Net.Sockets; | |
namespace ConsolePortScanner | |
{ | |
class MainClass |
#!/usr/bin/env bash | |
set -e | |
CONTEXT="$1" | |
if [[ -z ${CONTEXT} ]]; then | |
echo "Usage: $0 KUBE-CONTEXT" | |
exit 1 | |
fi |
import java.util.HashMap; | |
import java.util.Map; | |
public class DoesNotCompute { | |
public static void main(String[] args) { | |
System.out.println(System.getProperty("java.version")); | |
Map<String, Integer> map = new HashMap<>(); | |
map.computeIfAbsent("spud", s -> calculate(s, map)); |
This is a naive benchmark, it may not reflect real world usage. I basically used the same server script for Lua (luvit) and NodeJS | |
and fired the siege tool against it for 60 seconds and then 120 seconds. Luvit came ahead on both cases. | |
=== NodeJS 60s === | |
Transactions: 18136 hits | |
Availability: 94.64 % | |
Elapsed time: 49.61 secs | |
Data transferred: 0.21 MB | |
Response time: 0.04 secs |
# 3 ways to loop through each character in a string | |
$text = "hello world"; | |
for $i (0..length($text)-1){ | |
$char = substr($text, $i, 1); | |
print "Index: $i, Text: $char \n"; | |
} | |
foreach $char (split //, $text) { |
DEL %userprofile%\AppData\Local\Microsoft\VisualStudio\10.0\ComponentModelCache | |
DEL %userprofile%\AppData\Local\Microsoft\VisualStudio\12.0\ComponentModelCache | |
DEL %userprofile%\AppData\Local\Microsoft\VisualStudio\14.0\ComponentModelCache |
The creation of a certificate has a request phase and a signing phase. Both phases need to refer to an SSL configuration
file which will include the required extensions. The supported extensions are documented at man x509v3_config
.
The system-wide openssl configuration usually lies at /etc/ssl/openssl.cnf
. Suppose we need to request some X509 extensions (like keyUsage
, extendedKeyUsage
and subjectAltName
), so we need to add/override some parts and we create a configuration fragment in request.conf
:
04/26/2103. From a lecture by Professor John Ousterhout at Stanford, class CS142.
This is my most touchy-feely thought for the weekend. Here’s the basic idea: It’s really hard to build relationships that last for a long time. If you haven’t discovered this, you will discover this sooner or later. And it's hard both for personal relationships and for business relationships. And to me, it's pretty amazing that two people can stay married for 25 years without killing each other.
[Laughter]
> But honestly, most professional relationships don't last anywhere near that long. The best bands always seem to break up after 2 or 3 years. And business partnerships fall apart, and there's all these problems in these relationships that just don't last. So, why is that? Well, in my view, it’s relationships don't fail because there some single catastrophic event to destroy them, although often there is a single catastrophic event around the the end of the relation
// TODO: longer method name | |
Function.prototype.extractBlockCommentAsMultilineString = function() { | |
return this.toString().match(/^function \(\)\{\s*\/\*((?:[^*]|\*+[^*\/])*)\*+\/\s*\}$/)[1]; | |
}; | |
var s = function(){/* | |
STRING | |
GOES | |
HERE | |
*/}.extractBlockCommentAsMultilineString(); |