<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>naxoc.net</title><link>https://naxoc.net/</link><description>Recent content on naxoc.net</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Fri, 12 Jun 2020 20:20:00 +0200</lastBuildDate><atom:link href="https://naxoc.net/index.xml" rel="self" type="application/rss+xml"/><item><title>New remote job</title><link>https://naxoc.net/2020-06-12-new-job/</link><pubDate>Fri, 12 Jun 2020 20:20:00 +0200</pubDate><guid>https://naxoc.net/2020-06-12-new-job/</guid><description>&lt;p&gt;For the last 10 years I&amp;rsquo;ve been flirting with remote work on and off. In that time I&amp;rsquo;ve been fortunate enough to have &lt;a href="https://www.information.dk/"&gt;great&lt;/a&gt; &lt;a href="https://reload.dk/"&gt;employers&lt;/a&gt; that have allowed me to work remote for a couple of months in winter so that we could go to somewhere pleasant in Latin America. We&amp;rsquo;ve spent winters working in Montevideo, Uruguay and in Oaxaca, Mexico. We both love it! My wife Addi has worked remote for over 13 years, and she has been on the first wave of fully distributed tech companies.&lt;/p&gt;</description></item><item><title>Thunderbolt dock and Linux</title><link>https://naxoc.net/2018-11-12-thunderbolt-dock-linux/</link><pubDate>Mon, 12 Nov 2018 20:20:00 +0200</pubDate><guid>https://naxoc.net/2018-11-12-thunderbolt-dock-linux/</guid><description>&lt;p&gt;At work I have a &lt;a href="https://www.dell.com/en-us/shop/dell-business-thunderbolt-dock-tb16-with-240w-adapter/apd/452-bcnu/pc-accessories"&gt;Dell TB16 dock&lt;/a&gt; for my Dell XPS 13. It&amp;rsquo;s pretty sweet. I plug in just one USB-C and everything works.
The first time I plugged it in, Ubuntu popped up a window that wanted me to approve the access to the computer from the dock. A nice security feature when you think about it.&lt;/p&gt;
&lt;p&gt;When I did a reinstall and installed Kubuntu instead of Ubuntu, I did not get the prompt to approve access. Apparently Kubuntu does not have packages for managing Thunderbolt by default, and no graphical interface for it.
Luckily I knew that the authorization was necessary, because I could have easily just freaked out and believed that the dock would not work with Kubuntu&lt;/p&gt;</description></item><item><title>Switching from Mac to Linux</title><link>https://naxoc.net/2018-11-11-switch-from-mac-to-linux/</link><pubDate>Sun, 11 Nov 2018 14:20:00 +0200</pubDate><guid>https://naxoc.net/2018-11-11-switch-from-mac-to-linux/</guid><description>&lt;p&gt;I&amp;rsquo;ve made the switch from a mac to Linux this fall. It&amp;rsquo;s something I&amp;rsquo;ve been wanting to do for many years, but I haven&amp;rsquo;t really had the courage before now. I used Linux when I was in the IT-University and a little bit at my first couple of jobs, but that is so long ago that it would be fair to call me a many years Mac user.&lt;/p&gt;
&lt;p&gt;The reason I wanted to switch was that I really don&amp;rsquo;t like where Apple is going. The touch bar on the newer macs are gimmicky and the new keyboards are almost offensively horrible to me. Also - as a Vim user I get quite angry when a computer does not have an escape key. So bye, bye, Apple. I haven&amp;rsquo;t had an iPhone since 2010 and I&amp;rsquo;ve never had an iPad. This should go pretty smooth. It should be said that I am a shit photographer that never edits photos. I never play games and sadly I don&amp;rsquo;t ever do graphical design. I mostly just write code and look at tapirs and kittens on YouTube.&lt;/p&gt;</description></item><item><title>Navigate in Twig namespaces in PhpStorm</title><link>https://naxoc.net/2018-10-17-phpstorm-twig-namespaces/</link><pubDate>Wed, 17 Oct 2018 22:20:00 +0200</pubDate><guid>https://naxoc.net/2018-10-17-phpstorm-twig-namespaces/</guid><description>&lt;p&gt;I&amp;rsquo;ve gotten so used to have everything be clickable or navigable in PhpStorm. &amp;ldquo;I wonder what that function deep in the vendor folder looks like?&amp;rdquo; - I command click on Mac or ctrl click on Linux (or command+b/ctrl+b), and boom I go to the function definition. I don&amp;rsquo;t know how I lived without it in the past.&lt;/p&gt;
&lt;p&gt;But when I was writing a lot of Twig this spring I was sad that the file in Twig was not navigable like this:
&lt;img class="centered-image" src="https://naxoc.net/img/namespace-navigate.gif" alt="Add Twig namespace in PhpStorm"&gt;&lt;/p&gt;</description></item><item><title>Going back to a new job</title><link>https://naxoc.net/2018-09-30-going-back-new-job/</link><pubDate>Sun, 30 Sep 2018 19:20:00 +0200</pubDate><guid>https://naxoc.net/2018-09-30-going-back-new-job/</guid><description>&lt;p&gt;It seems I&amp;rsquo;m one to like going back and forth between jobs, so now I&amp;rsquo;m going back to work for &lt;a href="https://reload.dk/"&gt;Reload&lt;/a&gt;. I&amp;rsquo;ve loved working for &lt;a href="https://www.information.dk/"&gt;Information&lt;/a&gt; and I&amp;rsquo;m going to miss the people there a lot, but I decided it was time to try something new (and old I guess) again.&lt;/p&gt;
&lt;p&gt;Like &lt;a href="https://naxoc.net/2015/02/24/new-job/"&gt;last time I changed jobs&lt;/a&gt; I know some people already where I&amp;rsquo;m going, but a lot has also happened in the almost 4 years I&amp;rsquo;ve been away, so I&amp;rsquo;m looking forward to getting to know new people, do more drupal, and learn some shiny new technologies too.&lt;/p&gt;</description></item><item><title>Mexican street art as pixel art</title><link>https://naxoc.net/2017-11-19-mexican-street-art-to-pixel-art/</link><pubDate>Sun, 19 Nov 2017 18:20:00 +0200</pubDate><guid>https://naxoc.net/2017-11-19-mexican-street-art-to-pixel-art/</guid><description>&lt;p&gt;I&amp;rsquo;m slowly working my way through &lt;a href="https://es6.io/"&gt;ES6 for Everyone&lt;/a&gt; by &lt;a href="http://wesbos.com/"&gt;Wes Bos&lt;/a&gt;. It&amp;rsquo;s been almost 6 months since I did the &lt;a href="http://javascript30.com/"&gt;#javascript30&lt;/a&gt; thing and I have been trying to do little projects every now and then to keep what I learned a little current.&lt;/p&gt;
&lt;p&gt;The ES6 course has a lot of things that I already know now - and that feels great actually. I understand it much better when I get it explained again and when I get to play with it a little.&lt;/p&gt;</description></item><item><title>JavaScript30 - Day 30</title><link>https://naxoc.net/2017-07-22-js-30-day-30/</link><pubDate>Sat, 22 Jul 2017 21:20:00 +0200</pubDate><guid>https://naxoc.net/2017-07-22-js-30-day-30/</guid><description>&lt;p&gt;The final day of &lt;a href="https://javascript30.com"&gt;#javascript30&lt;/a&gt; is a whack a mole game. I&amp;rsquo;m not going to write about that, but just do a little bit of evaluation on the #javascript30 month.&lt;/p&gt;
&lt;p&gt;For whatever reason, it took me forever to get to doing the last day of #javascript30. I have really enjoyed the course and I was going on 25 days streaks of publishing a blog post with it, and then suddenly it took me over 2 weeks to write the last blog post.&lt;/p&gt;</description></item><item><title>JavaScript30 - Day 29</title><link>https://naxoc.net/2017-07-04-js-30-day-29/</link><pubDate>Tue, 04 Jul 2017 07:20:00 +0200</pubDate><guid>https://naxoc.net/2017-07-04-js-30-day-29/</guid><description>&lt;p&gt;Day 29 of &lt;a href="https://javascript30.com"&gt;#javascript30&lt;/a&gt; creates a countdown timer in the browser.&lt;/p&gt;
&lt;h2 id="setinterval"&gt;setInterval()&lt;/h2&gt;
&lt;p&gt;This exercise has some clever use of &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setInterval"&gt;setInterval()&lt;/a&gt;. Understanding timers is a little more tricky than it seems, so take a good look at the examples in the docs too.&lt;/p&gt;
&lt;h2 id="select-with-elementname"&gt;Select with Element.name&lt;/h2&gt;
&lt;p&gt;This one is so cool! I did not know you could do that. If you have an element that has a &lt;code&gt;name&lt;/code&gt; like an input element, a link anchor, or even an image, you can &amp;ldquo;select&amp;rdquo; it by it&amp;rsquo;s name. The name is a property on the document and will give you the same as if you used a &lt;code&gt;querySelector&lt;/code&gt;:&lt;/p&gt;</description></item><item><title>JavaScript30 - Day 28</title><link>https://naxoc.net/2017-07-03-js-30-day-28/</link><pubDate>Mon, 03 Jul 2017 17:20:00 +0200</pubDate><guid>https://naxoc.net/2017-07-03-js-30-day-28/</guid><description>&lt;p&gt;Day 28 of &lt;a href="https://javascript30.com"&gt;#javascript30&lt;/a&gt; is a UI for controlling the playback speed on a video.&lt;/p&gt;
&lt;p&gt;There is a bit of math to calculate where the mouse is moved over a bar that will control the video speed. It is a good idea to practice lots of things that use this recording of where the mouse is or where something is clicked. The math is not rocket science, but understanding the tools that are needed to get positions are important. I have read the docs for &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/pageY"&gt;MouseEvent.pageY&lt;/a&gt;, &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetTop"&gt;Element.offsetTop&lt;/a&gt;, and &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetHeight"&gt;Element.offsetHeight&lt;/a&gt; quite a number of times now and while they are also not complicated, I feel like I can do with even more practice with this. I&amp;rsquo;ll cook up some codepen at some point where I illustrate what they do so I can use that as reference.&lt;/p&gt;</description></item><item><title>JavaScript30 - Day 27</title><link>https://naxoc.net/2017-06-29-js-30-day-27/</link><pubDate>Thu, 29 Jun 2017 17:20:00 +0200</pubDate><guid>https://naxoc.net/2017-06-29-js-30-day-27/</guid><description>&lt;p&gt;Day 27 of &lt;a href="https://javascript30.com"&gt;#javascript30&lt;/a&gt; makes a neat horizontal scroll click and drag accordion or carousel.&lt;/p&gt;
&lt;p&gt;There are a number of event listeners in use to achieve this. &lt;code&gt;mousedown&lt;/code&gt;, &lt;code&gt;mouseleave&lt;/code&gt;, &lt;code&gt;mouseup&lt;/code&gt;, and &lt;code&gt;mousemove&lt;/code&gt;. They keep a boolean that keeps track of whether the mouse is down or up, and they set the &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollLeft"&gt;Element.scrollLeft&lt;/a&gt; property to the number of pixels the user dragged the element.&lt;/p&gt;
&lt;h2 id="let-vs-var"&gt;&lt;code&gt;let&lt;/code&gt; vs &lt;code&gt;var&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;I understand &lt;code&gt;const&lt;/code&gt; completely now, but I was fuzzy on &lt;code&gt;let&lt;/code&gt; vs &lt;code&gt;var&lt;/code&gt;. They are quite similar, but they differ in scope. Once again, &lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let#Scoping_rules_2"&gt;MDN&amp;rsquo;s docs&lt;/a&gt; has a great explanation and example:&lt;/p&gt;</description></item><item><title>JavaScript30 - Day 26</title><link>https://naxoc.net/2017-06-28-js-30-day-26/</link><pubDate>Wed, 28 Jun 2017 23:20:00 +0200</pubDate><guid>https://naxoc.net/2017-06-28-js-30-day-26/</guid><description>&lt;p&gt;Day 26 of &lt;a href="https://javascript30.com"&gt;#javascript30&lt;/a&gt; is making a dropdown menu that follows you along.&lt;/p&gt;
&lt;p&gt;This lesson takes what I learned on &lt;a href="2017/06/24/js-30-day-22"&gt;day 22&lt;/a&gt; about &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect"&gt;getBoundingClientRect()&lt;/a&gt; and uses it to move around a box behind the contents in a dropdown menu. We use &lt;a href="https://developer.mozilla.org/en-US/docs/Web/Events/mouseenter"&gt;mouseenter&lt;/a&gt; and &lt;a href="https://developer.mozilla.org/en-US/docs/Web/Events/mouseleave"&gt;mouseleave&lt;/a&gt; to react to the items hovered over.&lt;/p&gt;
&lt;h2 id="using-opacity-for-animation"&gt;Using opacity for &amp;ldquo;animation&amp;rdquo;&lt;/h2&gt;
&lt;p&gt;I learned a really cool trick from this lesson. To get a cool &amp;ldquo;animated&amp;rdquo; feel, first add a class that displays block on the hovered item, and then a &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout"&gt;setTimeout()&lt;/a&gt; with about 150 ms delay that adds another class that sets &lt;code&gt;opacity&lt;/code&gt; to 1. The item should have a &lt;code&gt;transition&lt;/code&gt; set in CSS too to make it really look good.&lt;/p&gt;</description></item><item><title>JavaScript30 - Day 25</title><link>https://naxoc.net/2017-06-27-js-30-day-25/</link><pubDate>Tue, 27 Jun 2017 19:40:00 +0200</pubDate><guid>https://naxoc.net/2017-06-27-js-30-day-25/</guid><description>&lt;p&gt;Day 25 of &lt;a href="https://javascript30.com"&gt;#javascript30&lt;/a&gt; explains what happens when (DOM) events are triggered.&lt;/p&gt;
&lt;p&gt;I made a pen based on the lesson to try to illustrate and understand better. It&amp;rsquo;s at the bottom of this post.&lt;/p&gt;
&lt;h2 id="bubbling"&gt;Bubbling&lt;/h2&gt;
&lt;p&gt;Is when an event &amp;ldquo;bubbles&amp;rdquo; up the DOM. In the example with 3 nested divs with an event listener on all of them, a click on the inner one will trigger the click listener on all of them. Note that &lt;code&gt;this&lt;/code&gt; is the &lt;em&gt;item the listener is on&lt;/em&gt;, but &lt;code&gt;event.target&lt;/code&gt; is always the item that was clicked.&lt;/p&gt;</description></item><item><title>JavaScript30 - Day 24</title><link>https://naxoc.net/2017-06-26-js-30-day-24/</link><pubDate>Mon, 26 Jun 2017 14:40:00 +0200</pubDate><guid>https://naxoc.net/2017-06-26-js-30-day-24/</guid><description>&lt;p&gt;Day 24 of #javascript30 is making a navigation bar that sticks to the top of the window.&lt;/p&gt;
&lt;p&gt;This is something I have done more than once before. With some frustration, though. The same effect can be achieved with CSS&amp;rsquo;s &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/position#Fixed_positioning"&gt;position: fixed&lt;/a&gt;, but you still need JS to slap on the class or property at the right time.&lt;/p&gt;
&lt;h2 id="scrollx-and-scrolly"&gt;&lt;code&gt;scrollX&lt;/code&gt; and &lt;code&gt;scrollY&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Keep in mind that that IE does not supprt these two at all. Edge does, but to be safe, use &lt;code&gt;pageYOffset&lt;/code&gt; or &lt;code&gt;pageXOffset&lt;/code&gt; - these are aliases for &lt;code&gt;scrollX&lt;/code&gt; and &lt;code&gt;scrollY&lt;/code&gt;. See the docs for &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollY"&gt;scrollY&lt;/a&gt; for an explanation.&lt;/p&gt;</description></item><item><title>JavaScript30 - Day 23</title><link>https://naxoc.net/2017-06-25-js-30-day-23/</link><pubDate>Sun, 25 Jun 2017 19:40:00 +0200</pubDate><guid>https://naxoc.net/2017-06-25-js-30-day-23/</guid><description>&lt;p&gt;Day 23 of &lt;a href="https://javascript30.com"&gt;#javascript30&lt;/a&gt; is having fun with speech synthesis and new tricks for passing arguments to a callback function.&lt;/p&gt;
&lt;h2 id="speech-synthesis-in-the-browser"&gt;Speech synthesis in the browser&lt;/h2&gt;
&lt;p&gt;I could not make the lesson example work with the voices dropdown in Firefox. I like Firefox and I have recently switched back to using it as my default browser. I switch back and forth at least a couple of times every year. &lt;a href="https://naxoc.net/2014/06/03/switching-back-to-firefox/"&gt;I even blog about it sometimes&lt;/a&gt;. Anyway. To make it work in Firefox (and Chrome), I did this:&lt;/p&gt;</description></item><item><title>JavaScript30 - Day 22</title><link>https://naxoc.net/2017-06-24-js-30-day-22/</link><pubDate>Sat, 24 Jun 2017 09:40:00 +0200</pubDate><guid>https://naxoc.net/2017-06-24-js-30-day-22/</guid><description>&lt;p&gt;Day 22 of &lt;a href="https://javascript30.com"&gt;#javascript30&lt;/a&gt; makes a link hover highlight that follows you around on the page. I try to understand the difference between mouseover and mouseenter.&lt;/p&gt;
&lt;h2 id="mouseenter-vs-mouseover"&gt;&lt;code&gt;mouseenter&lt;/code&gt; vs &lt;code&gt;mouseover&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Using transition and translate in CSS we can make the hover look like it is following you. We listen for the &lt;a href="https://developer.mozilla.org/en-US/docs/Web/Events/mouseenter"&gt;mouseenter&lt;/a&gt; event and then the highlight is moved with CSS&amp;rsquo; &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/translate"&gt;translate&lt;/a&gt;. I didn&amp;rsquo;t know the &lt;code&gt;mouseenter&lt;/code&gt; event, so I tried to read up on the difference between that and &lt;a href="https://developer.mozilla.org/en-US/docs/Web/Events/mouseover"&gt;mouseover&lt;/a&gt;. The docs are really not crystal clear, so I must say that I didn&amp;rsquo;t get all that much wiser from that. I found this demo on JSFiddle:&lt;/p&gt;</description></item><item><title>JavaScript30 - Day 21</title><link>https://naxoc.net/2017-06-23-js-30-day-21/</link><pubDate>Fri, 23 Jun 2017 19:40:00 +0200</pubDate><guid>https://naxoc.net/2017-06-23-js-30-day-21/</guid><description>&lt;p&gt;Day 21 of &lt;a href="https://javascript30.com"&gt;#javascript30&lt;/a&gt; is making a compass and speedometer for the phone.&lt;/p&gt;
&lt;p&gt;Using the iOS simulator on the mac for development I made a compass and speedometer.&lt;/p&gt;
&lt;h2 id="launching-ios-simulator"&gt;Launching iOS Simulator&lt;/h2&gt;
&lt;p&gt;The simulator is built into Xcode which I never use. I do like the simulator for testing though, so I thought I&amp;rsquo;d post a tip on how to launch it without seeing Xcode:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;One last time — launch Xcode and use the menu item &lt;em&gt;Xcode -&amp;gt; Open Developer Tool -&amp;gt; Simulator&lt;/em&gt;
&lt;img class="centered-image" src="https://naxoc.net/img/xcode-ios-simulator.png" alt="Open iOS simulator from Xcode" width="500" height="278"&gt;&lt;/li&gt;
&lt;li&gt;Drag the icon from the &amp;ldquo;open apps&amp;rdquo; area to the dock somewhere.
&lt;img class="centered-image" src="https://naxoc.net/img/ios-simulator.gif" alt="iOS simulator attach to Dock" width="280" height="121"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Next time you need the simulator, you can just launch it from the Dock instead of opening Xcode to open it.&lt;/p&gt;</description></item><item><title>JavaScript30 - Day 20</title><link>https://naxoc.net/2017-06-22-js-30-day-20/</link><pubDate>Thu, 22 Jun 2017 17:00:00 +0200</pubDate><guid>https://naxoc.net/2017-06-22-js-30-day-20/</guid><description>&lt;p&gt;Day 20 of &lt;a href="https://javascript30.com"&gt;#javascript30&lt;/a&gt; is about speech recognition in the browser. It is safe to say I had a ton of fun and that I got completely carried away.&lt;/p&gt;
&lt;h2 id="speechrecognition"&gt;&lt;code&gt;SpeechRecognition&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;The browser&amp;rsquo;s &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition"&gt;interface for speech recognition&lt;/a&gt; is pretty easy to work with. I&amp;rsquo;m amazed at how good it is at guessing what you say. Granted - it will completely mishear from time to time, but so do I sometimes!&lt;/p&gt;
&lt;h2 id="speech-recognition-language"&gt;Speech recognition language&lt;/h2&gt;
&lt;p&gt;As always when working with web stuff, my initial reaction to the speech recognition was: &lt;em&gt;oh, that&amp;rsquo;s cool, I bet it only works in English and in the US just like recipes, address forms and all that.&lt;/em&gt; But more and more - I am proven wrong on the web. It made me happy that I can set the language to Danish even though only about 5 million people speak it. Here is how you set the language:&lt;/p&gt;</description></item><item><title>JavaScript30 - Day 19</title><link>https://naxoc.net/2017-06-21-js-30-day-19/</link><pubDate>Wed, 21 Jun 2017 19:40:00 +0200</pubDate><guid>https://naxoc.net/2017-06-21-js-30-day-19/</guid><description>&lt;p&gt;Day 19 of &lt;a href="https://javascript30.com"&gt;#javascript30&lt;/a&gt; is messing around with the webcam for a photo booth and doing cool effects by manipulating the RGB channels.&lt;/p&gt;
&lt;h2 id="webcam-with-javascript"&gt;Webcam with JavaScript&lt;/h2&gt;
&lt;p&gt;Is so easy! You call &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia"&gt;getUserMedia()&lt;/a&gt; on the &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/Navigator/mediaDevices"&gt;mediaDevices&lt;/a&gt; singleton to get a &lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise"&gt;promise&lt;/a&gt;. Like this for instance:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-js" data-lang="js"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;const&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;video&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; document.&lt;span style="color:#a6e22e"&gt;querySelector&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;.player&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;navigator&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;mediaDevices&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;getUserMedia&lt;/span&gt;({ &lt;span style="color:#a6e22e"&gt;video&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;true&lt;/span&gt;, &lt;span style="color:#a6e22e"&gt;audio&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;false&lt;/span&gt; })
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .&lt;span style="color:#a6e22e"&gt;then&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;localMediaStream&lt;/span&gt; =&amp;gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;console&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;log&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;localMediaStream&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;video&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;src&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; window.&lt;span style="color:#a6e22e"&gt;URL&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;createObjectURL&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;localMediaStream&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;video&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;play&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; })
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .&lt;span style="color:#66d9ef"&gt;catch&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;err&lt;/span&gt; =&amp;gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;console&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;error&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;Ut oh&amp;#39;&lt;/span&gt;, &lt;span style="color:#a6e22e"&gt;err&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; });
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;I had no idea that image manipulation was as simple as it is. There are 3 color channels in an &lt;a href="https://en.wikipedia.org/wiki/Channel_(digital_image)#RGB_Images"&gt;RGB[A] image&lt;/a&gt; plus an alpha channel. I&amp;rsquo;m probably using the wrong words for these things, because I know very little about it. But go look at &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Pixel_manipulation_with_canvas"&gt;Pixel manipulation with canvas&lt;/a&gt; if you want to know more about how to change colors and make cool effects on images with JavaScript.&lt;/p&gt;</description></item><item><title>JavaScript30 - Day 18</title><link>https://naxoc.net/2017-06-20-js-30-day-18/</link><pubDate>Tue, 20 Jun 2017 19:10:00 +0200</pubDate><guid>https://naxoc.net/2017-06-20-js-30-day-18/</guid><description>&lt;p&gt;Day 18 of &lt;a href="https://javascript30.com"&gt;#javascript30&lt;/a&gt; is about adding up playing times for videos using &lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce?v=example"&gt;reduce()&lt;/a&gt;, some math, and a data attribute.&lt;/p&gt;
&lt;h2 id="more-compact-code"&gt;More compact code&lt;/h2&gt;
&lt;p&gt;I tend to prefer readable code over terse code, but I think I am starting to really like the one- or two-liners you can make with JavaScript. This assignment could be solved with just &lt;code&gt;reduce()&lt;/code&gt; and some math after the reduce().
Here is code that goes trough all items with a time data attribute and adds up the seconds:&lt;/p&gt;</description></item><item><title>JavaScript30 - Day 17</title><link>https://naxoc.net/2017-06-19-js-30-day-17/</link><pubDate>Mon, 19 Jun 2017 19:40:00 +0200</pubDate><guid>https://naxoc.net/2017-06-19-js-30-day-17/</guid><description>&lt;p&gt;Day 17 of &lt;a href="https://javascript30.com"&gt;#javascript30&lt;/a&gt; is simply sorting an array of band names, but without considering articles like &amp;rsquo;the&amp;rsquo;, &amp;lsquo;a&amp;rsquo; or &amp;lsquo;an&amp;rsquo;.&lt;/p&gt;
&lt;p&gt;I felt good about this one. I am starting to feel quite at home with JavaScript&amp;rsquo;s array functions. I solved it without watching the video first and with very little code:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-js" data-lang="js"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;const&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;bands&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; [
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;	&lt;span style="color:#e6db74"&gt;&amp;#39;Another Band Name&amp;#39;&lt;/span&gt;, 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;	&lt;span style="color:#e6db74"&gt;&amp;#39;An Amalgam&amp;#39;&lt;/span&gt;, 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;	&lt;span style="color:#e6db74"&gt;&amp;#39;The Frosty Shred&amp;#39;&lt;/span&gt;, 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;	&lt;span style="color:#e6db74"&gt;&amp;#39;Buffalo Of Arrow&amp;#39;&lt;/span&gt;, 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;	&lt;span style="color:#e6db74"&gt;&amp;#39;The Thrash Paranoia&amp;#39;&lt;/span&gt;, 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;	&lt;span style="color:#e6db74"&gt;&amp;#39;During Temperature&amp;#39;&lt;/span&gt;, 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;	&lt;span style="color:#e6db74"&gt;&amp;#39;A During Temperature&amp;#39;&lt;/span&gt;, 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;	&lt;span style="color:#e6db74"&gt;&amp;#39;The Drug Meeting&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;	];
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;const&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;regex&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;new&lt;/span&gt; RegExp(&lt;span style="color:#e6db74"&gt;/^(The|An|A)\ /&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;i&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;bands&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;sort&lt;/span&gt;((&lt;span style="color:#a6e22e"&gt;a&lt;/span&gt;, &lt;span style="color:#a6e22e"&gt;b&lt;/span&gt;) =&amp;gt; &lt;span style="color:#a6e22e"&gt;a&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;replace&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;regex&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;&amp;#39;&lt;/span&gt;) &lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;b&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;replace&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;regex&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;&amp;#39;&lt;/span&gt;) &lt;span style="color:#f92672"&gt;?&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt; &lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#f92672"&gt;-&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;document.&lt;span style="color:#a6e22e"&gt;querySelector&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;#bands&amp;#39;&lt;/span&gt;).&lt;span style="color:#a6e22e"&gt;innerHTML&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;bands&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;map&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;band&lt;/span&gt; =&amp;gt; &lt;span style="color:#e6db74"&gt;`&amp;lt;li&amp;gt;&lt;/span&gt;&lt;span style="color:#e6db74"&gt;${&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;band&lt;/span&gt;&lt;span style="color:#e6db74"&gt;}&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;lt;/li&amp;gt;`&lt;/span&gt;).&lt;span style="color:#a6e22e"&gt;join&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Because &lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort?v=example"&gt;sort()&lt;/a&gt; mutates the array, I needed very few lines of codes. I have linked to it before, but here is a list of &lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/prototype?v=control#Mutator_methods"&gt;array functions that mutate the array&lt;/a&gt;. It is important to understand, and nifty to know!&lt;/p&gt;</description></item><item><title>JavaScript30 - Day 16</title><link>https://naxoc.net/2017-06-18-js-30-day-16/</link><pubDate>Sun, 18 Jun 2017 19:40:00 +0200</pubDate><guid>https://naxoc.net/2017-06-18-js-30-day-16/</guid><description>&lt;p&gt;Day 16 of &lt;a href="https://javascript30.com"&gt;#javascript30&lt;/a&gt; is having fun with a little bit of math and some CSS.&lt;/p&gt;
&lt;p&gt;This lesson creates some text and when you hover over it, the text shadow follows the mouse. I learned some good practices when dealing with math for stuff like this. When calculating &lt;code&gt;x&lt;/code&gt; and &lt;code&gt;y&lt;/code&gt; position of the mouse on the &lt;a href="https://developer.mozilla.org/en-US/docs/Web/Events/mousemove"&gt;mousemove&lt;/a&gt; event, then use the &lt;code&gt;event.target.offsetLeft&lt;/code&gt; and &lt;code&gt;event.target.offsetTop&lt;/code&gt; instead of &lt;code&gt;event.offsetX&lt;/code&gt; and &lt;code&gt;event.offsetY&lt;/code&gt; if the item you are listening on (this) is not the same as &lt;code&gt;event.target&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>JavaScript30 - Day 15</title><link>https://naxoc.net/2017-06-17-js-30-day-15/</link><pubDate>Sat, 17 Jun 2017 08:40:00 +0200</pubDate><guid>https://naxoc.net/2017-06-17-js-30-day-15/</guid><description>&lt;p&gt;Day 15 of &lt;a href="https://javascript30.com"&gt;#javascript30&lt;/a&gt; is about localStorage and event delegation.&lt;/p&gt;
&lt;h2 id="localstorage"&gt;LocalStorage&lt;/h2&gt;
&lt;p&gt;The &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage"&gt;Window.localStorage&lt;/a&gt; a simple key-value store that lives in the browser. It is pr. site and has a nice and simple interface. Keep in mind that both the key and the value should be a string, so often times the value is made into json if it is an object.&lt;/p&gt;
&lt;p&gt;The methods on the &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/Storage"&gt;Storage object can be found here&lt;/a&gt;, but I&amp;rsquo;ll just list the most important ones:&lt;/p&gt;</description></item><item><title>JavaScript30 - Day 14</title><link>https://naxoc.net/2017-06-16-js-30-day-14/</link><pubDate>Fri, 16 Jun 2017 17:20:00 +0200</pubDate><guid>https://naxoc.net/2017-06-16-js-30-day-14/</guid><description>&lt;p&gt;Day 14 of &lt;a href="https://javascript30.com"&gt;#javascript30&lt;/a&gt; is understanding reference vs copy on variables.&lt;/p&gt;
&lt;p&gt;This is where so many programmers make mistakes. Not just in JavaScript, but in most programming languages. Understanding — as in &lt;em&gt;really&lt;/em&gt; understanding this is super important.&lt;/p&gt;
&lt;p&gt;JavaScript and PHP are almost the same when it comes to refrence vs copy, with the exception of arrays. JavaScript assigns them by reference, and PHP doesn&amp;rsquo;t. Strings, numbers and booleans are copies. Everything else (I think?) is reference.&lt;/p&gt;</description></item><item><title>JavaScript30 - Day 13</title><link>https://naxoc.net/2017-06-15-js-30-day-13/</link><pubDate>Thu, 15 Jun 2017 21:20:00 +0200</pubDate><guid>https://naxoc.net/2017-06-15-js-30-day-13/</guid><description>&lt;p&gt;Day 13 of &lt;a href="https://javascript30.com"&gt;#javascript30&lt;/a&gt; is a how to get those swishy images come fly in from the sides of the page.&lt;/p&gt;
&lt;p&gt;Like Wes, I am not a big fan of animations that do this, but I still get requests for stuff like this from time to time. So I guess it &lt;em&gt;is&lt;/em&gt; good to know.&lt;/p&gt;
&lt;p&gt;In the excercise, a function is called through a &lt;a href="https://davidwalsh.name/javascript-debounce-function"&gt;debounce function&lt;/a&gt; on scroll. I have used a function like that in the past with &lt;a href="http://underscorejs.org/#debounce"&gt;underscore.js&lt;/a&gt; and it is a &lt;em&gt;really&lt;/em&gt; good idea if you don&amp;rsquo;t want to slam the browser with stuff on scroll.&lt;/p&gt;</description></item><item><title>JavaScript30 - Day 12</title><link>https://naxoc.net/2017-06-14-js-30-day-12/</link><pubDate>Wed, 14 Jun 2017 17:20:00 +0200</pubDate><guid>https://naxoc.net/2017-06-14-js-30-day-12/</guid><description>&lt;p&gt;Day 12 of &lt;a href="https://javascript30.com"&gt;#javascript30&lt;/a&gt; is having fun with konami codes or whatever you want to be your secret code.&lt;/p&gt;
&lt;p&gt;This lesson didn&amp;rsquo;t introduce things that surprised me, but it had a very nice and precise use of &lt;code&gt;.splice()&lt;/code&gt; that illustrates how it mutates the array instead of returning a new one. It is basically practicing what we learned in &lt;a href="https://naxoc.net/2017/06/09/js-30-day-7/"&gt;lesson 7&lt;/a&gt; only it is slicing the array backwards. And you never become too good of a programmer to see examples using arrays.&lt;/p&gt;</description></item><item><title>JavaScript30 - Day 11</title><link>https://naxoc.net/2017-06-13-js-30-day-11/</link><pubDate>Tue, 13 Jun 2017 17:40:00 +0200</pubDate><guid>https://naxoc.net/2017-06-13-js-30-day-11/</guid><description>&lt;p&gt;Day 11 of &lt;a href="https://javascript30.com"&gt;#javascript30&lt;/a&gt; is dealing with controlling a video player.&lt;/p&gt;
&lt;p&gt;Like with the &lt;code&gt;&amp;lt;audio&amp;gt;&lt;/code&gt; element, I was amazed at how simple the interaction with the player is in the &lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video"&gt;&amp;lt;video&amp;gt;&lt;/a&gt; element. I learned how to control volume, skipping and the progress bar. Neat! Once again it blew my mind how many events you can listen for. Here is a list of &lt;a href="https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Media_events"&gt;media events&lt;/a&gt; and listening on them instead of trying to keep your own state for example the play button makes a ton of sense.&lt;/p&gt;</description></item><item><title>JavaScript30 - Day 10</title><link>https://naxoc.net/2017-06-12-js-30-day-10/</link><pubDate>Mon, 12 Jun 2017 20:50:00 +0200</pubDate><guid>https://naxoc.net/2017-06-12-js-30-day-10/</guid><description>&lt;p&gt;Day 10 of &lt;a href="https://javascript30.com"&gt;#javascript30&lt;/a&gt; seems simple enough. Check multiple checkboxes when holding shift down. It was pretty hard, though.&lt;/p&gt;
&lt;p&gt;This one is a prime example of why only practice makes you a good JavaScript programmer. It&amp;rsquo;s a pretty common UI thing - most email clients use it, so really good call by Wes to include this one in the lessons. I find that in JavaScript there is a lot of UI interaction that I am so bad at because I don&amp;rsquo;t use it in PHP and therefore I just haven&amp;rsquo;t done it enough. And that makes a pretty simple task like this one into something that takes a good while for me to figure out. Should I keep a boolean with state? Should I use slice on the array instead of looping over the whole thing? I simply don&amp;rsquo;t know best practices or pros/cons for these things. This solution loops over the array of checkboxes and holds a boolean if we are in between lasted checked box and the box currently being checked.&lt;/p&gt;</description></item><item><title>JavaScript30 - Day 9</title><link>https://naxoc.net/2017-06-11-js-30-day-9/</link><pubDate>Sun, 11 Jun 2017 17:20:00 +0200</pubDate><guid>https://naxoc.net/2017-06-11-js-30-day-9/</guid><description>&lt;p&gt;Day 9 of &lt;a href="https://javascript30.com"&gt;#javascript30&lt;/a&gt; is about what you can do with the browser&amp;rsquo;s dev tools to help you in your code.&lt;/p&gt;
&lt;p&gt;Inside &lt;code&gt;console.log&lt;/code&gt; you can interpolate strings like in PHP&amp;rsquo;s &lt;a href="http://php.net/manual/en/function.sprintf.php"&gt;sprintf()&lt;/a&gt;. You can also just use the backticks from ES6.&lt;/p&gt;
&lt;p&gt;There are a number of methods you can call on the &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/Console"&gt;Console object&lt;/a&gt; - it&amp;rsquo;s worth checking that list out. One in particular I think is cool: &lt;code&gt;console.assert()&lt;/code&gt;. It only prints if what is inside the parentheses evaluates to true. While developing it could be a good idea to use that for some assumptions you have. If the console stays quiet, you&amp;rsquo;re assuming right!&lt;/p&gt;</description></item><item><title>JavaScript30 - Day 8</title><link>https://naxoc.net/2017-06-10-js-30-day-8/</link><pubDate>Sat, 10 Jun 2017 13:20:00 +0200</pubDate><guid>https://naxoc.net/2017-06-10-js-30-day-8/</guid><description>&lt;p&gt;Day 8 of &lt;a href="https://javascript30.com"&gt;#javascript30&lt;/a&gt; is playing around with canvas and drawing colorful things in the browser.&lt;/p&gt;
&lt;p&gt;You don&amp;rsquo;t actually draw on the the &lt;code&gt;&amp;lt;canvas&amp;gt;&lt;/code&gt; - you draw on the &amp;lsquo;context&amp;rsquo; that you get from the canvas - which can be 2D or 3D. Todays lesson is focusing on 2D and you can do a ton of cool stuff with that, so go check out the list of functions that &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D"&gt;CanvasRenderingContext2D&lt;/a&gt; offers. Lines, shapes, text and so on.&lt;/p&gt;</description></item><item><title>JavaScript30 - Day 7</title><link>https://naxoc.net/2017-06-09-js-30-day-7/</link><pubDate>Fri, 09 Jun 2017 16:20:00 +0200</pubDate><guid>https://naxoc.net/2017-06-09-js-30-day-7/</guid><description>&lt;p&gt;Day 7 of &lt;a href="https://javascript30.com"&gt;#javascript30&lt;/a&gt; is another array workout. I learn about &lt;code&gt;some()&lt;/code&gt; and &lt;code&gt;every()&lt;/code&gt; and feel good about it.&lt;/p&gt;
&lt;h2 id="arrays-chapter-ii"&gt;Arrays, chapter II&lt;/h2&gt;
&lt;p&gt;This time we are doing more filtering and searching in arrays. Some of the filtering uses &lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date"&gt;Date&lt;/a&gt; — an old nemesis of mine. It&amp;rsquo;s actually OK simple to use and I learned that with parentheses you can call functions on an object like this:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-js" data-lang="js"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;const&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;year&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; ((&lt;span style="color:#66d9ef"&gt;new&lt;/span&gt; Date()).&lt;span style="color:#a6e22e"&gt;getFullYear&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;rather than:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-js" data-lang="js"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;const&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;date&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;new&lt;/span&gt; Date();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;const&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;year&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;date&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;getFullYear&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="some"&gt;&lt;code&gt;some()&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some"&gt;some()&lt;/a&gt; will check if any item in the array passes some condition. It returns true if &lt;em&gt;any&lt;/em&gt; item passes the condition.&lt;/p&gt;</description></item><item><title>JavaScript30 - Day 6</title><link>https://naxoc.net/2017-06-08-js-30-day-6/</link><pubDate>Thu, 08 Jun 2017 17:00:00 +0200</pubDate><guid>https://naxoc.net/2017-06-08-js-30-day-6/</guid><description>&lt;p&gt;Day 6 of &lt;a href="https://javascript30.com"&gt;#javascript30&lt;/a&gt; is an ajax type ahead form. I learned about the fetch API, promises, asynchronicity, and I might finally understand &amp;lsquo;const&amp;rsquo;.&lt;/p&gt;
&lt;h2 id="fetch-api"&gt;Fetch API&lt;/h2&gt;
&lt;p&gt;In the past I have used jQuery&amp;rsquo;s &lt;code&gt;ajax()&lt;/code&gt;, &lt;code&gt;get()&lt;/code&gt;, or &lt;code&gt;getJSON()&lt;/code&gt; for requesting stuff or I have gone to &lt;a href="https://stackoverflow.com/questions/247483/http-get-request-in-javascript"&gt;Stack Overflow&lt;/a&gt; and copied an &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest"&gt;XMLHttpRequest&lt;/a&gt; like the one below because there was no way I&amp;rsquo;d remember how to do that from time to time.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-js" data-lang="js"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;var&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;xmlHttp&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;new&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;XMLHttpRequest&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;xmlHttp&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;onreadystatechange&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;function&lt;/span&gt;() {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; (&lt;span style="color:#a6e22e"&gt;xmlHttp&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;readyState&lt;/span&gt; &lt;span style="color:#f92672"&gt;==&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;4&lt;/span&gt; &lt;span style="color:#f92672"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;xmlHttp&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;status&lt;/span&gt; &lt;span style="color:#f92672"&gt;==&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;console&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;log&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;xmlHttp&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;responseText&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;xmlHttp&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;open&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;GET&amp;#34;&lt;/span&gt;, &lt;span style="color:#a6e22e"&gt;endpoint&lt;/span&gt;, &lt;span style="color:#66d9ef"&gt;true&lt;/span&gt;); &lt;span style="color:#75715e"&gt;// true for asynchronous
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;xmlHttp&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;send&lt;/span&gt;(&lt;span style="color:#66d9ef"&gt;null&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;It so much easier to use &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch"&gt;fetch()&lt;/a&gt;:&lt;/p&gt;</description></item><item><title>JavaScript30 - Day 5</title><link>https://naxoc.net/2017-06-07-js-30-day-5/</link><pubDate>Wed, 07 Jun 2017 16:20:03 +0200</pubDate><guid>https://naxoc.net/2017-06-07-js-30-day-5/</guid><description>&lt;p&gt;This lesson from &lt;a href="https://javascript30.com"&gt;#javascript30&lt;/a&gt; is showcasing some neat stuff you can do in CSS with &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Flexible_Box_Layout/Using_CSS_flexible_boxes"&gt;Flexbox&lt;/a&gt;. While I have used that a couple of times, I feel a little bit about flexbox as I do about JS. I&amp;rsquo;m not going to get better at it unless I practice. I noticed that the Wes Bos has a 20 video course called &lt;a href="https://flexbox.io/"&gt;What The Flexbox?&lt;/a&gt;. I&amp;rsquo;ll definitely check that out. I really like this format.&lt;/p&gt;</description></item><item><title>JavaScript30 - Day 4</title><link>https://naxoc.net/2017-06-06-js-30-day-4/</link><pubDate>Tue, 06 Jun 2017 16:00:03 +0200</pubDate><guid>https://naxoc.net/2017-06-06-js-30-day-4/</guid><description>&lt;h2 id="arrays"&gt;Arrays&lt;/h2&gt;
&lt;p&gt;Mr. &lt;a href="https://javascript30.com"&gt;#javascript30&lt;/a&gt;, Wes says that he became a much better programmer when he forced himself to get really good at the array methods. I totally agree that this is central to be good at in most programming languages. Today he talked about these methods in particular:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter?v=example"&gt;filter()&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map?v=example"&gt;map()&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort?v=example"&gt;sort()&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce?v=example"&gt;reduce()&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These are all methods that exist in PHP too, so not many surprises for me there. Wes called them &amp;ldquo;a gateway drug for functional programming&amp;rdquo; and if you have dabbled a little with that it makes sense.&lt;/p&gt;</description></item><item><title>JavaScript30 - Day 3</title><link>https://naxoc.net/2017-06-05-js-30-day-3/</link><pubDate>Mon, 05 Jun 2017 13:20:03 +0200</pubDate><guid>https://naxoc.net/2017-06-05-js-30-day-3/</guid><description>&lt;p&gt;Day 3 of &lt;a href="https://javascript30.com"&gt;#javascript30&lt;/a&gt; is using CSS variables and manipulating them with JS. I got my mind blown and I learned about the :root pseudo-element.&lt;/p&gt;
&lt;h2 id="css-variables"&gt;CSS variables&lt;/h2&gt;
&lt;p&gt;The browser support for &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_variables"&gt;CSS variables&lt;/a&gt; is &lt;a href="http://caniuse.com/css-variables/embed"&gt;not great yet&lt;/a&gt;. They also have a little bit of a funky syntax with the &lt;code&gt;--&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-css" data-lang="css"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;element&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --spacing: &lt;span style="color:#ae81ff"&gt;10&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;px&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;That said, I got pretty excited about the cool stuff you can do with them together with JavaScript. I can&amp;rsquo;t wait for better adoption for them but there are hopefully also some &lt;a href="https://en.wikipedia.org/wiki/Polyfill"&gt;polyfills&lt;/a&gt; for them out there.&lt;/p&gt;</description></item><item><title>JavaScript30 - Day 2</title><link>https://naxoc.net/2017-06-04-js-30-day-2/</link><pubDate>Sun, 04 Jun 2017 13:40:03 +0200</pubDate><guid>https://naxoc.net/2017-06-04-js-30-day-2/</guid><description>&lt;p&gt;Day 2 of &lt;a href="https://javascript30.com"&gt;#javascript30&lt;/a&gt; is using &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/transform?v=example"&gt;CSS transform&lt;/a&gt; to rotate the hands on a clock.&lt;/p&gt;
&lt;h2 id="manipulating-css"&gt;Manipulating CSS&lt;/h2&gt;
&lt;p&gt;A &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement"&gt;HTMLElement&lt;/a&gt; has a &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/style"&gt;style property&lt;/a&gt; that can be accessed and manipulated like this for instance:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-js" data-lang="js"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;document.&lt;span style="color:#a6e22e"&gt;querySelector&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;.second-hand&amp;#39;&lt;/span&gt;).&lt;span style="color:#a6e22e"&gt;style&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;transform&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;`rotate(&lt;/span&gt;&lt;span style="color:#e6db74"&gt;${&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;secondsDegrees&lt;/span&gt;&lt;span style="color:#e6db74"&gt;}&lt;/span&gt;&lt;span style="color:#e6db74"&gt;deg)`&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Vanilla JS has a &lt;code&gt;toggle()&lt;/code&gt; that works just like jQuery&amp;rsquo;s &lt;code&gt;toggleClass()&lt;/code&gt;. In fact the &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/Element/classList"&gt;classList&lt;/a&gt; has a couple of very handy functions that are a lot like stuff jQuery will give you.&lt;/p&gt;
&lt;h2 id="template-literals"&gt;Template Literals&lt;/h2&gt;
&lt;p&gt;The string in back-ticks in the code above is using a &lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals"&gt;Template Literal&lt;/a&gt; and I love them. They make it so much easier to write some HTML in JS and to get variable in strings without concatenating them. To use a variable in the string, use the &lt;code&gt;${yourVar}&lt;/code&gt; notation. You can even do stuff like this:&lt;/p&gt;</description></item><item><title>JavaScript30 - Day 1</title><link>https://naxoc.net/2017-06-03-js-30-day-1/</link><pubDate>Sat, 03 Jun 2017 13:20:03 +0200</pubDate><guid>https://naxoc.net/2017-06-03-js-30-day-1/</guid><description>&lt;p&gt;Day 1. I can do this. First of all I would like to thank &lt;a href="https://twitter.com/wesbos"&gt;Wes Bos&lt;/a&gt; for the awesome learning material. I haven&amp;rsquo;t really played around with all the cooler visual stuff JS can do and the daily assignments look really visually pleasing. It is going to feel good making them work. Go check out &lt;a href="https://javascript30.com"&gt;JavaScript30&lt;/a&gt; if you wanna learn JavaScript.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m not going to describe what the assignments for the JavaScript30 lessons are, but just pull out the interesting stuff I learned or got refreshed. I am writing this for my own reference too.&lt;/p&gt;</description></item><item><title>I am bad at JavaScript</title><link>https://naxoc.net/2017-05-30-js-shame/</link><pubDate>Thu, 01 Jun 2017 15:20:03 +0200</pubDate><guid>https://naxoc.net/2017-05-30-js-shame/</guid><description>&lt;p&gt;My name is Camilla and I am bad at JavaScript. I feel ashamed to write this blog post.&lt;/p&gt;
&lt;h2 id="i-am-a-backend-developer"&gt;I am a backend developer&lt;/h2&gt;
&lt;p&gt;I consider myself an experienced Drupal and PHP developer. I have a masters in computer science and before I started working with web I was doing enterprise Java for a couple of years. I have a good grasp on object-oriented programming and design patterns as well as a love for writing clean and simple code — something that can only be done by understanding the programming language and the task at hand well.&lt;/p&gt;</description></item><item><title>New Job</title><link>https://naxoc.net/2015-02-24-new-job/</link><pubDate>Tue, 24 Feb 2015 21:20:03 +0200</pubDate><guid>https://naxoc.net/2015-02-24-new-job/</guid><description>&lt;p&gt;I am switching to go work for &lt;a href="http://www.information.dk"&gt;Dagbladet Information&lt;/a&gt; (again) from April.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s been a really hard decision. I had to choose between two different kinds of Drupal awesome. I know—really a first world problem.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://reload.dk"&gt;Reload&lt;/a&gt; has amazing people and great clients that are willing to work agile. I have been super happy with the projects I have been working on and I have worked with a lot of the best Drupal developers in Denmark there. Also, if you would like to work with Reload, check out this &lt;a href="http://reload.dk/job/erfaren-drupal-udvikler"&gt;job posting&lt;/a&gt;!&lt;/p&gt;</description></item><item><title>naxoc.net is now on Sculpin</title><link>https://naxoc.net/2015-02-16-naxoc-net-sculpin/</link><pubDate>Thu, 19 Feb 2015 16:51:03 +0200</pubDate><guid>https://naxoc.net/2015-02-16-naxoc-net-sculpin/</guid><description>&lt;p&gt;I have changed the blogging engine for this blog once again. This blog was on &lt;a href="http://drupal.org"&gt;Drupal&lt;/a&gt; for a while, then on &lt;a href="http://octopress.org/"&gt;Octopress&lt;/a&gt; (Jekyll), and now on &lt;a href="http://sculpin.io"&gt;Sculpin&lt;/a&gt;. I was never unhappy with either of them—I just enjoy playing around with new stuff every once in a while.&lt;/p&gt;
&lt;p&gt;This blog is now a custom Sculpin thing. There is a &lt;a href="https://github.com/sculpin/sculpin-blog-skeleton"&gt;blog skeleton&lt;/a&gt; available to get you started, but I thought I would roll my very own with some heavy inspiration from the skeleton. I also wanted my &amp;ldquo;theming&amp;rdquo; to be custom so I could play with new shiny things like &lt;a href="http://gulpjs.com"&gt;Gulp&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Switching back to Firefox</title><link>https://naxoc.net/2014-06-03-switching-back-to-firefox/</link><pubDate>Tue, 03 Jun 2014 16:38:30 +0200</pubDate><guid>https://naxoc.net/2014-06-03-switching-back-to-firefox/</guid><description>&lt;p&gt;I have been using Firefox since it came out. I used it back when it was called Firebird and Phoenix. I went to the release party when 1.0 came out and I have advocated using Firefox to anybody that wanted to listen &amp;ndash; and a few that didn&amp;rsquo;t.&lt;/p&gt;
&lt;p&gt;2-3 years ago I switched to Chrome along with a lot of other people. Firefox was getting bloated and Chrome had all kinds of shiny tools. But I am back to using Firefox now, and I thought I would explain what lured me back in this post.&lt;/p&gt;</description></item><item><title>Atom editor update problem</title><link>https://naxoc.net/2014-05-18-atom-editor-update-problem/</link><pubDate>Sun, 18 May 2014 20:51:03 +0200</pubDate><guid>https://naxoc.net/2014-05-18-atom-editor-update-problem/</guid><description>&lt;p&gt;I have been playing around with Github&amp;rsquo;s new editor &lt;a href="http://atom.io"&gt;Atom&lt;/a&gt; for a while now. I actually quite like it, but it still hasn&amp;rsquo;t taken Vim&amp;rsquo;s place as my default editor yet. Maybe it will at some point, but we&amp;rsquo;ll see.&lt;/p&gt;
&lt;p&gt;Atom updates itself and that has been working great, only it stopped working a while ago. It threw some long error to the GUI editor that I can&amp;rsquo;t remember and when I tried to run &lt;code&gt;apm upgrade&lt;/code&gt; it said:&lt;/p&gt;</description></item><item><title>Switch between PHP versions with Homebrew</title><link>https://naxoc.net/2014-05-07-switch-between-php-versions-with-homebrew/</link><pubDate>Wed, 07 May 2014 20:25:40 +0200</pubDate><guid>https://naxoc.net/2014-05-07-switch-between-php-versions-with-homebrew/</guid><description>&lt;p&gt;I am working on a few older Drupal sites that are quite insistent on using PHP 5.3 and not PHP 5.4. No problem - I&amp;rsquo;ll just use Homebrew to switch between versions! But I have been running into all kinds of problems every time I have done this, so I figured I would post what I do to repair things here.&lt;/p&gt;
&lt;p&gt;So, in theory all you should have to do is install the versions you need if you don&amp;rsquo;t already have them.
&lt;code&gt;brew install php53&lt;/code&gt;
And when you want to switch just run this:
&lt;code&gt;brew unlink php54 &amp;amp;&amp;amp; brew link php53&lt;/code&gt;&lt;/p&gt;</description></item><item><title>Keyboard shortcuts in PHPStorm</title><link>https://naxoc.net/2014-02-08-keyboard-shortcuts-in-phpstorm/</link><pubDate>Sat, 08 Feb 2014 13:27:35 +0100</pubDate><guid>https://naxoc.net/2014-02-08-keyboard-shortcuts-in-phpstorm/</guid><description>&lt;p&gt;Coming from Vim to PHPStorm I use the mouse a whole lot more than I did before. Vim is amazing once you learn it and the mouse can take long naps when you do everything with keyboard commands. PHPStorm is a great IDE, so I switched because I felt like I got so much more good stuff like the debugger, easy refactoring, structural overview, and so on. In the beginning I used the IdeaVim plugin in PHPStorm so editing seemed more like Vim, but I ended up abandoning that because I found it buggy.&lt;/p&gt;</description></item><item><title>Syntax highlighting commands with Zsh</title><link>https://naxoc.net/2014-02-02-syntax-highlighting-commands-with-zsh/</link><pubDate>Sun, 02 Feb 2014 13:48:19 +0100</pubDate><guid>https://naxoc.net/2014-02-02-syntax-highlighting-commands-with-zsh/</guid><description>&lt;p&gt;I started using zsh about a year ago after having resisted it with a passion.
My main worry was that I would &amp;ldquo;forget how to bash&amp;rdquo; and be lost on various servers I log in to. While there are some nifty things I have gotten a little too used to in zsh, I don&amp;rsquo;t think it has been a big problem.&lt;/p&gt;
&lt;p&gt;One thing that visually tells me that I am in zsh and not bash is that my zsh terminal syntax highlights as I type. Yes, you read that correctly. If you are not familiar with the &lt;a href="https://github.com/zsh-users/zsh-syntax-highlighting"&gt;zsh-syntax-highlighting&lt;/a&gt; prepare to have your mind blown.&lt;/p&gt;</description></item><item><title>Placeholder selectors in SASS</title><link>https://naxoc.net/2014-01-28-placeholder-selectors-in-sass/</link><pubDate>Tue, 28 Jan 2014 19:45:00 +0100</pubDate><guid>https://naxoc.net/2014-01-28-placeholder-selectors-in-sass/</guid><description>&lt;p&gt;When I found that you can &amp;lsquo;@extend&amp;rsquo; classes in SASS to reuse code and compile to neater CSS I was pretty excited. Here is an example of &amp;lsquo;inheriting&amp;rsquo; code with @extend:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-scss" data-lang="scss"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;.speak&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;font-family&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; Courier New&lt;span style="color:#f92672"&gt;,&lt;/span&gt; monospace;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;max-width&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;400&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;px&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;clear&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; both;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;span&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;font-weight&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; bold;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;display&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; block;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;.voice-1&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;@extend&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;.speak&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;span&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;color&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;magenta&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;.voice-2&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;@extend&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;.speak&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;float&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; right;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;span&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;color&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;green&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;That will compile to:&lt;/p&gt;</description></item><item><title>Organizing code when using Modernizr and SASS</title><link>https://naxoc.net/2014-01-15-organizing-code-when-using-modernizr-and-scss/</link><pubDate>Wed, 15 Jan 2014 12:45:00 +0100</pubDate><guid>https://naxoc.net/2014-01-15-organizing-code-when-using-modernizr-and-scss/</guid><description>&lt;p&gt;The JS library &lt;a href="http://modernizr.com"&gt;Modernizr&lt;/a&gt; makes it really easy to write CSS with support for older browsers. What it does is put classes in the &lt;code&gt;&amp;lt;body&amp;gt;&lt;/code&gt; tag that will tell you what the browser doesn&amp;rsquo;t support. For instance IE9 in the screenshot does not support CSS gradients:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://naxoc.net/img/modernizr_body_tag_classes.png" alt="Modernizr body tag classes"&gt;&lt;/p&gt;
&lt;p&gt;I was going trough with IE9 on a rather large site that uses some spiffy CSS3 tricks to achieve awesome. It has been a pleasure to work with &lt;a href="http://compass-style.org/"&gt;Compass&lt;/a&gt; and SASS to build the site, but when it came to making it look decent in IE9 there was some work to be done.&lt;/p&gt;</description></item><item><title>Format json output from cUrl neatly</title><link>https://naxoc.net/2013-11-22-format-json-output-from-curl-neatly/</link><pubDate>Fri, 22 Nov 2013 14:27:00 +0100</pubDate><guid>https://naxoc.net/2013-11-22-format-json-output-from-curl-neatly/</guid><description>&lt;p&gt;Here is a short simple tip to read json output from curl in a neat formatted way:&lt;/p&gt;
&lt;p&gt;Pipe the output to Python like this:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;curl &amp;#34;http://url.to.call?args=hi&amp;#34; | python -mjson.tool
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This will prettify the output and make json much more readable when testing webservices. It also validates the json, so if it contains errors you will get a warning.&lt;/p&gt;
&lt;p&gt;It works with Python 2.6 and higher and you can find more info at the &lt;a href="http://docs.python.org/2/library/json.html"&gt;Python docs page&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Color schemes and productivity</title><link>https://naxoc.net/2013-11-10-color-schemes-and-productivity/</link><pubDate>Sun, 10 Nov 2013 13:45:00 +0100</pubDate><guid>https://naxoc.net/2013-11-10-color-schemes-and-productivity/</guid><description>&lt;p&gt;Almost all programmers have a color scheme or theme in their terminal and their code editor. Some people actually turns syntax highlighting off, but I will never understand that. To me - code is something that lives on a black or dark background and has syntax colors. I have only ever used a white background color scheme back when I was using Eclipse 8 years ago. And probably because I couldn&amp;rsquo;t figure out how to set another color scheme than the one that comes with Eclipse.&lt;/p&gt;</description></item><item><title>Finding unused images in your website code</title><link>https://naxoc.net/2013-10-28-finding-unused-images-in-your-website-code/</link><pubDate>Mon, 28 Oct 2013 21:45:00 +0100</pubDate><guid>https://naxoc.net/2013-10-28-finding-unused-images-in-your-website-code/</guid><description>&lt;p&gt;I was doing a lot of changes to CSS files today - mainly deleting a whole lot of stuff. I wanted to see if there were image files that were referenced by CSS that were no longer in use, so I wrote this naïve little script that loops through all image files it finds in the dir you give it to see if there are references to the image files.&lt;/p&gt;</description></item><item><title>Windows in VirtualBox on the Mac</title><link>https://naxoc.net/2013-10-22-windows-in-virtualbox-on-the-mac/</link><pubDate>Tue, 22 Oct 2013 21:06:00 +0100</pubDate><guid>https://naxoc.net/2013-10-22-windows-in-virtualbox-on-the-mac/</guid><description>&lt;p&gt;I have been doing more CSS and front-end stuff lately. I am having a lot of fun learning more about these things that I have somehow avoided doing for the last many years.&lt;/p&gt;
&lt;p&gt;Today I realized that I don&amp;rsquo;t have to own a MS Windows license to run a setup in a VM for browser-testing. While I don&amp;rsquo;t hate Microsoft (anymore) I would really rather not buy a license for a product that I think is horrible. Anyway - I had no idea that it is super simple to set up a VM running whatever version of IE you want on Windows.&lt;/p&gt;</description></item><item><title>Setting up a file watcher for Compass in PHPStorm</title><link>https://naxoc.net/2013-10-06-setting-up-a-file-watcher-for-compass-in-phpstorm/</link><pubDate>Sun, 06 Oct 2013 20:55:00 +0100</pubDate><guid>https://naxoc.net/2013-10-06-setting-up-a-file-watcher-for-compass-in-phpstorm/</guid><description>&lt;p&gt;EDIT: &lt;em&gt;It seems that the version 7 early access now has a file watcher preset for Compass - nice work JetBrains! The part about scope from this blog post is still useful to you if you are on PHPStorm 7 though.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I started using PHPStorm about 6 months ago and while it is an extremely awesome and powerful IDE there are just so many things you can set up and configure. I have to admit that for the first couple of months I pretty much used PHPStorm just like I did Vim and not using any of the many configurable things except for the debugger. I am slowly venturing into playing around with setting more stuff up, and I thought I would share this one because it took me a while to get right.&lt;/p&gt;</description></item><item><title>A git commit hook helps you keep your code clean</title><link>https://naxoc.net/2012-11-26-a-git-commit-hook-helps-you-keep-your-code-clean/</link><pubDate>Mon, 26 Nov 2012 22:18:00 +0100</pubDate><guid>https://naxoc.net/2012-11-26-a-git-commit-hook-helps-you-keep-your-code-clean/</guid><description>&lt;p&gt;I like to keep my code free of trailing whitespace. I feel what xjm describes as &amp;ldquo;&lt;a href="http://xjm.drupalgardens.com/review-guide"&gt;spinach in your teeth&lt;/a&gt;&amp;rdquo; about whitespace and non-conforming coding standards.&lt;/p&gt;
&lt;p&gt;I got (heavily) inspired by Josh The Geek&amp;rsquo;s &lt;a href="http://drupal.org/sandbox/JoshTheGeek/1143338"&gt;git pre-commit hook&lt;/a&gt;, and made myself a commit hook that will check the code I am about to commit for common errors. In addition to whitespace, I like to make sure that I don&amp;rsquo;t accidentally commit debug code like &lt;code&gt;krumo()&lt;/code&gt;. The commit hook also checks for common calls to debug functions.&lt;/p&gt;</description></item><item><title>Using specific versions of formula with Homebrew</title><link>https://naxoc.net/2012-06-05-using-specific-versions-of-formula-with-homebrew/</link><pubDate>Tue, 05 Jun 2012 13:54:00 +0100</pubDate><guid>https://naxoc.net/2012-06-05-using-specific-versions-of-formula-with-homebrew/</guid><description>&lt;p&gt;I have my LAMP stack and other things set up on my mac with the wonderful &lt;a href="http://mxcl.github.com/homebrew"&gt;Homebrew&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I recently did a &lt;code&gt;brew upgrade&lt;/code&gt; on my system and it seemed that everything went smooth. But when I later ran PHP from the command line I got this error:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;PHP Warning: PHP Startup: Unable to load dynamic library &amp;#39;/usr/local/Cellar/memcached-php/2.0.1/memcached.so&amp;#39; - dlopen(/usr/local/Cellar/memcached-php/2.0.1/memcached.so, 9): Library not loaded: /usr/local/lib/libmemcached.9.dylib
 Referenced from: /usr/local/Cellar/memcached-php/2.0.1/memcached.so
 Reason: image not found in Unknown on line 0
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I poked around in my php.ini to see if the wrong file was being included or something like that, but it turned out that I had upgraded to a newer version of libmemcached than the one memcached was using. So I needed to downgrade libmemcached. Here is how to switch to any version available with Homebrew:&lt;/p&gt;</description></item><item><title>What's with the weird name?</title><link>https://naxoc.net/2012-02-05-whats-with-the-weird-name/</link><pubDate>Sun, 05 Feb 2012 19:09:00 +0100</pubDate><guid>https://naxoc.net/2012-02-05-whats-with-the-weird-name/</guid><description>&lt;p&gt;So, Camilla.. Why is your nick everywhere &lt;em&gt;naxoc&lt;/em&gt;?.&lt;/p&gt;
&lt;p&gt;Xoc means shark in Yucatec Maya. It might actually be &lt;a href="https://en.wikipedia.org/wiki/Yucatec_Maya_language#English_words_derived_from_Maya"&gt;one of the very few words that made it into English&lt;/a&gt;. I used to study American Indian Language and Culture at the University of Copenhagen. Those were the days with much nerding over Mayan hieroglyphics. Maya hieroglyphic texts are often about how fantastic the rulers where and one of the more fantastic female rulers was called &lt;a href="https://en.wikipedia.org/wiki/Lady_Xoc"&gt;Lady Xoc&lt;/a&gt;. I thought she was pretty cool, so I stole the name. The Na- prefix is simply a marker for female. So there is the story of my weird nick.&lt;/p&gt;</description></item><item><title>Navigating with Krumo</title><link>https://naxoc.net/2011-09-14-navigating-with-krumo/</link><pubDate>Wed, 14 Sep 2011 09:13:00 +0100</pubDate><guid>https://naxoc.net/2011-09-14-navigating-with-krumo/</guid><description>&lt;p&gt;&lt;a href="http://drupal.org/project/devel" title="Devel | drupal.org"&gt;The Devel module&lt;/a&gt; includes the super helpful &lt;a href="http://krumo.sourceforge.net/"&gt;Krumo library&lt;/a&gt;. I use &lt;code&gt;dsm()&lt;/code&gt; and &lt;code&gt;krumo()&lt;/code&gt; all the time. If you are not familiar with Devel, you should try it. Morten Wulff wrote a &lt;a href="https://ratatosk.backpackit.com/pub/1836982-debugging-drupal"&gt;demo page for the module&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://naxoc.net/img/krumo.png" alt="Krumo output" title="Krumo output"&gt;&lt;/p&gt;
&lt;p&gt;Today a client suggested that the Devel module Krumo could display the &amp;ldquo;path&amp;rdquo; to an item in an array by right clicking or otherwise interacting with the nested elements in the output from Krumo. I was really excited about that idea - I can&amp;rsquo;t count the number of times I have tried and failed to target an item deep in a form array or an item in the node object simply because my human brain can&amp;rsquo;t remember a structure like &lt;code&gt;$form['#node']-&amp;gt;content['links']['comment']['#attributes']['class']&lt;/code&gt; for more than 3 seconds.&lt;/p&gt;</description></item><item><title>Moving an iTunes Library</title><link>https://naxoc.net/2011-05-15-moving-an-itunes-library/</link><pubDate>Wed, 11 May 2011 15:22:00 +0100</pubDate><guid>https://naxoc.net/2011-05-15-moving-an-itunes-library/</guid><description>&lt;p&gt;If you are moving an iTunes library to a new mac it will go smooth if the user login is the same. So if I move my iTunes library from an old machine where it was located in &lt;code&gt;/Users/ckj/iTunes&lt;/code&gt; to a new machine where it is gonna go in &lt;code&gt;/Users/ckj/iTunes&lt;/code&gt; - I have no problems. But if I changed to another username on the new machine - all the paths in the iTunes Library.xml file will not be correct anymore. I have moved libraries so many times now and I thought I would share a really quick way to fix the iTunes Library.xml file to reflect the correct user directory.&lt;/p&gt;</description></item><item><title>Hot Laptop? Vacuum it!</title><link>https://naxoc.net/2011-04-27-hot-laptop-vacuum-it/</link><pubDate>Wed, 27 Apr 2011 21:48:00 +0100</pubDate><guid>https://naxoc.net/2011-04-27-hot-laptop-vacuum-it/</guid><description>&lt;p&gt;My beloved 3years old Macbook Pro was starting to get really hot when I used it. It had gotten to the point where I would burn my legs if it was on my lap, and since having your &lt;em&gt;lap&lt;/em&gt;top on the lap is kinda the point, I felt had to do something about it.&lt;/p&gt;
&lt;p&gt;I bought a &lt;a href="%E2%80%9Chttp://www.amazon.com/Logitech-Notebook-Cooling-N100-Gray/dp/B003BEDQYY/ref=sr_1_1?ie=UTF8&amp;amp;qid=1303933766&amp;amp;sr=8-1%E2%80%9D"&gt;Logitech Notebook Cooling Pad&lt;/a&gt; that actually is very comfortable and does exactly as it says it will, but I was still curious to see if I could get my old healthy Macbook back.&lt;/p&gt;</description></item><item><title>Pet peeve #1 - the comparison operator</title><link>https://naxoc.net/2009-12-10-pet-peeve-number-1-the-comparison-operator/</link><pubDate>Fri, 10 Dec 2010 14:27:00 +0100</pubDate><guid>https://naxoc.net/2009-12-10-pet-peeve-number-1-the-comparison-operator/</guid><description>&lt;p&gt;I have a lot of pet peeves when it comes to programming, databases, web content, food, beer, and, well just about everything. I am thinking of making a series of pet peeves here on this site. Some will seem like plain rants, and others will be more like tips.&lt;/p&gt;
&lt;p&gt;When making comparisons, switch the order of the things you compare like this:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-php" data-lang="php"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; (&lt;span style="color:#e6db74"&gt;&amp;#39;book&amp;#39;&lt;/span&gt; &lt;span style="color:#f92672"&gt;==&lt;/span&gt; $node&lt;span style="color:#f92672"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;type&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;// Stuff happens.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You might think why? And that looks weird! Yes, it does look a little weird. But I do this to not accidentally assign the $node-&amp;gt;type the value I am comparing it with. It is hell to find an error like this when debugging:&lt;/p&gt;</description></item><item><title>Social media meta</title><link>https://naxoc.net/2010-10-20-social-media-meta/</link><pubDate>Wed, 20 Oct 2010 11:33:00 +0100</pubDate><guid>https://naxoc.net/2010-10-20-social-media-meta/</guid><description>&lt;p&gt;I am doing some integration with facebook these days. I don&amp;rsquo;t use facebook much and I certainly no not want all kinds of test data on my profile so I made a test profile using names that just came to mind :-P&lt;/p&gt;
&lt;p&gt;On the facebook developer pages there is a demonstration of the like button. That you can like&amp;hellip; Gotta love the meta!
&lt;img src="https://naxoc.net/img/like.png" alt="meta" title="Facebook like button"&gt;&lt;/p&gt;</description></item><item><title>Upgraded to Drupal 7</title><link>https://naxoc.net/2010-10-18-upgraded-to-drupal-7/</link><pubDate>Mon, 18 Oct 2010 20:58:00 +0100</pubDate><guid>https://naxoc.net/2010-10-18-upgraded-to-drupal-7/</guid><description>&lt;p&gt;I updated this website to D7 this weekend. &lt;a href="http://mikkel.hoegh.org/blog/2010/oct/7/relaunching-blog-drupal-7" title="Relauching my blog on Drupal 7 | Mikkel Høgh"&gt;Mikkel&lt;/a&gt; upgraded his site and urges others to do so now, so I thought I&amp;rsquo;d give it a shot too. And it was good fun! OK, granted, this site is 4 posts and pretty much nothing else, but that makes it a perfect time to upgrade.&lt;/p&gt;
&lt;p&gt;I actually never did an actual core upgrade via the upgrade path before. The sites I have upgraded from D5 to D6 have pretty much all had such a complex data structure that I had to do an upgrade with a data migration. While that is a lot of work (and requires a programmer), I still like the opportunity it gives to clear out a data model that might have grown a little too organically. For this site though, that would be gross overkill. So my approach was simply to read UPGRADE.txt and follow the steps.&lt;/p&gt;</description></item><item><title>Backup and migrate module + Dropbox = peace of mind</title><link>https://naxoc.net/2009-11-16-backup-and-migrate-module-plus-dropbox-equals-peace-of-mind/</link><pubDate>Mon, 16 Nov 2009 21:06:00 +0100</pubDate><guid>https://naxoc.net/2009-11-16-backup-and-migrate-module-plus-dropbox-equals-peace-of-mind/</guid><description>&lt;p&gt;The &lt;a href="https://drupal.org/project/backup_migrate"&gt;backup and migrate&lt;/a&gt; module is truly sweet. We all know that it is a &lt;em&gt;really&lt;/em&gt; good idea to back up data. But if you are like me - you forgot to do it or just don&amp;rsquo;t do it for some lame reason. So backups should be automated. The backup and migrate module does exactly that - it can be configured to run every X hours if you have cron (and you should have) running on your site.
The module makes a dump of the database and puts it in a folder in the files folder of the site. Even if you use the public &lt;a href="http://drupal.org/node/22240"&gt;download method&lt;/a&gt;, the security is OK - a .htacces file put in the folder by the backup and migrate module and disallows access to the folder&amp;rsquo;s content.&lt;/p&gt;</description></item><item><title>Hide Drupal files with .htaccess</title><link>https://naxoc.net/2009-11-13-hide-drupal-files-with-htaccess/</link><pubDate>Fri, 13 Nov 2009 23:50:00 +0100</pubDate><guid>https://naxoc.net/2009-11-13-hide-drupal-files-with-htaccess/</guid><description>&lt;p&gt;If one goes to somedrupalsite.com/CHANGELOG.txt - it is normally possible to read the file and see what version of Drupal the site is running. If you don&amp;rsquo;t want everybody to see what version you are running, it is a good idea to cloak the *.txt files in the Drupal install.&lt;/p&gt;
&lt;p&gt;Using rewrite rules in .htaccess, the *.txt files in Drupal can be hidden. I use a 403 - forbidden on these files. That is what the [F] means See the Apache documentation on RewriteRule for more options.&lt;/p&gt;</description></item><item><title>About</title><link>https://naxoc.net/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://naxoc.net/about/</guid><description>&lt;h2&gt;About&lt;/h2&gt;
&lt;img src="https://naxoc.net/img/camilla.jpg" alt="Camilla" /&gt;
&lt;p&gt;Hi! I&amp;rsquo;m Camilla. I live in Copenhagen, Denmark and enjoy that very much.&lt;/p&gt;
&lt;p&gt;Nowadays I work for &lt;a href="https://automattic.com/"&gt;Automattic&lt;/a&gt; on &lt;a href="https://newspack.com/"&gt;Newspack&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In the past I was a Drupal developer and I worked for &lt;a href="https://www.information.dk/"&gt;Dagbladet Information&lt;/a&gt; — a Danish newspaper for people who are good at reading.&lt;/p&gt;
&lt;p&gt;I go by the nickname naxoc on most of the internet, &lt;a href="https://github.com/naxoc"&gt;github&lt;/a&gt;, &lt;a href="https://www.drupal.org/u/naxoc"&gt;drupal.org&lt;/a&gt; etc. with that name.&lt;/p&gt;
&lt;p&gt;This blog is built with &lt;a href="https://gohugo.io/"&gt;Hugo&lt;/a&gt; and the repository for the blog lives &lt;a href="https://github.com/naxoc/naxoc-hugo"&gt;on github&lt;/a&gt;&lt;/p&gt;</description></item></channel></rss>