soy cocoa 29g, creatine+, shave
stop and snap the flowers, ofc open 7:35
tofu wich 38g : 67g by lunchtime
gumbo
Mad Men S7 continued
* * *
Chopin's "Funeral March" (piano sonata #2, 1840) sounds like an ancestor of the Star Wars "Imperial March".
Composer John Williams cites it and Holst's "Mars, Bringer of War" as inspirations.
A million composers have composed a zillion marches, so I suppose it's not quite plagiarism.
* * *
HT config librewolf to autofill URL bar with first suggestion from bookmarks, not the web
- 3-bars menu : settings : search tab :
- untick "Show search suggestions ahead of browsing history in address bar results"
- - or disable suggestions entirely
- Privacy + Security tab : Address Bar — Firefox Suggest
- untick Uncheck Browsing history, Open tabs, Suggestions from the web, Sponsored suggestions
- in about:config , set browser.urlbar.autoFill.adaptiveHistory.enabled = true
- restart librewolf
There is also a URL bar cache; if unwanted suggestions are still hanging around, search deep-clean steps
* * *
ICHI, the new RADIT
Back in the late 80s / early 90s I took a couple of undergrad courses in "Computer Programming". Personal computers were emerging, but their revolutionary impact hadn't penetrated the pedagogy of teaching "software design" or "development" quite yet. So, I absorbed the acronym "RADIT" for the traditional phases of software development:
R for Requirements: a formal documentation of the problem to be solved by the program
A for Analysis (or Algorithm): a formal plan to address all the operational decision points
D for Design: blueprinting a programmatic structure for efficient program flow
I for Implementation: translate the analysis and design into actual executable code
T for Test/Debug: Verify output matches expectations and make corrections as needed
Some very old languages (ALGOL, APL, LISP, COBOL) were designed to eliminate traditional mapping of programmatic logic in "pseudocode" before re-translation into an actual programming language. But the reality of the mainframe environment was that programmers had to submit their work to a processing queue and might not see the results until the next day. Delays to correct sloppy logic could get very expensive; it paid to take great pains to spot errors before creating code. The revolutionary possibility that emerged with personal computers was the ability to write, run, and evaluate results of code execution - all in moments, all at one desk, instead of waiting hours or overnight for a queued mainframe job's hardcopy output. Microsoft's QBasic was one of the earliest "Integrated Development Environments" (IDE), bundled in 1991's MS-DOS 5.0. RADIT's days were numbered.
One fundamental hasn't changed: the concept of "a problem that the software must solve" necessarily precedes a single line of code being written. In other words, we don't start writing code until we know "why". We don't necessarily launch projects with the same formality of "Requirements" documentation nowadays, but there's still always a reason for the project.
Also before a single line of code, we have to ask: what platform is the software targeting? The tools to develop an Android smartphone game are rather different from those used to develop an enterprise-class database engine. And we need different tools again for a project with both smartphone and desktop interfaces (e.g. Joplin) vs. a website designed adaptively. "C"ontext succeeds concept but still precedes code.
In the post-PC instant-feedback era, coding, testing, debugging and documenting can merge into a fuzzy loop. (They don't always, but that's more a reflection of project manager style.) "Hacking" carries a historically loaded connotation but there's another sense widely accepted in tech and academic culture. University STEM departments run "hackathon" events. It's well understood that it's not about doing cybercrimes.
At some point you have to pause the hacking, and present or deliver something. In the age of user feedback in the form of workable "tickets" and software updates deliverable instantly via Internet push, "delivery" looks very different from the days when we bought boxed software at brick-and-mortar stores. So it's more of an asynchronous channel with atoms of feedback prompting incremental developments.
I for Idea: notions of "what the product should do" necessarily precede any lines of code
C for Context: what platform will the project target; e.g. Android, Windows app, website?
H for Hack, in the sense of "creating clever code quickly", not "cybercrime" of course
I for Iterate: feedback tickets prompt incremental improvements
There's also a silent "E"
"E" for End-of-lifecycle. At the least, an archive of proven example code has its own value.
But also, programmers are creatives and their portfolios are demo-version software.
- Structure "hacking" environment and habits to support access to code beyond EOL.