390 Matching Annotations
  1. Last 7 days
    1. More importantly, using a plain email would save lots of time and effort. As a goal-driven-lazy person, that’s a good enough reason to start experimenting.
    2. They don't look like advertisements. The second the recipient interprets your email as an ad, promotion, or sales pitch—and it does take just a second—its chances of being read or acted upon plummet towards zero. A plain email leads people to start reading it before jumping to conclusions.

      forces you to read before deciding

    3. They feel more personal. It's no handwritten note, but it's much more personal than an over-designed email with the recipient's first name crammed somewhere inside.
    4. The plain, unstyled emails resulted in more opens, clicks, replies, and conversions, every time.
    5. They're less likely to go into the "Promotions" tab in Gmail (used by ~16% of all email users), for the same reasons above. From my testing, the plain emails typically end up in the Updates tab and some times even in the primary tab. Of course, the text in the email also affects this.
    6. The plain email—which took no time to design or code—was opened by more recipients and had 3.3x more clicks than the designed email.
    7. Email tools/clients are inconsistent in how they render HTML and CSS. A designed email might look great in Gmail, broken in Outlook, and unreadable in Apple Mail. Half of all emails are opened on mobile devices (according to one study). Email looks good in different clients? Great, now make it work on a 4" screen just as well as on a desktop.
  2. Apr 2021
    1. Flutter vs React Native vs Xamarin for Cross Platform Development

      Developing a new app for your business is definitely a great move to take a company to new heights of success. However, among the plethora of mobile app development platforms to choose from, the task becomes a bit tedious.<br> Cross-platform mobile development is highly regarded owing to the numerous benefits it brings along as compared to Native app development. In this blog post, we will compare the top three Cross-platform mobile development platforms; Flutter Vs React Native Vs Xamarin, to help you make a better decision when going for app development

    1. But decentralized learning goes farther than that: in a decentralized, Collaborative Learning environment, each team member participates in the learning process. They can identify their learning needs, request courses, give feedback on existing courses, and create courses themselves. We call this a bottom-up approach
      • push vs pull for learning - create an environment that enables learning to happen, and let the people doing the work surface what they need to learn, and then help facilitate and amplify that process
    1. Google developed Dart to deliver optimized client apps and ease the development process. It came into the world nine years back. Since then, it has successfully manifested the reputation of being an ahead-of-its-time technology. This has enabled many visionaries to provide the world with apps that deliver an experience like never before. We'll talk about apps developed with Dart in the later part of the blog.

      The technology world is an ever-growing and expanding one, which today has many segments of its own. From that, app development is a highly evolving one. Dart Vs. Kotlin is the prime example of this.

  3. Mar 2021
    1. React and Svelte are very similar in many ways, but what I've found is that in all the little ways that they are different, I prefer Svelte.
    2. Svelte is different in that by default most of your code is only going to run once; a console.log('foo') line in a component will only run when that component is first rendered.
    3. Talking of context, that's much closer to the approach I take with Svelte and use a writable store.
    1. This is not a fork. This is a repository of scripts to automatically build Microsoft's vscode repository into freely-licensed binaries with a community-driven default configuration.

      almost without a doubt, inspired by: chromium vs. chrome

    1. Essentially we're trying to figure out when it's appropriate for "my" code to become "everyones" code, and if there are steps in between. ("Standard library", for example.)
    2. this only applies to end products which are actually deployed. For my modules, I try to keep dependency version ranges at defaults, and recommend others do the same. All this pinning and packing is really the responsibility of the last user in the chain, and from experience, you will make their life significantly more difficult if you pin your own module dependencies.
    1. MVP vs POC vs Prototype: Bringing Great Ideas to Life

      Many companies struggle to decide whether creating a proof of concept (POC), prototype, minimum viable product, or a combination is the right way to approach mobile app development. Understanding and carrying out these three methods(mvp vs prototype vs poc) of mobile product validation properly can significantly improve the chances of winning investor buy-in and acquiring funding, reducing project costs, as well as establishing longevity in the mobile app market

  4. afarkas.github.io afarkas.github.io
    1. If set to true the UI of all input widgets (number, time, month, date, range) are replaced in all browsers (also in browser, which have implemented these types). This is useful, if you want to style the UI in all browsers.
  5. Feb 2021
    1. Rebasing For feature/topic branches, you should always use the --rebase flag to git pull, or if you are usually handling many temporary "to be in a github pull request" branches, run the following to automate this: git config branch.autosetuprebase local

      That's what I keep telling people. Glad to see I'm not the only one...

    1. Source maps eliminate the need to serve these separate files. Instead, a special source map file can be read by the browser to help it understand how to unpack your assets. It "maps" the current, modified asset to its "source" so you can view the source when debugging. This way you can serve assets in development in the exact same way as in production.
    1. When Sprockets was introduced, one of the opinions that it held strongly, is that assets such as CSS and JS should be bundled together and served in one file.
    2. The alternative was to have multiple scripts or stylesheet links on one page, which would trigger multiple HTTP requests. Multiple requests mean multiple connection handshakes for each link “hey, I want some data”, “okay, I have the data”, “alright I heard that you have the data, give it to me” (SYN, ACK, SYNACK). Even once the connection is created there is a feature of TCP called TCP slow start that will throttle the speed of the data being sent at the beginning of a request to a slower speed than the end of the request. All of this means transferring one large request is faster than transferring the same data split up into several smaller requests.
    1. In the telecommunications industry, on a conceptual level, value-added services add value to the standard service offering, spurring subscribers to use their phone more and allowing the operator to drive up their average revenue per user.
    2. For mobile phones, technologies like SMS, MMS and data access were historically usually considered value-added services, but in recent years SMS, MMS and data access have more and more become core services, and VAS therefore has begun to exclude those services.
    1. There are times where it is useful to know whether a value was passed to run or the result of a filter default. In particular, it is useful when nil is an acceptable value.

      Yes! An illustration in ruby:

      main > h = {key_with_nil_value: nil}
      => {:key_with_nil_value=>nil}
      main > h[:key_with_nil_value]
      => nil
      main > h[:missing_key]  # this would be undefined in JavaScript (a useful distinction) rather than null, but in Ruby it's indistinguishable from the case where a nil value was actually explicitly _supplied_ by the caller/user
      => nil
      # so we have to check for "missingness" ("undefinedness"?) differently in Ruby
      main > h.key?(:key_with_nil_value)
      => true
      main > h.key?(:missing_key)
      => false

      This is one unfortunate side effect of Ruby having only nil and no built-in way to distinguish between null and undefined like in JavaScript.

    2. Setting it to a lambda will lazily set the default value for that input.
    1. The rationale is that it's actually clearer to eager initialize. You don't need to worry about timing/concurrency that way. Lazy init is inherently more complex than eager init, so there should be a reason to choose lazy over eager rather than the other way around.
    1. The Oxford English Dictionary says that the global network is usually "the internet", but most of the American historical sources it cites use the capitalized form.
    1. many successful projects have proven that you can develop high-quality code more rapidly (and cost effectively) this way than with the traditional pipelined approach
    1. Recently, cross-platform apps have gained more popularity and preference for their native-like experience and low-cost development. As a result, Flutter Vs. Kotlin has become a famous debate.

      Flutter & Kotlin are cross-platform SDKs that allow you to create native-like mobile applications with only one codebase. In simple words, by single coding, you can have an app for iOS and Android.

  6. Jan 2021
    1. And since auto is entirely based on content, we can say it is “indefinitely” sized, its dimensions flex. If we were to put an explicit width on the column, like 50% or 400px, then we would say it is “definitely” sized.
    1. aspirations and actions

      Sooo, which do you think will inform the content when their actions (a.k.a. HISTORY) run afoul of their aspirations (a.k.a. ideology/philosophy)

    1. Monaco is what VScode, and CodeSandBox, use for code editing. It's obviously one of the best code editors in the world. It's always been on my want-to-try-list and this is the perfect proejct.
    1. This is probably rare enough that you would probably make a class (e.g. .link-looking-button) that incorporates the reset styles from above and otherwise matches what you do for anchor links.
    2. You can style a link to look button-like Perhaps some of the confusion between links and buttons is stuff like this: <img loading="lazy" src="https://i1.wp.com/css-tricks.com/wp-content/uploads/2020/01/Screen-Shot-2020-01-08-at-8.55.49-PM.png?resize=264%2C142&#038;ssl=1" alt="" class="wp-image-301534" width="264" height="142" data-recalc-dims="1" />Very cool “button” style from Katherine Kato. That certainly looks like a button! Everyone would call that a button. Even a design system would likely call that a button and perhaps have a class like .button { }. But! A thing you can click that says “Learn More” is very much a link, not a button. That’s completely fine, it’s just yet another reminder to use the semantically and functionally correct element.
    1. If a link doesn't have a meaningful href, it should be rendered using a <button> element.

      Hmm. Do I agree with this?

    1. I think “buttons do things (configure the download), links go places (request the download)” still holds.
    2. Buttons Do Things, Links Go Places
    3. However, the W3C provides us with an important clue as to who is right: the download attribute.
    4. There seems to be a lot of confusion over when to use buttons and when to use links. Much like tabs versus spaces or pullover hoodies versus zip-ups, this debate might rage without end.
    5. The debate about whether a button or link should be used to download a file is a bit silly, as the whole purpose of a link has always been to download content. HTML is a file, and like all other files, it needs to be retrieved from a server and downloaded before it can be presented to a user. The difference between a Photoshop file, HTML, and other understood media files, is that a browser automatically displays the latter two. If one were to link to a Photoshop .psd file, the browser would initiate a document change to render the file, likely be all like, “lol wut?” and then just initiate the OS download prompt. The confusion seems to come from developers getting super literal with the “links go places, buttons perform actions.” Yes, that is true, but links don’t actually go anywhere. They retrieve information and download it. Buttons perform actions, but they don’t inherently “get” documents. While they can be used to get data, it’s often to change state of a current document, not to retrieve and render a new one. They can get data, in regards to the functionality of forms, but it continues to be within the context of updating a web document, not downloading an individual file. Long story short, the download attribute is unique to anchor links for a reason. download augments the inherent functionality of the link retrieving data. It side steps the attempt to render the file in the browser and instead says, “You know what? I’m just going to save this for later…”
    1. Technologies are subject to change, modification, and evolution. They are like the proclamation “The king is dead, long live the king.” In the proclamation, one part refers to a king who is dead while the other part refers to the heir who succeeds the predecessor. ASP.NET and PHP including all other technologies go through similar situations.

      As far as the question is concerned, yes, you should consider using PHP and ASP.NET Core as web development in 2021. However, you need to make sure that the technologies are a perfect match for your project.

  7. Dec 2020
    1. Therefore, before taking any further steps, you should take proper research and guidelines from an expert to get the right decision. In this article, we help you explore the usability of these two technologies so that you can make a better decision based on your specific needs.

      Are PHP and ASP.NET dead? Is PHP a dying language? Is ASP.Net worth considering in the coming year/s? And many other similar questions have been roaming across the internet for the last couple of years.

    1. The Difference Between Telehealth and Telemedicine: Learn How to Use These Terms Fluently

      The intersection of medicine and technology can be a confusing place. This article explains the difference between telehealth and telemedicine. After reading it, you’ll be able to fluently use these terms in your everyday and professional life

    1. 2.3.1. Mail Objects SMTP transports a mail object. A mail object contains an envelope and content. The SMTP envelope is sent as a series of SMTP protocol units (described in Section 3). It consists of an originator address (to Klensin Standards Track [Page 11] RFC 5321 SMTP October 2008 which error reports should be directed), one or more recipient addresses, and optional protocol extension material

      The SMTP envelope is sent as a series of SMTP protocol units (described in Section 3). It consists of

      • an originator address (to which error reports should be directed),

      MAIL FROM that refers to the originator (a.k.a., reverse path, backward-pointing address) of the request

      • one or more recipient addresses,

      Multiple RCPT TO for each "to:" rfc822 message header in the mail data (see annotation)

      • and optional protocol extension material.

      DATA (see below)

      (See also envelope-vs-mail tags.)

    2. When the RFC 822 format ([28], [4]) is being used, the mail data include the header fields such as those named Date, Subject, To, Cc, and From.

      This just answered my question regarding the quote from "Postfix: The Definitive Guide":

      ENVELOPE ADDRESSES AND MESSAGE HEADERS A common source of confusion for email users is the fact that the To: address in email message headers has nothing to do with where a message is actually delivered. The envelope address controls message delivery. In practice, when you compose a message and provide your MUA with a To: address, your MUA uses that same address as the envelope destination address, but this is not required nor is it always the case. From the MTA’s point of view, message headers are part of the content of an email message. The delivery of a message is determined by the addresses specified during the SMTP conversation. These addresses are the envelope addresses , and they are the only thing that determine where messages go. See Section 2.2.8 later in the chapter for an explanation of the SMTP protocol.

      Mailing lists and spam are common examples of when the envelope destination address differs from the To: address of the message headers.

      Also an answer to this question.

    3. An SMTP-capable host SHOULD support both the alias and the list models of address expansion for multiple delivery. When a message is delivered or forwarded to each address of an expanded list form, the return address in the envelope ("MAIL FROM:") MUST be changed to be the address of a person or other entity who administers the list. However, in this case, the message header section (RFC 5322 [4]) MUST be left unchanged; in particular, the "From" field of the header section is unaffected.

      Another section that serves well to understand the difference between email data and SMTP envelope.

    4. To expand an alias, the recipient mailer simply replaces the pseudo- mailbox address in the envelope with each of the expanded addresses in turn; the rest of the envelope and the message body are left unchanged. The message is then delivered or forwarded to each expanded address.

      This annotation explains what this paragraph means and dispels my confusion regarding how 3mails with multiple recipients will get processed (also, SMTP envelope vs mail data).

      MS Outlook's "distribution list" is the same as an rfc5321 alias.

    5. The return (backward-pointing) address in the envelope is changed so that all error messages generated by the final deliveries will be returned to a list administrator, not to the message originator, who generally has no control over the contents of the list and will typically find error messages annoying.
      1. This the only difference between an SMTP alias and list; expanding recipients to RCPT commands is the same.
      1. Another great example to highlight the difference between SMTP envelope and mail data: the envelope's MAIL FROM (see annotation) is different from to the mail data's rfc822 From:.
    6. If the Klensin Standards Track [Page 19] RFC 5321 SMTP October 2008 recipient is known not to be a deliverable address, the SMTP server returns a 550 reply, typically with a string such as "no such user - " and the mailbox name (other circumstances and reply codes are possible).

      Will the entire transaction be canceled? "Transaction" in the name of this a section implies yes, but what if all the recipients are valid?

      See replies below but the answer is no; an RCPT command is specified for each recipient in the mail data, these RCPT commands will be evaluated in sequence,, and any SMTP (error) notifications will be sent to the address in the MAIL FROM command (which is not necessarily the same as the mail data's From: header).

    1. Note that preload will run both on the server side and on the client side. It may therefore not reference any APIs only present in the browser.
    1. You can afford to make a proper PR to upstream.
    2. The change would be useful to other people as-is.
    3. The change is too consequential to be developed in situ.
    4. Patches can be reviewed as part of your normal review process, forks probably can't
    5. Get told in big red letters when the dependency changed and you need to check that your fix is still valid.
    6. Keep your patches colocated with the code that depends on them.
    7. Sometimes forks need extra build steps, e.g. with react-native for Android. Forget that noise.
    8. You can use --save-dev if you don't need to run npm in production, e.g. if you're making a web frontend.
  8. Nov 2020
    1. The Object.getPrototypeOf() method returns the prototype (i.e. the value of the internal [[Prototype]] property) of the specified object.

      internal: [[Prototype]]

      Other times we see something used to indicate it is internal. In fact, this even supersedes proto__. So why did they use a different naming convention? Did they decide [[ ]] is a better naming convention?

    1. Sentence case, e.g. ‘Next section’. I use sentence case for more ‘friendly’ or ‘conversational’ platforms.
    2. Sharp edge buttons look more serious, while buttons with a rounder radius look more playful.
    1. So, whether you’re already running a business or planning to start a new venture, cloud integration will be a mandatory thing. But, when you deep dive into the ocean of cloud computing, you may get confused between the top three service models – Iaas vs PaaS vs SaaS.

      article, we will be going through many aspects of SaaS vs PaaS vs IaaS. Stay tuned till the end of the blog to know which one will suit best for your business.

    1. // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>. // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.

      I wish I understood what they meant and why this is necessary

    1. Certainly during the first few turns in a less developed game, you are taking more strategic gambles, and later you are more tactically choosing who will mail off their Form 1120 on time.
    1. I'd say it's better overall because it replaces paths at compile-time. It means there is no runtime dependency or any performance overhead.
    1. Loaders use a mapping configuration to map module names to files at run-time, see RequireJs documentation and SystemJS documentation.
    1. This module should not be used in other npm modules since it modifies the default require behavior! It is designed to be used for development of final projects i.e. web-sites, applications etc.
    1. The following options are ideal for development:
    2. Some of these values are suited for development and some for production. For development you typically want fast Source Maps at the cost of bundle size, but for production you want separate Source Maps that are accurate and support minimizing.
    1. I'm looking at https://html.spec.whatwg.org/#attributes-3 right now, and it seems that there are a few others that ought to be boolean but are not currently in this list: allowpaymentrequest, formnovalidate, hidden (is on the original list in the master branch), itemscope, nomodule, and playsinline.
    1. Some of the verbs implemented by systemctl are designed to provide a high-level overview in a human readable format. All that information is available over dbus, and/or journalctl, systemctl show. We could provide that information in json format, but there's a second problem. Information and format of information printed by e.g. systemctl status is not stable. Since the output is not suitable for programmatic consumption anyway, there's no need to provide it in a machine readable format.
    1. Now let me get back to your question. The FBI presents its conflict with Apple over locked phones as a case as of privacy versus security. Yes, smartphones carry a lot of personal data—photos, texts, email, and the like. But they also carry business and account information; keeping that secure is really important. The problem is that if you make it easier for law enforcement to access a locked device, you also make it easier for a bad actor—a criminal, a hacker, a determined nation-state—to do so as well. And that's why this is a security vs. security issue.

      The debate should not be framed as privacy-vs-security because when you make it easier for law enforcement to access a locked device, you also make it easier for bad actors to do so as well. Thus it is a security-vs-security issue.

  9. Oct 2020
    1. It is only soft-deprecated, which means that your code will not break at the moment and no deprecation warning will be displayed, but this constant will be removed in the future.
    1. If you don't like to create an extra function and remove the items 'inline'
    2. However, this will only walk the object shallowly. To do it deeply, you can use recursion:
    3. Note that if you're willing to use a library like lodash/underscore.js, you can use _.pick instead. However, you will still need to use recursion to filter deeply, since neither library provides a deep filter function.
    1. export const validationSchema = {
        field: {
          account: [Validators.required.validator, iban.validator, ibanBlackList],
          name: [Validators.required.validator],
          integerAmount: [

      Able to update this schema on the fly, with:

        React.useEffect(() => {
          getDisabledCountryIBANCollection().then(countries => {
            const newValidationSchema = {
              field: {
                account: [
                    validator: countryBlackList,
                    customArgs: {
        }, []);
    1. Image a situation wherein you have just launched your app. But the data of your app is not being properly displayed or you are not able to fetch the data that is being entered by the users. What will be the impression of your app in the user’s mind?

      Many businesses get confused when it comes to choosing the right database for their application. In fact, it is quite crucial to choose the one between SQLite and Realm.

    1. SwiftUI is a user interface toolkit that lets us design apps in a declarative way. That’s a fancy way of saying that we tell SwiftUI how we want our UI to look and work, and it figures out how to make that happen as the user interacts with it.
    2. Imperative UI causes all sorts of problems, most of which revolve around state, which is another fancy term meaning “values we store in our code”. We need to track what state our code is in, and make sure our user interface correctly reflects that state.
    1. Doing so also means adding empty import statements to guarantee correct order of evaluation of modules (in ES modules, evaluation order is determined statically by the order of import declarations, whereas in CommonJS – and environments that simulate CommonJS by shipping a module loader, i.e. Browserify and Webpack – evaluation order is determined at runtime by the order in which require statements are encountered).

      Here: dynamic loading (libraries/functions) meaning: at run time

    2. This PR replaces nested require statements in files in vendor/postcss with import declarations, so that they can be properly resolved at build time.
    1. Note that these are not hyperlinks; these URIs are used for identification. This is a machine-readable way to say “this is HTML”. In particular, software does not usually need to fetch these resources, and certainly does not need to fetch the same one over and over!
    1. Every URL is a URI; Every URN is a URI; URI and URL are NOT interchangeable – a URL is a URI, but a URI is not always a URL; URLs always contain an access mechanism.
    1. Roles are element types and authors MUST NOT change role values over time or with user actions. Authors wishing to change a role MUST do so by deleting the associated element and its children and replacing it with a new element with the appropriate role.