5,234 Matching Annotations
  1. Last 7 days
    1. Oh, but there’s so much more to see than just where our current Drops are located.  Below, you’ll find maps showing where our delivery routes go.  If you live along one of these routes (even if no Drop already exists in your area of the route), you can get an Azure delivery
    1. Actually, thats the one thing I’ve always thought Middleman got better than Rails: instead of eg, calling ‘render :admin’ in the general layout, you would ‘wrap_layout :application’ inside the specific (admin) one. It’s much more ergonomic this way.
    1. a mixin does not need to extend AS::Concern to be a concern
    2. And you see the problem, concerns are so simple that they do not deserve a full guide. Concerns are mixins, if you are a Ruby programmer, you already know what a mixin is and their use case to modularize APIs.
    1. So when Avdi took to air some of those grievances on Twitter, the natural thing happened that always happens when you feel your work is attacked: The core contributor group got defensive! That’s a mischaracterization! Where are the completed bug reports!? You know the drill, if you’ve ever worked on something, poured your heart into it, and then seen it criticized online. There’s that immediate, knee-jerk reaction of a sting. But it doesn’t have to sting.
    1. set up

      This is the past participle of the verb "to set up".

      Also: do a web search for "be set up" vs "be setup".

    2. The verb set up, on the other hand, is usually found as an open compound (two words, no hyphen) in both American and British English.
    1. In the interest of transparency, this data is not encrypted: you can see exactly what information we store.
    1. Using |- preserves newlines within the command and does not append a newline at the end of the command string. Beforehand I was using > which replaces newlines in the command string with spaces.
  2. Jul 2020
  3. idioms.thefreedictionary.com idioms.thefreedictionary.com
    1. By extension, a situation in which problems continue to arise faster than one is able to solve or cope with them, resulting in piecemeal, incomplete, or temporary results.
    2. Literally, an arcade game in which the player uses a small rubber mallet to hit robotic toy moles that pop up randomly in holes laid out across the surface of the machine.
  4. Jun 2020
    1. "Splitters can be lumped more easily than lumpers can be split"
    2. "Use the client’s language"
    3. Prefactoring is the application of experience to the creation of new software systems. Its relationship to its namesake refactoring is that lessons learned from refactoring are part of that experience.
    1. For example, if error messages in two narrowly defined classes behave in the same way, the classes can be easily combined. But if some messages in a broad class behave differently, every object in the class must be examined before the class can be split. This illustrates the principle that "splits can be lumped more easily than lumps can be split".
    2. The lumper–splitter problem occurs when there is the desire to create classifications and assign examples to them, for example schools of literature, biological taxa and so on.
    3. their critics say that if a carnivore is neither a dog nor a bear, they call it a cat
    1. Caching is dangerous if not done correctly. For example, making decisions based on outdated data as if it was current.
    2. Don’t apply caching if the process is expected to react to changes during the caching period. i.e. Don’t cache when mixing reads and writes.
    3. An example candidate for caching might be a nightly billing task which aggregates billing data for the past month. That kind of task is likely not expecting last minute updates while it runs. It assumes that the state of the world remains constant while processing.
    4. According to our understanding of the inconsistencies, the feature was likely trying to support too many edge cases. All caching strategies have weaknesses and eventually break down if the usage is not properly scoped.
    5. If those comments are loaded outside of the blog_post association, then attempting to reference the blog_post association from within each comment will result in N blog_posts table queries even if they all belong to the same BlogPost!
    1. However, it is often the case that you do need a higher layer of abstraction in order to deal with the complexity of non-trivial applications. If you don’t deal with that abstraction explicitly, one day you will wake up and find that you’ve created a mess of abstraction and indirection through a thousand cuts.
    1. Components result from software coding, as well as the integration of the source code from external components
    1. Refactoring is intended to improve the design, structure, and/or implementation of the software (its non-functional attributes), while preserving its functionality.

      First sighting: "non-functional attributes".

    1. This means you no longer have to declare inverse_of on two associations which have good names.

      ... which have good names.

      This implies that those names where the inverse_of cannot automatically be inferred are bad names. I disagree that a "good name" is at all related/dependent on that ability.

      What they should say here instead is:

      ... which have names that allow the relationship to be easily inferred.

      Or refer to these names as the "default" or "Rails conventional" names for these associations.

      But it is not necessarily a better name. A better name is, quite often, one that is more descriptive and specific.

      For example, just because by default if you use rails generate with a User model, it might (I don't remember; can it even generate associations?) create a belongs_to :user association doesn't mean that's the best name for it. belongs_to :author or belongs_to :owner, for example, being more specific, are likely better names. The model still needs a generic name like User because it may be used in various relationships, but the relationships themselves should pretty much never be called user because there's almost always a more specific name that better reveals/describes the relationship.

    2. I would argue that this was a good tradeoff because developers who are creating more complicated associations would probably be aware of the manual ability to set inverse_of.


      It doesn't need to be able to automatically infer the inverse_of for every case, precisely because it is possible

      and it's not worth the extra complexity (and extra chance of guessing wrong) for the 20% of cases that this doesn't already handle.

    3. In this case, we notice that comment.post and post should belong to the same database object. But, is Rails smart enough to know that the comment should be removed from both of the associations? Or are comment.post and post different representations of the same database row?
    1. “The alarming truth,” warned the researcher, “is that the average number of permissions requested by a flashlight app is 25.”
    2. “Asking for too many permissions is dangerous,” ESET malware researcher Lukas Stefanko explains. “These permissions can be misused as an exploit to access more device components, such as call logs, phone numbers, and browsing history.”
    3. At the heart of Google’s challenge has been so-called permission abuse—millions of apps requesting the rights to access device data and functions beyond those needed to deliver their own functionality.
    4. The security feature in Android 11 is a long overdue crackdown on this permission abuse.
    1. Google’s novel response has been to compare each app to its peers, identifying those that seem to be asking for more than they should, and alerting developers when that’s the case. In its update today, Google says “we aim to help developers boost the trust of their users—we surface a message to developers when we think their app is asking for a permission that is likely unnecessary.”
    1. Plenty of journalists, attorneys, and activists are equally if not more threatened by so-called evil maid attacks, in which a housekeeper or other stranger has the ability to tamper with firmware during brief physical access to a computer.
    1. What would be nice is if JavaScript had a built-in way to do what I can do in Ruby with:

      > I18n.interpolate('Hi, %{name}', name: 'Fred')
      => "Hi, Fred"

      But to be fair, I18n comes from i18n library, so JS could just as easily (and I'm sure does) have a library that does the same thing.

      Update: Actually, you can do this in plain Ruby (so why do we even need I18n.interpolate?):

      main > "Hi, %{name}" % {name: 'Fred'}
      => "Hi, Fred"
      main > ? String#%
      From: string.c (C Method):
      Owner: String
      Visibility: public
      Signature: %(arg1)
      Number of lines: 9
      Format---Uses str as a format specification, and returns the result
      of applying it to arg. If the format specification contains more than
      one substitution, then arg must be an Array or Hash
      containing the values to be substituted. See Kernel::sprintf for
      details of the format string.
         "%05d" % 123                              #=> "00123"
         "%-5s: %016x" % [ "ID", self.object_id ]  #=> "ID   : 00002b054ec93168"
         "foo = %{foo}" % { :foo => 'bar' }        #=> "foo = bar"

      I guess that built-in version is fine for simple cases. You only need to use I18n.translate if you need its more advanced features like I18n.config.missing_interpolation_argument_handler.

    2. When you hear there's something called "template strings" coming to JavaScript, it's natural to assume it's a built-in template library, like Mustache. It isn't. It's mainly just string interpolation and multiline strings for JS. I think this is going to be a common misconception for a while, though.
    1. Either, plus presumably "bug-fix." The word has almost surely been coined multiple times by people who hadn't heard it before, because the utility is obvious. In some universe where English was required to always make sense, the one-word or hyphenated forms would be the most likely, since two words implies that "bug" is an adjective.
    2. It’s a “bug” and you “fix” it - so properly, in English, it’s a “bug fix” - but very often it’s shortened to “bugfix”.
    3. If a screwed up word or phrase is useful and people like it, it becomes a word. Language nazi’s hate this - but it’s true. Dictionary writers love it because it keeps them employed.
    4. The bug won’t be fixed today…and by next week, I’ll have forgotten about it - but some time in the future, before our software “goes gold” and gets shipped out to the public - we’ll search through the entire million lines of software for the word “FIXME” - which is unlikely to appear in any other context BECAUSE it’s not a real word!

      BECAUSE it’s not a real word

    1. In many ways, though, mathematicians treat the problems they are attempting to solve—problems that require highly specialized background and sophisticated thinking and technique—in much the way that non-mathematicians treat puzzles.
    1. Research tells us that for skills like the ones students need for mathematics short practices that recur frequently are far more effective than the same amount of time packed into one session.
    1. I was just expressing that, even thought I like React, I dread having to still manually handle everything, instead of just using a directive, a la Vue.JS. This is what I consider boilerplate. Hence my comment on how I could leave React for Svelte just because of that. Clearly a Svelte side-by-side code comparison shows a much cleaner code for Svelte.
    2. <script> let a = 1; let b = 2; </script> <input type="number" bind:value={a}> <input type="number" bind:value={b}> <p>{a} + {b} = {a + b}</p>
    3. I'm saying I'm ready to switch just because of the clarity of the code.
    4. Man, just because it gets rid of SO MUCH boilerplate I want to switch already.It kills me everytime I work with forms in React. So much noise for such a simple task.
    1. State management is also easier. Instead of importing hooks and using setters, you just define a property within the script tags. You then change the value by re-assigning it (not mutating the original value).
    2. But it’s impossible to argue with the value binding. You don’t have to worry about defining the value property and an onChange event for an input box in Svelte, bind:value does it all
    3. As an engineer, it’s important to explore different technologies. It’s important to identify the tools available to tackle problems. And it’s important to expand your horizons because then you can look cool on your CV.
    1. However, when you use an SD card as internal storage, Android formats the SD card in such a way that no other device can read it. Android also expects the adopted SD card to always be present, and won’t work quite right if you remove it.
    1. It's really not enough space. I have two 16 Gbyte phones, and I'm constantly deleting and restoring apps to make space, or getting the "not enough space to update" message. My other tablet with 32 Gbytes is fine.
    1. In addition, if the option, An administrator must always approve the comment, is set in Administration > Settings > Discussion, this e-mail address will receive notification that the comment is being held for moderation. Please note this is different than the address you supplied for the admin user account; the admin account e-mail address is sent an e-mail only when someone submits a comment to a post by admin.

      They're trying to make a distinction between "administrator" address and "admin" (short for administrator) account. Hmm. Maybe they should have called them different words. Anyway, this could be made less confusing.

    1. hypothes.is is an exciting project, but not a commenting system. It belongs, therefore, to a different category of software (annotation systems).
    2. As a hosting service, it has no free plan and costs as a minimum US$ 100 / month (with 80% discount for educational resp. 50% for non-profit institutions.). But you can install Discourse yourself without cost on your server. Alternatively, you can pay a one-time fee of $99 for a cloud installation with a $10/month hosting fee. With the possibility to install it on your server, Discourse is another candidate to try out.
    3. does not host the user-generated comments centrally
    4. The vision is to provide ‘a conversation layer over the entire web that works everywhere, without needing implementation by any underlying site’.
    5. But it has as an external service several disadvantages which opposed the philosophy of static websites diametrically.
    6. But with Disqus, these advantages are not valid anymore, because your blog text and its comments are hosted separately on different servers.
    7. Disqus in one central authority collecting all comments of your website visitors and users on their servers.
    8. Disqus does not allow that user can use free licenses for their comments. It is not clear who has ownership of the comments.
    1. Disqus:

      As for publishing this as an actual gem on rubygems.org...I have enough open source I'm involved in all ready (or too much, as my wife would probably say) and I'm not really interested in maintaining another gem. Are you interested in taking over this code and releasing it as a gem and being maintainer?

    2. return super(scope, &block) unless scope == :all
    1. In philosophy, empiricism is a theory that states that knowledge comes only or primarily from sensory experience.[1] It is one of several views of epistemology, along with rationalism and skepticism.
    2. Empiricism emphasizes the role of empirical evidence in the formation of ideas, rather than innate ideas or traditions.

      Office 365 For Dummies 3rd Edition

      Virtual Teams For Dummies

      Unlocking Creativity: How to Solve Any Problem and Make the Best Decisions by Shifting Creative Mindsets

      Power of An Hour: Business and Life Mastery in One Hour A Week

      How To Sell When Nobody's Buying: (And How to Sell Even More When They Are)


      Office 2019 All-in-One For Dummies

      Excel 2019 All-in-One For Dummies

      Faster Disaster Recovery: The Business Owner's Guide to Developing a Business Continuity Plan

      Train the Brave: Tame Your Fear, Take the Chance, Dare to Live Big

      Cyber Smart: Five Habits to Protect Your Family, Money, and Identity from Cyber Criminals

      Lifehacker: The Guide to Working Smarter, Faster, and Better 3rd Edition

      PAY $15 OR MORE TO ALSO UNLOCK! Value of this tier to me: .7×12+.8×17+.5×9+.7×11+.7×15+1×10+.8×15 = $66.7

      The Cybersecurity Playbook: How Every Leader and Employee Can Contribute to a Culture of Security https://www.amazon.com/Cybersecurity-Playbook-Practical-Employee-Organization/dp/1119442192/ $12/14 4.8/5 n=10 Want: 7/10

      Rituals for Work: 50 Ways to Create Engagement, Shared Purpose, and a Culture that Can Adapt to Change https://www.amazon.com/Rituals-Work-Engagement-Bottom-Up-Innovation/dp/1119530784/ $17/18 4.3/5 n=47 Want: 8/10

      Online Teaching at Its Best: Merging Instructional Design with Teaching and Learning Research https://www.amazon.com/Online-Teaching-Its-Best-Instructional/dp/1119242290/ $9/38 5/5 n=5 Want: 5/10

      Rehumanize Your Business: How Personal Videos Accelerate Sales and Improve Customer Experience https://www.amazon.com/Rehumanize-Your-Business-Accelerate-Experience/dp/1119576261/ $11/12 4.8/10 n=105 Want: 7/10

      The Busy Leader's Handbook: How To Lead People and Places That Thrive https://www.amazon.com/Busy-Leaders-Handbook-People-Places/dp/1119576644/ $15/16 4.9/10 n=26 Want: 7/10

      Noise: Living and Leading When Nobody Can Focus https://www.amazon.com/Noise-Living-Leading-Nobody-Focus/dp/1119553377/ $10/17 4.8/5 n=30 Want: 10/10

      The Year Without Pants: WordPress.com and the Future of Work https://www.amazon.com/Year-Without-Pants-WordPress-com-Future-ebook/dp/B00DVJXI4M/ $15/18 4.3/5 n=238 Want: 8/10

      Microsoft Teams For Dummies Want: 2/10

    1. Data that is sent over the network is compressed (optionally) and encrypted (always). When receiving data it must be decrypted and then (if compressed) decompressed.
    2. Syncthing uses an open and documented protocol, and likewise the security mechanisms in use are well defined and visible in the source code. Resilio Sync uses an undocumented, closed protocol with unknown security properties.
    3. Is it “syncthing”, “Syncthing” or “SyncThing”?¶ It’s Syncthing, although the command and source repository is spelled syncthing so it may be referred to in that way as well. It’s definitely not SyncThing, even though the abbreviation st is used in some circumstances and file names.
    1. I could get a lot more done in an 8-9 hour day with a PC and a desk phone than I get done now in a 9-10 hour day with a laptop /tablet / smartphone, which should allow me to be more a lot more productive but just interrupt me. I don't want the mobile flexibility to work anywhere. It sucked in management roles doing a full day then having dinner with friends and family then getting back to unfinished calls and mails. I much prefer to work later then switch off totally at home.
    1. It would be better if you asked a new question. In the worst case scenario, it would be marked as a duplicate (which still means you would probably get some sort of resolution).
    1. uses a pre-clone step to seed the project with a recent archive of the repository. This is done for several reasons: It speeds up builds because a 800 MB download only takes seconds, as opposed to a full Git clone.
    1. Internally, we are continuing to encourage any employee who needs time and space to process current events or participate in protests should they choose to take sick time so that it doesn’t impact their personal paid-time off.
    1. In systems engineering and requirements engineering, a non-functional requirement (NFR) is a requirement that specifies criteria that can be used to judge the operation of a system, rather than specific behaviors. They are contrasted with functional requirements that define specific behavior or functions

      This is a strange term because one might read "non-functional" and interpret in the sense of the word that means "does not function", when instead the intended sense is "not related to function". Seems like a somewhat unfortunate name for this concept. A less ambiguous term could have been picked instead, but I don't know what that would be.

    1. It is not customary in Rails to run the full test suite before pushing changes. The railties test suite in particular takes a long time, and takes an especially long time if the source code is mounted in /vagrant as happens in the recommended workflow with the rails-dev-box.As a compromise, test what your code obviously affects, and if the change is not in railties, run the whole test suite of the affected component. If all tests are passing, that's enough to propose your contribution.
    2. If you've found a problem in Ruby on Rails which is not a security risk, do a search on GitHub under Issues in case it has already been reported. If you are unable to find any open GitHub issues addressing the problem you found, your next step will be to open a new one.
    3. A well-formatted and descriptive commit message is very helpful to others for understanding why the change was made, so please take the time to write it.
    4. we have RuboCop rules defined to codify some of our coding conventions
    5. Rails follows a simple set of coding style conventions:
    6. That said, the distinction generally just affects which release your patch will get in to; we love feature submissions! They just won't get backported to maintenance branches.