• Yet another example of inadequate reporting

    It’s unfortunate how the article doesn’t try to get a critical view to the comments made by the producer or user side. The directive doesn’t state as its purpose to reduce plastic, but to lower its impact on the environment.

    Leaving the producer’s strawman of “more plastic used” and the users anecdotal “i’m inconvenienced in my car” or sheer gutwrenching “I don’t believe the scientifical result of the impact of plastic in the environment” is just another example of EU-bashing and bad journalism.

    It’s always a bit sad to see how complex issues (impact of single use products on garbage piles in the sea, complexity of maritime and fishing objectives as a main driver of EU policy, effect of consumer behavior in one part of the EU and their outcome and impact of other parts of the Union) are trivialized instead of explained.

    Tethered plastic bottle caps may in fact use more plastic, not less

    A recent switch towards plastic bottle caps which remain attached has had almost the reverse effect from that intended – ie. to cut down on the use of plastics – "Aktuaalne kaamera" (AK) reported Sunday.
  • Estonian public life seasons

    For example, we have TV “seasons” somewhere from about January 10 to Midsummer, or 22 weeks, followed by 11 weeks of summer, then 16 weeks for the fall season, and three weeks of Christmas and New Year.

    Paul Rebane: Our actions are dictated by the sun, not the government

    We are governed by the sun, not by the government. How this is so can be particularly evident when you look at your TV viewing habits, and there is a whole science behind what we choose to watch and why, Raul Rebane reported in Vikerraadio's daily commentary earlier this week.
  • Install digidoc client on arch linux

    Assuming some client for AUR

    1. Install packages

       yay -S qdigidoc4 ccid pcsclite web-eid-firefox
    2. services

       sudo systemctl start pcscd.service && sudo systemctl enable pcscd.service

    Maybe there’s an alternative to web-eid-firefox, but only after installing it, the error ‘PKCS#11 cannot be loaded’ in digidoc4client disappeared.

    Smartcards - ArchWiki

    If the card reader does not have a PIN pad, append the line(s) and set enable_pinpad = false in the opensc configuration file /etc/opensc.conf.
  • Jinja2 indentation and other layout problems

    If you don’t want your indentation get messed up for example in a docker-compose file, add this to the very first line.

    #jinja2: lstrip_blocks: "true", trim_blocks: "false"

    It will prevent any simple or nested if/for statements to interfere with the layout.

    Jinja2 lstrip_blocks as a default · Issue #10725 · ansible/ansible

    Dear Ansible devs, We often have long and complex templates, with lots of Jinja2 loops and conditionals. It's handy to indent them, so to make it easier to read the template. I see that "trim_block...
  • Docker Hub images domain

    The domain for a docker image is docker.io.

    When there’s no organization/user, it seems /library is added often.

    So the ubuntu image fqdn is docker.io/library/ubuntu`


    The Docker Hub registry implementation
  • Reset arch linux key ring

    If again you have problems with some pubkey not present, do this

    mv /etc/pacman.d/gnupg /etc/pacman.d/gnupg.bkp
    pacman-key --init
    pacman-key --wpopulate
  • Actions that create opportunities


    Ideas that create opportunities

    Here is a list of ideas that you can do (now) that will create opportunities for yourself in the future.

    Here are some ideas on things you can do (now) that will create opportunities for yourself in the future:

    • Podcast

    • Give a talk

    • Write a blog

    • Go to meetups

    • Take a course

    • Learn new skills

    • Get a remote job

    • Join a community

    • Grow your network

    • Promote your work

    • Go to a conference

    • Start a newsletter

    • Publish on YouTube

    • Apply for a new job

    • Create a side-project

    • Explore a new industry

    • Collaborate with a friend

    • Build something in public

    • Become an expert on a topic

    • Ship a free project on the internet

    • Sell a small product on the internet

  • CORS issue, how to work around it with Nginx Proxy Manager


    Reddit - Dive into anything

    Reddit and its partners use cookies and similar technologies to provide you with a better experience.

    First comment:

    You need to edit proxy settings for uptime kuma, under Custom Locations add a new location with location as / and then enter your scheme/hostname/port for uptime kuma. Then go to the gear icon besides location and enter add_header 'Access-Control-Allow-Origin' *; and then save.

    Made static cms work with gitea/forgejo.

  • update fuel php to 1.9 dev

    update fuel php to 1.9 dev

    1. copy composer.json from githube repo into root dir
    2. update composer by running:

      curl -s https://getcomposer.org/installer | php
    3. chown to local user
    4. run composer against new composer.json:

      php composer.phar update --prefer-dist
      php composer.phar install --prefer-dist
    5. make sure file ownership is proper

      chown -R user:group folder
    6. that’s it

    GitHub - fuel/fuel: Fuel PHP Framework v1.x is a simple, flexible, community driven PHP 5.3+ framework, based on the best ideas of other frameworks, with a fresh start! FuelPHP is now fully PHP 8.0 compatible.

    Fuel PHP Framework v1.x is a simple, flexible, community driven PHP 5.3+ framework, based on the best ideas of other frameworks, with a fresh start! FuelPHP is now fully PHP 8.0 compatible. - fuel/...
  • I shared a link


    Klasche, Poopuu: Hiding radical conservative ideas behind 'science'

    As social scientists, we were concerned about the academic and scientific violations involved in the recent Pere Sihtkapital survey scandal and the implications it would have for research in Estonia. But we also need to recognize and continually challenge conservative ideas being potently promoted in our society and ensure that they cannot masquerade as science, write Benjamin Klasche, lecturer of Politics and International Relations and Birgit Poopuu, associate professor of International Relations at Tallinn University (TLÜ).
  • Synchronizing a list of checked and unchecked items

    Example showing a list of available premium_licenses, and have the ones checkmarked that are chosen, as well as update the chosen set with newly checked and unchecked items.

    class Client::SiteController < Client::ApplicationController
    after_action :notify_admin
    def update
    	@site = Site.find params[:id]
    def update_site_premium_licenses
    	ids_before = @site.bulk_premium_license_ids
    	@site.bulk_premium_license_ids = site_params[:bulk_premium_license_ids].select { |x| x.to_i > 0 }
    	ids_after = @site.bulk_premium_license_ids
    	@licenses_added = ids_after - ids_before
    	@licenses_removed = ids_before - ids_after
    def notify_admin
    	AdminNotification.with(remove: @licenses_removed, add: @licenses_added, site: @site).deliver(email_address)
    def site_params
    	params.require(:site).permit(bulk_premium_license_ids: [])

    The view is a collection of check-boxes and a submit button. CSS classes reference Bulma.

    <%= form_with model: [:client, site] do |form| %>
      <div class="field has-check">
        <div class="field">
          <p><%= t("subscriptionsDir.licenses.explainer") %></p>
        <div class="field">
          <div class="control">
            <%= collection_check_boxes(:site, :bulk_premium_license_ids, BulkPremiumLicense.all, :id, :title) do |b| %>
              <%= b.label(class: "b-checkbox checkbox", for: nil) do %>
              <%=   b.check_box(checked: site.bulk_premium_license_ids.include?(b.object.id)) %>
              <%=   tag.span class: "check is-primary" %>
              <%=   tag.span b.object.title, class: "control-label" %>
              <%  end %>
              <%= tag.br %>
            <% end %>
        <div class="field">
          <div class="control">
            <%= form.submit t("subscriptionsDir.licenses.submit"), class: "button is-primary" %>
    <% end %>

    Notifications are being sent via noticed gem

    The relationship is a simple site has_many premium_licenses, and site has

  • Change Mysql Database Name

    the easiest way to change database name is to copy to old stuff into the new stuff via a dump:

    mysqldump source_db | mysql destination_db
  • Add an admin to a wordpress database

    INSERT INTO `wordpressdatabase`.`wp_users` (`ID`, `user_login`, `user_pass`, `user_nicename`, `user_email`, `user_status`, `display_name`) VALUES ('1000', 'username', MD5('password'), 'username', 'contact@example.com', '0', 'username');
    INSERT INTO ` wordpressdatabase`.`wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) VALUES (NULL, '5', 'wp_capabilities', 'a:1:{s:13:"administrator";b:1;}');
    INSERT INTO ` wordpressdatabase`.`wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) VALUES (NULL, '1000', 'wp_user_level', '10');
  • Scope of Plausible selfhosted api key generator

    Plausible selfhosted api key generator in the ui only generates a key with scope of stats:read:* but if you want to call any provisioning endpoints you need the scope of sites:provision:*

    easiest way is to generate a key, connect to the database, and change the scopes field in the api_keys table to the needed scope.

    Here’s the related github discussion

  • I shared a link

    today in Tallinn a woman got killed by a reversing van on a sidewalk while waiting for the bus… and it’s not even front page news.

    this city is so utterly fucked up with normalizing traffic violence, it’s beyond believe.

  • Quickes way to prepare Windows Terminal WinRM for Ansible

    @Controlling windows terminals with Ansible needs an initial configuration step on the terminal that activates WinRM, enables https transport, and creates a self-signed certificate. In this way one can manage small scale fleets that are not part of an ActiveDirectory Domain.

    The most reduced procedure involves these two files:

    A batch file that one can easily call with “Run as administrator…”. It calls this well known powershell script and makes some of its configuration options explicit.

    Here is a copy, in case the repository goes away at some point in the future (archived version Version 1.9 - 2018-09-21)

    The batch file expects the script file to be in the same directory.

    Batch file content:

    powershell -ExecutionPolicy ByPass -File %~dp0\prep_ansible.ps1 -Verbose -CertValidityDays 3650 -ForceNewSSLCert -SkipNetworkProfileCheck