19,785 Matching Annotations
  1. Feb 2021
    1. The thought of an illustrated book will, no doubt, make the purists recoil in horror - that's their loss. Sometimes a couple of drawings are far more illuminating than pages full of discrete mathematics, and this is what we have here.
    1. Again this is my personal opinion, but this a rough point to start as a beginner.

      .

    2. {'good': ['API objects', 'structured data', 'data sources', 'filtering and operations'],'improvement areas for v2': ['AWS deployment images too small', 'not setting up the data sources in aws that it talked up','not enough numpy','no deep learning yo','drop or shorten up the kitchen analogy, we get what distributed computing is'],'realization: "out of the box functionality won't be much help for real life... have to get weird w delayed objects"}
    3. Dask is an amazing tool, and this book is fine for a introduction of dask data structures but little else. This book follows a rather unfortunate trend -- try to both cover the basic elements of 'data science' as well as serve as a tutorial to a software platform.
    1. Manning: I love the cover art. Seriously! It is very apropos and beautiful (for both this Haskell book and the recent Manning F# book).
    1. GMG end and restart their bundles whenever they want without any notice
    2. some bundle sites are constantly changing end dates of their bundles (usually to scam the devs and not pay them for keys, see GoGo/Otakubundles)
    3. DIG might be selling keys without developers permission, so the keys might be revoked in the future

      Why do you need developer's permission to (re)sell copies of their game (Steam keys)? Maybe I don't understand well enough how keys get obtained in the first place in order to get (re)sold.

      I just don't understand how the system would allow something like this to even happen (why wouldn't it only allow keys to be acquired in an authorized way to begin with, to avoid any problems?).

      And I can't understand how developers would be allowed to revoke keys, especially from users who (to the best of their knowledge) were buying legit keys and not "stolen" keys or whatever.

    1. Report: This price didn't exist on the store This price did show on the store but the game could not be bought This was a very short price made by a mistake (glitch)
    1. Hardly anybody seems to have played this game and that's a shame because it's a solid collectathon platformer.
    1. Please note that I bought this game for $1.49 on sale, so I won't uphold $15 price that nobody wants to pay for it.
    1. Remember the helpful old man in the original Zelda for NES: "It's dangerous to go alone, take this [sword]" ? Well, TMF's tagline would be: "It's dangerous to go alone. Off you go, alone. Be careful, I guess."
    1. Using details/summary for dropdown nav menu without requiring any JavaScript

    2. in this post, we’ll look at how to use this as the basis for an accessible dropdown navigation element that can be opened equally well by keyboard users tabbing through the page, and mouse users hovering on the nav item
    3. The HTML details element comes with a surprise – in most browsers it has the ability to hide and show content with no additional JavaScript or CSS whatsoever. Here’s a little bit about how it works. details has with a child called summary, and when a page first loads, the summary is the only part of the element that’s visible, along with a triangle that browsers display by default, to suggest the expandable nature of the content. Interacting with the summary element, by clicking or using the keyboard, will make the rest of the details element visible and add an open attribute to the details element itself.
    4. There’s an important wrinkle when it comes to animating the menu away. When the user closes the menu, it will always disappear instantly, because the open attribute is, by default, removed immediately when the user clicks that summary element. In order to gracefully animate your menu out when it closes, we need some JavaScript. Here we can listen for clicks on the details element, and call preventDefault() on the click event, then use setTimeout() to determine exactly when that open attribute should be removed. This gives us time to trigger the closing animation with CSS. This click event listener will also fire when a keyboard user hits space or enter while the element is focused, which means no further listeners are needed for keyboard actions!
    1. Have you ever been emailed something from a company and tried to reply only to be frustrated with a failed-to-send message response? A no-reply email frustrates your customers.Instead, use a dedicated email to send out your messages and to keep business emails in a central location so you can answer customer concerns quickly and decisively. This level of customer service will help develop your reputation as a company that cares about its customers.
    2. The blog A Life Of Productivity uses double opt-ins to make sure that people signing up for the email newsletter really want to read it. If a site visitor was somehow subscribed by accident, the subscription won’t go through unless they click the verification button sent to their email address.<img class="aligncenter size-full wp-image-32479" src="https://www.convinceandconvert.com/wp-content/uploads/2016/05/A-Life-of-Productivity.jpg" alt="A Life of Productivity" width="724" height="549" />
    1. We got this email from Parabo, the print shop app, and smiled. Instead of the very standard “Please confirm subscription” header text, we were greeted with a funny, whimsical hello that’s totally in their brand voice. “We really want you to want us” is a clever way to break up the usual mundane greeting, and, guess what? It totally reaffirmed why we thought we wanted to sign up for their emails in the first place.
    2. A button that simply said “Confirm” wouldn’t necessarily make it immediately clear about what the reader’s action means.
    1. A good trick to remember on to vs. onto is to mentally say “up” before on in a sentence. If it still makes sense, then onto is probably the correct choice.
    1. NO support whatsoever will be given for the moment unless I gave you the program personally. This is because all of this is work in progress and I can't code while constantly writing documentation and answering questions.
    1. From having the DLC only items be both constantly in your face and the kind of things you should really have access to as a base (medium sized building, most of the decorations etc) to the maps layout being seemingly purposefully made to be agravating, everytme I tried to play and like this game I got spit in the face by the devs
    1. you'll want to update Devise's generated views to remove references to passwords, since you don't need them any more

      Doesn't this contradict the statement

      This strategy plays well with most other Devise strategies

      (which includes password strategies)?


      One thing that wasn't clear from their instructions was whether magic links could be used as an option in addition to regular password log-ins. On the one hand they say:

      This strategy plays well with most other Devise strategies (see notes on other Devise strategies).

      but on the other hand they say:

      you'll want to update Devise's generated views to remove references to passwords, since you don't need them any more

    1. An intent filter is an expression in an app's manifest file that specifies the type of intents that the component would like to receive. For instance, by declaring an intent filter for an activity, you make it possible for other apps to directly start your activity with a certain kind of intent. Likewise, if you do not declare any intent filters for an activity, then it can be started only with an explicit intent.
    2. Using an implicit intent to start a service is a security hazard because you can't be certain what service will respond to the intent, and the user can't see which service starts. Beginning with Android 5.0 (API level 21), the system throws an exception if you call bindService() with an implicit intent.
    3. Implicit intents do not name a specific component, but instead declare a general action to perform, which allows a component from another app to handle it. For example, if you want to show the user a location on a map, you can use an implicit intent to request that another capable app show a specified location on a map.
    4. Explicit intents specify which application will satisfy the intent, by supplying either the target app's package name or a fully-qualified component class name. You'll typically use an explicit intent to start a component in your own app, because you know the class name of the activity or service you want to start.
    1. Universal Links allow you to register a series of domains that are allowed to interact with an installed application. If the application is not installed, the universal link is opened with Safari, allowing you to inform the user of the existence of an application or whatever is necessary.
    1. These two mistakes, especially the second one, plant worries in your customers mind before they’ve even had time to think of them.
    2. Stop warning people – no contract, no obligations, cancel anytime – companies can’t resist saying this on every pricing page but by using negative words they’re just putting ideas into people’s heads.
    3. Great pricing plan names that illustrate the type of plan you’re about to choose – from simple “hammering” for quick storage to the full blown “crane” offering unlimited storage.
    1. The goal of the header copy is to say just enough to get the user to convert without getting in their way. Appcues says all they need to in one concise and straightforward sentence.
    1. A plans and pricing comparison page ... without the prices?!

    1. Historical LowSteam on 2020-05-100% off$0.00

      If you zoom in on the timeline, it looks like they accidentally set price to $0.00 (probably meant to set discount to 0 instead?) and then corrected it.

      17:16: 0% off of $0.00 17:23: 0% off of $19.99

      Having this mistake/outlier shown as the historical low is misleading and confusing and incorrect, and should be corrected.

    1. There's no such a thing, more like beautiful interface trying to hide that there's no actual gameplay.

      hiding __?

    2. Yes, you do face difficult choices (moral) but you don't care about it. All you care are the reputation bars. So... Let's kill this guy, who cares if he is innocent, but this faction needs it or I'm dead. Sounds great on paper but to be honest... you just sit there and do whatever for these reputation bars. If you won't, then you lose
    3. The press will tell you that "the concept" is great but the execution is bad. What should I tell you? The experience is shallow. The game is mediocre. But listen carefully, when a game is mediocre and can't even make you feel something then it's the worst kind of gaming. I will give it a 4 out of 10. You know, if this was a test in a school then this game should be marked D (someone answered a few questions, but overall missed the point). I understand that many people care about the "concept" of this game, but why if the experience is just... not here. I'm talking about the experience becaus We. The Revolution tried to be an actual experience. And it fails so badly.
    4. the gameplay is meaningless and the devs just missed the point.
    5. The filthy casuals write positive reviews on steam and it's clear that true gamers won't even try to review such a shallow game.

      reviews/ratings because only those already inclined to like it (or who have been swayed by the already positive reviews) will bother buying it and (therefore) bother reviewing it, hence amplifying the positive ratings

    6. I'm grieving over the concept which was wasted. That's the feeling you get.
    1. However, why some questions for the defendant make the jury feel that way or the other? No explanation is given. You can ask a defendant where they got the crime instrument and that sometimes makes the jury more likely to acquit them and sometimes more likely to behead them. There's no real reasoning or feedback given behind this and it feels, again, forced and arbitrary.
    2. The second mechanic involved in the judgment process is the opinion of the jury. If you want to avoid reputationsand faction relations penalties, you have to deliver verdicts that the jury agrees with. That is extremely understandable.
    1. Choose from multiple unique paksets which offer different graphics and gameplay. Each pakset has different objects, buying prices, maintenance costs, themes and a whole unique gameplay. Every pakset is a new game.
    1. Transport Tycoon is easily one of the best Tycoon games, this variant offers indepth control over your logistic networks and zero breakdowns but with loads of new tools to get to grips with you will need to search up a guide.The other variant, OpenTTD, wants to remain more like the original. its not as precise in its logistics but much simpler to pick up and play.Both are multiplayerBoth are freeIf Simutrans feels abit obtuse, try OTTDIf OTTD feels too simple, try Simutrans
    1. As of today, you can Wishlist OpenTTD on SteamE. Historically, OpenTTD always had a single home from where we distributed the game. We used to be hosted on SourceForge (you know you are old, if you remember that being a thing :D), and slowly moved towards our own self-created distribution methods. These days, we mostly distribute our game via our website. But times are changing, and so is our hair. Over the last few months, we have silently been working to become a bit more visible in the world. Don’t worry, not for reasons you might think: OpenTTD has as many active users as it had in 2007. But more because we no longer think it is the right approach to only distribute via our own website.
    1. As of today, you can Wishlist OpenTTD on SteamE. Historically, OpenTTD always had a single home from where we distributed the game. We used to be hosted on SourceForge (you know you are old, if you remember that being a thing :D), and slowly moved towards our own self-created distribution methods. These days, we mostly distribute our game via our website. But times are changing, and so is our hair. Over the last few months, we have silently been working to become a bit more visible in the world. Don’t worry, not for reasons you might think: OpenTTD has as many active users as it had in 2007. But more because we no longer think it is the right approach to only distribute via our own website. This became painfully apparent when we noticed other people post OpenTTD on some stores. They are not always updated with new releases, sometimes even slacking behind a few years. And maybe more important to us: we can not guarantee that the uploaded version is unmodified and is the version as we intended. So, instead of fighting it, why not turn around and join them! Why not release our own, verified, builds on those stores! And this is exactly what we have been working on lately. And when I say “we”, a bit ironic to me, I mean the two developers that are around longest (myself and orudge) ;) A while back orudge added OpenTTD to the Microsoft Store. And today, I am happy to announce we will be on SteamE too! Well, we are on Steam, but we haven’t released anything there yet (sorry that I got your hopes up, just to squash them right after :( ). This is partially because of how Steam works, but also because we know we can bring a better experience for Steam with our upcoming release. That brings me to the most exciting news: if everything goes as planned, we will release OpenTTD 1.11 on Steam on the first of April, 2021! And that is not even an April fools’ joke! You can already Wishlist OpenTTD today .. and till we release on Steam, you can find our game via our website ;)
    1. 100vw is 100% of the viewport width not accounting for scrollbars (unless the root element has anything other than overflow: auto set, but auto is the default value). Thus, when the page content overflows the viewport vertically, the browser renders the vertical scroll bar, which reduces the visible viewport area by a few pixels. But the 100vw value doesn't update to account for this, so the selected div retains the same width as before the vertical scrollbar appeared. This results in the horizontal scroll bar rendering.
    1. Now, however, you set width:100vw and that is going to be (in this case) 100% wide (viewport wide) + the vertical scrollbar width. That’s too wide. That induces the HORIZONTAL scrollbar.
    2. They are a nice idea, but in practice
    1. Tired of games where there are tips and tutorials of all kinds and you can finish them without much difficulty?
    1. (The forms !=, /= or <> are generally used in programming languages where ease of typing and use of ASCII text is preferred.) x ≈ y means x is approximately equal to y. This may also be written ≃, ≅, ~, ♎ (Libra Symbol), or ≒. G ≈ H means that group G is isomorphic (structurally identical) to group H.

      what does that have to do with this game?

    1. There is an evil genius lurking around in this software, playing withyour emotions and your work. This monster wants to sell its product by any means,even if it means shutting down your work at a crucial moment so that you would run to buy the next version. Update this and update that and buy! buy! buy!For your own wellbeing, don't buy it.
    2. I bought this software mainly for the multiple camera capture. I upgraded to the Pinnacle Studio 24 Ultimate.The Ultimate version still restricts how many cameras can be added.To add more cameras requires purchasing another upgrade.Their 'Ultimate' version isn't the ultimate if they are still holding back features.
    1. Unlike naming children, coding involves naming things on a daily basis. When you write code, naming things isn’t just hard, it’s a relentless demand for creativity. Fortunately, programmers are creative people.
    2. We could of course refactor our code to rename things any time we like, but we don’t do this enough in practice
    3. If we renamed things more often, then it probably wouldn’t be so hard to name them in the first place.
    4. We also find it hard to agree on what good names and bad names look like, which makes it hard to know when renaming improves a name.
    5. violates our expectation that hard things should be technical
    6. This is funny because it’s unexpected. Cache invalidation sounds like a hard thing, while naming sounds more straightforward. The joke works because it violates our expectation that hard things should be technical. It’s also funny because it’s true.
    7. First of all, we want names to exhibit truth and beauty: to be the right names, and to make our code clean and beautiful. At least, this is what we want to think about our code, but naming’s importance is far more practical.
    8. Naming is communication
    9. Scalability is the problem you want to have, and sooner rather than later, but maintainability is the problem you’re definitely going to have, sooner or later.
    10. ‘Programs are meant to be read by humans and only incidentally for computers to execute.’
    11. Naming matters for both idealogical and practical reasons.
    12. Naming is just one part of the micro-design activity that we call programming. If design weren’t hard, we wouldn’t find good design so satisfying.
    13. Anyone who has ever tried to name a child knows that naming is hard. Naming things in code is harder. It’s bad enough that you have to commit to a name that someone isn’t going to like. You also have to be able to live with it.
    14. In principle, the naming things in code need only be temporary, but names in code stick just like nicknames at school.
    1. It's difficult because it's a case-by-case basis - there is no one right answer so it falls into subjective arguments.
    2. Space: Suppose we had infinite memory, then cache all the data; but we don't so we have to decide what to cache that is meaningful to have the cache implemented (is a ??K cache size enough for your use case? Should you add more?) - It's the balance with the resources available.
    3. Time: Suppose all your data was immutable, then cache all the data indefinitely. But this isn't always to case so you have to figure out what works for the given scenario (A person's mailing address doesn't change often, but their GPS position does).
    4. The underlying data might get changed by another process and then your process that uses the cache will be working with incorrect data
    5. You have to guess when the data is not likely to be needed in memory. It can't be too short that the cache is useless, and too long that you'll get a memory leak.
    1. One reason Turbolinks sites seem faster than traditional web apps is because of its cache. However, the cache can be a source of great frustration. Many of the edge cases we're going to discuss involve the cache in some way.
    2. Now let me ask you, do you write JS for a single page application differently from a "traditional" web application? I sure hope you do! In a "traditional" application, you can get away with being sloppy because every time the user navigates to a new page, their browser destroys the DOM and the JavaScript context. SPAs, though, require a more thoughtful approach.
    3. where's the code that unloads the table-sorter plugin when the page unloads? There isn't any. There didn't need to be back in the day because the browser handled the cleanup. However, in a single-page application like Turbolinks, the browser doesn't handle it. You, the developer, have to manage initialization and cleanup of your JavaScript behaviors.
    4. When people try to port traditional web apps to Turbolinks, they often run into problems because their JS never cleans up after itself.
    5. All Turbolinks-friendly JavaScript needs to: Initialize itself when a page is displayed Clean up after itself before Turbolinks navigates to a new page.
    6. For new projects, I would recommend using Webpack, along with perhaps a lightweight framework like Stimulus.
    7. Turbolinks is a Single-Page Application Turbolinks doesn't just give you some of the benefits of a single-page app. Turbolinks is a single page app. Think about it: When someone visits your site, you serve them some HTML and Javascript. The JavaScript takes over and manages all subsequent changes to the DOM. If that's not a single-page app, I don't know what is.
    8. Well, I'm glad they did, because Turbolinks is a much better piece of software than jquery-pjax ever was. It's actively maintained and doesn't require jQuery at all! So we're one step closer to our dream of ditching $.
    9. Now if you think about it, PJAX sounds a lot like Turbolinks. They both use JS to fetch server-rendered HTML and put it into the DOM. They both do caching and manage the forward and back buttons. It's almost as if the Rails team took a technique developed elsewhere and just rebranded it.
    10. In 2025 we plan to

      Surely this is a typo and should have said 2020? Nobody would make such a specific tech plan for 5.5 years in the future ... would they?

    11. we plan to migrate to Angular 1, and we'll finish out the decade on React

      Wrong direction: I'd recommend migrate from Angular to React.

    12. The only problem is that our PJAX library is no longer maintained and was preventing us from updating jQuery (ugh). So it had to go.

      https://github.com/MoOx/pjax doesn't say it's no longer maintained (though hasn't been updated in 2 years), and does say that it doesn't use jQuery. Oh well.

    13. There's an approach we've been using for years that lets us have our cake and eat it too. It's called PJAX, and its big idea is that you can get SPA-like speed without all the Javascript. When a user clicks a link, the PJAX library intercepts it, fetches the page and updates the DOM with the new HTML.
    14. Our app is mostly about displaying pages of static information. We crunch a lot of data to generate a single error report page.
    15. Honeybadger isn't a single page app, and it probably won't ever be. SPAs just don't make sense for our technical requirements.
    1. So the hard and unsolvable problem becomes: how up-to-date do you really need to be?
    2. After considering the value we place, and the tradeoffs we make, when it comes to knowing anything of significance, I think it becomes much easier to understand why cache invalidation is one of the hard problems in computer science

      the crux of the problem is: trade-offs

    3. why a company like Facebook invests so much research and engineering into the network performance of things as seemingly trivial as notifications.
    4. the 2 hardest problems in computer science are essentially the 2 hardest problems of life in general, as far as humans and information are concerned.
    5. The non-determinism is why cache invalidation — and that other hard problem, naming things — are uniquely and intractably hard problems in computer science. Computers can perfectly solve deterministic problems. But they can’t predict when to invalidate a cache because, ultimately, we, the humans who design and build computational processes, can’t agree on when a cache needs to be invalidated.
    6. I like the answers already given, but I think they both could use an even more top-level, generalized explanation.
    7. Cache invalidation is hard because: Everything in life we want to know, changes.Those changes are non-deterministic.
    8. you began by first finding out if your crush was already in a relationship. If so, you then did what you could in your power to have the most most up-to-date information on their relationship status. The downside of outdated data is self-evident: you want to move in at the first sign of the current relationship dissolving.
    9. Sometimes humorously extended as “cache invalidation, naming things, and off-by-one errors.”
    1. There’s only one hard thing in Computer Science: human communication. The most complex part of cache invalidation is figuring out what the heck people mean with the word cache. Once you get that sorted out, the rest is not that complicated; the tools are out there, and they’re pretty good.
    2. Cache and caching are some of the most ambiguous words in the IT world, and that’s because we can have multiple types of caching working in parallel and affecting content independently.
    1. Instead of trying to educate everyone on the complexities of copyright law, we’d rather make our intentions clear with this simple statement:
    2. I think you want a symbol with a circle around it, like the circle around the C in ©. That way the association with the copyright symbol is clear.
    3. But the circle on its own doesn’t seem to be available as a nonspacing diacritic in Unicode. Bugger.
    4. Creating more legally binding licenses and contracts just perpetuates the problem of law – a.k.a. state force – intruding where it doesn’t belong.
    5. That ♡copyheart isn’t a legally binding license is not a bug – it’s a feature!
    6. We really don’t think laws and “imaginary property” have any place
    1. This is not a game.It's just a thing.It's nothing to do with cash.Luckily, it's free.Don't pay a dime in this.it's not a game.It's just... more.It's just more.Not in a good way.Nor in a bad way.Sometimes more is just more.This is more. More snore.Is it a good snooze?You decide.I recommend you decide for yourself.After you give it a try.It's free.A free what though?This is not a game.
    1. please, for the love of god do NOT use Mint as a source of inspiration for a derivative distro. If you like Cinnamon or Mate, fine, but holy CHRIST do not let your infrastructure get as criminally sloppy as Mint's. No unholy mixing of Debian and Ubuntu debs into some kind of Frankenbuntu, no namespace collisions, no ... well, no being Mint in general, please!Ideally, I really, really hope you'll continue to support Ubuntu as a primary platform, regardless of what you do with Pop!_OS. But hooboy, do not turn into another Mint, please.
    2. Everyone here wears many hats

      links to image of someone literally wearing many hats

    3. We're small, but we're efficient. We can do with the number of people we have what would take twice the workforce of other companies. Everyone here wears many hats, and that allows us to cover a lot of ground without needing as many people.
    4. when it comes to personal machines, I expect them to just work so I can work.
    5. Not to mention 80% of our sales are laptops and desktops running, you guessed it, a Linux desktop. So, unlike Red Hat and Canonical, we live or die based on how good that experience is.
    6. If it was remotely possible to get Davinci Resolve running that would be incredible (and bring a lot of video people I think)
    7. We do know what our customers ask us for: powerful desktops and laptops that work with them in their creative endeavors. And we know that Canonical is no longer interested in catering to them. So we're going to try and step up.
    8. the most productive environment possible for people that use their computer to create.What is a productive environment?How do you measure productivity in an operating system environment?How do you compare YOUR distribution to other distributions when it comes to productivity?Is the way in which 'people that use their computer to create' (creators) the same across all professions and activities?Does a photographer have the same requirements for a productive environment as a software engineer?Why do you think your distribution will be the best for delivering a productive environment than any other Linux distribution?
    1. This gives them a slight edge but that’s nothing substantial because those fixes eventually reach Ubuntu.
    2. Technically, it isn’t a part of the comparison internally but it is a factor that some users care for.
    3. Pop!_OS has its own official PPA which is enabled by default.
    1. It’s always about the money… Fish got’a swim, birds got’a fly, and development has to have money. If you think otherwise you’re a fool!
    2. Considering Canonical has pulled resources from this project, the path for continued third-party development of Unity will not be easy. It is my hope that they are successful and can become another shining example of the power of forking, like the MATE project.
    1. Pop!_Os makes some improvements on Ubuntu especially for gaming and coding. There are newer drivers and some coding related things are easier to setup.
    2. Get off systemd, and enter the world of chroot.
    3. And then think about if you want a rolling release, or a fixed release. Although all the distros you mentioned are on the fixed release side.
    4. Think about how much you want to customize the desktop environment(DE), and whether you know how to do so. Pick a distro that has the DE you like.
    5. There is no best distro. All of them are more or less the same.
    6. When people talk about "beginner distros" they mean distros that are no hassle to get started, it doesnt mean they are somewhat inferior or less capable.
    7. And honestly, most people prefer the no hassle, especially after wasting too much time dabbling with distros that are "for advanced users" troubleshooting all kinds of dumbass problems that just worked out of the box in many other distros.
    1. I chose 18.04 because it's the latest LTS version, and I'm not keen on updating my OS every year or so. (I like getting things stable and not having to worry for a while)
    2. considering PopOS is trying to tackle Ubuntu they really need their dual-boot setup to be a lot less tedious
    3. Couldn't agree more, the whole fuss about POP OS is overrated. I think it started because of a video on Linus tech tips, which listed Pop OS as one of the best solutions for Linux gaming. But I think that running Ubuntu + some Linux knowledge to install the proprietary driver is a better solution imo.
    4. if PopOS! really wants to be what Ubuntu was 10 years ago they need to step up and make dual booting easier.
    5. Instead of resizing the existing Widnows EFI System partition of size 100 mb, Can't I just create a new EFI system partition of 500 mb FAT32 for bootloader and linux only related stuff?
    6. Instead of resizing Windows efi partition, I created a new one for pop os as well. So now my system has two different efi partitions. No chance of any messing up.
    7. I tried it but the tool wouldn't let me resize the EFI partition
    8. If would recommend you create a bootable Windows 10 USB from the MS website and reinstall the PC with a clean Windows installation so you have the same Windows installation as shown in the video. Also, you'll be a lot happier with all the bloatware removed.
    9. The part where you want to add 2 EFI partitions is not advisable. It seems that Windows doesn't really like this, of you are dual booting multiple Linux installs it might work. But it is always recommended to use only 1 EFI partition per disk. Hope this helps. :)
    1. You don't necessarily have to resize Windows' EFI partition. You can have multiple EFI partitions.
    2. When I started Pop!_Planet, I launched it because I saw a need for a centralized community for Pop!_OS. To be frank, I never expected the level of popularity it has achieved. Over the last year, we have gone from under 50 users, to almost 400 users. That's awesome! However... it also comes with a downside. We are rapidly running out of disk space on our server, and the bandwidth costs go up every month. Pop!_Planet is not affiliated with System76 in any way, and is funded completely out of pocket. From day one, I said that I'd never use on-site ads (I hate them as much as you do), so the only monetization we get is through donations. Right now, the donations we receive don't even cover our overhead. I know that most users will ignore this message, and that's ok. However, if even a few of our users are willing and able to donate a few dollars to help offset our expenses, it would be greatly appreciated.
    1. Make a 512MB fat32 partition during manual/custom PopOS install.Select its role as: "/boot/efi" in the PopOS installer.When the OS is installed, type sudo apt install refind and then it should automatically start the installer else type sudo refind-install. This will install rEFInd to your /boot/efi path.
    2. this method has a great looking dual boot menu that auto-remembers your last used OS, making dual booting convenient
    1. Switching to Pop!_OS From Apple If you are coming from Apple’s operating system using Pop!_OS for the first time, we can help make the transition smoother.
    2. Switching to Ubuntu from Apple If you are coming from Apple’s operating system and just using Ubuntu for the first time, we can help make the transition a little smoother.
    1. Disable Secure Boot. Security technologies included in UEFI such as Secure Boot can be a blocker and prevent the system from booting external storage sources. Disabling Secure Boot, temporarily—normally accessible under the security menu or tab—will often resolve this.
    1. Windows and Linux store their time in the BIOS differently, this will cause your clock to be desynchronized when you switch from one OS to the other. The easiest solution for it is to fix it in Linux, forcing it to work the same way as Windows. You can do this through the terminal:
    2. Note that Windows updates may occasionally turn this setting back on without asking, so if you are unable to boot into Pop!_OS, check this setting first. (If the checkbox for ‘Turn on fast startup’ is grayed out, you can enable it by click ‘Change settings that are currently unavailable’ near the top of the power buttons settings page)

      making it harder to do something preventing from shooting self in foot

    1. Jan 2021. I use a small, dedicated enterprise grade SSD as a swap drive. These enterprise drives can be bought for as little as $80 for 240GB right now, and are 3D nand with load leveling and other valuable improvements for swap. By using the drive only for swap, you pretty much guarantee it won’t affect your expensive terabyte level data drive should it fail, and you still get the performance of SSD. Estimates for very heavy use are about 2 1/2 years.
    1. Any progress on this issue?
    2. Sean, do you think someone can take a look at this? It's biting a lot of people and makes .or pretty much useless if you want the .or query to use a simple join, which is a pretty common use case. There are 57 likes in this issue alone.
    3. A.joins(:b) .where( A.arel_table[:something_a].eq('xxx').or(B.arel_table[:something_b].eq('yyy')) )
    4. I was wondering what is the status of this issue? The PR that fixes the problem is rejected but this issue is still open, so is it going to be fixed or is it intended behaviour?
    5. I recall that we wanted to reserve the right to make it more conservative in the future
    6. That's covered by "they must differ only by #where"
    7. but if .or() throws an error then I'm back to the bad old days of using to_sql
    1. You can write the query in this good old way to avoid error
    2. According to this comment you might want to override the structurally_incompatible_values_for_or to overcome the issue: def structurally_incompatible_values_for_or(other) Relation::SINGLE_VALUE_METHODS.reject { |m| send("#{m}_value") == other.send("#{m}_value") } + (Relation::MULTI_VALUE_METHODS - [:eager_load, :references, :extending]).reject { |m| send("#{m}_values") == other.send("#{m}_values") } + (Relation::CLAUSE_METHODS - [:having, :where]).reject { |m| send("#{m}_clause") == other.send("#{m}_clause") } end
    3. Also there is always an option to use SQL: @items .joins(:orders) .where("orders.user_id = ? OR items.available = true", current_user.id)
    1. # Returns a new relation, which is the logical union of this relation and the one passed as an # argument. # # The two relations must be structurally compatible: they must be scoping the same model, and # they must differ only by #where (if no #group has been defined) or #having (if a #group is # present). Neither relation may have a #limit, #offset, or #distinct set.
    1. If you need your grid to utilize a gap between columns / rows, you won't be able to use the gap property when using this method. You'd instead need to resort to some negative margin manipulation to handle the extra gap space.
    2. without grid-template-rows layout properties getting passed over to the next row