166 Matching Annotations
  1. Sep 2023
    1. As I’d mentioned, the problem is not with the first printing, when our usual press run ranges from 7,000 to 15,000 copies, but with subsequent printings of a many of our titles. In many cases, a few years after a title’s initial publication, a three- to five-year supply can be as low as 500 copies. The cost to set up the book (called “make-ready” in the industry) is so high that the printing/binding cost per book is far more than most readers would be willing to pay. To “break even” on some of these titles, we’d have to charge $100 or more in bookstores, which would decrease sales even further. As it is, we subsidize those volumes with donations and with sales of other books.

      https://www.librarything.com/topic/286378

      LOAs first print runs are in the 7,000 - 15,000 copy range. Often after initial publication the stock for a 3-5 year supply is about 500 copies.

  2. Jun 2023
    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. 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. I just wanted to tweak Java's BufferedReader to handle custom line delimiters. Thanks to private fields I have to clone the entire class rather than simply extending it and overriding readLine().
    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. 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. The same day, Menashe licensed 56 pictures through iStockphoto– for about $1 each.

      This is interesting because I feel like the istockphoto company has gotten so many more contributors over the years that the rates have gone down drastically. I attached a website stating how much a person gets paid per photo on average which is a lot less than what the article is saying.

  3. May 2023
    1. Seeking full energy independence from Russian gas, in response to Russia's energy blackmail in #Europe and the war in #Ukraine 🇺🇦, #Lithuania 🇱🇹 has completely abandoned Russian gas

      Lithuania abandons Russian Gas

  4. Apr 2023
  5. Feb 2023
    1. Voor een kernwapenvrije wereld, te beginnen in Europa Jet van Rijswijk -  02.02.2023

      Kernwapenvrije wereld, te beginnen in Europa

  6. Jan 2023
    1. Agreements are subjected to climate agreements and not the other way around that could be 00:53:10 an option

      !- policy recommendation : make all global trade agreements subject to legally binding climate agreements, not the other way around

    1. We are living in a time of unprecedented danger, and the Doomsday Clock time reflects that reality. 90 seconds to midnight is the closest the Clock has ever been set to midnight, and it’s a decision our experts do not take lightly

      Press release. Doomsday clock changed to 90 seconds to mid-night. Largely due to Russia's invasion to Ukraine.

    1. make dev

      I am getting this error while doing make dev I have installed the required version of python, still update with the required version please.

      File "/home/ec2-user/projects/h/h/search/config.py", line 213, in _ensure_icu_plugin

      names = [x.strip() for x in conn.cat.plugins(h="component").split("\n")]

      AttributeError: 'list' object has no attribute 'split'

    1. Judge Domino is a game in which players judge if toppling a line of dominoes will succeed or fail. Players take turns adding to the line, but to score points, you must make others think that the toppling will fail. Can you baffle other players' judgment?
    1. I used vim and make for my universal IDE.

      vim and make serve well as universal IDE for most programming languages (maybe apart from C#?)

  7. Dec 2022
  8. Nov 2022
    1. Nostalgia, a sentimental longing for one's past, predicts or augments psychological wellbeing (PWB).

      Could this, in part, be behind some of the bump for slogans like "Make America Great Again" by looking back to an imagined past?


      Kelley, Nicholas J., William E. Davis, Jianning Dang, Li Liu, Tim Wildschut, and Constantine Sedikides. “Nostalgia Confers Psychological Wellbeing by Increasing Authenticity.” Journal of Experimental Social Psychology 102 (September 1, 2022): 104379. https://doi.org/10.1016/j.jesp.2022.104379.

  9. Oct 2022
    1. I'm afraid you missed the joke ;-) While you believe spaces are required on both sides of an em dash, there is no consensus on this point. For example, most (but not all) American authorities say /no/ spaces should be used. That's the joke. In writing a line about "only one way to do it", I used a device (em dash) for which at least two ways to do it (with spaces, without spaces) are commonly used, neither of which is obvious -- and deliberately picked a third way just to rub it in. This will never change ;-)
    1. Note: For keyword parameters, use @param, not @option.

      I sure was looking for @option (knowing already about @param) and assuming/expecting that (if it exists) it would totally be the right thing to use for documenting keyword parameters. So I was quite surprised to see this much-needed warning (for me and others like me who came here expecting/assuming the same thing).

    1. laudator temporis acti

      laudator temporis acti translates as "a praiser of times past"

      Calls to mind:

      Multa senem circumveniunt incommoda, vel quod quaerit et inventis miser abstinet ac timet uti, vel quod res omnis timide gelideque ministrat, dilator, spe longus, iners avidusque futuri, difficilis, querulus, laudator temporis acti se puero, castigator censorque minorum. —Horace's Ars Poetica (line 173)

      Many ills encompass an old man, whether because he seeks gain, and then miserably holds aloof from his store and fears to use it, or because, in all that he does, he lacks fire and courage, is dilatory and slow to form hopes, is sluggish and greedy of a longer life, peevish, surly, given to praising the days he spent as a boy, and to reproving and condemning the young. (tr. H. Rushton Fairclough)

      In Horace's version he's talking about a old curmudgeon and the phrase often has a pejorative tinge. It generally is used to mean someone who defends earlier periods of history ("the good old days") usually prior to their own lives and which they haven't directly experienced, as better than the present.


      Compare this with the sentiment behind Donald J. Trump's "Make America Great Again". - https://en.wikipedia.org/wiki/Make_America_Great_Again

      The end of the passage also has historical precedent and hints of "You kids get off my lawn!" https://en.wikipedia.org/wiki/You_kids_get_off_my_lawn!

  10. Sep 2022
    1. We decided to follow their rules to stay in their affiliate program, because that's how we are able to actually run the site (without any ads).And if you look on the issue from the usability point of view, not having their price history isn't that big of a deal, unless the game is sold only on Amazon - and most games aren't - so you always have other stores to compare the price to.
    1. It is important in your summary that you make connections between the key ideas in the article.

      Yes I think this is how to Activate learning. You have just read something and just marking the texts is not enough. Put something like this reminds me of when I use to teach and try to connect a character to someone real.

    1. I'm not sure if there's a reason why additionalProperties only looks at the sibling-level when checking allowed properties but IMHO this should be changed.
    2. It's unfortunate that additionalProperties only takes the immediate, sibling-level properties into account
    3. additionalProperties applies to all properties that are not accounted-for by properties or patternProperties in the immediate schema.

      annotation meta: may need new tag: applies to siblings only or applies to same level only

    4. additionalProperties here applies to all properties, because there is no sibling-level properties entry - the one inside allOf does not count.
    1. Oh, my goodness. It's kind of scary looking, actually.

      This reminded me of a time when I was on vacation to Iraq in the city of Karbala. There was a blue car on the street, without a driver in the car. The police arrived with dogs that looked very scary. The dogs circled around the car, and they sniffed out explosives. The police then ordered the people to empty the street so everyone can be safe.

  11. Jul 2022
  12. Jun 2022
    1. There is one more layer we can add, though

      This four layer processing thing is painful and I suspect few are going to spend this much time on so many potential ideas.

      Ahren's framing of fleeting notes and permanent notes is quicker and easier.

      Also missing is any sort of inherent link to any other ideas or even to a broader index to make it somewhat easier to find/use. Simply filing it into a folder, even an "important" one seems fairly useless and make-work.

    Tags

    Annotators

  13. Apr 2022
  14. Jan 2022
  15. Nov 2021
    1. Honestly, I don't know. Strictly speaking it's different to a window being opened at a specific size (I can see the difference). I don't know whether that difference is material. Seeing as these are tests, I'd like to remove as many unknowns as possible. If someone can tell me that it makes no difference then I'd be happy.
  16. Sep 2021
    1. In this article, we have curated a list of various monetization strategies and how to implement them to generate massive revenue through an app.
    1. Update API usage of the view helpers by changing javascript_packs_with_chunks_tag and stylesheet_packs_with_chunks_tag to javascript_pack_tag and stylesheet_pack_tag. Ensure that your layouts and views will only have at most one call to javascript_pack_tag or stylesheet_pack_tag. You can now pass multiple bundles to these view helper methods.

      Good move. Rather than having 2 different methods, and requiring people to "go out of their way" to "opt in" to using chunks by using the longer-named javascript_packs_with_chunks_tag, they changed it to just use chunks by default, out of the box.

      Now they don't need 2 similar but separate methods that do nearly the same, which makes things simpler and easier to understand (no longer have to stop and ask oneself, which one should I use? what's the difference?).

      You can't get it "wrong" now because there's only one option.

      And by switching that method to use the shorter name, it makes it clearer that that is the usual/common/recommended way to go.

  17. Aug 2021
    1. The Simplified Spelling Board of the early 1900s in the United States made gauge one of its targets in the early 1920s, urging the replacing of au with a to yield gage. From Simplified Spelling Board, Handbook of Simplified Spelling (1920): Principles Adopted Its [the Board's] recommendations, accordingly, have been based on the following principles : 1) When current usage offers a choice of spellings, to adopt the shortest and simplest. EXAMPLES : blest, not blessed ; catalog, not catalogue; center, not centre; check, not cheque or checque; gage, not gauge; gram, not gramme; honor, not honour; license, not licence; maneuver, not manoeuvre; mold, not mould; plow, not plough; quartet, not quartette; rime, not rhyme; tho, not though; traveler, not traveller.
    1. The idea here is to share notes, ideas, directions, stories, experiences with explaining why we write. And we want to comment on the author's purposes. Empathy with purpose and audience might also be helpful. In other words, how might we share this empathic point of view: explaining why we write.

      Create more page notes if you want to add to or correct the general instructions in this note. Write your own dang instructions.

    1. How to Make a React Progressive Web Application (PWA)Eugene VolkovFrontend DeveloperKate KikidzhanCloud & SaaS Product ResearcherReactJavaScriptPWAHomeBlogDevelopmentHow to Make a React Progressive Web Application (PWA)Oct 7, 202021 min readThe early bird catches the worm. But the situation was not so favourable back in 2007 when Steve Jobs proposed the idea of web applications to be the model for iPhone Apps. Back then, the tech community was not yet ready to bring a huge interest in web apps. But since 2015, tech giants like Google and Microsoft have been preparing the tech ground for progressive web apps (or simply – PWAs). And now, PWA became a must-have technology for both giant corporations and small startups. Twitter, Starbucks, Google, and Aliexpress use progressive web apps to boost their online presence. At Codica, we have been helping our customers to develop their businesses by building robust PWA for our customers since 2015. That is why we have created this comprehensive guide on how to create a PWA with React. Also, you will see the most prominent progressive web app examples.

      The early bird catches the worm. But the situation was not so favourable back in 2007 when Steve Jobs proposed the idea of web applications to be the model for iPhone Apps. Back then, the tech community was not yet ready to bring a huge interest in web apps.

      But since 2015, tech giants like Google and Microsoft have been preparing the tech ground for progressive web apps (or simply – PWAs). And now, PWA became a must-have technology for both giant corporations and small startups. Twitter, Starbucks, Google, and Aliexpress use progressive web apps to boost their online presence.

      At Codica, we have been helping our customers to develop their businesses by building robust PWA for our customers since 2015. That is why we have created this comprehensive guide on how to create a PWA with React. Also, you will see the most prominent progressive web app examples.

  18. Jul 2021
  19. Jun 2021
  20. May 2021
    1. In this blog, we will see how one can build a fitness app that can be highly accepted by its users and the revenue model. Let’s have a look!
    1. Because constants in Ruby aren't meant to be changed, Ruby discourages you from assigning to them in parts of code which might get executed more than once, such as inside methods.
    1. The implicit dependencies between different versions of different services were not expressed anywhere, which led to various problems in building, continuous integration, and, notably, repeatable builds.
  21. Apr 2021
    1. John Company: Second Edition is a dramatic reimagining of the first edition that took over two years of extensive design and production work. 
  22. Mar 2021
    1. There are myriads of platformers around, it's an oversaturated market, and just like industrial designer Karim Rashid said about there being no excuse by this point to make an uncomfortable chair, there's no excuse by this point to make a boring patformer.
    1. Fexeel ba kër gi bañ ñàkk alkol.

      Veille à ce qu'il ne manque pas d'alcool à la maison.

      fexe+el (fexe) v. -- search/seek by all means.

      ba -- the (?).

      kër gi -- house; family.

      gi -- the (indicates nearness).

      bañ v. -- refuse, resist, refuse to; to hate; verb marking the negation in subordinate clauses.

      ñàkk v. / ñàkk bi -- vaccinate / vaccine (not sure exactly how this fits in the sentence if it's even the right translation -- perhaps it has to do with surgical alcohol rather than drinking alcohol).

      alkol ji -- (French) surgical alcohol. (I'm certain this is also used for the type of alcohol you drink -- but sangara is probably the most used term).

      https://www.youtube.com/watch?v=SsUjvAItysA

  23. Feb 2021
    1. Keep in mind that third party code with references to other files also processed by the asset Pipeline (images, stylesheets, etc.), will need to be rewritten to use helpers like asset_path.
    1. Trust me, I thought a lot about #validate and its semantics, and I am gonna make it even more "SRP" by making Form#errors and #valid? semi-public. All that happens via #validate reducing the possible wrong usage for users.
    1. Course content headings should stand out in terms of font and position relative to other wording and outline. Use of bullets, italics and balancing does not enhance readability. Also, consistency of the columns and layout for the table are off, causing inconsistency and confusion due to improper alignments and proportion lacking overall for the contents table and outline. Topic headers are of the same color, value, shape and form for calling out new and important categories, where they should have different shape and form as well as alignment. Additional emphasis could be added to grading section to call out evaluative criteria for this are. Movement from section to section should be consistent with formatting and shapes as well as alignments that guide reader and students strategically. Hyperlinks could be properly formatted to allow for seamless movement through syllabus allowing for better connectivity and fluidity. More strategic use of images that guide learner in direction of necessary materials and reading texts associated with the class, which also allow for a variety and contrast between themes and required materials.

  24. Jan 2021
    1. I've reproduced, in a very simple way, what I would like it to do: https://svelte.dev/repl/2b0b7837e3ba44b5aba8d7e774094bb4?version=3.19.1

      This is the same URL as the original example given in issue description.

      I'm guessing what happened is they started with that one, made some changes, and then I think they must have forgot to save their modified REPL (which would have generated a new, unique URL).

  25. Dec 2020
    1. The only solution that I can see is to ensure that each user gets their own set of stores for each server-rendered page. We can achieve this with the context API, and expose the stores like so: <script> import { stores } from '@sapper/app'; const { page, preloading, session } = stores(); </script> Calling stores() outside component initialisation would be an error.

      Good solution.

    1. This would be cumbersome, and would encourage developers to populate stores from inside components, which makes accidental data leakage significantly more likely.
    2. which makes it much harder to accidentally keep logged-in state visible after a client-side logout
  26. Nov 2020
    1. But seriously, give snowpack a read to understand the benefits of leaning on standard esm imports, allowing you to avoid a bundling process entirely.
    2. I don't need to support non-esm browsers for most projects and I really like the idea of a super light build process. By removing the complexity of configuration and the overhead of bundling, svelvet makes the development process an optimal experience for myself and hopefully others
    1. There was a major refactoring in the resolver (https://github.com/webpack/enhanced-resolve). This means the resolving option were changed too. Mostly simplification and changes that make it more unlikely to configure it incorrectly.
  27. Oct 2020
    1. Looking at all those bearing, heading, orientation, navigation, position, direction, etc. I think we have a bigger problem here. Someone has decided how to use tag (e.g. orientation is about page orientation), but there are 100 other cases. Imho, to disallow misusing there should be no "heading", but rather "html-heading", "gps-heading", "whatelse-heading", which make mistakes impossible. So yes, "heading" should go.
    1. In a large code base, this will result in moving imports randomly around until stuff just happens to work. Which is often only temporary, as a small refactoring or change in import statements in the future can subtly adjust the module loading order, reintroducing the problem.
    1. Looks like the problem is that debounce defaults to waiting for 0 ms ... which is completely useless!

      It would be (and is) way to easy to omit the 2nd parameter to https://lodash.com/docs/4.17.15#debounce.

      Why is that an optional param with a default value?? It should be required!

      There must be some application where a delay of 0 is useless. https://www.geeksforgeeks.org/lodash-_-debounce-method/ alludes to / implies there may be a use:

      When the wait time is 0 and the leading option is false, then the func call is deferred until to the next tick.

      But I don't know what that use case is. For the use case / application of debouncing user input (where each character of input is delayed by at least 10 ms -- probably > 100 ms -- a delay of 0 seems utterly useless.

    2. It looks like you accidentally passed resolve() (immediately invoking the function) directly to setTimeout rather than passing a function to invoke it. So it was being resolved immediately instead of after a 1000 ms delay as intended.

      I guess this is the "immediately invoked function" problem.

      Not to be confused with: immediately invoked function expression. (Since it is a regular named function and not a function expression.)

    3. You should not create a new debounce function on every render with: return new Promise(resolve => { debounce(() => resolve(this.getIsNameUnique(name)), 2000); }); Instead you should just wrap your whole function isNameUnique with the debounce (see my sandbox). By creating a new debounce function on every hit, it cannot 'remember' that is was called or that is will be called again. This will prevent the debouncing.
    1. _.debounce creates a function that debounces the function that's passed into it. What your s.search function is doing is calling _.debounce all over again every time s.search is called. This creates a whole new function every time, so there's nothing to debounce.
    2. I run s.search() by typing into an input box, and if I type gibberish very quickly, the console prints out "making search request" on every key press, so many times per second -- indicating that it hasn't been debounced at all.
    3. they're not invoking the function that _.debounce returns
    1. I'm okay with an overall design that allows people to plugin the parts they need in order to be able to generically support a compile-to-javascript language, but to bake in support for one singular solution because its popular is simply bad engineering.
    2. Of all the compile-to-languages, the one that strikes me as having the least merit is JSX. It's basically a ton of added complexity for the sake of what boils down to syntax. There are no real gains in terms of language semantics in JSX.
    3. hyperscript is more concise because it's just a function call and doesn't require a closing tag. Using it will greatly simplify your tooling chain.

      I suppose this is also an argument that Python tries to make? That other languages have this con:

      • cons: closing tags make it more verbose / increase duplication and that Python is simpler / more concise because it uses indentation instead of closing delimiters like end or } ?
    4. This is the problem with baking in support for frameworks with special cases in the codebase. You can never support all the frameworks. :-(
    1. When using React hooks there is no concept of onMount because the idea of only running some code on mount leads to writing non-resilient components, components that do one thing when they mount, and then don’t take prop changes into account.
  28. Sep 2020
    1. setContext / getContext can only be used once at component init, so how do you share your API result through context? Related: how would you share those API results if the call was made outside of a Svelte component, where setContext would be even more out of the question (and the API call would arguably be better located, for separation of concerns matters)? Well, put a store in your context.
    1. I assume that soon developers will publish more components for svelte, and any possible class conflict is problematic. Yeah, it's rare case, but it is.
    2. Just throwing in <div class="{$$props.class || ''} otherChildClass"></div> seems the easiest, and it'll avoid undefined classes. I feel like many aren't noticing the undefined values getting inserted in their classes.
    1. I totally get not wanting to extend the syntax. I tried doing these things and in practice it was not easy or pretty. Actions provide a much cleaner and easier way to accomplish a certain set of functionality that would be much more difficult without it.
    2. Actions add additional functionality to elements within your component's template that may be difficult to add with other mechanisms. Examples of functionality which actions makes trivial to attach are:
    1. I think that we should be willing (taking the risk) to make bold changes, as long as they fit in the direction we see the community going in the long term (with Material-UI empowering it).