2016-10-17

[Technology] Getting my Lenovo Twist s230u to actually go to sleep

I use a Lenovo Twist s230u.  I run Fedora Linux.  It has trouble going to sleep.  It just keeps waking up.  I try to sing it lullabies to no avail. 



After suffering for too long, I sought answers, and found these Launchpad bugs helpful:


For a while, I was just doing the suboptimal:


  • # for i in EHC1 EHC2 XHC; do echo "$i" > /proc/acpi/wakeup; done


after restarting.



I got bored with the 5 seconds it took to run that each time I rarely restarted, so I looked into boot scripts for systemd:


So, now I have:


  • /etc/systemd/system/toggle-wakeup-devices.service


Which contains:


[Unit]

[Service]
ExecStart=/usr/local/bin/toggle-wakeup-devices.sh

[Install]
WantedBy=default.target

 And I have


  •  /usr/local/bin/toggle-wakeup-devices.sh


Which contains:


#!/bin/sh

for i in EHC1 EHC2 XHC; do
      echo "$i" > /proc/acpi/wakeup;
done

This still isn't quite optimal.  (Would be nice to work out an appropriate patch to fix this behaviour for all users and submit it, rather than a workaround.)  But I have a Masters to finish, and this is sufficient for me for now. :)


 

Trying to use vala-mode in emacs:


c-get-lang-constant: Invalid function: "\\s *#\\s *"

I looked for my vala-mode.el and found I was using a local copy I had set up last year,



~/.emacs.d/lisp/vala-mode.el



It was from 2015-05-27, however, that seemed to be the latest copy.  I replaced it anyway, (despite diff showing no differences) and "magically" it resumed working.  Hmm.  Maybe it was also just me restarting my emacs daemon. :D

2016-06-04

[Technology] Spending all of my disk space

I used to save a lot of content to my computer that I thought was cool.  I, however, almost never access any of it.  Consequently, I'm trying to stop being such a collector.  Good bye decade old wallpaper collection. (* HA!  I'm not actually going to DELETE it.  I'm just going to risk having it stored on an external hard drive. :P)



Another recent problem is that my system uses GNOME Software and PackageKit to manage packages and updates. However, for correctness, it wants to only update packages during a restart.  (https://fedoraproject.org/wiki/Features/OfflineSystemUpdates)  Of course, I almost never restart my computer, and end up just using dnf ("Dandified Yum" (yum: Yellowdog Updater, Modified (replaced yup: Yellowdog Updater, which was the update manager for Yellow Dog Linux, which focussed on PowerPCs, GPUs, and high performance computing).  So, GNOME Software uses PackageKit to pre-download updates, which wait to be applied during the next update.  However, I end up installing them separately before that using dnf.  Then, GNOME Software and PackageKit by default just leave them there in the cache, FOREVER.  Over 4 months, that consumed 5GB of space.  If I had to pay for all that data, that would be a huge redundant waste.  So much effort with delta RPMs to conserve data used in updating, only to waste it like that, by having double-downloads?  That's a bug: https://bugs.freedesktop.org/show_bug.cgi?id=80053


Replacing libraries and files while the OS is running can cause
problems ranging from application crashes to inconsistent system states
where processes are using different versions of a library at the same
time. By installing system updates 'outside' the normal system
operation, we avoid these problems.
- https://fedoraproject.org/wiki/Features/OfflineSystemUpdates

One of the commentators on the FreeDesktop bug report uses a cron job for the command:


pkcon refresh force -c -1

I haven't done much with cron for a while, so I used Arch Linux's great documentation on cron and the man pages, before deciding that I'd actually give the Future (er, present) a try with systemd timers.  A combination of the documentation, Arch Linux's page on it, and this random blog post by Jason Graham, I ended up adding a pretty minimal .service and .timer pair of files.



Yay, problem worked around.


Proper solution?


This probably would have entailed trying to write and submit a patch that would have done one of the following:


  • cause packagekit to discard superseded packages in its cache, or

  • cause GNOME Software to let you choose to do risky, online updates, or

  • cause dnf aware of packagekit's cache so we don't have to re-download and waste data (seems kind of dumb), or

  • cause multiple solutions to share the same package cache directory, or

  • use something like ostree to make 'online' updates safe


 Who knows.

2016-03-28

Firefox for Android

Firefox for Android on my Nexus 6 is so sluggish, and has brought my whole phone to a crawl twice today, requiring restarts (memory issues?), yet they boldly describe it as "fast". What brave marketing.


2015-08-21

[Technology] Accessing files.web.uoguelph.ca from Linux when off campus

Until a few weeks ago, I was able to login remotely to my University's web hosting server.  Now, I need to connect via VPN first.



On Fedora Linux, I made sure I had vpnc installed and NetworkManager-vpnc.   Then I went to Network Manager's settings/preferences, added a new connection (+ in the bottom left), chose VNC, and chose the vpnc client.  Then I used the settings from this page:



https://www.uoguelph.ca/ccs/internet-phones/virtual-private-network-vpn/using-vpn



It beats using the creepy script from vpn.uoguelph.ca at least.

2015-08-19

[Technology] Automating my life away




A decade ago, part of a job was to help automate creation
of a report that normally involved a human scanning through dozens of
spreadsheets each year, copying and pasting numbers and generating
graphs and tables, manually.

The place where I worked
predominantly used Perl.  (It was a science laboratory.)   My solution
was to use OpenOffice's GUI to bulk-convert the Microsoft Excel
spreadsheets (binary XLS files) to whichever file format OpenOffice used
at the time that was actually a collection of XML in a zipped
directory. (Was that .sdc?)

I then used Perl's libxml
wrapper (probably wrapping libxml2) to parse the XML into an SQLite
database.  (Or was it PostgeSQL like everything else there?)  I had
tried to use some other Perl XML library, but it was Super Slow compared
to the snappy libxml2 (written in C).  Like, a difference in many
minutes to run versus one second.


From there, I wrote
some Perl CGI scripts to automatically generate most of the tables and
graphics into HTML form, in some fashion that looked nice when imported
into OpenOffice. (Really?!)  The person who was responsible for the
report, who normally took a few weeks to do, said that it would save him
so much of the time, that it would take him now a couple days to look
at the data and write conclusions and maybe do some cleaning.  He
marveled at automation and how quickly he could be replaced.  The
automation revolution in action.


Today I used LibreOffice to convert about a hundred spreadsheets into CSV files with this one command:

find . -name "*.xls" | while read line; do
  (cd "$(dirname "$line")" &&
   libreoffice --headless --convert-to csv "$(basename "$line")");
done





I
am not sure that OpenOffice could do headless conversion back then.  I
was probably overwhelmed by all the potential everywhere to discover the
functionality if it exists.  This would have helped free a few hours of
my life.

Automation, a revolution.



UPDATE:

Converting to CSV only does the 1st sheet tab.  You apparently can't specify a different sheet to be the active sheet.  I also had to convert some other old spreadsheets for easy parsing (mostly just grep'ing through them to find data).   In that case, I used --convert-to html which was beautiful, even if one of the resultant HTML files was 138MB large.

[Technology] Starting Firefox Faster


summary: if you use pinned tabs, and they're all loading at start, despite setting tabs to not load until selected, this post is for you.

I have two hard disks, a 24GB SSD (fast!) and a spinner.  I noticed that to fully load Firefox and wait for everything to settle, it was taking about a minute and a half, back when my root directory was on the HDD.  Recently (see earlier posts), I moved my root onto the SSD.  That improved things marginally.  Firefox was now settling in around 1m12s.  I tried moving my profile onto the SSD.  Now I was down around 1m00s.  (These are averaged from multiple warm runs.)  That is still abysmal.



One thing I notice is that a private web app I wrote (look up My Daily in past posts maybe) is guarded by an .htaccess file, and I have it as a pinned tab.  In that full minute, before things finish settling, I get prompted to authenticate myself.  I then recalled that I had enabled the Firefox option to load tabs when clicked (Preferences > General > "Don't load tabs until selected"), so why is it loading?



All the pinned tabs actually seem to be loading at startup.  Grr.  Perhaps that is tunable?



I went to about:config, and sure enough, typing in "pinned" filtered down to this setting:


browser.sessionstore.restore_pinned_tabs_on_demand

defaulting to "false".  I set it to "true", and now Firefox takes <3s to open and settle.  Sure, clicking on a pinned tab now takes a normal time to load the tab, but it's better than loading GMail, Google Calendar, Blogger, Google Drive, Google Keep and my web app ALL AT ONCE.

Dieses Blog durchsuchen

Labels

#Technology #GNOME gnome gxml fedora bugs linux vala google #General firefox security gsoc GUADEC android bug xml fedora 18 javascript libxml2 programming web blogger encryption fedora 17 gdom git emacs libgdata memory mozilla open source serialisation upgrade web development API Spain containers design evolution fedora 16 fedora 20 fedora 22 fedup file systems friends future glib gnome shell internet luks music performance phone photos php podman preupgrade tablet testing typescript yum #Microblog Network Manager adb apache art automation bash brno catastrophe css data loss debian debugging deja-dup disaster docker emusic errors ext4 facebook fedora 19 gee gir gitlab gitorious gmail gobject google talk google+ gtk html libxml mail microsoft mtp mysql namespaces nautilus nextcloud owncloud picasaweb pitivi ptp python raspberry pi resizing rpm school selinux signal sms speech dispatcher systemd technology texting time management uoguelph usability video web design youtube #Tech Air Canada C Electron Element Empathy Europe GError GNOME 3 GNOME Files Go Google Play Music Grimes IRC Mac OS X Mario Kart Memento Nintendo Nintendo Switch PEAP Selenium Splatoon UI VPN Xiki accessibility advertising ai albums anaconda anonymity apple ask asus eee top automake autonomous automobiles b43 backup battery berlin bit rot broadcom browsers browsing canada canadian english cars chrome clarity comments communication compiler complaints computer computers configuration console constructive criticism cron cropping customisation dataloss dconf debug symbols design patterns desktop summit development discoverability distribution diy dnf documentation drm duplicity e-mail efficiency email english environment estate experimenting ext3 fedora 11 festival file formats firejail flac flatpak forgottotagit freedom friendship fuse galaxy nexus galton gay rights gdb german germany gimp gio gjs gnome software gnome-control-center google assistant google calendar google chrome google hangouts google reader gqe graphviz growth gtest gtg gvfs gvfs metadata hard drive hard drives hardware help hp humour ide identity instagram installation instant messaging integration intel interactivity introspection jabber java java 13 jobs kernel keyboard language language servers languages law learning lenovo letsencrypt libreoffice librpm life livecd liveusb login lsp macbook maintainership mariadb mario matrix memory leaks messaging mounting mouse netflix new zealand node nodelist numix obama oci ogg oggenc oh the humanity open open standards openoffice optimisation org-mode organisation package management packagekit paint shedding parallelism pdo perl pipelight privacy productivity progress progressive web apps pumpkin pwa pyright quality recursion redhat refactoring repairs report rhythmbox rust sandboxes scheduling screenshots self-navigating car shell sleep smartphones software software engineering speed sql ssd synergy tabs test tests themes thesis tracker travel triumf turtles tv tweak twist typing university update usb user experience valadoc video editing volunteering vpnc waf warm wayland weather web apps website wifi wiki wireless wishes work xinput xmpp xorg xpath
Powered by Blogger.