Sacha Ligthert 7 цаг өмнө
parent
commit
f42b29eb64

BIN
assets/hawgface.jpg


+ 24 - 11
content/_index.md

@@ -1,20 +1,33 @@
 ---
-layout: landing
+title: "Sacha Ligthert"
+layout: page
+build:
+  render: always
+  list: always
+  publishResources: false
 ---
 
 <div class="book-hero">
 
-# Documentation {anchor=false}
-This content is rendered from `content/index.md`
+# Sacha Ligthert
 
-{{<button href="/docs/">}}Action{{</button>}}
+Hi, I am Sacha Ligthert. A 40+ year old Site Reliability Engineer from Apeldoorn.
 
-</div>
+During the day I work for [Myst B.V.](https://myst.nl/) at several clients ensuring that their services and networks keep working, and their managers and developers are happy.
+
+During the evening I am doing most likely one of the following things:
+* Hanging out with friends
+* Exploring new technologies
+* Having fun at the pool/gym (when possible)
+* Playing video games
+* Making time-lapses of random processes
+* Sailing
+* Writing for [my silly little blog](https://blog.ligthert.net).
 
-{{% columns %}}
-- ## Nunc infans rigidique etiam
-  Lorem markdownum quondam mediamque visis aevi, peregrinaeque Aeacidae, vita vos? Iacet exhortatus picta plures; placet Pandrose tremescere; mediis aera enim resonat scinditur dea nocuit fabrilis est per. Signum pater paventes pectore maris humo, aegide illos religarat si! Romana secutis erat, cum omnia vincere virtutem nomine ascensu poenas? Gradus cum quoque potitur.
+## Contact
+You can reach me on:
+* The Fediverse [@ligthert@mastodon.nl](https://mastodon.nl/@ligthert)
+* You can email me at [sacha@ligthert.net](mailto:sacha@ligthert.net)
+* Or if you want to chat on [Steam](https://steamcommunity.com/id/Ligthert)
 
-- ## Carmina fallacia polluit lenta
-  Lorem markdownum, omnes exire lumen noctis concava multaque fieri inplevere oculi *nisi sua* subigebat iamque? Herse sum `hardBox`, pervenit linguae altera. Clymenen magna illi latera parent omnia felicia ter bifurcum nulla atque alta cannas ita? Pariter stetit carina adspexerit spargentem festa concrevit `process_upnp` primos! Huic et sulphure paelice iuppiter vitat quem genitas, fera vertice relinque.
-{{% /columns %}}
+</div>

+ 0 - 44
content/docs/_index.md

@@ -1,44 +0,0 @@
-# Vir nidis Phrygiae ambarum
-
-## Moenia alis vendit inquit
-
-Lorem markdownum Cauno eburno pectore matremque animal illae positoris refert
-nectaris. Quod cecidere timido, fudit, dura urnam tuos; **iubis**. Ea concepit
-gravem quod *est vides* mariti minus, de curva inter, **Maeonias licet**, tum.
-Duobus mentis portentificisque crescit nutricisque tenax? *Nec digiti* crescunt
-Neve!
-
-1. Cultus vitamque egerere nutrit procis caecae et
-2. Infelix non
-3. Sperchios fuit quod pharetra verborum
-4. Quicquam cum haec bona
-5. Nubila Finierat
-6. Quod nec exequialia
-
-## Miserere murmura riguisse
-
-Substiterat deponunt dentes. Nec estque volant, mendacia iubent, et merui terram
-Cerealis ipso quoque fronte; erat suco.
-
-- Tuas sine
-- Quem frigore tibi
-- Nec partim est excussum domos est
-- Corde Apolline poma rerum generis promissae
-
-## Ultime divellere
-
-Sub robustior `portal_jfs_application` Argolicosque inposuit fecit. Mihi est
-relinquit tollere digni Mater requiemque Ceycis, die potes, se sic genetrix
-Pelasgas **arceat** sonanti colles.
-
-Deus magno, senatus dicimus urguere Cerealia; pictae illum, progenies et [ultima
-tempora](#ultime-divellere) fovet, nec. Arcana urbem: iacentis: ficta qui
-incursu fides et sati nec omnia ego Laetitia potura troades. Responsa subdit,
-pronepos coactus **Nycteliusque** licet se sepulcro tenus Pelasgae odoribus
-**absensauxilium**.
-
-Loquar est obvertit: ubi: non possit pulsa: mihi. Nam irascere tellus! In
-rostro, dea rutilis, in gutture ulla publica minaces fuissem tristi et. Putes
-Cyclopum bello pericula vides Anguemque, sanctaque pia gaudent. Induiturque
-atria, dentibus virque *parabant lacrimis*, motus, sidere sorores pereunt
-pharetramque nocte et subde medio.

+ 0 - 35
content/docs/section-1/_index.md

@@ -1,35 +0,0 @@
----
-weight: 1
-params:
-  bookFlatSection: true
----
-
-# Section 1
-
-## Ferre hinnitibus erat accipitrem dixi Troiae tollens
-
-Lorem markdownum, a quoque nutu est *quodcumque mandasset* veluti. Passim
-inportuna totidemque nympha fert; repetens pendent, poenarum guttura sed vacet
-non, mortali undas. Omnis pharetramque gramen portentificisque membris servatum
-novabis fallit de nubibus atque silvas mihi. **Dixit repetitaque Quid**; verrit
-longa; sententia [mandat](http://pastor-ad.io/questussilvas) quascumque nescio
-solebat [litore](http://lacrimas-ab.net/); noctes. *Hostem haerentem* circuit
-[plenaque tamen](http://www.sine.io/in).
-
-- Pedum ne indigenae finire invergens carpebat
-- Velit posses summoque
-- De fumos illa foret
-
-## Est simul fameque tauri qua ad
-
-Locum nullus nisi vomentes. Ab Persea sermone vela, miratur aratro; eandem
-Argolicas gener.
-
-## Me sol
-
-Nec dis certa fuit socer, Nonacria **dies** manet tacitaque sibi? Sucis est
-iactata Castrumque iudex, et iactato quoque terraeque es tandem et maternos
-vittis. Lumina litus bene poenamque animos callem ne tuas in leones illam dea
-cadunt genus, et pleno nunc in quod. Anumque crescentesque sanguinis
-[progenies](http://www.late.net/alimentavirides) nuribus rustica tinguet. Pater
-omnes liquido creditis noctem.

+ 0 - 32
content/docs/section-1/section-2/_index.md

@@ -1,32 +0,0 @@
----
-weight: 1
----
-
-# Section 2
-
-## Adiit proximus nostraque corpore
-
-Lorem markdownum verti Miletida nec, timent: cerae feri nomen et, titubat.
-Famulis at quae exiguo terga tollere ibat cuius lucum turpe satis tristia: huic
-gramen!
-
-## Manus cur rostrum sacros
-
-Adest proelia qua illa *virgo*, vota requiescere aurum rasilis ramis tulit
-brevior, mutatis. Nec gemmis cedite neque.
-
-- Ima serum
-- Longo accensae purpureae
-- Movit illi committere et dixit
-- Remove magis ut rebus sententia
-
-## Sua est illi patentibus
-
-Teli precando inbutum fertilis [promissa](#adiit-proximus-nostraque-corpore)
-navis lacrimaeque uncis breve, putaret enim vicerat, trepidantibus Alba
-Propoetidas. Ambo properas; gratus mediocris carminaque
-[magna](#sua-est-illi-patentibus), comitesque Phoebus? Quibus **qua** capillos
-meum Lyciamque quinque, non proceres Troia, gravitate hoc Bacchus [feci
-Thebaides](#verbaque-rapite-temptabat-vacantem). Labore et [parens
-exerceor](#verbaque-rapite-temptabat-vacantem) re poscit boum mihi hic non
-patriaque in vestri ab meum.

+ 0 - 32
content/docs/section-1/section-2/leaf-page-1.md

@@ -1,32 +0,0 @@
----
-weight: 1
----
-
-# Leaf Page 1
-
-## Verbaque rapite temptabat vacantem
-
-Quantumque per urbem senectam, nisi forti novissima adicit fluvialis aera.
-Semina mirator: osculaque Capreas verbis credas fecundaque post id, ad cum ego
-sensit. Nece quod pondere terras infamis necari essem **longa dicite** augur et
-ramos: decutit ut. [Imagine](#si-hac-venit-vota) per natorum nudis libravit
-fraterna, florentia dubie reminiscor septem, corpore? Terram nymphas sentit
-alii.
-
-    keyPitch(bitmap, pipelineCyberbullying);
-    if (secondary(namespace_bar_flash(hdmiRam, twitterHoc,
-            shellThirdCorrection), powerpointSoundNetwork,
-            memory.bsodYahooRte.andPlainMinimize(desktop))) {
-        access_repository(hddPopPharming, copy);
-        computerHyperlink += baseband;
-        firmware -= facebook_smm * gpt_basic_plain;
-    }
-    if (memeDrag >= barBatchHover.bloatwareFirmware(jsonDisk)) {
-        vdsl_petaflops.asp_utf = map;
-        thyristor = service_thumbnail_web.pcmcia_uri.workstationSoftwareDegauss(
-                5);
-    } else {
-        intellectual_hdmi = tftRuntime(paste, samplingModemAccess, dmaDegaussZif
-                + data);
-    }
-    data_card_megabyte = samba_artificial_thread;

+ 0 - 28
content/docs/section-1/section-2/leaf-page-2.md

@@ -1,28 +0,0 @@
----
-weight: 1
----
-
-# Leaf Page 2
-
-## Fratres sagax arbor vacuas
-
-Lorem markdownum obstaret Troades. Putetis Euandri `simmMicrophonePort` in nil
-veniam esse, etiam, Arachnes.
-
-## Adest te omnibus Enipeu
-
-Praecipitique deum equis manibusque `optical` circumspicit femina foedari
-inmensum `spam` suspirat missum, Telethusa [spargit capit
-nec](#fratres-sagax-arbor-vacuas) Theron. Est oculis perire mater iaculum
-*Pasiphaeia* si inde tenditur utinam si Achaia purpureis.
-
-- Capillos sic suos reliqui
-- Et esse colla populusque
-- Positaeque pocula ad pro teste sacrata reprensa
-- Ut pignora obscura Cadmi omnibus
-
-## Lumine sed atque fontibus
-
-At cinis genitore fluxit relinquit Euboicam a Bacche inplet sanctasque falcatus.
-Anumque caput. Negarit fata, et produxit Nereides primaque at ut Pelia sedit.
-Blanditus quoniam, te vertitur fateri, hic *vires comitem*.

+ 0 - 31
content/docs/section-1/section-3/_index.md

@@ -1,31 +0,0 @@
----
-weight: 1
-params:
-  bookCollapseSection: true
----
-
-# Section 3
-
-## Ab ortuque inclusum siste
-
-Lorem markdownum *manes* decipienda Troasque. Iuno quam litoream facit Delius
-atque! Lycabas laesi ego candida.
-
-Sectamque ubi usum dixit, querellae tardatus calorem; hoc Invidiam, oras.
-Sermone solita ferro et restare fallit loquendo pectore primumque, piceis
-`plug_tft_system` mactatae greges niger dat, rude *tempore* haerent. Cura impune
-corpusque monstra stagnumque quoque simulacra altos nec gratus ipse? Mihi cum
-domos valle.
-
-Sic quid raucum, et potest Diamque latronis inmitem; nomina sonus tellus
-revolutaque eluvie tumescere amplius. Collo etiam dignus moves iuvenem. Viscera
-*oras*. Illic fugit, vota **unica satis deceat** hospitis necis Priamoque.
-
-## Liberfemineae pars ponere
-
-### Aequora esse in coniunctior
-
-Officium longo solvit in natura nisi [caeli
-insonat](#referam-aeneae-frustra-medio) sine summa, est iraque. Tempora tamquam
-ius Cinyran securus emittere? Et in is ausis munimine; ignara dura Venerem *dies
-boum*.

+ 0 - 30
content/docs/section-1/section-3/leaf-page-1.md

@@ -1,30 +0,0 @@
----
-weight: 1
----
-
-# Leaf Page 1
-
-## Corda suam cornua delet
-
-Lorem markdownum custodia, praemia madefacta exarsit, tenebas famae virtute
-prole contingere obstipuere iuvencos ex magis ad manare dare. Infans fidem
-tenues: pro iussit collum huic ponite, utraque.
-
-> Autem rotae nomina mandentemque `ssl` aevum te Hectoris exire; vicem quam? At
-> inhaeret, hoc quodque sustinet, onus concita rectorque nulla tecta non quos
-> donis, conticuit inventa solet? De experientis color celeres umbram. Cum quod
-> augent luctusque fecitque pinguntur orba arce Eurystheus Gratia castumque
-> agris alimentaque: speciem et **huius** formas. Ictus obstipui deriguere et
-> signa dum retenta, et leti recenti procul exigit in nox anhelitus sortem
-> `visual` mixta hinc.
-
-## Tamen forum tam
-
-Vulnere est totum lucemque generis egi Corythi, certamina nec fata, sumptis.
-Caelo pererrant taedae positu: non census Amythaone **gentes** laetabile.
-
-- In pete credat pugnabant
-- In pontus et quae verba ipse non
-- Haemonii corpora
-- Caligine Aenean displicet belli percutit postquam altera
-- Suppliciumque magni animae favillae petere Titania

+ 0 - 33
content/docs/section-1/section-3/leaf-page-2.md

@@ -1,33 +0,0 @@
----
-weight: 1
----
-
-# Leaf Page 2
-
-## Verum aetherias
-
-Lorem markdownum simul. Umeris tunc praetendat dixit incunabula inponis es lina
-**inde** semper, sua honore tum manibus aera! Invitas efficit.
-
-1. Iam aper iubebat grandior
-2. Faciam Troica turba
-3. Duplicataque stravit fere
-4. Madefactaque erant honorem
-5. Spectabat stat
-6. Flectant neque equi tractataque talibus praebet respicit
-
-## Quid latens cladibus ebur
-
-Firmat per repugnas inlaesos sociis cum inplerunt esse [submersum
-primi](#utraque-arto) virtus adhuc carere, tu Solis ad **deus**. Cum genus date
-parente venae. **Calculus** est in valeat, mente maternas *Palaemona alveus*,
-membra florem arbore illi contra, in myrtea vincula.
-
-    var station = infotainment + -4;
-    dbmsIllegal = gigahertzYottabyteIeee.export_digital_gbps(toslinkBpsCard);
-    urlDvd = -2 + exbibyteOptical;
-    dock_flops(thumbnailAdc - integer, vleWindowPrinter(2, google_myspace));
-
-Sic ab fallaci, *fuere* per Delphica inter; sed excussae eadem paelice sapienter
-et dignas, dicta. Adeo suus ille noctem fuit laevum humo portasque dicere huc
-dignus enim; vultum veluti stringitur, caelo **pietatis**.

+ 490 - 0
content/notes/_index.md

@@ -0,0 +1,490 @@
+---
+title: "Notes"
+build:
+  render: always
+  list: always
+  publishResources: false
+---
+
+## Notes
+Here are just a few notes I quickly need access from time to time.
+
+---
+
+### AWS - S3
+```
+{
+    "Version": "2012-10-17",
+    "Statement": [
+        {
+            "Sid": "Statement",
+            "Effect": "Allow",
+            "Action": [
+                "s3:ListBucket",
+                "s3:GetObject",
+                "s3:DeleteObject",
+                "s3:PutObject"
+            ],
+            "Resource": [
+                "arn:aws:s3:::<bucket>/*",
+                "arn:aws:s3:::<bucket>"
+            ]
+        }
+    ]
+}
+```
+
+---
+
+### Bash
+* [Print arguments of a bash shell](http://www.linuxquestions.org/questions/programming-9/processing-command-args-in-bash-367563/)
+* [Bash Pitfalls](http://mywiki.wooledge.org/BashPitfalls)
+
+---
+
+### DTrace
+#### Tutorials
+* [http://www.oracle.com/technetwork/server-storage/solaris/dtrace-tutorial-142317.html](http://www.oracle.com/technetwork/server-storage/solaris/dtrace-tutorial-142317.html)
+* [http://www.brendangregg.com/dtrace.html](http://www.brendangregg.com/dtrace.html)
+
+---
+
+### MySQL
+#### Getting database/table sizes
+```
+SELECT 
+    table_schema "TABLENAME",
+    sum( data_length + index_length ) / 1024 / 1024 "Data Base Size in MB" 
+FROM information_schema.TABLES
+GROUP BY table_schema
+```
+
+#### Getting table size ordered by size (desc)
+```
+SELECT 
+     table_schema as `Database`, 
+     table_name AS `Table`, 
+     round(((data_length + index_length) / 1024 / 1024), 2) `Size in MB` 
+FROM information_schema.TABLES 
+ORDER BY (data_length + index_length) DESC;
+```
+
+---
+
+### OpenSSL
+#### Lazy man's self-signed certificate
+    openssl req -subj "/CN=domain.com/O=My Company Name LTD./C=US" -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout server.key -out server.crt -sha256
+
+#### Check if everything matches up
+    $ openssl rsa -in wildcard.domain.key -noout -modulus | openssl md5
+    $ openssl x509 -in wildcard.domain.com.crt -noout -modulus | openssl md5
+    $ openssl req -in wildcard.domain.com.csr -noout -modulus | openssl md5
+
+---
+
+### Saltstack
+![Description](https://pbs.twimg.com/media/CHxoz_UUkAA3_Gt.png)
+
+#### Installation
+
+##### Debian
+    sudo apt-get -y install python-software-properties
+    sudo add-apt-repository -y ppa:saltstack/salt
+    sudo apt-get update
+    sudo apt-get -y install salt-master ( or salt-minion)
+
+#### Fun Stuff
+
+##### All grains
+    salt '*' grains.items
+
+##### All Stuff
+    salt '*' status.all_status
+
+#### Updating a package on every machine
+    salt \* pkg.install lxc-docker refresh=true
+
+#### Updating saltstack on all the minions
+    salt \* file.replace /etc/salt/minion pattern='master_type: str' repl='master_type: standard'
+    salt \* cmd.run 'apt-get update'
+    salt \* cmd.run 'apt-get install -o Dpkg::Options::="--force-confold" --force-yes -y salt-minion'
+
+#### Massive errors on highstate from minions after an upgrade?
+    /etc/init.d/salt-minion stop
+    cd /var/cache/salt/minion
+    rm -rf *
+    /etc/init.d/salt-minion start
+
+---
+
+## Gaming
+### ArmA 3
+
+#### Introduction
+I have been playing Operation: Flashpoint and its Resistance expansion back in the day, started scripting things for it and made a ton of scenarios and a larger bunch of scripts. I've played the SP campaign of ArmA. I started playing ArmA 2 and its expansions mid-2010, after which I got the taste of scripting and making scenarios again. Safe to say I've spent many nights scripting SQF in the RV engine.
+
+Over time I've collected a bunch of notes and scripts I've used to create my scenarios. It would be selfish to keep them for myself, so here are they. I've tried to sort them on version (ArmA 2 and ArmA 3) and mod (just ACE2).
+
+#### General SQF
+The following examples should work in both ArmA 2and ArmA 3.
+
+#### Everything about groups
+##### Create a new group
+    _grp = group this
+##### Moving all units of a group into a vehicle
+    {_x moveincargo taxi} foreach units group this
+##### Check if a group is inside a vehicle
+    ({_x in taxi} count units grp1) == (count units grp1)
+##### Check if a group is not inside a vehicle
+    {_x in taxi} count (units grp1) ==  0
+##### Check to see if all playable west units are in a trigger area
+    {alive _x && side _x == WEST && vehicle _x in thislist} count allunits == {alive _x && side _x == WEST} count allunits
+
+
+#### Start a script that is part of a mod (requires CBA)
+Put in `config.cpp`:
+```
+class CfgPatches {
+    class gfs {
+        units[] = {};
+        weapons[] = {};
+        requiredVersion = 1.00;
+        requiredAddons[] = {"CBA_MAIN"};
+        author[] = {"Sacha Ligthert"};
+        versionDesc = "This latest version";
+        version = "0.29";
+    };
+};
+class Extended_PreInit_EventHandlers    {
+    class gfs    {
+        init = "[] execVM 'folder\init.sqf';";
+};
+```
+
+#### Mute in-game radio commands
+    0 fadeRadio 0;  //mute in-game radio commands
+
+#### Removing the Respawn Button
+```
+private["_display","_btnRespawn"];
+
+disableSerialization;
+waitUntil {
+    _display = findDisplay 49;
+    !isNull _display;
+};
+
+_btnRespawn = _display displayCtrl 1010;
+_btnRespawn ctrlEnable false;
+```
+
+#### Detect a JIP
+```
+if (!(isNull player)) then  //non-JIP player
+{
+
+};
+
+if (!isServer && isNull player) then  //JIP player
+{
+
+};
+```
+
+#### Count the building positions
+```
+x = 0;
+while { format ["%1", house buildingPos x] != "[0,0,0]" } do {x = x + 1};
+hint format ["%2: 0 - %1", x-1, "Available positions"];
+```
+
+#### Locations and Buildings
+##### Find all in the cities
+```
+SL_fnc_urbanAreas = {
+    private ["_locations","_cityTypes","_randomLoc","_x","_i","_cities"];
+    _i = 0;
+    _cities = [];
+
+    _locations = configfile >> "CfgWorlds" >> worldName >> "Names";
+    _cityTypes = ["NameVillage","NameCity","NameCityCapital"];
+
+    for "_x" from 0 to (count _locations - 1) do {
+        _randomLoc = _locations select _x;
+        // get city info
+        _cityName = getText(_randomLoc >> "name");
+        _cityPos = getArray(_randomLoc >> "position");
+        _cityRadA = getNumber(_randomLoc >> "radiusA");
+        _cityRadB = getNumber(_randomLoc >> "radiusB");
+        _cityType = getText(_randomLoc >> "type");
+        _cityAngle = getNumber(_randomLoc >> "angle");
+        if (_cityType in _cityTypes) then {
+            _cities set [_i,[_cityName, _cityPos, _cityRadA, _cityRadB, _cityType, _cityAngle]];
+            _i = _i + 1;
+        };
+    };
+    _cities;
+};
+```
+#### Find all the buildings in a give area...
+```
+SL_fnc_findBuildings = {
+    private ["_center","_radius","_buildings"];
+    _center = _this select 0;
+    _radius = _this select 1;
+    _buildings = nearestObjects [_center, ["house"], _radius];
+    _buildings;
+};
+```
+
+---
+
+#### ACRE
+##### Disable Signal loss (Long range radios now cover the entire island.)
+    [0] call acre_api_fnc_setLossModelScale;
+##### Retransmit script
+Source [http://www.tacticalgamer.com/script-bin/176053-script-acre-retransmit-script.html](http://www.tacticalgamer.com/script-bin/176053-script-acre-retransmit-script.html)
+    //Retransmit on Position + Altitude
+
+    private ["_obj","_pos"];
+    _obj = _this;
+    _pos = getPosATL _obj;
+    [[_pos select 0, _pos select 1, (_pos select 2) + 4500], 51.850, 54.500, 20000] call acre_api_fnc_createRxmtStatic;
+##### Segment the radio frequencies per faction
+    if (!isDedicated) then {
+
+      if (isNull player) then {
+      	waitUntil {!isNull player};
+      };
+
+    	#define FREQ_BASE 30
+    	_freqs = [];
+    	if (side player == WEST) then {
+    		for "_i" from 0 to 99 do {
+    			_freq = FREQ_BASE + (_i * 3) + 0.500;
+    			_freqs = _freqs + [_freq];
+    		};
+    	} else {
+    		for "_i" from 0 to 99 do {
+    			_freq = FREQ_BASE + (_i * 3) + 1.250;
+    			_freqs = _freqs + [_freq];
+    		};
+    	};
+    	["ACRE_PRC148", _freqs] call acre_api_fnc_setDefaultChannels;
+    	["ACRE_PRC117F", _freqs] call acre_api_fnc_setDefaultChannels;
+    	["ACE_P159_RD99", _freqs] call acre_api_fnc_setDefaultChannels;
+
+
+    	#define FREQ_BASE 2400
+    	_freqs = [];
+    	if (side player == WEST) then {
+    		for "_i" from 0 to 99 do {
+    			_freq = FREQ_BASE + _i + 0.200;
+    			//_freqs = _freqs + _freq, 50;
+    			_freqs = _freqs + [_freq];
+    		};
+    	} else {
+    		for "_i" from 0 to 99 do {
+    			_freq = FREQ_BASE + _i + 0.600;
+    			//_freqs = _freqs + _freq, 50;
+    			_freqs = _freqs + [_freq];
+    		};
+    	};;
+    	["ACRE_PRC343", _freqs] call acre_api_fnc_setDefaultChannels;
+    };
+
+---
+
+#### ArmA 2
+##### Disable Greetings menu
+    player setVariable ["BIS_noCoreConversations", true];  //disable greeting menu
+##### Place and LHD virtually anywere
+* Module: Functions
+* GameLogic LHD1
+* init.sqf:
+    * `waituntil {!isnil "bis_fnc_init"}; LHD1 call BIS_EW_fnc_createLHD;`
+* GameLogic
+    * `this setDir 90; this setPos [ getPos this select 0, getPos this select 1, (getPos this select 2) -15.6];`
+
+##### Players start with a lowered weapon
+    player switchMove "amovpercmstpslowwrfldnon_player_idlesteady03";  //lower players weapon
+
+##### Spawn a camp by using DYNO
+    if(isServer || isDedicated)then
+    {
+        _newComp = [(getPos this), (getDir this), "Camp1_TKM_EP1"] call (compile (preprocessFileLineNumbers "ca\modules\dyno\data\scripts\objectMapper.sqf "));
+    };
+
+---
+
+#### ACE2
+##### Start with earplugs in
+    //earplugs
+    #define __check configFile >> "CfgIdentities" >> "Identity" >> "name"
+    _earplugs = {
+    	if ( ((getText(__check) == "") || (getText(__check) != (name player))) && isMultiplayer ) then {  
+               // indentity incorrect
+               // don't wait
+    	} else { // wait for init
+                waitUntil { sleep 0.5; _earplugs = player getVariable "ace_sys_goggles_earplugs"; !isNil "_earplugs" };
+    	};
+           player setVariable ["ace_sys_goggles_earplugs", true, false];
+           player setVariable ["ace_ear_protection", true, false];
+    };
+    [] spawn _earplugs;
+
+---
+
+#### ArmA 3
+##### Custom Radio Channels
+* [https://community.bistudio.com/wiki/customRadio](https://community.bistudio.com/wiki/customRadio) - Sends a msg over a custom channel
+* [https://community.bistudio.com/wiki/fadeRadio](https://community.bistudio.com/wiki/fadeRadio) - Fades radio
+* [https://community.bistudio.com/wiki/radioChannelAdd](https://community.bistudio.com/wiki/radioChannelAdd)
+* [https://community.bistudio.com/wiki/radioChannelCreate](https://community.bistudio.com/wiki/radioChannelCreate)
+* [https://community.bistudio.com/wiki/radioChannelRemove](https://community.bistudio.com/wiki/radioChannelRemove)
+* [https://community.bistudio.com/wiki/radioChannelSetCallSign](https://community.bistudio.com/wiki/radioChannelSetCallSign)
+* [https://community.bistudio.com/wiki/radioChannelSetLabel](https://community.bistudio.com/wiki/radioChannelSetLabel)
+* [https://community.bistudio.com/wiki/radioVolume](https://community.bistudio.com/wiki/radioVolume)
+
+##### Give all to zeus
+    _curator addCuratorEditableObjects [vehicles,true];
+    _curator addCuratorEditableObjects [(allMissionObjects "Man"),false];
+    _curator addCuratorEditableObjects [(allMissionObjects "Air"),true];
+    _curator addCuratorEditableObjects [(allMissionObjects "Ammo"),false];
+
+---
+
+#### ACE3
+##### Removing NVG grain
+    ppEffectDestroy ace_nightvision_ppEffectFilmGrain;
+##### Detecting if ACE3 is running
+* `"ace_main" in activatedAddons`
+* `isClass (configFile >> "cfgPatches" >> "ace_main")`
+* `missionNamespace getVariable ["ace_common", false]`
+
+##### Have a unit never go prone or run away
+    this addEventHandler ["Animchanged",{(_this select 0) setunitpos "up"}]; this allowFleeing 0; this forceSpeed 0;
+
+##### Adding stuff to cargo
+    ["ACE_ConcertinaWireCoil ",vehicleVarName] call ace_cargo_fnc_addCargoItem
+
+---
+
+#### ALiVE
+##### Profile all non-profiled units
+    [false, [_grp1,_grp2,_grp3,_grp4], nil ] call ALIVE_fnc_createProfilesFromUnitsRuntime;
+##### Prevent a group from being profiled
+    _grp1 setVariable ["ALIVE_profileIgnore", true];
+##### Marking Active Units
+    [] call ALIVE_fnc_markUnits
+##### Enabling profile debug
+    ALiVE_SYS_PROFILE setVariable ["debug","false", true];
+##### Enabling profile debug
+    [] call ALIVE_fnc_profileSystemDebug;
+##### Toggle IED and OPCOM installations
+    [] call ALIVE_fnc_OPCOMToggleInstallations;
+##### Storing stuff in databases
+* `ALiVE_fnc_getHash`
+* `ALiVE_fnc_setHash`
+
+```
+    ligthert [6:56 PM]    @highhead: Do you happen to know something about the _getHash and _setHash functions?
+    highhead [6:57 PM]    its a wrapper for the CBA fncs
+    highhead [6:57 PM]    what do you need
+    highhead [6:58 PM]    actually they set and get data to arrays that look like ["CBA_HASH",_key,_value,_defaultValue]
+    highhead [6:58 PM]    HashGet allows you to return custom defaultvalues
+    ligthert [7:01 PM]    The reason I am asking is because I found out that despite persistence's best efforts some vehicles and objects (and objectives) don't stay dead after loading the scenario again. I was thinking of putting all these objectives and objects in an array and have the stored in the database. Basically abusing _setHash and _getHash as a  glorified database abstraction layer to counteract this problem. :simple_smile:
+    highhead [7:01 PM]    so you can basically store ANY data easily by....
+    _myDataHandler = [] call ALiVE_fnc_HashCreate;
+    [_myDataHandler,"age",36] call ALiVE_fnc_HashSet;
+    [_myDataHandler,"size",185] call ALiVE_fnc_HashSet;
+    [_myDataHandler,"eyes","blue"] call ALiVE_fnc_HashSet;
+    [_myDataHandler,"gay",false] call ALiVE_fnc_HashSet;
+    [_myDataHandler,"body",objNull] call ALiVE_fnc_HashSet;
+    you can then get the data with:
+    _age = [_myDataHandler,"age",100] call ALiVE_fnc_HashGet;
+    etc....
+    ligthert [7:02 PM]    but but but, in the last example you put down ​_100_​, won't this fudge the value you get from hashGet up?
+    ligthert [7:02 PM]    Or is this de default value?
+    highhead [7:03 PM]    if the the age data within _myDataHandler would be not existing it would return 100
+    highhead [7:03 PM]    default value
+    ligthert [7:05 PM]    I see. :simple_smile:
+    ligthert [7:05 PM]    Are these hashes in a ​_namespace_​ of the scenario or can I steal other people's hashes? :simple_smile:
+    Pause OPCOM when the last player disconnected
+    In the initServer.sqf:
+    ["someId", "onPlayerConnected", { if (({isPlayer _x} count playableUnits) > 0 || OPCOM_TOGGLE) then { ["ALIVE_MIL_OPCOM"] call ALiVE_fnc_unPauseModule; OPCOM_TOGGLE = false; };}] call BIS_fnc_addStackedEventHandler;
+    ["someId", "onPlayerDisconnected", { if ( ({isPlayer _x} count playableUnits) == 0 ) then { ["ALIVE_MIL_OPCOM"] call ALiVE_fnc_pauseModule; OPCOM_TOGGLE = true; };}] call BIS_fnc_addStackedEventHandler;
+    Putting crates into objects
+    [ALiVE_SYS_LOGISTICS,"fillContainer",[_vehicle,_payload]] call ALiVE_fnc_Logistics;
+    _payload is an array with class-names or objects
+```
+
+##### Opening stuff from addAction
+```
+    this addAction ["Operations", {["OPEN_OPS",[]] call ALIVE_fnc_SCOMTabletOnAction}];
+    this addAction ["Intel", {["OPEN_INTEL",[]] call ALIVE_fnc_SCOMTabletOnAction}];
+    this addAction ["Logistics", {["OPEN",[]] call ALIVE_fnc_PRTabletOnAction}];
+    this addAction ["Tasking", {[] call ALiVE_fnc_C2MenuDef}];
+    this addAction ["Combat Support", {["radio"] call ALIVE_fnc_radioAction}];
+```
+
+##### Adding custom CQB zones
+```
+    highhead [6:22 PM] Set up CQB as you would normally.
+    highhead [6:23 PM] In Init.sqf put: [ALiVE_mil_CQB getVariable ["instances",[]]] call ALiVE_fnc_resetCQB;
+    highhead [6:23 PM] then activate your zones with: [_pos,_radius,_CQB] spawn ALiVE_fnc_addCQBpositions.
+    highhead [6:24 PM]whereas _CQB are instances of CQB modules. So the missionmaker f.e. can give it a name in editor, f.e. "CQB_regular" or "CQB_strategic" and
+    highhead [6:24 PM]put it in like [_pos,_radius,[CQB_Regular]] spawn ALiVE_fnc_addCQBpositions. (edited)
+    highhead [6:42 PM]  f.e. A mission maker wants to have CQB in all strategic positions over the map from the beginning of the mission. Regular CQB in a specific location should be activated by trigger.
+    - Add a CQB module on setting strategic and your other favorite settings (f.e. dominantFaction, density etc.).
+    - Add a CQB module on setting regular and your other favorite settings (f.e. dominantFaction, density etc.).
+    - Give the regular CQB module a name, f.e. myRegularCQBmodule
+    put in init.sqf
+    myRegularCQBmodule call ALiVE_fnc_resetCQB;
+    In your trigger activation put:
+    [_pos,_radius,[myRegularCQBmodule]] spawn ALiVE_fnc_addCQBpositions.
+    You can also use position thisTrigger and triggerSize variables of the trigger. Just make sure it only fires once :simple_smile:
+    highhead [6:44 PM] Additionally you can use [_pos,_radius,[CQB_Regular]] spawn ALiVE_fnc_removeCQBpositions to remove active CQB areas.
+```
+
+---
+
+### DCS World
+#### A-10C
+* [Wind correcting dummy bombs](http://forums.eagle.ru/showthread.php?t=66422)
+
+---
+
+## Misc
+### Quotes
+Why did I take this nickname again?
+```
+    [6-2-2014 23:42:36] Tupolov: Why are you dev/random
+    [6-2-2014 23:43:45] Sacha Ligthert: ArmA didn't accept the Sha1sum of my full name as nickname..
+    [6-2-2014 23:44:02] Sacha Ligthert: So I took a unix device that other people asociated me with in the past. :)
+    [6-2-2014 23:44:35] Sacha Ligthert: Sacha was getting kinda boring and ZombiTron would get confusing with scenarios containing zombies.
+    [6-2-2014 23:45:10] Sacha Ligthert: And I test the limits of certain tools with a nickname containing characters like /'s. ;)
+    [6-2-2014 23:52:26] Tupolov: you did!
+```
+
+I accidentally break things..
+```
+    [0:16:16] ARJay (ALiVE): Sacha stahp breaking our things, k thnks bai
+    [0:17:10] Sacha LigthertSorry, I'm here to break^H^H^H^H^H test things. :)
+    [0:20:56] Tupolov: /dev/random/break/your/shit/you/are/welcome
+    [0:22:29] Tupolov: ;)
+```
+
+Pek says goodbye:
+```
+    [1:47:13 PM] Pek: Gents, Ik heb besloten me niet actief met de community meer te betrekken en niet meer mee te doen aan sessies for the time being
+    [1:47:26 PM] Sacha Ligthert: Noted.
+    [1:47:50 PM] * Sacha Ligthert kicked Pek from the chat.
+```
+
+Hazey and I discuss our efforts:
+```
+    [16:11:38] Sacha Ligthert: Haze, Am I the only one with the impression that our version of insurgency kickstarted groups into adopting alive?
+    [16:14:00] Haze: I have seen a few larger groups run alive because of it. Would be interesting to get a download stat from tup when he is around.
+    [16:16:22] Sacha Ligthert: Haze, we rock! :D
+```

+ 0 - 6
content/posts/_index.md

@@ -1,6 +0,0 @@
----
-menu:
-  after:
-    weight: 5
-title: Blog
----

+ 0 - 30
content/posts/blog-post-1.md

@@ -1,30 +0,0 @@
----
-date: 2023-01-01
-tags: [post, blog]
----
-
-# Mira potui dives
-
-## Antemnas undis
-
-Lorem markdownum imago, futura dixit gemino amores concursibus parat. Amor
-colentes coniuge non mater eadem petiit oculosque vertice excussam, aris, hic
-hic neve ego hostesque quoque stratis! Sua ordinibus quidem gurgitis et per, est
-vices nec memini simul in novem solebat decoris.
-
-- Ipsum et aure urbe iamque nulli iter
-- Cursus pervenit pulchra talibus nutantia Solis ut
-- Incumbere tuaque
-- Scilicet cristis Ossaeae arbor
-- Gange offensa agros
-
-Teli pelagi dolore, socer in promissa, sit *venas licet mixta*, venit? Ignota
-fistula successu recisum, et namque est tradit et moratum tellus in robore erat,
-*acie* habenas. Has ora pedibus, nolis.
-
-## Agmine illa est perstant
-
-Aequora possis: amplectitur se dei superi: versum: sinu nec, miseras. Dextra
-*num* simul numquam caelesti Glauci **adimunt paruerit** pugnat derectos corpus
-pavor patriam fit ignibus **vati cursus succutiturque**. Aliena [per missus
-sparsus](#antemnas-undis), interea summe.

+ 0 - 48
content/posts/blog-post-2.md

@@ -1,48 +0,0 @@
----
-date: 2023-01-02
-tags: [post, blog]
----
-
-# Matrem missum eris casuque
-
-## Nequiquam vagae quem cetera
-
-### Tepido illos
-
-Lorem markdownum Dulichiae pietas `maximize` pectora in facta coeunt angustum in
-caput trementi cognitus me **et criminis actis** et. Numen inhaesit monebat,
-animas in taurorum coniunx Phlegethontide prominet: illo. Recens data regno,
-detestatur solio. Suae retia vulnera: flavaque noscoque venefica miseratus. Iam
-quae vixque limina quaerenti Daedalon cinis **regia pondere**: amo.
-
-- Rapida advehor pectora borean tempora me vidi
-- Sensurus quae si cum concutio tecum
-- Inquit Cupidinis erat
-- Furtim cum Nereius levi audiat
-
-### Sed mutatur dextra addidit
-
-Omnes in deducere nec, quam Iuppiter antro caluere, adhaesit, quem manus
-Minervae vim lustro nec dedantur ne. Habebam **raptoresque** vultus: superest
-foedoque pignusque quoque `flowchartGuidClean`, Tyrium deam est noctis rector
-`raw` divulsaque vires Nilum? Et Tartara in guttur contraria fertilis: gerentem
-dextra Nereaque socer, e sumptis semper furor, ne.
-
-1. Unus Perseu contingent visa magniloquo manus illa
-2. Et quam docebo Aries invidia quid saepe
-3. Sui simili ad a in et litus
-4. De tinctis error
-5. Vellent perque poste mirantum calorque dextra
-
-## Stipite ultoresque et monendo
-
-Haec vinci, nostros, mandata talia pro una dempserat Phoebes supponitur
-`sampleCompact` quotiens roseum mea tibi nati! Honore utrimque; iam
-[olor](#stipite-ultoresque-et-monendo) ortuque.
-
-1. Ille iacentem corpora matrem
-2. Haec iamque sequitur thalami
-3. Sedes ut admonitu mortalis pacatum quoque
-4. Aevi per flumine
-5. Cunctari volenti
-6. Tuba nec ictus

+ 0 - 38
content/posts/blog-post-3.md

@@ -1,38 +0,0 @@
----
-date: 2023-01-03
-tags: [post, blog]
----
-
-# Ter proxima enim
-
-## Regisque exponit squalidus humus
-
-Lorem markdownum vidit. Carpe `cybercrime` tenuisse quoque omnia postquam: voce
-Iove cuspidis ubi miratur, exarsit, detrusit dixerat vulnere. Iuvencos vel
-Letoia de nota habebam aut certa canes: maior animam. Et vanum ope probes
-occupat insula, a, quae esse sanguis mortale praestat molitor et collo
-distinctus facundia. Naides si regem omne, est longaque manus servatrix et alii.
-
-    wan_gigo_eide += bank(onExport.minicomputer(664746, activex), keywords(
-            dosGif));
-    backboneUat = drop / petabyte_error(version, mirroredWeb, lion);
-    var leopard_input = expressDesign(asp_sampling, compressionAclManagement);
-    downAddress = server(card(327046, symbolic, ping_excel) / flash);
-    if (ipad) {
-        crtCd = wordEps + 3;
-        sla.nntp_service.platform(hibernate);
-    } else {
-        font.reciprocal_mysql = moduleCircuitCell.kilohertz(27);
-    }
-
-Arte pudorem et vincas terrasque male ursos! Albas vara vitam, tempore quoque!
-Dum in sciet *stratosque* nequeo, confisa gelido expers deus paruit fuit
-**obvia** scopulum: modo exit linguaque. Tinctam quoque quid trepidos teste sic
-ripae aut **Venus pacali** casus, ingeniis parens. Non durum!
-
-Genitas magos, iuvenes asper calorque: gerunt in mora coepit moenibus *desunt*.
-Imagine o retro dea virginibusque quod in locoque, fama turbatque viscera
-lacertis! Viso **atros habitare** retenta tamen viribus pervenientia texta. Si
-tamen, et dum est cura sola est est sinuatur *adsere tenus armis*; minuit
-baculi. Conspecta secant credas nec et aquas Atreus paene bracchia domitae parte
-parias infamia crura errabant et herba.

+ 0 - 42
content/posts/blog-post-4.md

@@ -1,42 +0,0 @@
----
-date: 2023-01-04
-tags: [post, blog]
----
-
-# Proles et obortis nimium
-
-## Quod tantum et eripui
-
-Lorem markdownum herbae, postes vias tibique manet Exigit obstantis eque
-Deucalioneas manet! Qua non neque cum montana Pandiona pelagi est inponit animas
-coniuge ista, haec. Cum subiere ceciderunt audisse nudo meo reponuntur petii
-*incommendataque recentes*; tauri eram, bracchia. Pollice aures est: inde per
-tendensque divum Procne ut non ille iacit **quando**, tendens catulus legesque
-Paeonia accessit. Passu amantem est igneus, iuguloque iuvenis pendentes
-Athamanta in Turne, Broteasque ignes.
-
-> Expresso discumbere pectore minuente perfundere dumque quo tot oculisque
-> Tyrioque, et et veniunt cremat? Non cinnama caelo, hic aer. Ora
-> `terahertz_rpm` ponit, est que inquirit dictis, est metuit et Pallas in non
-> dextera, inter excussit.
-
-## Nare quae
-
-Studiosus antiquae dixit tibi precando suadent quis lumina: opaca nati
-conpositas audita. Cura et `flash_web_clean` Thessalidum inmisit aut `gopher`,
-aethere spatiosa; et. Sua est faciem falso deus, iustos, una carens torto
-Tartessia quae, amplectitur vetus salices. Quo viri trita modo sed agna, Lotis
-disicit.
-
-> Vale hoste parenti haustus silvis: in ne mortis iam ubi dea vulgata nec
-> servatum inquit rates. Sola planissima vocor sustinuit hac urbis ubi non
-> Cinyreius, croceis mediumque carinam Austri nutu nigro. Inmanem fruges, numen
-> genus dedit mutant: magnis *et* leves rosave ab euntem puppes, habebat! Non
-> tibi coniugis ait feres datur quantum `storage` duos haud teneri aratri.
-> **Atro animo**, ignis Scythiam iter rogandos casside incaluit.
-
-## Deserto Dauni
-
-Ab flemus ignarus nam fingens educat hoc prodest [tumet](#ante-mollito), quid.
-Una fecit, et evicere nudaque Taygetenque tento. In videt `clockDvr` si madentis
-antiquae Amphimedon regna sede: salutant lympha obstrusaque Caras, Iove.

+ 21 - 19
hugo.yaml

@@ -1,12 +1,12 @@
-baseURL: http://0.0.0.0:1313/
-title: Documentation
-theme: hugo-book
+baseURL: https://sacha.ligthert.net/
+title: "Sacha Ligthert"
+theme: "hugo-book"
 
-copyright: "This is a copyright placeholder"
+copyright: "2026"
 
 # Book configuration
 disablePathToLower: true
-enableGitInfo: true
+enableGitInfo: false
 
 # Needed for mermaid/katex shortcodes
 markup:
@@ -14,7 +14,7 @@ markup:
     renderer:
       unsafe: true
   tableOfContents:
-    startLevel: 1
+    startLevel: 5
   highlight:
     style: base16-snazzy
 
@@ -38,19 +38,19 @@ markup:
 #     weight: 3
 
 menu:
-  home:
-    - name: "Documentation"
-      pageRef: "/docs/"
-      weight: 10
-    - name: "Github"
-      url: "https://github.com/alex-shpak/hugo-book/"
-      weight: 20
+  # home:
+    # - name: "/"
+    #   pageRef: "/"
+    #   weight: 10
+    # - name: "Notes"
+    #   url: "/notes/"
+    #   weight: 20
 
   # before: []
-  after:
-    - name: "Github"
-      url: "https://github.com/alex-shpak/hugo-book"
-      weight: 10
+  # after:
+  #   - name: "Github"
+  #     url: "https://github.com/alex-shpak/hugo-book"
+  #     weight: 10
 
 taxonomies:
   tag: tags
@@ -64,6 +64,7 @@ params:
   # Start and end levels can be controlled with markup.tableOfContents setting.
   # You can also specify this parameter per page in front matter.
   # BookToC: true
+  BookToC: true
 
   # (Optional, default favicon.png) Set the path to a favicon file.
   # If the favicon is /static/favicon.png then the path would be favicon.png
@@ -77,6 +78,7 @@ params:
   # Page is resoled by .GetPage function: https://gohugo.io/functions/getpage/
   # For backward compatibility you can set '*' to render all sections to menu. Acts same as '/'
   # BookSection: docs
+  BookSection: '*'
 
   # (Optional, default none) Set template for commit link for the page. Requires enableGitInfo.
   # When set enabled 'Last Modified' and a link to the commit in the footer of the page.
@@ -97,7 +99,7 @@ params:
   # (Optional, default true) Enables search function with flexsearch,
   # Index is built on fly, therefore it might slowdown your website.
   # Configuration for indexing can be adjusted in i18n folder per language.
-  BookSearch: true
+  BookSearch: false
 
   # (Optional, default true) Enables comments template on pages
   # By default partals/docs/comments.html includes Disqus template
@@ -110,7 +112,7 @@ params:
   # Portable links meant to work with text editors and let you write markdown without {{< relref >}} shortcode
   # Theme will print warning or error if page referenced in markdown does not exists.
   # Possible values are false | 'warning' | 'error'
-  BookPortableLinks: 'warning'
+  BookPortableLinks: false
 
   # /!\ This is an experimental feature, might be removed or changed at any time
   # (Optional, experimental, default false) Enables service worker that caches visited pages and resources for offline use.

+ 1 - 1
themes/hugo-book

@@ -1 +1 @@
-Subproject commit 3a475b076175b970b3ab071e5be426c51aa11e12
+Subproject commit 4ae5c8a6bdcaae3a89ce384c9d5dc92ff1cee005

+ 6 - 0
update_blog.sh

@@ -0,0 +1,6 @@
+#!/bin/sh
+
+hugo -D
+aws s3 sync public/ s3://sacha.ligthert.net-2022/ --delete
+sleep 5
+aws cloudfront create-invalidation --distribution-id E1DZQQB3G29QCR --path "/*"