Meta tags:
Author= Stephan H. Wissel;
description= Thoughts, Insights and Opinions of Stephan H. Wissel. Topics included: Salesforce, IBM, JEE, .Net, Software Archtecture, Personcentric Development, Agile Software, SDLC, Singapore and my Twins;
Headings (most frequently used words):
your, act, with, to, priorities, for, machine, age, github, developer, setup, git, http, are, not, know, let, the, key, wissel, net, shifting, builder, pattern, flexible, defaults, jwt, communication, how, we, trained, lotus, notes, hcl, opensources, couchcompanion, using, in, actions, harden, and, direnv, use, tmux, automate, signing, commits, welcome, query, classified, they, ranked, this, is, what, work, that, generating, access_token, collaboration, training, fauxton, as, role, model, tl, dr, limit, blast, radius, three, components, multiplex, terminal, choice, of, formats, agreement, implementation, shop, languages, categories, archive, reference, about, me, contact, disclaimer, get, macos, ready, create, configure, local, overwrite, individual, repos, optional, standards, extensions, anything, tooling, needs, catch, up,
Text of the page (most frequently used words):
the (111), and (56), your (32), with (28), for (25), you (22), that (18), are (18), rfc (17), key (17), http (16), this (15), 2026 (14), would (14), git (14), wissel (13), #github (12), can (12), config (12), not (11), stephan (11), #categories (11), about (10), posted (10), more (10), all (10), notes (9), one (9), gpg (9), when (9), read (9), terminal (9), what (9), development (8), query (8), get (8), tmux (8), them (8), they (7), lotus (7), couchdb (7), run (7), builder (7), here (6), code (6), but (6), macos (6), after (6), new (6), just (6), out (6), time (6), how (6), have (6), setup (6), user (6), email (6), true (6), global (6), task (6), might (6), age (6), any (5), name (5), available (5), other (5), even (5), work (5), hcl (5), standards (5), list (5), like (5), use (5), john (5), doe (5), gpg_key_id (5), act (5), sessions (5), machine (5), from (5), using (5), build (5), since (4), some (4), software (4), ibm (4), jwt (4), container (4), blog (4), needs (4), has (4), both (4), webdav (4), search (4), was (4), control (4), long (4), august (4), there (4), target_email (4), gpgsign (4), let (4), look (4), pinentry (4), followed (4), into (4), which (4), different (4), day (4), were (4), emails (4), hand (4), material (4), size (4), ring (4), downloads (3), request (3), apache (3), 2003 (3), way (3), current (3), etc (3), don (3), shop (3), solution (3), domino (3), 2010 (3), 2008 (3), 2007 (3), webdevelopment (3), webcomponents (3), twins (3), rust (3), quarkus (3), openapi (3), java (3), docker (3), usual (3), ymmv (3), need (3), while (3), developer (3), method (3), working (3), version (3), break (3), could (3), secret (3), been (3), server (3), another (3), take (3), commit (3), public (3), make (3), right (3), running (3), keys (3), dev (3), signing (3), gnupg (3), pick (3), shell (3), happen (3), each (3), two (3), variables (3), directory (3), actually (3), secrets (3), three (3), must (3), loaded (3), their (3), actions (3), add (3), introduced (3), september (3), fauxton (3), couchcompanion (3), participant (3), collaboration (3), capital (3), letters (3), sheets (3), trainer (3), then (3), module (3), participants (3), net (3), pattern (3), priorities (3), priority (3), rights (2), unless (2), otherwise (2), made (2), license (2), written (2), site (2), supported (2), previous (2), employers (2), own (2), official (2), think (2), based (2), older (2), reference (2), archive (2), 2022 (2), 2011 (2), 2004 (2), 2002 (2), singapore (2), show (2), protocols (2), opensource (2), identity (2), curl (2), integration (2), caldav (2), business (2), hours (2), languages (2), now (2), tooling (2), catch (2), extension (2), open (2), tools (2), works (2), project (2), tango (2), used (2), before (2), avoid (2), methods (2), bind (2), acl (2), access (2), 1999 (2), document (2), options (2), put (2), head (2), post (2), ones (2), venerable (2), see (2), agreement (2), follow (2), share (2), care (2), keyword (2), contain (2), body (2), expect (2), will (2), years (2), much (2), why (2), said (2), automate (2), script (2), signingkey (2), tag (2), pull (2), rebase (2), individual (2), know (2), sure (2), configure (2), line (2), starting (2), sec (2), example (2), com (2), ed25519 (2), sign (2), echo (2), create (2), brew (2), install (2), mac (2), prefix (2), agent (2), conf (2), good (2), shall (2), ssh (2), important (2), than (2), ever (2), supply (2), chain (2), hard (2), start (2), enter (2), multiplexer (2), between (2), live (2), window (2), looking (2), coffee (2), everything (2), left (2), second (2), multiple (2), api (2), keyboard (2), required (2), ctrl (2), pair (2), claude (2), described (2), lets (2), keep (2), background (2), database (2), centric (2), want (2), typically (2), very (2), whatever (2), file (2), wrote (2), direnv (2), encryption (2), env (2), components (2), token (2), credential (2), defense (2), wondering (2), recipients (2), last (2), couch (2), companion (2), 5984 (2), admin (2), tech (2), oidc (2), idp (2), big (2), today (2), got (2), only (2), better (2), minutes (2), however (2), less (2), discussion (2), sent (2), link (2), rest (2), response (2), documents (2), four (2), paper (2), every (2), ask (2), requests (2), favorite (2), stand (2), learn (2), responses (2), training (2), word (2), down (2), generating (2), machines (2), october (2), defaults (2), platinum (2), diamonds (2), carats (2), engraving (2), forever (2), digital (2), equally (2), urgent (2), dropdown (2), jira (2), food (2), presentations (2), series (2), home (2), listed, exception, granted, mine, grant, logo, graphic, design, trademark, trade, type, samples, labeled, under, models, confirmation, creative, commons, attribution, noncommercial, sharealike, reserved, affiliated, endorsed, sanctioned, nor, enlightened, may, employee, opinions, theories, facts, presented, given, capacity, short, these, words, former, begin, disclaimer, bluesky, spreadshirt, linkedin, mastodon, contact, director, innovation, asean, references, xsl, rendering, complete, 2025, 2024, 2023, 2021, 2020, 2019, 2018, 2017, 2016, 2015, 2014, 2013, 2012, 137, 151, 168, 2009, 111, 101, 130, 2006, 123, 2005, 116, xpages, xml, writing, chinese, workflow, vert, unittesting, umsys, typescript, travel, technology, tdd, sywtbadd, sql, 212, socialbusiness, 189, tell, thursday, sfdx, sametime, salesforce, reactive, pmd, omnisophie, nosql, nokia, nodered, nodejs, nginx, networking, mobile, maven, lotusphere, 115, linux, lightning, learning, k8s, javascript, intercultural, management, 161, heroku, gtd, graalvm, gone, phisching, elearning, dxlmagic, drapi, cycling, coursera, continuous, cloudflare, cloud, computing, buying, broadband, buddhakids, bluemix, apex, agile, 229, 繁體中文, 简体中文, 한국어, русский, dansk, bahasa, indonesia, italiano, español, deutsch, entries, july, standard, enums, adjacent, updated, provision, syntax, fine, bruno, believe, clone, watch, network, controls, ends, little, fun, anything, early, inspiration, drafts, group, settled, baggage, map, cleanly, onto, uri, component, reuses, 6352, carddav, contacts, unbind, rebind, 5842, bindings, 5323, mkcalendar, 4791, calendaring, 3744, orderpatch, 3648, ordered, collections, checkout, checkin, report, merge, 3253, deltav, versioning, 4918, revised, propfind, proppatch, mkcol, copy, move, lock, unlock, 2518, core, added, extensions, 10008, 9110, summarized, semantics, 5789, patch, 2616, refined, 2068, 1997, delete, trace, connect, 1945, 1996, 1991, standardized, hammering, agreements, consuming, tedious, especially, foundational, tested, surrounding, etiquette, interaction, laws, gentlemen, stating, reasonable, expectation, exchange, information, ietf, protocol, doesn, client, nonsense, course, sides, fail, universe, implementation, pause, gained, did, welcome, adventurous, souls, risk, overwrite, repos, optional, click, paste, settings, armor, export, display, local, also, manually, string, keyid, format, batch, quick, generate, colons, null, awk, print, exit, creates, lasts, creation, extract, mkdir, chmod, 700, program, bin, gpgconf, kill, dependencies, homebrew, earlier, advice, ready, stick, algorythm, x509, choice, formats, pedigree, increasing, rate, attacks, setting, few, steps, recorded, commits, old, habits, die, secure, connection, drops, dies, sits, close, laptop, reconnect, attach, exactly, where, multiplexing, trick, hosts, windows, tabs, split, panes, logs, bottom, navigated, mouse, gymnastics, hangs, off, default, seasoned, crowd, promptly, remaps, habit, inherited, gnu, screen, predecessor, price, admission, modest, set, shortcuts, optionally, bend, payoff, survive, disconnects, scripted, environments, launch, entire, workspace, command, programming, attaching, people, same, session, wiki, describes, emscripten, switch, easily, several, programs, detach, reattach, goal, single, twice, glad, asked, foreground, eye, precludes, simply, npm, multiplex, world, heavy, approach, rely, ide, discovers, folder, boots, edit, starts, defined, great, sharing, refresher, compose, yml, devcontainer, containers, loads, unloads, environment, depending, encrypt, holds, operating, systems, story, keychain, easy, convenient, evn, should, limited, projects, variable, otherproject, someproject, starters, disk, unencrypted, attacker, sneaks, next, attack, 2fa, limit, blast, radius, stop, prepare, arrow, portfolio, stealing, diligence, guarding, passphrases, warranted, rampant, harden, nutshell, txt, job, article, image, swapped, give, spin, couchdb_user, couchdb_password, choose, couchdb_data, opt, data, ghcr, latest, really, feel, capability, walkthrough, dark, lght, mode, sync, moment, fighting, cors, csp, support, mango, queries, indici, json, editable, monaco, editor, vscode, native, fetch, namely, framework, react, angular, lit, webawesome, asking, rebuild, stack, enhanced, features, role, model, fan, pleased, permission, verb, meet, opensources, loved, showed, reported, understanding, zusammenarbeit, benachrichtigung, notification, appreciate, shiny, tool, barrage, levels, speculation, curiosity, acceptance, ridicule, figured, cost, 100, winning, team, informally, tracked, completion, took, created, entry, please, doc, hyper, lingo, later, done, sentence, capitalized, collect, form, wasn, explained, though, letter, part, imagine, distributed, regional, offices, solve, problem, gipfeli, unsurprisingly, hardly, such, message, complied, random, join, front, face, class, explanation, transport, issued, person, paraphrasing, prepared, most, harmless, color, colleague, holiday, had, sing, hum, considered, unproblematic, switzerland, national, anthem, lunch, focus, inbox, signature, richtext, everybody, permanent, pen, first, gets, topics, without, seeding, lively, discussions, emerge, companies, send, regular, employees, groups, full, thing, gave, collaborator, perilous, meaning, modules, recent, pointing, 1990ties, memory, lane, dangers, scratch, vowe, trained, trusted, validate, shape, means, identify, context, needed, access_token, comes, situation, becomes, murkier, admins, reluctant, utility, help, plenty, provide, flows, users, including, properly, ping, okta, 6749, communication, configuration, instead, coding, ringbuilder, rocks, boat, flow, everyone, else, picking, does, gracefully, objects, real, life, complex, many, optionalities, spell, checker, claims, isn, leave, imprint, exposing, endless, parameters, gof, flexible, ended, tasks, nope, rank, additional, properties, our, plan, execution, ike, classified, ranked, challenge, fit, classifying, prelude, clarification, segmentation, explicit, implicit, deal, view, board, invites, categorize, items, low, medium, high, wrong, ist, introduction, result, folding, dimensional, eisenhower, shifting, usability, productivity, web, notessensei,
Text of the page (random words):
assifying task priority is only a prelude a clarification a segmentation of what we actually do explicit or implicit priorities are not classified they are ranked you followed ike and ended up with 20 tasks that are equally important and urgent equally nope we all rank them using whatever additional properties we have at hand in our plan of execution read more posted by stephan h wissel on 17 october 2026 categories after hours software builder pattern with flexible defaults objects in real life are complex with many optionalities my spell checker claims that isn t a word that leave their imprint on their digital twins to avoid exposing endless list of parameters you can use the builder pattern described by the gof it is the digital version of this is what i know let s work with that you might want to go with the flow and just pick a size and for the rest pick what everyone else is picking the builder pattern does both gracefully ring r1 ring builder size 9 build ring r2 ring builder material material platinum size 9 diamonds 3 carats 0 75 engraving forever build or if rust rocks your boat let r3 ringbuilder builder material material platinum size 9 diamonds 3 carats 0 75 engraving forever build so i was wondering what it would take using defaults from a configuration file instead hard coding them in the builder read more posted by stephan h wissel on 14 october 2026 categories java rust jwt for machine to machine communication there are plenty of idp available that provide oidc flows for your users including domino even if some can t read rfc 6749 properly i m looking at you okta and ping when it comes to machine identity the situation becomes murkier machines might or might not be in your directory directory admins might be reluctant to add machines etc etc so some utility needs to help out here generating access_token i wrote about about generating jwt before but in needs more context so lets have a look what is actually needed a means to identify the machine the shape of the access token required the trusted key pair to sign and validate the key read more posted by stephan h wissel on 20 september 2026 categories java jwt quarkus how we trained lotus notes a recent post on vowe net pointing to lotus notes and the dangers of starting from scratch sent me down the memory lane into the 1990ties collaboration training companies would send regular employees in groups of 10 20 to a full day training to learn about that new thing collaboration which gave the word collaborator a less perilous meaning this is how it would go down in four modules in the first module the notes discussion database gets introduced participants would learn about topics responses and response to responses without seeding lively discussions would emerge the second module would focus on email inbox signature encryption richtext and everybody s favorite permanent pen followed by the lunch break the trainer would have prepared individual emails to all participants most of them with harmless request like what s your favorite color or ask your colleague about the last holiday two emails however had loaded requests stand up and put your one hand on your head and stand up and sing or hum the national anthem considered unproblematic in switzerland unsurprisingly hardly any of the recipients of such a message complied the trainer would then ask a random participant to join in front to face the class followed by the explanation you can t expect email to transport requests that a better issued in person paraphrasing here time for a coffee break with gipfeli the trainer then introduced module four imagine you are all distributed in regional offices so you can t show paper documents to each other solve the problem i ll hand out i then would hand out sheets of paper with the sentence every capital letter is part of the solution the sheets were all different with different letters capitalized so the task was to collect the capital letters and form the solution lotus notes this wasn t explained to the participants though typically a barrage of emails would follow with different levels of speculation curiosity acceptance or ridicule after 20 30 minutes the task would have been figured out at the cost of 100 emails the winning team we informally tracked completion time however took less that three minutes one participant created a discussion entry please share all capital letters on your sheets and sent a doc link hyper link in today s lingo to the rest 10 response documents later they were done participant reported a better understanding of zusammenarbeit collaboration and benachrichtigung notification which made them appreciate the shiny new tool i loved this sessions since the showed not only how to use the tools but why and when and when not posted by stephan h wissel on 12 september 2026 categories hcl notes lotus notes hcl opensources couchcompanion i m a big fan of apache couchdb so i was very pleased when i got the permission to opensource is that even a verb a r d project we were working on for a while meet couchcompanion fauxton as role model we were asking us how would couchdb s admin ui fauxton look like when you rebuild today what would be the tech stack and new or enhanced features this is what we can up with build with webcomponents namely webawesome and lit no big framework like react or angular native fetch all json and js code editable with the monaco editor the one used in vscode support to build mango queries and indici sync with version control github for the moment fighting with cors and csp dark lght mode ui to configure oidc idp and more there is a capability walkthrough available but to really get a feel just run the container docker run d name couch companion p 5984 5984 e couchdb_user admin e couchdb_password choose one v couchdb_data opt couchdb data ghcr io hcl tech software couch companion latest the container is based on the official couchdb image with fauxton swapped out for couchcompanion give it a spin read more posted by stephan h wissel on 09 september 2026 categories couchdb webcomponents webdevelopment using age in github actions in the last article i introduced age and a working setup for macos now let s look at github actions integration tl dr in a nutshell create an age key just for github actions commit it to secrets add the public key to recipients txt and add it to your github job read more posted by stephan h wissel on 24 august 2026 categories development github harden your developer setup with age and direnv credential stealing is rampant so some diligence in guarding api keys passphrases and secrets is warranted stop wondering if it could happen to you but prepare for when it might happen here is one arrow in your defense portfolio limit the blast radius when an attacker sneaks by your 2fa using e g a supply chain attack your next line of defense is how much can they see for starters no key other than public ones token or credential shall live on disk unencrypted loaded evn variables should be limited to their projects when in code someproject there must not be any env variable from code otherproject be loaded the day 2 day use must be easy and convenient three components to make this work we need three components macos keychain holds the age key s other operating systems is another story for another time age actually good encryption to encrypt your secrets and env variables direnv loads and unloads environment variables depending on the current directory read more posted by stephan h wissel on 21 august 2026 categories development github macos use tmux to automate your developer setup for my development setup i typically rely on development containers which works very ui centric your ide discovers the devcontainer folder and boots an edit container and starts whatever you have defined in your docker compose yml file this is great for sharing i wrote about it read for a refresher in a terminal centric world this is a heavy approach and i want options multiplex your terminal my goal with a single script start quarkus dev twice npm run dev and a database apache couchdb glad you asked they all need to run in the foreground so i can keep an eye on them this precludes simply using to run them in the background enter tmux the wiki describes it tmux is a terminal multiplexer it lets you switch easily between several programs in one terminal detach them they keep running in the background and reattach them to a different terminal claude described it like this might contain emscripten claude s take on tmux old habits die hard you open a terminal start a long running task your ssh secure shell connection drops and your task dies with it enter tmux the terminal multiplexer it sits between your terminal and your shell sessions so the sessions live on the server or your machine not in the window you happen to be looking at close the laptop reconnect from the coffee shop run tmux attach and everything is exactly where you left it multiplexing is the second trick one terminal window hosts multiple sessions each with multiple windows think tabs each split into panes api server on the left logs on the right a shell at the bottom all navigated by keyboard no mouse gymnastics required everything hangs off a prefix key ctrl b by default which the seasoned crowd promptly remaps to ctrl a a habit inherited from gnu screen tmux s venerable predecessor the price of admission is a modest set of keyboard shortcuts and optionally a tmux conf to bend it to your will the payoff sessions that survive disconnects scripted development environments that launch your entire workspace with one command and even pair programming by attaching two people to the same session as usual ymmv read more posted by stephan h wissel on 12 august 2026 categories ai development signing your git commits code pedigree is more important than ever with the ever increasing rate of supply chain attacks setting up code signing are a few steps recorded here for reference choice of key formats while you could pick an ssh or x509 key i shall stick to gpg and the ed25519 algorythm act 1 get macos ready when you followed earlier advice you are good to go if not install homebrew and dependencies brew install gh gpg pinentry mac setup pinentry mkdir p gnupg chmod 700 gnupg echo pinentry program brew prefix bin pinentry mac gnupg gpg agent conf gpgconf kill gpg agent act 2 create the key this creates a signing key that lasts for 2 years make sure to get the email right after creation we extract the key id gpg batch quick generate key john doe john doe example com ed25519 sign target_email john doe example com gpg_key_id gpg list secret keys with colons target_email 2 dev null awk f 1 sec print 5 exit echo your key id is gpg_key_id you also can do that manually running gpg list secret keys keyid format long and look for the string after the in the line starting with sec act 3 configure your local git make sure to get the email right git config global user name john doe git config global user email target_email git config global user signingkey gpg_key_id git config global commit gpgsign true git config global tag gpgsign true git config global pull rebase true act 4 let github know display the public key gpg armor export gpg_key_id go to your github key settings click on new gpg key and paste it act 5 overwrite for individual repos optional git config user name john doe git config user email target_email git config user signingkey gpg_key_id git config commit gpgsign true git config tag gpgsign true git config pull rebase true for adventurous souls there is a setup script available to automate this use at your own risk as usual ymmv posted by stephan h wissel on 06 august 2026 categories development github macos welcome http query in 2026 after a 16 years pause http gained a new keyword query much has been said and said about the get with a body but why did it take so long agreement not implementation i ll share a secret query has been supported by http for a long time so has http universe or http tango the protocol doesn t care for the keyword your client an server care http get can t contain a body nonsense of course it can and you can expect unless you control both sides that it will fail in one way or another so the ietf standards are the etiquette of interaction not the laws they are the gentlemen agreement stating if we both follow the rfc we can have the reasonable expectation that this exchange of information could work hammering out agreements that don t break previous ones it time consuming and tedious especially in venerable foundational standards like http just see how time tested the standards surrounding http are standards method standardized document get 1991 http 0 9 get head post 1996 rfc 1945 options put delete trace connect 1997 rfc 2068 refined 1999 http 1 1 rfc 2616 patch 2010 rfc 5789 summarized http semantics 2022 rfc 9110 query 2026 rfc 10008 extensions extension since document methods added webdav core 1999 rfc 2518 propfind proppatch mkcol copy move lock unlock revised 2007 rfc 4918 deltav versioning 2002 rfc 3253 checkout checkin version control report merge ordered collections 2003 rfc 3648 orderpatch acl access control list 2004 rfc 3744 acl caldav calendaring 2007 rfc 4791 mkcalendar search 2008 rfc 5323 search bind bindings 2010 rfc 5842 bind unbind rebind carddav contacts 2011 rfc 6352 reuses webdav methods the webdav search method 2008 was the early inspiration for query drafts even used the name search before the working group settled on query to avoid the webdav baggage and map cleanly onto the uri query component http anything don t believe http tango would work just clone my little fun project run it and open the developer tools to watch the network works since it controls both ends tooling needs to catch up now query is a standard tooling needs to catch up enums need extension and adjacent standards updated e g openapi 3 x has no provision for new http syntax while bruno and curl do just fine as usual ymmv posted by stephan h wissel on 17 july 2026 categories http s openapi protocols webdevelopment older entries shop languages deutsch español italiano bahasa indonesia dansk русский 한국어 简体中文 繁體中文 other languages on request categories after hours 229 agile 1 ai 5 apex 4 blog 11 bluemix 13 buddhakids 3 business 71 buying broadband 29 caldav 3 cloud computing 4 cloudflare 1 container 9 continuous integration 2 couchdb 7 coursera 1 curl 1 cycling 8 development 13 docker 8 domino 7 drapi 3 dxlmagic 8 elearning 7 github 8 gone phisching 4 graalvm 2 gtd 8 hcl notes 4 heroku 5 http s 7 ibm 19 ibm lotus 42 ibm notes 161 identity management 9 intercultural 16 java 56 javascript 20 jwt 11 k8s 6 learning 3 lightning 16 linux 25 lotus 7 lotus notes 115 lotusphere 54 macos 7 maven 21 mobile 2 networking 5 nginx 5 nodejs 6 nodered 4 nokia 3 nosql 3 omnisophie 5 openapi 3 opensource 6 pmd 3 protocols 5 quarkus 4 reactive 1 rust 2 salesforce 51 sametime 2 ...
|