5 ms·
I write down every thought in the open so I have a log of what I thought. See my profile. Some go on to become projects. If I want to do some feature work on t
by samsquire 4y ago
I write down every thought in the open so I have a log of what I thought. See my profile. Some go on to become projects.
If I want to do some feature work on the thought I create a GitHub issue and write implementation notes, I did this on samsquire/hash-db for document storage.
I write English descriptions of the mental model then implement.
Some people say code is the documentation. This is unfortunate and means that thinking ends when the code is decommissioned its lineage ends and cross pollination never goes on.
The lifespan of an English description on Wikipedia of an algorithm or project description outlives its implementations.
Please document your mental model of the problem you're solving.
As an analogy the documentation and thinking behind the implementation of Windows 95 (and it's user interface design thinking and guidelines) is outlived by its documentation and screenshots.
University and research publications whitepapers outlive the code written during research and potentially many implementations.
- CharlieDigital 4y ago> Some people say code is the documentation. McConnell has a really good quote on this from Code Complete: The information contained in a program is denser than the information contained in most books. Whereas you might read and understand a page of a book in a minute or two, most programmers can’t read and understand a naked program listing at anything close to that rate. A program should give more organizational clues than a book, not fewer. I comment meticulously on the why so that if I retrace my code 3 months later, I can remember the decision making context for a particular implementation. It also helps me hand off my work so that anyone can pick it up quickly.
- californiadreem 4y agoRegarding information density, I don't think this is necessarily true. Quantifying understanding between a reader and a text is always ambiguous, where the results of programs are intentionally designed to not be ambiguous (with varying results). Consider the ink and blood spilled over the implications of a single word in a holy text. Saying that a reader understands a page or two of most books in a minute or so is like "understanding" the rules of Chess but being unable to actually win a game. What differs between books and programs is the consequences of getting that sense of understanding wrong. When reading a book, the results of misunderstanding or skimming are rarely serious (outside the realm of technical manuals, textbooks, and holy books) whereas the programmer and user usually immediately notice that something is very wrong if the programmer took a wrong turn in their understanding. Academics paid to "understand" non-technical books face so little consequences for misunderstanding that no one even agrees what understanding is. James Joyce's Ulysses is a crypto-ur-fascist work prefiguring the ascension and demise of Nationalist Irish America as found in the correspondences between Buck Mulligan and Donald Trump? Well, I certainly can't tell you that's wrong. Half of these terms would require volumes themselves to meaningfully define to an extent that a conclusion could even approach falsification. This failure to understand misunderstanding is also pervasive in the majority of legal systems. They try to define terms and precedents in volumes and still have dogmatic disagreements about meaning and understanding. Try doing this in a codebase and see how far you can get. "As you see, this comment in the Linux kernel was written by Linus Torvalds. Torvalds had many documented conflicts as a result of his frequently acerbic personality. We can date this comment to after his foray into improving his interpersonal skills. We can infer from the use of language found in the manuals of the University of Oregon's Anger Management school that Torvalds is emotionally disturbed yet diplomatically declining to accede to the Rust development team's demands for special privileges. Seeing that Torvalds, the creator of Linux, wanted to originally decline these changes, I have put forth a commit to undo all commits initiated by anyone associated with the Rust development team." On the other hand, if programmers were to instantiate legal and semiotic assertions in Prolog from first principles, suddenly there's a legibility and granularity that makes the entire "meaning" and "understanding" game pointless because we can directly see and talk about where the logical assertions fail to correspond or contradict.
- cxr 4y agoI don't understand human-query-engine. The link to it in the <https://github.com/samsquire/wants https://github.com/samsquire/wants> README is also broken.
- samsquire 4y agoI was interested in quantified self for qualitative statements and the social aspect of asking strangers questions to try reveal interesting things. I enjoy using Quora. I generate random questions based on permutations of templates a bit similar to a madlib generator but for questions. https://github.com/samsquire/human-query-engine https://github.com/samsquire/human-query-engine I had another project that could collect salary data and stock market portfolio's based on statements you add to the system. it was a personal data collection syste. that was programmed to produce useful functions based on what you tell the system in the form of templated statements. The closest software that existef at one point in time is Mozilla Ubiquity which I loved. It was a twitter CLI for Firefox. The idea was meant to be used to give targeted advice and judgements or evaluations to people. It's a bit similar to a choose your own adventure book but with advice or a problem flow chart. This attempt is here https://github.com/samsquire/living-documents https://github.com/samsquire/living-documents And here https://github.com/samsquire/fact-collector https://github.com/samsquire/fact-collector This one uses prolog to collect statements then shows statistics of your collection. Think of it similar to Siri in reverse. Rather than asking Siri for an answer for a question, you are asked a question and the answer is used to generate something useful. The problem then becomes thinking of useful questions that you can do automation over Simply having a twitter style tweet that allows you to say "I am at London", "I am eating this" then calculate calories or nearby trains home or travel information. My other attempts are here This one calculates train journeys using neo4j It parsed plaintext statements for a "I want to travel between <station> and <station>"