1,203 Matching Annotations
  1. Last 7 days
    1. 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".
    1. The main change with Ruby 3.0 is that it differentiates between passing a hash and passing keyword arguments to a method with variable or optional keyword parameters. So def my_method(**kwargs); end my_method(k: 1) # fine my_method({k: 1}) # crashes
    1. Yes, but to what version? A patch version only, e.g. you released 1.0.0, so the "next" version is 1.0.1? Why not 1.1.0? You don't know ahead of time what version you'll be releasing until it's actually released
  2. Feb 2024
    1. Then I gave the question a longer, more descriptive title: I made it an actual question (with a question mark and everything), and replaced the term "lazy evaluation" with a more concrete description. The goal is to make the question more recognizable and more searchable. Hopefully this way, people who need this information have a better chance of finding it with a search engine; people who click through to it from a search page (either on Stack Overflow or from external search) will take less time to verify that it's the question they're trying to answer; and other curators will be able to close duplicates more quickly and more accurately. This edit also improves visibility for some related questions (and I made similar changes elsewhere to promote this one appropriately).
    1. Regardless of what your arguments are, the personal reasons of the developer are what matters for what platforms this game is provided on. You can choose to pay for the game, or not. Paying for the game supports the developer, and allows them to develop more. It is not reasonable to argue that someone should have put in additional unpaid effort to do something for unknown future benefit, or that they should charge less for a game because it's only available on one platform; that's their choice, and their decision.For context, development of Taiji was started in mid 2015; it took seven years to finish. That's with the Commercial Game Engine, and even with that, there were platform-based bugs that needed to be worked around (issues that won't be present on other platforms, or will have different presentations); here's just one of those, involving an issue around mouse sluggishness:https://taiji-game.com/2020/07/13/68-in-the-mountains-of-madness-win32-wrangling...If the developer is not already familiar with Linux, then there's a small mountain of language barriers around using Linux that needs to be overcome first, before being able to get to the game development phase. It's rare for game development to work on different platforms when it can't be tested on those different platforms. While it might be easy to cross-compile on a Windows system (e.g. via IL2CPP), that's only if everything works perfectly (which is unlikely to be the case). 
  3. Jan 2024
    1. when you actually have chronic anything usually it's not a good result

      for - chronic disease - usually chronic is not a good sign - too much of a good thing turns out to be bad - it means too much of something, like inflammation will cause harm - when inflammation knob is stuck on high, it becomes a problem

      metaphor - inflammation and forest fire - If you are camping in the forest, a small fire keeps you warm and you can cook - Inflammation is like that small fire going out of control and burning the whole forest down

    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. Using an issue tracker without them is, in my opinion, a little like using an outlining program that only supports two levels of nesting, or like using Wiki software that doesn't have the concept of reverse links. Makes me sad!
    2. It's also common to want to compute the transitive closure of these relations, for instance, in listing all the issues that are, transitively, duped to the current one to hunt for information about how to reproduce them.
    3. We use GitLab to manage software on interconnected embedded systems. What often comes up is this: New functionality on one system changes the protocol in a slightly incompatible way. Software on other systems have to be updated to understand the new protocol, take advantage of the new functionality, and stop complaining about the unexpected data. For this I would create multiple issues: Issues for the new functionality that we need. (Project A) Issue for defining the protocol changes. (Project A) Issue for implementing the protocol changes on the module. (Project A) Issues in related software projects for implementing the changes required to understand the new protocol. (Project B, C, D...)
    1. I'm not sure that isolating design is something I'd prefer. I'd rather have an issue tagged (labeled) as such, and then attach design artifacts. I start a design in the same way I start frontend, with a list of requirements and acceptance criteria in mind, the design is just an artifact, a deliverable, an asset.
    2. I feel we need a agreeable definition of work-items. It is getting confusing already. If the goal is to avoid confusion then exceptions must be avoided.
    3. Why should this conversation be separate from other conversations about the work to be done? Design is one consideration alongside frontend and backend considerations, which often all intersect and require the same participants. Shifting this discussion to a separate work item can result in disjointed conversations and difficulty finding where a decision was made.
    4. Additionally, it reiterates the need to define "What isn't a Work Item?"
    5. but from previous experiences like this, the feature set has to be robust at the start or I think adoption will suffer.
    6. I don't know how much impact the "Design management" widget vs. "Design" object decision will have, except for the extremely small number of teams that work exactly like we do.
    1. 序 前言 數盲,其實普遍存在於生活之中   「數學向來是我最爛的一科。」   「100萬美元、10億美元、1兆美元,隨便。只要我們可以解決這件事,多少錢都不是問題。」   「我和傑瑞不能去歐洲了,都是恐怖分子害的。」   數盲,是指沒有能力自在地應對和數字以及機率有關的基本概念。這項缺點讓太多在其他方面博學多聞的人受了很多苦。這些人會因為別人混用「隱含」和「推斷」而感到苦惱,但看到數字上出現錯誤與矛盾,就算是嚴重失當,回應時也絲毫不見尷尬。我還記得,有一次在派對上聽到一個人侃侃而談「繼續」和「持續」有什麼差別,當晚稍後我們看新聞報導,氣象播報員說星期六的下雨機率是50%,星期天也是50%,結論是那個週末下雨的機率是百分之百。那位自封文法家的先生覺得這話很對,就連我向他解釋錯在哪裡之後,他也沒什麼表示。但如果天氣播報員的語法錯誤,他可能會比較火大。人常會隱藏其他缺點,但數學不好這件事不一樣,多半都是明目張膽表現出來:「我連平衡收支帳都做不到。」「我這個人關心的是人,我不關心數字。」或者「我向來痛恨數學。」   人們會洋洋得意於自己對數學很無知,部分原因是數學不好造成的後果,不像其他缺點這麼明顯。基於這一點,再加上我堅信人對於用具體範例來說明更有反應,對於一般性的描述比較無感。因此,本書會檢視許多真實世界裡的數盲範例,包含股票詐騙、擇偶、報紙專欄上的占卜師、飲食和醫療主張、恐怖主義的風險、占星、運動賽事數據、選舉、性別歧視、幽浮、保險和法律、心理分析、超心理學、樂透以及藥物試驗等等。   我努力避免太自以為是的言論,也不要用哲學家艾倫.布魯姆(Allan Bloom)式的批判,來泛論流行文化或是教育系統,但我還是提出了一些通論式的評論與觀察,但願我舉的例子能支持我的論點。我的看法是,有些人無法游刃有餘地面對數字和機率,是源於對不確定性、巧合或問題呈現方式的自然心理反應。或者是,出於焦慮,或是對數學的本質和意義懷抱不切實際的誤解。   數盲會造成一種罕有人討論的後果:數盲和相信偽科學有關。本書會討論兩者之間的交互關係。在現代這個社會,每天都會出現基因工程、雷射科技、積體電路等新科技,讓我們更進一步理解這個世界。但有很多成人仍相信塔羅牌、通靈和水晶的力量,特別讓人難過。   更不妙的是,科學家對於各種風險的評估,和一般人對於這些風險的認知大不相同,兩者間的落差最後要不就引發沒有根據、但殺傷力極大的焦慮,要不就導致人們要求得到根本做不到、而且會癱瘓經濟的無風險保證。政治人物在這方面幫不上忙,因為他們的工作就是處理公眾的意見,因此不樂於說清楚可能會造成哪些危險,以及有哪些相應的取捨,但這是幾乎所有政策要面對的問題。   本書大部分談的是各種不當,比方說沒有數字觀點、過度重視無意義的巧合、輕信偽科學、無能識別社會中的各項取捨等等,寫來很有破解流言的意味。但我希望我有避開很多人這麼做時,都會露出的過度激昂和譴責語氣。   本書盡量用溫和可讀的方式來談數學,只採用一些基本的機率和統計概念。雖然某種程度上來說有一點深,但只需要具備常識與一些演算能力即可領會。而我也會分享一些概念,是過往很少用淺顯易懂的方式來討論的。我的學生多半很喜歡這些內容,但他們也常會問:「考試時會考這個嗎?」讀這本書不用考試,所以讀者可以好好享受,偶爾一些比較困難的段落,跳過也沒問題。   本書的主張之一,是數盲會基於個人經驗、或因為媒體側重個別性與戲劇性效果,而受到誤導,有強烈的對人不對事傾向。但這句話不代表數學家就不帶個人情感、或是一板一眼,我就不是,這本書也不是。我寫這本書的訴求對象,是受過教育但是數盲的人。或者,至少是對數學還沒有怕到死,不會看到數學兩字就癱軟的人。如果能因此講清楚數盲在我們的公、私生活中有多麼普遍,寫這本書就值得了。


    1. Agree. I have 3 seconds of silence as my ringtone. Been using that since I had a clamshell phone. Everyone in my contacts list has a custom ringtone so they will ring. Anyone I don't know won't ring and if it is important they'll leave a message. Spammers usually don't leave messages.

  4. Dec 2023
      • for: climate crisis - multiple dimensions, polycrisis - multiple dimensions, climate crisis - good references, polycrisis - good references, polycrisis - comprehensive map, power to the people, climate change - politics, climate crisis - politics

      • comment / summary

        • The content on this website may be what some call "doomers" that support a narrative of unavoidable catastrophe and civilization collapse
        • The author does an excellent job of drawing together many scientifically validated research papers and news media stories on various crisis and integrates them together to support his narrative.
        • As the author states, it is still incomplete but it is comprehensive and detailed enough to use as a starting foundation to build a complex polycrisis map upon. becaues it shows the complexities of the interwoven nexus of problems we face and the massive network of feedbacks between them that makes solving any one of them alone in isolation an impossibility
        • The Cascade Institute focuses on social tipping points, complexity and polycrisis. We could synthesis a number of tools to map out and reveal effective mitigation strategies including:
          • Cascade Institute tools
          • Social tipping point tools
          • SRG mapping tool along with Indyweb / Indranet
          • Culture hacking tools
          • SIMPOL strategy
          • Downscaled Earth System Boundary tools
          • SRG Deep Humanity BEing journey tools
          • James Hansen's recommendation that the biggest leverage point is new form of governance
            • We need to rapidly emerge a new global third political party that does not take money from special interest groups
          • Progressive International comes to the same conclusion as James Hansen, that the key leverage point for rapid whole system change is radically new governance that puts power back to the hands of the people - power to the people
          • SONEC's
          • Indyweb's people-centered, interpersonal methodology is a perfect match for SONEC circle-within-circles fractal structure
            • mention to @Gyuri
            • I've seen this circle-within-circle fractal, holonic group idea with Tim's software as well as Roberto's
        • Feebate from local governance groups (from another Doomer site - Arctic Emergency)
        • What the author's narrative shows is
          • how precarious our situation is
          • how many trends are getting far worse in the immediate future
          • how we are already undercapacitated to deal with existing crisis so how will we deal with new ones that are exponentially worse?
          • all these crisis will impact our supply chains. Why are these important? Our reliance on technology is dangerous and makes us very vulnerable
          • Think of your laptop, cellphone or other electronic device that relies on a vast, complex and globally operational internet. Imagine that tidal surges wipes out the globally critical data centers located in New York. Or imagine electronic factories in China and Taiwan are wiped out due to extreme weather. How will you get or fix a broken piece of electronic equipment? We rely on each millions of specialized jobs all working smoothly in order for our laptop to continue working and communicating with each other.
      • epiphany

      • recommendation for new Indyweb / Indranet tools
        • independent time and date stamp tool for every online, virtual sentence we write so we recognize in a long composition when we inserted a new idea
        • ability to trace rapid trains of thought to reveal how new insights emerge from within our consciousness
      • While writing this, I just recalled that we should have a way to time and date stamp every single virtual online action, like in this annotation because recall happens so nonlinearly and we won't have a hope to trace and trailmark without it. Hypothesis doesn't have time and date stamps of every sentence available to the user. So we don't know what nonlinear memory recall led to a specific sentence in an annotation. We need some independent Indyweb / Indranet tool that will do this universally. Trains of thoughts are so fragile we can forget the quick cascades very easily.
    1. With all the solar panels in the world linked up, the daylight side of the planet could power the night side ad infinitum, Ingels suggested.
      • for: good idea - one global grid for renewables
      • for climate change - wartime mobilization, interview - Seth Klein - A Good War, polycrisis - conflict, climate crisis - conflict, Naomi Klein - brother

      • summary

        • An interview with activist Seth Klein on his book: A Good War. Klein studied how WWI and WWII stimulated a rapid mobilization of Canada with an eye to translating the same methods to combating climate change.
    1. The problem with this pile of questions is that, instead of helping the OP get out of the X Y problem, people stay focussed on Y, mark the question as a duplicate of Y in a matter of minutes and X is never properly addressed.

      sticking too much to policy/habit instead of addressing the specific needs of individuals? too much eagerness to close / mark as duplicate?

    2. because the value isn't there yet. A promise is just a marker that it will be available at some point in the future. You cannot convert asynchronous code to synchronous, though. If you order a pizza, you get a receipt that tells you that you will have a pizza at some point in the future. You cannot treat that receipt as the pizza itself, though. When you get your number called you can "resolve" that receipt to a pizza. But what you're describing is trying to eat the receipt.
    1. Rupert Read has the best idea I have heard re international climate negotiations: countries that are serious should have their own conference where they collaborate on strong targets, plans, etc. Part of which should be recognising the dangers of remaining reliant on the petrostates, planning to transcend that reliance and sanctioning them
      • for: good idea - COP alternative, COP alternative - coalition of the willing, COP alternative - social tipping point, Rupert Read - alternative to COP

      • good idea: COP alternative

        • This could work based on the principle of social tipping points
        • The current COP pits the powerful incumbents of the old system delaying as long as possible rapid system change, these are the conservatives
          • This puts the liberals at distinct disadvantage from the conservatives because in a consensus reached agreement, the conservatives can veto any strong and binding language that represents rapid system change
        • In an alternative conference where the 100+ nation states are already in agreement, action in this smaller coalition OF THE WILLING, will lead to rapid action.
        • This could lead to breaking the threshold of system change via reaching the 25% social tipping point threshold
      • question: alternative COP

        • If an alternative COP was held, is the nation state the best level to approach?
        • What about a city level COP?
      • reference

    1. eddy7346<br /> 2 years ago<br /> To anyone in college:<br /> If your history/government professor is extremely patriotic, do not ask about war crimes by the US... unless you want to get failed.<br /> P.S: This is just my experience, so that might not happen to you. My prof just happened to be a piece of shit

      the established "academia" is just another circlejerk, with teachers abusing their power as gatekeepers, to allow only "the good guys" to rise to power, and students cannot choose their teachers, because moving to a different school is expensive.<br /> this imbalance and injustice is so fundamental that it is "too big to fail". no matter what you do, the casino always wins...<br /> in my "crazy" hypothesis [1] i propose a radical solution for ths radical problem: all human relations must be balanced, so every one can live out his strength and delegate his weakspots to his friends.<br /> [1]: Pallas. Who are my friends. Group composition by personality type.<br /> github com milahu alchi

    1. Modern cars, however, use a single stick that pivots around among the gears. It's designed in such a way that, on a modern stick-shift car, it is not possible to engage two gears at the same time.
    1. there are good stories and bad stories uh good stories I mean this is very on a very very simplistic level but good stories 00:13:23 benefit people and bad stories can create you know Wars and genocides and and the most terrible crimes in history were committed in the name of some fictional story people believed very few 00:13:38 Wars in history are about objective material things people think that we fight like wolves or chimpanzees over food and territory this is not the case 00:13:52 at least not in the modern world if I look for instance at my country which is at present in at War the Israeli Palestinian conflict is not really about food and territory there is enough food 00:14:04 between the Jordan and Mediterranean to feed everybody there is enough territory to build houses and schools for everybody but you have two conflicting stories or more than two conflicting 00:14:17 stories in the minds of different people and they can't agree on the story they can't find a common story that everybody would be happy with and this is the the Deep source of the conflict
      • for: stories - consequences of good and bad stories, inisight - war and genocide - when people violently disagree on stories,

      • insight

        • disagreement of stories
          • not just wars, but climate change skeptics believe a different story than environmentalists
          • hyperobjects and evolution play a role as well in what we believe
    1. A personalized button gives users a quick indication of the session status, both on Google's side and on your website, before they click the button. This is especially helpful to end users who visit your website only occasionally. They may forget whether an account has been created or not, and in which way. A personalized button reminds them that Sign In With Google has been used before. Thus, it helps to prevent unnecessary duplicate account creation on your website.

      first sighting: sign-in: problem: forgetting whether an account has been created or not, and in which way

    1. Warning: Do not accept plain user IDs, such as those you can get with the GoogleUser.getId() method, on your backend server. A modified client application can send arbitrary user IDs to your server to impersonate users, so you must instead use verifiable ID tokens to securely get the user IDs of signed-in users on the server side.
  5. Nov 2023
    1. If I wanted to integrate this with an existing login system, “signing out” would mean signing out of my own application (and not out of my Google account).
    1. A personalized button reminds end users that they have used Sign in with Google before, and thus helps to prevent unnecessary duplicate account creation on your website. This is especially helpful to end users who visit your website only occasionally. They may forget the login methods they used.
    1. This is a shell script that essentially does the same as the flaky test: #!/bin/sh cat <<EOS > m.rb module M sleep 0.5 def self.works? true end end EOS ruby -I. <<EOS autoload :M, "m" t = Thread.new { M } p M.works? EOS rm m.rb

      Same thing in another language....

    1. there's an interesting book by Seth Klein Naomi Klein's brother the 00:56:39 just for about creating a mobilizing federal government provincial um almost a state of emergency to address 00:56:53 climate change uh and and that would if you had extraordinary powers then you could basically say well electric vehicles and 00:57:04 more cars is not the solution and we're gonna go in a different area we're going to secure for example the water supply we're going to secure the air supply 00:57:16 we're going to reduce emissions in a very structured way
    1. One more example of a simple approach to this that might help a lot too is add a PORO generator. It could be incredibly basic - rails g poro MyClass yields class MyClass end But by doing that and landing the file in the app/models directory, it would make it clear that was the intended location instead of lib.
    2. I think the real question then becomes: Where do Ruby classes, who I can't find a meaningful folder in app
    3. lib/ is intended to be for non-app specific library code that just happens to live in the app for now (usually pending extraction into open source or whatever).
    4. Everything has a place so do better and find it. There is a certain belief that everything within app should be organized into functionally-named directories and any files placed in app/lib actually belongs in app/services or app/interactors or app/models or someplace if the developers just tried harder. The implication is that developers are bad developers if they don’t yet know what kind of constant they have and where its forever home should be. I reject this. Over the lifespan of an application, there will be constants that have not yet found their functional kin, if those kin ever come to exist at all; sometimes you simply need some code and a place to put it. app/lib can be the convention for where those constants can live temporarily or as long as necessary. Autoloading is really nice, let’s treat them to it.
    5. It is confusing that app/lib is named similarly to lib . I agree, but it is not uncommon to have directories with the same name and similar function nested under different contexts. I believe developers can handle this complexity. Most similarly, Linux has lib and usr/lib . Within a new Rails app, there are many such directories that are manageable: app/assets and lib/assets (sometimes even vendor/assets too) app/javascript and vendor/javascript storage and tmp/storage config and app/assets/config app/controllers and app/javascript/controllers
    1. my favorite questions are ones that take 00:23:48 them out of their daily experience and get them 30,000 feet looking at their life and so it's like what crossroads are you at
      • for: how to ask good questions
    2. I had a student uh a couple years ago two years ago named 00:17:41 Jillian Sawyer and Jillian's uh dad died of pancreatic cancer uh while she was in college
      • for: good story - accompaniment
    3. when Jimmy greets 00:15:11 anybody he's greeting someone anybody made in the image of God he's looking into the face of God he's looking at somebody with the in a soul of infinite value and dignity he's looking at somebody so important that 00:15:24 Jesus was willing to die for that person now you could be Christian Jewish Muslim Muslim Buddhist atheist agnostic I don't care but greeting each person you meet with that level of reverence and respect 00:15:36 is a precondition for seeing them well
      • for: good story - everyone is sacred
    4. I was in Waco Texas several years ago and I was having lunch with a woman named laru dorsy and Mrs dorsy was a teacher most of her career and she presented herself to me as this Stern disciplinarian sort 00:14:19 of a drill sergeant type
      • for: good story - illuminators - pastor
    5. Bell labs they 00:12:40 had a bunch of researchers and some of them were just more creative and Innovative than others and they wanted to know why
      • for: good story - illuminators - Bell labs
  6. Oct 2023
    1. And as others have pointed out, there is potential for ambiguity: if A is dependent on B, then a dependence or dependency (relationship) exists; but referring to either A or B as the dependency demands context.

      "demands context" :)

    2. There are certainly cases where you can use dependency and cannot use dependence: for example "The UK's overseas dependencies", or "This software releases has dependencies on Unix and Java". So if the dependent things are discrete and countable, it should definitely be "dependency".
    1. on the traditional empiricist account we do not have direct access to the facts of the external world 00:11:03 that is we do not experience externality directly but only immediately not immediately but immediately because between us and the external world are those what do you call them oh yes 00:11:18 sense organs and so the question is how faithfully they report what is going on out there well to raise the question how faithful is the sensory report 00:11:30 of the external world is to assume that you have some reliable non-sensory way of answering that question that's the box you can't get out of and so there is always this gap 00:11:42 between reality as it might possibly be known by some non-human creature and reality as empirically sampled by the senses whose limitations and distortions are very well 00:11:56 known but not perfectly classified or categorized or or measured
      • for: good explanation: empiricism, empiricism - knowledge gap, quote, quote - Dan Robinson, quote - philosophy, quote - empiricism - knowledge gap, Critique of Pure Reason - goal 1 - address empiricism and knowledge gap

      • good explanation : empiricism - knowledge gap

      • quote

        • on the traditional empiricist account
          • we do not have direct access to the facts of the external world
          • that is we do not experience externality directly but only MEDIATELY, not immediately but MEDIATELY
            • because between us and the external world are those what do you call them oh yes, sense organs
          • and so the question is how faithfully they report what is going on out there
          • To raise the question how faithful is the sensory report of the external world
            • is to assume that you have some reliable non-sensory way of answering that question
          • That's the box you can't get out of and so there is always this gap between
            • reality as it might possibly be known by some non-human creature and
            • reality as empirically sampled by the senses
              • whose limitations and distortions are very well known
                • but not perfectly classified or categorized or or measured
      • Comment

        • Robinson contextualizes the empiricist project and gap thereof, as one of the 4 goals of Kant's Critique of Pure Reason.
        • Robinson informally calls this the "Locke" problem, after one of the founders of the Empiricist school, John Locke.
        • Robinson also alludes to a Thomas Reed approach to realism that contends that we don't experience reality MEDIATELY, but IMMEDIATELY, thereby eliminating the gap problem altogether.
        • It's interesting to see how modern biology views the empericist's knowledge gap, especially form the perspective of the Umwelt and Sensory Ecology
  7. Sep 2023
    1. 54:30 Max utopian in his head, trust in random people

      • see index zk on Apollonian and Dionysian theory (idealism, good or bad?)

      57:00 inherently, people are good, but they get corrupted (good and evil)

      57:44 “there is some light” (life can be good): see zk 9 section on light & darkness

    1. use the services of free email providers (Gmail, Live, Yahoo...) which are limited and your data is used for commercial purposes. Install your own email server, which requires important technical knowledge to setup and configure the system.
    1. In order to enable MPP, users must have Apple devices, configure their email account to use Apple Mail applications, update their operating system to the latest version, and opt into MPP. 
    1. Before Ruby 3.2, there core class Time provided no way to to get back a Time value from any serialization, including even simple Time#inspect or #to_s. The Time.parse provided by standard library time (not core functionality, doesn’t work with explicit require 'time'), and tries to parse every imaginable format, while Time.new with string is stricter.
    2. string ones are those most of the Rubyists remember.
    3. Low-level processing of strings (like networks middleware, or efficient search algorithms, or packing/unpacking) might need an ability to operate on a level of single bytes, regardless of original string’s encoding. It is especially important while handling variable-length encodings like UTF-8. Before methods introduction, the only way to perform byte-level processing was to forcing string encoding into ASCII-8BIT, process, and then force encoding back.
    4. There are many simple use cases like pagination (when “21 items / 10 per page” should yield “3 pages”).
    1. For me, I don't have an issue, but there was one syntax situation I found awkward: I need to sometimes know whether it is a class or a module that I am modifying. So I may have code: module Foo module Bar class Baz versus: class Foo::Bar::Baz It's not a huge issue, but ruby would yield an error if I specify a class or module incorrectly (which can happen if you spread code out into different .rb files, so I understand why there is an error message shown, to avoid accidents). But I then also wondered why I have to care whether it is a module or class, if my primary goal is to modify something, such as by adding a method. If I want to add a method: def foobar; end then I really should never be required to have to know whether I am modifying a class or a module.
    1. We dream of a day when IP reputation does not matter and we can rely on domain reputation, but unfortunately we are not there yet.
  8. Aug 2023
    1. The point of acts_as_paranoid is keeping old versions around, not really destroying them, so you can look at past state, or roll back to past version. Do you consider the attached file part of the state you should be able to look at? If you roll back to past version, should it have it's attachment there too, in the restored version?
    1. After all, Luhmann himself didn’t have automatic backlinking. He had to manually add the cross-references to his analog notecards, and yet the system allowed him to write dozens of books and papers. Indeed, as Christian from Zettelkasten.de has said, automation might actually be an impediment to the cogitation and deep understanding the method seeks to engender.
    1. ActiveStorage has a different approach than what is suggested by @dhh here. The idea there seems to be to rule out a default and to explicitly set ActiveStorage::Current.url_options or by include ActiveStorage::SetCurrent. I don't understand why and asked about it in the Rails Forum. Maybe someone here can point out why we don't use a sensible default in ActiveStorage?
  9. Jul 2023
    1. The distinction doesn't refer to the files _contents_ but how to the file is _treated_ when it is being read or written. In "rb"/"wb" modes files are left how they are, in "r"/"w" modes Windows programmers get line ends "\r\n" translated into "\n" what disturbs file positions and string lengths.
    1. How do we end up designing systems that attract all of the right people into power
      • key question
        • knowing the self-selection effect, how do we design better systems that end up putting good people in positions of power?
    1. I understand Duo follows the spec and attempts to make life easier by giving users the full 30 seconds, but unfortunately service providers don’t honor that recommendation, which leads to lockouts and a bunch of calls to our 1st line teams. You can’t tell users to stop using {platform}, but we can tell them to switch TOTP providers.
    1. The way to do this with Capybara is documented on StackOverflow but, unfortunately, the answer there is buried in a little too much noise. I decided to create my own tiny noise-free blog post that contains the answer. Here it is:
    1. approaches, which typically encapsulate bacteria in hydrogels, have produced deployable optical sensors for explosives14, heavy metals15 and chemical inducers16,17
    1. Translocation to a cell’s surface utilizes a signal peptide (for inner membrane translocation) and AIDAc as an outer membrane autotransporter pore
    1. Making MoneySerializer reloadable would be confusing, because reloading an edited version would have no effect on that class object stored in Active Job.
    1. AHL communication modules with functional devices built from the biological components of the las18, tra18, rpa18, rhl19, cin19 and esa20 quorum-sensing systems
  10. Jun 2023
    1. I’ve heard-suggested that ActiveSupport, which does a ton of monkey-patching of core classes, would make potentially-nice refinements. I don’t hold this opinion strongly, but I disagree with that idea. A big value proposition of ActiveSupport is that it is “omnipresent” and sets a new baseline for ruby behaviors - as such, being global really makes the most sense. I don’t know that anyone would be pleased to sprinkle using ActiveSupport in all their files that use it - they don’t even want to THINK about the fact that they’re using it.
    1. What I do care about, though, is that we might start to accept and adopt opinions like “that feature is bad”, or “this sucks”, without ever pausing to question them or explore the feature ourselves.
    2. If we hand most, if not all responsibility for that exploration to the relatively small number of people who talk at conferences, or have popular blogs, or who tweet a lot, or who maintain these very popular projects and frameworks, then that’s only a very limited perspective compared to the enormous size of the Ruby community.
    1. programming environmental microbes have been applied to a wide range of organisms. Some examples of newly-programmable microbes include

      good citations of engineering non-model organisms

    1. To date, serine integrases have not been used extensively in plant systems

      although they have been shown to work in principle in Arabidopsis23, Nicotiana benthamiana2421, barley25 and wheat26

    1. Have you ever: Been disappointed, surprised or hurt by a library etc. that had a bug that could have been fixed with inheritance and few lines of code, but due to private / final methods and classes were forced to wait for an official patch that might never come? I have. Wanted to use a library for a slightly different use case than was imagined by the authors but were unable to do so because of private / final methods and classes? I have.
    2. I'm not saying never mark methods private. I'm saying the better rule of thumb is to "make methods protected unless there's a good reason not to".
    3. Marking methods protected by default is a mitigation for one of the major issues in modern SW development: failure of imagination.
    4. If it's dangerous, note it in the class/method Javadocs, don't just blindly slam the door shut.
    5. Been disappointed, surprised or hurt by a library etc. that was overly permissive in it's extensibility? I have not.
    6. The old wisdom "mark it private unless you have a good reason not to" made sense in days when it was written, before open source dominated the developer library space and VCS/dependency mgmt. became hyper collaborative thanks to Github, Maven, etc. Back then there was also money to be made by constraining the way(s) in which a library could be utilized. I spent probably the first 8 or 9 years of my career strictly adhering to this "best practice". Today, I believe it to be bad advice. Sometimes there's a reasonable argument to mark a method private, or a class final but it's exceedingly rare, and even then it's probably not improving anything.
    1. Are protected members/fields really that bad? No. They are way, way worse. As soon as a member is more accessible than private, you are making guarantees to other classes about how that member will behave. Since a field is totally uncontrolled, putting it "out in the wild" opens your class and classes that inherit from or interact with your class to higher bug risk. There is no way to know when a field changes, no way to control who or what changes it. If now, or at some point in the future, any of your code ever depends on a field some certain value, you now have to add validity checks and fallback logic in case it's not the expected value - every place you use it. That's a huge amount of wasted effort when you could've just made it a damn property instead ;) The best way to share information with deriving classes is the read-only property: protected object MyProperty { get; } If you absolutely have to make it read/write, don't. If you really, really have to make it read-write, rethink your design. If you still need it to be read-write, apologize to your colleagues and don't do it again :) A lot of developers believe - and will tell you - that this is overly strict. And it's true that you can get by just fine without being this strict. But taking this approach will help you go from just getting by to remarkably robust software. You'll spend far less time fixing bugs.

      In other words, make the member variable itself private, but can be abstracted (and access provided) via public methods/properties

    2. Exposing properties gives you a way to hide the implementation. It also allows you to change the implementation without changing the code that uses it (e.g. if you decide to change the way data are stored in the class)
    3. Anything that isn't explicitly enforced by contract is vulnerable to misunderstandings. It's doing your teammates a great service, and reducing everyone's effort, by eliminating ambiguity and enforcing information flow by design.
    4. Far more preferable is to minimize data structure so that it tends to be normalized and not to have inconsistent states. Then, if a member of a class is changed, it is simply changed, rather than damaged.
    5. Another point is that properties are good in that you can place breakpoints in them to capture getting/setting events and find out where they come from.
    1. Derived classes need to follow their base class contracts, but may choose to expose a subtype of base class with more capabilities. This includes making protected members public:
    1. Writing json_populate_record in the FROM clause is good practice, since all of the extracted columns are available for use without duplicate function calls.
  11. May 2023
    1. while I'm not as strongly against the above example code as the others, specifically because you did call it out as pseudocode and it is for illustrative purposes only, perhaps all of the above comments could be addressed by replacing your query = ... lines with simple query = // Insert case-sensitive/insensitive search here comments as that keeps the conversation away from the SQL injection topic and focuses on what you're trying to show. In other words, keep it on the logic, not the implementation. It will silence the critics.
    2. I know this is an old question but I just want to comment here: To any extent email addresses ARE case sensitive, most users would be "very unwise" to actively use an email address that requires capitals. They would soon stop using the address because they'd be missing a lot of their mail. (Unless they have a specific reason to make things difficult, and they expect mail only from specific senders they know.) That's because imperfect humans as well as imperfect software exist, (Surprise!) which will assume all email is lowercase, and for this reason these humans and software will send messages using a "lower cased version" of the address regardless of how it was provided to them. If the recipient is unable to receive such messages, it won't be long before they notice they're missing a lot, and switch to a lowercase-only email address, or get their server set up to be case-insensitive.
    1. A flaw can become entrenched as a de facto standard. Any implementation of the protocol is required to replicate the aberrant behavior, or it is not interoperable. This is both a consequence of applying the robustness principle, and a product of a natural reluctance to avoid fatal error conditions. Ensuring interoperability in this environment is often referred to as aiming to be "bug for bug compatible".
    1. This doesn't make any sense, though. Once you recognize that the two may represent different addresses, you're arbitrarily choosing the first one in your system as the right one, when the second one is just as right. Just give up at that point and lowercase ’em.

      which one should be considered the correct one?

    2. Some say you should treat addresses as case-preserving as opposed to case-sensitive, meaning you don't change IStillUse@AOL.COM to istilluse@aol.com but you still consider it a dupe of iSTilLUSE@aol.com.
    1. Since using case insensitivity is so widespread, take their sign up email address and make it lower case. Whenever they try to log in, convert that to lowercase as well, for comparison purposes, when you go to see if the user exists. As far as sign up and sign in go, do a case insensitive comparison. If the person signs up as Steve@example.com, you'll still want to allow them to sign in later with steve@example.com or sTeVE@example.com.
    2. But you should also keep track of the email address that they signed up with in a case sensitive fashion. Any time you send an email to them, be sure to send it with that original casing. This allows the email server to handle it however it feels like it needs to. So even though the person may always be signing in to your site with steve@example.com, if they signed up as Steve@example.com, you'll always send email to Steve@example.com, just to be safe.
    1. we split the head from the hands, or isolate humane studies from practicallife, we unfortunately tend to suppose that a liberal cultural education is the rightof only an elite few—the heads. Don’t we all—and not just the socially advantaged“heads”—deserve an education that prioritizes human growth?


    2. none of this means we should turn students and teachers intofunctionaries or serfs for, in Dewey’s words in Democracy and Education, a “feudaldogma of social predestination.”


    3. . The problem arises when institutions and policymakers assume,following the logic of the industrial model, that our primary and overriding edu-cational aim is thus to train students to fit the specifications of this existing infra-structure.


    4. The mission of K–12 and higher educationis, in Wisconsin Gov. Scott Walker’s infamous words last year, “to develop humanresources to meet the state’s workforce needs.”

      Ridiculous. But indicative of how much of the system is set up, in relaity

    5. “A being of infinitescope,” she wrote, “must not be treated with an exclusive view to any one relation. . . . Give the soul free course. . . and the being will be fit for any and every relationto which it may be called.”1

      Right, and that is particularly what is stripped away when people are only seen as employees. When the personage of workers is ignored, they are restricted in relation only to vocation.

  12. Apr 2023
    1. If you send links with a secret login token with email, then they should be single-use and expire rather quickly.
    2. If so, then how is sending a link for password reset any more secure? Isn't logging-in using a magic link the same thing as sending a magic link for resetting a password?

      In my opinion: It's not any different or less secure.

    1. Google allowed third parties to build their own Wave services (be it private or commercial) because it wanted the Wave protocol to replace the e-mail protocol.[2][16][17] Initially, Google was the only Wave service provider, but it was hoped that other service providers would launch their own Wave services, possibly designing their own unique web-based clients as is common with many email service providers.
  13. Mar 2023
    1. Exactly my thoughts on the matter! I'm coming from XML SOAP background and concept of schema just got into my blood and JSON documents rather don't announce their schema. To me it's whether server "understands" the request or not. If server doesn't know what "sales_tax" is then it's simply 400: "I have no idea what you sent me but definitely not what I want.".
    2. Just because the code is described as part of the WebDAV spec doesn't mean it's WebDAV-specific! Status codes are supposed to be generic.
    1. Why the 2 separate steps for this? Simple: to make things easier on the front-end side of things. Sending 2 different error codes, one for when the OTP is required but missing, and one where the OTP was provided but invalid, allows us to adjust our login UI accordingly.
    1. User Experience The user experience will be familiar and consistent across many of the user’s devices – a simple verification of their fingerprint or face, or a device PIN, the same simple action that consumers take multiple times each day to unlock their devices.
    1. The problem with using SMS-2FA to mitigate this problem is that there’s no reason to think that after entering their credentials, they would not also enter any OTP.
    2. I believe that SMS 2FA is wholly ineffective, and advocating for it is harmful.

      Would this also appyl to OTP by e-mail??

    3. This argument only works if what you’re defending is good. As I’ve already explained, SMS-2FA is not good.
    4. Don’t let the perfect be the enemy of the good. Seat belts aren’t perfect either, do you argue we shouldn’t wear them? Etc, etc. This argument only works if what you’re defending is good. As I’ve already explained, SMS-2FA is not good.
    5. You are currently allowing your users to choose their own password, and many of them are using the same password they use on other services. There is no other possible way your users are vulnerable to credential stuffing.
    6. If you use a third party password manager, you might not realize that modern browsers have password management built in with a beautiful UX. Frankly, it’s harder to not use it.
    7. If you’re a security conscious user... You don’t need SMS-2FA. You can use unique passwords, this makes you immune to credential stuffing and reduces the impact of phishing. If you use the password manager built in to modern browsers, it can effectively eliminate phishing as well.

      not needed: password manager: 3rd-party

    1. You can also find the combination verb+in+to, but in that case you're usually dealing with a phrasal verb consisting of a verb and the particle "in", which happens to be followed by the preposition "to".They wouldn't give in to our demands.
    2. "Built in to" appears when you use the phrasal verb "build in" followed by an infinitive, but that is not what you are trying to do in your sentence.There's an electronic switch built in to stop all data transfers.
    1. The house, of course, is not doing the agreeing; Cooper is! Because of the distance between Cooper and the participle phrase that describes him, the comma is necessary.
    1. A survey of 230 diverse bacterial and archaeal genomes found evidence of DNA methylation in 93% of genomes, with a diverse array of methylated motifs (834 distinct motifs; average of three motifs per organism)
    1. conjugative plasmids have broad-host ranges23, are resistant to restriction-modification systems24, are easy to engineer with large coding capacities25, and do not require a cellular receptor26 that would provide a facile mechanism for bacterial resistance.
    1. Bacterial cells are typically one thousandth the volume of mammalian cells, which places them near the edge of instrument detection. At this size it can be challenging to differentiate viable cells from debris of similar size
    1. Detailed descriptions, assumptions, limitations and test cases of many popular statistical methods for ecological research can be found in the GUSTAME server (Buttigieg and Ramette, 2014), and in the review by Paliy and Shankar (2016).
    2. condensing the information into two- or three-dimensional spaces. A very good overview of techniques to achieve this was written by Paliy and Shankar (2016).
    1. There are several widely used tool collections, e.g., QIIME 2 [13], mothur [14], usearch [15], and vsearch [16], and 1-stop pipelines, e.g., LotuS [17], with new approaches continually being developed, e.g., OCToPUS [18] and PEMA [19]
    1. Recently, redox-responsive biomolecules such as phenazines have been used in several electrochemical strategies to interrogate a range of biological activities30,31 and to control gene expression in living cells32,33, where the redox status of the biomolecules could be measured or manipulated by application of electronic potentials
    1. Double quotes for string literals - because pre-committing to whether you'll need interpolation in a string slows people down