CINXE.COM
Irregular Expression: January 2018
<!DOCTYPE html> <html class='v2' dir='ltr' lang='en'> <head> <link href='https://www.blogger.com/static/v1/widgets/3566091532-css_bundle_v2.css' rel='stylesheet' type='text/css'/> <meta content='width=1100' name='viewport'/> <meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/> <meta content='blogger' name='generator'/> <link href='http://blog.brentlaabs.com/favicon.ico' rel='icon' type='image/x-icon'/> <link href='http://blog.brentlaabs.com/2018/01/' rel='canonical'/> <link rel="alternate" type="application/atom+xml" title="Irregular Expression - Atom" href="http://blog.brentlaabs.com/feeds/posts/default" /> <link rel="alternate" type="application/rss+xml" title="Irregular Expression - RSS" href="http://blog.brentlaabs.com/feeds/posts/default?alt=rss" /> <link rel="service.post" type="application/atom+xml" title="Irregular Expression - Atom" href="https://www.blogger.com/feeds/1163079349106481731/posts/default" /> <!--Can't find substitution for tag [blog.ieCssRetrofitLinks]--> <meta content='http://blog.brentlaabs.com/2018/01/' property='og:url'/> <meta content='Irregular Expression' property='og:title'/> <meta content='Brent Laabs on programming and culture' property='og:description'/> <title>Irregular Expression: January 2018</title> <style id='page-skin-1' type='text/css'><!-- /* ----------------------------------------------- Blogger Template Style Name: Watermark Designer: Blogger URL: www.blogger.com ----------------------------------------------- */ /* Use this with templates/1ktemplate-*.html */ /* Content ----------------------------------------------- */ body { font: normal normal 14px Arial, Tahoma, Helvetica, FreeSans, sans-serif; color: #333333; background: #c0a154 url(https://resources.blogblog.com/blogblog/data/1kt/watermark/body_background_birds.png) repeat scroll top left; } html body .content-outer { min-width: 0; max-width: 100%; width: 100%; } .content-outer { font-size: 92%; } a:link { text-decoration:none; color: #cc3300; } a:visited { text-decoration:none; color: #993322; } a:hover { text-decoration:underline; color: #ff3300; } .body-fauxcolumns .cap-top { margin-top: 30px; background: transparent url(https://resources.blogblog.com/blogblog/data/1kt/watermark/body_overlay_birds.png) no-repeat scroll top right; height: 121px; } .content-inner { padding: 0; } /* Header ----------------------------------------------- */ .header-inner .Header .titlewrapper, .header-inner .Header .descriptionwrapper { padding-left: 20px; padding-right: 20px; } .Header h1 { font: normal normal 60px Georgia, Utopia, 'Palatino Linotype', Palatino, serif; color: #ffffff; text-shadow: 2px 2px rgba(0, 0, 0, .1); } .Header h1 a { color: #ffffff; } .Header .description { font-size: 140%; color: #997755; } /* Tabs ----------------------------------------------- */ .tabs-inner .section { margin: 0 20px; } .tabs-inner .PageList, .tabs-inner .LinkList, .tabs-inner .Labels { margin-left: -11px; margin-right: -11px; background-color: transparent; border-top: 0 solid #ffffff; border-bottom: 0 solid #ffffff; -moz-box-shadow: 0 0 0 rgba(0, 0, 0, .3); -webkit-box-shadow: 0 0 0 rgba(0, 0, 0, .3); -goog-ms-box-shadow: 0 0 0 rgba(0, 0, 0, .3); box-shadow: 0 0 0 rgba(0, 0, 0, .3); } .tabs-inner .PageList .widget-content, .tabs-inner .LinkList .widget-content, .tabs-inner .Labels .widget-content { margin: -3px -11px; background: transparent none no-repeat scroll right; } .tabs-inner .widget ul { padding: 2px 25px; max-height: 34px; background: transparent none no-repeat scroll left; } .tabs-inner .widget li { border: none; } .tabs-inner .widget li a { display: inline-block; padding: .25em 1em; font: normal normal 20px Georgia, Utopia, 'Palatino Linotype', Palatino, serif; color: #cc3300; border-right: 1px solid #c0a154; } .tabs-inner .widget li:first-child a { border-left: 1px solid #c0a154; } .tabs-inner .widget li.selected a, .tabs-inner .widget li a:hover { color: #000000; } /* Headings ----------------------------------------------- */ h2 { font: normal normal 20px Georgia, Utopia, 'Palatino Linotype', Palatino, serif; color: #000000; margin: 0 0 .5em; } h2.date-header { font: normal normal 16px Arial, Tahoma, Helvetica, FreeSans, sans-serif; color: #997755; } /* Main ----------------------------------------------- */ .main-inner .column-center-inner, .main-inner .column-left-inner, .main-inner .column-right-inner { padding: 0 5px; } .main-outer { margin-top: 0; background: transparent none no-repeat scroll top left; } .main-inner { padding-top: 30px; } .main-cap-top { position: relative; } .main-cap-top .cap-right { position: absolute; height: 0; width: 100%; bottom: 0; background: transparent none repeat-x scroll bottom center; } .main-cap-top .cap-left { position: absolute; height: 245px; width: 280px; right: 0; bottom: 0; background: transparent none no-repeat scroll bottom left; } /* Posts ----------------------------------------------- */ .post-outer { padding: 15px 20px; margin: 0 0 25px; background: transparent url(https://resources.blogblog.com/blogblog/data/1kt/watermark/post_background_birds.png) repeat scroll top left; _background-image: none; border: dotted 1px #ccbb99; -moz-box-shadow: 0 0 0 rgba(0, 0, 0, .1); -webkit-box-shadow: 0 0 0 rgba(0, 0, 0, .1); -goog-ms-box-shadow: 0 0 0 rgba(0, 0, 0, .1); box-shadow: 0 0 0 rgba(0, 0, 0, .1); } h3.post-title { font: normal normal 30px Georgia, Utopia, 'Palatino Linotype', Palatino, serif; margin: 0; } .comments h4 { font: normal normal 30px Georgia, Utopia, 'Palatino Linotype', Palatino, serif; margin: 1em 0 0; } .post-body { font-size: 105%; line-height: 1.5; position: relative; } .post-header { margin: 0 0 1em; color: #997755; } .post-footer { margin: 10px 0 0; padding: 10px 0 0; color: #997755; border-top: dashed 1px #777777; } #blog-pager { font-size: 140% } #comments .comment-author { padding-top: 1.5em; border-top: dashed 1px #777777; background-position: 0 1.5em; } #comments .comment-author:first-child { padding-top: 0; border-top: none; } .avatar-image-container { margin: .2em 0 0; } /* Comments ----------------------------------------------- */ .comments .comments-content .icon.blog-author { background-repeat: no-repeat; background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEgAACxIB0t1+/AAAAAd0SU1FB9sLFwMeCjjhcOMAAAD+SURBVDjLtZSvTgNBEIe/WRRnm3U8RC1neQdsm1zSBIU9VVF1FkUguQQsD9ITmD7ECZIJSE4OZo9stoVjC/zc7ky+zH9hXwVwDpTAWWLrgS3QAe8AZgaAJI5zYAmc8r0G4AHYHQKVwII8PZrZFsBFkeRCABYiMh9BRUhnSkPTNCtVXYXURi1FpBDgArj8QU1eVXUzfnjv7yP7kwu1mYrkWlU33vs1QNu2qU8pwN0UpKoqokjWwCztrMuBhEhmh8bD5UDqur75asbcX0BGUB9/HAMB+r32hznJgXy2v0sGLBcyAJ1EK3LFcbo1s91JeLwAbwGYu7TP/3ZGfnXYPgAVNngtqatUNgAAAABJRU5ErkJggg==); } .comments .comments-content .loadmore a { border-top: 1px solid #777777; border-bottom: 1px solid #777777; } .comments .continue { border-top: 2px solid #777777; } /* Widgets ----------------------------------------------- */ .widget ul, .widget #ArchiveList ul.flat { padding: 0; list-style: none; } .widget ul li, .widget #ArchiveList ul.flat li { padding: .35em 0; text-indent: 0; border-top: dashed 1px #777777; } .widget ul li:first-child, .widget #ArchiveList ul.flat li:first-child { border-top: none; } .widget .post-body ul { list-style: disc; } .widget .post-body ul li { border: none; } .widget .zippy { color: #777777; } .post-body img, .post-body .tr-caption-container, .Profile img, .Image img, .BlogList .item-thumbnail img { padding: 5px; background: #fff; -moz-box-shadow: 1px 1px 5px rgba(0, 0, 0, .5); -webkit-box-shadow: 1px 1px 5px rgba(0, 0, 0, .5); -goog-ms-box-shadow: 1px 1px 5px rgba(0, 0, 0, .5); box-shadow: 1px 1px 5px rgba(0, 0, 0, .5); } .post-body img, .post-body .tr-caption-container { padding: 8px; } .post-body .tr-caption-container { color: #333333; } .post-body .tr-caption-container img { padding: 0; background: transparent; border: none; -moz-box-shadow: 0 0 0 rgba(0, 0, 0, .1); -webkit-box-shadow: 0 0 0 rgba(0, 0, 0, .1); -goog-ms-box-shadow: 0 0 0 rgba(0, 0, 0, .1); box-shadow: 0 0 0 rgba(0, 0, 0, .1); } /* Footer ----------------------------------------------- */ .footer-outer { color:#ccbb99; background: #330000 url(https://resources.blogblog.com/blogblog/data/1kt/watermark/body_background_navigator.png) repeat scroll top left; } .footer-outer a { color: #ff7755; } .footer-outer a:visited { color: #dd5533; } .footer-outer a:hover { color: #ff9977; } .footer-outer .widget h2 { color: #eeddbb; } /* Mobile ----------------------------------------------- */ body.mobile { background-size: 100% auto; } .mobile .body-fauxcolumn-outer { background: transparent none repeat scroll top left; } html .mobile .mobile-date-outer { border-bottom: none; background: transparent url(https://resources.blogblog.com/blogblog/data/1kt/watermark/post_background_birds.png) repeat scroll top left; _background-image: none; margin-bottom: 10px; } .mobile .main-inner .date-outer { padding: 0; } .mobile .main-inner .date-header { margin: 10px; } .mobile .main-cap-top { z-index: -1; } .mobile .content-outer { font-size: 100%; } .mobile .post-outer { padding: 10px; } .mobile .main-cap-top .cap-left { background: transparent none no-repeat scroll bottom left; } .mobile .body-fauxcolumns .cap-top { margin: 0; } .mobile-link-button { background: transparent url(https://resources.blogblog.com/blogblog/data/1kt/watermark/post_background_birds.png) repeat scroll top left; } .mobile-link-button a:link, .mobile-link-button a:visited { color: #cc3300; } .mobile-index-date .date-header { color: #997755; } .mobile-index-contents { color: #333333; } .mobile .tabs-inner .section { margin: 0; } .mobile .tabs-inner .PageList { margin-left: 0; margin-right: 0; } .mobile .tabs-inner .PageList .widget-content { margin: 0; color: #000000; background: transparent url(https://resources.blogblog.com/blogblog/data/1kt/watermark/post_background_birds.png) repeat scroll top left; } .mobile .tabs-inner .PageList .widget-content .pagelist-arrow { border-left: 1px solid #c0a154; } .striped-table .odd { background-color: #DCCBA1; } --></style> <style id='template-skin-1' type='text/css'><!-- body { min-width: 960px; } .content-outer, .content-fauxcolumn-outer, .region-inner { min-width: 960px; max-width: 960px; _width: 960px; } .main-inner .columns { padding-left: 0px; padding-right: 310px; } .main-inner .fauxcolumn-center-outer { left: 0px; right: 310px; /* IE6 does not respect left and right together */ _width: expression(this.parentNode.offsetWidth - parseInt("0px") - parseInt("310px") + 'px'); } .main-inner .fauxcolumn-left-outer { width: 0px; } .main-inner .fauxcolumn-right-outer { width: 310px; } .main-inner .column-left-outer { width: 0px; right: 100%; margin-left: -0px; } .main-inner .column-right-outer { width: 310px; margin-right: -310px; } #layout { min-width: 0; } #layout .content-outer { min-width: 0; width: 800px; } #layout .region-inner { min-width: 0; width: auto; } body#layout div.add_widget { padding: 8px; } body#layout div.add_widget a { margin-left: 32px; } --></style> <link href='https://www.blogger.com/dyn-css/authorization.css?targetBlogID=1163079349106481731&zx=c92d9171-713d-414c-963f-50bec28b445b' media='none' onload='if(media!='all')media='all'' rel='stylesheet'/><noscript><link href='https://www.blogger.com/dyn-css/authorization.css?targetBlogID=1163079349106481731&zx=c92d9171-713d-414c-963f-50bec28b445b' rel='stylesheet'/></noscript> <meta name='google-adsense-platform-account' content='ca-host-pub-1556223355139109'/> <meta name='google-adsense-platform-domain' content='blogspot.com'/> </head> <body class='loading variant-birds'> <div class='navbar section' id='navbar' name='Navbar'><div class='widget Navbar' data-version='1' id='Navbar1'><script type="text/javascript"> function setAttributeOnload(object, attribute, val) { if(window.addEventListener) { window.addEventListener('load', function(){ object[attribute] = val; }, false); } else { window.attachEvent('onload', function(){ object[attribute] = val; }); } } </script> <div id="navbar-iframe-container"></div> <script type="text/javascript" src="https://apis.google.com/js/platform.js"></script> <script type="text/javascript"> gapi.load("gapi.iframes:gapi.iframes.style.bubble", function() { if (gapi.iframes && gapi.iframes.getContext) { gapi.iframes.getContext().openChild({ url: 'https://www.blogger.com/navbar/1163079349106481731?origin\x3dhttp://blog.brentlaabs.com', where: document.getElementById("navbar-iframe-container"), id: "navbar-iframe" }); } }); </script><script type="text/javascript"> (function() { var script = document.createElement('script'); script.type = 'text/javascript'; script.src = '//pagead2.googlesyndication.com/pagead/js/google_top_exp.js'; var head = document.getElementsByTagName('head')[0]; if (head) { head.appendChild(script); }})(); </script> </div></div> <div class='body-fauxcolumns'> <div class='fauxcolumn-outer body-fauxcolumn-outer'> <div class='cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left'> <div class='fauxborder-right'></div> <div class='fauxcolumn-inner'> </div> </div> <div class='cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> </div> <div class='content'> <div class='content-fauxcolumns'> <div class='fauxcolumn-outer content-fauxcolumn-outer'> <div class='cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left'> <div class='fauxborder-right'></div> <div class='fauxcolumn-inner'> </div> </div> <div class='cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> </div> <div class='content-outer'> <div class='content-cap-top cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left content-fauxborder-left'> <div class='fauxborder-right content-fauxborder-right'></div> <div class='content-inner'> <header> <div class='header-outer'> <div class='header-cap-top cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left header-fauxborder-left'> <div class='fauxborder-right header-fauxborder-right'></div> <div class='region-inner header-inner'> <div class='header section' id='header' name='Header'><div class='widget Header' data-version='1' id='Header1'> <div id='header-inner'> <div class='titlewrapper'> <h1 class='title'> <a href='http://blog.brentlaabs.com/'> Irregular Expression </a> </h1> </div> <div class='descriptionwrapper'> <p class='description'><span>Brent Laabs on programming and culture</span></p> </div> </div> </div></div> </div> </div> <div class='header-cap-bottom cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> </header> <div class='tabs-outer'> <div class='tabs-cap-top cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left tabs-fauxborder-left'> <div class='fauxborder-right tabs-fauxborder-right'></div> <div class='region-inner tabs-inner'> <div class='tabs no-items section' id='crosscol' name='Cross-Column'></div> <div class='tabs no-items section' id='crosscol-overflow' name='Cross-Column 2'></div> </div> </div> <div class='tabs-cap-bottom cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> <div class='main-outer'> <div class='main-cap-top cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left main-fauxborder-left'> <div class='fauxborder-right main-fauxborder-right'></div> <div class='region-inner main-inner'> <div class='columns fauxcolumns'> <div class='fauxcolumn-outer fauxcolumn-center-outer'> <div class='cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left'> <div class='fauxborder-right'></div> <div class='fauxcolumn-inner'> </div> </div> <div class='cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> <div class='fauxcolumn-outer fauxcolumn-left-outer'> <div class='cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left'> <div class='fauxborder-right'></div> <div class='fauxcolumn-inner'> </div> </div> <div class='cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> <div class='fauxcolumn-outer fauxcolumn-right-outer'> <div class='cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left'> <div class='fauxborder-right'></div> <div class='fauxcolumn-inner'> </div> </div> <div class='cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> <!-- corrects IE6 width calculation --> <div class='columns-inner'> <div class='column-center-outer'> <div class='column-center-inner'> <div class='main section' id='main' name='Main'><div class='widget Blog' data-version='1' id='Blog1'> <div class='blog-posts hfeed'> <div class="date-outer"> <h2 class='date-header'><span>Tuesday, January 2, 2018</span></h2> <div class="date-posts"> <div class='post-outer'> <div class='post hentry uncustomized-post-template' itemprop='blogPost' itemscope='itemscope' itemtype='http://schema.org/BlogPosting'> <meta content='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiccqhC4zaLBUWZxc6xSbyBrVHTeWMEbXRQtdF9Si1UExQnwiVXB0hvnEek1zhl6mQe7Cm0bhdwGIlJyA44LaceGCWNuIuFjlbJmavOlkEn4oDEnPlL6rmXAt0e2iqT_h-7ph8bS_Loz1L/s640/fire-home.jpg' itemprop='image_url'/> <meta content='1163079349106481731' itemprop='blogId'/> <meta content='5164505954032498307' itemprop='postId'/> <a name='5164505954032498307'></a> <h3 class='post-title entry-title' itemprop='name'> <a href='http://blog.brentlaabs.com/2018/01/first-sunrise-2018.html'>First Sunrise 2018</a> </h3> <div class='post-header'> <div class='post-header-line-1'></div> </div> <div class='post-body entry-content' id='post-body-5164505954032498307' itemprop='description articleBody'> This is the fourth in my <a href="http://blog.brentlaabs.com/search/label/hatsuhi">series of posts</a> on the first sunrise of the year, or <i>Hatsuhi no De</i> in Japanese (初日の出). I've been making a habit of writing these things, and today seemed a worthy day to attempt to see the first rays of the sun and follow the tradition of a people not my own.<br /> <br /> Before bed, I set an alarm close to sunrise, but left a window open. The twilight won the alarm contest, awaking me three minutes before the iPhone. With calm winds and warm-for-sunrise-in-winter temperatures, I dressed relatively lightly -- just a wool shirt and jeans. This proved to be quite enough for today. Like, I wasn't cold the entire time, which is a pleasant change.<br /> <br /> I kind of cheated this year, letting the twilight wake me. That was late enough to miss the early action; by the time I got outside, all of the birds were already awake, if still organizing their rounds with various chirps, cries, and caws.<br /> <br /> The layers of high clouds spanning the sky had an pinkish hue when I woke up, making this a pretty late start -- but for once I had spent the night out partying, so it's not like I was going to push it today.<br /> <br /> I climbed atop the dew-soaked rooftop, it still bearing with a year of dust, and then sprinkled with a light layer of ash.<br /> <br /> Last year I mentioned that Ventura's landmark Two Trees were dying. We had enough rain to save the west one for a while. But the east tree, ever the weaker of the two, was reduced to bare branches. Back in April, to preserve the landmark, some locals <a href="http://www.vcstar.com/story/news/special-reports/outdoors/2017/04/25/replacement-two-trees-live-above-ventura/100896100/">planted another small Tasmanian blue gum eucalyptus</a> to replace the ailing tree into the future. And then, in October, the east tree broke in half at the top of the trunk. And then, on December fourth, the fires came.<br /> <br /> <div class="separator" style="clear: both; text-align: center;"> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiccqhC4zaLBUWZxc6xSbyBrVHTeWMEbXRQtdF9Si1UExQnwiVXB0hvnEek1zhl6mQe7Cm0bhdwGIlJyA44LaceGCWNuIuFjlbJmavOlkEn4oDEnPlL6rmXAt0e2iqT_h-7ph8bS_Loz1L/s1600/fire-home.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="960" data-original-width="1280" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiccqhC4zaLBUWZxc6xSbyBrVHTeWMEbXRQtdF9Si1UExQnwiVXB0hvnEek1zhl6mQe7Cm0bhdwGIlJyA44LaceGCWNuIuFjlbJmavOlkEn4oDEnPlL6rmXAt0e2iqT_h-7ph8bS_Loz1L/s640/fire-home.jpg" width="640" /></a></div> <br /> It swept from Thomas Aquinas college in Santa Paula down to Ventura in hours, and obliterated the homes of a few of my friends in less than an hour. Looking at the blackened hillside, I can still recall the same hills wreathed with flames a month ago, a vivid orange line lighting a city that was otherwise low on electricity. The smoke blocking all but the sky's lights save a ruddy full moon and the piercing blue of Sirius.<br /> <br /> Fed by a month of repeated Santa Ana wind events, the Thomas Fire still rages on today. They say the fire is 93% contained now, which means it's still smoldering up in the hills. I'm not sure if that's the source of the lingering smoke at night, or if it's just the smell of the layer of ash still coating the ground.<br /> <br /> The <a href="https://visitventuraca.com/blog/thomas-fire-update-two-trees/">new Two Trees are alive for now</a>, although the former east tree, the last survivor of the 1890s, is charred to a crisp. And we've had a rainless season so far, a December of dry winds. With no rain in sight, how will the other trees ever recover?<br /> <br /> In the old days, the Japanese name for the month of October is <a href="https://en.wikipedia.org/wiki/Kannazuki"><i>Kannazuki</i></a> (神無月), literally the Godless Month. The legend is that all of the gods of Japan would leave to attend court at a particular shrine, leaving the rest of the country without its gods. And as I look into my own yard, a Japanese maple has just finished turning green leaves to red, as it should have done in October. So why not call it the Godless month, where the powers that used to protect us seemed to have abandoned us?<br /> <br /> And that's how 2017 went, one insult after another, until finally the fire came to consume everything. It's hard to forget about when your view is of one of a blackened hillside, and the smoke still penetrates my nose, with a scent somewhere between manure and that of a cigar.<br /> <br /> As the light to the east grows lighter, the most of the wispy clouds begin to fade from view. My attention has been stuck on the hills for so long, I've forgotten to look around. The west is lightening up, and the south, well, it was too hazy to see the ocean.<br /> <br /> The goldfinches wer twittering up a storm in the abutalon flowers, and the hummingbirds were already feeding from the flowers. The red-throated hummer tolerates finches amongst the leaves of their favorite flower, but another hummingbird stealing their nectar is not cool. But he's safe for now.<br /> <br /> Meanwhile, a crow took a perch atop a telephone pole behind me. He gave me the lookover. The look like, "I am totally not looking at you, don't mind me, but what exactly are you standing up there for anyway?"<br /> <br /> Because of the damp and ashy roof, and because the air is calm, I'd remained standing the whole time. My feet are still a little sore from last night. I was invited to a rather fancy party last night, and I went in full tuxedo with tails, top hat, and all. Bowties are cool. My date had done her best to wear a dress from the era of Hollywood glamour, and we had a great time.<br /> <br /> <table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody> <tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_lOkB1nCHKHwKDFPPy07vvA8-hgAI5CXb_AkrDzm-MT31UaZcs2ijV9yYrLIuhotFZXALSxVk94oStfTaQ-SBLAWTZ_5I1ieclD6WbQJUWRfdcOiYcQfA5JInhDxpRtob-2b7PqDOfyj3/s1600/nyeve.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1280" data-original-width="960" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_lOkB1nCHKHwKDFPPy07vvA8-hgAI5CXb_AkrDzm-MT31UaZcs2ijV9yYrLIuhotFZXALSxVk94oStfTaQ-SBLAWTZ_5I1ieclD6WbQJUWRfdcOiYcQfA5JInhDxpRtob-2b7PqDOfyj3/s400/nyeve.jpg" width="300" /></a></td></tr> <tr><td class="tr-caption" style="text-align: center;">Me, not with my date</td></tr> </tbody></table> But those shoes did hurt after a while, the price of fashion. I bought them at a costume shop called Victorian Vogue, along with the most of the outfit. Don't bother looking them up, because they had finally closed the store the day before, after thirty years, due to slowing business. Yet another loss.<br /> <br /> But a costume sale did get me into the party, so I could pass for someone of high enough class to get in. It was great to actually be at a party, because so many Christmas parties were cancelled as a result the fires. We do need to celebrate and have good cheer in the face of all of this, after all.<br /> <br /> And yet, at the party, there was still a sense of loss through the revelers. "Were you evacuated?" "How close did the flames get?" "Is everyone OK?" Those were the questions of the night. Even in our merriment, tragedy forces its way into our lives in those moments we leave the dance floor.<br /> <br /> After a time, I heard the crow behind me call out, and a second crow just dropped out of the sky to join him. Were they my old friends Phobos and Deimos? Or another pair, intrigued by an oddly-behaving human, up here alone on a winter's day?<br /> <br /> And what does it mean that only here, in solitude, do I really celebrate the new year? I can't really share this with most Americans. Most of them wouldn't understand or be willing to wake up now, having stayed out late partying -- or more likely late watching other people partying on TV.<br /> <br /> There are no lines to enter the shrines and churches in the U.S., though I know that New Year's was once a church holiday, one of the four main festivals of the short Christmas season. It's hard to explain why, but the rituals are important. They give me a chance to step back, escape from my cell phone, and live life in the moment.<br /> <br /> Which reminded me that I should really snap some pictures, so I pulled out my cell phone. More and more clouds are once again revealed as the yellow glow increases to the East, and the sun begins to rise over the Santa Monica Mountains.<br /> <br /> <div class="separator" style="clear: both; text-align: center;"> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1gh9q5JGOoc_pwq4XPSS2fL4Y0KQT3A3SsQwXBvLVx6B2wAtSA9OtUfjk33jENKozjBPGO8leLdIiBzozc4j_wMhlwHbiFb7S3xi4kh7IkMQRe0_S8E-np5X9ImDeYY8N_jO0_FLOuUGZ/s1600/hatsuhi2018.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="960" data-original-width="1280" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1gh9q5JGOoc_pwq4XPSS2fL4Y0KQT3A3SsQwXBvLVx6B2wAtSA9OtUfjk33jENKozjBPGO8leLdIiBzozc4j_wMhlwHbiFb7S3xi4kh7IkMQRe0_S8E-np5X9ImDeYY8N_jO0_FLOuUGZ/s640/hatsuhi2018.jpg" width="640" /></a></div> <br /> The glow suffused the star pine in the distance, which looked a good deal like Moses's burning bush. A halo of the purest yellow light surrounded the eastern sky, and then, just suddenly, a ray of true sunlight peeked through.<br /> <br /> The corona of light around the sun all seemed to blend together into a golden glow. With so many clouds, it was hard to see the shape of the sun, but when I closed my eye, I could see the half-disc of the sun perfectly well as an after-image.<br /> <br /> All of the other clouds were back, in brilliant white. Woven cirrostratus to the north east. Rows upon rows of straight line cirrus to the southwest, looking as thin as fishbones. And was that a dragonfly-shaped cloud I spied? Well, close enough, I guess.<br /> <br /> I guess for every fire that destroys, there's another that reveals beauty. Even if I have to look a little harder for the beauty. Maybe that's all I'm going to get out of this year's sunrise. Maybe I'm just here to grieve, for the fires, for all of the illnesses amongst all of the family, for the death of my dog Abby (her son Shasta stayed asleep this morning), the death of an aunt, and for just a string of rotten luck. No one I know thought 2017 treated them kindly, and most have their own tragedies to bear.<br /> <br /> It worries me that the one portentous thing I said in last year's edition was the thing to come true: That destruction has come to visit us, without the balancing warmth of creation. And that is why I pray for this year: I pray for a fire that brings beauty and renewal, one that warms our hearts, and creates more than it destroys. And, most of all, I pray for rain. Please. <div style='clear: both;'></div> </div> <div class='post-footer'> <div class='post-footer-line post-footer-line-1'> <span class='post-author vcard'> Posted by <span class='fn' itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://www.blogger.com/profile/17518100165641296059' itemprop='url'/> <a class='g-profile' href='https://www.blogger.com/profile/17518100165641296059' rel='author' title='author profile'> <span itemprop='name'>Brent Laabs</span> </a> </span> </span> <span class='post-timestamp'> at <meta content='http://blog.brentlaabs.com/2018/01/first-sunrise-2018.html' itemprop='url'/> <a class='timestamp-link' href='http://blog.brentlaabs.com/2018/01/first-sunrise-2018.html' rel='bookmark' title='permanent link'><abbr class='published' itemprop='datePublished' title='2018-01-02T00:56:00-08:00'>12:56 AM</abbr></a> </span> <span class='post-comment-link'> <a class='comment-link' href='http://blog.brentlaabs.com/2018/01/first-sunrise-2018.html#comment-form' onclick=''> No comments: </a> </span> <span class='post-icons'> <span class='item-control blog-admin pid-758962430'> <a href='https://www.blogger.com/post-edit.g?blogID=1163079349106481731&postID=5164505954032498307&from=pencil' title='Edit Post'> <img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'/> </a> </span> </span> <div class='post-share-buttons goog-inline-block'> </div> </div> <div class='post-footer-line post-footer-line-2'> <span class='post-labels'> Labels: <a href='http://blog.brentlaabs.com/search/label/2018' rel='tag'>2018</a>, <a href='http://blog.brentlaabs.com/search/label/hatsuhi' rel='tag'>hatsuhi</a>, <a href='http://blog.brentlaabs.com/search/label/thomas%20fire' rel='tag'>thomas fire</a> </span> </div> <div class='post-footer-line post-footer-line-3'> <span class='post-location'> </span> </div> </div> </div> </div> </div></div> </div> <div class='blog-pager' id='blog-pager'> <span id='blog-pager-newer-link'> <a class='blog-pager-newer-link' href='http://blog.brentlaabs.com/' id='Blog1_blog-pager-newer-link' title='Newer Posts'>Newer Posts</a> </span> <span id='blog-pager-older-link'> <a class='blog-pager-older-link' href='http://blog.brentlaabs.com/search?updated-max=2018-01-02T00:56:00-08:00&max-results=7' id='Blog1_blog-pager-older-link' title='Older Posts'>Older Posts</a> </span> <a class='home-link' href='http://blog.brentlaabs.com/'>Home</a> </div> <div class='clear'></div> <div class='blog-feeds'> <div class='feed-links'> Subscribe to: <a class='feed-link' href='http://blog.brentlaabs.com/feeds/posts/default' target='_blank' type='application/atom+xml'>Posts (Atom)</a> </div> </div> </div></div> </div> </div> <div class='column-left-outer'> <div class='column-left-inner'> <aside> </aside> </div> </div> <div class='column-right-outer'> <div class='column-right-inner'> <aside> <div class='sidebar section' id='sidebar-right-1'><div class='widget BlogArchive' data-version='1' id='BlogArchive1'> <h2>Blog Archive</h2> <div class='widget-content'> <div id='ArchiveList'> <div id='BlogArchive1_ArchiveList'> <ul class='hierarchy'> <li class='archivedate expanded'> <a class='toggle' href='javascript:void(0)'> <span class='zippy toggle-open'> ▼  </span> </a> <a class='post-count-link' href='http://blog.brentlaabs.com/2018/'> 2018 </a> <span class='post-count' dir='ltr'>(1)</span> <ul class='hierarchy'> <li class='archivedate expanded'> <a class='toggle' href='javascript:void(0)'> <span class='zippy toggle-open'> ▼  </span> </a> <a class='post-count-link' href='http://blog.brentlaabs.com/2018/01/'> January </a> <span class='post-count' dir='ltr'>(1)</span> <ul class='posts'> <li><a href='http://blog.brentlaabs.com/2018/01/first-sunrise-2018.html'>First Sunrise 2018</a></li> </ul> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://blog.brentlaabs.com/2017/'> 2017 </a> <span class='post-count' dir='ltr'>(1)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://blog.brentlaabs.com/2017/01/'> January </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://blog.brentlaabs.com/2015/'> 2015 </a> <span class='post-count' dir='ltr'>(2)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://blog.brentlaabs.com/2015/11/'> November </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://blog.brentlaabs.com/2015/05/'> May </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://blog.brentlaabs.com/2014/'> 2014 </a> <span class='post-count' dir='ltr'>(2)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://blog.brentlaabs.com/2014/02/'> February </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://blog.brentlaabs.com/2014/01/'> January </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://blog.brentlaabs.com/2013/'> 2013 </a> <span class='post-count' dir='ltr'>(10)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://blog.brentlaabs.com/2013/12/'> December </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://blog.brentlaabs.com/2013/07/'> July </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://blog.brentlaabs.com/2013/06/'> June </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://blog.brentlaabs.com/2013/05/'> May </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://blog.brentlaabs.com/2013/04/'> April </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> </li> </ul> </div> </div> <div class='clear'></div> </div> </div><div class='widget Profile' data-version='1' id='Profile1'> <h2>About Me</h2> <div class='widget-content'> <dl class='profile-datablock'> <dt class='profile-data'> <a class='profile-name-link g-profile' href='https://www.blogger.com/profile/17518100165641296059' rel='author' style='background-image: url(//www.blogger.com/img/logo-16.png);'> Brent Laabs </a> </dt> <dd class='profile-data'>Ventura, California, United States</dd> <dd class='profile-textblock'>Programmer, writer, gamer, analyst, anime watcher, and wiki editor.</dd> </dl> <a class='profile-link' href='https://www.blogger.com/profile/17518100165641296059' rel='author'>View my complete profile</a> <div class='clear'></div> </div> </div></div> </aside> </div> </div> </div> <div style='clear: both'></div> <!-- columns --> </div> <!-- main --> </div> </div> <div class='main-cap-bottom cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> <footer> <div class='footer-outer'> <div class='footer-cap-top cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left footer-fauxborder-left'> <div class='fauxborder-right footer-fauxborder-right'></div> <div class='region-inner footer-inner'> <div class='foot no-items section' id='footer-1'></div> <table border='0' cellpadding='0' cellspacing='0' class='section-columns columns-2'> <tbody> <tr> <td class='first columns-cell'> <div class='foot no-items section' id='footer-2-1'></div> </td> <td class='columns-cell'> <div class='foot no-items section' id='footer-2-2'></div> </td> </tr> </tbody> </table> <!-- outside of the include in order to lock Attribution widget --> <div class='foot section' id='footer-3' name='Footer'><div class='widget Attribution' data-version='1' id='Attribution1'> <div class='widget-content' style='text-align: center;'> Watermark theme. Powered by <a href='https://www.blogger.com' target='_blank'>Blogger</a>. </div> <div class='clear'></div> </div></div> </div> </div> <div class='footer-cap-bottom cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> </footer> <!-- content --> </div> </div> <div class='content-cap-bottom cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> </div> <script type='text/javascript'> window.setTimeout(function() { document.body.className = document.body.className.replace('loading', ''); }, 10); </script> <script type="text/javascript" src="https://www.blogger.com/static/v1/widgets/3551516202-widgets.js"></script> <script type='text/javascript'> window['__wavt'] = 'AOuZoY751hrxyYS8rwTf7qLX9aCot4qFIw:1744174804778';_WidgetManager._Init('//www.blogger.com/rearrange?blogID\x3d1163079349106481731','//blog.brentlaabs.com/2018/01/','1163079349106481731'); _WidgetManager._SetDataContext([{'name': 'blog', 'data': {'blogId': '1163079349106481731', 'title': 'Irregular Expression', 'url': 'http://blog.brentlaabs.com/2018/01/', 'canonicalUrl': 'http://blog.brentlaabs.com/2018/01/', 'homepageUrl': 'http://blog.brentlaabs.com/', 'searchUrl': 'http://blog.brentlaabs.com/search', 'canonicalHomepageUrl': 'http://blog.brentlaabs.com/', 'blogspotFaviconUrl': 'http://blog.brentlaabs.com/favicon.ico', 'bloggerUrl': 'https://www.blogger.com', 'hasCustomDomain': true, 'httpsEnabled': false, 'enabledCommentProfileImages': true, 'gPlusViewType': 'FILTERED_POSTMOD', 'adultContent': false, 'analyticsAccountNumber': '', 'encoding': 'UTF-8', 'locale': 'en', 'localeUnderscoreDelimited': 'en', 'languageDirection': 'ltr', 'isPrivate': false, 'isMobile': false, 'isMobileRequest': false, 'mobileClass': '', 'isPrivateBlog': false, 'isDynamicViewsAvailable': true, 'feedLinks': '\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Irregular Expression - Atom\x22 href\x3d\x22http://blog.brentlaabs.com/feeds/posts/default\x22 /\x3e\n\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/rss+xml\x22 title\x3d\x22Irregular Expression - RSS\x22 href\x3d\x22http://blog.brentlaabs.com/feeds/posts/default?alt\x3drss\x22 /\x3e\n\x3clink rel\x3d\x22service.post\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Irregular Expression - Atom\x22 href\x3d\x22https://www.blogger.com/feeds/1163079349106481731/posts/default\x22 /\x3e\n', 'meTag': '', 'adsenseHostId': 'ca-host-pub-1556223355139109', 'adsenseHasAds': false, 'adsenseAutoAds': false, 'boqCommentIframeForm': true, 'loginRedirectParam': '', 'view': '', 'dynamicViewsCommentsSrc': '//www.blogblog.com/dynamicviews/4224c15c4e7c9321/js/comments.js', 'dynamicViewsScriptSrc': '//www.blogblog.com/dynamicviews/7a8d7c47386f2f51', 'plusOneApiSrc': 'https://apis.google.com/js/platform.js', 'disableGComments': true, 'interstitialAccepted': false, 'sharing': {'platforms': [{'name': 'Get link', 'key': 'link', 'shareMessage': 'Get link', 'target': ''}, {'name': 'Facebook', 'key': 'facebook', 'shareMessage': 'Share to Facebook', 'target': 'facebook'}, {'name': 'BlogThis!', 'key': 'blogThis', 'shareMessage': 'BlogThis!', 'target': 'blog'}, {'name': 'X', 'key': 'twitter', 'shareMessage': 'Share to X', 'target': 'twitter'}, {'name': 'Pinterest', 'key': 'pinterest', 'shareMessage': 'Share to Pinterest', 'target': 'pinterest'}, {'name': 'Email', 'key': 'email', 'shareMessage': 'Email', 'target': 'email'}], 'disableGooglePlus': true, 'googlePlusShareButtonWidth': 0, 'googlePlusBootstrap': '\x3cscript type\x3d\x22text/javascript\x22\x3ewindow.___gcfg \x3d {\x27lang\x27: \x27en\x27};\x3c/script\x3e'}, 'hasCustomJumpLinkMessage': false, 'jumpLinkMessage': 'Read more', 'pageType': 'archive', 'pageName': 'January 2018', 'pageTitle': 'Irregular Expression: January 2018'}}, {'name': 'features', 'data': {}}, {'name': 'messages', 'data': {'edit': 'Edit', 'linkCopiedToClipboard': 'Link copied to clipboard!', 'ok': 'Ok', 'postLink': 'Post Link'}}, {'name': 'template', 'data': {'name': 'Watermark', 'localizedName': 'Watermark', 'isResponsive': false, 'isAlternateRendering': false, 'isCustom': false, 'variant': 'birds', 'variantId': 'birds'}}, {'name': 'view', 'data': {'classic': {'name': 'classic', 'url': '?view\x3dclassic'}, 'flipcard': {'name': 'flipcard', 'url': '?view\x3dflipcard'}, 'magazine': {'name': 'magazine', 'url': '?view\x3dmagazine'}, 'mosaic': {'name': 'mosaic', 'url': '?view\x3dmosaic'}, 'sidebar': {'name': 'sidebar', 'url': '?view\x3dsidebar'}, 'snapshot': {'name': 'snapshot', 'url': '?view\x3dsnapshot'}, 'timeslide': {'name': 'timeslide', 'url': '?view\x3dtimeslide'}, 'isMobile': false, 'title': 'Irregular Expression', 'description': 'Brent Laabs on programming and culture', 'url': 'http://blog.brentlaabs.com/2018/01/', 'type': 'feed', 'isSingleItem': false, 'isMultipleItems': true, 'isError': false, 'isPage': false, 'isPost': false, 'isHomepage': false, 'isArchive': true, 'isLabelSearch': false, 'archive': {'year': 2018, 'month': 1, 'rangeMessage': 'Showing posts from January, 2018'}}}]); _WidgetManager._RegisterWidget('_NavbarView', new _WidgetInfo('Navbar1', 'navbar', document.getElementById('Navbar1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_HeaderView', new _WidgetInfo('Header1', 'header', document.getElementById('Header1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_BlogView', new _WidgetInfo('Blog1', 'main', document.getElementById('Blog1'), {'cmtInteractionsEnabled': false, 'lightboxEnabled': true, 'lightboxModuleUrl': 'https://www.blogger.com/static/v1/jsbin/549359800-lbx.js', 'lightboxCssUrl': 'https://www.blogger.com/static/v1/v-css/3681588378-lightbox_bundle.css'}, 'displayModeFull')); _WidgetManager._RegisterWidget('_BlogArchiveView', new _WidgetInfo('BlogArchive1', 'sidebar-right-1', document.getElementById('BlogArchive1'), {'languageDirection': 'ltr', 'loadingMessage': 'Loading\x26hellip;'}, 'displayModeFull')); _WidgetManager._RegisterWidget('_ProfileView', new _WidgetInfo('Profile1', 'sidebar-right-1', document.getElementById('Profile1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_AttributionView', new _WidgetInfo('Attribution1', 'footer-3', document.getElementById('Attribution1'), {}, 'displayModeFull')); </script> </body> </html>