• 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`

    Registry

    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

    PERMALINK

    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

    PERMALINK

    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

    PERMALINK

    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]
    	update_site_premium_licenses
    end
    
    private
    
    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
    	@site.save
    	!@site.errors.present?
    end
    
    def notify_admin
    	AdminNotification.with(remove: @licenses_removed, add: @licenses_added, site: @site).deliver(email_address)
    end
    
    def site_params
    	params.require(:site).permit(bulk_premium_license_ids: [])
    end
    

    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>
        <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>
        </div>
        <div class="field">
          <div class="control">
            <%= form.submit t("subscriptionsDir.licenses.submit"), class: "button is-primary" %>
          </div>
        </div>
      </div>
    <% 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
    
  • Call Actionmailer from Rake Task


    If you call actionmailer from a rake task, you can’t use activejob, as the thread pool is killed once the rake tasks finishes. so everything is real time, which is not a problem at all, given it’s a rake task…

    https://guides.rubyonrails.org/action_mailer_basics.html#calling-the-mailer