Sorry

This feed does not validate.

In addition, interoperability with the widest range of feed readers could be improved by implementing the following recommendations.

Source: http://www.prolixium.com/rss

  1. <?xml version="1.0" encoding="iso-8859-1"?>
  2. <rss version="2.0"
  3. xmlns:dc="http://purl.org/dc/elements/1.1/"
  4. >
  5.  
  6. <channel>
  7.  
  8. <title>Prolixium dot com</title>
  9. <link>http://www.prolixium.com/feed?what=blog</link>
  10. <description>Mark Kamichoff's Web Log (Blog)</description>
  11. <lastBuildDate>Wed, 17 Sep 2025 07:46:34 UTC</lastBuildDate> <generator>Prolixium RSS 2.0, Version 1.1</generator>
  12. <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  13. <language>en</language>
  14. <item>
  15. <title>Site Status</title>
  16. <dc:creator>prox</dc:creator>
  17. <pubDate>Tue, 12 Jan 2021 12:50:54 UTC</pubDate>
  18. <link>http://www.prolixium.com/blog?id=1044</link>
  19. <guid isPermaLink="true">http://www.prolixium.com/blog?id=1044</guid>
  20. <description>&lt;p&gt;At this point, I think this will be my last &lt;em&gt;legacy&lt;/em&gt; blog post.  All new blog posts will be on &lt;a href=&quot;https://blog.prolixium.com/&quot;&gt;blog.prolixium.com&lt;/a&gt;.&lt;/p&gt;
  21.  
  22. &lt;p&gt;The original prolixium.com was the output of my experimentation with PHP and MySQL in the early 2000s.  The site is 100% home-grown and not based on any frameworks.  I don&#039;t care to write any PHP code anymore and I don&#039;t really have an interest in web development anymore.&lt;/p&gt;
  23.  
  24. &lt;p&gt;As a result, I&#039;m going to get rid of most of the miscellaneous content here and either put a placeholder page for prolixium.com itself or redirect it to the blog.  I&#039;m not sure what to do with the photos or the legacy blog content (I thought about importing it into Wordpress but this seems like a bad idea).  I might just exclusively use external services for photos, which I&#039;ve started to do over the last 2-3 years:&lt;/p&gt;
  25.  
  26. &lt;ul&gt;
  27. &lt;li&gt;&lt;a href=&quot;https://www.flickr.com/photos/prolixium&quot;&gt;Mark Kamichoff on Flickr&lt;/a&gt;&lt;/li&gt;
  28. &lt;li&gt;&lt;a href=&quot;https://www.instagram.com/prolixium/&quot;&gt;prolixium on Instagram&lt;/a&gt;&lt;/li&gt;
  29. &lt;li&gt;&lt;a href=&quot;https://twitter.com/Prolixium/media&quot;&gt;Mark Kamichoff&#039;s Media on Twitter&lt;/a&gt;&lt;/li&gt;
  30. &lt;/ul&gt;
  31.  
  32. &lt;p&gt;I&#039;ve also posted photos on Facebook in the past but I&#039;ve mostly detached from that platform at this point.&lt;/p&gt;
  33.  
  34. &lt;p&gt;Things that will stay in some form of another are the looking glass and statistics pages, since those are still useful and not ancient.&lt;/p&gt;
  35.  
  36. &lt;p&gt;Thanks for reading!  See y&#039;all over at blog.prolixium.com for now!&lt;/p&gt;</description>
  37. </item>
  38.  
  39. <item>
  40. <title>Web Logs and Other Musings</title>
  41. <dc:creator>prox</dc:creator>
  42. <pubDate>Sun, 08 Mar 2020 14:12:50 UTC</pubDate>
  43. <link>http://www.prolixium.com/blog?id=1043</link>
  44. <guid isPermaLink="true">http://www.prolixium.com/blog?id=1043</guid>
  45. <description>&lt;p&gt;I haven&#039;t updated this blog in quite sometime.  The primary reasons are:&lt;/p&gt;
  46.  
  47. &lt;ul&gt;
  48. &lt;li&gt;Most of the neat technological things I do on a daily basis can&#039;t be shared with the world (day job).&lt;/li&gt;
  49. &lt;li&gt;I&#039;ve been lazy.&lt;/li&gt;
  50. &lt;/ul&gt;
  51.  
  52. &lt;p&gt;The second bullet above is king.  I also have eschewed web development over the last few years and don&#039;t want any part in it.  So, as a result, the blog has suffered and also the upkeep of the entire site has suffered.  That being said, I do continue to ensure nothing is &lt;em&gt;broken&lt;/em&gt; and regularly keep up the &lt;a href=&quot;https://www.prolixium.com/mrtgfe&quot;&gt;statistics&lt;/a&gt; and &lt;a href=&quot;https://www.prolixium.com/computers&quot;&gt;computers&lt;/a&gt; pages.&lt;/p&gt;
  53.  
  54. &lt;p&gt;That being said, I threw together &lt;a href=&quot;https://blog.prolixium.com/&quot;&gt;blog.prolixium.com&lt;/a&gt; last year to eventually migrate everything from the legacy site onto the new blog.  Well, that hasn&#039;t happened.  I&#039;m likely to just stop updating this blog and use the new one for everything new.  I also need to fix some of the navigation on the site to accommodate it.&lt;/p&gt;
  55.  
  56. &lt;p&gt;The one other thing here that&#039;s been popular in the past has been the &lt;a href=&quot;https://www.prolixium.com/photos&quot;&gt;photos&lt;/a&gt; area.  I haven&#039;t kept this updated in years, either.  Instead, I&#039;ve just been adding photos to the following accounts:&lt;/p&gt;
  57.  
  58. &lt;ul&gt;
  59. &lt;li&gt;&lt;a href=&quot;https://www.instagram.com/prolixium/&quot;&gt;Instagram&lt;/a&gt;&lt;/li&gt;
  60. &lt;li&gt;&lt;a href=&quot;https://flickr.com/photos/prolixium&quot;&gt;Flickr&lt;/a&gt;&lt;/li&gt;
  61. &lt;li&gt;&lt;a href=&quot;https://www.facebook.com/Prolixium/photos_all&quot;&gt;Facebook&lt;/a&gt;&lt;/li&gt;
  62. &lt;/ul&gt;
  63.  
  64. &lt;p&gt;I do also have a &lt;a href=&quot;https://focoro.com/profile/prolixium&quot;&gt;Focoro account&lt;/a&gt;, but it&#039;s never gotten much usage.&lt;/p&gt;
  65.  
  66. &lt;p&gt;I&#039;m not sure what&#039;s going on with Flickr lately and I don&#039;t have a subscription so that may fall by the wayside eventually.  The photos section of this site will remain legacy and probably just not be updated.&lt;/p&gt;
  67.  
  68. &lt;p&gt;In other news, my *.prolixium.com SSL certificate is now Safari-compatible!  Yes, that means that it expires in about a year now instead of more than that.  I&#039;m really glad I don&#039;t do anything security-related for a living anymore.  It&#039;s such a losing battle.&lt;/p&gt;</description>
  69. </item>
  70.  
  71. <item>
  72. <title>Android 8/9 Notifications</title>
  73. <dc:creator>prox</dc:creator>
  74. <pubDate>Sun, 28 Jul 2019 23:01:55 UTC</pubDate>
  75. <link>http://www.prolixium.com/blog?id=1042</link>
  76. <guid isPermaLink="true">http://www.prolixium.com/blog?id=1042</guid>
  77. <description>&lt;p&gt;Ever since I upgraded my OnePlus 3T to LineageOS 15.1 last year and then this year replaced that phone with a OnePlus 6T running OxygenOS (Android 9) notifications has been spotty.  By spotty I mean sometimes I get notifications when the phone is locked with the screen off and sometimes tons of them pop up (as if they were queued up) after I unlock the phone.  I&#039;ve generally ignored it but it started to annoy me lately, so I looked into it.&lt;/p&gt;
  78.  
  79. &lt;p&gt;Disabling battery optimization didn&#039;t do squat.  I tried this for a day or two and then concluded it didn&#039;t do anything, so I changed all apps back to being optimized (except for &lt;a href=&quot;https://play.google.com/store/apps/details?id=com.ninefolders.hd3&quot;&gt;Nine&lt;/a&gt;, since it complains if it&#039;s optimized).&lt;/p&gt;
  80.  
  81. &lt;p&gt;I&#039;ve always had the &quot;Wi-Fi on when screen is off&quot; setting enabled and can always ping my phone while the screen is off (and observe comms using tcpdump on my router).&lt;/p&gt;
  82.  
  83. &lt;p&gt;It turns out that the root cause here is the &lt;a href=&quot;https://en.wikipedia.org/wiki/Android_Marshmallow#DOZE&quot;&gt;Doze&lt;/a&gt; feature of Android, which was introduced in Android 6.  Disabling it can be done with adb or from the shell (as described &lt;a href=&quot;https://forums.androidcentral.com/android-pie/904647-notifications-delayed-stopped-3.html&quot;&gt;here&lt;/a&gt;), so I did it:&lt;/p&gt;
  84.  
  85. &lt;pre&gt;~$ dumpsys deviceidle disable
  86. Deep idle mode disabled
  87. Light idle mode disabled&lt;/pre&gt;
  88.  
  89. &lt;p&gt;This fixed the problem.  All notifications work for me when the phone is locked and the screen is off, now.&lt;/p&gt;
  90.  
  91. &lt;p&gt;The one thing that this doesn&#039;t explain is why I only started noticing this in Android 8 when the feature was clearly added in Android 6.  Oh well.&lt;/p&gt;</description>
  92. </item>
  93.  
  94. <item>
  95. <title>Linux IPv6 FIB Bugs</title>
  96. <dc:creator>prox</dc:creator>
  97. <pubDate>Sat, 16 Feb 2019 12:50:18 UTC</pubDate>
  98. <link>http://www.prolixium.com/blog?id=1041</link>
  99. <guid isPermaLink="true">http://www.prolixium.com/blog?id=1041</guid>
  100. <description>&lt;p&gt;tl;dr - I&#039;m running into some FIB bug on Linux &amp;gt; 4.14&lt;/p&gt;
  101.  
  102. &lt;p&gt;Ever since I upgraded &lt;a href=&quot;https://www.prolixium.com/computers#excalibur&quot;&gt;excalibur&lt;/a&gt; (bare metal IPv6 router running BGP and tunnels) from Linux past version 4.14 I&#039;ve been having some weird IPv6 FIB problems.  The host takes a few full IPv6 BGP feeds (currently ~60K routes) and puts them into the Linux FIB via &lt;a href=&quot;http://frrouting.org/&quot;&gt;FRR&lt;/a&gt;.  It also terminates a few OpenVPN and 6in4 tunnels for friends &amp; family and happens to also host dax, the VM where &lt;a href=&quot;https://www.prolixium.com/&quot;&gt;prolixium.com&lt;/a&gt; web content is hosted.&lt;/p&gt;
  103.  
  104. &lt;p&gt;The problems started when I upgraded to Linux 4.19 that was packaged by Debian in testing.  About 90 minutes after the reboot and after everything had converged, I started seeing reachability issues to some IPv6 destinations.  The routes were in the RIB (FRR) and in the FIB but traffic was being bitbucketed.   Even direct routes were affected.  Here&#039;s excalibur&#039;s VirtualBox interface to dax going AWOL from an IPv6 perspective:&lt;/p&gt;
  105.  
  106. &lt;pre&gt;(excalibur:11:02:EST)% ip -6 addr show dev vboxnet0
  107. 15: vboxnet0: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 state UP qlen 1000
  108.    inet6 2620:6:200f:3::1/64 scope global
  109.       valid_lft forever preferred_lft forever
  110.    inet6 fe80::800:27ff:fe00:0/64 scope link
  111.       valid_lft forever preferred_lft forever
  112. (excalibur:11:02:EST)% ip -6  ro |grep 2620:6:200f:3
  113. 2620:6:200f:3::/64 dev vboxnet0 proto kernel metric 256 pref medium
  114. (excalibur:11:02:EST)% ip -6 route get 2620:6:200f:3::2
  115. 2620:6:200f:3::2 from :: dev vboxnet0 proto kernel src 2620:6:200f:3::1 metric 256 pref medium
  116. (excalibur:11:02:EST)% ping6 -c4 2620:6:200f:3::2
  117. PING 2620:6:200f:3::2(2620:6:200f:3::2) 56 data bytes
  118.  
  119. --- 2620:6:200f:3::2 ping statistics ---
  120. 4 packets transmitted, 0 received, 100% packet loss, time 3ms
  121.  
  122. (excalibur:11:02:EST)% &lt;/pre&gt;
  123.  
  124. &lt;p&gt;In the above case, the route was there, a Netlink confirmed it, but no traffic would flow.  The fix here was to either bounce the interface, restart FRR, or reboot.&lt;/p&gt;
  125.  
  126. &lt;p&gt;Other times Netlink provides a negative response:&lt;/p&gt;
  127.  
  128. &lt;pre&gt;(excalibur:12:30:EST)% ip -6 route get 2620:6:200e:8100::
  129. RTNETLINK answers: Invalid argument.
  130. (excalibur:12:30:EST)% ip -6 ro|grep 2620:6:200e:8100::/56
  131. 2620:6:200e:8100::/56 via 2620:6:200e::2 dev tun2 proto static metric 20 pref medium&lt;/pre&gt;
  132.  
  133. &lt;p&gt;In this case, the route appeared to be there but Netlink had some issue when querying it.  Traffic to that prefix was being bitbucketed.  The fix was to re-add the static route in FRR:&lt;/p&gt;
  134.  
  135. &lt;pre&gt;(excalibur:12:32:EST)# vtysh -c &quot;conf t&quot; -c &quot;no ipv6 route 2620:6:200e:8100::/56 2620:6:200e::2&quot;
  136. (excalibur:12:32:EST)# vtysh -c &quot;conf t&quot; -c ipv6 route 2620:6:200e:8100::/56 2620:6:200e::2&quot;
  137. (excalibur:12:32:EST)% ip -6 route get 2620:6:200e:8100::
  138. 2620:6:200e:8100:: from :: via 2620:6:200e::2 dev tun2 proto static src 2620:6:200e::1 metric 20 pref medium&lt;/pre&gt;
  139.  
  140. &lt;p&gt;Downgrading from 4.19 to 4.16 seemed to have made the situation &lt;em&gt;much&lt;/em&gt; better but not fix it completely.  Instead of 50% routes failing to work after 90 minutes only handful of prefixes break.  I&#039;m not sure how many a handful is, but it&#039;s more than 1.  I was running 4.14 for about 6 months without a problem so I might just downgrade to that for now.&lt;/p&gt;
  141.  
  142. &lt;p&gt;I did try reproducing this on a local VM running 4.19, FRR, and two BGP feeds but the problem isn&#039;t manifesting itself.  I&#039;m wondering if this is traffic or load related or maybe even related to the existence of tunnels.  I don&#039;t think it&#039;s FRR&#039;s fault but it certainly might be doing something funny with its Netlink socket that triggers the kernel bug.  I also don&#039;t know how to debug this further, so I&#039;m going to need to do some research.&lt;/p&gt;
  143.  
  144. &lt;p&gt;&lt;em&gt;Update 2019-02-16&lt;/em&gt;&lt;/p&gt;
  145.  
  146. &lt;p&gt;I started playing with that local VM running 4.19 and can successfully cause IPv6 connectivity to &quot;hiccup&quot; if I do the following on it:&lt;/p&gt;
  147.  
  148. &lt;pre&gt;% ip -6 route|egrep &quot;^[0-9a-f]{1,4}:&quot;|awk &#039;{ print $1; }&#039;|sed &quot;s#/.*##&quot;|xargs -L 1 ip -6 route get&lt;/pre&gt;
  149.  
  150. &lt;p&gt;This basically walks the IPv6 Linux FIB and does an &quot;ip -6 route get&quot; for each prefix (first address in each).  After exactly 4,261 prefixes Netlink just gives me network unreachable:&lt;/p&gt;
  151.  
  152. &lt;pre&gt;[...]
  153. 2001:df0:456:: from :: via fe80::21b:21ff:fe3b:a9b4 dev eth0 proto bgp src 2620:6:2003:105:250:56ff:fe1a:afc2 metric 20 pref medium
  154. 2001:df0:45d:: from :: via fe80::21b:21ff:fe3b:a9b4 dev eth0 proto bgp src 2620:6:2003:105:250:56ff:fe1a:afc2 metric 20 pref medium
  155. 2001:df0:465:: from :: via fe80::21b:21ff:fe3b:a9b4 dev eth0 proto bgp src 2620:6:2003:105:250:56ff:fe1a:afc2 metric 20 pref medium
  156. RTNETLINK answers: Network is unreachable
  157. RTNETLINK answers: Network is unreachable
  158. RTNETLINK answers: Network is unreachable
  159. RTNETLINK answers: Network is unreachable
  160. RTNETLINK answers: Network is unreachable
  161. RTNETLINK answers: Network is unreachable
  162. RTNETLINK answers: Network is unreachable
  163. RTNETLINK answers: Network is unreachable
  164. RTNETLINK answers: Network is unreachable
  165. [...]&lt;/pre&gt;
  166.  
  167. &lt;p&gt;It&#039;s funny because it&#039;s always at the same exact point.  The route after 2001:df0:465::/48 is 2001:df0:467::/48, which I can query just fine outside of the loop:&lt;/p&gt;
  168.  
  169. &lt;pre&gt;(nltest:11:12:PST)% ip -6 route get 2001:df0:467::  
  170. 2001:df0:467:: from :: via fe80::21b:21ff:fe3b:a9b4 dev eth0 proto bgp src 2620:6:2003:105:250:56ff:fe1a:afc2 metric 20 pref medium
  171. (nltest:11:12:PST)% &lt;/pre&gt;
  172.  
  173. &lt;p&gt;The only possible explanation I can come up with is that I&#039;m hitting some Netlink limit and messages are getting dropped.  If I don&#039;t Ctrl-C the script and just let it sit there spewing the unreachable messages on the screen eventually all IPv6 connectivity to my VM hiccups and cause my BGP sessions to bounce.  I can see this when running an adaptive ping to the VM:&lt;/p&gt;
  174.  
  175. &lt;pre&gt;[...]
  176. 64 bytes from 2620:6:2003:105:250:56ff:fe1a:afc2: icmp_seq=1215 ttl=64 time=0.386 ms
  177. 64 bytes from 2620:6:2003:105:250:56ff:fe1a:afc2: icmp_seq=1216 ttl=64 time=0.372 ms
  178. 64 bytes from 2620:6:2003:105:250:56ff:fe1a:afc2: icmp_seq=1217 ttl=64 time=0.143 ms
  179. 64 bytes from 2620:6:2003:105:250:56ff:fe1a:afc2: icmp_seq=1218 ttl=64 time=0.383 ms
  180. 64 bytes from 2620:6:2003:105:250:56ff:fe1a:afc2: icmp_seq=1235 ttl=64 time=1022 ms     &lt;--- segments 1219..1234 gone
  181. 64 bytes from 2620:6:2003:105:250:56ff:fe1a:afc2: icmp_seq=1236 ttl=64 time=822 ms
  182. 64 bytes from 2620:6:2003:105:250:56ff:fe1a:afc2: icmp_seq=1237 ttl=64 time=621 ms
  183. 64 bytes from 2620:6:2003:105:250:56ff:fe1a:afc2: icmp_seq=1238 ttl=64 time=421 ms
  184. 64 bytes from 2620:6:2003:105:250:56ff:fe1a:afc2: icmp_seq=1239 ttl=64 time=221 ms
  185. 64 bytes from 2620:6:2003:105:250:56ff:fe1a:afc2: icmp_seq=1240 ttl=64 time=20.6 ms
  186. 64 bytes from 2620:6:2003:105:250:56ff:fe1a:afc2: icmp_seq=1241 ttl=64 time=0.071 ms
  187. 64 bytes from 2620:6:2003:105:250:56ff:fe1a:afc2: icmp_seq=1242 ttl=64 time=0.078 ms
  188. 64 bytes from 2620:6:2003:105:250:56ff:fe1a:afc2: icmp_seq=1243 ttl=64 time=0.081 ms
  189. 64 bytes from 2620:6:2003:105:250:56ff:fe1a:afc2: icmp_seq=1244 ttl=64 time=0.076 ms
  190. [...]&lt;/pre&gt;
  191.  
  192. &lt;p&gt;Next step here is to downgrade the VM to a 4.14 and run the same thing.  It&#039;s possible I could just be burning out Netlink and this is normal, but I&#039;m suspicious.&lt;/p&gt;
  193.  
  194. &lt;p&gt;&lt;em&gt;Update 2 2019-02-16&lt;/em&gt;&lt;/p&gt;
  195.  
  196. &lt;p&gt;Downgrading my local VM to Linux 4.14 and running the same shell fragment above produces no network unreachable messages from Netlink, does not disturb IPv6 connectivity at all, and no BGP sessions bounce:&lt;/p&gt;
  197.  
  198. &lt;pre&gt;(nltest:11:44:PST)% ip -6 route|egrep &quot;^[0-9a-f]{1,4}:&quot;|awk &#039;{ print $1; }&#039;|sed &quot;s#/.*##&quot;|xargs -L 1 ip -6 route get 1&gt; /dev/null
  199. (nltest:11:45:PST)% &lt;/pre&gt;
  200.  
  201. &lt;p&gt;Something definitely changed or got bugged in Netlink after 4.14.&lt;/p&gt;
  202.  
  203. &lt;p&gt;&lt;em&gt;Update 3 2019-02-16&lt;/em&gt;&lt;/p&gt;
  204.  
  205. &lt;p&gt;After testing a few kernels, it seems this was introduced in Linux 4.18.  More investigation needed.&lt;/p&gt;
  206.  
  207. &lt;p&gt;&lt;em&gt;Update 4 2019-11-17&lt;/em&gt;&lt;/p&gt;
  208.  
  209. &lt;p&gt;It looks like I may have found something.  I upgraded to 5.3.0-2-amd64 (Debian kernel) and ran the same test above.  I got the same results but this time I saw something interesting in dmesg output:&lt;/p&gt;
  210.  
  211. &lt;pre&gt;[  119.460300] Route cache is full: consider increasing sysctl net.ipv[4|6].route.max_size.
  212. [  120.666697] Route cache is full: consider increasing sysctl net.ipv[4|6].route.max_size.
  213. [  121.668727] Route cache is full: consider increasing sysctl net.ipv[4|6].route.max_size.&lt;/pre&gt;
  214.  
  215. &lt;p&gt;Apparently, net.ipv6.route.max_size was set very low:&lt;/p&gt;
  216.  
  217. &lt;pre&gt;(netlink:19:17:PST)% sudo sysctl -A|grep max_size
  218. net.ipv4.route.max_size = 2147483647
  219. net.ipv6.route.max_size = 4096&lt;/pre&gt;
  220.  
  221. &lt;p&gt;Well, I certainly have more than 4,096 routes.  So, I increased it to 1048576.  It WORKED!&lt;/p&gt;
  222.  
  223. &lt;pre&gt;(netlink:19:18:PST)% ip -6 route|egrep &quot;^[0-9a-f]{1,4}:&quot;|awk &#039;{ print $1; }&#039;|sed &quot;s#/.*##&quot;|xargs -L 1 ip -6 route get 1&gt; /dev/null
  224. (netlink:19:23:PST)% &lt;/pre&gt;
  225.  
  226. &lt;p&gt;No output means no RTNETLINK errors.&lt;/p&gt;
  227.  
  228. &lt;p&gt;This net.ipv6.route.max_size key is present and set to 4096 on my production routers running ~77K IPv6 routes with 4.14 kernels with no issue.  So, I have lots of questions here:&lt;/p&gt;
  229.  
  230. &lt;ul&gt;
  231. &lt;li&gt;What is the &quot;route cache&quot; seen in dmesg?  Linux&#039;s route cache was done away with several years ago.&lt;/li&gt;
  232. &lt;li&gt;Why does Linux 4.14 handle ~77K IPv6 routes just fine with the value of max_size set to 4096?&lt;/li&gt;
  233. &lt;li&gt;Why does only Linux 5.3 emit the error about the route cache?&lt;/li&gt;
  234. &lt;li&gt;Will increasing the max_size on the Linux 4.14 systems help anything at all?&lt;/li&gt;
  235. &lt;/ul&gt;
  236.  
  237. &lt;p&gt;More research is needed but at least there&#039;s a way forward with kernels &gt; 4.17.&lt;/p&gt;</description>
  238. </item>
  239.  
  240. <item>
  241. <title>Core i9-9900K Upgrade</title>
  242. <dc:creator>prox</dc:creator>
  243. <pubDate>Mon, 10 Dec 2018 16:24:19 UTC</pubDate>
  244. <link>http://www.prolixium.com/blog?id=1040</link>
  245. <guid isPermaLink="true">http://www.prolixium.com/blog?id=1040</guid>
  246. <description>&lt;p&gt;It&#039;s been over eight (8) years since I built a PC with the last one being in 2010, a &lt;a href=&quot;https://www.prolixium.com/blog?id=901&quot;&gt;Core i7-980X&lt;/a&gt; (&lt;a href=&quot;https://www.prolixium.com/computers#destiny&quot;&gt;destiny&lt;/a&gt;), which was back when Intel actually produced motherboards!&lt;/p&gt;
  247.  
  248. &lt;p&gt;destiny is my main home workstation.  I use it for some VMs, video encoding, photo editing, and the occasional game (Quake III Arena and Quake 4).  For the last two years I mulled over upgrading it to something more modern, even though my workloads on it didn&#039;t really justify the upgrade.  This year, I decided to pull the trigger and upgrade it to something that&#039;ll last for another 8 years.  I looked at the Ryzen ThreadRipper series and even added a few builds to my cart, but then realized it was probably going to be a waste since 99% of the time the plethora of cores won&#039;t be used.  So, I decided to look at the leader in single thread performance, which turned out to be Intel:&lt;/p&gt;
  249.  
  250. &lt;p&gt;&lt;img style=&quot;border-style: solid; border-color: #000000; border-width: 1px; padding: 4px; vertical-align: middle;&quot; src=&quot;https://www.prolixium.com/images/blog/singlethread-nov2018.png&quot; alt=&quot;Single Thread Performance, Nov 2018&quot; /&gt;&lt;/p&gt;
  251.  
  252. &lt;p&gt;&lt;em&gt;(source for the above screenshot is &lt;a href=&quot;https://www.cpubenchmark.net/singleThread.html&quot;&gt;here&lt;/a&gt;)&lt;/em&gt;&lt;/p&gt;
  253.  
  254. &lt;p&gt;AMD doesn&#039;t even make it to the top 10.  Since the i9-9900K had just been released by the time I was looking, I decided to go with it.  Here&#039;s the build:&lt;/p&gt;
  255.  
  256. &lt;p&gt;&lt;em&gt;New components:&lt;/em&gt;&lt;/p&gt;
  257.  
  258. &lt;ul&gt;
  259. &lt;li&gt;Motherboard: MSI MEG Z390 ACE&lt;/li&gt;
  260. &lt;li&gt;CPU: Intel Core i9-9900K&lt;/li&gt;
  261. &lt;li&gt;Cooler: Cooler Master Hyper 212 EVO&lt;/li&gt;
  262. &lt;li&gt;Memory: 4x8GiB Corsair Vengeance LPX DDR4-2666 (32GiB total)&lt;/li&gt;
  263. &lt;li&gt;PSU: Corsair RM850x&lt;/li&gt;
  264. &lt;li&gt;Case: Corsair Carbide 200R&lt;/li&gt;
  265. &lt;/ul&gt;
  266.  
  267. &lt;p&gt;&lt;em&gt;Existing components:&lt;/em&gt;&lt;/p&gt;
  268.  
  269. &lt;ul&gt;
  270. &lt;li&gt;SATA SSDs: OCZ Colossus 256GB, Crucial M500 960GB, Crucial m4 256GB&lt;/li&gt;
  271. &lt;li&gt;SATA Optical Drives: LG Electronics BH16NS40 Blu-ray Rewriter, Pioneer PIO-BDR-211UBK MAIN-16374 Blu-ray Rewriter&lt;/li&gt;
  272. &lt;li&gt;Video Card: eVGA GeForce GTX 1050 Ti SC&lt;/li&gt;
  273. &lt;/ul&gt;
  274.  
  275. &lt;p&gt;The OCZ SSD is pretty old and a 3.5&quot; form factor but it&#039;s still working so I have it mounted in ~/tmp for scratch space.  I&#039;ll probably replace it or some of the other SATA SSDs with M.2 SSDs if it turns out I need more space.  Right now, it&#039;s not a priority for me.  The Blu-ray optical drives limited my choice in cases, but the 200R is a really nice case and another one of my systems uses the same one so I&#039;ve got experience with it.&lt;/p&gt;
  276.  
  277. &lt;p&gt;The integration was, honestly, pretty easy.  I expected more of a fight.  It was a little tricky to get the Cooler Master heat sink oriented and attached to the processor but I wasn&#039;t in a rush and took my time.&lt;/p&gt;
  278.  
  279. &lt;p&gt;&lt;img style=&quot;border-style: solid; border-color: #000000; border-width: 1px; padding: 4px; vertical-align: middle;&quot; src=&quot;https://www.prolixium.com/images/blog/mobobuild.jpg&quot; alt=&quot;MSI MEG Z390 ACE + i990K + Cooler Master Hyper 212 EVO&quot; /&gt;&lt;/p&gt;
  280.  
  281. &lt;p&gt;I had fully intended to use the old 850 watt Corsair power supply that I had used on my i7-980X system (TX850w) but it lacked the 2x CPU power connectors so I went for a new RM 850x.  Anyway, here&#039;s the [almost] final build:&lt;/p&gt;
  282.  
  283. &lt;p&gt;&lt;img style=&quot;border-style: solid; border-color: #000000; border-width: 1px; padding: 4px; vertical-align: middle;&quot; src=&quot;https://www.prolixium.com/images/blog/finalbuild.jpg&quot; alt=&quot;Final Build&quot; /&gt;&lt;/p&gt;
  284.  
  285. &lt;p&gt;I say almost final because the OCZ SSD gave me some problems.  The power and SATA connectors on it stick out pretty far, so the case wouldn&#039;t close.  I even tried the L-shaped SATA connector that came with the MSI motherboard but that didn&#039;t work, either.  At the end of the day I just took it out of the 3.5&quot; bay and placed it &quot;free&quot; in the case.  Yes, this is horrible and more of a reason for me to replace it with an M.2 SSD in the near future.&lt;/p&gt;
  286.  
  287. &lt;p&gt;&lt;img style=&quot;border-style: solid; border-color: #000000; border-width: 1px; padding: 4px; vertical-align: middle;&quot; src=&quot;https://www.prolixium.com/images/blog/oczssddoesntfit.jpg&quot; alt=&quot;OCZ SSD Problems&quot; /&gt;&lt;/p&gt;
  288.  
  289. &lt;p&gt;Actually, I can see the above problem happening for any full 3.5&quot; drive, which is a little weird.  Here&#039;s the final result:&lt;/p&gt;
  290.  
  291. &lt;p&gt;&lt;img style=&quot;border-style: solid; border-color: #000000; border-width: 1px; padding: 4px; vertical-align: middle;&quot; src=&quot;https://www.prolixium.com/images/blog/finalbuild-case.jpg&quot; alt=&quot;Final Build (case)&quot; /&gt;&lt;/p&gt;
  292.  
  293. &lt;p&gt;Unlike &lt;em&gt;many&lt;/em&gt; PCs I&#039;ve built in the past, this one worked the first time!  After assembling everything the BIOS indicated to me that everything was set to defaults, so I explored a little bit of the BIOS and then booted the OS.&lt;/p&gt;
  294.  
  295. &lt;p&gt;&lt;img style=&quot;border-style: solid; border-color: #000000; border-width: 1px; padding: 4px; vertical-align: middle;&quot; src=&quot;https://www.prolixium.com/images/blog/msibios.jpg&quot; alt=&quot;MSI BIOS&quot; /&gt;&lt;/p&gt;
  296.  
  297. &lt;p&gt;The BIOS is really slick, BTW.  I&#039;m not one to like GUIs but it&#039;s nice to actually see a map of the board with annotations of what&#039;s connected to what. &amp;nbs;The one thing that I still think I need to change is the memory speed.  Without OC&#039;ing, Intel rates the memory speed of the i9-9900K at 2666 MHz, which is the speed of the RAM I have.  It&#039;s running at 2133 MHz right now.&lt;/p&gt;
  298.  
  299. &lt;p&gt;I booted up Linux and did some tests running HandBrakeCLI and messing with cpufrequtils.  While I can set the processor to run at 5.00 GHz, it throttles itself down to 4.70 GHz under full load at 77&amp;deg;C, which seems fine to me.  The default governor is powersave, which runs all cores at 800 MHz during idle times and actually results in lower TDP than the 980X.&lt;/p&gt;
  300.  
  301. &lt;p&gt;&lt;img style=&quot;border-style: solid; border-color: #000000; border-width: 1px; padding: 4px; vertical-align: middle;&quot; src=&quot;https://www.prolixium.com/images/blog/hbtest.jpg&quot; alt=&quot;HandBrakeCLI Test&quot; /&gt;&lt;/p&gt;
  302.  
  303. &lt;p&gt;&lt;em&gt;(sorry for the photo instead of a screenshot, but I was lazy)&lt;/em&gt;&lt;/p&gt;
  304.  
  305. &lt;p&gt;It&#039;s been awhile, so I also fired up Quake 4, which was super smooth even with the quality turned up.  Although, most of that is GPU-heavy and even at max vsync (60FPS) only half a core was utilized during gameplay.&lt;/p&gt;
  306.  
  307. &lt;p&gt;I&#039;ll probably have some updates here to share over the next few days but for now, I&#039;m happy with the upgrade.  The system &lt;em&gt;feels&lt;/em&gt; considerably faster and compared to the 980X, it definitely is:&lt;/p&gt;
  308.  
  309. &lt;p&gt;&lt;img style=&quot;border-style: solid; border-color: #000000; border-width: 1px; padding: 4px; vertical-align: middle;&quot; src=&quot;https://www.prolixium.com/images/blog/core980x-9900k-compare.png&quot; alt=&quot;i7-980X vs. i9-9900K&quot; /&gt;&lt;/p&gt;
  310.  
  311. &lt;p&gt;&lt;em&gt;(source for the above screenshot is &lt;a href=&quot;https://www.cpubenchmark.net/compare/Intel-i9-9900K-vs-Intel-i7-980X/3334vs866&quot;&gt;here&lt;/a&gt;)&lt;/em&gt;&lt;/p&gt;
  312.  
  313. &lt;p&gt;Find dmesg, cpuinfo, and lspci output &lt;a href=&quot;https://www.prolixium.com/share/txt/corei9/&quot;&gt;here&lt;/a&gt;, if you&#039;re curious.  All grainy cellphone photos are &lt;a href=&quot;https://www.prolixium.com/corei9&quot;&gt;here&lt;/a&gt;, too.&lt;/p&gt;</description>
  314. </item>
  315.  
  316. <item>
  317. <title>Who hosts your cloud provider&#039;s status page?</title>
  318. <dc:creator>prox</dc:creator>
  319. <pubDate>Mon, 22 Oct 2018 23:08:30 UTC</pubDate>
  320. <link>http://www.prolixium.com/blog?id=1039</link>
  321. <guid isPermaLink="true">http://www.prolixium.com/blog?id=1039</guid>
  322. <description>&lt;p&gt;I thought this was a little funny.  Here are the links to a few of the top cloud providers&#039; status pages:&lt;/p&gt;
  323.  
  324. &lt;ul&gt;
  325. &lt;li&gt;&lt;a href=&quot;https://status.ctl.io/&quot;&gt;https://status.ctl.io/&lt;/a&gt; (CenturyLink)&lt;/li&gt;
  326. &lt;li&gt;&lt;a href=&quot;https://status.aws.amazon.com/&quot;&gt;https://status.aws.amazon.com/&lt;/a&gt; (Amazon Web Services)&lt;/li&gt;
  327. &lt;li&gt;&lt;a href=&quot;https://azure.microsoft.com/en-us/status/&quot;&gt;https://azure.microsoft.com/en-us/status/&lt;/a&gt; (Microsoft Azure)&lt;/li&gt;
  328. &lt;li&gt;&lt;a href=&quot;https://ocistatus.oraclecloud.com/&quot;&gt;https://ocistatus.oraclecloud.com/&lt;/a&gt; (Oracle Cloud)&lt;/li&gt;
  329. &lt;li&gt;&lt;a href=&quot;https://status.cloud.google.com/&quot;&gt;https://status.cloud.google.com/&lt;/a&gt; (Google Cloud)&lt;/li&gt;
  330. &lt;li&gt;&lt;a href=&quot;https://status.linode.com/&quot;&gt;https://status.linode.com/&lt;/a&gt; (Linode)&lt;/li&gt;
  331. &lt;li&gt;&lt;a href=&quot;https://status.vultr.com/&quot;&gt;https://status.vultr.com/&lt;/a&gt; (Vultr)&lt;/li&gt;
  332. &lt;li&gt;&lt;a href=&quot;https://status.apps.rackspace.com/&quot;&gt;https://status.apps.rackspace.com/&lt;/a&gt; (Rackspace)&lt;/li&gt;
  333. &lt;/ul&gt;
  334.  
  335. &lt;p&gt;Now, here&#039;s who hosts the status page (courtesy of &lt;a href=&quot;https://www.prolixium.com/files/code/ipin/&quot;&gt;ipin&lt;/a&gt;, which is truly hideous Perl code that you should not read):&lt;/p&gt;
  336.  
  337. &lt;h3&gt;CenturyLink&lt;/h3&gt;
  338.  
  339. &lt;pre&gt;(destiny:20:00:PDT)% ipin status.ctl.io.
  340.  A record #1
  341. 4 Address: 172.217.6.211
  342. 4 PTR: lga25s54-in-f19.1e100.net.
  343. 4 PTR: lga25s54-in-f211.1e100.net.
  344. 4 Prefix: 172.217.6.0/24
  345. 4 Origin: AS15169 [GOOGLE - Google LLC, US]
  346.  AAAA record #1
  347. 6 Address: 2607:f8b0:4006:804::2013
  348. 6 PTR: lga25s54-in-x13.1e100.net.
  349. 6 Prefix: 2607:f8b0:4006::/48
  350. 6 Origin: AS15169 [GOOGLE - Google LLC, US]&lt;/pre&gt;
  351.  
  352. &lt;h3&gt;Amazon Web Services&lt;/h3&gt;
  353.  
  354. &lt;pre&gt;(destiny:20:00:PDT)% ipin status.aws.amazon.com.
  355.  A record #1
  356. 4 Address: 52.94.241.74
  357. 4 Prefix: 52.94.240.0/22
  358. 4 Origin: AS16509 [AMAZON-02 - Amazon.com, Inc., US]&lt;/pre&gt;
  359.  
  360. &lt;h3&gt;Microsoft Azure&lt;/h3&gt;
  361.  
  362. &lt;pre&gt;(destiny:20:01:PDT)% ipin azure.microsoft.com.  
  363.  A record #1
  364. 4 Address: 13.82.93.245
  365. 4 Prefix: 13.64.0.0/11
  366. 4 Origin: AS8075 [MICROSOFT-CORP-MSN-AS-BLOCK - Microsoft Corporation, US]&lt;/pre&gt;
  367.  
  368. &lt;h3&gt;Oracle Cloud&lt;/h3&gt;
  369.  
  370. &lt;pre&gt;(destiny:20:02:PDT)% ipin ocistatus.oraclecloud.com.
  371.  A record #1
  372. 4 Address: 18.234.32.149
  373. 4 PTR: ec2-18-234-32-149.compute-1.amazonaws.com.
  374. 4 Prefix: 18.232.0.0/14
  375. 4 Origin: AS14618 [AMAZON-AES - Amazon.com, Inc., US]&lt;/pre&gt;
  376.  
  377. &lt;h3&gt;Google Cloud&lt;/h3&gt;
  378.  
  379. &lt;pre&gt;(destiny:20:02:PDT)% ipin status.cloud.google.com.  
  380.  A record #1
  381. 4 Address: 172.217.6.206
  382. 4 PTR: lga25s54-in-f14.1e100.net.
  383. 4 PTR: lga25s54-in-f206.1e100.net.
  384. 4 Prefix: 172.217.6.0/24
  385. 4 Origin: AS15169 [GOOGLE - Google LLC, US]
  386.  AAAA record #1
  387. 6 Address: 2607:f8b0:4006:804::200e
  388. 6 PTR: lga25s54-in-x0e.1e100.net.
  389. 6 Prefix: 2607:f8b0:4006::/48
  390. 6 Origin: AS15169 [GOOGLE - Google LLC, US]&lt;/pre&gt;
  391.  
  392. &lt;h3&gt;Linode&lt;/h3&gt;
  393.  
  394. &lt;pre&gt;(destiny:20:03:PDT)% ipin status.linode.com.      
  395.  A record #1
  396. 4 Address: 18.234.32.150
  397. 4 PTR: ec2-18-234-32-150.compute-1.amazonaws.com.
  398. 4 Prefix: 18.232.0.0/14
  399. 4 Origin: AS14618 [AMAZON-AES - Amazon.com, Inc., US]&lt;/pre&gt;
  400.  
  401. &lt;h3&gt;Vultr&lt;/h3&gt;
  402.  
  403. &lt;pre&gt;(destiny:20:03:PDT)% ipin status.vultr.com.
  404.  A record #1
  405. 4 Address: 104.20.23.240
  406. 4 Prefix: 104.20.16.0/20
  407. 4 Origin: AS13335 [CLOUDFLARENET - Cloudflare, Inc., US]
  408.  A record #2
  409. 4 Address: 104.20.22.240
  410. 4 Prefix: 104.20.16.0/20
  411. 4 Origin: AS13335 [CLOUDFLARENET - Cloudflare, Inc., US]
  412.  AAAA record #1
  413. 6 Address: 2606:4700:10::6814:16f0
  414. 6 Prefix: 2606:4700:10::/44
  415. 6 Origin: AS13335 [CLOUDFLARENET - Cloudflare, Inc., US]
  416.  AAAA record #2
  417. 6 Address: 2606:4700:10::6814:17f0
  418. 6 Prefix: 2606:4700:10::/44
  419. 6 Origin: AS13335 [CLOUDFLARENET - Cloudflare, Inc., US]&lt;/pre&gt;
  420.  
  421. &lt;h3&gt;Rackspace&lt;/h3&gt;
  422.  
  423. &lt;pre&gt;(destiny:20:04:PDT)% ipin status.apps.rackspace.com.
  424.  A record #1
  425. 4 Address: 152.195.12.244
  426. 4 Prefix: 152.195.12.0/24
  427. 4 Origin: AS15133 [EDGECAST - MCI Communications Services, Inc. d/b/a Verizon Business, US]&lt;/pre&gt;
  428.  
  429. &lt;p&gt;I&#039;m not gonna lie, I had a chuckle when I saw who hosted Oracle Cloud&#039;s status page.  Other takeaways:&lt;/p&gt;
  430.  
  431. &lt;ul&gt;
  432. &lt;li&gt;Everyone here uses HTTPS.  That&#039;s nice.&lt;/li&gt;
  433. &lt;li&gt;Only Google, Vultr, and CenturyLink seem to care about providing IPv6 connectivity to their status pages.&lt;/li&gt;
  434. &lt;li&gt;Most cloud providers here seem to self-host except for CenturyLink (Google), Linode (AWS), Rackspace (Edgecast), and Oracle (AWS).&lt;/li&gt;
  435. &lt;li&gt;Vultr might be worried about DDoS so they use Cloudflare as a front-end.&lt;/li&gt;
  436. &lt;/ul&gt;
  437.  
  438. &lt;p&gt;Really, this isn&#039;t indicitive of anything.  I&#039;d probably host my status page elsewhere if I ran a hosting service, TBQH.&lt;/p&gt;</description>
  439. </item>
  440.  
  441. <item>
  442. <title>Bragging</title>
  443. <dc:creator>prox</dc:creator>
  444. <pubDate>Sat, 08 Sep 2018 14:24:27 UTC</pubDate>
  445. <link>http://www.prolixium.com/blog?id=1038</link>
  446. <guid isPermaLink="true">http://www.prolixium.com/blog?id=1038</guid>
  447. <description>&lt;p&gt;In the mid-1990s my friends used to brag about how many TVs their family had, how many cars they owned, and, in general, how much &lt;em&gt;stuff&lt;/em&gt; they had.  I&#039;ll admit that I used to brag about how many computers I had or how I connected to &lt;a href=&quot;https://en.wikipedia.org/wiki/AOL&quot;&gt;AOL&lt;/a&gt; over a &lt;em&gt;LAN&lt;/em&gt; connection.  All of this was annoying.&lt;/p&gt;
  448.  
  449. &lt;p&gt;Things are a bit different in 2018 but ultimately the same.  Instead of bragging about how much stuff people have they now brag about how much stuff they &lt;em&gt;don&#039;t&lt;/em&gt; have.  Here are the typical statements I hear people periodically brag about, at least around the &lt;a href=&quot;https://en.wikipedia.org/wiki/Pacific_Northwest&quot;&gt;PNW&lt;/a&gt;:&lt;/p&gt;
  450.  
  451. &lt;ul&gt;
  452. &lt;li&gt;We don&#039;t have a TV.&lt;/li&gt;
  453. &lt;li&gt;We don&#039;t use cars.&lt;/li&gt;
  454. &lt;li&gt;We don&#039;t have a land line.&lt;/li&gt;
  455. &lt;li&gt;We don&#039;t have A/C.&lt;/li&gt;
  456. &lt;li&gt;We don&#039;t use a garbage disposal.&lt;/li&gt;
  457. &lt;/ul&gt;
  458.  
  459. &lt;p&gt;The no-car and no-TV statements I hear most often and they&#039;re usually stated out of context.  These all don&#039;t bother me much because I&#039;m an adult but every once and awhile it gets really annoying (hence this blog post).  Maybe I should counter these by bragging about my wife and I having no kids.&lt;/p&gt;
  460.  
  461. &lt;p&gt;Tasteless?  Maybe.&lt;/p&gt;</description>
  462. </item>
  463.  
  464. <item>
  465. <title>Boot Messages</title>
  466. <dc:creator>prox</dc:creator>
  467. <pubDate>Sat, 04 Aug 2018 13:23:04 UTC</pubDate>
  468. <link>http://www.prolixium.com/blog?id=1037</link>
  469. <guid isPermaLink="true">http://www.prolixium.com/blog?id=1037</guid>
  470. <description>&lt;p&gt;Most modern switches and routers today are based on a Linux or *BSD-flavoured operating system.  It&#039;s a given that these operating systems are fairly complex but what boggles my mind is when vendors ship them with their products and don&#039;t bother cleaning up the initialization scripts.&lt;/p&gt;
  471.  
  472. &lt;p&gt;For example, Junos:&lt;/p&gt;
  473.  
  474. &lt;pre&gt;Attaching /cf/packages/junos via /dev/mdctl...
  475. Mounted junos package on /dev/md1...
  476. A
  477. Media check on da0
  478. Automatic reboot in progress...
  479. ** /dev/da0s2a (NO WRITE)
  480. ** Last Mounted on /
  481. ** Root file system
  482. ** Phase 1 - Check Blocks and Sizes
  483. ** Phase 2 - Check Pathnames
  484. ** Phase 3 - Check Connectivity
  485. ** Phase 4 - Check Reference Counts
  486. ** Phase 5 - Check Cyl groups
  487. 161 files, 75937 used, 74101 free (21 frags, 9260 blocks, 0.0% fragmentation)
  488. mount reload of &#039;/&#039; failed: Operation not supported
  489.  
  490. -a: not found
  491. -a: not found
  492. -a: not found
  493. -a: not found
  494. -a: not found
  495. -a: not found
  496. -a: not found
  497. -a: not found
  498. -a: not found
  499. -a: not found
  500. Checking integrity of BSD labels:
  501.  s1: Passed
  502.  s2: Passed
  503.  s3: Passed
  504.  s4: Passed&lt;/pre&gt;
  505.  
  506. &lt;p&gt;That &lt;em&gt;-a: not found&lt;/em&gt; bugs my &lt;a href=&quot;https://en.wikipedia.org/wiki/Obsessive%E2%80%93compulsive_disorder&quot;&gt;OCD&lt;/a&gt; and makes me worry that the &lt;em&gt;-a&lt;/em&gt; argument was ignored because it was treated as a file.  The mount error is fun, too.&lt;/p&gt;</description>
  507. </item>
  508.  
  509. </channel>
  510. </rss>
  511.  
Copyright © 2002-9 Sam Ruby, Mark Pilgrim, Joseph Walton, and Phil Ringnalda