The Church of Jesus Christ of Latter Day Saints has posted a video that shows their new Rome Italy Temple.
The workmanship and beauty is a testament to the importance members place on the sacred covenants they make there.
The Church of Jesus Christ of Latter Day Saints has posted a video that shows their new Rome Italy Temple.
The workmanship and beauty is a testament to the importance members place on the sacred covenants they make there.
I downloaded some photos from Google Photos, only to find that they were in heic format (https://en.wikipedia.org/wiki/High_Efficiency_Image_File_Format). [When I originally wrote this blog post,] none of my linux programs know how to open that format — I needed them in jpg format. I found a utility to do the job: https://launchpad.net/~xiota/+archive/ubuntu/stuff-3
sudo add-apt-repository ppa:xiota/stuff-3
sudo apt-get install libheif-tools
sudo apt-get install libheif-examples
for f in *heic ; do heif-convert -q 90 $f ${f%.heic}.jpg ; done
I organize images in a custom hierarchy of directories. Lately, I’ve been using Google Photos and its shared albums to share photos with family. When I download the photos from the album that others have contributed, I want to organize those photos based on who contributed them. Google photos doesn’t make that easy.
Fortunately, cameras embed their make and model into each picture that they take, and since nearly everyone uses a different model of smartphone or camera, it is easy to separate out the images.
Windows Explorer allows me to add the model of the camera for an image in the details view. Then I can sort on the model, and break out the photos into a separate subdirectory for each contributor.
On Linux, I haven’t found an easy way to do the same thing — i.e. Gnome’s file manager, Nautilus, is anemic in comparison, as are other Linux alternatives.
Recently, I found exiftool, and it solves the problem for me, at a command-line level (it works on Windows, MacOS, Linux, BSD, and others).
Test adding the model of camera to image (e.g. Canon EOS Rebel XIV)
exiftool -p -v1 '-testname<$model %f.%e' *.jpg
Do it for real:
exiftool -p -v1 '-filename<$model %f.%e' *.jpg
The final task is to remove the model name from the image. E.g.
rename 's/Canon EOS Rebel XIV //' *.jpg
Exiftool can do so much more, including organize images into subdirectories. This examples organizes images in the current directory into year-month-date directories:
exiftool -preserve -d "%Y-%m-%d" "-directory<filemodifydate" "-directory<createdate" "-directory<datetimeoriginal" .
From the world of interesting and cool approaches to solving software deployment issues:
Statically linked binaries that minimize dependency management difficulties work well for C++ executables, but languages like Python, JavaScript, and even Lua present a different challenge: How do you place source code and data (such as SSL certificates or shared libraries) inside a single executable? What do you do about the dependencies the tool might have on modules installed on the host operating system?
XARs are slightly modified squashfs files… that mount themselves when executed and unmount after an idle timeout. They could almost be thought of as a self-executing container without the virtualization. By using the squashfs format, we not only distribute data in a … compressed format…, but we also decompress on demand only the portions we need. Thanks to this architecture, XARs have nearly zero overhead in production and can be used just as native scripts or executables would be.
I’ve upgraded three computers to Ubuntu 18.04. Although I appreciate the modern software (including LibreOffice), each upgrade has had different issues.
Lenovo Server: upgrade was rocky because the root partition ran out of space part way through the upgrade. I hand-recovered and managed to get it to finish. Later, the journal (systemd journal) went nuts and filled up my root partition (which is shared with /var) with log messages — causing so much I/O that it was quite slow to log in to my computer. Once I figured out how to vacuum the journal, I recovered space, and set the journal size smaller. Now it seems to be working well.
System76 Galego Ultrapro: upgraded without a hitch. However, power management is less-than stellar. It won’t go to sleep when I want it to, and it comes out of sleep when I don’t want it to. Update: Later updates fixed the problem.
Lenovo P50 with NVidia graphics card: It worked better at driving two external monitors with Ubuntu 16.04. It mostly works with 18.04, but it’s more temperamental. The upgrade didn’t go smoothly, aborted early, and I had to hand-recover, which, fortunately, worked out. I needed a new version of VMWare Workstation. The screen brightness buttons don’t work, even after trying various proposed solutions.
Later, I found out that I was missing a package that allowed me to mount external encrypted drives. This post had a solution: https://github.com/pop-os/pop/issues/163
sudo apt install libblockdev-crypto2
systemctl restart udisks2.service
Things I appreciate about Gnome 3 (Ubuntu 18.04):
Things I dislike about Gnome 3 (Ubuntu 18.04):
Other things I dislike with Gnome — longstanding issues that existed before Gnome 3:
I love using Linux, but Windows is squarely better at some things.
At work, we generate quite a few feature branches, which get tested, and then merge into “develop”. The feature branches don’t get cleaned up frequently. Here’s a series of shell commands I cobbled together to show the most recent person to commit to the branch, and which branches have been merged into develop.
git checkout develop
git pull -r
(for branch in $(git branch -r --merged | grep -vP "release|develop|master") ; do git log -1 --pretty=format:'%an' $branch | cat ; echo " $branch" ; done) | sort | sed -e 's#origin/##'
The output looks something like this:
Jane Doe feature/something
Jane Doe feature/another-thing
Jane Doe feature/yet-another-something
Zane Ears feature/howdy
And they can be deleted as follows:
git push origin --delete feature/something
I have some WiFi cameras that can be added to a router via WPS. Here’s how I got it to work with one of my LEDE routers. On the other one, somehow, I broke its ability to do WiFi completely, so this can be dangerous — I had to re-install LEDE. YMMV.
OpenWRT/LEDE Instructions:
First, backup the router config — always a good idea!
Setup:
opkg update
opkg remove wpad-mini
opkg install wpad hostapd-utils
opkg upgrade dnsmasq
cp /etc/config/wireless /etc/config/wireless.orig
vi /etc/config/wireless and change wps_pushbutton to '1' -- but only for one interface.
reboot
Check to see if WiFi is working. If not, use the ethernet port connected to a laptop to log back in, and update the firmware that isn’t broken. There may be a better way, but that’s worked for me.
Put the router into WPS mode (note: this times out after a while):
hostapd_cli wps_pbc
Other instructions say to run this (YMMV):
hostapd_cli -i wlan1 wps_pbc
Within a minute or so, push the WPS mode button on the camera.
Pie charts may look pretty, but it’s difficult to spot differences between the sizes of the pie slices compared to bar charts.
A colleague pointed me to http://www.businessinsider.com/pie-charts-are-the-worst-2013-6 for an explanation.
Donut charts are an improvement over pie, but still not as good as bar charts.
http://hypsypops.com/pie-chart-donut-chart/
It’s Christmas day, and we have my wife’s siblings and their children at our house. We’re doing a Google Hangouts call with their parents, who are on an LDS mission in Vanuatu.
Microsoft Windows asks when to schedule an update. I try to select 2 am, but whoever designed the software decided, in their wisdom, that I shouldn’t have that kind of control. Let’s see what else I can do.
It’s 1 pm, so I select 4 pm, and Windows seems to accept that choice. I go back to the Google Hangouts conversation.
And then Windows decides to update immediately, against my wishes. It’d be fine if it only took 5 minutes, but it goes on for hours. I am angry. I feel like purging Windows from our lives.
Microsoft, I hate the poor timing that you force on me. I hate not being in control of updates. This sucks. It stinks. You should do better.
So I grab our older, slower Windows computer, and power it up. Guess what? It’s completing an update as well. Inconvenient!
Fortunately, I have a Ubuntu Linux laptop that I use for work. I load Google Chrome, and thanks to WebRTC standards and Google Hangouts, I am able to get the video chat going again.
Ubuntu Linux and web standards save the day.
Windows: The OS you can’t rely on when you need to get important things done.
Linux: The OS that I can rely on when I need to get important things done.
Disclaimer: Your mileage may vary. I write software, with Linux as my desktop environment. I’m used to it, and it doesn’t do stupid things to me like Microsoft does… it just does different stupid things.
Thanks: I wish to express thanks to those individuals and organizations who gave us open standards including WebRTC, and those who gave us cross platform software, especially browsers like Chrome and Firefox.