summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Fankhauser hiddenalpha.ch2024-02-19 22:49:36 +0100
committerAndreas Fankhauser hiddenalpha.ch2024-02-19 22:49:49 +0100
commit6ef494a9ef013799377d3b96205902fcd6f29078 (patch)
tree1f62efd2d04c303f4605b6c1a9d6667b0a4e1191
parentd2cf81052a817a9b9a61e2a97374034375a81ba6 (diff)
parentd9cc1a9fd67ecf8cdf6e7a75cdd4587ec4fd2d91 (diff)
downloadUnspecifiedGarbage-6ef494a9ef013799377d3b96205902fcd6f29078.zip
UnspecifiedGarbage-6ef494a9ef013799377d3b96205902fcd6f29078.tar.gz
Merge remote-tracking branch 'master'
-rw-r--r--doc/note/links/links.txt7
-rw-r--r--doc/note/maven/maven.txt9
-rw-r--r--doc/note/nginx/nginx.txt28
-rw-r--r--doc/note/qemu/qemu-compile-itself.txt21
-rw-r--r--doc/note/qemu/qemu.txt9
-rw-r--r--doc/note/qemu/setup-dockerVM.txt73
-rw-r--r--doc/note/qemu/setup-windoof.txt2
-rw-r--r--src/main/firefox/gaga-plugin/main.js149
8 files changed, 203 insertions, 95 deletions
diff --git a/doc/note/links/links.txt b/doc/note/links/links.txt
index d187788..10bd745 100644
--- a/doc/note/links/links.txt
+++ b/doc/note/links/links.txt
@@ -264,13 +264,14 @@ Links (Aka argument amplifiers)
- [Just one message per minute](https://gitit.post.ch/projects/ISA/repos/eagle/pull-requests/375/overview?commentId=330543)
- [Houston down readyness probe timeout](https://wikit.post.ch/x/koO0Vg)
-## Errorhandling is not needed ...
-- [OOM exit code 137 9 sigkill houston openshift pod](https://jira.post.ch/browse/SDCISA-13746?focusedId=1925526&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-1925526)
-
## Common Performance
+- [Java Exceptions performance is bad](https://www.baeldung.com/java-exceptions-performance)
- [going fast is about doing less](https://m.youtube.com/watch?v=5rb0vvJ7NCY)
- [CppCon Tuning Benchmarks clang CPUs Compilers" ](https://m.youtube.com/watch?v=nXaxk27zwlk)
+## Errorhandling is not needed ...
+- [OOM exit code 137 9 sigkill houston openshift pod](https://jira.post.ch/browse/SDCISA-13746?focusedId=1925526&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-1925526)
+
## Bugs are not an issue
- [Bistr gateleen Forwarder exception](https://jira.post.ch/browse/SDCISA-11147)
diff --git a/doc/note/maven/maven.txt b/doc/note/maven/maven.txt
index 309fa63..10a606a 100644
--- a/doc/note/maven/maven.txt
+++ b/doc/note/maven/maven.txt
@@ -23,10 +23,15 @@ mvn deploy -DaltDeploymentRepository=artifactory-snapshots::default::https://art
mvn deploy -Dcmake.generate.skip=true -Dcmake.compile.skip=true -DaltDeploymentRepository=artifactory-releases::default::https://artifactory.tools.pnet.ch/artifactory/libs-release-local
-true `# Deploy custom build 20240206` \
+true \
&& DEPLOPTS= \
+ && `# Deploy custom gateleen build 20240206` \
&& mvn clean install -pl '!gateleen-hook-js,!gateleen-playground' \
- && mvn deploy -DskipTests -pl '!gateleen-hook-js,!gateleen-playground' $DEPLOPTS \
+ && mvn deploy -DskipTests -pl '!gateleen-hook-js,!gateleen-playground' ${DEPLOPTS:?} \
+ && `# Deploy custom houston build 20240216` \
+ && jenkinsbuild-by-upstream \
+ #&& mvn clean install \
+ #&& mvn deploy -DskipTests ${DEPLOPTS:?} \
&& true
diff --git a/doc/note/nginx/nginx.txt b/doc/note/nginx/nginx.txt
index d5ce9db..0550e7f 100644
--- a/doc/note/nginx/nginx.txt
+++ b/doc/note/nginx/nginx.txt
@@ -3,34 +3,44 @@
[looks promising](https://stackoverflow.com/a/73297125/4415884)
+ # Basic setup:
+ # - Maybe change "access_log" to "/var/log/nginx/access.log".
+ # - For CLI use: Change all "/tmp/nginx" to "." (single dot, aka workdir or
+ # other user writable dir).
+ # Public expose setup:
+ # - Adapt "listen" as commented.
+ # - set "server_name" to meaningful value.
+ #
#daemon off; # run in foreground (eg from cli)
events {}
- pid nginx.pid;
+ pid /var/run/nginx.pid;
http {
access_log /dev/stdout;
# Directories nginx needs configured to start up.
- client_body_temp_path .;
- proxy_temp_path .;
- fastcgi_temp_path .;
- uwsgi_temp_path .;
- scgi_temp_path .;
+ client_body_temp_path /tmp/nginx;
+ proxy_temp_path /tmp/nginx;
+ fastcgi_temp_path /tmp/nginx;
+ uwsgi_temp_path /tmp/nginx;
+ scgi_temp_path /tmp/nginx;
server {
- # For public access use "80" and "[::]:80"
+ # public access: "80" and "[::]:80"
+ # local access: "127.0.0.1:80" and "[::1]:80"
listen 127.0.0.1:80;
listen [::1]:80;
server_name localhost;
- root /srv/www
+ root /srv/www;
location /foo {
+ #autoindex on; # directory listing
try_files $uri $uri/ =404;
}
location /example {
- autoindex on; # enable directory listing
return 200 "Example says hi";
}
}
}
+
[tutorial](https://www.javatpoint.com/nginx-minimal-configuration)
diff --git a/doc/note/qemu/qemu-compile-itself.txt b/doc/note/qemu/qemu-compile-itself.txt
new file mode 100644
index 0000000..c274c13
--- /dev/null
+++ b/doc/note/qemu/qemu-compile-itself.txt
@@ -0,0 +1,21 @@
+
+#
+# Compile qemu bullshit-free for windoof.
+#
+
+true \
+ && QEMU_URL="https://gitlab.com/qemu-project/qemu/-/archive/v8.2.1/qemu-v8.2.1.tar.gz" \
+ && WORKDIR=/home/${USER:?}/work \
+ && CACHEDIR=/var/tmp \
+ && QEMU_TGZ="${QEMU_URL_TODOCUTIT:?}" \
+ && apt install -y --no-install-recommends curl \
+ && curl -D- "${QEMU_URL:?}" -o "${CACHEDIR:?}/${QEMU_TGZ:?}" \
+ && cd "${WORKDIR:?}" \
+ && tar xf "${CACHEDIR:?}/${QEMU_TGZ:?}" \
+ && mkdir build \
+ && cd build \
+ && ../configure \
+ && make \
+ && true
+
+
diff --git a/doc/note/qemu/qemu.txt b/doc/note/qemu/qemu.txt
index 1862858..4dd7f0c 100644
--- a/doc/note/qemu/qemu.txt
+++ b/doc/note/qemu/qemu.txt
@@ -34,7 +34,16 @@ Windoof:
qemu-img convert -O qcow2 input.qcow output.qcow2
+## Shrink snapshot layer
+
+ qemu-img convert -O qcow2 snapLayer.qcow2 tmpFullClone.qcow2
+ qemu-img create -f qcow2 -b tmpFullClone.qcow2 diff.qcow2
+ qemu-img rebase -b base.qcow2 tmpDiff.qcow2
+ mv tmpDiff.qcow2 snapLayer.qcow2
+
+
## Example Params (Usage: CopyPaste, then delege what is not needed)
+# TODO use '-nodefaults'.
qemu-system-x86_64 \
-accel kvm:whpx:hax:tcg -m size=2G -smp cores=$(nproc) \
-monitor stdio \
diff --git a/doc/note/qemu/setup-dockerVM.txt b/doc/note/qemu/setup-dockerVM.txt
new file mode 100644
index 0000000..b3e7e67
--- /dev/null
+++ b/doc/note/qemu/setup-dockerVM.txt
@@ -0,0 +1,73 @@
+
+#
+# Use qemu to host dockerimages.
+#
+# [Execute Docker Containers as QEMU MicroVMs](https://mergeboard.com/blog/2-qemu-microvm-docker/)
+#
+
+true \
+ && LINUX_URL=https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.7.4.tar.xz \
+ && SUDO=sudo \
+ && CACHEDIR=/var/tmp \
+ && WORKDIR=/home/$USER/work \
+ && LINUX_TXZ=$(basename "${LINUX_URL:?}") \
+ && true \
+ && $SUDO apt install -y --no-install-recommends make gcc bc flex bison libc-dev libelf-dev libssl-dev \
+ && true \
+ && cd "${CACHEDIR:?}" \
+ && curl -L "${LINUX_URL:?}" -O \
+ && cd "${WORKDIR:?}" \
+ && tar xf "${CACHEDIR:?}/${LINUX_TXZ:?}" \
+ && cd linux* \
+ && base64 -d <<EOF | gunzip > .config &&
+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
+xqZFdHAYI2VciPZ/TosyDcUdAAA=
+EOF
+true \
+ && make olddefconfig \
+ && make -j$(nproc) \
+ && echo "[WARN ] TODO steps from here on are UNTESTED" && sleep 3 \
+ && ls -Ahl arch/*/boot/bzImage \
+ && true
+
+
diff --git a/doc/note/qemu/setup-windoof.txt b/doc/note/qemu/setup-windoof.txt
index 4428ba3..5df2cac 100644
--- a/doc/note/qemu/setup-windoof.txt
+++ b/doc/note/qemu/setup-windoof.txt
@@ -32,7 +32,7 @@ trashcan or downloaded installers:
SDelete.exe -nobanner -z C:
-Shutdown guest, then compact disc.
+Shutdown win guest, then compact disc.
qemu-img convert -O qcow2 input.qcow output.qcow2
diff --git a/src/main/firefox/gaga-plugin/main.js b/src/main/firefox/gaga-plugin/main.js
index 2a5bbae..4447719 100644
--- a/src/main/firefox/gaga-plugin/main.js
+++ b/src/main/firefox/gaga-plugin/main.js
@@ -1,15 +1,10 @@
/*
- * For how to install see:
- *
- * "https://git.hiddenalpha.ch/UnspecifiedGarbage.git/tree/doc/note/firefox/firefox.txt"
+ * [How to install](UnspecifiedGarbage/doc/note/firefox/firefox.txt)
*/
;(function(){ try{
var NDEBUG = false;
var STATUS_INIT = 1;
- var STATUS_RUNNING = 2;
- var STATUS_DONE = 3;
- var STATUS_OBSOLETE = 4;
var NOOP = function(){};
var LOGERR = console.error.bind(console);
var N = null;
@@ -19,11 +14,10 @@
function main(){
var app = Object.seal({
ui: {},
- status: Object.seal({
- checklistBtn: STATUS_INIT,
- developmentBtn: STATUS_INIT,
- }),
lastClickEpochMs: 0,
+ wantChecklistExpanded: false,
+ wantDevelopmentExpanaded: false,
+ wantBigTemplateExpanded: false,
});
if( NDEBUG ){
setTimeout = window.setTimeout;
@@ -32,14 +26,16 @@
}else{ /* fix broken tooling */
setTimeout = setTimeoutWithCatch.bind(0, app);
logErrors = logErrorsImpl.bind(N, app);
- LOGDBG = console.debug.bind(console);
+ LOGDBG = console.debug.bind(console, "[gaga-plugin]");
}
document.addEventListener("DOMContentLoaded", logErrors.bind(N, onDOMContentLoaded, app));
+ scheduleNextStateCheck(app);
+ LOGDBG("gaga-plugin initialized");
}
function onDOMContentLoaded( app ){
- cleanupClutter(app);
+ LOGDBG("onDOMContentLoaded()");
attachDomObserver(app);
}
@@ -50,83 +46,58 @@
}
- function onDomHasChangedSomehow( app, changes, mutationObserver ){
- var nowEpochMs = Date.now();
- if( (app.lastClickEpochMs + 2000) > nowEpochMs ){
- LOGDBG("ignore, likely triggered by user.");
- return; }
- var needsReEval = false;
- for( var change of changes ){
- if( change.target.nodeName != "BUTTON" ) continue;
- var isAriaExpanded = (change.attributeName == "aria-expanded");
- var isChildAdded = (change.addedNodes.length > 0);
- var isChildRemoved = (change.removedNodes.length > 0);
- var isChildAddedOrRemoved = isChildAdded || isChildRemoved;
- if( !isAriaExpanded && !isChildAddedOrRemoved ) continue;
- if( isAriaExpanded ){
- LOGDBG("Suspicious, isExpanded: ", change.target);
- needsReEval = true; break;
- }
- if( !isChildAddedOrRemoved ) continue;
- var isBloatyChecklistBtnStillThere = document.body.contains(getBloatyChecklistBtn(app));
- if( !isBloatyChecklistBtnStillThere ){
- LOGDBG("Suspicious, btn lost");
- needsReEval = true; break;
- }
- var isBloatyDevelopmentBtnStillThere = document.body.contains(getBloatyDevelopmentBtn(app));
- if( !isBloatyDevelopmentBtnStillThere ){
- LOGDBG("Suspicious, btn lost");
- needsReEval = true; break;
- }
- }
- if( needsReEval ){
- LOGDBG("Change detected! Eval again");
- app.ui.bloatyChecklistBtn = null;
- app.ui.bloatyDevelopmentBtn = null;
- setTimeout(cleanupClutter, 42, app);
+ function scheduleNextStateCheck( app ){
+ //LOGDBG("scheduleNextStateCheck()");
+ if( app.stateCheckTimer ){
+ LOGDBG("Why is stateCheckTimer not zero?", app.stateCheckTimer);
}
+ app.stateCheckTimer = setTimeout(function(){
+ app.stateCheckTimer = null;
+ scheduleNextStateCheck(app);
+ performStateCheck(app);
+ }, 42);
}
- function cleanupClutter( app ){
- if( app.bloatyChecklistDone != STATUS_RUNNING ){
- app.bloatyChecklistDone = STATUS_OBSOLETE
- setTimeout(hideBloatyButton, 0, app, "checklistBtn");
- }
- if( app.bloatyDevelopmentDone != STATUS_RUNNING ){
- app.bloatyDevelopmentDone = STATUS_OBSOLETE;
- setTimeout(hideBloatyButton, 0, app, "developmentBtn");
- }
- if( app.bloatyDevelopmentDone != STATUS_RUNNING ){
- app.bloatyDevelopmentDone = STATUS_OBSOLETE;
- setTimeout(hideBloatyButton, 0, app, "bigTemplateBtn");
+ function performStateCheck( app ){
+ var buttons = [ "checklistBtn", "developmentBtn", "bigTemplateBtn" ];
+ var wantKey = [ "wantChecklistExpanded", "wantDevelopmentExpanaded", "wantBigTemplateExpanded" ];
+ for( var i = 0 ; i < buttons.length ; ++i ){
+ var btnKey = buttons[i];
+ var btnElem = getBloatyButton(app, btnKey);
+ if( !btnElem ) continue;
+ var isExpanded = isAriaBtnExpanded(app, btnElem)
+ var wantExpanded = app[wantKey[i]];
+ //LOGDBG(btnKey +" expanded is", isExpanded);
+ if( isExpanded && !wantExpanded ){
+ collapseAriaBtn(app, btnElem);
+ }
}
}
- function setLastClickTimeToNow( app ){ app.lastClickEpochMs = Date.now(); }
+ function onDomHasChangedSomehow( app, changes, mutationObserver ){
+ var nowEpochMs = Date.now();
+ LOGDBG("DOM Change detected!");
+ /*refresh dom refs so check will work on correct elems*/
+ Object.keys(app.ui).forEach(function( key ){
+ app.ui[key] = null;
+ });
+ }
- function hideBloatyButton( app, btnKey ){
- if( app.status[btnKey] == STATUS_DONE ){
- LOGDBG(btnKey +" now hidden");
- return; }
- app.status[btnKey] == STATUS_RUNNING;
- var btn = getBloatyButton(app, btnKey);
- do{
- if( !btn ){ LOGDBG(btnKey +" not found. DOM maybe not yet ready?"); break; }
- var isExpanded = isAriaBtnExpanded(app, btn);
- if( isExpanded === true ){
- LOGDBG(btnKey +".click()");
- btn.click();
- }else if( isExpanded === false ){
- app.status[btnKey] = STATUS_DONE;
- }else{
- throw Error("Neither true nor false "+ typeof(isExpanded) +" "+ isExpanded);
- }
- }while(0);
- /* try later */
- setTimeout(hideBloatyButton, 16, app, btnKey);
+ function onBloatyChecklistBtnMousedown( app ){
+ app.wantChecklistExpanded = !app.wantChecklistExpanded;
+ }
+
+
+ function onBloatyDevelopmentBtnMousedown( app ){
+ app.wantDevelopmentExpanaded = !app.wantDevelopmentExpanaded;
+ }
+
+
+ function onBloatyBigTemplateBtnMousedown( app ){
+ app.wantBigTemplateExpanded = !app.wantBigTemplateExpanded;
}
@@ -135,19 +106,22 @@
}else if( btnKey == "checklistBtn" ){
var selector = "button[aria-label=Checklists]";
var uiKey = "bloatyChecklistBtn";
+ var onMousedown = onBloatyChecklistBtnMousedown;
}else if( btnKey == "developmentBtn" ){
var selector = "button[aria-label=Development]";
var uiKey = "bloatyDevelopmentBtn";
+ var onMousedown = onBloatyDevelopmentBtnMousedown;
}else if( btnKey == "bigTemplateBtn" ){
var selector = "button[aria-label=BigTemplate]";
var uiKey = "bloatyBigTemplateBtn";
+ var onMousedown = onBloatyBigTemplateBtnMousedown;
}else{
throw Error(btnKey);
}
if( !app.ui[uiKey] ){
var btn = fetchUiRefOrNull(app, document, selector);
if( btn ){
- btn.addEventListener("mousedown", logErrors.bind(N, setLastClickTimeToNow, app));
+ btn.addEventListener("mousedown", logErrors.bind(N, onMousedown, app));
app.ui[uiKey] = btn;
}
}
@@ -155,6 +129,21 @@
}
+ function collapseAriaBtn( app, btnElem ){
+ do{
+ var isExpanded = isAriaBtnExpanded(app, btnElem);
+ if( isExpanded === true ){
+ LOGDBG("click()");
+ btnElem.click();
+ }else if( isExpanded === false ){
+ break;
+ }else{
+ throw Error("Neither true nor false "+ typeof(isExpanded) +" "+ isExpanded);
+ }
+ }while(0);
+ }
+
+
function isAriaBtnExpanded( app, btnElem ){
var value = btnElem.getAttribute("aria-expanded");
if( value === "true" ){