Welcome to Planet openSUSE

This is a feed aggregator that collects what openSUSE contributors are writing in their respective blogs.

To have your blog added to this aggregator, please read the instructions.

15 January, 2020


Veamos unos ejemplos prácticos de los comandos más básicos del editor Vim

La práctica hace al maestro. Cuando empecé mi periplo en querer aprender y profundizar en el conocimiento del editor vim, una cosa tenía clara: podía leer manuales y ver vídeos, pero lo que da la soltura y fija los conocimientos es la práctica de su uso.

En el blog he escrito muchos artículos sobre vim que puedes leer en este enlace:

Pero hasta que tu mismo/a no empieces a perderle el miedo y utilizarlo poco a poco, no llegarás a asumir como normales todos esos comandos o trucos que has aprendido.

Eso es lo que traigo esta vez en forma de video tutorial. Unos cuantos ejemplos prácticos sobre cómo utilizar los comandos más básicos editando un archivo con vim

En el video tutorial veremos ejemplos sobre:

  • Borrado de un caracter en modo normal
  • Alternar entre mayúsculas y minúsculas un caracter en modo normal
  • Intercambiar dos caracteres
  • Incrementar/decrementar en 1 un número en modo normal
  • Sustituir un caracter
  • Cambiar dos palabras
  • Borrar desde la posición del cursor hasta el final de la línea
  • Mover el cursor por el texto

Como véis son tareas sencillas que nos pueden empezar a ahorrar tiempo a la hora de utlizar vim y además empezaremos a familiarizarnos con los modos del editor y sus comandos, vislumbrando la potencia que puede llegar a tener.

El video incrustado está alojado en mi cuenta de archive.org en formato .webm

También está disponible en YouTube para quien prefiera esta plataforma en el siguiente enlace (que puedes reproducir con VLC o mpv en tu equipo sin necesidad de visitar la web)


Espero que os haya gustado y os sea de ayuda y de acicate a la hora de probar el editor Vim.


Several packages were updated this week for openSUSE Tumbleweed as was expected after the holiday season. Five snapshots of the rolling release have been delivered so far this week after passing the rigorous testing applied by openQA.

The releases are trending incredibly stable with trending or recorded ratings abovea 96 rating, according to the Tumbleweed snapshot reviewer.

The most recent snapshot, 20200112, updated Xfce desktop environment with an update for xfce4-session 4.14.1 and xfce4-settings 4.14.2. Various developer visible changes were made with Google’s 20200101 re2 library for regular expressions updates. GNOME’s application for managing images with a users Flickr account, frogr 1.6, removed the deprecated use of GTimeVal. The open source platform for the scale-out of public and private cloud storage, glusterfs 7.1, fixed storage rebalancing caused by an input error and fixed a memory leak in the glusterfsd process. ImageMagick version optimized the special effects performance of Fx and virglrenderer 0.8.1, which is a project to investigate the possibility of creating a virtual 3D GPU for use inside qemu virtual machines to accelerate 3D rendering, added some patches. The snapshot continued to update packages for KDE Applications 19.12.1 that started in the 20200111 snapshot. Improvements to the scroll wheel speed was made for KDE’s Dolphin, the video editing software Kdenlive had multiple fixes and an adjustment for faster rendering, and obsolete code was removed from Applications’ diagram package umbrello. Most of the KDE Applications packages also updated the Copyright year to 2020.

In addition to the  KDE Applications 19.12.1 packages that began arriving in snapshot 20200111, KDE’s Plasma 5.17.5 also arrived in the snapshot. The updated Plasma fixed a regression in the “Port the pager applet away from QtWidgets” and fixed the drag from Dolphin to a virtual desktop switcher widget. The Plasma NetworkManager also had a fix for a crash when changing advanced IPv4 configurations. The much-anticipated fix for the security vulnerability in Firefox was made with the Mozilla update to Firefox 72.0.1; there were eight Common Vulnerabilities and Exposures (CVE) fixes in the update from the previous 71 version included in Tumbleweed, but the 72.0.1 fixed the bug that hackers could use to access a computer of anyone using the browser because of incorrect alias information in the IonMonkey JIT compiler. LibreOffice added a patch to fix a button that allowed the wrong ordering of a Qt interface and curl 7.68.0 had a lengthy amount of fixes and changes to include adding a BearSSL vtls implementation for the Transport Layer Security (TLS). openSUSE’s snapper 0.8.8 version had a rewrite of a subpackage from Python to C++ and several YaST packages were updated, which included the fixing of an error during an upgrade if /var/lib/YaST2 was missing when using Btrfs.

Troubleshooting tool sysdig was updated in snapshot 20200110; it fixed a


I was in the openSUSE Board for 2 years in the past and I have enjoyed this time to bring along the openSUSE project.
I want to run for the openSUSE Board again after a short break about 1 year. I am happy that the existing openSUSE Board has proceeded my idea with the foundation so successfully. But I would be happy about being allowed to finalize this/ my topic together with the other Board Members as my old idea.
Additionally, I have watched the decreasing reputation. Public representations of openSUSE have been missing by the openSUSE Board in the last year. I would increase that on the same way I have done that at our university.

My main activity at openSUSE is the Coordination of the global Localization Team besides my studies. However, that is not the sole task. I contribute to QA, give presentations, update the wiki (English and German) and create PRs on Github. I would be able to contribute some code as a Computer Scientist, too. But SUSE does not want to see any Computer Scientists from our university. Therefore, my focus is on improving our study plan with open source development.

I love to represent openSUSE. So I have decided to run for reelection. 😉

Do you want to know more about my goals and thoughts? You can find more about my goals for these openSUSE Board elections on my openSUSE Board election platform.

  • Email: sarah.kriesch@opensuse.org
  • Blog: https://sarah-julia-kriesch.eu (my blog)
  • facebook: https://www.facebook.com/sarahjulia.kriesch
  • LinkedIn: https://www.linkedin.com/in/sarah-julia-kriesch-16874b82
  • Connect: https://connect.opensuse.org//pg/profile/AdaLovelace
  • I wish all candidates good luck, and hope that we‘ll see lots of voters!

    14 January, 2020


    I recently purchased a new Logitech wireless keyboard for my kitchen computer because the Bluetooth keyboard I previously used was driving me nuts. Mostly for the keyboard layout and sometimes because it didn’t want to connect. Possibly due to hardware failure or bad design. It also doesn’t have media keys so I thought it best just to replace it.

    I have previously used ltunify with success but I only used it because “L” comes before “S” so that was my first stop. Since I received feedback that I should try Solaar I did so this time. Since there isn’t an official Linux based application available from Logitech, the fine open source community has stepped in to make managing your devices simple and straight forward.


    Since this application is in the Official Repository for Tumbleweed and Leap you can use graphical direct installation method or the more fun terminal way.

    sudo zypper install solaar

    YaST Software is also an option too.

    Once it is installed, launch it using your preferred method, the menu, Krunner, etc.

    Application Usage

    Right off the cuff, this is a more user friendly application with some additional features. For starters, whatever devices you have connected to your Logitec receiver will display a battery status. In this case below. I have a keyboard and mouse already paired with the Unifying receiver.

    Logical layout of the device listing, and verbose device information, device options and battery status. What is nice about this application is having the ability to modify the status of the device. My K400 Plus keyboard has the Function Keys and the media keys set up as such that by default, they are media keys. This is not what I prefer so I can Swap the Fx function here.

    Pairing A New Device

    My reason for using this application was to pair my new keyboard with an existing receiver. I don’t see the value in having more than one USB port populated unnecessarily. To Pair a new device is very straight forward, select the root “Unifying Receiver” and select “Pair”. The dialog will pop up and ask you to turn on the device you want to pair.

    When you do that, the receiver will grab the new device, associate it and have it available to be used.

    That is all there is to it. Each device will have their own set of options that are adjustable per your preferences. This Performance MX Mouse has more options than the value M175 Mouse.

    That just about does it for Solar. There are some other fun features like getting device details but I don’t really want to post those here because I don’t really know if that is information I should be sharing!

    Final Thoughts

    Having Solaar in the system try is quite handy. Though, the reality is, I don’t need it all the time but having it to manage your devices is very handy. It’s nice to know that you

    13 January, 2020


    Fedora is a Linux distribution that has been around since the beginning of my Linux adventure and for which I have incredible respect. I have reviewed Fedora before, and it was a good experience. Last time I used Fedora, I used Gnome and since I am kind of Gnome fatigued right now, I thought it better to use a different desktop, one that I can easily shape my experience to my needs, clearly, there are only two options but I chose to go with the primer, most easily customized desktop, KDE Plasma, ultimately, I want to compare my Fedora Plasma experience with my openSUSE Tumbleweed Plasma experience. I have no intention of switching distros but I do like to, from time to time, see how other distributions compare. Of all the distributions available outside of openSUSE, Fedora and Debian are the two that interest me the most but for different reasons.

    This is my review as a biased openSUSE Tumbleweed user. Bottom Line Up Front. Fedora is a nearly perfect [for me] distribution that is architecturally and fundamentally sound from the base upward. It is themed just enough, out of the box, to not annoy me with any irritating impositions. It really feels like I have been given keys to a fantastic house, albeit a bit spartan, waiting for me to make it my own. Technically speaking, there is nothing I dislike about Fedora. I could get along just fine in Fedora Land but openSUSE Land edges out for me with the Tumbleweed convenience and the broader hardware support.


    I want to be careful how I describe my experience here, I do not want to disparage the installer at all and blame any issues I had with it on me. What I appreciate about the installation process, I grateful that I can go right into the installation immediately.

    There is something spectacularly simple and clean about the boot screen. No frills, no fluff. Just down to business. If that doesn’t say Fedora, I don’t know what does!

    The next step will be to set your language and location. The next screen is an Installation Summary screen. I like this and I also don’t like this. I like it because it allows me to jump around, I don’t like it because I am not used to this layout. You can’t proceed with the installation until you complete all the steps, so that is good.

    I started with the Root and User creation settings. This is very straight forward. I like the root options that are presented to lock the root account and whether or not to allow SSH Login with Password.

    For the Installation Source, I am less impressed with this section, as compared to the openSUSE installation method. Maybe I don’t understand this part exactly, I was a bit confused. The correct choice would be “On the Network” from here and leave it on “Closest mirror”.

    What I like about the openSUSE method

    11 January, 2020

    Sebastian Kügler: Lavalamp

    23:42 UTC

    My Lavalamp

    For our living room, I wanted to create a new lamp which isn’t as static as most other lamps, something dynamic but nothing too intrusive.
    I was also interested in individually addressable led strips for quite some time, so I started prototyping in last year’s late summer. In december, I finished this project, and called it lavalamp after the classic decorative lamp with rising blobs of fluid which was invented in the 60s.

    Lavalamp Show

    The lamp uses LEDs for its lighting, there are 576 individually addressable LEDs used, which shine in four directions. The lamp can produce dynamic patterns and effects. There’s a web interface I can use to change its effect, but it also reacts to its surroundings, steered by Home Assistant, my home automation platform of choice. This means that the lamp is automatically switched off when we go to bed, leave the house or want to watch a movie. It can also be voice-controlled.


    The ESP8266 microchip running the LEDs

    The lamp’s electronic components are an ESP8266 microchip and WS2812b addressable leds. (This means I can change the color and brightness of every single LED individually.) I’ve written custom firmware for the microcontroller (you can find it on my github page), it basically runs a small webserver on its Wifi interface, offering configuration data in JSON format to a mobile-friendly JavaScript application which can run in a browser on your phone. The LEDs are driven by the FastLED library, which is a fantastic piece of software offering fast mathematical functions and low-level data protocols to manipulate the LEDs in my lamp.
    With this setup, I achieve 50 frames per second for most of the effects that I’m using in the lamp, so the animations all look smoothly and feel quite natural. I think that’s really impressive, given the rather low specs of the microchip and its price point at around 2€.

    The case of the lamp has a wooden foot, sitting around a concrete block which holds the lamp firmly in place and provides some isolation in case anything goes wrong in the electronic parts. The light from the LEDs is diffused through frosted glass, giving it a nice glow.

    Building the lamp was a fun project. I didn’t give myself a deadline, but rather took all the time I needed spread out over a period of four months to get all the individual parts in place. I had to learn quite some new tricks, which made this project really interesting. From cutting and building the wooden case to soldering and programming the microchip. In the end, I’m really happy how the lamp turned out. It brings live into our place, while usually not being too distracting.
    For further improvements, I built a USB port into the foot of the lamp, so I can just plug in my laptop and add new effects or tweak existing ones.
    I’m not quite done with it


    The killer feature of the Plasma Desktop has been the KDE Personal Information Manager, Kontact. I have been using it since 2004 time frame and although we have had a tenuous relationship over the years, specifically the switch to the Akonadi and the pain that came with it in the early years. I actively use Kontact on multiple machines for the feature richness of it and haven’t found anything in existence that I like better. I also exclusively use Kontact on openSUSE Tumbleweed with the Plasma Desktop Environment.

    I have decided to publish my reference concerning the maintenance it requires. I could be an edge case since I have five mail accounts and multiple calendar accounts as well. Historically, I have had issues where losing network connection, regaining it, suspending and resuming my machine over a period of time would cause the thing to have fits. So, here are my fixes, whenever the need arises.

    One quick caveat, your results may vary and don’t hold me responsible for your data.

    Problem 1: Akonadi Gets Stuck and Stops Checking Email

    This is rare as of late but 3 or 4 years ago, this was indeed a problem. I think I have used this once in the last month (Jan 2020 at the time of writing) but this is what I do.


    In the terminal or even in Krunner type the following

    akonadictl stop

    This will stop all the processes. Sometimes they can hang and this will gracefully shut the thing down. At this point, you can start it back up in Kontact or in the terminal or krunner type:

    akonadictl start

    If you do this in the terminal, you can enjoy the scrolling of all the activity going on and gain some appreciation for what it is doing.

    After that, you should be good to go.

    Problem 2: Clearing out Cached Data

    From time to time, I notice that the Akonadi cache under ~/.local/share starts to grow an awful lot. Part of it is that I don’t delete emails, but there is a percentage of that data that is vestigial and can easily be cleared out. This requires two commands and a bit of patience on your end.

    Start out by running a “file system check” on the Akonadi database in the terminal.

    akonadictl fsck

    This takes a bit and will display all found unreferenced external files and such. Once complete, run this:

    akonadictl vacuum

    This process will optimize the tables and you will recover a bit of data. I admit, this doesn’t make a huge change but it will clear things out. The last time I did it, I only freed up a few megabytes of data but but it’s something.

    Final Thoughts

    You know those stories of people that have these crazy habits that don’t make sense, things they do that don’t really help or solve a problem like making sure the spoons are organized in just the right fashion


    使用 Google Stackdriver Monitoring API Python Samples 監控 過去一週 CPU 小於 20% VM小記

    OS: container with openSUSE Leap 15.1

    今天要來嘗試使用 Stackdriver monitor API 透過 python 列出過去一週 CPU 小於 20 % 的 VM

    環境使用之前建立好的 openSUSE Leap 15.1, 上面已經安裝好雲端的工具

    ==== 在主機上面 ====

    啟動 container

    > docker  run  -v  ~/.aws:/root/.aws -v  ~/.azure:/root/.azure  -v ~/.config/gcloud:/root/.config/gcloud  -v  ~/.ssh:/root/.ssh  -it  sakana/ansible_opensuse151  /bin/bash

    ==== 在 container 內 ====

    在這邊使用服務帳戶的方式來處理, 所以要先建立服務帳戶

    建立的方式有 2 種

    ==== 1. GCP Console 方式 ====

    登入 GCP console

    點選 導覽選單 -- > IAM 與管理 -- > 服務帳戶 

    點選 建立服務帳戶

    輸入帳戶名稱 -- > 建立

    角色的部分選取 監控/Monitoring 管理員  -- > 繼續

    點選 建立金鑰

    選取金鑰類型, 這邊我選 JSON  -- > 建立


    點選 完成

    ==== 2. 指令方式 ====



    # gcloud iam service-accounts create test20200111 --project  YOUR_PROJECT_ID

    • test20200111 是服務帳戶名稱
    • YOUR_PROJECT_ID 請換成自己的 project id


    用您的專案 ID 取代 [PROJECT_ID]
    #gcloud  projects  add-iam-policy-binding [PROJECT_ID] --member "serviceAccount:[NAME]@[PROJECT_ID].iam.gserviceaccount.com" --role "roles/monitoring.admin"

    • 所以這邊可以觀察到 監控管理員的權限是綁定在 project
    • roles/monitoring.admin 是觀察來的, 可以透過 #gcloud  projects  get-iam-policy [PROJECT_ID] 來看相關的權限

    另外網路上也有看到找出服務帳戶 Role 的過濾方式

    # gcloud projects get-iam-policy [PROJECT_ID] --flatten="bindings[].members" --filter="bindings.members:[NAME]@[PROJECT_ID].iam.gserviceaccount.com"

      members: serviceAccount:sakanatest-20200111-monitor@xxxxxxx.iam.gserviceaccount.com
      role: roles/monitoring.admin
    etag: BwWb1FtLJ4s=
    version: 1


    用金鑰檔案的名稱取代 [FILE_NAME]
    #gcloud  iam  service-accounts  keys  create  [FILE_NAME].json --iam-account [NAME]@[PROJECT_ID].iam.gserviceaccount.com

    created key [5abac9d47cd2g96386a05bad735d241d59a00897] of type [json] as [/root/test20200111.json] for [test20200111@xxxxxxxxx.iam.gserviceaccount.com]

    • 用指令的好處是可以直接指定憑證的位置, 我在下指令的時候是用 /root/test20200111.json


    服務帳戶與金鑰準備好了之後, 接下來就是取得範例程式

    更動的部分如下 ( 使用 diff 指令, 左邊是改寫, 右邊是 google 原來的範例 )

    > diff snippets.py snippets-orig.py 

    < # 
    < # Edit by Max 2020/1/11
    < # 因應工作需求, 改寫 snippets.py
    < # File from https://github.com/GoogleCloudPlatform/python-docs-samples/tree/master/monitoring/api/v3/cloud-client
    < # 改寫 list_time_series_aggregate
    < # 
    < # 這邊定義要查詢的區間
    < query_time = input("Please input your query time in seconds, for example, 7 Days is 604800:  ") or 604800
    < query_time_int=int(query_time) # 這邊將 query_time type 從 str 轉型為 int
    < print("")
    < cpu_threshold = input("Please input cpu usage under threshold, like 0.2 for 20%:  ") or 0.2
    < cpu_threshold_float = float(cpu_threshold)
    < print("")
    <     interval.start_time.seconds = int(now - query_time_int) # 這邊用 query_time 來彈性調整
    >     interval.start_time.seconds = int(now - 3600)
    <     aggregation.alignment_period.seconds = query_time_int  # 這邊用 query_time 來彈性調整
    >     aggregation.alignment_period.seconds = 1200  # 20 minutes
    <       cpuUtil = result.points[0].value.double_value
    <       if cpuUtil < cpu_threshold_float: #需要判斷的 CPU threshold, 用 cpu_threshold 來彈性調整
    <           print("instance name:", result.metric.labels) # 列出 instance 名稱
    <           # instance_id 是放在 resource.labels 下, 以字典的方式儲存, 所以透過 ['KEY_NAME'] 取出
    <           print("instance id:", result.resource.labels['instance_id']) # 列出 instance id 來區別同樣名稱的 VM
    <           print("CPU utilization:", cpuUtil *100, "% \n") # 列出 cpu 使用量
    <     # print(result) 註解原來的方式
    >         print(result)


    定義 project , 請帶入自己 project ID

    定義剛剛的 json 檔案的路徑, 例如 /root/test20200111.json
    # export GOOGLE_APPLICATION_CREDENTIALS="[path/key-name.json]"



    使用 pip 安裝 python 相依性的套件
    # pip  install  -r  requirements.txt

    執行剛剛下載修改的 snippet.py

    # python3  snippets.py  list-time-series-aggregate

    Please input your query time in seconds, for example, 7 Days is 604800:  604800

    Please input cpu usage under threshold, like 0.2 for 20%:  0.3

    instance name: {'instance_name': 'test'}
    instance id: 3255911329394624968
    CPU utilization: 17.11500122 % 

    instance name: {'instance_name': 'test2'}
    instance id: 3713200083697575388
    CPU utilization: 0.6797669215641027 % 

    instance name: {'instance_name': 'test'}
    instance id: 8590409858061083796
    CPU utilization: 0.6412688036029409 % 

    • 這邊我改成互動的方式, 輸入要查詢的區間, 使用秒數爲單位
    • 輸入CPU 使用量的門檻值, 如果要列出 20% 以下就輸入 0.2

    這樣就可以列出過去一週 CPU 小於 20


    Komunitas openSUSE Indonesia (openSUSE-ID) mengucapkan terima kasih atas antusiasme peserta pada #KuisLiburan2019 kali ini. Dari 127 jawaban yang masuk, kami harus mengkurasi jawaban yang salah maupun kurang tepat. Tersaring 42 jawaban yang tepat dan kami harus mengundi lagi untuk menentukan siapa peserta yang beruntung. Peserta yang beruntung adalah sebagai berikut.

    Peserta yang beruntung untuk mendapatkan new SSD 120 GB adalah Sabilil Maromi.

    sementara untuk peserta berikut mendapatkan bingkisan menarik dari openSUSE ID

    • Arif Setyo Nugroho
    • abi permana
    • Heru Juwardi
    • Aji Revaldi
    • Surya Handika Putratama
    • Yaumul Majid
    • Muhammad Rofi
    • Wuri Nugrahadi
    • Arif Dermawan
    • A Mu’ammar Afinas
    • Rizal Amrr
    • abdi weef
    • Kristian Valent
    • Rokib Munawir
    • Satrio Adi Prawiro
    • iqbalfr@nevtik.org
    • gatoti
    • lazuardi senja
    • Muhamad Andhika Prasetya

    Diharapkan kepada seluruh pemenang untuk mengirimkan informasi alamat dan nomor handphone di tautan berikut ini selambatnya tanggal 14 Januari 2020, jika sampai waktu tersebut tidak mengisi form pemenang maka hadiah dinyatakan hangus.

    Bingkisan menarik akan dikirimkan oleh tim openSUSE-ID secara gratis! Jangan lupa bagi para pemenang untuk memposting bingkisan tersebut ke media sosial dengan tagar #KuisLiburan2019 #openSUSE dan mention ke @openSUSE dan @openSUSEID (di Twitter).

    Selamat dan sampai jumpa lagi di Kuis berikutnya!



    Coming back strong in 2020… no… not coming back… I haven’t been gone, just delayed.

    12th Noodling, a dozen, a foot or a cup and a half of crap?

    AMD System from Yester-Years Parts

    I recently posted about my computer build. In short, this is a computer build on parts that are in no way considered top of the line. They are all quite old and that did pose a few problems. One, this motherboard would not boot from a software RAID pool. I was able to bootstrap the BTRFS RAID pool with a separate drive and root partition. It did add some complexity to my system but I think it works out okay.

    Building a system is something I have wanted to do for quite some time. As in, several years but time, finances and decision vapor-lock had kept me from it. What pushed me over was a fortuitous conversation at a Christmas gathering last year, I struck a nerdy conversation, with a computer store owner that ultimately gave me this giant Thermaltake case without a motherboard and a few weeks later, another fortuitous happening where I was given a bunch of old computer equipment and an AM3 motherboard was among the rest of the aged equipment which drove the rest of the build. My course of action was to stuff the most memory and fastest processor in that which is what I did and I am happy with it. I am not going to belabor that process as I have talked about it before and I have a link you can follow if you are interested in those details.

    As a result of this, I had tons of fun, it was a great learning experience and that same guy gave me another case, not as big but far more robust in design with a water cooler. I now want to build another machine but I am thinking a more pure gaming machine and leave this current machine to be my server workstation. I don’t know when I would get to this but I think this one will be a project I do with my kids. Use it as a teaching opportunity and turn it into a kind of family event. Currently, the machine has a Core 2 Duo CPU platform of some kind. I think I would probably do another AMD build, something newer that can take advantage of these new fancy CPUs coming out. I still wouldn’t go bleeding edge but certainly something closer than what I have now.

    Emby Server Summation

    I have fully evaluated my use of Emby and given a little write up on it. I described the installation process, setting it up, importing my media files and so forth. I want to just summarize the highlights and the lowlights of my experience before I begin my next testing of Plex.

    What I like

    Emby is super easy to set up. It is nothing more than copying one line into a

    10 January, 2020


    openSUSE Tumbleweed es una distribución “Rolling Release” de actualización contínua. Aquí puedes estar al tanto de las últimas novedades.


    openSUSE Tumbleweed es la versión “rolling release” o de actualización continua de la distribución de GNU/Linux openSUSE.

    Hagamos un repaso a las novedades que han llegado hasta los repositorios esta semana

    El anuncio original lo puedes leer en el blog de Dominique Leuenberger, publicado bajo licencia CC-by-sa, en este enlace:

    La semana 2 de este recién estrenado año 2020 ha traido cosas esperadas, por ejemplo el Kernel linux 5.4 En total se ha publicado 5 “snapshots”: 0103, 0105, 0106, 0107 y 0108.

    Entre otras muchas actualizaciones se pueden destacar:

    • Linux kernel 5.4.7 (Snapshot 0108)
    • NetworkManager 1.22.2
    • Flatpak 1.6.0
    • Mesa 19.3.1
    • Rust 1.40

    Y en próximas “snapshots” podremos disfrutar de actualizaciones como:

    • RPM 4.15.1: quizás ya disponible para la próxima semana
    • systemd 244
    • Qt 5.14: a falta de algunas revisiones legales, pero ya todo técnicamente está preparadp
    • Kubernetes 5.17: Ya se ha parcheado un error que impedía que estuviera en los repositorios
    • Python 3.8: no va a estar pronto, pero ya se va trabajando en ello
    • Se elimina python 2: python 2 ya no está soportado oficialmente, así que se eliminará de la distro
    • SQlite 3.30
    • Más kernels de la rama 5.4
    • Mozilla Firefox 72
    • KDE Applications 19.12.1
    • KDE Plasma 5.17.5

    Si quieres estar a la última con software actualizado y probado utiliza openSUSE Tumbleweed la opción rolling release de la distribución de GNU/Linux openSUSE.

    Mantente actualizado y ya sabes: Have a lot of fun!!

    Enlaces de interés




    Dear Tumbleweed users and hackers,

    Week 2 this year brings you what many have been asking for: Kernel 5.4! YES, After the holiday season came to an end and the right people were back in business, we could address the issue around the invalid certificate chain and correct the issue. In total, Week 2 brought you five snapshots: 0103, 0105, 0106, 0107 and 0108, with all these nice changes:

    • Linux kernel 5.4.7 (Snapshot 0108, fresh off the press)
    • NetworkManager 1.22.2
    • Flatpak 1.6.0
    • Mesa 19.3.1
    • Rust 1.40

    Also, the staging projects are making progress and some of the long-standing areas are likely to be checked in rather soon. The major things coming your way in the near (or maybe distant) future are:

    • RPM 4.15.1: tests have all passed, you can expect this to come your way next week
    • systemd 244: one package’s test suite keeps on failing without anybody understanding what’s going on. Since this is a legacy package, it was decided to disable the test suite. So systemd 244 should now also be ready and be checked in soon
    • Qt 5.14: we are awaiting some legal reviews. Tests by openQA have all passed
    • Kubernetes 5.17: the last tests were still failing, but just today we received a submission that is supposedly fixing it
    • Python 3.8: not going to happen very soon – but it’s being worked on
    • Removal of python 2: python 2 is now officially no longer maintained by upstream. Work is undertaken to lower the usage footprint of python2, to the point where it can be removed from the distro
    • SQlite 3.30: python-Django is still failing
    • More kernels from the Linux 5.4 branch. You can expect them to come more frequent again
    • Mozilla Firefox 72
    • KDE Applications 19.12.1
    • KDE Plasma 5.17.5

    As you can see, the holiday is over – and things are being thrown at me at a high pace, in the hope to get it all integrated into Tumbleweed quickly. I’ll do what I can – but OBS and openQA resources tend to be limited 🙂


    TL;DR: Karena cukup panjang tulisan akan dibagi dalam 3 tulisan

    • Bagian 1 : membahas instalasi dan konfigurasi master postgresql
    • Bagian 2 : membahas instalasi dan konfigurasi slave postgresql
    • Bagian 3 : membahas instalasi dan konfigurasi pgpool-II

    Tulisan ini adalah Bagian ke-3.

    4. Instalasi pgpool

    Pgpool-II sudah terdapat di OBS repositori. Versinya sedikit terlambat dari versi rilis di web Pgpool. Saat tulisan ini dibuat versi Pgpool di website Pgpool adalah 4.1. Sementara paket di OBS repositori masih versi 4.0.6.

    Tambah repositori, install pgpool dan postgresql. Sebenarnya postgresql di mesin pgpool kita butuhkan hanya clientnya saja, untuk mengakses database (psql) dan backup (pg_dump) misalnya. Tapi untuk memudahkan kita install juga postgresql-server walaupun tidak perlu dijalankan

    zypper ar -e -f https://download.opensuse.org/repositories/server:/database:/postgresql/openSUSE_Leap_15.1/ postgresql
    zypper in --no-recommends pgpool-II postgresql12-pgpool-II postgresql12 postgresql12-server postgresql12-contrib

    Selanjutnya edit file /etc/hosts, misalnya pgsql1 untuk master, pgsql2 untuk slave1, pgsql3 untuk slave2.       localhost      pgpool      pgsql1      pgsql2      pgsql3

    Perhatikan bahwa kita menginstal pula paket postgresql12-pgpool-II, paket ini berisi library dan extension pgpool untuk PostgreSQL, ditandai dengan .sql dan .control. File-filenya tersimpan di direktori /usr/lib/postgresql12/lib64/, /usr/lib/postgresql12/lib64/bitcode/ dan /usr/share/postgresql12/extension/.

    Langkah berikutnya kita memasang extension pgpool tersebut pada database postgresql. Kita pasang extension pgpool tersebut pada template1. Lakukan 1 kali saja di master karena nanti akan otomatis tereplikasi di slave.

    sudo -i -u postgres
    psql template1
    CREATE EXTENSION pgpool_recovery;
    CREATE EXTENSION pgpool_adm;

    Periksa bahwa extension telah terpasang pada template1


    Pada master akan seperti

    Pada slave

    Pada saatnya nanti kita gunakan template1 sebagai template database yang akan kita buat sehingga otomatis database yang terbentuk akan memiliki extension pgpool. Misalnya gunakan pgadmin, buatlah sebuah database baru dengan dengan menggunakan template1 di master, maka database akan dibuat dengan extension pgpool_adm dan pgpool_recovery. Database dengan kondisi yang sama otomatis akan terbentuk di slave. Kalau berhasil artinya sulapan kita bekerja 🙂

    Langkah berikutnya adalah mengkonfigurasi file /etc/pgpool-II/pcp.conf. File ini berisi user dan password pgpool untuk admnistrasi management pgpool. Password dihash md5 dan formatnya adalah

     username:[md5 encrypted password]

    Buat password dalam format md5 dengan

    $ pg_md5 your_password

    Atau jika anda tidak ingin memperlihatkan password anda dengan cara:

     $ pg_md5 -p
        password: your_password

    Isi file pcp.conf dengan menggunakan hasil md5 tersebut misal


    Walaupun tidak wajib kita bisa mengisikan username dan password yang sama dengan user PostgreSQL agar mempermudah dalam mengakses dan mengingatnya.

    Jangan lupa lengkapi file /etc/pgpool-II/pool_hba.conf dengan ip address dari masing-masing server PostgreSQL (sesuaikan dengan ip mesin master dan slave), misalnya

    # "local" is for Unix domain socket connections only
    local   all         all                               trust
    # IPv4 local connections:
    host    all         all          trust
    host    all         all         ::1/128               trust
    host    all         all         md5
    host    all         all         md5
    host    all         all         md5

    Selanjutnya kita harus


    Apakah kamu salah satu pengguna software open source yang ingin berkontribusi kembali ke proyeknya?

    Pada kesempatan MozTalk kali ini kami akan membahas tentang cara berkontribusi ke proyek open source seperti openSUSE dan Mozilla Firefox. Akan ada 2 pembicara pada acara ini:

    • Kukuh Syafaat
      “Berkenalan (lagi) dengan openSUSE”
      Ngobrol mengenai teknologi, komunitas dan kontribusi di openSUSE
    • Herpiko Dwi Aguno
      “Ngoprek Mozilla Firefox”
      Siklus kontribusi kode di Mozilla Firefox dari ujung ke ujung

    MozTalk adalah salah satu program Mozilla Indonesia berupa sesi diskusi bertemakan teknologi dan perkembangannya. Untuk mengikuti acara ini, peserta diharapkan untuk memiliki ketertarikan untuk berkontribusi ke proyek open source

    Simpan tanggal berikut untuk ikut acara ini ya:

    Hari / Tanggal: Minggu / 19 Januari 2020
    Pukul : 14.00 – 17.00
    Tempat: Mozilla Community Space Jakarta, Gedung TIFA – ANNEX Suite Jl. Kuningan Barat I no.26 Jakarta Selatan (Google Map: https://goo.gl/maps/mjZZGmxdQzC2 )

    Perlu kami beritahukan, acara ini gratis dan tidak berbayar, dan kami tidak akan menyediakan makan siang, namun tersedia berbagai minuman dan snack/kue yang dapat dikonsumsi secara gratis oleh peserta secara/free flow/

    Pendaftaran: http://bit.ly/OSDayJakarta

    Sampai berjumpa!



    Apa itu Podman? Podman adalah mesin kontainer tanpa daemon untuk mengembangkan, mengelola, dan menjalankan container OCI di GNU/Linux. Kontainer dapat dijalankan sebagai root atau dalam mode tanpa root.Sederhananya: `alias docker=podman`.

    Podman dapat mengelola seluruh ekosistem container yang mencakup pod, container, container image, dan volume menggunakan pustaka libpod. Podman dapat menjalankan semua perintah dan fungsi yang membantu memelihara dan memodifikasi container image OCI, seperti menarik dan memberi tag. Ini memungkinkan untuk membuat, menjalankan, dan memelihara container yang dibuat dari image dalam lingkungan produksi.

    Memasang Podman

    sudo zypper in slirp4netns podman

    Menjalankan Podman Tanpa Akses Root

    sudo bash -c 'echo 10000 > /proc/sys/user/max_user_namespaces'
    sudo bash -c "echo $(whoami):100000:65536 > /etc/subuid"
    sudo bash -c "echo $(whoami):100000:65536 > /etc/subgid"

    Ujicoba Podman

    podman pull nginx:stable
    podman run --name nginx nginx:stable
    podman rm nginx

    Podman Cheat Sheet

    podman login docker.io
    podman search tuanpembual
    podman run docker.io/tuanpembual/hello
    podman run --rm --name hello -p 8080:80/tcp docker.io/tuanpembual/hello
    podman rm hello

    Sampe batas ini, ya memang benar kita bisa dengan entengnya membuat

    alias docker=podman

    di file .zshrc.


    Buildah – a tool that facilitates building OCI container images.

    Buildah adalah tool buat bikin container images, dengan beberapa fitur yang menawan, diantaranya:

    • Tidak ada Daemon. Jadi kalo mau build image ya tinggal build aja.
    • Buat image dari nol(scratch) atau dari image yang sudah jadi.
    • Merupakan Build tools external, sehingga memiliki karakter;Ukuran image lebih kecil,Membuat lebih aman dengan tidak memasukkan software untuk membuat container (like gcc, make, and dnf), Membutuhkan resource yang lebih kecil untuk mengirim images.

    Memasang Buildah

    sudo zypper in buildah

    Membuat image dengan Buildah dari Dockerfile

    # ls
    Dockerfile myecho
    # cat Dockerfile
    FROM registry.access.redhat.com/ubi8/ubi
    ADD myecho /usr/local/bin
    ENTRYPOINT "/usr/local/bin/myecho"
    # cat myecho
    echo "This container works!"
    # chmod 755 myecho
    # ./myecho
    This container works!

    Build Step

    # buildah bud -t tuanpembual/myecho .
    STEP 1: FROM registry.redhat.io/ubi8/ubi
    STEP 2: ADD myecho /usr/local/bin
    STEP 3: ENTRYPOINT "/usr/local/bin/myecho"

    Docker Format dan Push Image

    buildah bud --format=docker -t docker.io/tuanpembual/myecho .
    buildah push docker.io/tuanpembual/myecho

    Melihat List images

    buildah images
    podman images

    Menjalankan Container dan Memeriksa Container

    podman run --rm tuanpembual/myecho
    buildah inspect tuanpembual/myecho | less

    Dah itu saja dulu. Ngoprek selanjutnya bagaimana menggunakan dua perkakas ini ke Gitlab-CI.



    Right of the cuff, I should note that this will work on other Linux distros too, I am just focusing on openSUSE because, that is my jam. I have been using this on openSUSE Tumbleweed as of Snapshot 20200103. It should also work on Leap as of 42 and newer (that means Leap 15.x is good to go, in case there was any question).

    The reason this application excites me so is that I use several AppImages on my system. Which ones you may ask? I’ll tell you, xLights, which I use for my Christmas Light display, VirtScreen that I use when I am remote and need to turn my laptop or phone into a second display. This is super handy as it will not only create links in my menu to the AppImages, it will also copy the *.AppImage file into a designated folder, in my case ~/Applicaitons which is the default. At first, I wasn’t sure about it but after noodling it around a bit, I am totally good with it.


    The RPM for this isn’t in the repository and if you are interested in the non-root user installation, there is a “Lite” version but it is still new and not a recommended solution at this time.

    Navigate to the GitHub page of the project for the RPM. I am using the 64-bit version and thinking about it, I don’t actually know if there are any 32-bit AppImages, at least, I wouldn’t likely consider running an AppImage on my 32-bit machines. Regardless, there are several packages to choose from. Pick the correct one.

    AppImageLauncher on GitHub

    Downloaded appropriate RPM for your openSUSE (or other Linux if that’s what you are into), at the time of writing the version I am using is:


    Installation is very straight forward, I download all my RPMs to ~/Downloads/rpms and use the zypper command to install it.

    sudo zypper install ~/Downloads/rpms/appimagelauncher-2.1.0-travis897.d1be7e7.x86_64.rpm

    The installation didn’t pull in any other packages from the repository. Zypper does, however give you a little warning.

    This is just telling you that it is not signed. That is a security concern, so, if you do not trust the source of the RPM do not trust this and you may as well bail here on the process because the rest of it isn’t going to work for you.

    Assuming you are okay with this situation and want to proceed, type “i” and hit enter. That will complete your installation.

    Side note, on most desktop environments in openSUSE, you can install the RPM graphically too, but I just happen to think the terminal is more fun.

    First Run

    When you first run AppImageLauncher, you are presented with some options. The important one is, where to put the AppImages you launch.

    AppImageLauncher runs a service in the background and when you launch an AppImage you are given two

    09 January, 2020


    Veamos cómo solucionar un problema a la hora de guardar un documento de LibreOffice en una carpeta que contiene acentos en el nombre en el escritorio Plasma de KDE

    En el foro oficial de openSUSE en español, un usuario buscaba ayuda con un problema que le había surgido. El usuario utilizaba openSUSE como distribución de GNU/Linux y Plasma como entorno de escritorio.

    El problema era que al utilizar LibreOffice y querer guardar el documento en una carpeta de sus sistema que tenía acentos, le daba un error de carpeta no encontraba y no podía guardar el documento en la carpeta deseada.

    Varios usuarios (entre los que me incluyo) pudimos comprobar que efectivamente, en Plasma y LibreOffice de distintas versiones el problema ocurría igualmente.

    Finalmente un par de usuarios (gracias RGB y Karlggest) dieron un par de soluciones para ese contratiempo, hasta que se reporte el error y se solucione.

    El problema viene derivado de que el paquete libreoffice-qt5 que es el que hace que la aplicación se integre con los menús y el aspecto del entorno de escritorio Plasma gestiona mal las carpetas con acentos a la hora de guardar el documento en ellas.

    Por tanto las soluciones serían:

    • Desinstalar libreoffice-qt5 e instalar libreoffice-gtk3. Lo que haría que la aplicación LibreOffice tuviera un aspecto algo disonante con nuestro escritorio Plasma.
    • Establecer en el menú de LibreOffice: Herramientas – Opciones – General – Marcar la opción de “Usar los diálogos de LibreOffice” en la sección “Cuadros de diálogo para abrir y guardar”

    Con cualquiera de esas opciones el problema queda resuelto, aunque LibreOffice o alguno de sus menús tenga un aspecto distinto al de nuestro sistema.

    Espero que el error se reporte y pronto haya una solución para él y este artículo ya quede desfasado. Gracias a los compañeros de forosuse.org que siempre están dispuestos a ayudar y resolver los problemas que se presenten incluso cuando no tienen que ver con openSUSE 🙂


    TL;DR: Karena cukup panjang tulisan akan dibagi dalam 3 bagian

    • Bagian 1 : membahas instalasi dan konfigurasi master postgresql
    • Bagian 2 : membahas instalasi dan konfigurasi slave postgresql
    • Bagian 3 : membahas instalasi dan konfigurasi pgpool-II

    Tulisan ini adalah Bagian ke-2.

    3. Instalasi PostgreSQL slave node

    Instal PostgreSQL di mesin anda (instal di dua mesin slave, jika saat ini anda hanya punya satu mesin slave tidak mengapa)

    sudo zypper ar -e -f https://download.opensuse.org/repositories/server:/database:/postgresql/openSUSE_Leap_15.1/ postgresql
    sudo zypper in --no-recommends postgresql postgresql-server postgresql-contrib postgresql12-pgpool-II postgresql12 postgresql12-server postgresql12-contrib

    Pastikan bahwa instalasi anda bekerja, service postgresql dapat berjalan.

    sudo systemctl start postgresql.service
    sudo systemctl enable postgresql.service
    sudo systemctl status postgresql.servie

    Pastikan bahwa tidak ada error. Selanjutnya matikan service postgresql.

    sudo systemctl stop postgresql.service

    Kemudian masuk ke mesin slave, hapuslah directory /var/lib/pgsql/data

    rm -rf /var/lib/pgsql/data

    selanjutnya jalankan

    pg_basebackup -h ip_address_master -p 5432 -U nama_user_replication -v -D /var/lib/pgsql/data -Fp -Xs -P -R

    Kalau sukses maka akan muncul seperti:

    Setelah proses di atas selesai maka direktori /var/lib/pgsql/data akan terbentuk dan berisi:

    Ada sebuah berkas penting yang terbentuk di direktori data pada slave  setelah menjalankan pg_basebackup yaitu file standby.signal. File ini musti ada dalam direktori tersebut sehingga postgres dapat menentukan bahwa status server adalah slave/standby. File ini terbentuk otomatis saat menjalankan pg_basebackup dengan opsi “-R”. Jika tidak terbentuk maka buatlah file tersebut secara manual

    touch standby.signal

    Hal ini berhubungan dengan replication slot yang telah dibicarakan di atas. Pada PostgreSQL 12 akan terbentuk 2 file secara otomatis postgresql.auto.conf dan standby.signal. File postgresql.auto.conf secara otomatis berisi

    # Do not edit this file manually!
    # It will be overwritten by the ALTER SYSTEM command.
    primary_conninfo = 'user=nama_user_replikasi password=password_user_replikasi host=ip_address_master port=port_master sslmode=prefer sslcompression=0 gssencmode=prefer krbsrvname=postgres target_session_attrs=any'

    Sedangkan penanda bahwa server adalah standby/slave adalah file standby.signal

    Untuk PostgreSQL 11 ke bawah maka ada versi di mana postgresql.auto.conf terbentuk tetapi tidak ada isinya. Sehingga secara manual harus dibuat file recovery.conf yang berisi seperti:

    standby_mode = 'on'
    primary_conninfo = 'user=nama_user-replikasi password=password_user_replikasi host=ip_address_master port=port_master sslmode=prefer sslcompression=0 gssencmode=prefer krbsrvname=postgres target_session_attrs=any'

    Sedangkan file standby.signal tidak terbentuk, dan sebagai gantinya diganti dengan baris standby_mode = ‘on’ pada file recovery.conf.

    Jika kita yakin bahwa database sudah tereplikasi dan direktori data sudah terbentuk dengan baik maka tambahkan konfigurasi postgresql.conf di slave dengan 2 baris ini:

    hot_standby = on
    hot_standby_feedback = on

    hot_standby berfungsi untuk memberi tahu server bahwa server hanya digunakan untuk query read-only (load balancing).

    hot_standby_feedback berfungsi untuk mencegah baris-baris data dihapus terlalu cepat dari sisi slave. Hal ini dilakukan dengan memberi tahu server master ID transaksi yang terlama sehingga proses vacuum menunda penghapusan baris tertentu. Penjelasan mengenai vacuum dapat dibaca di sini.
    Selanjutnya aktifkan postgresql di mesin slave:

    sudo systemctl start postgresql.service
    sudo systemctl enable postgresql.service

    Memeriksa status replikasi

    Untuik memastikan bahwa replikasi antara master dan slave sudah


    The year of 2020, at least in the openSUSE world, is starting out to be pretty stable. In little more than a week into the new year, there have been five openSUSE Tumbleweed snapshots released.

    The releases, with the exception of one, are either posting a stable rating or are trending at a stable rating, according to the Tumbleweed snapshot reviewer.

    With the release of snapshot 20200107, more OpenGL and Vulkan driver features and improvements came in the update of the Mesa 19.3.1 package. The newer version update also provides better AMD Radeon Accelerated Processing Unit (APU) performance

    The bluez-tools package that is a set of tools to manage Bluetooth devices for Linux had a minor update from the previous three-year-old package included in Tumbleweed. GNOME’s web browser package epiphany provided some security AdBlocker preferences in the version. Message transfer agent exim reduced the start up process initialization with version and fixed more than a half dozen bugs. KDE’s kdevelop5 5.4.6 version fixed some wrong text in the license. Network detector, packet sniffer, and intrusion detection system package for wireless network kismet updated to its December release in the snapshot. One package update that stands out in the snapshot is the release of the finger reader package for Linux devices libfprint 1.0; this first major release provides better documentation and bug fixes related to restarting a failed verification immediately.The osc 0.167.2 package fixed regression in osc chroot. Other packages updated in the snapshot were rubygem-parser and tigervnc 1.10.0 among others.

    Snapshot 20200106 snapshot provided an update of ImageMagick that fixed the a bug for custom profile (CMYK or RGB) conversions and the -layers optimize option now requires a fully transparent previous image. Argyll Color Management System package argyllcms had a new major version update; the 2.1.1 version update removes bundled zlib source, that could trigger a fatal rpm check failure on Leap 15.x. The library for handling OpenGL function pointer management libepoxy 1.5.4 requires only the python3-base package for building instead of full python3 package. GNOME’s photo manager shotwell 0.30.8 updated translations and fixed Tumblr publishing.

    Several updated YaST packages came in the 20200105 snapshot. Improved sorting by device name and size in tables were made with the yast2-storage-ng 4.2.67 update and an improved warning when all repositories are disabled were made with the yast2-packager 4.2.42 update. The same version number for yast2-network added support for reading / writing Maximum Transmission Unit (MTU). The libstorage-ng 4.2.44 package improved the sort-key for block devices and libyui 3.9.1 added sort key to the table cell. Python-passlib 1.7.2 added some new features like supports Argon2 and utility program to control and monitor computer storage systems smartmontools 7.1 added enhancements for AT Attachment (ATA) ACS-4 and ACS-5

    08 January, 2020


    Vous savez déjà qu'openSUSE est une fantastique plateforme pour faire à peu près tout avec Linux. Alors, qu'est-ce qui se cache derrière cette distribution facile à utiliser et super puissante que nous connaissons et aimons et sur laquelle nous comptons ? Dans de nombreux esprits, il y a la perception que c'est simplement SUSE avec le code propriétaire supprimé. Il est vrai qu'une grande partie du travail de développement découle de SUSE, mais il existe également une communauté active de bénévoles dévoués qui conduisent et font fonctionner le projet, apportant toutes les bonnes choses que nous tenons pour acquises dans le cadre de la myriade d'utilisations que nous avons d'openSUSE et sur lesquelles nous comptons.

    Nous sommes en période d'élection à openSUSE et le comité électoral a demandé à un membre du conseil, Gertjan (aka Knurpht), qui a accepté de se présenter à nouveau et de se présenter à la réélection de ce que cela fait d’être membre du conseil. Vous trouverez ci-dessous une transcription d'une interview hors ligne entre un autre membre du comité électoral, Edwin et Gertjan, mettant en évidence ce que c'est que d'être membre du conseil openSUSE.

    Edwin: Souhaites-tu nous parler de ton emploi du temps quotidien et quel impact cela a-t-il sur le fait d'être membre du conseil openSUSE ?

    Gertjan: Pour être honnête, mon planning quotidien varie beaucoup, selon ce que j'ai à faire. La plupart du temps, cela me laisse suffisamment de temps libre pour faire des choses liées au conseil. Mais avant d'être à bord, j'ai également passé du temps dans openSUSE, c'est-à-dire les forums, l'IRC, etc., donc le principal impact sur mon horaire quotidien a été les appels bimensuels en vidéoconférence. Pour le reste, je répartis le temps libre un peu différemment. Cela prend cependant quelques heures, sur une semaine moyenne.

    Edwin: Te souviens-tu toujours de ce qui t'a motivé à candidater pour la première fois? Et puis pourquoi une deuxième fois?

    Gertjan: Ô, oui, je m'en souviens. Richard (Brown, le précédent représentant du conseil) m'a demandé si j'avais déjà envisagé de me présenter au conseil. Ma réponse a été "Hé, tu me connais, je suis celui qui pousse les autres à candidater"… Après d'une petite discussion, d'une nuit de sommeil et d'autres demandes à me porter candidat, je sentais que je ne pouvais pas ignorer tout cela, et au moins voir si la communauté m'accepterait au sein du conseil. Donc, fondamentalement, la communauté m'a motivé et a estimé que je devais y aller. La deuxième fois n'était pas très différente. Et, dans les deux cas, la plus grosse motivation était l'amour que je ressens pour le projet et les gens de sa communauté.

    Edwin: Quelle a été ta première tâche en


    TL;DR: Karena cukup panjang tulisan akan dibagi dalam 3 bagian

    • Bagian 1 : membahas instalasi dan konfigurasi master postgresql
    • Bagian 2 : membahas instalasi dan konfigurasi slave postgresql
    • Bagian 3 : membahas instalasi dan konfigurasi pgpool-II

    Tulisan ini adalah Bagian ke-1.

    Sebagai pengguna postgresql kadang kita membutuhkan cluster database baik karena pertimbangan HA maupun karena pertimbangan pembagian beban (load balancing). Sayangnya postgresql hanya memiliki implementasi native untuk replikasi tetapi tidak untuk cluster. Sehingga untuk membangun cluster harus menggunakan aplikasi lain. Ada banyak solusi untuk membuat cluster di postgresql dan yang dijelaskan di sini adalah Pgpool-II.

    Tulisan ini membahas konfigurasi postgresql cluster (master-slave load balancing). Penjelasan singkatnya:

    • Postgresql dipasang di 3 mesin, 1 master dan 2 slave
    • Pgpool dipasang di 1 mesin terpisah.
    • Replikasi diserahkan kepada postgresql
    • Pgpool akan mengatur load balancing, proses tulis/write (insert, update, delete, dll) akan dilakukan di master sedangkan proses baca/read (select, dll) akan dibagi 3, ke master dan ke-2 slave.

    Desain logikal adalah sbb:

    Dalam contoh ini dibutuhkan 4 mesin, walaupun bisa saja pgpool dipasang pada mesin master. Pgpool tidak membutuhkan resource yang besar dan tugasnya adalah mendistribusikan beban ke setiap mesin postgresql. Dengan cara demikian postgresql terasa jauh lebih ringan kerjanya dibanding jika kita memiliki 1 mesin postgresql dengan jumlah CPU dan RAM yang sama dengan gabungan 3 mesin postgresql yang bekerja secara load balance.


    1. Instalasi openSUSE

    Siapkan mesin. Untuk implementasi server biasanya saya menggunakan openSUSE Jeos dari http://download.opensuse.org/distribution/leap/15.1/jeos/ atau openstack image dari http://download.opensuse.org/repositories/Cloud:/Images:/Leap_15.1/images/

    Tentu saja anda tetap bisa menggunakan image DVD seperti biasa dan menginstall minimum server. Silakan dipilih yang sesuai dengan kondisi anda. Dalam implementasi tulisan ini digunakan 1 mesin untuk pgpool dan 3 mesin untuk postgresql.

    Sebagai catatan postgresql bekerja mengandalkan CPU karena itu tuninglah instalasi kernel openSUSE dan konfigurasi postgresql anda. Postgresql.conf harus dituning sesuai dengan kondisi mesin dan implementasinya. Untuk implementasi standar seperti untuk blog, website sederhana atau aplikasi kecil yang transaksinya tidak besar, menggunakan konfigurasi bawaan postgresql.conf sudah memadai, tetapi untuk aplikasi yang membutuhkan kinerja database yang optimum, konfigurasi postgresql.conf harus disesuaikan. Bagaimana melakukan tuning postgresql dan kernel silakan dibaca di sini. Pgpool karena hanya bekerja sebagai proxy cukup hemat dalam penggunaan CPU dan RAM. Sebagai gambaran saya menggunakan postgresql yang saat ini besaran datanya sekitar 15 juta baris, dengan penambahan data sekitar 100 ribu baris perhari. Data kami di-backup per hari, dan setiap sebulan sekali data berumur di atas 6 bulan diarsip. Masing-masing VM postgresql memiliki 4 vCPU dan 4GB RAM. Kondisi beban 100% sekitar 50% dari waktu sisanya dibawah 70%.

    2. Instalasi PostgreSQL master node

    Tambah repositori, install postgresql

    sudo zypper ar -e -f https://download.opensuse.org/repositories/server:/database:/postgresql/openSUSE_Leap_15.1/ postgresql
    sudo zypper in --no-recommends postgresql12-pgpool-II postgresql12 postgresql12-server postgresql12-contrib

    Di contoh ini saya menggunakan postgresql12, sekiranya anda ingin menggunakan versi yang lain silakan diganti. Di repo postgresql tersedia versi 9.4, 9.5, 9.6, 10, 11 dan 12.

    Selanjutnya jalankan


    Veamos algunos comandos para redimensionar las ventanas de nuestro editor Vim, en el caso en que tengamos la vista del editor dividida en partes.

    Si estamos trabajando con un editor de texto, una buena herramienta es que se pueda dividir la vista de la ventana fácilmente y de la manera que más nos guste.

    Vim permite esa división de la ventana en vertical u horizontal y de forma sencilla mediante el teclado se puede redimensionar cada una de las ventanas para adaptarlas a nuestros gustos o necesidades. Veamos algunas opciones.

    Este artículo viene a engrosar la lista de artículos sobre Vim que vengo publicando en mi blog desde hace meses y que puedes encontrar en este enlace:

    Si estamos trabajando con el editor Vim editando un archivo, podremos dividir la vista de la ventana y de manera horizonta o vertical abrir una segunda (tercer, cuarta, etc) ventana en la que ver otras partes del archivo en edición, otros archivos, la ayuda de Vim, etc.

    Quizás queramos en un momento aumentar una de las ventanas, para ver más parte del texto mostrado o porque por gustos nos parece más productivo. Para manejar el tamaño de las ventanas podremos utilizar los siguientes comandos de Vim

    Si tenemos una ventana, podemos dividir la vista mediante :sp ahora si queremos agrandar una ventana sobre la otra, en la ventana pulsaremos la combinación de teclas:

    • Ctrl-w + (para agrandar la ventana)
    • Ctrl-w – (para disminuir el tamaño de la ventana)

    Es decir, pulsamos la tecla Control y la tecla w y podemos soltar y después la tecla + o – para aumentar o disminuir una fila la ventana.

    Si queremos aumentar o disminuir 15 a la vez la ventana pulsaremos:

    • Ctrl-w 15 + (para agrandar 15 filas la ventana)

    Si preferimos la división vertical de ventanas, abrimos una segunda ventana mediante el comando :vsp Y para agrandar o disminuir una ventana dividida verticalmente utilizaremos:

    • Ctrl-w <
    • Ctrl-w >

    Y de manera similar si queremos mover 15 filas a la vez una ventana, simplemente ejecutaremos:

    • Ctrl-w 15 >

    Para mover una ventana al máximo tamaño permitido ejecutaremos:

    • Ctrl-w | (para la división vertical)
    • Ctrl-w _ (para la división horizontal)

    Y finalmente si queremos igualar el tamaño de todas las ventanas que tengamos abiertas, simplemente ejecutaremos:

    • Ctrl-w =

    Aquí tienes un vídeo demostrativo del proceso. El vídeo está en formato webm disponible en archive.org

    También disponible en YouTube para quien prefiera esta plataforma en el siguiente enlace:


    Con estos comandos sacaremos más partido a la opción de dividir la pantalla de Vim y de manera sencilla y rápida nos centraremos en la parte que más nos interese.

    Unity 3D logo

    Το Unity 3D είναι ίσως η δημοφιλέστερη μηχανή κατασκευής παιχνιδιών. Για "προσωπική χρήση" και ειδικότερα για το ξεκίνημά σας παρέχεται δωρεάν, αρκεί τα ετήσια κέρδη να μην υπερβαίνουν τα $100 χιλ. Το παραπάνω έχει μια λογική διότι η εταιρία επιτρέπει τον κάθε χρήστη να χρησιμοποιήσει την πλατφόρμα της, να δημιουργήσει ένα παιχνίδι με βάση το πρόγραμμα Unity 3D και εάν αυτό είναι είναι επιτυχημένο, τότε προτρέπει στην αγορά της άδειας χρήσης. Εάν ο δημιουργός έχει έσοδα 100.000$, τότε δεν θα έχει πρόβλημα να πληρώνει 125$ το μήνα (ήτοι 1500$ το χρόνο).

    Στην αρχική σελίδα, επιλέγοντας Personal, θα σας βγάλει στην ιστοσελίδα των λήψεων. Εδώ μπορεί να βρείτε εκδόσεις μόνο για windows και macosx. Οπότε καλύτερα επισκεφθείτε το forum και από εκεί κατεβάστε το Unity Hub για Linux.

    Το Unity Hub είναι μια αυτόνομη εφαρμογή που συγκεντρώνει όλα τα απαραίτητα για να δημιουργήσετε το δικό σας παιχνίδι. Πάμε να δούμε πως γίνεται η εγκατάσταση.

    1. Αφού κατεβάσατε το Unity Hub για Linux, πρέπει να το κάνετε εκτελέσιμο. Πατήστε δεξί πλήκτρο>Ιδιότητες και στην καρτέλα δικαιώματα, επιλέξτε το Να επιτρέπεται η εκτέλεση του αρχείου ως πρόγραμμα.

    Unity 3D, Εκτέλεση του αρχείου ως πρόγραμμα

    2. Διπλό κλικ πάνω στο αρχείο. Θα ερωτηθείτε εάν συμφωνείτε με την άδεια χρήσης:

    Unity 3D, Άδεια χρήσης

    Ενώ στη συνέχεια θα ερωτηθείτε εάν θέλετε να προστεθεί στο μενού.

    Unity 3D, Προσθήκη στο μενού

    Η αλήθεια είναι ότι όταν το εγκατέστησα δεν μου το πρόσθεσε. Κάθε φορά το άνοιγα με διπλό κλικ στο αρχείο. Εναλλακτικά μπορείτε να το εισάγετε με το menulibre ή με τερματικό:

    Δημιουργήστε ένα αρχείο unity3d.desktop στο /usr/share/applications (ή ~/.local/share/applications ή κατευθείαν στο ~/Desktop) με τον παρακάτω κώδικα:

    [Desktop Entry]
    Name=Unity 3D

    Θα αλλάξετε μόνο τα:

    Exec=/path/to/unity/executable (εκεί που βρίσκεται το appimage)
    Icon=/path/to/unity/icon (εκεί που βρίσκεται το εικονίδιο της εφαρμογής)

    3. Μόλις ανοίξει, θα σας ζητήσει άδεια χρήσης. Προφανώς έχετε την προσωπική χρήση, οπότε απλά δεν σας ενδιαφέρει για τώρα.

    Unity 3D, Ερώτηση για άδεια χρήσης

    Πατήστε επάνω δεξιά για να εισέλθετε (εάν έχετε λογαριασμό) ή να δημιουργήσετε νέο λογαριασμό.

    Unity 3D, Unity ID

    Εάν δεν έχετε, πατήστε Create one. Αλλιώς εισάγετε τα όνομα χρήστη και συνθηματικό.

    Unity 3D, Οθόνη εισόδου

    Αφού εισέλθετε θα δείτε τα στοιχεία σας επάνω δεξιά.

    Unity 3D, Εισήλθαμε στον λογαριασμό μας

    4. Μετακινούμαστε στην οθόνη των Projects.

    Unity 3D, Οθόνη projects

    Εδώ θεωρητικά πατάμε το Add και ξεκινάμε νέο έργο για κατασκευή παιχνιδιού. Όμως δεν είναι ακόμα εγκατεστημένο το Unity 3D. Οπότε πρέπει να πατήσουμε στο Installs.

    5. Στο Installs, πατάμε το Add.

    Unity 3D, Εγκατάσταση Unity

    Τώρα θα μας ρωτήσει ποια έκδοση Unity θέλουμε να εγκαταστήσουμε.

    Unity 3D, Επιλογή έκδοσης Unity

    Αφού επιλέξουμε την έκδοση, θα πρέπει να επιλέξουμε και κάποια πρόσθετα. Ανάλογα για ποια πλατφόρμα θέλετε να έχετε διαθέσιμο το παιχνίδι, εγκαθιστάτε τα ανάλογα πρόσθετα.

    Unity 3D, Εγκατάσταση προσθέτων

    Όταν τελειώστε, πρέπει να περιμένετε, ανάλογα με την ταχύτητα του δικτύου σας.

    Παρόμοια διαδικασία ακολουθείται και στις άλλες διανομές.

    Εσείς έχετε φτιάξει κάποιο παιχνίδι; Αν ναι, αφήστε σχόλιο να το δοκιμάσουμε.


    Bagi yang terbiasa mengunduh file menggunakan download manager, mungkin banyak pilihan download manager yang dapat digunakan baik melalui ekstensi browser maupun melalui tools di konsole/terminal linux, beberapa alasan saya menggunakan download manager adalah agar dapat melakukan pause dan resume pada file yang di unduh.

    pada tulisan ini saya akan memberikan sedikit panduan untuk memasang download manager berbaskasih komentar dan saranyais desktop yaitu JDownlader. JDownloader sendiri adalah tools download manager berbasis open source yang dapat di pasang di banyak platform salah satunya di Linux openSUSE, oke langsung saja buka konsole/terminal dan ketik perintah berikut

    wget -c http://installer.jdownloader.org/JD2Setup_x64.sh

    kemudian berikan executable pada file

    chmod +x JD2Setup_x64.sh

    lanjutkan proses pemasangan dengan mengetik perintah berikut

    sh JD2Setup_x64.sh

    dan lanjutkan intruksi yang tertera di layar

    setelah selsai dapat langsung digunakan, jangan lupa untuk di integerasikan dengan ekstensi browser yang di pakai.

    apabila ada kendala silahkan berikan komentar dan sarannya, sekian dan terimakasih.




    Making videos is not exactly my strong suit but it doesn’t have to be to enjoy it. Lately, I have been dipping my toes into the world of video content creation. Yes, most of it is into making videos as I haven’t really had the need. Recently, a need popped up for doing some video editing and I decided to give Kdenlive a try. You have to start somewhere and since many of the independently created shows out there use it, it is part of the KDE project and there are a LOT of tutorials on YouTube.

    Keep in mind, I have some very basic needs, simply, chaining clips together, title screen and a little background music. These are extremely minimal requirements. The nice thing about Kdenlive is, it is easy enough to get going with it, but brimming with features to keep you dinking around with it continually and even if you have come to learn every feature the Kdenlive Project will come along and bring you an update.


    Kdenlive is available in the main repositories for both Leap and Tumbleweed. To install the latest version for Leap, you will have to add the Experimental KDE:Applications repository. 19.12 is available in the official Tumbleweed repository.

    To install it with the graphical Direct Installation navigate here.


    For Tumbleweed, in terminal

    sudo zypper install kdenlive

    And that is all it takes.


    Right off the hitch, Kdenlive is a great looking application, it has a clean and pleasant interface that is incredibly functional. I use a modified version of Breeze Dark, what I call openSUSE Breeze Dark. The dark screen with the green tones make for a comfortably openSUSEy for extended hours of work.

    I have been using Kdenlive for about a year or so and it has been great since day one. I must make the caveat that I don’t do anything terribly complex in Kdenlive. I mostly use fades and dissolves. In fact that is my primary usage of it.

    For one video, I rotated the screen 180° because I purposely recorded it upside down so that I wouldn’t crash into the camera with by big stupid nose. In retrospect, this video of the hard drive caddy was probably a waste of time to do because it is so basic and elementary of a feature to highlight on the computer, but it was a good exercise in learning the some of the other various features in Kdenlive.

    What was handy and very quick to do were my Christmas light musical sequence videos. I recorded the video and added the music as a post edit. Kdenlive made it easy to do. I just lined up the flashes with the appropriate spot in the music.

    Kdenlive really has made all these little things easy to do and they made it possible without having to spend loads of cash for a nonsense hobby that fills the little voids and


    One of the main reasons I build a computer was for the purposes of hosting my video content on my system and serve it to other machines. I had heard about having something like Netflix or Hulu in the form of Plex. I have known others that have done this and have always been impressed by it. My first stop in exploring media servers in Linux was Emby. I chose it largely because I heard of Plex and wanted to try something that was open source based, more on that later. At the very beginning of this exercise, I decided I want to try out three different server products, Plex, Emby and Jellyfin.

    This is my review, with no real expectations, other than to easily have access to my movies and TV shows from any device in the house. This is a review of only the free services, not the paid features. Bottom line up front. I like it and it has few issues.


    The installation was surprisingly easy to do with Emby on openSUSE. Instructions for openSUSE were right there, ready and waiting for me to utilize them. Navigate to:


    There is a nice little drop down where you can select “OpenSuse” very sadly cased incorrectly but that is a small detail, nothing terrible, I’ve made mistakes too in casing the project name.

    There are 6 options from which to choose. Two are for the x86_64 architecture, the other four are ARM options. Since I am installing on 64bit x86 architecture, and I am not interested in beta testing Emby, I chose the first option.

    The command uses zypper to install an RPM from a GitHub repository. This doesn’t install a repository or anything so at this point, I am unsure about how updates are handled. From what I can tell, I will have to install updates manually. I’m sure there is a better way.

    After the installation, open a web browser to http://localhost:8096 to perform the setup of the service. Things like your user information.

    The next step will be to set up your media library. You select your content type a display name for it, the location and other bits you and flags you find important, like language settings and metadata downloaders.

    There are more library settings here than I really know what to do with. I filled out what made sense, set the language preferences to English and moved on with the process.

    I added my movies, TV shows and Documentaries folders.

    Then moved onto the next section where I again set the metadata language, configured to allow remote access. I haven’t actually set my firewall to allow remote access to test the performance of this remotely.

    Lastly, you will have to agree to the terms of service and your done!

    First Run and Impressions

    Running this media server is as easy as navigating to http://localhost:8096 and signing into the service, not

    07 January, 2020

    Version of geewallet has just been published to the snap store! You can install it by looking for its name in the store or by installing it from the command line with `snap install geewallet`. It features a very simplistic and minimalistic UI/UX. Nothing very fancy, especially because it has a single codebase that targets many (potential) platforms, e.g. you can also find it in the Android App Store.

    What was my motivation to create geewallet in the first place, around 2 years ago? Well, I was very excited about the “global computing platform” that Ethereum was promising. At the time, I thought it would be like the best replacement of Namecoin: decentralised naming system, but not just focusing on this aspect, but just bringing Turing-completeness so that you can build whatever you want on top of it, not just a key-value store. So then, I got ahold of some ethers to play with the platform. But by then, I didn’t find any wallet that I liked, especially when considering security. Most people were copy+pasting their private keys into a website (!) called MyEtherWallet. Not only this idea was terrifying (since you had to trust not just the security skills of the sysadmin who was in charge of the domain&server, but also that the developers of the software don’t turn rogue…), it was even worse than that, it was worse than using a normal hot wallet. And what I wanted was actually a cold wallet, a wallet that could run in an offline device, to make sure hacking it would be impossible (not faraday-cage-impossible, but reasonably impossible).

    So there I did it, I created my own wallet.

    After some weeks, I added bitcoin support on it thanks to the library NBitcoin (good work Nicholas!). After some months, I added a cross-platform UI besides the first archaic command-line frontend. These days it looks like this:

    What was my motivation to make geewallet a brain wallet? Well, at the time (and maybe nowadays too, before I unveil this project at least), the only decent brain wallet out there that seemed sufficiently secure (against brute force attacks) was WarpWallet, from the Keybase company. If you don’t believe in their approach, they even have placed a bounty in a decently small passphrase (so if you ever think that this kind of wallet would be hacked, you would be certainly safe to think that any cracker would target this bounty first, before thinking of you). The worst of it, again, was that to be able to use it you had again to use a web interface, so you had the double-trust problem again. Now geewallet brings the same WarpWallet seed generation algorithm (backed by unit tests of course) but on a desktop/mobile approach, so that you can own the hardware where the seed is generated. No need to write anymore long seeds of random words in pieces of paper: your mind is the limit


    You already know what a fantastic platform openSUSE is for doing just about anything with Linux. So what’s behind that easy-to-use and super powerful distribution that we know and love, and have come to rely on. In many minds there is a perception that its simply SUSE with the proprietary code stripped out. It’s true that a lot of the development work does flow down from SUSE but there is also an active community of dedicated volunteers who drive and make the project work, adding the goodies we have come to take for granted for the myriad of uses we have come to rely on it for.

    It’s election time at openSUSE and the election board asked an existing board member Gertjan who has agreed to step up again and run for re-election of what it is like to be on the board. Below is a transcript of an offline interview between fellow election committee member Edwin and Gertjan highlighting what it’s like to be on the board of openSUSE.

    Edwin: Would you like to tell us about your daily schedule and how does being an openSUSE Board member impacts on that?

    Gertjan: To be fair, my daily schedule varies a lot, depending on what is on my table. Most of the time this leaves me with enough spare time to do board related things. But before I was on board, I spent that time in openSUSE too, i.e. forums, IRC etc., so the main impact on my daily schedule were the bi-weekly video conference calls. For the rest I just spread the spare time a bit differently. It does take a couple of hours though, on an average week.

    Edwin: Do you still remember what motivated you to step up for Board candidacy the first time? And then why a second time?

    Gertjan: O, yes, I do. I was asked by Richard whether I had ever considered running for board. My reply was “Hey, you know me, I’m the one that considers others to run”… Followed by a small discussion, a night of sleep, some others asking me to step up as a candidate. All in all, I felt I could not ignore all that, and at least see if the community would have me on board. So basically the community motivated me, and felt I had to go for it. The second time was not much different. And, in both cases, a huge motivation was the love I feel for the project and the people in its community.

    Edwin: What was your first task as a Board member?

    Gertjan: To read all the docs. Like many people, I had to find out that my impression of what the board does wasn’t accurate.

    Edwin: What’s your best memory serving on the openSUSE Board?

    Gertjan: Lots of good memories, but to summarize: The learning experience re. all the aspects of the openSUSE Project, the relationship with SUSE.

    Edwin: Any negative incident that

    06 January, 2020


    As you might have noticed on our status page, our etherpad instance at https://etherpad.opensuse.org/ was updated to the latest version 3 days ago.

    But this time,we did not only upgrade the package (which lives, btw, in our openSUSE:infrastructure project), we also migrated the underlying database.

    As often, the initial deployment was done with a "just for testing" mindset by someone, who afterward left his little project. And - also as often - these kind of deployments suddenly became productive. This means - in turn - that our openSUSE heroes team suddenly gets tickets for services we originally did neither set up, nor maintain.

    For etherpad, this means that we suddenly faced a "dirty.db" file of over 2GB in size, filling up the root-fs of the machine. Upstream even has a warning in their boot script, telling everyone that a dirty.db is NOT for production... :-/

    The first try, using the dirty-db-cleaner.py script to reduce the size, did not finish after 2 days. So we decided to dump the data directly from the dirty.db into our Galera cluster. After fixing the initially created table scheme from MyISAM to InnoDB (Galera does not like MyISAM), the migration script took "only" 16 hours.

    With this final migration, we hope to be prepared for the next update - and hope that this only takes minutes again.


    Ini cuma ulasan pendek di sela-sela kegalauan turing nyepeda.

    Masih mengingat beberapa pe-er komunitas, bareng Ish Sookun untuk mengerjakan beberapa tulisan terkait Kubic, dan turunannya. Belum sempat nyolek lagi. Saya mencoba menulis catatan kecil tentang mainan di akhir tahun. Ini sebenarnya merupakan catatan lama, namun tersisih di mesin berbeda.

    Balik ke tema, saya sedang coba-coba menggunakan container daemon selain docker.


    What is Podman? Podman is a daemonless container engine for developing, managing, and running OCI Containers on your Linux System. Containers can either be run as root or in rootless mode. Simply put: alias docker=podman.

    Containers under the control of Podman can either be run by root or by a non-privileged user. Podman manages the entire container ecosystem which includes pods, containers, container images, and container volumes using the libpod library. Podman specializes in all of the commands and functions that help you to maintain and modify OCI container images, such as pulling and tagging. It allows you to create, run, and maintain those containers created from those images in a production environment.


    Kira-kira begitu pengertiannya.

    Persiapan Lab

    Saya mencoba podman di minipc saya dan di laptop dalam vagrant. Step-step berikut saya lakukan dalam vagrant. Berikut Vagrantfile saya:

    Vagrant.configure("2") do |config|
      config.vm.box = "opensuse/Tumbleweed.x86_64"
      config.vm.box_version = "1.0.20191231"
      config.vm.define :podman do |podman|
        podman.vm.network "private_network", ip: "", bridge: "wlan0"
        podman.vm.provider "virtualbox" do |vb|
          vb.memory = "1024"

    Lanjut dengan vagrant up dan vagrant ssh. Akan login sebagai user vagrant

    Bacaan Podman

    Memasang Podman

    sudo zypper in slirp4netns podman


    sudo bash -c 'echo 10000 > /proc/sys/user/max_user_namespaces'
    sudo bash -c "echo $(whoami):100000:65536 > /etc/subuid"
    sudo bash -c "echo $(whoami):100000:65536 > /etc/subgid"

    Menjalankan Podman

    FYI: ubi=Red Hat universal base image

    podman pull registry.access.redhat.com/ubi8/ubi
    podman run --name redhat registry.access.redhat.com/ubi8/ubi cat /etc/os-release
    podman rm redhat

    Podman Cheat Sheet

    podman login docker.io
    podman search tuanpembual
    podman run docker.io/tuanpembual/hello
    podman run --rm --name hello -p 8080:80/tcp docker.io/tuanpembual/hello
    podman rm hello

    Sampe batas ini, ya memang benar kita bisa dengan entengnya membuat alias docker=podman.


    Bacaan Buildah

    Buildah – a tool that facilitates building OCI container images.


    Buildah adalah tool buat bikin container images, dengan beberapa fitur yang menawan, diantaranya:

    • Tidak ada Daemon. Jadi kalo mau build image ya tinggal build aja.
    • Buat image dari nol(scratch) atau dari image yang sudah jadi.
    • Merupakan Build tools external, sehingga memiliki karakter:
      • Ukuran image lebih kecil
      • Membuat lebih aman dengan tidak memasukkan software untuk membuat container (like gcc, make, and dnf) within the resulting image.
      • Membutuhkan resource yang lebih kecil untuk mengirim images.

    Buildah is able to operate without Docker or other container runtimes by storing data separately and by including features that let you

    <- Current blog entries