Hobart is currently certified at Journeyer level.

Name: Jon Bailey
Member since: 2000-12-28 17:26:40
Last Login: 2009-06-05 13:16:23

FOAF RDF Share This

Homepage: http://jb.org/


"The best thing for being sad," replied Merlin, beginning to puff and blow, "is to learn something. That's the only thing that never fails. You may grow old and trembling in your anatomies, you may lie awake at night listening to the disorder of your veins, you may miss your only love, you may see the world about you devastated by evil lunatics, or know your honour trampled in the sewers of baser minds. There is only one thing for it then -- to learn. Learn why the world wags and what wags it. That is the only thing which the mind can never exhaust, never alienate, never be tortured by, never fear or distrust, and never dream of regretting. Learning is the only thing for you. Look what a lot of things there are to learn." -- T.H. White, "The Once and Future King"

Recent blog entries by Hobart

Syndication: RSS 2.0

"Front-end development work" or "Oh HTML-chan!"

panel from Girl Genius by Phil and Kaja Foglio - see girlgeniusonline dot com

If you're making a pure CSS front-end, and need things to be conditionally interacted with - you likely want to use radio-button type <input> controls set to display:none, associated <label> controls wrapping click-able areas, and the [type:radio] , ~ , and :checked CSS selector tools to make things do things. Gurpreet Singh's answer to this StackOverflow question makes a good starting point.

Also the flexible box layout has been around 6 years and is generally supported ... if only there were more outreach.

The HTML Living Standard is free (though extensive), most of it is readable by mortals, and has examples, and should be at least skimmed through and a copy kept on hand. If you're skimming, look for the grey "example" areas especially.

Syndicated 2017-01-30 19:54:05 from jon's blog

mount option 'norelatime' being ignored

Red Hat bug 756670 also reflects the behavior of Ubuntu 16.10, and likely others.

tl;dr: If you really want atime - you need to use the 'strictatime' option, not 'norelatime'.

"Status: Closed NOTABUG" - ha ha ha

Syndicated 2017-01-17 15:33:04 from jon's blog

Cgroups example - limiting memory to control disk writes (Debian)

I ran into a problem with an overactive process that left the rest of the system running slow. nice(1) did nothing to solve it, neither did ionice(1) rescheduling it to "Idle". If you run into something similar, cgroups may help

cgroups ("Control groups") were developed at Google around 2006 and showed up in Linux around 2.6.24. Searching for cgroups examples largely leads one to the RHEL Resource Management Guide. (Link goes to the latest version, most Google searches point to older copies.)

In my case, I had a long running (>1hr) process that wrote several hundred GB of output.

I looked at the processes' speed by piping it through pv(1), and also looked at top(1), iotop(1), and

$ watch cat /proc/meminfo  (watching the Dirty: line)

The process was doing buffered writes to disk, which was good (keeping the disk continuously fed for best throughput) but was filling up huge amounts of cache (1~2 dozen GB of Dirty pages.) When I paused it, sync(1) took over 5min to complete.

Debian 8.0 (Jessie) has cgroups by default but, the memory type are disabled by default.

# apt-get install cgroup-tools
# vi /etc/default/grub

(Add  cgroup_enable=memory  to kernel boot parameters, run  update-grub2  and reboot.)

# cgcreate -g memory:/foo
# echo 64M > /sys/fs/cgroup/memory/foo/memory.limit_in_bytes
# cgexec -g memory:/foo bash
(your task here)

The cgcreate(1) command is a fancy equivalent to doing a mkdir in the cgroup partition, which automatically is populated with the appropriate control files. Debian 8's kernel has both cgroup and cgroup2 support, but as systemd(8) is using version 1 and it appears the two cannot be used concurrently, that's what I used.


  • Fast throughput - better than piping through dd oflag=direct or dd oflag=dsync
  • Solved the system-wide performance hit
  • Everything ran nicely and the watching meminfo (as above) showed dirty pages were being regularly flushed


  • Your task might be hit by the OOM killer.
  • Your task can have malloc(3) calls fail, which makes most tools bail out.

This feels like a hack solution, but since cgroups can't limit just write buffered memory yet, and using cgroups actual disk-write limiter (blkio.throttle.write_bps_device) would require the above-mentioned slow dd(1) (which ran at 30% of the speed, at best) and none of the other tools actually worked, I'm sharing it. YMMV - and I'd love to hear of other solutions that actually work for people. A good test program to run is:

$ pv -S -s 80g < /dev/zero > zeroes.dat
(write 80GB to a file, with progress bar and live throughput details)

Syndicated 2016-07-25 07:29:17 from jon's blog

Microsoft Outlook hangs at "Loading profile..." (solved)


  • Outlook hangs at blue splash screen with "Loading profile..." and never opens.
Software involved:
  • Win 10 64-bit 10.0.10240
  • Office 2016 64-bit 16.0.4229.1029
  • IMAP account hosted with GoDaddy (imap.secureserver.net) - only item in profile (.OST backed, default settings)
Solutions that did not work:
  • Creating a new Outlook profile
  • Clearing out all MAPI config from the registry (renaming HKLM\SOFTWARE\Microsoft\Windows Messaging Subsystem )+reboot
  • Deleting all Outlook folders under %USERPROFILE% dir
  • Renaming out all Outlook registry settings under HKCU
  • Doing a full repair of Office 2016
  • Setting up under a fresh user account
  • Starting Outlook with /SAFE parameter
  • Disabling IPv6 (create DWORD HKLM\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\DisabledComponents set to 0xffffffff)+reboot
  • Clearing out Windows Search (ControlPanel->IndexingOptions, unchecking Outlook, 'Delete+rebuild' on advanced tab)
Solution that did work:
  • Disconnecting the network, then reconnecting when Outlook was open.
  • Launch Outlook, wait for blue splash screen stuck at "Loading profile..."
  • Launch an Administrator command prompt. (Start, type CMD, press Ctrl+Shift+Enter, say Yes.)
  • IPCONFIG /release at command prompt.
  • Outlook opened up
  • IPCONFIG /renew at command prompt.
  • Clicked "Send/Receive All Folders" - sync completed normally.

Syndicated 2015-10-15 23:44:50 from jon's blog

4-disk raidz vs 3-disk raidz vs 2-disk mirror

Benchmarked three different volumes (ZFS on Linux) from a Windows client.

Conclusion: At the mere speed of Gigabit Ethernet, there's no appreciable speed difference.

Syndicated 2015-10-01 21:28:52 from jon's blog

412 older entries...


Hobart certified others as follows:

  • Hobart certified Hobart as Apprentice

Others have certified Hobart as follows:

  • Wazm certified Hobart as Journeyer
  • Hobart certified Hobart as Apprentice

[ Certification disabled because you're not logged in. ]

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!

Share this page