276 Matching Annotations
  1. Last 7 days
    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

  2. Nov 2022
    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.
  3. 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.

  4. 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.

  5. 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

  6. 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

  7. 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.
  8. 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.

  9. 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.

  10. Jan 2022
  11. 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.

  12. 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.

  13. Oct 2021
    1. it's important to pay attention to what police are doing during protests

      this can solve a lot of problems.

    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

  14. Sep 2021
    1. With the help of cutting-edge technologies, you can implement smart waste management that helps to reduce the costs, and increase operational efficiency. Bookmark this article to learn more about smart waste management.
  15. 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.
  16. 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.
  17. 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.
  18. 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.
  19. 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

  20. 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.
  21. 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')
      
  22. 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