1,286 Matching Annotations
  1. Last 7 days
    1. Description

      Hive Rewards SDK is an open-source npm library. To track HIVE-based earnings. And interact with Hive ecosystem APIs. Making it accessible for both developers and end users. It features automatic price lookups and node management. With tools for querying earnings over various timeframes. Enhancing user experience and reliability in managing Hive transactions.

    1. Description

      DeepWiki is an AI tool that creates a searchable wiki for GitHub repositories. Allowing developers to ask specific questions about their codebases. Then receive accurate answers with code examples. See this practical application of AI in enhancing code understanding. Rather than replacing developers.

  2. Aug 2025
    1. How I Created VNC App using Bolt and Cursor

      Creating a VNC service app using Bolt and Cursor. See the challenges of development. And the struggle to establish a monetization plan. Learn the value of open-source solutions in a market dominated by large corporations. With hope for future sustainability.

    1. From NavBar Mess to React Router Success! Fixing Layouts, Routing & AIOHA in One Go 🚀

      Transforming a chaotic navigation bar into a functional component using React Router. While also integrating AIOHA for user authentication. And creating a reusable layout to streamline React app development. The update emphasizes improvements in user experience and code organization. As foundational steps for their ongoing project.

    1. Level Up Your Imports: Using Path Aliases for Cleaner React + TypeScript Projects 🚀

      A guide on using path aliases in React and TypeScript projects. To simplify and clean up import statements. Making code easier to maintain. See a step-by-step process for setting up path aliases. Ultimately transitioning from cumbersome relative imports to more readable ones.

    1. 🧭 Integrating React Router: My Routing Adventures with React 🛣️

      How to integrate React Router into a new React application. See the steps to set up routing and create basic pages. While humorously acknowledging challenges faced along the way. Particularly with adding a navigation bar. Join the journey of learning and experimenting with React development today.

    1. Day 4 ReactJS Adventures + Distriator Progress: useState, useEffect, and .env Chaos 😹

      For ReactJS projects, you need to learn the useState and useEffect hooks. See the challenges faced while integrating environment variables in a Vite-based React app. With practical progress on the Distriator project. Including the successful integration of hotel room data and a live deployment.

    1. Day 8 - Secure 🔐 Login with AIOHA & LocalStorage Magic 🧙

      Day 8 of the ReactJS learning journey is about implementing a secure login system using AIOHA and localStorage. Learn the use of AES encryption for storing user data safely. With managing multiple Hive logins. Also, a detailed explanation of the login API integration and data handling processes.

    1. 🚀 **Day 9 – Toasts, Laughs & Custom Magic!** 🍞✨

      This ReactJS learning journey shows how to create and customize a custom toast component. Complete with various styles and icons. To enhance user notifications. See insights from previous learning days. With humor and enthusiasm for the coding process.

    1. Day 6 🚀 - Learning ReactJS: Calling APIs & Creating Context Providers | Distriator Feature Update

      Learning ReactJS to call APIs and implement Context Providers for managing business data. See a new feature in the Distriator project that displays the Hive Power of businesses. Emphasizing the importance of organized code structure and TypeScript for predictable data handling.

    1. 🚀 Integrate AIOHA with Your React App from Scratch (Vite + Tailwind + DaisyUI)

      A step-by-step guide on integrating the AIOHA login system into a React application using Vite, Tailwind, and DaisyUI. It covers project setup, component creation, and debugging. To help developers enhance their apps with Hive blockchain login functionality.

  3. Jul 2025
    1. What I call software collapse is what is more commonly referred to as software rot: the fact that software stops working eventually if is not actively maintained. The rot/maintenance metaphor is not appropriate in my opinion because it blames the phenomenon on the wrong part. Software does not disintegrate with time. It stops working because the foundations on which it was built start to move.
  4. Jun 2025
    1. LLMs can write a large fraction of all the tedious code you’ll ever need to write. And most code on most projects is tedious. LLMs drastically reduce the number of things you’ll ever need to Google. They look things up themselves. Most importantly, they don’t get tired

      Does this mean arguments against verbose "boilerplate" languages are going to be given less credence?

  5. May 2025
    1. For example, the syntactic analysis stage builds a conventional expression tree, but this tree is expressed as objects—instances of various classes relevant to compilation: Class, Method, Message, Selector, Argument, etc. […] The code for these operations is encapsulated inside each object, and is not spread throughout the system so changes are easily made. And all these specialized classes rely heavily on reusable code inherited from more primitive classes like Object, HashTable, Symbol, Token, and LinkedList.

      This is an interesting claim, given that one of the common criticisms of the classic, inheritance-heavy style of classic OOP is precisely that it leads to code that is indeed "spread throughout". Adele Goldberg commenting on the legacy of Smalltalk made a well-known quip, "In Smalltalk, everything happens somewhere else."

      It's notable that although there many common word sequences between this paper and the later, similarly titled one that appeared in IEEE Software (1984), this passage doesn't appear to be present (based on a quick skim—I could be missing something), and the closest corresponding statements are significantly reworded.

    Tags

    Annotators

    1. Software does not need dusting, waxing, or cleaning.  It often does have faults that do need attention, but this is not maintenance, but repair.  Repair is fixing something that has been broken by tinkering with it, or something that has been broken all along.  Conversely, as the environment around software changes, energy must be expended to keep it current.  This is not maintenance; holding steady to prevent decline.
  6. Apr 2025
    1. Detailed Summary

      1. You own your data, in spite of the cloud. <br /> Section summary: <br /> Local-fist software tries to solve the problem of ownership, agency and data lock-in present in cloud-based software, without compromising cross-collaboration and improving user control.

      Section breakdown<br /> §1: SaaS<br /> Pros: Easy sync across devices, real-time collab Cons: loss of ownership and agency; loss of data is software is lost.

      §2: Local-fist software<br /> - Enables collaboration & ownership - Offline cross-collaboration - Improved security, privacy, long-term preservation & user control of data

      §3 & §4: Article Methodology<br /> - Survey of existing storage & sharing approaches and their trade-offs - Conflict-free Replicated Data Types (CRDTs), natively multi-user - Analysis of challenges of the data model as implemented at Ink & Switch - Analysis of CRDT viability, UI - Suggestion of next steps

      2. Motivation: collaboration and ownership<br /> Section summary: <br /> The argument for cross-device, real-time collab PLUS personal ownership

      Section breakdown<br /> §1: Examples of online collabs<br /> §2: SaaS increasingly critical, data increasingly valuable<br /> §3: There are cons<br /> §4: Deep emotional attachment to your data brings feeling of ownership, especially for creative expression<br /> §5: SaaS require access to 3rd party server, limitation on what can be done. Cloud provider owns the data.<br /> §6: SaaS: no service, no data. If service is shut down, you might manage to export data, but you may not be able to run your copy of the software.<br /> §7: Old-fashioned apps were local-disk based (IDEs, git, CAD). You can archive, backup, access or do whatever with the data without 3rd party approval.<br /> §8: Can we have collaboration AND ownership?<br /> §9: Desire: cross-device, real-time collab PLUS personal ownership

      3. Seven ideals for local-first software<br /> Section breakdown<br /> §1: Belief: data ownership & real-time collab are compatible<br /> §2: Local-first software local storage & local networks are primary, server secondary<br /> §3: SaaS: In the server, or it didn't happen. Local-first: local is authoritative, servers are for cross-device.

      3.1.1 No spinners<br /> SaaS feels slower because if requires round-trip to a server for data modification and some lookups. Lo-Fi doesn't have dependency on server, data sync happens on the background. This is no guarantee of fast software, but there's a potential for near-instant response.<br /> 3.1.2 Data not trapped on one device <br /> Data sync will be discussed in another section. Server works as off-site backup. The issue of conflict will also be discussed later.<br /> 3.1.3 The network is optional<br /> It's difficult to retrofit offline support to SaaS. Lo-Fi allows CRUD offline and data sync might not require the Internet: Bluetooth/local Wi-fi could be enough.<br /> 3.1.4 Seamless collabs<br /> Conflicts can be tricky for complex file formats. Google Docs became de facto standard. This is the biggest challenge for Lo-Fi, but is believed to be possible. It's also expected that Lo-Fi supports multiple collab.

      TBC

  7. Mar 2025
    1. Before adding a new SSH key to the ssh-agent to manage your keys, you should have checked for existing SSH keys and generated a new SSH key. When adding your SSH key to the agent, use the default macOS ssh-add command, and not an application installed by macports, homebrew, or some other external source. Start the ssh-agent in the background. $ eval "$(ssh-agent -s)" > Agent pid 59566 Depending on your environment, you may need to use a different command. For example, you may need to use root access by running sudo -s -H before starting the ssh-agent, or you may need to use exec ssh-agent bash or exec ssh-agent zsh to run the ssh-agent. If you're using macOS Sierra 10.12.2 or later, you will need to modify your ~/.ssh/config file to automatically load keys into the ssh-agent and store passphrases in your keychain. First, check to see if your ~/.ssh/config file exists in the default location. $ open ~/.ssh/config > The file /Users/YOU/.ssh/config does not exist. If the file doesn't exist, create the file. touch ~/.ssh/config Open your ~/.ssh/config file, then modify the file to contain the following lines. If your SSH key file has a different name or path than the example code, modify the filename or path to match your current setup. TextHost github.com AddKeysToAgent yes UseKeychain yes IdentityFile ~/.ssh/id_ed25519 Host github.com AddKeysToAgent yes UseKeychain yes IdentityFile ~/.ssh/id_ed25519 Note If you chose not to add a passphrase to your key, you should omit the UseKeychain line. If you see a Bad configuration option: usekeychain error, add an additional line to the configuration's' Host *.github.com section. TextHost github.com IgnoreUnknown UseKeychain Host github.com IgnoreUnknown UseKeychain Add your SSH private key to the ssh-agent and store your passphrase in the keychain. If you created your key with a different name, or if you are adding an existing key that has a different name, replace id_ed25519 in the command with the name of your private key file. ssh-add --apple-use-keychain ~/.ssh/id_ed25519 Note The --apple-use-keychain option stores the passphrase in your keychain for you when you add an SSH key to the ssh-agent. If you chose not to add a passphrase to your key, run the command without the --apple-use-keychain option. The --apple-use-keychain option is in Apple's standard version of ssh-add. In macOS versions prior to Monterey (12.0), the --apple-use-keychain and --apple-load-keychain flags used the syntax -K and -A, respectively. If you don't have Apple's standard version of ssh-add installed, you may receive an error. For more information, see Error: ssh-add: illegal option -- apple-use-keychain. If you continue to be prompted for your passphrase, you may need to add the command to your ~/.zshrc file (or your ~/.bashrc file for bash). Add the SSH public key to your account on GitHub. For more information, see Adding a new SSH key to your GitHub account. If you have GitHub Desktop installed, you can use it to clone repositories and not deal with SSH keys. In a new admin elevated PowerShell window, ensure the ssh-agent is running. You can use the "Auto-launching the ssh-agent" instructions in Working with SSH key passphrases, or start it manually: # start the ssh-agent in the background Get-Service -Name ssh-agent | Set-Service -StartupType Manual Start-Service ssh-agent In a terminal window without elevated permissions, add your SSH private key to the ssh-agent. If you created your key with a different name, or if you are adding an existing key that has a different name, replace id_ed25519 in the command with the name of your private key file. ssh-add c:/Users/YOU/.ssh/id_ed25519 Add the SSH public key to your account on GitHub. For more information, see Adding a new SSH key to your GitHub account. Start the ssh-agent in the background.

      The benefit to ssh-agent is that you only need to enter your passphrase once. If your private RSA key is not encrypted with a passphrase, then ssh-agent is not necessary

  8. Feb 2025
    1. Cursor noted Claude is once again best-in-class for real-world coding tasks, with significant improvements in areas ranging from handling complex codebases to advanced tool use. Cognition found it far better than any other model at planning code changes and handling full-stack updates. Vercel highlighted Claude’s exceptional precision for complex agent workflows, while Replit has successfully deployed Claude to build sophisticated web apps and dashboards from scratch, where other models stall. In Canva’s evaluations, Claude consistently produced production-ready code with superior design taste and drastically reduced errors.

      Claude 3.7 Sonnet again excels at coding, as verified by multiple teams

  9. Jan 2025
  10. Dec 2024
    1. There is a tremendous power in thinking about everything as a single kind of thing, because then you don’t have to juggle lots of different ideas about different kinds of things; you can just think about your problem.

      In my experience this is also the main benefit of using node.js as your backend. Being able to write your front and backend code in the same language (javascript) removes a switching cost I didn't fully realize existed until I tried node the first time.

  11. Nov 2024
  12. Oct 2024
    1. Furthermore, our research demonstrates that the acceptance rate rises over time and is particularly high among less experienced developers, providing them with substantial benefits.

      less experienced developers accept more suggeted code (copilot) and benefit relatively versus more experienced developers. Suggesting that the set ways of experienced developers work against fully exploting code generation by genAI.

  13. Sep 2024
    1. If you'd like another method to do the waiting for you, e.g. Kernel.select, you can use Timers::Group#wait_interval to obtain the amount of time to wait. When a timeout is encountered, you can fire all pending timers with Timers::Group#fire

      This is another way of achieving concurrency (progress made while waiting for other things) besides wrapping the timer's sleep in a separate thread like https://github.com/rubyworks/facets/blob/main/lib/standard/facets/timer.rb does.

  14. Aug 2024
  15. Jul 2024
    1. We decided that we would like to see better documented code included within web pages for convenient browsing. The motivation behind this peculiar aim is to be able to include high quality documentation alongside working code, hopefully making it easier for programmers to produce more maintainable, readable programs.
    1. Say goodbye to the headaches of setting up Python locally. No more installations or configurations, you can execute Python code right in your web browser. Just input your code, hit RUN, and watch the magic happen! Compile, run, and share Python code online with our powerful integrated Python development environment (IDE). Want to show off your work? Use the SHARE option to make your code accessible to anyone, anywhere.

      One of the best python compilers if you're a new dev and dont want to install Python locally.

  16. Jun 2024
    1. Tutorial Hell

      What Is Tutorial Hell - Related Pages

      • Learning is a Never-Ending Process - <q>Continuous learning helps your growth, problem-solving, confidence. Securing your future in a changing world. See why learning is a never-ending process.</q>
      • Tutorial Hell (Programming) - <q>In Tutorial Hell (Programming), learners get too dependent on tutorials. For programs, graphics, and related skills. Learn to beat Programmer's Tutorial Hell.</q>
      • Getting started with Hive app development - <q>… I don't recommend spending too much time doing tutorials as you will end up in tutorial hell where you just do tutorials but have no idea …</q>
      • Taking The Wheel - <q>… tutorial hell by opting to watch a full tutorial or reading the entire blog post. I've found that after I've done so, I feel sad with the knowledge that I …</q>
      • Learning web2 for web3 - <q>Simply because I was trapped in a tutorial hell, I don't think I have ever been so confused. I did all these for one year without developing something …</q>
    2. Tutorial Hell
      • Who: The author (Coding Defined), professional developers, junior developers.
      • What: Facing Tutorial Hell - spending time watching tutorials without making meaningful progress.
      • Why: To discuss the negative impact of constantly watching tutorials without implementing what is learned.
      • How: The author discusses two concepts of Tutorial Hell

      • How it impacts learning

      • Why junior developers often fall into this trap

      Then, he provides tips on how to escape Tutorial Hell by:

      1. Focusing on building actual projects
      2. Implementing what is learned from tutorials.

      The author also shares personal experiences and examples to illustrate his points.

    1. Tutorial Hell

      Tutorial Hell (Programming) - Related Pages

      Learning is a Never-Ending Process - <q>Continuous learning helps your growth, problem-solving, confidence. Securing your future in a changing world. See why learning is a never-ending process.</q> What is Tutorial Hell? - <q>Are you asking "What is Tutorial Hell?" It is doing many tutorials without any meaningful progress. Escape Tutorial Hell and start building actual projects now.</q> Getting started with Hive app development - <q>… I don't recommend spending too much time doing tutorials as you will end up in tutorial hell where you just do tutorials but have no idea …</q> Taking The Wheel - <q>… tutorial hell by opting to watch a full tutorial or reading the entire blog post. I've found that after I've done so, I feel sad with the knowledge that I …</q> Learning web2 for web3 - <q>Simply because I was trapped in a tutorial hell, I don't think I have ever been so confused. I did all these for one year without developing something …</q>

    2. Tutorial Hell
      • Who: The author (the100) and learners in various fields such as programming, graphics designing, video editing, learning a new language, and cooking.
      • What: Discussing the concept of "tutorial hell" where learners become dependent on tutorials and struggle to apply their knowledge creatively.
      • Where: Online courses and tutorials found on platforms like YouTube, Udemy, and other websites.
      • Why: To caution learners against becoming too reliant on tutorials and encourage them to practice and apply their knowledge independently.
      • How: By emphasizing the importance of practicing, building projects, making mistakes, exploring documentation, asking for help, and using problem-solving skills to truly learn and improve in a skill. The author shares their personal experience of falling into tutorial hell and finding success through practical application and problem-solving. The advice given is to follow a tutorial thoroughly before starting to create projects independently.
    3. Tutorial Hell

      The post discusses the concept of "tutorial hell". Where learners become overly dependent on tutorials. Without applying their knowledge creatively. Using examples from programming, graphic design, and other skills. The author emphasizes the importance of practicing, making mistakes, and exploring on your own to truly learn and improve.

  17. Apr 2024
    1. Testrpc

      TestRPC Related Pages

      • Ganache CLI Install - <q>testRPC/ganache-cli testRPC/ganache-cli is a node.js Ethereum client for testing and development of the Smart… by technological.</q>
      • Ethereum TestRPC and Tester Client - <q>This provider automatically spins up the eth-testrpc server for you so that you can test your web3.py code against an in memory EVM. This provides lightning …</q>
      • Ethereum TestRPC vs. Geth - <q>Ethereum TestRPC vs. Geth explains that TestRPC is a client for testing and developing. While Geth is a full GO language client for connecting to the blockchain.</q>
      • TestRPC & Ethereum Smart Contracts - <q>… testrpc. For truffle test, testrpc or geth is required to be run explicitly. Else, you get the following error: $ truffle test Could not connect to your …</q>
    1. shrink-wrap on blender

      Blender Shrinkwrap Modifier Related Pages

      Here are some examples of pages about the Shrinkwrap modifier for Blender:

      • Get Good at Blender - <q>It's a tough one to make. So I go through the best practice with edge flow and pole placement. We also work with the shrinkwrap modifier. As a quick note, those …</q>
      • Blender Shrinkwrap Model - <q>… Blender Shrinkwrap Model Purpose. @buttonm wants to showcase their artwork. And share their creative process by modeling a concept car for …</q>
      • Blender Shrinkwrap & Mesh Deformer Modifiers - <q>For tighter clothes such as the croptop and the forgotten arm socks, shrinkwrap … Blender (I'll work that out when I start a …) #blender · #3d · #creativecoin.</q>
      • ProgBlog #1 - <q>… Currently, 1 is Krita, 2 is keys I use excessively in Blender … Blender only when sculpting and/or animating … shrinkwrap" (I'm not sure why it …</q>
      • June ProgBlog - <q>And fixed up anything that had gone slightly awry from the shrinkwrap which had mostly done its job at least. … Blender doesn't decide to lag massively (I'm not …</q>
    1. Installing testRPC/ganache-cli

      Ganache CLI Install Related Pages

    1. You can think of it as the following cycle:software engineer writes codeusers get new featuresmore users use your productscompany profits from productsSo code is just a tool to get profit.

      The core software development process

    1. However, as we want to do perform the bisection automatically using as criterion ./calc.py 14 0, we run git bisect run ./calc.py 14 0

      git bisect run ./calc.py 14 0 ← example of running git bisect automatically. * If the commit is good, then the command should return 0; * If the commit is bad, then the command should return anything between 1 and 127, inclusive, except 125; * If it is not possible to tell if this commit is good or bad, then it need to be ignored, and the command should return 125.

    2. Git Bisect! It allows us to find the commit that broke something. Given a “good” commit (a commit that is not broken, created before the introduction of the bug), and a “bad” commit (a commit that certainly is broken), Git will perform a binary search until the broken commit is found.

      Git Bisect can be run manually or automatically

    3. What are the tools that comes on your mind when someone say “debug”? Let me guess: a memory leak detector (e.g. Valgrind); a profiler (e.g. GNU gprof); a function that stops your program and gives you a REPL (e.g. Python’s breakpoint and Ruby’s byebug); something that we call a “debugger” (like GDB, or something similar embedded on the IDEs); or even our old friend, the print function. So, in this text I’ll try to convince you to add Git to your debug toolbelt.

      6 differen debugging tools

    1. On code-authoring tasks, students in the Codex group had a significantly higher correctness score (80%) than the Baseline (44%), and overall finished the tasks significantly faster. However, on the code-modifying tasks, both groups performed similarly in terms of correctness, with the Codex group performing slightly better (66%) than the Baseline (58%).

      In a study, students who learned to code with AI made more progress during training sessions, had significantly higher correctness scores, and retained more of what they learned compared to students who didn't learn with AI.

  18. Mar 2024
    1. https://archive.org/details/run-de-1986-10/page/120/mode/2up

      "RUN – Unabhängiges Commodore Computermagazin", Ausgabe 10/Oktober 1986, which has a hexdump code listing of a C64 Zettelkasten

      ᔥ[Michael Gisiger[]] in mastodon: (@gisiger@nerdculture.de)

      Lust auf #Retrocomputing und #PKM mit einem #Zettelkasten? Bitte schön, in der Oktober-Ausgabe 1986 des #Commodore Magazins RUN findet sich ein Listing für den #C64 dazu. Viel Spass beim Abtippen 😅

      https://archive.org/details/run-de-1986-10/page/120/mode/2up

      See additional conversation at: https://www.reddit.com/r/c64/comments/1bg0ja1/does_anyone_have_the_zettelkasten_program_from/?utm_source=share&utm_medium=web2x&context=3

  19. Feb 2024
    1. Python 3
      • Who: The author of the post, Anmitsu.
      • What: Anmitsu's diary entry about learning to code in Python 3, specifically discussing confusions and problem-solving related to functions and parameters in the course material.
      • Why: Anmitsu is sharing their experiences and seeking advice and suggestions from others.
      • When: The post was made after Anmitsu encountered and solved some issues related to functions and parameters in Python 3.
      • How: Anmitsu discusses two specific tasks related to defining and calling functions, sharing their process of confusion, attempts at solving the problems, and the final solution they arrived at. They also mention seeking help from Code Academy for clarification.
  20. Jan 2024
    1. My First dApp
      • Who: The author, Tom
      • What: The author's experience building his first dApp, a game called Battleship, using Ethereum, solidity, and smart contracts.
      • Where: The author built the dApp using Truffle and deployed it on the Kovan testnet.
      • Why: The author wanted to learn how to make his own smart contracts and build dApps.
      • When: The author started the project a few months ago and wrote the post on PeakD.com to share his experience and help others.
      • How: The author:
        • Used Truffle as a framework for building dApps,
        • Ran a localhost node for testing using TestRPC,
        • Injected Web3 using the Metamask Chrome extension,
        • Used the Remix online editor for quick compilation and bug finding,
        • And wrote JavaScript tests using Truffle's testing framework. The author also built the UI using Angular 1 and played the game using Chrome and Metamask.
    1. Ethereum TestRPC vs Geth

      This post compares TestRPC and Geth, explaining that TestRPC is a client for testing and development, while Geth is a full client for connecting to the real Ethereum chain or starting a testnet server. It also mentions that successful tests in TestRPC can be transferred to Geth.

    2. Ethereum TestRPC vs Geth
      • What: The post explains that TestRPC is a Node.js based Ethereum client used for testing and development, while Geth is a full client in GO Language used to connect to the real chain or start a testnet server.
      • Where: The platforms mentioned in the post, TestRPC and Geth, are used in the Ethereum ecosystem.
      • Why: The purpose of the post is to compare the functionalities and uses of TestRPC and Geth.
      • When: The post does not provide specific information about the timing or date of the comparison.
      • How: The post explains that some successful tests conducted in TestRPC can be transferred to Geth.
    1. You should take care, however, to make sure that your individual objects can stand alone as much as possible. Tightly coupled objects are objects that rely so heavily on each other that removing or changing one will mean that you have to completely change another one - a real bummer.

      Isn't there a conflict between this principle and code reusability?

    1. You can do this with recursive descent, but it’s a chore.

      Jonathan Blow recently revisited this topic with Casey Muratori. (They last talked about this 3 years ago.)

      What's a little absurd is that (a) the original discussion is something like 3–6 hours long and doesn't use recursive descent—instead they descended into some madness about trying to work out from first principles how to special-case operator precedence—and (b) they start out in this video poo-pooing people who speak about "recursive descent", saying that it's just a really obnoxious way to say writing ordinary code—again, all this after they three years ago went out of their way to not "just" write "normal" code—and (c) they do this while launching into yet another 3+ hour discussion about how to do it right—in a better, less confusing way this time, with Jon explaining that he spent "6 or 7 hours" working through this "like 5 days ago". Another really perverse thing is that when he talks about Bob's other post (Parsing Expressions) that ended up in the Crafting Interpreters book, he calls it stupid because it's doing "a lot" for something so simple. Again: this is to justify spending 12 hours to work out the vagaries of precedence levels and reviewing a bunch of papers instead of just spending, I dunno, 5 or 10 minutes or so doing it with recursive descent (the cost of which mostly comes down to just typing it in).

      So which one is the real chore? Doing it the straightforward, fast way, or going off and attending to one's unrestrained impulse that you for some reason need to special-case arithmetic expressions (and a handful of other types of operations) like someone is going to throw you off a building if you don't treat them differently from all your other ("normal") code?

      Major blind spots all over.

  21. Dec 2023

    Tags

    Annotators

    1. Solution: Instead of taking notes to use as direct references, make notes that can serve as prompts for further research. It is important to get comfortable with reading documentation, which essentially acts as pre-existing notes made by someone else.

      It is also a good idea to create a developer journal with your different questions, insights, and reasonings that you bump into during your journey. It will also serve you in your career.

    1. Let us change our traditional attitude to the construction of programs: Instead of imagining that our main task is to instruct a computer what to do, let us concentrate rather on explaining to human beings what we want a computer to do.

      In reality, It is a mix between these two attitudes. Programming is being good at telling the computer what to do, in the most efficient way. This whole process requires a good amount of knowledge, design, and thinking. But coding, just the part where you're writing code, should be focused on readability because humans are the ones that interact with the text, not computers.

  22. Nov 2023
    1. One of the ways that, that chat G BT is very powerful is that uh if you're sufficiently educated about computers and you want to make a computer program and you can instruct uh chat G BT in what you want with enough specificity, it can write the code for you. It doesn't mean that every coder is going to be replaced by Chad GP T, but it means that a competent coder uh with an imagination can accomplish a lot more than she used to be able to, uh maybe she could do the work of five coders. Um So there's a dynamic where people who can master the technology can get a lot more done.

      ChatGPT augments, not replaces

      You have to know what you want to do before you can provide the prompt for the code generation.

  23. Oct 2023
    1. although they happened to be built with HTML, CSS and JS, these examples were content, not code. In other words, they’d be handled more or less the same as any image or video I would include in my blog posts. They should be portable to any place in which I can render HTML.
    1. (Weight W1) (Rope Rp) (Rope Rq) (Pulley Pa) (hangs W1 from Rp) (pulley-system Rp Pa Rq) (Weight W2) (hangs W2 from Rq) (Rope Rx) (Pulley Pb) (Rope Ry) (Pulley Pc) (Rope Rz) (Rope Rt) (Rope Rs) (Ceiling c) (hangs Pa from Rx) (pulley-system Rx Pb Ry) (pulley-system Ry Pc Rz) (hangs Pb from Rt) (hangs Rt from c) (hangs Rx from c) (hangs Rs from Pc) (hangs W2 from Rs) (value W1 1) (b) P1. P2. P3. P4. .. Single-string support. (weight < Wx>) (rope <Ry >) (value <Wx> <n>) (hangs <Wx> <Ry>) -(hangs <Wx> <Rx>) - (value <Ry> <W-number>) Ropes over pulley. (pulley <P>) (rope <R1>) (rope <R2>) (pulley-system <R1 > <P> <R2>) (value <R1> <nl>) - (value <R2> <nl>) Rope hangs from or supports pulley. (pulley <R1>) (rope <R1>) (rope R2>) (pulley-system <R1> <P> <R2>) { (hangs <R3> from <P>) or (hangs <P> from <R3>) } (value <R1> <nl>) (value <R2> <n2>) - (value <R3> <nl + <n2>) Weight and multiple supporting ropes. (weight <W1 >) (rope <R1 >) (rope R2>) (hangs <W1> <Rl>) (hangs <W1> <R2>) -(hangs <W1> <R3>) (value <R1> <nl>) (value <R2> <n2>) - (value <W1> <nl> + <n2>) P2. Ropes over pulley. If a pulley system < P> has two ropes < RI > and < R2> over it, and the value (tension) associated with < RZ > is < nl > , then < nl > is also the value associated with rope < RZ > . P3. Rope hangs from or supports pulley. If there is a pulley system with ropes < RZ > and < R2> over it, and the pulley system hangs from a rope < R3 > , and c R1> and < R2 > have the values (tensions) < nl > and < n2 > associated with them, then the value (tension) associated with < R3 > is the sum of < nl > plus <n2>.

      Please explain to me how it is not evident to programmers that this is how we program.. we cannot hold more than seven items at a time. We cannot fracture. As Miller mentioned, 2 3 digit numbers are outside t capacity, but if you multiply them by paper w, if we free your memory, we can let the brain focus on the v

      If you assign the memory function to a diagram, you can let your brain concentrate on the manipulation function.

      Once we codify, we no longer have to keep the information in memory, for example : This hurts my brain

      There are five roads in Brown County. One runs from Abbeville to Brownsville by way of Clinton. One runs from Clinton to Derbyshire by way of Fremont. One runs from Fremont to Brownsville by way of Abbieville. That's all the roads in Brown County, and all the roads in and out of those towns.

      Which towns have roads connecting them directly to three other towns? Which towns have roads connecting them directly to only two other towns? How many towns must you pass through to get from Brownsville to Derbyshire?

      But if we diagram it to a map, all of this makes sense.

      "The learning of numbers and language must be subordinated ... Visual understanding is the essential and only valid means of teaching how to judge things correctly." ~ Johann Heinrich Pestalozzi

      Pestalozzi was the guy who designed the educational system in which Einstein, the most extraordinary visualization of his time, was born q

  24. Sep 2023
  25. Aug 2023
    1. ```js function createPromiseWithData() { let resolveFn;

      const promise = new Promise((resolve, reject) => { resolveFn = resolve; });

      return { promise, resolveFn }; }

      // Usage const { promise, resolveFn } = createPromiseWithData();

      // Later, when you have the data you want to pass const data = 'Future data';

      // Resolve the promise with the data resolveFn(data);

      // Use the promise promise.then((result) => { console.log('Promise resolved with:', result); }); ```

  26. Jul 2023
    1. Colaroid’s unique ap-proach to literate programming is to bring together the rich textediting affordances of notebooks together with automated creationof contextualized code snippets showing code differences, and closeintegration of the literate document into an IDE where code can betinkered with.

      This misses the point of LP—the true "fundamental theorem of LP" is basically that the compiler should be made to accept the preferred form.

    Tags

    Annotators

    1. REPLs are nice but they work well only for reasonably isolated code with few dependencies. It's hard to set up a complex object to pass into a function. It's harder still to set up an elaborate context of dependencies around that function.

      I wonder how much of this is accomplishable by automatically parameterizing code by the types that aren't used internally so they implementation can forget about the specifics. In addition some sort of meta-programming capability to automatically generate arbitrary instances or a richer form of trace types for user types would go a long way to simplifying the trace generation.

  27. Jun 2023
    1. In the layered architecture pattern, each layer fulfills a specific responsibility and role within the application. Some focus on user interface logic, while others handle the execution of business rules. These layers complement each other's unique purposes, but they aren't explicitly reliant on one another to perform their own tasks.
    1. kons-9 is that it combines the power of a software development IDE with the visual tools of 3D graphics authoring system. It does this by being implemented in Common Lisp, an object-oriented dynamic language which provides powerful facilities for exploratory development and rapid prototyping within a live interactive software environment

      IDE + 3D + Lisp = Unique features:: * software development IDE with visual toold of 3d graphics authoring system * unlimited extensibility (no distinction between developers and end users)

      https://youtu.be/NJe4isZ7NHI

    1. Developers often speak of "getting into the flow" or "being in the zone." Such statements colloquially describe the concept of flow state, a mental state in which a person performing an activity is fully immersed in a feeling of energized focus, full involvement, and enjoyment.

      One of my favourite explanations of the flow state

  28. May 2023
    1. From Jim Keller on Lex, there’s three fundamental types of compute CPU: add, multiply, load, store, compare, branch (nothing can be known about anything) GPU: add, multiply, load, store (when things happen is known, but the addresses aren’t) DSP: add, multiply (everything is known except the data) Neural networks are DSPs. All the loads and stores can be statically computed, which isn’t even possible for GPU workloads, never mind CPU ones.
    1. I think that TANGLE-style reordering is a lot less important with modern programming languages: they don't do one-pass compilation and so can deal with forward references. Note that most of the cross-references in Knuth's program could be replaced with function calls or constant names
    1. Web sites often design their APIs to optimize performance forcommon cases. Their main object-reading methods may return onlycertain “basic” properties of objects, with other methods availablefor fetching other properties. ShapirJS hides this performanceoptimization complexity from the user.

      In other words, it risks undermining the intent of the API design.

    1. How can I add, subtract, and compare binary numbers in Python without converting to decimal?

      I think the requirements of this were not spelled out well. After reading this over a couple of times, I think the problem should be…

      "Add, subtract, and compare binary numbers in Python as strings, without converting them to decimal."

      I'll take on that problem sometime when I get free time!

  29. Apr 2023
    1. Here we have extended this model to a slightly different category, a category where morphisms are represented by embellished functions, and their composition does more than just pass the output of one function to the input of another. We have one more degree of freedom to play with: the composition itself. It turns out that this is exactly the degree of freedom which makes it possible to give simple denotational semantics to programs that in imperative languages are traditionally implemented using side effects.
  30. Mar 2023
    1. The difference between coding and system design is the difference between retrieving and creating.Instead of finding (or “retrieving”) a solution, you are creating a solution. In this way, coding is akin to a science, while system design is more like an art.
  31. Feb 2023
    1. Object-oriented Design (OOD) is the process of converting such requirements intoan implementation specification. The designer must name the objects, define thebehaviors, and formally specify what objects can activate specific behaviors onother objects. The design stage is all about how things should be done. The outputof the design stage is an implementation specification. If we were to complete thedesign stage in one step, we would have turned the requirements into a set ofclasses and interfaces that could be implemented in (ideally) any object-orientedprogramming language.

      OOD

    2. Object-oriented Analysis (OOA) is the process of looking at a problem, system,or task that somebody wants to turn into an application and identifying the objectsand interactions between those objects. The analysis stage is all about what needsto be done. The output of the analysis stage is a set of requirements. If we were tocomplete the analysis stage in one step, we would have turned a task, such as, "Ineed a website", into a set of requirements, such as:Visitors to the website need to be able to (italic represents actions, boldrepresents objects):review our historyapply for jobsbrowse, compare, and order our products

      OOA

    Tags

    Annotators