302 Matching Annotations
  1. Feb 2024
    1. if (( ${#} == 0 )) ; then while read -r __my_function ; do my_function "${__my_function}" done else target_utility "${@}" fi

      I like it pretty well, in many ways more than G-Man's answer. I like the use of while read. I'd probably prefer non-recursive solution most of the time though, esp. if instead of a function we would be spawning a subshell (script) to achieve the recursion, like in ...

    2. Also unclear why the answer is criticized for providing a "more general case" since the OP said "You are right, this [base64] was just used as an example, though.
    3. (It seems reasonable to assume users are often expected to occasionally adapt answers rather than expect to use them verbatim.)
    4. This answer is one of various possible solutions for a "Bash function that accepts input from parameter or pipe" since the OP indicated [in a comment] that base64 was not the actual problem domain. As such, it makes no attempt to assure input is able to be directly read from a file.
    5. but in a different situation target_utility "${@}" could represent more complex code
    6. Though the OP's issue may not present a problem ideally resolved through use of recursion, other reader's problems may benefit from using it, or, from considering use of an wrapper function:
    7. The title of the question is what triggered the process of finding this Q/A for material that aided development of the above to solve a real life problem described by the title. The OP declared that base64 decode was not the "real" problem; pedantic constraint of answers to a particular "example" seems less helpful. When this question and its answers were key to helping solve real problems, alternate answers can be gifts to the community in recognition of the fact that many more people will use this Q/A to solve problems. Since the answer is on-topic per the title, I feel it is "game on".
  2. Jan 2024
    1. Board view Subtasks are shown slightly indented from the main task Subtasks can be dragged out of the parent task to a new list to indicate their status. For subtasks with a different status to their parent, it displays a dummy parent (ghosted), above the subtask in the list, with the parent's status label visible against the dummy. Dragging the parent task to a different list changes the label of the child tasks as well, and any sub tasks already in its new list are re-organised under the parent and any dummy removed
    1. Another example are issue boards. They represent elegant use of a good infrastructure ­— it is all just a smart use of labels. It would be very complex feature without the use of labels.
    2. Issue relations are meant to be the basic infrastructure to build on (at least that is how I meant it when I posted the original feature request). Just like the labels are just a binary relation between a issue and a "label", the relations should be just a ternary relation between two issues and a "label". Then you can build issue task lists on top of the relations like you've built issue boards on top of the labels.
    3. We already have a very nice example of such tool and its great use: the Board, where labels are used to store metadata and the Board is built above this storage. Do the same with the relations -- simple metadata storage to build on.
    4. Such a generic approach will allow the Relations to fit any reasonable workflow, because possible relations are defined by users, just like the Labels are.
  3. Nov 2023
    1. In a partially ordered system it is still possible to enforce a to-tal order on events after the fact, as illustrated in Figure 2. Wedo this by attaching a logical timestamp to each event; Lamporttimestamps [45] are a common choice.
  4. Oct 2023
    1. in your view sadguru what is the direct antidote to Jihadi terrorism an 00:01:19 immediate and quick solution to it uh what is the direct antidote that's what I'm doing that's my work but quick solution I don't have one there's no 00:01:32 quick solution individual transformation is the only solution but that's not a quick solution but a lasting solution
      • for: solution to Islamic terrorism, quote, quote - solution to Islamic terrorism

      • quote

        • Individual transformation is the only solution but that's not a quick solution, but a lasting solution
      • author: Sadhguru
      • date: Sept 2023

  5. Sep 2023
  6. Aug 2023
    1. Some may not realize it yet, but the shift in technology represented by ChatGPT is just another small evolution in the chain of predictive text with the realms of information theory and corpus linguistics.

      Claude Shannon's work along with Warren Weaver's introduction in The Mathematical Theory of Communication (1948), shows some of the predictive structure of written communication. This is potentially better underlined for the non-mathematician in John R. Pierce's book An Introduction to Information Theory: Symbols, Signals and Noise (1961) in which discusses how one can do a basic analysis of written English to discover that "e" is the most prolific letter or to predict which letters are more likely to come after other letters. The mathematical structures have interesting consequences like the fact that crossword puzzles are only possible because of the repetitive nature of the English language or that one can use the editor's notation "TK" (usually meaning facts or date To Come) in writing their papers to make it easy to find missing information prior to publication because the statistical existence of the letter combination T followed by K is exceptionally rare and the only appearances of it in long documents are almost assuredly areas which need to be double checked for data or accuracy.

      Cell phone manufacturers took advantage of the lower levels of this mathematical predictability to create T9 predictive text in early mobile phone technology. This functionality is still used in current cell phones to help speed up our texting abilities. The difference between then and now is that almost everyone takes the predictive magic for granted.

      As anyone with "fat fingers" can attest, your phone doesn't always type out exactly what you mean which can result in autocorrect mistakes (see: DYAC (Damn You AutoCorrect)) of varying levels of frustration or hilarity. This means that when texting, one needs to carefully double check their work before sending their text or social media posts or risk sending their messages to Grand Master Flash instead of Grandma.

      The evolution in technology effected by larger amounts of storage, faster processing speeds, and more text to study means that we've gone beyond the level of predicting a single word or two ahead of what you intend to text, but now we're predicting whole sentences and even paragraphs which make sense within a context. ChatGPT means that one can generate whole sections of text which will likely make some sense.

      Sadly, as we know from our T9 experience, this massive jump in predictability doesn't mean that ChatGPT or other predictive artificial intelligence tools are "magically" correct! In fact, quite often they're wrong or will predict nonsense, a phenomenon known as AI hallucination. Just as with T9, we need to take even more time and effort to not only spell check the outputs from the machine, but now we may need to check for the appropriateness of style as well as factual substance!

      The bigger near-term problem is one of human understanding and human communication. While the machine may appear to magically communicate (often on our behalf if we're publishing it's words under our names), is it relaying actual meaning? Is the other person reading these words understanding what was meant to have been communicated? Do the words create knowledge? Insight?

      We need to recall that Claude Shannon specifically carved semantics and meaning out of the picture in the second paragraph of his seminal paper:

      Frequently the messages have meaning; that is they refer to or are correlated according to some system with certain physical or conceptual entities. These semantic aspects of communication are irrelevant to the engineering problem.

      So far ChatGPT seems to be accomplishing magic by solving a small part of an engineering problem by being able to explore the adjacent possible. It is far from solving the human semantic problem much less the un-adjacent possibilities (potentially representing wisdom or insight), and we need to take care to be aware of that portion of the unsolved problem. Generative AIs are also just choosing weighted probabilities and spitting out something which is prone to seem possible, but they're not optimizing for which of many potential probabilities is the "best" or the "correct" one. For that, we still need our humanity and faculties for decision making.


      Shannon, Claude E. A Mathematical Theory of Communication. Bell System Technical Journal, 1948.

      Shannon, Claude E., and Warren Weaver. The Mathematical Theory of Communication. University of Illinois Press, 1949.

      Pierce, John Robinson. An Introduction to Information Theory: Symbols, Signals and Noise. Second, Revised. Dover Books on Mathematics. 1961. Reprint, Mineola, N.Y: Dover Publications, Inc., 1980. https://www.amazon.com/Introduction-Information-Theory-Symbols-Mathematics/dp/0486240614.

      Shannon, Claude Elwood. “The Bandwagon.” IEEE Transactions on Information Theory 2, no. 1 (March 1956): 3. https://doi.org/10.1109/TIT.1956.1056774.


      We may also need to explore The Bandwagon, an early effect which Shannon noticed and commented upon. Everyone seems to be piling on the AI bandwagon right now...

  7. Jul 2023
    1. power-hungry literally means someone who wants power. Someone who wants power 00:11:34 is going to seek power more than everybody else. As a result of that, we have a real problem on our hands. How do we stop this, right? So there's a few answers.
      • problem
        • power hungry people intentionally seek out power more than anyone else.
        • this creates a real problem.
        • the more power a position has, the more likely power-hungry people will be attracted
      • solution
        • make systems of power more attractive for ordinary and decent people
  8. capture2text.sourceforge.net capture2text.sourceforge.net
    1. [[Capture2Text]] is a [[OCR]] tool I found when looking for a way to copy text from a screen even though the text isn't selectable (like for screenshots and certain info on Windows). It's also open-source.

  9. Jun 2023
    1. Error opening file for writing: mpv.exe Anki Desktop

      Ran into the same issue when reinstalling Anki. The solution was (as dae suggested) to use Task Manager to close mpv under "Background processes".

      Afterwards, the Anki Setup program ran without issue.

    1. Using Time.now (which returns the wall-clock time) as base-lines has a couple of issues which can result in unexpected behavior. This is caused by the fact that the wallclock time is subject to changes like inserted leap-seconds or time slewing to adjust the local time to a reference time. If there is e.g. a leap second inserted during measurement, it will be off by a second. Similarly, depending on local system conditions, you might have to deal with daylight-saving-times, quicker or slower running clocks, or the clock even jumping back in time, resulting in a negative duration, and many other issues. A solution to this issue is to use a different time of clock: a monotonic clock.
  10. Apr 2023
  11. Mar 2023
    1. hese challenges demand an ethos not of technologicalcleverness, but of social prudence, of acting with humility and cautionwhen confronted by risk and uncertainty. The French philosopherHans Jonas calls this the “imperative of responsibility.”

      // - see also Kevin Anderson's presentation on "The Ostrich and the Phoenix" - https://jonudell.info/h/facet/?max=100&expanded=true&user=stopresetgo&exactTagSearch=true&any=ostrich+and+the+phoenix - humans opt for the just-in-time techno path because we can "kick the can down the road" and procastinate and allow the next generation deal with the problem - As Anderson shows, there isn't enough time for renewable energy to scale to make a difference in the short term and the difficult social problem of massive social behavior change is unfortunately the best way to solve the problem - the allure of technology is that it can fix any problem - the reality is that last generation's technology is unfortunately often the source of this generation's problems - technology not only produces progress, but the unintended consequences produce progress traps which become the inspiration for new technology in an endless cycle of self-created problems giving rise to avoidable solutions

  12. Dec 2022
    1. simonhong commented Dec 11, 2020 @pitsi That homepage option is related with below homepage option. If homepage is configured, new tab will show that url. Loading local html file in new tab is not supported.

      I came here looking for a way to change the default New Tab Page in Brave to open up to my Hypothes.is bookmarks.

      This was passage was only part of the solution. The full solution is as follows: 1. Go to Settings > Appearances - brave://settings/appearance 2. Under "Show home button", select website you want to open as New Tab Page 3. Go to Settings > New Tab Page - brave://settings/newTab 4. Change from "Dashboard" to "Homepage"

    1. Email addresses sometimes get reassigned to a different person. For example, employment changes at a company can cause an address used for an ex-employee to be assigned to a new employee, or a mail service provider (MSP) might expire an account and then let someone else register for the local-part that was previously used. Those who sent mail to the previous owner of an address might not know that it has been reassigned. This can lead to the sending of email to the correct address but the wrong recipient. This situation is of particular concern with transactional mail related to purchases, online accounts, and the like.
    1. Adding a condition to ensure that a contact is marked as bounced only if the reason is one of the above, should hopefully resolve this issue.
    2. I did some further digging and found that there is a reason property that can be used to determine whether Mailgun added an email address to its bounce suppression list:
    3. but that before marking the contact as a bounced, Campaign should double check it was really a hard bounce that would affect future deliverability.
  13. Nov 2022
    1. Quadrants I and II: The average student’s scores on basic skills assessments increase by21 percentiles when engaged in non-interactive, multimodal learning (includes using textwith visuals, text with audio, watching and listening to animations or lectures that effectivelyuse visuals, etc.) in comparison to traditional, single-mode learning. When that situationshifts from non-interactive to interactive, multimedia learning (such as engagement insimulations, modeling, and real-world experiences – most often in collaborative teams orgroups), results are not quite as high, with average gains at 9 percentiles. While notstatistically significant, these results are still positive.

      I think this is was Thomas Frank was referring to in his YT video when he said "direct hands-on experience ... is often not the best way to learn something. And more recent cognitive research has confirmed this and shown that for basic concepts a more abstract learning model is actually better."

      By "more abstract", I guess he meant what this paper calls "non-interactive". However, even though Frank claims this (which is suggested by the percentile increases shown in Quadrants I & II), no variance is given and the authors even state that, in the case of Q II (looking at percentile increase of interactive multimodal learning compared to interactive unimodal learning), the authors state that "results are not quite as high [as the non-interactive comparison], with average gains at 9 percentiles. While not statistically significant, these results are still positive." (emphasis mine)

      Common level of signifcances are \(\alpha =.20,~.10,~.05,~.01\)

    1. I came to this page looking for a way to disable news stories in Windows 11 Widgets. I attempted one of the solutions (Disable Interests From Widgets To Turn Off News Feeds) but News recommendations still appeared.

      Since I mainly wanted the Widget enabled for a calendar view, I decided against using Widgets altogether and settled for using the calendar in the notifications bar.

      Another alternative I considered was to have 4 static Widgets pinned to obscure any news articles in the feed. However, unless one uses the insider Windows 11 build 25211 or later, Widget display will pop up from mouse hovering.

    1. anditails · 1 yr. agoDell Pro Support Engineer (3rd party)You don't need Support Assist on Windows 11. Enable the "Optional Updates" and it'll do all the drivers through Windows Update.It's fast, too. Far quicker than Support Assist!

      Someone recommending to avoid using Dell SupportAssist on Windows 11. I came across this because I was trying to see if there was a way to update SA in order to ensure the driver iqvw64e.sys was removed. Related to the problem here. Uninstalling SupportAssist resolved the aforementioned problem since recursive file search through C drive failed to find driver iqvw64e.sys

      Based on other comments in this thread, seems like it's best to let Windows Update handle the drivers. Will no longer use Dell SA and will utilize "Optional Updates" to handle drivers

      Currently, the only perceived benefit from SA is automating support tickets submissions if product is under warranty. Last IT support experience with Dell was positive (they did the best they could), but they didn't know much about sys admin stuff on Windows (weren't very helpful in resolving issue without losing all files and installed software).

    1. The correct answer here is to uninstall the intel network driver completely because it is not supported anymore. Support Information for Intel® PROSet and Intel® Advanced...Let Kernel isolation on. saying home users should not care about safety is just a stupid way of thinking. installing bad drivers is a way to spread malware with ease. This should be the "marked solution" to this thread.And I would also add a link to the Intel® Driver & Support Assistant (Intel® DSA) to easily install the latest official driver. Thank you BjornVermeulen for pointing out the support info from Intel.

      I came here looking for a way to resolve an error "A driver cannot load on this device" for the driver "iqvw64e.sys". This error popped up after I enabled "memory integrity" in Windows 11.

      Note that "some malware camouflages itself as iqvw64e.sys" source.

      This driver is associated with Intel network connections software, and gets removed by uninstalling the software per this reddit comment in r/sysadmin. This error is probably because Intel won't support Intel PROSet & Intel Advanced Network Services on Windows 11. The driver is likely a holdover from my Windows 10 OS before I upgraded it to Windows 11. The driver is probably unneeded since other Intel drivers are available .

      The accepted answer in this Microsoft Q&A forum seems silly (just disable memory integrity), so I kept reading and found the highlighted response which quoted a more sensible answer (get rid of bad drivers). Later in the replies, someone asks what's the most efficient way to remove the driver and someone else states

      I found the solution to this problem. After digging for the source of this file, I came across this article. File.net description of iqvw64e.sys. According to the article, this driver can be removed by uninstalling "Intel(R) Network Connections". Sure enough, I went to Control Panel, uninstalled the recommended app, rebooted, and voila! No more error. As for the value of that application, I have no idea. I am however happy to be rid of this error.

      This didn't work for my case since "Intel(R) Network Connections" wasn't installed. Couldn't find iqvw64e.sys in the expected location of C:\Windows\System32\drivers. May have been removed after memory integrity enabled?

      Presently looks like non-issue and can disregard warning in the future

    1. module InjectSession include Warden::Test::Helpers def inject_session(hash) Warden.on_next_request do |proxy| hash.each do |key, value| proxy.raw_session[key] = value end end end end
    1. You can do searches that exclude certain labels. That is, searches like this will do what you expect: (label:MyLabel1 AND NOT label:inbox AND NOT label:MyBadLabel1) That search will show you only messages that: Do have MyLabel1 And do not have label inbox And do not have label MyBadLabel1 The tricks are: to get yourself out of conversation mode! (As @Ruben says above.) to use UPPER CASE for the logic operators (AND NOT will work, and not won't) If you leave "conversation mode" on, you will get confusing results. For example, doing that search above (with conversation mode on), will likely return messages that do NOT match your search. It may be a bit weird. Here's the deal: Conversations are collections of messages that all have the same Subject. When "conversation mode" is on, searches return entire conversations as results. So what should gmail search do if a conversation contains both a message that matches, and a message that does not match your search? You are probably expecting it to return conversations only if all messages in that conversation match. But that is not correct. Instead, Gmail search will return conversations even if only a single message in that conversation matches. So that means that if you do the same search above with "conversation mode" on, the results are likely to include messages that do not match your search!

      I came here looking for a way to exclude certain emails from searches in Gmail. I was trying to make sure some emails that were archived don't show up, and this approach works (but the Boolean operators must be capitalized):

      (label:label_I_want AND NOT label:label_I_dont)

      If the unwanted label msgs are a part of a conversation thread containing the wanted msgs, then I'll need to turn this off first:

      Go to the main Settings page, look for the “Conversation View” section, select the option to turn it off, and save changes. If you change your mind, you can always go back. source

    1. Kevin Flowers Nov 7th at 12:50 PM# Question about repliesForgive me a bit if this is the wrong place to ask, but is the feature of having Hypothes.is list replies somewhere on the roadmap?  I checked the github issues with "label:enhancement" but nothing matches what I'm wondering aboutI could be missing something obvious, but when I search my username in https://hypothes.is/users, none of the replies I've made on other people's public annotations show up# Use casesSometimes people have insightful observations and references they provide, so I tend to reply to those annotations with tags that I use to sort through (eg, tags like "to read", "how to", "tutorial", and so forth)I also tend to make comments on what the OP's annotation made me think of at the time of reading it which is exemplified in the attached screenshotimage.png 9 repliesMichael DiRoberts  7 days ago@Kevin Flowers You’re right, the Activity Page (https://hypothes.is) doesn’t show replies. The Notebook, which will be built out more with time, does.https://web.hypothes.is/help/how-to-preview-the-hypothesis-notebook/HypothesisHow to Preview the Hypothesis Notebook : HypothesisHypothesis has released an early preview of Notebook, which enables you to view, search for, and filter annotations. While this tool is available in both the LMS and web apps, it is designed to bring much-needed functionality to our LMS users. This initial release contains some basic features we have planned to include in the […]Est. reading time2 minutes1Michael DiRoberts  7 days agoI hope Notebook solves the issue for you! For now it’s going to work on private groups and not the Public group (due to it having a limit of 5,000 annotations), though that may change in the future.Michael DiRoberts  7 days agoIf you’re comfortable using APIs then you might check out our API as well: https://h.readthedocs.io/en/latest/api-reference/v1/.You can find replies by looking at rows that contain references.Kevin Flowers  7 days agoOh, the Notebook seems like a neat tool, I'll have to share that with some friendsKevin Flowers  7 days agoThe issue for my own PKM (personal knowledge management) stack is that I couple Hypothes.is with an Obsidian [1] plugin that imports my annotations into my local file system.  Atm, I think the plugin only references the Activity Page to import annotations, so it looks like I'll have to play around with the API you mentioned if I want to grab my replies (along with their parent replies & annotations)[1] Obsidian is a notetaking software similar to Roam & Logseq; it just adds a pretty GUI on top of .md files which are stored locallyMichael DiRoberts  7 days agoNote that the Obsidian plugin wasn’t made by us, so I’m not familiar with how it works. It’s a little weird to me that it would work over the activity page and not use our API, however.Brian Cordan Young  7 days ago@Kevin Flowers Do you have, or have you considered, blogging about your use of Hypothesis as a part of a PKM?I’m still not a regular user of Hypothesis because it doesn’t fit in to my current info consumption well enough. That said I love learning how others do fit it in.(Obsidian is really great too) (edited) Kevin Flowers  7 days ago@Michael DiRoberts ah, you're right, thanks for mentioning that.   Looks like it requires one to generate an API token in order to pull highlights, so it must be using the Hypothes.is API in some way.  Sadly, I'm not familiar enough with general software development design (or JavaScript/TypeScript), and the source code for obsidian-hypothesis-plugin doesn't have enough high level comments for me to parse what any given file does.  It'll probably be cumbersome and somewhat painful, but I'll probably learn more by just building something from scratch@Brian Cordan Young Huh, I hadn't considered that until you mentioned it.   Recently developed some interest in building something with JavaScript (probably with the Next.js framework), so a blog might be just the project I've been looking forGitHubobsidian-hypothesis-plugin/src at master · weichenw/obsidian-hypothesis-pluginAn Obsidian.md plugin that syncs highlights from Hypothesis. - obsidian-hypothesis-plugin/src at master · weichenw/obsidian-hypothesis-plugin (150 kB)https://github.com/weichenw/obsidian-hypothesis-plugin/tree/master/srcMichael DiRoberts  7 days agoJust in case, or for others in the future, you can generate a Hypothesis API token here: https://hypothes.is/account/developer1

      This is a post I made on the Slack public channel asking about whether or not Hypothes.is indexes replies. A tech support membered confirmed this is true.

      However, Obsidian's Hypothes.is plugin does pull replies. It should be noted that default settings don't capture updates to the annotations or tags.

    1. Page: Escape Sequences

      I was looking for documentation on escaped characters.

      This was because Auto Hotkey threw an error when I used <%* %> as an option for the text insert script. It said the illegal character was * but really what was happening was that the unquoted text %* % was treated like a variable since % is used to enclose variables in Auto Hotkey. The solution was to escape the percent sign with one left back tick.

    1. dsmdavid commented Mar 8, 2021 @tchakabam if you right click on the status bar, do you get many options? Might be worth not showing some of the other options (in my case the line/column was not shown because there were too many options already there) and, after unselecting one:

      Post about status bar in VS Code (visible at bottom of window by default).

      I looked for this since I couldn't figure out the column numbers of where my cursor was in the editor.

      You can toggle this setting by opening command palette and searching "View: Toggle Status Bar Visibility"

      Displays Ln & Col numbers.

    1. [Solved] Git: LF will be replaced by CRLF the next time Git touches it’ problem solving and thinking

      Trouble shooting git add . issue.

      Setting method one for Windows system working with others:

      git config --global core.autocrlf true

    1. Louis Burki 6 months ago (edited) I have make some changes to make it work, because I had a similar error. First, I have add a ":" before the "=" in the Text variable at the beginning of the script. Now it looks like that: "Text:=". Then I have put double quotes around (**your snippets**) so now it looks like this "(***your snippets***)". Then, I also changed the sort line to make it look that: Text:= sort(Text). And now it works as intended. Also, be careful not to remove the pipe symbol in your snippets.

      Someone giving a troubleshooting solution to using Joe Glines' Auto Hotkey script that inserts text from a list of the user's choosing. The problem another user had was including it in their main script file, but this was resolved with Louis Burki's answer

    1. Another Authotkey user here! 😃 On my machine, Mehul's solution with the 1ms delay takes noticeably longer to actually insert some text. I found the following solution which inserts it in a less "chunky" manner. Adjust the 1ms till it works for your setup :) ; This worked ::dx::{Sleep 1}DevExpress ; For longer hotstrings, I needed more ::azerty::{Sleep 60}DevExpress With 250ms pretty much any length of hotstring expanded correctly. I answered this Stackoverflow question with details from this issue. The same bug might have been present in an earlier version of VSCode: microsoft/vscode#1934 They make mention of this commit fixing it. Unfortunately it's a rather large commit :( microsoft/vscode@a1bd50f Commit msg: "Fixes #1168: Read synchronously from textarea" The problem has to do with the backspace remapping. Take the following autohotkey hotstring: ::tada::🎉 This will make typing "tada" followed by one of the "EndingChars" (space, tab, comma, dot, ...) expand to the 🎉 emoji. What you see visually happening on the screen is that Autohotkey does this by first sending a backspace to the editor 4 times (length of hotstring "tada") and then inserts the replacement text (🎉) What happens when this (pretty fantastic) extension is active is that the first x characters get deleted then the replacement text gets inserted and then the remaining (hotstring length - x) characters get deleted. But because the cursor is now at the end of the replacement text... which gets chewed on 😃 I'll have to learn how to debug the IDE itself or always add a {Sleep 250} to my hotstrings...

      Solution to AutoHotkey text replacement bug. Just add sleep parameter. Adding {Sleep 250} should generally work

    1. Note that you can address this by creating signal handlers in Bash to actually do the forwarding, and returning a proper exit code. On the other hand that's more work, whereas adding Tini is a few lines in your Dockerfile.
  14. Oct 2022
    1. I would put creativity into three buckets. If we define creativity as coming up with something novel or new for a purpose, then I think what AI systems are quite good at the moment is interpolation and extrapolation.

      Demis Hassabis, the founder of DeepMind, classifies creativity in three ways: interpolation, extrapolation, and "true invention". He defines the first two traditionally, but gives a more vague description of the third. What exactly is "true invention"?

      How can one invent without any catalyst at all? How can one invent outside of a problem's solution space? outside of the adjacent possible? Does this truly exist? Or doesn't it based on definition.

  15. Aug 2022
    1. Det er ti år siden selskapet lanserte jordskruene som foreløpig selges i 12 land. Salget går strykende – ifølge Alm stiger omsetningen med rundt femti prosent hvert år.

      Her har de funnet en genial løsning, vil tro de har vært i bransjen tidligere også og så løsningen på et problem som gjør ting mer tidseffektivt for folk.

  16. Jul 2022
    1. A more conservative workaround is find the gems that are causing issues and list them on the top of your Gemfile.

      good solution ... except that it didn't help/work

  17. May 2022
    1. A bottom-up approach involves aiming for maximum participation at a society-wide level. While this relates to achieving “mass and speed” of response, it also connects to psychological and philosophical research on the need for belonging and agency. One way a bottom-up approach can achieve maximum participation is through asking individuals, “How do you help us win?” or “How do you help us reach our destination of safe Earth?” This differs from most employment circumstances that issue top-down-directed work. It is anticipated that surprising answers will emerge, which allows people to align their aptitude and best skills to the mission. Two examples follow: Retired elite athletes have skills in goal setting, visualizing success, and motivating action. They could be employed as ecocoaches, supporting teams that are working on difficult transition tasks or leading health and fitness programs for the community. An elderly woman loves exploring thrift shops. She might contribute in circular economy and local recycling programs.

      Indyweb harnesses the wisdom of the crowd. By providing a global space for meaningful dialogue, exchange and sharing, a diversity of solutions will emerge

  18. Apr 2022
    1. three steps required to solve the all-importantcorrespondence problem. Step one, according to Shenkar: specify one’s ownproblem and identify an analogous problem that has been solved successfully.Step two: rigorously analyze why the solution is successful. Jobs and hisengineers at Apple’s headquarters in Cupertino, California, immediately got towork deconstructing the marvels they’d seen at the Xerox facility. Soon theywere on to the third and most challenging step: identify how one’s owncircumstances differ, then figure out how to adapt the original solution to thenew setting.

      Oded Shenkar's three step process for effective problem solving using imitation: - Step 1. Specify your problem and identify an analogous problem that has been successfully solved. - Step 2. Analyze why the solution was successful. - Step 3. Identify how your problem and circumstances differ from the example problem and figure out how to best and most appropriately adapt the original solution to the new context.

      The last step may be the most difficult.


      The IndieWeb broadly uses the idea of imitation to work on and solve a variety of different web design problems. By focusing on imitation they dramatically decrease the work and effort involved in building a website. The work involved in creating new innovative solutions even in their space has been much harder, but there, they imitate others in breaking the problems down into the smallest constituent parts and getting things working there.


      Link this to the idea of "leading by example".

      Link to "reinventing the wheel" -- the difficulty of innovation can be more clearly seen in the process of people reinventing the wheel for themselves when they might have simply imitated a more refined idea. Searching the state space of potential solutions can be an arduous task.

      Link to "paving cow paths", which is a part of formalizing or crystalizing pre-tested solutions.

    1. Today, many web developers are even using JavaScript's native module syntax, but combining it with bare import specifiers, thus making their code unable to run on the web without per-application, ahead-of-time modification. We'd like to solve that, and bring these benefits to the web.
    1. This would work if your transaction only wraps a single model's save operation. I need to wrap at least Node + Version + Attachment

      looking for a callback that you can register to happen after current transaction is committed, not just after_commit of model -- though actually, that might fire precisely when current transaction is committed, too (except that it might only get triggered for nested transactions, not the top-most transaction), so it could maybe go there ... but I think the problem is just that it doesn't belong there, because it's not specific to the model...

      I guess the OP said it best:

      I am not looking for model based after commits on update/create/etc, I want to be able to dynamically define a block that will be executed only if the current (top-most) transaction passes:

    1. Making one Comment query per Post is too expensive; it’s N+1 queries (one to fetch the posts, N to fetch the comments). You could use includes to preload all the comments for all the posts, but that requires hydrating hundreds of thousands of records, even though you only need a few hundred for your front page. What you want is some kind of GROUP BY with a LIMIT on each group — but that doesn’t exist, either in Activerecord nor even in postgres. Postgres has a different solution for this problem: the LATERAL JOIN.
  19. Mar 2022
    1. I mean there’s no single answer that will solve all of our future problems. There’s no magic bullet. Instead there are thousands of answers — at least. You can be one of them if you choose to be.'
    1. A problem here would be having mosquitos in and outside your house. The solution is these mosquito systems that they install.

  20. Feb 2022
    1. UT-Austin had toughened its ability, through software, to detect cheating.

      I agree that universities should use websites that monitor students during exams to reduce cheating as it can be unfair to students who do not cheat and encourage others to cheat.

    1. Without a doubt, the first would be Barack Obama

      If we were in the time that Barak Obama was still president this would be great for him to watch. This could be part of the solution to have less segregation in places, because this film would make him more aware of the segregation issues in neighborhoods of America.

    2. But if you can’t show them what that means, on a human level, you’ve missed your opportunity as a filmmaker.

      I think documentaries, podcasts, books, any form of media, if done right can shed light on important issues that people might have otherwise not known. People know housing disparities exist, but when you force them to see it i think real change can happen.

  21. Jan 2022
  22. Dec 2021
    1. How to Create a Micro-Job Marketplace Like Fiverr: Features, Cost, TimelineTimurTech JournalistMarketplaceProduct GuideHomeBlogEntrepreneurshipHow to Create a Micro-Job Marketplace Like Fiverr: Features, Cost, TimelinePublishedNov 19, 2021UpdatedNov 19, 202120 min readIt’s no secret that the COVID-19 pandemic has led many people to reconsider their jobs. Now, freelance as an alternative career path steadily becomes a reality. 50.9% of the U.S. workforce will be freelancing by 2027, a Statista survey shows. Businesses like Fiverr and fellow gig-focused companies rode the wave. To be more precise, they adopted a model allowing the hire of independent contractors without any legwork. How do such tools set the new trend in powering freelancers? In this article, we share proven methods geared towards freelance website growth. Moreover, you will get a glimpse of how to create a micro-job marketplace like Fiverr of your own.

      It’s no secret that the COVID-19 pandemic has led many people to reconsider their jobs. Now, freelance as an alternative career path steadily becomes a reality. 50.9% of the U.S. workforce will be freelancing by 2027, a Statista survey shows.

      Businesses like Fiverr and fellow gig-focused companies rode the wave. To be more precise, they adopted a model allowing the hire of independent contractors without any legwork. How do such tools set the new trend in powering freelancers?

      In this article, we share proven methods geared towards freelance website growth. Moreover, you will get a glimpse of how to create a micro-job marketplace like Fiverr of your own.

  23. Nov 2021
    1. Looking for a property?

      Do you want to buy property in India? Are you looking for best-in-class residential and commercial properties for sale in Delhi NCR, Lucknow, Pune, Mumbai, Bangalore, Gurgaon, and Noida? Well, you have landed in the correct place.

    1. Do you have a high-quality and almost irresistible application in your bag? Your potential customers will not enjoy your app to the full if they cannot access it easily and quickly. That is why you need to consider how to choose the right SaaS hosting provider carefully. In this article, we will review different SaaS cloud hosting options and their strengths and weaknesses. Read on to find out how to make hosting for your SaaS application reliable, cost-effective, and scalable.

      Do you have a high-quality and almost irresistible application in your bag? Your potential customers will not enjoy your app to the full if they cannot access it easily and quickly. That is why you need to consider how to choose the right SaaS hosting provider carefully.

      In this article, we will review different SaaS cloud hosting options and their strengths and weaknesses. Read on to find out how to make hosting for your SaaS application reliable, cost-effective, and scalable.

    1. 4 Best Payment Solutions for Online MarketplacesDmitryCEOMarketplaceHomeBlogEntrepreneurship4 Best Payment Solutions for Online MarketplacesPublishedAug 7, 2020UpdatedAug 7, 20209 min readDid you know that payment solutions for online marketplaces can shape your e-commerce business and its success? Thus, Uber succeeded in its global expansion right after it switched to Braintree. In early Uber’s scaling, even a dollar-euro currency conversion wasn’t available. Now, with Braintree, it processes mobile payments in 130 currencies in 80+ countries. Of course, each marketplace faces its own payment challenges. So, you should rely on a payment solution with the features vital right for your e-commerce platform. To identify them, let’s dig deeper into two-sided marketplace payment processing, and analyze the best payment gateways for marketplaces.

      Did you know that payment solutions for online marketplaces can shape your e-commerce business and its success? Thus, Uber succeeded in its global expansion right after it switched to Braintree.

      In early Uber’s scaling, even a dollar-euro currency conversion wasn’t available. Now, with Braintree, it processes mobile payments in 130 currencies in 80+ countries.

      Of course, each marketplace faces its own payment challenges. So, you should rely on a payment solution with the features vital right for your e-commerce platform. To identify them, let’s dig deeper into two-sided marketplace payment processing, and analyze the best payment gateways for marketplaces.

    1. Spree Commerce: How to Quickly Build an Ecommerce WebsiteAlinaE-Commerce & SaaS StrategistMarketplaceProduct GuideHomeBlogEntrepreneurshipSpree Commerce: How to Quickly Build an Ecommerce WebsitePublishedAug 31, 2020UpdatedAug 31, 202011 min readThe hype around Amazon and eBay has driven up the demand for marketplace development services. Business owners turn to software consultancies to launch a thriving e-commerce website. Here comes a question: what do they need to get the most successful online marketplace website? We believe that a profitable e-commerce project starts with the right tech stack. The main qualities that a modern marketplace should possess are scalability, easy customizations, and flexibility. Therefore, it’s important to choose the technologies that will help these qualities.

      The hype around Amazon and eBay has driven up the demand for marketplace development services. Business owners turn to software consultancies to launch a thriving e-commerce website. Here comes a question: what do they need to get the most successful online marketplace website?

      We believe that a profitable e-commerce project starts with the right tech stack. The main qualities that a modern marketplace should possess are scalability, easy customizations, and flexibility. Therefore, it’s important to choose the technologies that will help these qualities.

  24. Oct 2021
    1. First, we have to resist concluding that condemning racist slurs is all that is required to end discrimination.

      this could be a solution

    2. In the food industry, for example, there is widely accepted racial hierarchy in high-end restaurants.

      this could be a solution to accept everyone and stop discrimination

  25. Sep 2021
  26. Aug 2021
    1. Question and Answer Website Development: Functionality and Best PracticesTimur YilmazTech JournalistMarketplaceProduct GuideHomeBlogEntrepreneurshipQuestion and Answer Website Development: Functionality and Best PracticesAug 25, 202117 min readSocial media is a jumping-off point for many people to get informed. Yet, on such platforms, users are more likely to voice opinions rather than share knowledge. That's when the websites to ask questions become a good help. For example, Quora's monthly active user base grew from 200 million to 300 million in 2018 alone. In 2021, the 6.6 million downloads of the Reddit app represented a 128% increase over the previous year. What is a selling point for this kind of platform and how to build one? How do they remain beneficial in a years-long run? How Q&A websites managed to survive social network dominance? Read on to find out.

      Social media is a jumping-off point for many people to get informed. Yet, on such platforms, users are more likely to voice opinions rather than share knowledge.

      That's when the websites to ask questions become a good help. For example, Quora's monthly active user base grew from 200 million to 300 million in 2018 alone. In 2021, the 6.6 million downloads of the Reddit app represented a 128% increase over the previous year.

      What is a selling point for this kind of platform and how to build one? How do they remain beneficial in a years-long run? How Q&A websites managed to survive social network dominance? Read on to find out.

    1. I know, I know—needing to use JavaScript when writing CSS does feel like defeat, but unless there’s a vwWithoutTheScrollbarPlease unit in CSS, you’re going to need use JavaScript.
    2. Maybe someday, we’ll get a viewport unit that doesn’t factor in the scrollbars, but until then, we can only work around the current one.
  27. Jul 2021
    1. SvelteKit offers a very elegant solution for this — the load function. The load function can run both on the client and on the server side and in both cases will be executed before the component renders.
    1. You can do this elegantly with throw/catch, like this:
    2. In most languages, there is no clean equivalent for breaking out of a recursive algorithm that uses a recursive function. In Ruby, though, there is!
    1. Bash is a wonderful and terrible language. It can provide extremely elegant solutions to common text processing and system management tasks, but it can also drag you into the depths of convoluted workarounds to accomplish menial jobs.
  28. Jun 2021
    1. I don't think it is too clever. I think it solves the problem idiomatically. I.e., it uses reduce, which is exactly correct. Programmers should be encouraged to understand what is correct, why it is correct, and then propagate. For a trivial operation like average, true, one doesn't need to be "clever". But by understanding what "reduce" is for a trivial case, one can then start applying it to much more complex problems. upvote.
  29. May 2021
    1. Every time filter-repo is run, files are created in the .git/filter-repo/ directory. These files overwritten unconditionally on every run.
    1. That image only contains 200 pixels horizontally, but the browser stretches it to 400px wide or even farther!Luckily, you’ll see there’s an easy “fix” there at the end: our old good friend the width attribute!<img src="example.gif", srcset="example.gif 200w" sizes="(min-width: 400px) 400px, 100vw" width="200" /* <=== TA-DA! */ class="logo">As long as you can specify the width attribute so it reflects the true maximum size of your largest image, you won’t run into this problem of having sizes make your image wider than it naturally should go.
  30. Apr 2021
    1. class AuthConstraint def initialize(&block) @block = block || ->(_) { true } end def matches?(req) user = current_user(req) user.present? && @block.call(user) end def current_user(req) User.find_by_id(session[:user_id]) end end This is a flexible approach to defining route access based on any desired variable (roles, auth, etc...)

      Good solution, and might be needed if you want to base routes on roles, etc. — but this one is even easier if all you need is for it to be conditional based on signed in or not (because devise provides authenticated helper):

      https://hyp.is/lRq8tpNXEeuNn_9NxqJvdA/stackoverflow.com/questions/32407598/rails-4-devise-set-default-root-route-for-authenticated-users

  31. Mar 2021
    1. A proposal to specify the path for bury with classes as values of a hash arg: {}.bury(users: Array, 0 => Hash, name: Hash, something: 'Value') # {user: [{name: {something: 'Value'}]} So all absent nodes could be created via klass.new

      Didn't understand it at first, but now I think it's a pretty clever/decent solution.

      Just a bit more verbose than one might like...

      At first I had reservations about the fact that this requires you to pass a hash ... or rather, once you start using a hash as your "list", you can't just "switch back" to an array (a "problem" I've noticed in RSpec, where you have some tags that are symbols, and some that are hashes: you have to list the symbols first: describe 'thing', :happy_path, driver: :chrome):

      {}.bury(users: Array, 0, 'Value')
      

      But I think that's okay in practice. Just use a hash for all "elements" in your list:

      {}.bury(users: Array, 0 => 'Value')
      
    2. A one-liner alternative for hash-only cases can be implemented using Enumerable#reduce: root = {} [:a, :b, :c].reduce(root){@1[@2]||={}}[:d] = 'E' # root => {:a=>{:b=>{:c=>{:d=>"E"}}}}
    3. I think the issues/problems specified in the comments are not present with a Hash-only implementation. :) I would be supportive of re-considering this feature just for use with a Hash, where I believe 80% of the real-life use cases would (and do) exist. I have encountered this need before in the wild, but not with Arrays.
    1. Prof. Devi Sridhar. (2020, March 25). We will be stuck in an endless cycle of lockdown/release for next 18 months, if we do not start mass testing, tracing, & isolating those who are carriers of the virus while pursuing rapid research for antiviral treatment or vaccine. This is the message the public needs to hear. [Tweet]. @devisridhar. https://twitter.com/devisridhar/status/1242743618986745861

    1. xdg-open should do the same thing - actually, it will call gnome-open, or kde-open, or whatever, depending on your desktop environment. Thus it's more portable.
    2. The advantage is that you can use gnome-open for almost all file-types, URIs and directories. It's one command to learn, instead of trying to remember about obscure commands like sensible-browser
    1. Refactoring is a means of addressing the problem of software rot. It is described as the process of rewriting existing code to improve its structure without affecting its external behaviour.
  32. en.wikipedia.org en.wikipedia.org
    1. PyPy uses a technique known as meta-tracing, which transforms an interpreter into a tracing just-in-time compiler.
    1. We’re not really using placeholder in our demo, but a value of a single space works:
    2. :placeholder-shown is super useful for us here! It’s basically the secret selector for testing if an input currently has a value or not.
    1. var md = require('markdown-it')('commonmark');

      first sighting: require(...)(...)

      How would that work with import? Not as fluidly but...

      import markdownIt from 'markdown-it'
      let md = markdownIt('commonmark')
      
  33. Feb 2021
    1. Adding ends to an activity is a beautiful way to communicate more than two outcomes to the outer world without having to use a state field in the ctx. It also allows wiring those outcomes to different tracks in the container activity.
    1. Instead of having this confusing maze of lambdas, regexes, and strings, we could, in theory, introduce a single entry point of configuration for Sprockets to use, and in that file declare all assets we wanted to compile. Well, that’s exactly what the manifest.js file is.
    2. One way to alleviate this configuration fatigue is by making configuration consistent and composable. That’s what Sprocket’s new “manifest.js” seeks to do.
    1. Not all cases can be covered and easily restored. And sometimes when we will reuse this function for different use-cases we will find out that it requires different restore logic.
    2. But why do we return 0? Why not 1? Why not None? And while None in most cases is as bad (or even worse) than the exceptions, turns out we should heavily rely on business logic and use-cases of this function.
    3. So, the sad conclusion is: all problems must be resolved individually depending on a specific usage context. There’s no silver bullet to resolve all ZeroDivisionErrors once and for all. And again, I am not even covering complex IO flows with retry policies and expotential timeouts.
    1. Monads provide an elegant way of handling errors, exceptions and chaining functions so that the code is much more understandable and has all the error handling, without all the ifs and elses.
    1. I wanted to keep reviewing restaurants, but I didn’t want to go back into their dining rooms both because of the risk and because I was afraid readers would take it as an all-clear signal. When the governor halted indoor dining again in December, my selfish reaction was relief. Then I briefly got depressed. How would restaurants survive? And how would I keep writing about them?One answer had already started to appear on sidewalks and streets in the form of small greenhouses, huts, tents and yurts. Inside these personal dining rooms, you can (and should) sit just with people from your own household. If the restaurant thoroughly airs the space out between seatings, any germs you breathe in should be the same ones that are bouncing around your home. Many restaurants instruct their servers to stay outside the structures as much as possible, though some don’t.

      Syntax of question and answer reveals itself again. His doubts and negativity are addressed within the first highlighted paragraph with a question coming to Pete's mind. He realized his influence as a critic and decided to take the right step to prevent anything bad from occurring. Despite his sacrifice, the next paragraph he discusses the clever solutions restaurants had come up with which solved his problem for the most part. This description underlines yet more change that brought upon good things, which is the main idea he is relating to the food scene. He creates a comparison between an at home setting along with the solutions restaurants have come up with to further emphasize his point of safety amidst COVID.

    1. It requires an account to update, but the other inputs are optional. If they're missing, it'll ignore those attributes. If they're present, it'll update them.
    2. For this one we'll define a helper method to handle raising the correct errors. We have to do this because calling .run! would raise an ActiveInteraction::InvalidInteractionError instead of an ActiveRecord::RecordNotFound. That means Rails would render a 500 instead of a 404.

      True, but why couldn't it handle this for us?

    1. while ActiveForm currently fits 99% of my use cases, I do sometimes make modifications based on the product requirements
    2. I will continue to use form objects and push changes into the repo when I feel they are universally relevant and valuable.

      new tag?:

      • code that is universally relevant/valuable
      • non - _-specific logic
    3. I typically save everything I can first, and then call the side-effects afterwards. If the side-effects fail I can handle them elsewhere and retry when necessary.
    1. This can be useful in cases like multistep registration. Previously in # rails we used to stick all of the validations in the class and then we're # stuck validating them all everytime
    1. Most importantly, let us support all of those who are using sport as a force to advance equality and opportunity;

      A viable way to solve the gender inequality as a whole.

    2. Not only are successful sportswomen showing girls that they can excel on the field; many are using their status to start important conversations about gender equality and to advocate for women’s rights more widely.

      Being a role model that shows the world the problem of gender inequality would be a viable solution.

    3. We also need more male athletes to step up with us, and model a culture that reflects equality, respect for diversity and non-violence, within and beyond sport.

      Solution that may work.

    4. Even when laws and policies are in place, deep-seated attitudes about gender roles can hold back substantive change

      Some solution may not work even though it seems like it will. This means that we can't solve this on a government level, but on a individual's thought.

    5. In November 2018, Fenerbahçe Sports Club, one of the oldest and most popular multi-sports clubs in Turkey, joined forces with HeForShe in an ’Equal together’ initiative involving its male football players, and seen by its global fan base of 25 million. They aim to achieve gender equality transformation through sport, with women- and children-friendly stadium practices, and a zero-tolerance approach to all sorts of discrimination against women and girls

      A solution for combating gender inequality in sports. We can create a new program that allows equal rights and wages for all genders.

    1. Universal Links allow you to register a series of domains that are allowed to interact with an installed application. If the application is not installed, the universal link is opened with Safari, allowing you to inform the user of the existence of an application or whatever is necessary.
  34. Jan 2021
    1. If components gain the slot attribute, then it would be possible to implement the proposed behavior of <svelte:fragment /> by creating a component that has a default slot with out any wrappers. However, I think it's still a good idea to add <svelte:fragment /> so everyone who encounters this common use case doesn't have to come up with their own slightly different solutions.
    1. Moving DOM elements around made me anxious and I wanted to preserve natural tab order without resorting to setting tabindex, so I also made a flexbox version that never moves DOM elements around. I think it's the superior solution, at least for the layouts I was going for. https://github.com/wickning1/svelte-components/blob/master/src/FlexCardLayout.svelte
    1. A Svelte component that monitors an element enters or leaves the viewport/parent element. Performant and efficient thanks to using Intersection Observer under the hood. Can be used in multiple projects including lazy loading images, infinite scrolling, playing/pausing the video when in the viewport, tracking user behaviour firing link pre-fetching and animations and many many more.
    1. Popper for Svelte with actions, no wrapper components or component bindings required! Other Popper libraries for Svelte (including the official @popperjs/svelte library) use a wrapper component that takes the required DOM elements as props. Not only does this require multiple bind:this, you also have to pollute your script tag with multiple DOM references. We can do better with Svelte actions!
  35. Dec 2020
    1. This is an opportunity to fix a bug: if you're on a page that redirects to a login page if there's no user object, or otherwise preloads data specific to that user, then logging out won't automatically update the page — you could easily end up with a page like HOME ABOUT LOG IN ----------------------------------------------------------------------------------------- Secret, user-specific data that shouldn't be visible alongside a 'log in' button:
    1. Instead of waiting for a magic fairy to appear and eliminate your problem so that you can enjoy life again, you might want to start adding those little positive events back onto your agenda despite the problem still being present

      This solution based therapy focuses on trying to get people active and engaged with life even when depressed.

      It is important to help patients experience those little positive events. These events can help people get back on track.

    2. If you need to imagine in concrete detail how you would notice that a problem disappeared, you are challenged to leave vague descriptions like “I’ll be happy”, “I’ll be less annoyed” behind.Vagueness in the end is a cognitive avoidance mechanism. It is easy to ruminate on general emotions and thoughts but very hard to imagine concrete outcomes and changes. We would rather not face precise thoughts, emotions or memories because they can be painful. Better to stay at a safe but vague distance.

      This is all about solution based therapy. We need concrete ways of fixing our problems.

      Vagueness is a cognitive avoidance strategy. It is a way to avoid digging deep.

      It is safer for our feelings to stay vague, but that is not where we need to improve.

  36. Nov 2020
    1. So, how does an SPA work? JavaScript loads in the browser and loads data from an API. Most of the rendering is done on the client Side. But search engine bots have a hard time indexing the page because it doesn't have much without JS.
    1. This scenario demonstrates one drawback of CSS: With all the style rules that need to be applied to multiple elements on multiple pages, things can get pretty redundant. And redundancy can eat up your time and cause friction whenever you need to change a color, font, or any other style aspect across your site.
  37. Oct 2020
    1. We could broadcast a warning if we find the variable to be set in the environment, but that is more likely than not to annoy people who intentionally set it.

      New tag?: warnings that may annoy people who intentionally do something. (Need a way to selectively silence certain warnings?)

    1. for (var member in myObject) delete myObject[member]; ...would seem to be pretty effective in cleaning the object in one line of code

      But checking hasOwnProperty is probably better/safer idea:

      for (var prop in obj) { if (obj.hasOwnProperty(prop)) { delete obj[prop]; } }
      
    1. I don't want Svelte to go out of its way to try to catch all these edge cases. It would require lots of fragile heuristics in the compiler. I want a solid compiler I can trust, not something magic but often out of service. I want it the simplest possible.
    1. In the many projects I have maintained so far, sooner or later I always run into the same issue: circular module dependencies. Although there are many strategies and best practices on how to avoid circular dependencies. There is very little on how to fix them in a consistent and predictable way.
    2. This is how I solve circular dependency issues nowadays.
    3. Examples of this include: requiring base classes or reading from imported variables that have not been initialized yet.
    4. as soon as you have a (indirect) circular dependency, you might be interacting with a half loaded module in your code.
    1. Perhaps we should detect URLSearchParams objects differently (using duck typing detection instead of instanceof window.URLSearchParams, for example) but the solution isn't adding a specific polyfill to Axios (as it'd increase the bundle size and still won't work with other polyfills).
    1. You can see that behaviour in this example. Select a range of text and hit the tab key. Because the <textarea> value changes, the current selection is cleared and the cursor jumps, annoyingly, to the end.
    1. Just like elements can have children... <div> <p>I'm a child of the div</p> </div>...so can components. Before a component can accept children, though, it needs to know where to put them. We do this with the <slot> element.
    1. The primary motivation behind virtual-dom is to allow us to write code independent of previous state. So when our application state changes we will generate a new VTree. The diff function creates a set of DOM patches that, based on the difference between the previous VTree and the current VTree, will update the previous DOM tree to match the new VTree.

      annotation meta: may need new tag: for: "code independent of previous state."

      annotation meta: may need new tag: for: diffs other than source/text code diffs (in this case diffs between virtual DOM trees)

    2. Manual DOM manipulation is messy and keeping track of the previous DOM state is hard. A solution to this problem is to write your code as if you were recreating the entire DOM whenever state changes. Of course, if you actually recreated the entire DOM every time your application state changed, your app would be very slow and your input fields would lose focus.