19,785 Matching Annotations
  1. Jan 2021
    1. When Snap was introduced Canonical promised it would never replace APT. This promise was broken. Some APT packages in the Ubuntu repositories not only install snap as a dependency but also run snap commands as root without your knowledge or consent and connect your computer to the remote proprietary store operated by Canonical.
    2. This is a store we can’t audit, which contains software nobody can patch. If we can’t fix or modify software, open-source or not, it provides the same limitations as proprietary software.
    3. Although it is open-source, Snap on the other hand, only works with the Ubuntu Store. Nobody knows how to make a Snap Store and nobody can. The Snap client is designed to work with only one source, following a protocol which isn’t open, and using only one authentication system. Snapd is nothing on its own, it can only work with the Ubuntu Store.
    1. Science’s culture of critique discourages groupthink, countermands the effects of human biases, and protects knowledge, not only by rewarding a dispassionate stance toward the subject and institutionalizing organized skepticism but also by fostering competition among scientists able to replicate and hence challenge each other’s work.

      Great aspirations, but how well are they actually achieved in practice/reality?

    1. We took a stance on an issue. We informed and documented. We made it easy for you to understand the problem and also to take action if you disagreed.
    2. We took a stance on an issue.
    3. We informed and documented. We made it easy for you to understand the problem and also to take action if you disagreed. I hope you didn’t read https://linuxmint-user-guide.readthedocs.io/en/latest/snap.html#how-to-install-the-snap-store-in-linux-mint-20. I can’t understand how it could be simpler.
    4. Is it harder to enable it in Mint than it is to disable it in Ubuntu? Not at all. Is how to enable it better documented in Mint than how to disable it in Ubuntu? Absolutely: https://linuxmint-user-guide.readthedocs.io/en/latest/snap.html.
    5. Yahoo is _much_ worse than Google when it comes to collecting data and using it.
    6. http://letmegooglethat.com/?q=How+to+change+the+default+search+engine+in+chromium&l=1
    7. We can certainly explain the issues snap cause without using political or religious arguments. We did so in the documentation I linked to above.
    8. We don’t do politics, and we certainly don’t do religion. You’re bringing these here by using terms such as “politicians” or “evil”.

      Does "evil" refer to religion? Or perhaps they meant "evil" in a more general way, as a more extreme version of "bad".

    1. Some users download the DEB package and install it manually and manage upgrades completely manually. This is useful in situations such as installing Docker on air-gapped systems with no access to the internet.
    2. The scripts require root or sudo privileges to run. Therefore, you should carefully examine and audit the scripts before running them.
    1. that's by design:

      Can't upgrade from EOL version

      Supposed to upgrade from it while it is still supported...

      I can see calling this upgrade path "unsupported", but isn't "by design" going a bit too far?

      It seems like it's not so much an intentional design choice to disallow it as it is an inadvertent side effect of ending support for it, and of only developing support for specific version upgrade paths.

    2. For the future, you should: Install LTS (Long-term support) versions as they have an 8-year life span (with Extended Security Maintenance) or 5 years without. The current LTS version is Ubuntu 18.04.1 LTS Bionic Beaver released on July 26, 2018 with an EOL in April 2023. OR Carefully watch the EOL of the interim / development releases and upgrade frequently.
    3. Please don't thank me! ;-) If this answer did help, just click the little grey ☑ at the left of this text right now turning it into beautiful green. If you do not like the answer, click on the little grey down-arrow below the number, and if you really like the answer, click on the little grey ☑ and the little up-arrow... If you have any further questions, just ask another one! ;-)

      How would you even describe this comment?

      "just doing my job"? but he is (I assume) answering to be nice not because it's his job

      "I won't take it personally"? vote my answer up or down, whichever you please

      impartial, dispassionate, and objective, perhaps? "just the facts, ma'am"


      Separately, what is the "Please don't thank me!" for? Is it that politeness? False modesty? Genuine modesty? Or is it rude? Why not allow someone to thank you??

    4. As you installed a development release (17.04) that had only a 9-month life span and had an End of Life (EOL) in Jan 2018, there is no way to upgrade it to 17.10 as that went EOL back in July 2018. So as you're stuck with a release without an upgrade path (as you cannot skip versions)
    1. OTOH, I'm old enough to have made the exact same error myself, i.e. trying to optimize something which really didn't need it and making the code more complicated as a result, so I am not blaming whoever had the idea for the rewrite.
    2. Why was the change even made, if statistical performance is not improved and the code is just harder to understand? Conspiracy theorists could get the idea of a backdoor (:
    3. The code is far simpler and easier to understand/verify
    1. Snaps each pick a ‘base’, for example, Ubuntu18 (corresponding to the set of minimal debs in Ubuntu 18.04 LTS). Nevertheless, the choice of base does not impact on your ability to use a snap on any of the supported Linux distributions or versions — it’s a choice of the publisher and should be invisible to you as a user or developer.

      Snaps sound a lot like container images in this respect.

    2. The heart of Ubuntu is a collection of ‘deb’ packages which are tested and integrated so that they work well as a set. Debs are optimised for highly structured dependency management, enabling you to combine debs very richly while ensuring that the necessary software dependencies for each deb (themselves delivered as debs) are installed on your machine.
    3. Ubuntu also supports ‘snap’ packages which are more suited for third-party applications and tools which evolve at their own speed, independently of Ubuntu. If you want to install a high-profile app like Skype or a toolchain like the latest version of Golang, you probably want the snap because it will give you fresher versions and more control of the specific major versions you want to track.
    1. The plot is so thin that, if it is ever discovered, will revolutionalize the world of particle physics.
    1. Unfortunately, this probably means a death knoll for this gem, at least I predict it will contribute to its slow trajectory towards insignificance/unknownness/lack-of-users.

      Why? Because it is already the less popular option in this comparison: https://ruby.libhunt.com/compare-premailer-rails-vs-roadie-rails

      and being actively maintained is an important factor in evaluating competing options.

      So of course people will see that the premailer option is the option that is still actively maintained, is still continuing to be improved, and they'll see that this one has been relegated to dormancy/stagnancy/neglect/staleness, which will only amplify the degree/sense of abandonment it already has from its maintainer (only now it will be its users that start to abandon it, as I now have).

    2. This gem is now entering passive maintenance mode; I will not be actively maintaining it anymore.
    3. I cannot guarantee that happening at all, so no timeline sadly.
    4. I could find the time to maintain it despite being "boring"
    5. At work, I cannot maintain this project. At home, I'd rather spend time with my children and on projects that I'm currently passionate about.
    6. Maintaining open source software requires energy and a "want"/"passion". I've not been using this project myself for years, and I mainly work in other things than Rails at this point. That means I'm far removed from this project and see no personal gain in maintaining the energy to keep this going.
    7. I'm still pretty proud of the project and I don't want to see it gone, so I want to keep updating it when needed. But on the other hand, the feature set is pretty stable and well working now (AFAIK) so I also don't see the need to pretend to be actively maintaining it.
    8. Please: Prompt me when things break and I will probably fix it. I won't guarantee how fast I'll move, but I'll try to make the effort sometimes. The bigger the issue, the more likely it is that I'll do something about it.
    9. Contributions are welcome, like always. I love contributions and seeing other people getting value from this project. Keep doing it!
    10. It's not impossible, but it's not likely I would accept someone I haven't worked with IRL or know on a personal level. That's because I want some form of creative control over the direction and I want to maintain the existing code style. If I know you I'm more likely to know that this will keep working the way I want it to.
    11. a triager would be very welcome; someone that can ask follow-up questions on issues, create test cases for the problems, and so on.
    12. Show me good PRs, bug triaging, documentation fixes, whatever and you're a candidate if you ask for it.
    13. reviewing code takes energy!
    14. This is open-source. You can always fork and maintain that fork yourself if you feel that's warranted. That's how this project started in the first place, so I know the feeling.
    1. premailer-rails processes all outgoing emails by default. If you wish to skip premailer for a certain email, simply set the :skip_premailer header:
    2. premailer-rails and premailer require a gem that is used to parse the email's HTML. For a list of supported gems and how to select which one to use, please refer to the Adapter section of premailer. Note that there is no hard dependency from either gem so you should add one yourself.
    1. config.action_mailer.register_preview_interceptor :css_inline_styler

      That's probably the same hook that https://github.com/fphilipe/premailer-rails ties into, for it says:

      Emails are only processed upon delivery, i.e. when calling #deliver on the email, or when previewing them in rails.

    1. Slogans can therefore be longer than taglines
    2. Taglines are more often next to the company's logo on official advertisements, and are dedicated more specifically to brand awareness than slogans. Slogans carry a brand's values and promises as the company grows and evolves, and can be promoted under an overarching company tagline.
    3. Although both "slogan" and "tagline" tend to be used interchangeably, they actually serve two different purposes. 
    4. Companies have slogans for the same reason they have logos: advertising. While logos are visual representations of a brand, slogans are audible representations of a brand. Both formats grab consumers' attention more readily than the name a company or product might. Plus, they're simpler to understand and remember.
    5. In many ways, they're like mini-mission statements.
    6. a slogan is "a catchphrase or small group of words that are combined in a special way to identify a product or company,"
    1. Nerd Fonts is a project that patches developer targeted fonts with a high number of glyphs (icons). Specifically to add a high number of extra glyphs from popular 'iconic fonts' such as Font Awesome ➶, Devicons ➶, Octicons ➶, and others.
    2. popular 'iconic fonts'
    3. The following Sankey flow diagram shows the current glyph sets included:
    1. Pango is one of the most common font rendering libraries on Linux. It's used by GTK/GNOME and a lot of standalone apps, like Rofi, Polybar, and a lot of terminals.
    2. cp src/glyphs/Symbols-2048-em\ Nerd\ Font\ Complete.ttf ~/.local/share/fonts fc-cache -fv pango-view -t "Playing some  for you right now"
    3. How should this be manually tested?
    4. Trust me, I'm not trying to stress you right now, but I just wanted to do a friendly bump in case you forgot about this. (I know how it is sometimes) If you get this notification and feel "Ugh, I really don't have time" you don't have to comment here and I'm sorry. I'm just sending you a notification in case you forgot. If not, feel free to archive the email and not click/tap on anything.
    1. Bordering an element with a single repeating image is something that seems like it should be easy with a property called border-image, but the process for actually doing that is somewhat counter-intuitive. Let’s say, for example, that you want to border an element with a repeating heart icon. You can’t do that with a image of a single heart. Instead, you have to make an image of a “frame” of hearts arranged as you’d like them to appear in the border, then slice that image. <img sizes="(min-width: 735px) 864px, 96vw" src='https://i2.wp.com/css-tricks.com/wp-content/uploads/2013/01/enlarged-border-image-slice.png' alt='' data-recalc-dims="1" />Eight hearts in a “frame” image, enlarged to show detail. The red lines indicate slices. If you think that sounds preposterous, you’re in good company. There was a lengthy discussion of the subject on Eric Myer’s blog a few years ago where many frontend development greats weighed in.
    2. Try out the different border-image-repeat values in this demo
    1. This question is locked and replying has been disabled.
    2. Just as the user above said, Gmail is removing all css styles throughout the body, and removing all css styles in the head tag. Their own documentation says this should work but it's not working at all. I've wasted 6 hours trying to make this work.
    1. Email’s actually not guaranteed to be quick. Even though it usually is pretty darned speedy, the entire email system is built to tolerate delays of several days. There are various reasons that this might happen, including a few very legitimate spam-fighting techniques. The solution? Wait a while. If in a few hours or the next day you still haven’t received the confirmation email, the problem may be elsewhere.
    1. Because .subtitle has a width of 100%, the min-width: auto calculation that flexbox makes says that its container should be larger than we want.
    2. Situation: you have a single line of text in a flex child element. You don’t want that text to wrap, you want it truncated with ellipsis (or fall back to just hiding the overflow). But the worst happens. The unthinkable! The layout breaks and forces the entire flex parent element too wide. Flexbox is supposed to be helping make layout easier!
    3. The solution is min-width: 0; on the flex child Or min-width some actual value. Without this, the flex child containing the other text elements won’t narrow past the “implied width” of those text elements.
    1. https://store.steampowered.com/app/420360/Spectrum/#app_reviews_hash

      Morlan's shorts: If you like abstract, beautiful, minimalistic looking, relaxing games..This is NOT it! Don't be fooled by the chill music (nice tunes but I can't help thinking that I've heard it before somewhere), "satisfying" backgrounds (yep imgurians, you know what I'm talking about) and fluid gameplay. This is a hardocore platform-y type of game that after the first few levels requires OCD precision movements and many-many-many re-tries to finish a level. Basically you move the blob, eat the "snow" and avoid everything else until you reach the black hole. But everything is too close to you or closing in and the movement style gives you finger cramps. You need to repeatedly press a button to move in that direction, like up-up-up-up-up-up, left-left-left-left-left-left and so on. It doesn't work by continuously pressing the direction buttons. So while the blob moves fluidly you constantly jerk the buttons so the hole gameplay looks a bit weird. The levels seem well crafted and rich with.. abstract detail! An oxymoron that works! The game looks pretty but you have no time to admire it because you're always on a timer. In short: A well made game but ONLY for the hardcore maso-players that enjoy hard achievements which is why I can't thoroughly recommend it. It goes from fun to chore after a while and, in contrast, I found 140 to be fun.

      EDIT: I thought I was a bit unfair on this.. but after finishing the frist three chapters perfectly, I say again: NO! This game can give you a really bad case of carpal bone cramps. I am being serious! Later levels are EVEN worse. Trying to go up by clicking 100 times the up button will start hurting badly after half an hour. I would AVOID THIS GAME.. You can thank me later.

      Don't waste more time reading lengthy reviews.. time is of the essence!

    1. I used it to create a full-bleed utility class: .full-bleed { width: 100vw; margin-left: calc(50% - 50vw); }
    2. Use-case party I asked some CSS developers when they last used calc() so we could have a nice taste here for for how others use it in their day-to-day work.
    1. Great, I can use vw to scale text so it doesn't look puny on a desktop! Perfect... Oh. Huh, now the text is too small to read when viewed on a phone. Okay, well I can just use "max(x,y)" to make sure it doesn't get shrunk beyond a minimum size. Perfect... Oh. Hmm. Looks like "max" isn't supported properly by Chrome. Okay, well guess I'll just use "px" again.
    1. I want to create a filter for all email sent by me only to me. To accomplish this I send all these "notes" to a permutation that I know no one else uses. E.g. john__doe@gmail.com
    1. auto As a maximum, identical to max-content. As a minimum it represents the largest minimum size (as specified by min-width/min-height) of the grid items occupying the grid track.

      And I'm guessing that when you use auto as a value (not inside of a minmax), that it is equivalent to minmax(min-content, max-content)? Wish I could see that confirmed somewhere...

    1. CSS Grid Layout excels at dividing a page into major regions or defining the relationship in terms of size, position, and layer, between parts of a control built from HTML primitives.
    1. How to wrap long word (text without spaces) in html table’s cell? This is very, very easy! We must add only a CSS proprty to table cell “td” tag – “word-break: break-all;” then all column’s widths become as intended. 
    1. fixed: With this value, the table’s layout ignores the content and instead uses the table’s width, any specified width of columns, and border and cell spacing values. The column values used are based on widths defined on columns or cells for the first row of the table
    1. It is also very likely that the contents of the table might change the structure or dimensions of the table. For example, long words residing in the table cells can cause the cell width to increases. If you fix that problem, it might happen that the long words cross the cell boundaries.
    2. Tables in HTML are absurd elements.
    1. I think it’s a bit more robust to do this at the grid definition level.
    2. min-width: 0;

      Wouldn't expect the solution to "width grows too wide" to be to assign a (seemingly meaningless, since how could it be less than 0) a minimum width of 0.

      I would have expected to solve this by applying a max-width to the problem element or one of its ancestors.

    3. The explanation here is that the minimum size of an fr unit is auto. Grid then looks at the min-content size of the item. If the item has a size (you’ve given it a width) or has something in it with a size such as an image, the min-content size might be much bigger than the share of available space you think 1fr will give you. It’s easy to think of 1fr as being “one part of the space in the grid container” when it is really one part of the space left over. If there is space to grow then the tracks grow from that min-content size assigning space. Using minmax, as you have pointed out, is the best thing to do if you want to forcibly have equal width tracks, as that says “I want this track to have a min-content size of 0”, you could potentially in that situation end up with overflows as you lose the squishiness.
    4. It’s easy to think of 1fr as being “one part of the space in the grid container” when it is really one part of the space left over.
    5. 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.
    6. I can’t promise I’m explaining this 100% accurately, but the way I understand it, the minimum width of a grid column is auto.
    7. It’s true that the auto value would do the same, but auto isn’t quite as robust since it’s size is based on the content inside.
    1. The only difference is that in this case “auto” will not work, but instead “height: 100%” is required.
    2. use of the border-box property. If you add the following at the top of your CSS file, you should be able to avoid many of the problems inherent in using 100% width on your elements:
    3. Blocks Don’t Need 100% Width When we understand the difference between block-level elements and inline elements, we’ll know that a block element (such as a <div>, <p>, or <ul>, to name a few) will, by default expand to fit the width of its containing, or parent, element (minus any margins it has or padding its parent has).
    4. But in most cases, I strongly recommend you use padding inside a box, rather than margins, to ensure you don’t have this problem.
    5. It seems like this should be one of the easiest things to understand in CSS. If you want a block-level element to fill any remaining space inside of its parent, then it’s simple — just add width: 100% in your CSS declaration for that element, and your problem is solved. Not so fast. It’s not quite that easy. I’m sure CSS developers of all skill levels have attempted something similar to what I’ve just described, with bizarre results ultimately leading to head scratching and shruggingly resorting to experimenting with absolute widths until we find just the right fit. This is just one of those things in CSS that seems easy to understand (and really, it should be), but it’s sometimes not — because of the way that percentages work in CSS.
    1. sudo apt purge chromium-browser chromium-chromedriver Bye bye, fake Chromium packages.
    2. Create an /etc/apt/preferences.d/debian-chromium
    3. Debian still maintains Chromium as a regular package in their APT repository. We can configure Ubuntu to get it from there, and continue to receive timely security updates along with all of our other OS updates. This makes sense from a security perspective, since Debian is where Ubuntu already gets most of its packages, and is a very well known high-profile project. There is no need to risk installing software from some random source or telling your system to trust a PPA.
    1. the bloody mount points. I couldn't believe that when I realised what was going on. I got the wire brush and dettol out and scraped it off my drive. Never, ever again.
    2. It won't work if $HOME is not under /home. Really. Not even if you softlink. You need a bind mount
    3. There's a lot of advice online showing how to get rid of snap. (e.g.: https://cialu.net/how-to-disable-and-remove-completely-snaps-in-ubuntu-linux/ worked for me) so the only result (so far, a few months later) is that Chromium has lost a user, and having upgraded Ubuntu since the original Warty, if snap becomes obligatory I'll have to take a look at Mint, or Devuan.
    4. I did the same thing. Another big advantage with Pop! is that it comes ready to deal with modern graphics cards. I coulg get my card working on Ubuntu sometimes, but it had to be done just so, and the phase of the moon needed to be right, or else you had to start the whole process over again. Canonical is free to do whatever they want I guess, but their recent shifts in priorities are a little weird to me.
    5. It is pretty much what Ubuntu 20.04 could have been, but isn't.
    6. I managed to remove it myself this morning...apparently it used to get it's hooks in so deep it was very difficult to remove the daemon as it interconnected with ubuntu-desktop for....reasons.
    7. Good. Hate snap. It's insidious and a pain to deal with.
    8. Plus, have you seen how many loopback mounting points it creates? "df" becomes very hard to use as it buries your actual drives with it's own. One for the daemon, one for GTK, one for Gnome, one for each of the snaps you have installed....
    9. it's an absolute resource hog
    10. Besides running contrary to the principles that lead a lot of people to Linux systems (a closed store that you can't alter...automatic updates you have no control over....run by just the one company)
    11. The strangest "quirk" I had was that I couldn't get the web browser to save a file directly to an attached, encrypted drive. Permissions problem. So I had to save to an interim folder then move it across by hand. Utter pain.
    12. So they want to "reduce fragmentation" OK.
    13. I found that snap can cause lots of issues. I installed keepass using snap, and it installed as a sandboxed app. Very nice for security you would think. Well, a short while later, after 3 upgrades to keepass, it deleted the oldest snap container, which just happened to contain my password file. So secure that even you can't use your passwords now!
    14. Call me cynical, but is Snap possibly a resource hog as well?
    15. Flatpak as a truly cross-distro application solution that works equally well and non-problematic for all
    16. It appears that Canonical is continuing it's vice grip of unliateral, maybe dictatorial control on the development of Snap to the benefit of Ubuntu, but to the detriment of groups like Linuxmint, and all other non-Ubuntu based Linux distributions - like CentOS/Redhat, Suse/openSuSe, Solus, Arch/Manjaro, PCLinuxOS, etc, that are pushing Flatpak as a truly cross-distro application solution that works equally well and non-problematic for all. .
    17. Canonical would do well to make sure they dont complicate things for whatever the next big Linux shift is.
    18. I suspect zerocopy is going to be big, it can significantly improve performance provided you stay in one kernel. If someone can find a way to zerocopy data across containers, in theory you could have data pass through a firewall, nginx, your app tier, into the database and onto the filesystem, without copying it once instead of copying it 8 times.
    19. What's wrong here is Canonical trying to position itself as a powerhouse and ascertain control over Linux users.
    20. If upstream code presumes things will work that dont in snap (e.g. accesses /tmp or /etc) the snap maintainer has to rewrite that code and maintain a fork. Pointless work. Packaging for .deb is a no-brainer.
    21. Why did I put the kdb in the snap file system? Because the app is sandboxed, so I had no choice.
    22. +1 For Devuan here, running it on my home and work machines, and on my son's laptop, despite his IT teacher telling him to install a proper operating system like Windows 10....
    23. >Linux needs an app delivery format Yeah, it's incredible that it has managed to survive for so long without one.
    24. It's Snap that drove me to Arch, so it did me a huge favour. Seeing things like GNOME as a snap and other 'core' products wasn't something I was comfortable with. Personally, I prefer flatpaks as a packaging format when compared to snap and appimage. I agree that Linux needs an app delivery format, but snap's current implementation isn't it.
    25. I run a fairly ancient RedHat Enterprise 6 on my 32-bit test machine and if I need something requiring Gtk3 (such as a latest Firefox or Chrome), I just make a chroot and use debootstrap (from EPEL) to get me a Debian 9 userland for that program. Easy. No bizarre "app stores", no conflicting packages. Do people use Snap app-stores because they don't know how to use the chroot command? Or are they just lazy? If it is because they want the added security of a container, substitute chroot with lxc... Shouldn't be necessary though; if you avoid non-ethical software (i.e App-stores), you are very unlikely to need the added security.
    26. I've already said this, but if you think the average desktop computer user thinks a sentence beginning "I just make a chroot..." makes any kind of sense, you haven't been paying attention to the level of intelligence of the general public.
    27. Well, that user can safely stay with Windows. Hiding these things from me makes wish that.
    28. Google / DuckDuck are your friends.
    29. By design, snap apps have no access to /etc. They live in their own little world, but instead of a normal chroot, they are splatted all over the standard Linux filesystem layout. With other bits mounted hither and thither. Its a mess, and subject to change with each release.
    30. You stick with what you know. It's trouble free because you know how to use it. That's achievable on any of the main OSs, even (gasp!) Windows.
    31. Linux on the desktop won't take off until it is equally easy. Snap may be dumbed down, restricted and all the rest of it, but for ordinary users it's easier - and more secure - than the alternative.
    32. >We do want Linux to be mainstream, don't we? Not at any cost.
    33. The cost of snap is too high. Its Linux ffs. We want it lean, mean, open, stable, file based, and bash friendly. We want our tools to work together, and above all, we want choice. Snap is none of that.
    34. See also BMW and Tesla owners. If Tesla does become the largest US-based carmaker, many of the buyers will, I'm sure, think of reasons to move onto something else.
    35. Its not too complicated but it is an annoyance. I want /etc/hosts, /etc/resolv.conf, /etc/nsswitch.conf, /etc/rc.local and all the standard stuff to work. The heavy lifting is done in the kernel. All they need to do is leave it alone. Its getting harder to make Ubuntu behave like Linux.
    36. Did my first Xubuntu 20.04 LTS last month: no (dependency) trouble at all to remove snap and its systemd tentacles...

    Tags

    Annotators

    URL

    1. Do Not Disturb Get rid of any and all notifications for however long you like. Cast out ye heathens, for there is many a work to be done!
    2. Automatic firmware updates can be accessed from your software settings on System76 hardware. These updates help to promptly quash any threat of security risk to your computer.