Skip to main content

the avatar of Alberto Garcia

Estabilizar luz (deflicker) de un timelapse en Linux

Un timelapse es una secuencia de fotografías tomas a intervalos regulares y procesadas posteriormente para componer con ellas una secuencia de vídeo. Hasta ahí todo claro. El problema es que para que la secuencia de vídeo tenga cierta continuidad, suavidad y aspecto “real” hay cumplir una serie de requisitos. La exposición fotográfica y el control del balance de blancos en la cámara debe ser dispuesta en modo manual de lo contrario los continuos ajustes que la cámara haga entre fotograma y fotograma provocarán una película llena de “saltos” en la luz de la escena, algunos muy sutiles y otros auténticas verbenas de luces.
El verdadero problema es que incluso estableciendo estos controles en manual estos saltos de luminancia, por otras cuestiones, siguen apareciendo. Es raro que una réflex haga en idénticas condiciones 250 fotos exactamente iguales y que no “salten” al verlas en formato de vídeo (parece que este defecto solo afecta a las réflex no a compactas por lo que muy probablemente se deba a pequeñas imprecisiones del diafragma del objetivo, reflejos internos de luz en el visor, etc… ).
Es el llamado “flickeo” de un timelapse, pequeñas variaciones de luz entre fotogramas contiguos que provocan que el vídeo “parpadee” muy sutilmente resultando extremadamente molesto.

Herramientas deflicker

Para evitar este “flickeo” aparecen las herramientas de “deflicker“. Básicamente son script muy sencillos que toman la secuencia de fotografías (ojo fotos originales, no vídeo resultante) analizan la luminancia de los fotogramas con sus “vecinos” y la alteran para amortiguar estos saltos de luz.
Como os podéis imaginar hay multitud de herramientas, de las que he probado y con diferencia la que mejores resultados produce es VirtualDub, una herramienta opensource para Windows con la que manipular vídeos y secuencias fácilmente.
Para GNU/Linux en terminal existe otra herramienta todavía más sencilla pero con muy buenos resultados: timelapse-deflicker.pl, un script en PERL.

Timelapse-deflicker.pl

Para instalar el script simplemente descarga este archivo timelapse-deflicker.pl, guardalo en ~/bin/, hazlo ejecutable (chmod +x ~/bin/timelapse-deflicker.pl) y ejecuta en consola timelapse-deflicker.pl -hEs posible que tengas que instalar algunas librerías PERL para que funcione correctamente.

Entra en la carpeta donde tengas la secuencia de imágenes que componen el timelapse y en un terminal escribestimelapse-deflicker.pl -p 1 -w 15 Mi_secuencia*.jpg
Dentro de dicha carpeta el script creará otra llamada Deflickered donde irá produciendo otras tantas imágenes con la luz ya estabilizada. El proceso es lento y puede tardar alrededor de media hora para 250 fotografías. Al final comprueba si el resultado es de tu agrado generando un vídeomencoder mf://Deflickered/*jpg -vf scale -zoom -xy 512 -ovc lavc -o demo.avi

Haz pruebas, posiblemente tengas que probar diversos valores de -p y -w, yo suelo utilizar 2 pasadas (-p 2) y anchura de 30 (-w 30)timelapse-deflicker.pl -p 1 -w 15 Mi_secuencia*.jpg
Ten en cuenta, si el parpadeo (flicker) es fruto de un timelapse hecho con el exposímetro o el balance de blancos en automático, no hay Deflicker que lo arregle.

the avatar of Jigish Gohil

Banana Pi M2 running openSUSE Tumbleweed

Following up from my earlier post about openSUSE LTSP on Banana Pi, Nora Lee from the manufacturer of the board got in touch with me and sent me a couple of their new boards- Banana Pi M2, runs on A31s quad-core CPU and has 1G RAM, powerful enough to run openSUSE Tumbleweed with Xfce Desktop.

Here is how you can get openSUSE running on Banana Pi M2.

* Download the image

* Extract the archive to get openSUSE-Tumbleweed-Bpi-M2-Xfce.img

* Dump openSUSE-Tumbleweed-Bpi-M2-Xfce.img on to a SD card
(dd if=/path/to/openSUSE-Tumbleweed-Bpi-M2-Xfce.img of=/dev/sdX bs=4M; sync #replace /dev/sdX with your actual SD card device)

*  In case you have a bigger SD card, use yast2 disk(partitioner) to “expand” the second partition. You can use yast’s package manager to install more software. The default password for root is linux, you may want to change that first thing after booting.

I am unable to get sound on this hardware, probably their kernel is missing sound related modules, if you figure out how to get sound working drop me a line so I can include it in next release.Everything else(wifi, hdmi out, USB ports etc) works well enough.

a silhouette of a person's head and shoulders, used as a default avatar

openEMS packages

openEMS packages are available from Science repository and main Tumbleweed repository.

openEMS is a free and open electromagnetic field solver using the FDTD method. Matlab or Octave are used as an easy and flexible scripting interface.

It features:

  • Fully 3D Cartesian and cylindrical coordinates graded mesh.
  • Multi-threading, SIMD (SSE) and MPI support for high speed FDTD.

See official site to get more information – openems.de.

a silhouette of a person's head and shoulders, used as a default avatar

KDE 5 中的 Dropbox

0. 環境:

openSUSE Leap 42.1 KDE Plasma 5.4.2


1. Dropbox 安裝

Dropbox 是以 nautilus-plugin 的方式支援 linux

KDE 並不在支援範圍內

若您沒有安裝 nautilus (例如 KDE )

請參考 https://www.dropbox.com/install?os=lnx 透過指令列安裝 Dropbox

若您需要申請 Dropbox 帳號,請按此 -- 介紹人和受邀者都可獲得免費空間獎勵


2. 應用程式圖示

您可以自行建立一個 Dropbox.desktop

[Desktop Entry]
Name=Dropbox
Name[zh_TW]=Dropbox
GenericName=File Synchronizer
GenericName[zh_TW]=檔案同步
Comment=Sync your files across computers and to the web
Comment[zh_TW]=在不同電腦間及網站上同步您的檔案
Categories=Network;FileTransfer;
Exec=$HOME/.dropbox-dist/dropboxd
Icon=dropbox.png
StartupNotify=false
Terminal=false
Type=Application
X-KDE-SubstituteUID=false

將此檔案放在

$HOME/.local/share/applications/

找一個 dropbox.png 放到

$HOME/.local/share/icons/

您就可以在選單中找到 Dropbox















3. 系統匣圖示的問題

請參考 https://www.dropboxforum.com/hc/en-us/community/posts/201908279-Systray-icon-not-showing-in-KDE-Plasma-5-2

openSUSE Leap 42.1 KDE 5 的系統匣已經加入了 xembed-sni-proxy 所以可以顯示舊圖示

但效果不好







注意:如果您使用 fcitx (因為某種不明原因...)

您需要手動執行 xembedsniproxy



您可以用其他的系統匣程式來顯示 dropbox 的圖示

我是使用 trayer-srg

您可以到 http://software.opensuse.org/ 搜尋 trayer-srg 安裝

編輯 $HOME/bin/dropbox.sh 內容為

#!/bin/bash
killall xembedsniproxy
trayer --edge right --align center --width 20 --tint 0xdfdfe0 --transparent false --alpha 0 &
$HOME/.dropbox-dist/dropboxd































效果如上圖










如果有其他不支援新系統匣的圖示也會一併顯示在此



4. Service Menu 修改

Dropbox ServiceMenu 可建立一個 Dolphin 右鍵選單,方便分享

但已經很久沒更新了...

Dropbox 在這段期間也改變了 API 所以有些功能不能運作

要在 KDE 5 上運作需要進行一些修改

(1) 下載 Dropbox ServiceMenu ,解壓縮

(2) 修改目錄中的 dropbox_all.desktop dropbox_directories.desktop dropbox_files.desktop

將此3個檔案中的

`kde4-config --localprefix`/share/kde4/services 改成

$HOME/.local/share/kservices5

(您可以用文字編輯器的"取代"功能輕鬆完成這件事)

(3) 然後將這3個檔案放在 $HOME/.local/share/kservices5/ServiceMenus/

(4) 修改 dropbox-scripts/dropbox_menu.sh

`kde4-config --localprefix`share/kde4/services 改成

$HOME/.local/share/kservices5

(5) 修改 dropbox_menu.sh

revisions() {
    get_uid
    if [ "$is_in_dropbox" != "" ]; then
xdg-open https://www.dropbox.com/revisions/"$relative_path"?_subject_uid="$my_uid"
    else
$python ${SCRIPTS_PATH}dropbox-notify.py --icon dialog-error -t $error_timeout Dropbox "$revisions_error"
    fi
}

get_uid() {
    testurl=`$python ${SCRIPTS_PATH}dropbox.py puburl "$dropbox_path"/Public/index.html`
    my_uid=`set - $(IFS="/"; echo $testurl); echo $4`
}

(6) 修改 dropbox-scripts/get_dropbox_folder.sh



  if [ -f "$HOME/.dropbox/config.db" ]
  then
    local DBFILE="$HOME/.dropbox/config.db"

改成

  if [ -f "$HOME/.dropbox/instance1/config.db" ]
  then
    local DBFILE="$HOME/.dropbox/instance1/config.db"

(7) 將整個 dropbox-scripts 目錄複製到 $HOME/.local/share/kservices5/ServiceMenus/

(8) 大功告成



















Dolphin 的右鍵選單會多出 Dropbox 選項



















因為使用 KDE 4 的 qdbus org.kde.klipper 所以會多出一個剪貼簿圖示





















但兩個都可正常使用

(9) 幾個修改後的檔案您可以由我的 dropbox 資料夾中下載





a silhouette of a person's head and shoulders, used as a default avatar

Instalasi Line Messenger pada openSUSE Leap 42.1

Muqadimmah

Saat ini, sudah banyak sekali aplikasi messenger yang digunakan di Android dan juga di PC pada sistem operasi Linux. Seperti WhatsApp, Telegram atau Facebook Messenger. Salah satu kelebihannya, Ke-3 Aplikasi tersebut dapat dijalankan via Web Browser.

Kadang ketika saya sedang online di laptop dan ada pesan masuk dari Android saya, saya harus ribet. Buka Pattern lock kemudian Buka Aplikasinya, dan ketika dibuka kadang lemot ahhh ….. Menghabiskan waktu saja wkwkw 👿 .

Seenggaknya dengan Laptop spesifikasi yang, yaaaa….. lumayan lah saya bisa menjalankan aplikasi tersebut di laptop dan tidak perlu buka-buka Hape, Make it Simple broh 😉

Namun ada salah satu aplikasi chat android yang lumayan sering saya gunakan untuk chatting di Android. Namun hanya dapat dijalankan via Windows dan tidak bisa digunakan via web seperti ke 3 aplikasi yang sudah saya sebutkan diatas. Apakah aplikasi tersebut ??

Sebut saja “LINE Messenger“. Lha namanya memang itu wkwkw. Aplikasi ini banyak digunakan bagi kalangan muda seperti saya :-p. Eits, yang tua juga boleh kok asal jangan bablas. Line sudah dapat digunakan pada Windows, MacOS. Namun sayang sekali, secara official, LINE belum dapat diterapkan untuk Linux.

Supaya dapat menjalankan di Linux, terutama openSUSE Leap saya. Cara mengakalinya dengan menggunakan “wine”. Kalo belum tahu wine langsung ke Situs Resminya saja https://www.winehq.org/.  Secara singkat wine adalah emulator untuk aplikasi windows pada Linux. Berikut cara Instalasi Line pada OpenSUSE Leap 42.1 :

Install Wine

Sebelum menginstall Line, instal terlebih dahulu wine versi terbarunya. Pada Repository OpenSUSE Leap Wine sudah dimasukkan versi terakhirnya yaitu versi 1.7, jadi tidak perlu menambah repository OFFICIAL WINE. Cukup menjalankan perintah berikut :

zypper in wine

Paket yang diinstall lumayan banyak, jadi agak lama. Kecuali koneksi kenceng :-P. Setelah selesai install wine, Install Microsoft Visual C++ 2008 nya via wine, karena LINE membutukan Microsoft Visual C++ 2008 nya supaya dapat berjalan caranya :

winetricks vcrun2008

Tunggu sampai proses selesai

Install Line

Oke, Wine sudah, sekarang tinggal install Linenya. Pertama Download Aplikasi Official Line untuk Windows pada Link Berikut :

Download Line

Masuk ke Folder Download | Klik kanan pada Aplikasi yang sudah di Download | dan Open With Wine. dan jalankan mengikuti Wizard.

Line Instal First

Tadaaa, Jika sudah selesai maka tampilannya seperti berikut :

Line Instal ok

Jadi saya gak perlu buka HP lagi dan gaperlu nunggu waktu lama untuk buka aplikasinya. Tapi….. di PC ini tidak sehebat di android, Line di PC tidak bisa untuk lihat TIMELINE guys :-(. Satu-satunya kita harus dateng ke kantor LINE dan melakukan demonstrasi agar LINE di PC bisa ada Timelinenya wkwkw. Okeh semoga bermanfaat. Jika kurang jelas bisa mengikuti Video di bawah ini.

 

 

 

 

 

 

The post Instalasi Line Messenger pada openSUSE Leap 42.1 appeared first on dhenandi.com.

the avatar of Sankar P

FOSS System Software in 2015

Prelude

About an year ago, I was playing around with Cassandra for a quick prototype in then dayjob. It opened up the world of distributed systems to me and I was piqued. Audaciously, I decided to implement a simple distributed database, Keeri, to have a grasp of the fundamentals of the implementation of distributed databases. In the past, I have implemented a simple filesystem which has helped me immensely when I was working as a filesystem engineer. Also, I have always been fascinated by the theory behind the database internals right from college days, but did not get my hands dirty.

After a few weeks of work, I was able to implement a recursive-descent SQL parser, which analysed the incoming SELECT queries, made a tree with the subqueries properly branched as sub-trees. I made a simple columnar store that appends data (via an API as opposed to SQL) but without any atomicity guarantees. In short, it was a rudimentary, in-memory system that functions decently. However, I was nowhere near the initial goal of implementing a distributed database.

I realised that there were plenty of design choices in a distributed database implementation, right from architecture, replication, membership, consensus, CAP, etc. I even took a coursera course that helped me understand the basics in detail. As of today, I have enough confidence in my skills and knowledge to implement a distributed database which could serve as a good teaching material, if not as a production software. However, I have not made a single line of code in the past seven months to the project. Abandoning (at least temporarily) the project, hurts.

Yesterday, my daughter decided to wake me up from my sleep after midnight, I spent the remaining night wide awake, while she slept, thinking why I have not made progress in keeri. I realised that I have been overwhelmed by the amount of things to do, that are not core to the system. For example, after I decided that the database has to be NEWSQL based, it is imperative that I needed a SQL parser. But there are a dozen types of parsing (LL, LR, Recursive Descent, ANTLR etc.) techniques. Understanding the pros and cons of the each type and finding the most suitable candidate is a non-trivial task. SQL Parsing is just one component of the system. There are other components such as the choice of datastructures (based on read/write ratio, type of load etc.) One approach is to proceed with the simplest choices for each component with well-defined borders. The individual components can be later replaced. By the time, I completed the SQL query to a decision tree code, I felt exhausted, even before I began the core database and distributed systems functionality.

Observations

From my past open source experience, I have known the synergic boost that developers experience in FOSS communities. It is always good to work in a like minded team of developers rather than individually when working on big problems. I started thinking what other FOSS projects exist for distributed databases (or any other large scale system software) that were created in the last 5-6 years. A few things that came to my mind were:

Hadoop: An umbrella of projects, initially started by Yahoo, including core projects such as HDFS, HBase and a laundry list of supporting projects. Most of the code is now under the Apache project with a plenty of companies sponsoring the development and using the projects.

Docker: The coolest kid in the town. Initially started by Solomon Hykes funded by dotCloud as a side project. Arguably the most active project to date used heavily by almost all tech companies worth their salt. This spawned off a series of other projects too.

CoreOS: Linux re-thought for being a Cloud focussed distro. Backed by a company with the same name. Founded by ex SUSE, Rackspace people, collaborating with Greg KH himself.

Redis: Started by antirez, funded by vmware, pivotal and most recently redis labs. Probably the most used k-v database, probably challenged only by the older memcached.

Cassandra: Initially started by Facebook and later became an Apache project. Heavily used by companies like Netflix, Twitter, Applet etc. even after facebook has moved away.

Kafka: Initially started by Linkedin and later became an Apache project. Used by linkedin and almost every company today. Most of the original team that created the project have now jumped off to a new company named Confluent working on the project full time.

CockroachDB: A project that claims to be the open source equivalent for Google's Spanner. Started by ex-googlers. Development funded and managed by Cockroachlabs.

As I kept thinking about these (and a few other) projects in a state of semi-sleep, I had a eureka moment when I realised that all these projects, even though are open source, began funded by a company / investor money. This is in complete contrast to the FOSS projects of the previous generation like GNU, Linux, GNOME etc. It is a welcome change that developers are now not scared of becoming C*Os and spend time in management or bootstrapping a company. Perhaps, only today, we have companies like Zenefits (disclaimer: employer ;) ) making it easy to start a company and so more developers find it easier to start companies. VCs being in a bullish mindset also helps.

However, I have one concern. Unless the project usage explodes and gains contributors from multiple companies, there is a high chance that the projects may compromise on quality to accommodate a business need. For example, if Torvalds was working for Google, wakelocks *might* have merged into kernel much earlier to suit a Google release cycle. Torvalds being a neutral outsider, without having any commercial interests in any company (directly) has helped Linux immensely. If a FOSS project is started with a backing company in place, from day one, how high will the company's benefits influence the design / features / review processes of the FOSS project ?

As I think more, I realised that, most of these new system software are developed to address the pains of a "as a service" providers. So unless there is a business case, it is perhaps difficult to create a new modern system software, as the era of one size fits all is over. This also makes the previous concern about, the chief maintainer being company neutral, irrelevant. Only when a software is made, backed by a company, with real use cases and customers, instead of theoretical / intellectual curiosities we will get live data. Personal pet projects may have to be satisfied with machine generated data, which may not be the best testsuite for data intensive software like databases.

Questions

To sum up, I wonder if developers (students) any more interested / will be able to develop FOSS projects in their own hobby time, that could grow as big as Linux, without having a corporate backup, for the first few years at least, What do you think ?

Also, if you think it is possible, any recommendations for developers with family and personal needs to spend time, off the regular day job, to persist with pet FOSS projects without exhaustion ? Are there any statistics available on contributor details for popular FOSS projects (similar to Kernel stats prepared by Greg KH and LWN) ?

Any other aspects that I have missed ?

P.S: I was sharing the gist of this post with a friend who shrugged off saying, "Get a job in the company which works on a project which appeals to you". However, it is not that simple, considering most of these young companies do not even have an office anywhere outside the developed world. Also after a certain point in life, switching jobs is not trivial and depends on various other factors.

a silhouette of a person's head and shoulders, used as a default avatar

Use your distro's kernel in OBS

The Open Build Service has the nifty feature that you can tell it to use a specific kernel to boot the worker VMs that build your software. To use that, you don't need any special setup, just a package which contains a kernel and an initrd:

   /.build.kernel.kvm # used by KVM workers
   /.build.kernel.xen # used by Xen workers
   /.build.initrd.kvm
   /.build.initrd.xen

So you just need this package and make sure it is installed in the VM using the VMinstall: tag in the project config.
If the build service worker script detects that after preparing the VM, such a kernel and initrd are present, they will be used for booting the worker VM that finally builds your package or image. If it is *not* detected, then the kernel the worker server is running with (usually a SUSE kernel) will also be used for the VM.

In the openSUSE Buildservice instance, all "recent" SUSE distributions are configured for that: they use the kernel-obs-build package, which gets created automatically when building the kernel rpms.

Now I am right now using a buildservice instance for cross-distribution package- and imagebuilds. The challenges of trying to build RHEL/CentOS 7 images with KIWI in OBS warrant at least one additional blog post, but one thing I noticed was, that some of the kiwi stuff, when done with a CentOS 7 userland, apparently also needs a CentOS kernel, otherwise kiwi's parted calls, for example, will exit with code 1 (without issuing an error message, btw).
So I have built a kernel-obs-build from the CentOS 7 kernel and configured my OBS instance to use it, which brought me quite some steps further to building CentOS images with KIWI in OBS.
The code (or rather: the spec files) to "convert" the CentOS kernel to an OBS kernel is at https://github.com/seife/kernel-obs-build, a short README on how  to use it is included.

Note that right now it only works with KVM workers as I was not able to get the worker code to boot the kernel correctly in a Xen VM, even though drivers are all there, the reason is probably that the obs worker scripts rely on some of the specifics of a Xen-specific kernel (e.g. the device name of the block devices being passed through to the VM from the config, which is not true for a generic PV-capable kernel).
But I guess this will improve soon, now that openSUSE has dropped the kernel-xen package, they will face the same issues and hopefully someone will fix them ;)
a silhouette of a person's head and shoulders, used as a default avatar

Hi how are you doing? Sorry you can’t get through. Just leave your name and you number and I’ll get back to you

No.. I haven’t forget you! I think of you every day, night and if I’m honest all the time. You and you and you and especially you who are reading these lines. This is going to be sort blog entry. I want you to know what you should start doing! Yes just stop being social in internet. Get out of your comfort zone and start spank the monkey (oh.. sorry not spank the monkey this is children approved blog..) er.. learning new stuff.

Start you maker project and learn how to 3D with Blender (it’s marvelous 3D application). After Blender there is no excuse and it’s free (but remember if you really like it give something back). Are you on more on CAD? Learn 3D CAD with FreeCAD (Again amazing tool). Want to ride IoT wave but you don’t have too much money then get new shiny Tiny $5 Raspberry Pi Zero or 9$ C.H.I.P and make your Fritzing electric boogie with ease (and by the way you can commit those boards to library. It’s open source!). You are in music how about doing some DJ:n with linux? Mixxx just got shiny 2.0 RC1 out. Are you more reading type and need something to manage you e-books: Calibre is here to help. Huh so much to do so less time!

Where to get them? openSUSE have RPM for all of them just learn to search them from Packman or from OBS. Sorry to say Raspberry Pi Zero is currently not supported but you can help to add it to ARM boards working with openSUSE same problems with C.H.I.P (If you have Raspberry Pi 1/2 just get image for them from openSUSE ARM image and start hacking). You should learn how to add new repos to YaST2 and add Packman repo for new FreeCAD, Fritzing and Mixxx. Yes! most of them run also on Windows and Mac OS X. Now smile on, thumbs up and get your groove on with title song: De La Soul – Ring Ring Ring (Ha Ha Hey)

a silhouette of a person's head and shoulders, used as a default avatar

古典的小趣味

這兩個終端機小工具可以顯示作業系統的 logo 和簡單的系統資訊

1. screenfetch
















如果沒有 -E 的參數,在 KDE 5 會出現

[[ ! ]] Qt: Session management error: networkIdsList argument is NULL

的訊息,看了煩


2. linux_logo


















執行

linux_logo -L list

可列出所有的 logo
a silhouette of a person's head and shoulders, used as a default avatar

古典的小趣味

這兩個終端機小工具可以顯示作業系統的 logo 和簡單的系統資訊

1. screenfetch
















如果沒有 -E 的參數,在 KDE 5 會出現

[[ ! ]] Qt: Session management error: networkIdsList argument is NULL

的訊息,看了煩


2. linux_logo


















執行

linux_logo -L list

可列出所有的 logo