Showing posts with label gnome. Show all posts
Showing posts with label gnome. Show all posts

This Week I Learned 2019 - Week 10

Last week post or something from the archive posts.

What else I've learned this week not within this post? Continue with the seventh week of ornamental fish culture learning. This week we looked into Zooplankton which consists of Artemia and Copepods; and Moina and Daphina. In addition, we also study artificial and processed feed as well as light intensity, water current, and exchange frequency. Related the paper we reviewed this week is on culturing techniques of Moina. And lastly, Mojo::Util is the Perl module of the week.


Should you still customize your GNU/Linux setup? (via HN). 22 years of usage and I still customize from time to time due to necessities or personal delicate preferences . As you get older, you're pretty much just stick to the default Desktop environment settings with some additional GNOME shell extensions. The only heavy customization is still at the console end, exactly like the author's post on customization.

To OO or not to OO in Perl? Is always better to OO as the system grows and it will. Otherwise you will end up with system done in PHP with a bunch of global functions.

What should we use to create textual UI in console? Dialog is the default available option and work with Bash. Off course there are libraries exists for different programming languages.

This Week I Learned 2018 - Week 35

The previous post or something else from the archive.

How do you increase your monitor resolution if the default resolution was not sufficiently enough? As I was reorganizing my battle station, the old monitor resolution was off due to changes in the display adapter name. These steps have to be done as the display driver will not set to the correct resolution due to old VGA adapter.
$ cvt 1280 1024 60
# 1280x1024 59.89 Hz (CVT 1.31M4) hsync: 63.67 kHz; pclk: 109.00 MHz
Modeline "1280x1024_60.00"  109.00  1280 1368 1496 1712  1024 1027 1034 1063 -hsync +vsync
$ xrandr --newmode "1280x1024_60.00"  109.00  1280 1368 1496 1712  1024 1027 1034 1063 -hsync +vsync
$ xrandr --addmode VGA-1 1280x1024_60.00
$ xrandr --output VGA-1 --mode 1280x1024_60.00

While the new UI in Gnome's display settings have been polished and updated. However, it still can't detect or add the correct solution for each display adapter. Is there a way to better manage and automate this process? Yes, this is possible through autorandr and pool-xrandr.

How does USB upstream and downstream ports works in Dell monitors? There are two types of connection. First, the type B connector which connects to your PC to get its power source to your USB hub. Second, the remaining type A ports for you to use for other devices. (See screenshot captured below, credit to Psycogeek). Now where is that USB Type B to Type A cable?

What happened when you start another culture in a remote island? Interesting documentary on Cocos (Keeling) Islands.

Upgrading to Ubuntu 18.04 Bionic Beaver

Yes, the regular updates on my Ubuntu distro in my lappy. While reading back my old posts, I just realized that I've written personal for almost each Ubuntu release like 17.10, 17.04, 15.10, and 13.04. Not sure why, but I didn't jot down any upgrade notes on 16.10, 16.04, 14.10, 14.04, 13.10, and earlier.

Upgrade was done as usual but with a few hiccups. Full upgrade was possible with a few manual intervention of the package management.

First, not enough free disk space in '/boot' folder.

The upgrade has aborted. The upgrade needs a total of 127 M free
space on disk '/boot'. Please free at least an additional 82.7 M of
disk space on '/boot'. You can remove old kernels using 'sudo apt
autoremove' and you could also set COMPRESS=xz in
/etc/initramfs-tools/initramfs.conf to reduce the size of your

Resolved this by removing all the previous Linux kernels and so surprised to know that my machine have so many different versions lying around. No wonder there was limited spaces available.

Second, upgrading was halted due to packaging dependency. Not sure why. Googling around for answers and trying a few usual solutions did not help at all and kept getting the same old error message.

E: Sub-process /usr/bin/dpkg returned an error code (1)

dpkg: error processing archive 
   /var/cache/apt/archives/libmariadb3_3.0.3-1build1_amd64.deb (--unpack):
 trying to overwrite '/usr/lib/x86_64-linux-gnu/mariadb/plugin/', 
   which is also in package libmariadb2:amd64 2.3.3-1
 Errors were encountered while processing:
 E: Sub-process /usr/bin/dpkg returned an error code (1)

At the end of the days, the Synaptic tool save the day and resolving all the conflicts.

It's just me or something else, `apt` doesn't seems to have a right default options to resolve conflicts compare to Synaptic.

Now for the changes, reading through the release notes, I've learned a few things and realized that I was quite lost touch with the server part of Ubuntu distro.

1/ Netplan, the network configuration abstraction renderer. Basically it's just a tool to manage networking through YAML file. Surprisingly, the console tool was written in C instead of the regularly used Python. Not sure why but surely it must have a good reason.

2/ New features only available for new installation but not upgrade. For example, swap file instead of swap partition, Python 3 over Python 2, full disk encryption (LUKS) instead of folder encryption.

3/ Subiquity, the server installer was available for server user. Definitely a DIY solution to differentiate themselves from default Debian installer.

4/ LXD 3.0. A better alternative or solution to Vagrant or Docker. I've been lost tracked of this project. Maybe it's the right time to look and get my homelab machine to run this again.

5/ chrony replaced ntpd (there are comparison as well). One good thing is chrony was licensed in GPLv2.

6/ On the desktop front, from the GNOME 3.28 release notes, Boxes was getting much needed love. Previous version was so buggy that made you wonder why it was ever released in the first place.

This Week I Learned - 2017 Week 35

Last week post or revisit some old archived posts.

Long holidays and I finally have extra time to clear off some of those pesky and pending to-do list. Learned quite a lot this week, especially from different electronic devices and computer hardware.

Software development 450 words per minute. (via Reddit / HN). Be grateful. That's probably takeaway from the article itself. I was wondering how it going to affect your hearing if you keep listen to the headphone non-stop for more than 8 hours per day?

Good post on introduction to mechanical key switches, specifically Cherry MX family. For a non-gamer but mostly using your keyboard for typing, Cherry MX Brown and Cherry MX Blue would be the preferred keyboard switch for a mechanical keyboard. The Brown switch was originally developed for Kinesis Keyboard. Yes, that company that created the ergonomic contoured keyboard. Meanwhile, the Blue switch, have same tactile feeling and clicking sound to IBM Model M but less activation force. Does mechanical keyboard worth it? Yes, only if you play lots of games, build a Battlestation, a mechanical keyboard enthusiast, or have extra money to burn.

Buying an air purifier? Fview YouTube channel is probably the best I've watched so far. Honest opinions with lots of satirical remarks in between. Just like taking an advice from a trustworthy friend. So which air purifier to buy? From the result and price point, just get Xiaomi Air Purifier even through you have to tolerate the high fan noise. I was surprised that few European brands are so expensive but the filtering output was mediocre. Most likely you're paying premium to the quality material and long term reliability. One thing I've learned from electronic devices made in China or electronic devices in general these days. There are not built for reliability. a throwaway device that only serve a purpose for a short period.

Yeah, the bokeh, colour, and contrast is phenomenal and surely will make you mouth-watering.  Just make sure you watch the YouTube video in highest resolution. The most important criteria is the colour (in JPEG) format shows the actual colour and contrast representative of what we saw with the reviewer eyes. Be warned, both Sony A9 and Voigtlander 50 Heliar V4 will cost you around MYR 21k. Definitely not worth it unless you have extra cash to burn. Even so, still not worth it.

More lesson regarding ConTeXt. Want to use Times New Roman, make sure you've installed the Tex Gyre package where it includes the Termes aka Times New Roman font.

Installation of more PWM casing fans. The motherboard seemed quite sensitive and there are numerous times I can't get to the POST screen. Reading through the POST troubleshooting steps, manage to boot up the machine again. Suspect loosen power wires, memory slot, or bended CPU pins were likely the contributing causes.

Fan speeds seems to be at an accepted range. There is an increase of volume heard but I like the white noise.
$ sensors | grep fan
fan1:         1704 RPM  (min = 1577 RPM, div = 8)
fan2:         1875 RPM  (min =  784 RPM, div = 8)
fan3:         1577 RPM  (min =  685 RPM, div = 8)
fan4:            0 RPM  (min = 3515 RPM, div = 128)  ALARM
fan5:            0 RPM  (min =  703 RPM, div = 128)  ALARM

Hardware UART in MSP430. I have no idea this is possible. Mainly because I have no idea what and how UART works anyway. And, I also found out that there is a UniFlash, which is the Universal Flash Programmer for all Texas Instruments devices. Seems to support MSP430 and GNU/Linux but I haven't try it out yet.

I was looking for a DAC and my research indicated that using Raspberry Pi with HiFiBerry would be a good choice. Maybe that could put my shelved Pi into good use?

Running Docker on Fedora host but have permission error with mounted volume?
$ docker run -it -v /home/ang/project:/export tts:latest bash

[email protected]:/export# ls -l                
ls: cannot open directory '.': Permission denied

To resolve this properly, since this is a SELinux permission issue (reason why you should always test your stuff in Fedora/Red Hat/CentOS distros), you can append extra `z` or `Z` character to the mounted volume option `(-v)` as shown below.

-v /home/ang/project:/export:z

Meanwhile, setting up Docker in Fedora to support non-root user. (Yes, there are many security concerns).
$ sudo groupadd docker && sudo gpasswd -a ${USER} docker && sudo systemctl restart docker
$ newgrp docker

Readjustment of my night computing usage. Turned on Gnome's Night Light. This is to reduce the effect of blue light affecting the body melatonic production.

This Week I Learned - 2017 Week 33

Last week post or the old ramblings.

The Vox POP is probably the most entertaining and educational YouTube channel right now. I wish they produce more and frequently.

Mommy, Why is There a Server in the House? Suitable for those who are active in /r/homelab.

Refurbished my battle station and upgraded my Fedora 25 to 26. Nothing special about this release and I was expecting something significant or may be I miss out something?
$ sudo dnf upgrade --refresh
$ sudo dnf install dnf-plugin-system-upgrade
$ sudo dnf system-upgrade download --releasever=26
$ sudo dnf system-upgrade reboot

Gigabyte MA10-ST0 powered by Intel® Atom C3958 SoC. A 16-core Atom (C3958 SoC) server board which can be a good server-based motherboard for virtualization or NAS. Think ESXi, FreeNAS, or Proxmox. I was thinking of buying and setting one up for data hoarding.

Does programmer needs office? Definitely. I still fail to understand why corporation still craze over open office floor plan. It's very hard to concentrate without any distraction. People walking by and talking non-stop. Collaboration doesn't means physical communication, it can be done through any messaging app. Private office does works. The funny thing is, I miss cubicle. At least you can really concentrate and work in the zone.

Unknown electronic parts? Get it from Octopart. Buying chips and checking availability? Find Chips.

Speaker broke down and I need to get a new pair of cheap bookshelf speaker. Initially was searching for a pair for good bookshelf speaker like Pioneer SP-BS22-LR, but unfortunately, this model have been either phased out or you have to purchase whole Hi-Fi set. Meanwhile, no local distributor is importing Micca PB42x. I read good review on Swan HiVi D1010-IV or Swan Hivi D1080-IV, might as well allocates budget to purchase this instead. Luckily we can still find it from the local supplier and the price still acceptable, within MYR 450-plus. All this discussion about cheap and good quality speaker is useless if you can't can't hear audio quality? Otherwise, you're just wasting money without any actual benefits.

When you have a pair of speakers, to get the best out of your 2.1 setup. The next purchases will a Digital Analog Conveter (DAC), which convert binary bits (zero or one) to analogue signal and a amp. If you have a DAC, you can skip buying a sound card. Popular DAC is Behringer UCA202 or UCA222 and for amp, Lepai 2020A+SMSL SA50Diagram below illustrates this setup.

Slow MySQL performance in Docker instance? Use TMPFS, where you put the whole database into the RAM. The approach for MySQL docker instance seems easy enough to setup and there have been many documented results.

Why are we trying hard to optimize the MySQL Docker instance? One of the main issue is that big database restoration may kill the MySQL daemon due to either large volume of records. Which begs the question, how many rows? This is determined by server parameter of `max_allowed_packet` or adjust the server according to these parameters.
- bulk_insert_buffer_size = 256M
- innodb_log_buffer_size = 64M
- innodb_log_file_size = 1G
- max_allowed_packet = 1G

While we're on MySQL, it seems we can delete records from two tables in one DELETE statement. The key thing here is the columns from both tables need to be specified.
DELETE a.*, b.*
FROM table1 a
LEFT JOIN table2 b
ON =

It has been a while that I talked about Perl. Getting unique array list. Sigh, every single damn time I've encountered this I was wondering why this is not built into the core language itself?

GNOME is 20 years. It has been so long since I first tried it. I'm getting old. After Ubuntu switching to GNOME as default desktop environment, I felt that GNOME have finally won the GNU/Linux desktop war against KDE after so many fricking years.

No space life in Docker Machine in Windows? Maybe you can recreate another `default` Docker Machine following these settings. Assumed you're using VirtualBox.
$ docker-machine create
--driver virtualbox
--virtualbox-memory 8096
--virtualbox-disk-size 40000

This Week I Learned - 2017 Week 14

Last week post or you can go through the whole series.

Proposal have been presented and submitted. Standard feedback received. Nevertheless, better than nothing regardless the quality of the reactions.

#1 GTCafe Studio. Stumbled upon this site while searching for different covers of Guthrie Govan's Emotive Ballad. It's rare these days to find any blog with original good content. Reading through his journal on learning guitar made me reflect back on my decision on donating all my guitars away few years back. Maybe is time to start all over again? Or maybe not? Learning to play an musical instrument is one of the way to escape from mind-numbing daily routines. However, there is a time and place for everything in life. In hindsight, sometimes you just have to move on.

#2 "CentOS is not stable, it is stale". So true that it hurts. For me, as a whole, Fedora provides a better desktop experience than Ubuntu. Yet, I still revert back to Ubuntu on my daily usage. Why? APT is definitely better than YUM and plenty of software selection. Furthermore, LXD works only in Ubuntu and not Fedora. And yes, finally Canonical realized that and declared Ubuntu Unity will be replaced by Gnome 18.04 LTS. Maybe this Ask HN post on feedback for Ubuntu 17.10 from the community have finally sealed the fate for Unity?

I always wonder what would happen if Red Hat decided to use build a distro based on Debian or DPKG package manager instead of creating their own RPM packaging manager? A unified GNU/Linux desktop will come sooner rather than unnecessary fragmentation and efforts. For example, the competition of next generation display server of Mir and Wayland. Yes, I know having options and competitions is good for progress. But the priority and effort should be on fixing the damn display drivers performance and stability issues. Fragmentation leads to duplication of works.

#3 Five great Perl programming techniques to make your life fun again. An old article, 11 years ago but everything described there is as relevant as today especially iteration using `map` and `grep` and Dispatch Table as illustrated in example below. As Perl does not have `switch` statement, hence using Dispatch Table is a good Perl design patternMark Jason Dominus, in his book, Higher-Order Perl also devoted a whole chapter (PDF) on this matter.
my $dispatch_for = {
   a => \&display_a,
   b => \&display_b,
   q => sub { ReadMode('normal'); exit(0) },
   DEFAULT => sub { print "That key does nothing\n"; },

my $func = $dispatch_for->{$char} || $dispatch_for->{DEFAULT};

#4 Perl 5 Internals (PDF). Interesting reading on the intricacy part of the Perl itself. It was brought to my attention that Perl is a bytecode compiler, not an interpreter or a compiler.

#5 The 'g' key shortcuts in Vim. You will learn something new everyday, there are so many key bindings. Surprisingly, I only knew and regularly use two. Really needs to refresh and relearn this.

Post-installation Notes on Ubuntu 16.04 LTS Xenial Xerus

Ubuntu 16.04 LTS Xenial Xerus was released few weeks back and its time to either upgrade or fresh installation. I've done both for different machine, my lappy and desktop. Since my recent switch to SSD hard disk and a new graphic card, these are my notes on the post-installation. After so many years of using Ubuntu, yet you still need to manually tweak it to get the basic essential features to work correctly.

Installation against the SSD is freaking fast, the whole installation finished merely in just less than five minutes. I didn't time the installation process but it was blazing fast compare to all my previous installation. If you're still using HDD, switch to SSD, now! Is like the connection speed from upgrading from dial-up to fiber optic.

Update and Upgrade Packages
The new apt command is very welcoming and finally we have progress bar during package installation. Before that, switch to your fastest mirror. No offence to those who helps to mirror MY repository, but MY mirrors speed are rather inconsistent compare to SG mirrors.
$ sudo sed -i 's/my/sg/g' /etc/apt/sources.list
$ sudo apt update
$ sudo apt full-upgrade

Replace Unity with Gnome
Yes, finally Unity's launcher can be moved to the bottom of the screen but is too little, too late for anyone to care about that. GNOME provides a better integrated desktop user experience. Pick GDM3 as your login manager, log off from current desktop sesison, switch to GNOME desktop, and re-login.
$ sudo apt install ubuntu-gnome-desktop

Dual-Screen Undetected Screen Resolution
Till today, Ubuntu still cannot get the screen resolution right for my second monitor. Again, we've to tweak it through xrandr.
$ xrandr -q
$ cvt 1280 1024

Add the resulting shell script '.xprofile' to resize and re-position the dual screen monitors as follows. As I'm a left-handed mouse user, hence my screen setup is also spanning from left to right.
xrandr --newmode "1280x1024_60.00"  109.00  1280 1368 1496 1712  1024 1027 1034 1063 \
    -hsync +vsync

xrandr --addmode DVI-0 1280x1024_60.00

xrandr --output VGA-0 --primary --mode 1280x1024 --pos 1280x0 --rotate normal \
    --output DVI-0 --mode 1280x1024_60.00 --pos 0x0 --rotate normal \
    --output HTMI-0 --off

Conventionally, to execute the command before the starting of X user session for GDM, you should put these commands in '.xprofile' as GDM will load the setting from '/etc/gdm3/Xsession'.

Google Chrome can't play YouTube's videos.
Beginning 16.04, there is no more proprietary ATI graphic driver or fglrx and this may cause some issues if hardware acceleration through graphic cards like games or video playing. The error message obtained when starting Google Chrome from the console as shown below.
Not implemented reached in virtual 
void cc::VideoLayerImpl::AppendQuads(cc::RenderPass *, cc::AppendQuadsData *)

The workaround is to disable hardware acceleration under 'advanced settings`. Mostly likely this will be fixed in upcoming patches.

This Week I Learned - 2016 Week 20

Write-up for last week or you might want to read the whole series.

Automate your daily computing life. I noticed that the only two application that are crucial for me in my daily computing usage is Gnome Terminal and Google Chrome. To prevent me from starting both applications manually on daily basis, why not start both applications when I log into Gnome?
  1. Press 'Alt + F2' and enter the command 'gnome-session-properties'
  2. Add a Startup Program
  3. Add name as 'Gnome Terminal'
  4. Add command as 'gnome-terminal --window --maximize'

Upgraded my almost four-plus years old D-link router. My Google-fu leads me to to TP Link's Archer C7 wireless dual band gigabit router. Features and values wise, this is probably the most suitable upgrade. Due to some absurd coincident, IPTV does not work by default, and TM gave me a replacement HyppTV Android Box IPTV set-top-box (Huawei EC6108V8). However, the issue remains and HyppTV still won't work. In the end, found the workaround which is to disable the Hardware NAT, which is only useful if your Internet connection is above 100MB/s.

Should I flash the device with OpenWrt? Nah, the default is good enough for now.

Updating classic workplace sabotage techniques. (HN discussion) After all this while, people still don't realize, the case against open-plan offices has been studied and it was suggested, terrible for employee. Someone joked that this is decade-long strategy by headphone companies to sell more "noise cancellation devices". To be fair, it depends on your personality, either you're introvert or extrovert, the office environment, and the people in the office.

Web application is "database skin". Another interesting metaphor in addition to what I always use, web application is a "glorified spreadsheet".

This Week I Learned - 2016 Week 13

Last week post or the whole series.

#1 Unexpectedly Realistic. (Reddit thread). Not entirely true but it always a good time to hit the gym to workout consistently.

#2 Conrad Jon Godly. Simple yet mesmerizing oil painting.

#3 tracker-store and tracker-miner-fs eating up my CPU on every startup. My CPU load have have been high for the past few days. Booting and starting programs have been testing my patience.

#4 An Autobiography of a Blind Programmer. (Reddit thread) If a visually impaired person can learned to code, no one else have other more lame excuses not to do so. His story reminds me of the infamous blind programmer, T.V. Raman, known for creating Emacspeak.

#5 Microsoft's EEE. Good discussion on the Embrace, Extend, and Extinguish strategy by Microsoft. Is history going to repeat itself like wIat happened to OS/2, Netscape, and the Internet Explorer monopoly which held back the web for a few years? People still need to remember that they are is still a for-profit organization. I will remain skeptical until they truly embrace the GNU General Public License.

#6 How do you integrate remote developers? Discussions there are spot on. Unless the company truly embrace remote-first culture and reduce the jealousy and tension from regular employees, otherwise it will not work.

From Fedora 23 To Fedora 24 (Rawhide)

So I was there looking at my screen and realized Fedora 23 is too stable, or rather too boring. Hence, I've decided to upgrade to Rawhide, the upcoming Fedora 24, which is expected to be released by 17th May 2016. Let's see how this compare to my upgrade from Fedora 21 to Fedora 22 (Rawhide), I hope there will be no major issues.

Configure your DNF for Rawhide.
$ sudo dnf upgrade dnf
$ sudo dnf install dnf-plugins-core fedora-repos-rawhide
$ sudo dnf config-manager --set-disabled fedora updates updates-testing
$ sudo dnf config-manager --set-enabled rawhide
$ sudo dnf clean -q dbcache plugins metadata

Upgrade your distro.
$ sudo dnf --releasever=rawhide --setopt=deltarpm=false distro-sync --nogpgcheck --allowerasing

It's always 'exciting" to use the rolling release where you can test out the latest greatest features. For Fedora 24, lots of features were planned but I'm eager to test out Wayland, the new display protocol which going to replace X. It seems some user already have good and stable enough experience using it in Fedora Rawhide. Can't wait to try it out on my T4210.

Upgrade was painfully slow. First, I've to downgrade certain packages like VLC from RPMFusion repository back to Fedora 22 version (see the last command of the above console output with --allowerasing option). Then, I've to download a total of 1860 packages. That alone took me around three-plus hours.

However, upgrade failed due to some conflict in Python 3.5. I just realized that I've upgraded my Python to 3.5 using Copr. And, to make matter worse, by default DNF did not cache downloaded packages! No choice but to redo everything again. In the end I wasted another three more hours.

First thing first. Let's enable caching for DNF. Next, temporary remove all those packages (wine-* and texlive-*) to reduce number of packages to download and remove Python 3.5 I've installed earlier from Cool Other Package Repor (COPR). Repeat the command to upgrade your distro again and reboot.
$ sudo echo 'keepcache=true' >> /etc/dnf/dnf.conf
$ sudo dnf remove wine* texlive-*
$ sudo dnf remove python35-python3*

Once you've successfully upgraded. Your system should have Gnome 3.19.2, Wayland 1.9.0, and Linux Kernel 4.4.0. Some interesting observations while testing Fedora 24.

Updates during booting
This happened twice and I need to reboot to complete the upgrade. If seemed that Systemd was instructed to handle the upgrade which totally new to me. I was under the impression during the upgrade, all the packages will be overwritten. See screenshot below.

Wayland is the default display server
Previously you've to manually switch to Wayland in the Gnome login shell (click your username and later select from the gear icon). Right now, is the reverse. If you want to use X (which you should as not all apps have been ported to Wayland yet), you've to select it manually, pick 'GNOME for X' from the menu.

Apps that fail to work
Shutter, the screenshot capture tool does not work. Suspect this is due to lack of support and the security model of Wayland as getting the content of other windows is not allow. Terminal, the default Gnome terminal emulator, under custom window size, will always shrink every time upon refocus. Dash to dock Gnome extension does not work either and has been disabled. Is best to check the all the Bugzilla's bug report on Wayland at Gnome or Red Hat. Wayland is getting there but still, you can always fallback to X11.

Natural scrolling in Touchpad
I'm not sure why this was set to default but it's fricking annoying. Basically, under natural scrolling, screen will move at the reverse direction of your fingers, similar to using a mobile phone or tablet. To differentiate between natural and non-natural scrolling is easy. For the former, focus on the moving the content, for the later, focus on moving the scrollbar.

Cannot Input Chinese in Google Chrome or Firefox with IBUS 1.5.10

After I've setup the Chinese input method in Ubuntu Gnome 15.10, one issue I've noticed was that I can't input any Chinese characters even through I've already switched to it. Google did return an answer on how to troubleshoot and solve this.

First is to check if Firefox load library. It seems to load but still, I can't input any Chinese characters.
$ strace firefox 2>&1 | grep immodules
open("/usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/immodules.cache", O_RDONLY) = 25
stat("/usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/immodules/", {st_mode=S_IFREG|0644, st_size=31816, ...}) = 0
open("/usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/immodules/", O_RDONLY|O_CLOEXEC) = 25

Then I remember that I did make some changes to the X in .xprofile. It seems I was setting Flexible Input Method Framework (fcitx) as my default input method framework instead of Intelligent Input Bus (IBus). This was setup last time as I need to setup a default input method framework when using i3 window manager.
$ cat .xprofile | grep export
    export GTK_IM_MODULE=fcitx
    export QT4_IM_MODULE=fcitx
    export QT_IM_MODULE=fcitx
    export XMODIFIERS="@im=fcitx"

Changing the .xprofile file by replacing all 'fcitx' to 'ibus'. Log out and re-login again did solve the issue.
$ cat .xprofile | grep export
    export GTK_IM_MODULE=ibus
    export QT4_IM_MODULE=ibus
    export QT_IM_MODULE=ibus
    export XMODIFIERS="@im=ibus"

Gtk-Message: Failed to load module "overlay-scrollbar"

Follow up with my previous post on replacing the existing Unity desktop with Gnome 3.16. One of the issues I kept encountered since then was this warning message of 'Gtk-Message: Failed to load module "overlay-scrollbar"', especially when I was reading PDF document through EvinceOverlay scrollbar is one of the feature added to Unity desktop to obtain more spaces by hiding the scrollbar by default and only show it when you mouse-over the scrolling hotspot. Now, how should we fix this?

Reading through the AskUbuntu's answer on this matter, it seems the pre-installed overlay-scrollbar was not removed? Let's try to remove this.
$ sudo apt-get remove overlay-scrollbar
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package 'overlay-scrollbar' is not installed, so not removed
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Interesting. The package is not installed. Re-read the answer again, it seemed that this was due to residual config files that still existing after I've removed Unity desktop. Let's purge the package. Next, just logout and login again and the problem should be solved.
$ sudo apt-get purge overlay-scrollbar

On a related note, you can purge all the residual config files of all the removed DEB packages. This is something totally new for me after using Ubuntu or Debian for so many years.
$ dpkg -l | grep '^rc' | awk '{print $2}' | sudo xargs dpkg --purge

Let's break down the commands. First, get one sample result of the 'dpkg -l | grep '^rc' commands as shown below.
$ dpkg -l | grep ^rc | tail -n 1
rc  zeitgeist-datahub  0.9.14-2.2ubuntu3 amd64 event logging framework - passive logging daemon

What is 'rc'? Let's try to get the first few lines from 'dpkg -l' command. Note that I've truncated the extra whitespaces. If you look at the vertical line (|) that pointed down, there are three fields that indicates the status of a DEB package. There status are desired status, current status, and error indicator. Refer back to our 'rc' status of a package, 'r' means removed and 'c' means that config files still exists and installed in the system.
$ dpkg -l | head -n 4
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name    Version    Architecture Description

Going back to our sample package, zeitgeist-datahub. Let's find out the residual config files exists for this DEB package?
$ dpkg -L zeitgeist-datahub

Remove or purge the residual config files. Both commands are equivalent.
$ sudo apt-get purge zeitgeist-datahub
$ sudo dpkg --purge zeitgeist-datahub

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] y
(Reading database ... 256755 files and directories currently installed.)
Removing zeitgeist-datahub (0.9.14-2.2ubuntu3) ...
Purging configuration files for zeitgeist-datahub (0.9.14-2.2ubuntu3) ...

Checking back the package status. Nothing shown. Hence, everything was successfully purged from your system.
$ dpkg -l | grep zeitgeist-datahub

Installing Gnome 3.16 in Ubuntu 15.04

Update:  Please follow up with this post to purge all your residual config files related to Unity desktop environment from your system.

I've made a mistake during my fresh Ubuntu 15.04 installation as I picked the default graphical shell, the Unity flavour instead of Ubuntu Gnome 15.04, the Gnome flavour. Why so? I need to have a lean, optimized, and without much tweaking with sensible default desktop environment. I've tried Fedora 22 where Gnome 3 is the default graphical environment and had very good experience with it. Compare to Unity, it's more well-integrated and feels more cohesive.

Meanwhile, with Unity, I always have bad user experience since it was first release until now. It's quite resource intensive and buggy. If you don't have good optimized driver support for your graphic card, especially laptop, Compiz will make you cry. Yes, it's getting better these days but there still a few major annoyances with its default settings, especially that bloody freaking Unity Launcher.

My beef with Unity Launcher is the behaviour of auto-hide and the revealing sensitivity. Regardless how much I've tweak the sensitivity, out of ten times, maybe around 4 or more, whenever I moved my mouse over to the left or rather moused over the hot spot, the Launcher will not show up. Somehow the way the Launcher intercept the hot spot and its timing does not work the way as other launchers or dockers. This was made worse as there is no way to disable the auto-hide animation of the Launcher, which is perceivably slow. Not only the frustration of moving your mouse in a way within a limited hot spot to reveal the Launcher, you've to wait for it to slowly hide itself.

Enough rants.

Let's us proceed with installation or upgrade of Gnome 3.16. But first, let's check what are the version available in the default Ubuntu Vivid repository. As shown below, default Gnome version in default repository is still version 3.14. If you want version 3.16 from default repository, you'll have to upgrade to Ubuntu 15.10.
$ apt-cache show gnome-shell | grep Version
Version: 3.14.4-0ubuntu1

Before you install Gnome 3.16, you must first install version 3.14 using the default repository and purge the Unity desktop through cross-grading from Ubuntu to Ubuntu Gnome. I learned it the hard way that both desktop environments cannot coexists at the same time. Not sure why but there is a bug where you can't login to the Gnome desktop environment.
$ sudo apt-get install ubuntu-gnome-desktop
$ sudo apt-get purge ubuntu-default-settings
$ sudo apt-get purge ubuntu-desktop
$ sudo apt-get autoremove

Once you've install Gnome 3.14 and reboot, make sure you can login through the Gnome Display Manager (GDM) successfully. Next, we proceed with upgrading by adding the Gnome 3 staging Personal Package Archives (PPA). Note that this is staging PPA, things will break, so your mileage may vary (YMMV).
$ sudo add-apt-repository ppa:gnome3-team/gnome3-staging
$ sudo add-apt-repository ppa:gnome3-team/gnome3

Next, you'll need to update and dist-upgrade the system. You must use dist-upgrade command to resolve all necessary dependencies, this include removing of unused packages.
$ sudo apt-get update
$ sudo apt-get dist-upgrade

Go to a terminal console by pressing Ctrl + Alt + F1 to restart the GDM manually. Alternatively, you can just reboot the system. Login again to the Gnome 3.16 desktop environment to confirm our upgrade has been successfully.
$ sudo service gdm restart

Check our Gnome version.
$ gnome-shell --version
GNOME Shell 3.16.2

If you messed up the upgrade which eventually break the system (trust me it will somehow for some unknown reasons), for example, you can't see the login screen, just downgrade the Gnome 3 installation by purging Gnome 3 staging PPA. Consider the downgrade as rollback to version 3.14.
$ sudo apt-get install ppa-purge
$ sudo ppa-purge ppa:gnome3-team/gnome3-staging
$ sudo ppa-purge ppa:gnome3-team/gnome3

If you encounter any login issue with any desktop environments even through you've successfully logged in before, you'll need to remove the .Xauthority file. Go to the virtual console (Ctrl + Alt + F1), login using the same account credential and delete the .Xauthority file. Logout and switch to the graphical virtual console (Ctrl + Alt + F7) and try to login again.
$ rm -rf .Xauthority

Switch to Gnome 3.10

Regardless all negative experiences vented by numerous people on Gnome 3.x, I have the opposite and surprised experiences after switching to it from Unity Desktop. Everything seemed fall into place and far more stable and pleasant looking than the Unity. Commands to upgrade as follows:
$ sudo add-apt-repository ppa:gnome3-team/gnome3-next
$ sudo apt-get update
$ sudo apt-get install gnome-shell ubuntu-gnome-desktop

$ sudo add-apt-repository ppa:gnome3-team/gnome3-staging
$ sudo add-apt-repository ppa:gnome3-team/gnome3
$ sudo apt-get update && sudo apt-get dist-upgrade

$ sudo apt-get install gnome-weather gnome-music gnome-maps cheese gnome-documents