<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Times New Rohan</title>
		<link>https://robrohan.com/index.html</link>
		<description>Recent content on Times New Rohan</description>
		<generator>Hugo</generator>
		<language>en-us</language>
		
		
		
		
			<lastBuildDate>Thu, 09 Jul 2026 00:00:00 +0000</lastBuildDate>
		
			<atom:link href="https://robrohan.com/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Using an NTS-2 Oscilloscope for Circuit Debugging</title>
				<link>https://robrohan.com/2026/07/09/nts-2-oscilloscope-circuit-debugging.html</link>
				<pubDate>Thu, 09 Jul 2026 00:00:00 +0000</pubDate>
				<guid>https://robrohan.com/2026/07/09/nts-2-oscilloscope-circuit-debugging.html</guid>
				<description>&lt;p&gt;I happen to have a &lt;a href=&#34;https://www.korg.com/us/products/dj/nts_2/&#34;&gt;Korg NTS-2 oscilloscope&lt;/a&gt; which was created for doing sound design with synthesisers. I&amp;rsquo;ve been doing a lot of embedded electronics work lately, and I was curious if I could use this as a &amp;ldquo;normal oscilloscope&amp;rdquo; for circuit debugging. I could not find a definitive answer online.&lt;/p&gt;&#xA;&lt;p&gt;One thing that made me skeptical is I couldn&amp;rsquo;t find any proper oscilloscope leads that plugged into a 3.5mm audio jack. They would be easy to make, but the fact I couldn&amp;rsquo;t find any made me think it wouldn&amp;rsquo;t work.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Who Tests the Testers</title>
				<link>https://robrohan.com/2026/06/04/who-tests-the-testers.html</link>
				<pubDate>Thu, 04 Jun 2026 00:00:00 +0000</pubDate>
				<guid>https://robrohan.com/2026/06/04/who-tests-the-testers.html</guid>
				<description>&lt;p&gt;I was chatting with a fellow student about my LLM harness, and he offered up a great suggestion: &amp;ldquo;Why don&amp;rsquo;t you run the harness against some of the standard LLM benchmarks&amp;rdquo;. My initial thought, was the base model is already run against those benchmarks so what would be the point of re-running them through the harness. After a bit more discussion, I realised his point. Any deviation between the base model and the model running within the harness would likely be because of the harness. And, at the minimum, it would be a nice way to test if the harness was improving over time.&lt;/p&gt;</description>
			</item>
			<item>
				<title>The Context As a Protocol</title>
				<link>https://robrohan.com/2026/05/30/the-context-as-a-protocol.html</link>
				<pubDate>Sat, 30 May 2026 00:00:00 +0000</pubDate>
				<guid>https://robrohan.com/2026/05/30/the-context-as-a-protocol.html</guid>
				<description>&lt;blockquote&gt;&#xA;&lt;p&gt;&amp;ldquo;If everyone is thinking alike, then no one is thinking. -Benjamin Franklin&amp;rdquo; -Rob Rohan&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;For some quick background, I have 3 modes:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;I write code &amp;ldquo;by hand&amp;rdquo; for work, for school, and for fun.&lt;/li&gt;&#xA;&lt;li&gt;I use Claude Code for some open source projects, test projects, and to keep up with what&amp;rsquo;s going on&lt;/li&gt;&#xA;&lt;li&gt;I have my own lab where I made my own LLM harness, and run a local LLM on a 5080 16gb with 32k context window (i.e. my own personal Anthropic / OpenAI)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;I generally do things like number 3 because I am a slow learner. Unless I can take something apart or build it from the ground up with my hands, I have a hard time understanding it.&lt;/p&gt;</description>
			</item>
			<item>
				<title>The Realist Adjusts The Sails</title>
				<link>https://robrohan.com/2026/05/22/the-realist-adjusts-the-sails.html</link>
				<pubDate>Fri, 22 May 2026 00:00:00 +0000</pubDate>
				<guid>https://robrohan.com/2026/05/22/the-realist-adjusts-the-sails.html</guid>
				<description>&lt;p&gt;I have always lived in the wilderness.&lt;/p&gt;&#xA;&lt;p&gt;I am the guy who gets called when the co-founder embezzled a bunch of the company&amp;rsquo;s money, and they need someone to fix the product, but they don&amp;rsquo;t have the funds. Or the product has already had six &amp;ldquo;hot shot&amp;rdquo; ex-fang programmers with &amp;ldquo;strong opinions&amp;rdquo; who all half implemented their ideas and now the product&amp;rsquo;s code goes in different directions because they thought the code wasn&amp;rsquo;t fashionable for the time. Or there was a rift with the original developer so he ran off with all the DNS and AWS logins. Or the original website developer died so there was no way to get the original source code. Or the product just doesn&amp;rsquo;t fit the market, and they have about 2 months of runway left and need to pivot to &amp;ldquo;something&amp;rdquo;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Local Agent Vibe Coded Keylogger</title>
				<link>https://robrohan.com/2026/05/12/local-agent-vibe-code.html</link>
				<pubDate>Tue, 12 May 2026 00:00:00 +0000</pubDate>
				<guid>https://robrohan.com/2026/05/12/local-agent-vibe-code.html</guid>
				<description>&lt;p&gt;I&amp;rsquo;ve been doing a lot of experiments and spikes using my local lab running &lt;a href=&#34;https://robrohan.com/2026/04/26/adventures-local-coding-agent.html&#34;&gt;a local LLM (on an Nvidia 5060Ti with 16gb)&lt;/a&gt; using my &lt;a href=&#34;https://robrohan.com/2026/04/18/your-own-ai-on-the-cheap.html&#34;&gt;own AI harness&lt;/a&gt; (written by hand in a language other than python or javascript; thank you very much), and I decided to put it through it&amp;rsquo;s paces and let it try to code something itself.&lt;/p&gt;&#xA;&lt;p&gt;I am close to releasing an &lt;a href=&#34;https://therohans.com/traqueur/&#34;&gt;old school digital audio workstation (called a Tracker)&lt;/a&gt; for Mac and the Steam Deck. It&amp;rsquo;s really fun, but if you are not used to trackers you&amp;rsquo;d probably find it impossible to use. To hopefully mitigate that learning curve, I decided to make some videos showing how to use it.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Ghost Installs via AI Harness</title>
				<link>https://robrohan.com/2026/05/09/ghost-installs.html</link>
				<pubDate>Sat, 09 May 2026 00:00:00 +0000</pubDate>
				<guid>https://robrohan.com/2026/05/09/ghost-installs.html</guid>
				<description>&lt;p&gt;This is a feature and a bug. Somewhat scary, but also has the potential for being cool.&lt;/p&gt;&#xA;&lt;p&gt;People are doing all kinds of interesting things with LLMs, but the original use case (and the thing I find them to be the best at) is translating from one thing to another; doing what is sometimes called a &lt;a href=&#34;https://arxiv.org/abs/2501.11639&#34;&gt;stylistic transfer&lt;/a&gt;. In fact, I believe the transformer architecture was created by Google when they were trying to make a better &lt;a href=&#34;https://translate.google.com/?sl=auto&amp;amp;tl=en&amp;amp;op=translate&#34;&gt;translate.google.com&lt;/a&gt; which should be an indication.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Testing a Spatial Memory Index for Strap</title>
				<link>https://robrohan.com/2026/05/05/octree-memory-strap.html</link>
				<pubDate>Tue, 05 May 2026 00:00:00 +0000</pubDate>
				<guid>https://robrohan.com/2026/05/05/octree-memory-strap.html</guid>
				<description>&lt;p&gt;One of the pieces I still need to build for &lt;a href=&#34;https://therohans.com/strap/&#34;&gt;strap&lt;/a&gt; is a long-term memory store. As I&amp;rsquo;ve written about &lt;a href=&#34;https://robrohan.com/2026/04/26/adventures-local-coding-agent.html&#34;&gt;before&lt;/a&gt;, strap compresses context to work within small token budgets. But context compression only handles what&amp;rsquo;s in the current conversation. The bigger question is how to surface relevant memories from past sessions.&lt;/p&gt;&#xA;&lt;p&gt;The obvious approach is brute-force cosine similarity over sentence embeddings. It works for a small number of stored memories, and it&amp;rsquo;s fast enough. But I got curious whether a spatial index could do better, and whether you could make that index inspectable at the same time.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Working Local Coding Agent</title>
				<link>https://robrohan.com/2026/04/26/adventures-local-coding-agent.html</link>
				<pubDate>Sun, 26 Apr 2026 00:00:00 +0000</pubDate>
				<guid>https://robrohan.com/2026/04/26/adventures-local-coding-agent.html</guid>
				<description>&lt;p&gt;My use of AI coding agents might not be typical. I mostly find them useful for &amp;ldquo;rubber ducking&amp;rdquo; ideas, as a search engine, to build out latex styles, and for generating small POC code or examples. I don&amp;rsquo;t generally use them to add whole features to a codebase or &amp;ldquo;vibe code&amp;rdquo; whole products - although I have been playing with that a bit more lately.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve been trying to build a local setup that will do what I need using as few resources as possible. To try to accomplish this, &lt;a href=&#34;https://robrohan.com/2026/04/18/your-own-ai-on-the-cheap.html&#34;&gt;I&amp;rsquo;ve been using an old gaming PC&lt;/a&gt;, and writing my &lt;a href=&#34;https://therohans.com/strap/&#34;&gt;own harness&lt;/a&gt; to try to squeeze every bit out that I can. I think I&amp;rsquo;ve finally gotten something that works, and it works better than I expected.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Your Own AI on the Cheap</title>
				<link>https://robrohan.com/2026/04/18/your-own-ai-on-the-cheap.html</link>
				<pubDate>Sat, 18 Apr 2026 00:00:00 +0000</pubDate>
				<guid>https://robrohan.com/2026/04/18/your-own-ai-on-the-cheap.html</guid>
				<description>&lt;p&gt;Harnesses are all the rage at the moment in AI. A harness is the environment in which you interact with a large language model (LLM). Some examples you may have heard of are &lt;a href=&#34;https://claude.com/product/claude-code&#34;&gt;Claude Code&lt;/a&gt;, &lt;a href=&#34;https://openai.com/codex/&#34;&gt;Open AI Codex&lt;/a&gt;, &lt;a href=&#34;https://opencode.ai/&#34;&gt;OpenCode&lt;/a&gt; and &lt;a href=&#34;https://claude.com/product/cowork&#34;&gt;Claude Cowork&lt;/a&gt; but there are many others. Some are focused around developers and writing code, and some (like Claude Cowork) are focused more on office tasks, making documents, posting online, etc. There are some for designers, CAD creating, 3d modeling, etc, etc.&lt;/p&gt;</description>
			</item>
			<item>
				<title>你的代币怎么样？(How&#39;s your tokens?)</title>
				<link>https://robrohan.com/2026/04/11/ni-de-dai-bi-zenme-yang.html</link>
				<pubDate>Sat, 11 Apr 2026 00:00:00 +0000</pubDate>
				<guid>https://robrohan.com/2026/04/11/ni-de-dai-bi-zenme-yang.html</guid>
				<description>&lt;p&gt;I&amp;rsquo;ve been having fun playing with coding agents, and I&amp;rsquo;ve been playing with some different ways, skills calling tools mostly, to enhance them at inference time. Unfortunately, to do my experiments I need to run them within the context of a coding session which gets very costly very quickly.&lt;/p&gt;&#xA;&lt;p&gt;To try to get to a state where I can iterate, I decided to byte the bullet and try to get a local lab running. However, like most people I am GPU poor. The only thing I have is an old gaming PC with an Nvidia 1660 Ti with 6GB of RAM. That isn&amp;rsquo;t enough to run just about anything, but I am no stranger to constraints.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Basis - A Lisp Neural Network</title>
				<link>https://robrohan.com/2026/04/05/basis-neural-network-in-lisp.html</link>
				<pubDate>Sun, 05 Apr 2026 00:00:00 +0000</pubDate>
				<guid>https://robrohan.com/2026/04/05/basis-neural-network-in-lisp.html</guid>
				<description>&lt;p&gt;Claude Code is absolutely insane. For a builder-of-software-and-crazy-ideas, I am unsure of another way to express how incredibly addictive this tool is.&lt;/p&gt;&#xA;&lt;p&gt;However, it could very well be that I have fallen down one of the oft described rabbit holes. Or maybe I have succumbed to AI psychosis. At this point I am not sure. Like the man who thought he discovered a new form of mathematics because ChatGPT convinced him, perhaps I am falling into that trap as well. Somebody please let me know if I&amp;rsquo;ve gone off the rails.&lt;/p&gt;</description>
			</item>
			<item>
				<title>The Unreasonable Effectiveness of Claude Code</title>
				<link>https://robrohan.com/2026/03/21/claude-code-works.html</link>
				<pubDate>Sat, 21 Mar 2026 00:00:00 +0000</pubDate>
				<guid>https://robrohan.com/2026/03/21/claude-code-works.html</guid>
				<description>&lt;p&gt;As I mentioned in &lt;a href=&#34;https://robrohan.com/2026/02/04/well-all-vibe-code-itll-be-anarchy.html&#34;&gt;my last post&lt;/a&gt;, I very much enjoy writing code &amp;ldquo;by hand&amp;rdquo;. It is the only thing I have consistently dedicated the last 30+ years of my life to. In fact, I have a hard time understanding what software engineering / building software products would even be if one didn&amp;rsquo;t have a solid grasp of, let alone enjoy, writing code.&lt;/p&gt;&#xA;&lt;p&gt;However, the reality is that the point of building software isn&amp;rsquo;t to build software. The point is to make a product or a business. It&amp;rsquo;s to accelerate some real world process or enable some kind of commerce. Engineers often get hung up on linters, syntax formatting, some made up abstraction, or big O time complexity of some batch process that runs all night. While those things have a place, the end goal of software is to increase shareholder value and make the company money. It&amp;rsquo;s not my favourite thing to think about, but it&amp;rsquo;s the truth.&lt;/p&gt;</description>
			</item>
			<item>
				<title>We&#39;ll All Vibe Code; It&#39;ll Be Anarchy</title>
				<link>https://robrohan.com/2026/02/04/well-all-vibe-code-itll-be-anarchy.html</link>
				<pubDate>Wed, 04 Feb 2026 00:00:00 +0000</pubDate>
				<guid>https://robrohan.com/2026/02/04/well-all-vibe-code-itll-be-anarchy.html</guid>
				<description>&lt;p&gt;The past few years I&amp;rsquo;ve been busy learning the fundamentals of machine learning and building my own custom models. Small models of course. SpaCy models, some small CNN models, a few hand rolled ones, and some neat little ML processes using pre built speech-to-text and OpenCV bits and bobs. Most of the things I have been building are specific, proprietary and sensitive so I haven&amp;rsquo;t really tried &amp;ldquo;vibe coding&amp;rdquo;. I&amp;rsquo;ve used LLMs to summarize some topics, do topic searches and what have you, but I hadn&amp;rsquo;t really tried letting an LLM write code &amp;ldquo;for me&amp;rdquo;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Better At Research &amp; The ARC Prize</title>
				<link>https://robrohan.com/2025/12/23/better-at-research-arc-prize.html</link>
				<pubDate>Tue, 23 Dec 2025 00:00:00 +0000</pubDate>
				<guid>https://robrohan.com/2025/12/23/better-at-research-arc-prize.html</guid>
				<description>&lt;h2 id=&#34;getting-better-at-research&#34;&gt;Getting Better At Research&lt;/h2&gt;&#xA;&lt;p&gt;Last semester I sat a course on how to properly write a research paper. The course was extremely useful as I believe my academic writing has, in the past, been quite lacking (and I refuse to use LLMs to &amp;ldquo;fix&amp;rdquo; my papers). There were many, many insights I took from the course, but one of the best ones came towards the last few weeks: &amp;ldquo;You should keep a daily journal of your research project.&amp;rdquo;&lt;/p&gt;</description>
			</item>
			<item>
				<title>AI Hallucinations</title>
				<link>https://robrohan.com/2025/11/13/ai-hallucinations.html</link>
				<pubDate>Thu, 13 Nov 2025 03:00:00 +0000</pubDate>
				<guid>https://robrohan.com/2025/11/13/ai-hallucinations.html</guid>
				<description>&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;&#xA;&lt;p&gt;I very much enjoy building machine learning / deep learning / AI systems. I went back to school to understand as much as I could about the subject. And while I am nowhere near &lt;a href=&#34;https://en.wikipedia.org/wiki/Yann_LeCun&#34;&gt;Yann LeCun&lt;/a&gt;, &lt;a href=&#34;https://en.wikipedia.org/wiki/Geoffrey_Hinton&#34;&gt;Geoffrey Hinton&lt;/a&gt;, or &lt;a href=&#34;https://en.wikipedia.org/wiki/Andrew_Ng&#34;&gt;Andrew Ng&lt;/a&gt; level, having built a few systems, I do have a pretty decent high level understanding of how these systems work. Well, in so far as can be taught I suppose - some of the behaviours are quite unexpected.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Emergent Behavior</title>
				<link>https://robrohan.com/2025/08/23/emergent-behavior.html</link>
				<pubDate>Sat, 23 Aug 2025 03:00:00 +0000</pubDate>
				<guid>https://robrohan.com/2025/08/23/emergent-behavior.html</guid>
				<description>&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve been mulling this over for a few days. I think emergent behaviour in deep neural networks isn&amp;rsquo;t surprising when you think about it. I also think trying to refine or control those behaviours might not be possible. Allow me to explain what I mean.&lt;/p&gt;&#xA;&lt;h2 id=&#34;like-a-record-baby&#34;&gt;Like a Record Baby&lt;/h2&gt;&#xA;&lt;p&gt;I think most people at this point know that deep neural networks (like LLMs: chatgpt, gemini, claude, etc) are pattern matching machines. With simpler machine learning models, we are trying to find much simpler patterns, the most basic being a pattern of a straight line:&lt;/p&gt;</description>
			</item>
			<item>
				<title>On AI Taking Engineering Jobs</title>
				<link>https://robrohan.com/2025/05/03/on-ai-taking-engineering-jobs.html</link>
				<pubDate>Sat, 03 May 2025 02:58:17 +0000</pubDate>
				<guid>https://robrohan.com/2025/05/03/on-ai-taking-engineering-jobs.html</guid>
				<description>&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;&#xA;&lt;p&gt;AI has the potential to eventually replace software engineers, but the current iteration of LLMs (large language models like GPT4, Claude, etc) will not be what does it - at least not with how it&amp;rsquo;s being currently used. I think engineers have an amazing opportunity to ride the wave of a new paradigm of things to build, but it will likely take some effort.&lt;/p&gt;&#xA;&lt;h2 id=&#34;new-kids-on-the-block&#34;&gt;New Kids on The Block&lt;/h2&gt;&#xA;&lt;p&gt;When I was a kid, there was only assembly, basic, and C.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Fight the Exponent</title>
				<link>https://robrohan.com/2025/01/03/fight-the-exponent.html</link>
				<pubDate>Fri, 03 Jan 2025 02:58:17 +0000</pubDate>
				<guid>https://robrohan.com/2025/01/03/fight-the-exponent.html</guid>
				<description>&lt;div style=&#34;width: 100%; text-align: center; margin: 0 0 .5rem 0; padding: 0; border: 1px dashed black; background: #f0f0f0&#34;&gt;&#xA;&lt;a href=&#34;https://80smixtape.com/&#34;&gt;&lt;img src=&#34;https://robrohan.com/wp-content/uploads/2025/01/80sMixtape.png&#34; style=&#34;max-height: 6rem;&#34;&gt;&lt;/a&gt;&#xA;&lt;p style=&#34;font-size: .8rem; margin: 0;&#34;&gt;brought to you by the 80sMixtape &amp;mdash; it&#39;s totally hot&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;Back in the previous ice age, artists would take samples of old records and remix them. They&amp;rsquo;d take a bunch of samples of, often &lt;a href=&#34;https://en.wikipedia.org/wiki/Motown&#34;&gt;old Motown&lt;/a&gt;, songs and use them as loops to create new songs. Some of my favourite examples of such artists are &lt;a href=&#34;https://www.youtube.com/watch?v=PobrSpMwKk4&#34;&gt;Grandmaster Flash &amp;amp; The Furious Five&lt;/a&gt;, &lt;a href=&#34;https://www.youtube.com/watch?v=rKTUAESacQM&#34;&gt;The Sugar Hill Gang&lt;/a&gt;, &lt;a href=&#34;https://www.youtube.com/watch?v=zR9AlcgL6_0&#34;&gt;De La Soul&lt;/a&gt;, &lt;a href=&#34;https://www.youtube.com/watch?v=rog8ou-ZepE&#34;&gt;Vanilla Ice&lt;/a&gt; (he&amp;rsquo;s not one of my favourites, but he is notable), &lt;a href=&#34;https://www.youtube.com/watch?v=XTUbZx31_SA&#34;&gt;The Beastie Boys&lt;/a&gt;, &lt;a href=&#34;https://www.youtube.com/watch?v=xy4FXhkm6Nw&#34;&gt;Young MC&lt;/a&gt; and one of my all time favourites &lt;a href=&#34;https://www.youtube.com/watch?v=jRJKjiCtVco&#34;&gt;Public Enemy&lt;/a&gt;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Midi GPT custom BPE - Theremin Midi</title>
				<link>https://robrohan.com/2024/06/18/midi-bpe-gpt.html</link>
				<pubDate>Tue, 18 Jun 2024 02:58:17 +0000</pubDate>
				<guid>https://robrohan.com/2024/06/18/midi-bpe-gpt.html</guid>
				<description>&lt;hr&gt;&#xA;&lt;p&gt;🕶️ Quick jump if you are &lt;a href=&#34;https://github.com/robrohan/theremin-midi&#34;&gt;just looking for the code&lt;/a&gt;, or &lt;a href=&#34;https://huggingface.co/robro/theremin-midi&#34;&gt;just looking for the weights&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;I wouldn&amp;rsquo;t call myself a musician, but I&amp;rsquo;ve been playing and recording music since I was a teenager. It&amp;rsquo;s a hobby of mine that I&amp;rsquo;ve dabbled with for a long time.&lt;/p&gt;&#xA;&lt;p&gt;One technique I sometimes use when I am looking for musical ideas is to roll some dice to inspire chord progressions or melodies. Since I&amp;rsquo;ve been doing more machine learning work over the past few years, I decided it would be a fun project to create a machine learning model to aid in generating musical ideas.&lt;/p&gt;</description>
			</item>
			<item>
				<title>The Simplest Spider</title>
				<link>https://robrohan.com/2024/03/12/the-simplest-spider.html</link>
				<pubDate>Tue, 12 Mar 2024 02:58:17 +0000</pubDate>
				<guid>https://robrohan.com/2024/03/12/the-simplest-spider.html</guid>
				<description>&lt;p&gt;In these the days of training models and analysing random things off the internet, sometimes you just need to spider some content off a web site.&lt;/p&gt;&#xA;&lt;p&gt;If you are going to be doing this for real, some good tools I recommend are:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/gocolly/colly&#34;&gt;Colly&lt;/a&gt; (golang)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://scrapy.org/&#34;&gt;Scrappy&lt;/a&gt; (python)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://beautiful-soup-4.readthedocs.io/en/latest/&#34;&gt;Beautiful Soup&lt;/a&gt; (not a spider but useful for doing html magic)&lt;/li&gt;&#xA;&lt;li&gt;Use a specialised service (there are several)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;However, sometimes you just need something quick, dirty and scrappy.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Doing Map Selections Using a Quadtree</title>
				<link>https://robrohan.com/2024/02/01/map-selection-quadtree.html</link>
				<pubDate>Thu, 01 Feb 2024 02:58:17 +0000</pubDate>
				<guid>https://robrohan.com/2024/02/01/map-selection-quadtree.html</guid>
				<description>&lt;p&gt;My methodology to building products is:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Build an MVP (Minium Viable Product) quickly&lt;/li&gt;&#xA;&lt;li&gt;Get a few early-adopter customers to try it&lt;/li&gt;&#xA;&lt;li&gt;Get feedback&lt;/li&gt;&#xA;&lt;li&gt;Adjust&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;I find the faster you can get feedback the faster you can figure out if your hypothesis is correct. The hypothesis being, &amp;ldquo;my solution solves the problem, and it&amp;rsquo;s worth building&amp;rdquo;.&lt;/p&gt;&#xA;&lt;p&gt;It&amp;rsquo;s often better not to work on a doomed idea for years and years. Even if the MVP idea doesn&amp;rsquo;t work out, there will always be some lessons you can learn from them. This post is about one of those cool tricks that worked out well, but the idea surrounding it might take too long to be profitable (for us).&lt;/p&gt;</description>
			</item>
			<item>
				<title>50k Ultramarathon Retrospective</title>
				<link>https://robrohan.com/2023/10/17/50k-ultramarathon-retro.html</link>
				<pubDate>Tue, 17 Oct 2023 02:58:17 +0000</pubDate>
				<guid>https://robrohan.com/2023/10/17/50k-ultramarathon-retro.html</guid>
				<description>&lt;p&gt;I love trail running. I love to hike and tramp; to be in the middle of nowhere with almost no one around. Just me and the planet. Running in the woods is just&amp;hellip; it&amp;rsquo;s just perfect.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve done several smaller trail runs (33k, 24k, and my original love &lt;em&gt;the GutBuster&lt;/em&gt; in the Blue Mountains Australia), but I hadn&amp;rsquo;t broken into the Ultramarathon distance officially until last weekend.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.taupoultra.co.nz/&#34;&gt;The Taupō Ultramarathon&lt;/a&gt; - I&amp;rsquo;ve been trying to do this race for about 3 years now. In 2021 New Zealand went into lock down, and most everything stopped. The race that year was cancelled - which made sense. The next year I was the lucky recipient of Covid in the middle of my restarted training - so I had to DNS/DNF. But finally&amp;hellip; finally the spike proteins aligned, and I was able to show up to the start line.&lt;/p&gt;</description>
			</item>
			<item>
				<title>What Vision Pro Acutally Is (I think)</title>
				<link>https://robrohan.com/2023/06/07/apple-vision-pro.html</link>
				<pubDate>Wed, 07 Jun 2023 02:58:17 +0000</pubDate>
				<guid>https://robrohan.com/2023/06/07/apple-vision-pro.html</guid>
				<description>&lt;p&gt;I&amp;rsquo;ve had some fun conversations with people about Apple&amp;rsquo;s Vision Pro in the last few days, and a few people sound suspiciously like what &lt;a href=&#34;https://youtu.be/eywi0h_Y5_U?t=12&#34;&gt;Steve Ballmer sounded like when the iPhone first launched&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;If you weren&amp;rsquo;t around back then, there was no AppStore on the phone, you couldn&amp;rsquo;t send images over text messages, the screen was 9cm (3.5 inches), it only worked on AT&amp;amp;T Edge networks, you had to plug it in to iTunes to transfer contacts and music, it had a 4GB disk, it had a 5 hour battery life, and it cost $500 on top of having to buy a cell phone plan &lt;em&gt;only from AT&amp;amp;T&lt;/em&gt; (unheard of at the time).&lt;/p&gt;</description>
			</item>
			<item>
				<title>WASM Raycaster in C with Clang no stdlib</title>
				<link>https://robrohan.com/2023/05/30/wasm-raycaster-in-c.html</link>
				<pubDate>Tue, 30 May 2023 02:58:17 +0000</pubDate>
				<guid>https://robrohan.com/2023/05/30/wasm-raycaster-in-c.html</guid>
				<description>&lt;p&gt;I&amp;rsquo;ve been building software for profit for 25 years now - for fun since I was about 12. For the past year and a bit, I was focused on helping build out and fix some infrastructure. While there was some coding involved, I wasn&amp;rsquo;t doing much new software development.&lt;/p&gt;&#xA;&lt;p&gt;I had an urge to shake off a bit of cruft, and do a little &amp;ldquo;code 5k&amp;rdquo;. I felt like digging back into some lower level code to stretch my legs - and, of course, throw in some games programming.&lt;/p&gt;</description>
			</item>
			<item>
				<title>SVG as a UI</title>
				<link>https://robrohan.com/2022/12/27/svg-ui.html</link>
				<pubDate>Tue, 27 Dec 2022 13:25:00 +0000</pubDate>
				<guid>https://robrohan.com/2022/12/27/svg-ui.html</guid>
				<description>&lt;h1 id=&#34;svg-as-a-ui&#34;&gt;SVG as a UI&lt;/h1&gt;&#xA;&lt;p&gt;Did you know you can put JavaScript into SVG files? You can use this little technique to make little embeddable Flash like applications that also work as standalone applications.&lt;/p&gt;&#xA;&lt;p&gt;Here is a small example (lightly tested in Firefox and Chrome):&lt;/p&gt;&#xA;&lt;p&gt;&lt;object type=&#34;image/svg+xml&#34; data=&#34;/wp-content/uploads/2023/01/test.svg&#34; width=&#34;800&#34; height=&#34;600&#34; style=&#34;border: 1px solid black;&#34;&gt;&lt;img src=&#34;https://robrohan.com/wp-content/uploads/2023/01/test.svg&#34; width=&#34;800&#34; height=&#34;600&#34;&gt;&lt;/object&gt;&lt;/p&gt;&#xA;&lt;p&gt;Try clicking around in that image above (or use w,a,s,d to move the circle around). If you &lt;a href=&#34;https://robrohan.com/wp-content/uploads/2023/01/test.svg&#34;&gt;view that SVG directly&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;=&amp;gt; &lt;a href=&#34;https://robrohan.com/wp-content/uploads/2023/01/test.svg&#34;&gt;https://robrohan.com/wp-content/uploads/2023/01/test.svg&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;you&amp;rsquo;ll notice it works just like it does when it&amp;rsquo;s embedded.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Mastodon; Machine Learning; Mandarin</title>
				<link>https://robrohan.com/2022/11/25/mastodon-ml-mandarin.html</link>
				<pubDate>Fri, 25 Nov 2022 13:25:00 +0000</pubDate>
				<guid>https://robrohan.com/2022/11/25/mastodon-ml-mandarin.html</guid>
				<description>&lt;h1 id=&#34;mastodon-machine-learning-mandarin&#34;&gt;Mastodon; Machine Learning; Mandarin&lt;/h1&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; I made a Mastodon bot that uses Tensorflow, Stable Diffusion and Text to Speech to create flashcard like posts to study for the HSK Mandarin Test. Here is an example:&lt;/p&gt;&#xA;&lt;p&gt;=&amp;gt; &lt;a href=&#34;https://botsin.space/@hsk_words/109408750566290159&#34;&gt;https://botsin.space/@hsk_words/109408750566290159&lt;/a&gt; 苹果&lt;/p&gt;&#xA;&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve been studying Mandarin Chinese for quite a while now. Far longer than my ability would dictate.&lt;/p&gt;&#xA;&lt;p&gt;In the past I&amp;rsquo;ve studied in waves. I&amp;rsquo;d study for 3 or 4 months, and then I wouldn&amp;rsquo;t study for a long while - sometimes years. Then, I&amp;rsquo;d pick it up again and toddle around with it for a while. Learning Mandarin has become more of a fun hobby than any kind of life goal at this point.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Narrative Programming</title>
				<link>https://robrohan.com/2022/04/23/narrative-programming.html</link>
				<pubDate>Sat, 23 Apr 2022 02:58:17 +0000</pubDate>
				<guid>https://robrohan.com/2022/04/23/narrative-programming.html</guid>
				<description>&lt;blockquote&gt;&#xA;&lt;p&gt;Treating computer programming as literature&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve been playing around with the idea of mixing code and documentation. It&amp;rsquo;s not an original idea, but I think my implementation may be somewhat unique.&lt;/p&gt;&#xA;&lt;p&gt;The idea is combining a cup of Literate Programming (an idea created by Donald Knuth), with a sprinkle of javadoc / Doxygen.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ll start with an example output first. The following link is the output from a small example program to teach how to use C to compile to WASM:&lt;/p&gt;</description>
			</item>
			<item>
				<title>NFT Blockchain</title>
				<link>https://robrohan.com/2022/01/22/nft-blockchain.html</link>
				<pubDate>Sat, 22 Jan 2022 02:58:17 +0000</pubDate>
				<guid>https://robrohan.com/2022/01/22/nft-blockchain.html</guid>
				<description>&lt;p&gt;I&amp;rsquo;ve been getting a lot of people asking me questions about NFTs,&#xA;Blockchain, and Bitcoin. I generally give the unhelpful advice:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Never invest in a business you cannot understand — Warren Buffett&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;It&amp;rsquo;s great advice, but, in technology, I think it&amp;rsquo;s becoming less useful&#xA;over time. In 2022, it is difficult to fully understand a lot of what is out&#xA;there. I mean, I am very interested in quantum computing and machine&#xA;learning, but I wouldn&amp;rsquo;t say I fully understand it - and I&amp;rsquo;ve already&#xA;invested quite a bit of my time in those subjects.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Fun with Binary Trees</title>
				<link>https://robrohan.com/2021/04/30/binary-tree.html</link>
				<pubDate>Fri, 30 Apr 2021 13:25:00 +0000</pubDate>
				<guid>https://robrohan.com/2021/04/30/binary-tree.html</guid>
				<description>&lt;p&gt;This is another contrived post to test out my interactive coding scripts,&#xA;and also to test making a d3 tree graph. While this post is probably not&#xA;going to be enlightening, I hope it is somewhat entertaining.&lt;/p&gt;&#xA;&lt;p&gt;One of my favorite data structures is the binary tree. It&amp;rsquo;s not the fastest&#xA;at everything, but it does most things you&amp;rsquo;d need, and it does them&#xA;reasonably quickly.&lt;/p&gt;&#xA;&lt;p&gt;If you have a list of things that you need to sort, search, and also insert&#xA;new items into, a binary tree is not a bad thing to consider. While it&amp;rsquo;s&#xA;searching is nowhere near as fast as, say, a&#xA;&lt;a href=&#34;https://en.wikipedia.org/wiki/Hash_table&#34;&gt;hash table&lt;/a&gt; and it&amp;rsquo;s sorting isn&amp;rsquo;t&#xA;as fast as &lt;a href=&#34;https://en.wikipedia.org/wiki/Timsort&#34;&gt;timsort&lt;/a&gt; - it&amp;rsquo;s versatility&#xA;and simplicity make it one of my goto structures.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Using WebXR types in Typescript</title>
				<link>https://robrohan.com/2020/10/16/using-webxr-types-in-typescript.html</link>
				<pubDate>Fri, 16 Oct 2020 00:00:00 +0000</pubDate>
				<guid>https://robrohan.com/2020/10/16/using-webxr-types-in-typescript.html</guid>
				<description>&lt;p&gt;I&amp;rsquo;ve recently taken my hand made type definitions for WebXR (for use in my &lt;a href=&#34;https://meshengine.xyz&#34;&gt;Mesh Game Engine&lt;/a&gt;) and submitted them to &lt;a href=&#34;http://definitelytyped.org/&#34;&gt;DefinitelyTyped&lt;/a&gt; (DT).&lt;/p&gt;&#xA;&lt;p&gt;Lazily, I hadn&amp;rsquo;t switched the game engine over to using the DT version. The definitions just got their first update from a new PR so it seemed like the perfect time to swap over.&lt;/p&gt;&#xA;&lt;p&gt;There were a number of &lt;em&gt;gotchas&lt;/em&gt; in doing so, so I thought I&amp;rsquo;d post about how I got it working and some pitfalls you might run into if you&amp;rsquo;re into this kind of thing.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Fun with Matrices</title>
				<link>https://robrohan.com/2020/10/16/matrix-fun.html</link>
				<pubDate>Fri, 16 Oct 2020 08:00:00 +1100</pubDate>
				<guid>https://robrohan.com/2020/10/16/matrix-fun.html</guid>
				<description>&lt;p&gt;This post is a little bit contrived.&lt;/p&gt;&#xA;&lt;p&gt;Since I&amp;rsquo;ve been playing around with 3D graphics and GPUs, I&amp;rsquo;ve become&#xA;fascinated with matrices (and maths in general). On top of that, I&amp;rsquo;ve been&#xA;looking for a reason to play with Jupyter Notebooks. I&amp;rsquo;ve become interested&#xA;in &lt;a href=&#34;https://en.wikipedia.org/wiki/Literate_programming&#34;&gt;literate programming&lt;/a&gt;&#xA;as well - it seems like a fantastic teaching tool.&lt;/p&gt;&#xA;&lt;p&gt;So instead of doing what I was supposed to be doing this lovely Saturday, I&#xA;decided to try to write a super basic (non compatible) version of Jupyter&#xA;Notebooks for Javascript posts (I call it&#xA;&lt;a href=&#34;https://en.wikipedia.org/wiki/Kale_(moon)&#34;&gt;Kale&lt;/a&gt;). I decided to write a&#xA;simple post about using Matrices in Javascript to try it out.&lt;/p&gt;</description>
			</item>
			<item>
				<title>You Don&#39;t Need All That JS. Diffy.</title>
				<link>https://robrohan.com/2020/09/12/you-dont-need-all-that-js.-diffy..html</link>
				<pubDate>Sat, 12 Sep 2020 00:00:00 +0000</pubDate>
				<guid>https://robrohan.com/2020/09/12/you-dont-need-all-that-js.-diffy..html</guid>
				<description>&lt;p&gt;I find the simplest solution is often the best one. When it&amp;rsquo;s not, it&amp;rsquo;s often on the right path.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve been helping a mate try to get his startup running. He is a seasoned (and exclusively) back end engineer who is now thrust into the new 2020 front end world. He hates it. He bemuses, &amp;ldquo;nothing makes sense and everything is overly complicated.&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;Humorously timely, there as a video put out by the &lt;code&gt;goto;&lt;/code&gt; event: &lt;a href=&#34;https://www.youtube.com/watch?v=e1L2WgXu2JY&#34;&gt;You Really Don&amp;rsquo;t Need All That JavaScript, I Promise&lt;/a&gt;. I really connect with the first part of the video, I think he does a great job of summarizing problems with modern &amp;ldquo;doing it the right way&amp;rdquo; web development.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Getting Makefiles Working on Windows 10</title>
				<link>https://robrohan.com/2020/01/05/makefiles-on-windows10.html</link>
				<pubDate>Sun, 05 Jan 2020 08:00:00 +1100</pubDate>
				<guid>https://robrohan.com/2020/01/05/makefiles-on-windows10.html</guid>
				<description>&lt;p&gt;As you might know from some posts on here, I&amp;rsquo;ve been getting into 3D programming&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;AR / VR / spatial computing as well as dabbling in machine learning and&#xA;parallel algorithms using GPUs. For the past few years, I&amp;rsquo;ve been doing this on&#xA;hardware from like 2011. I needed an upgrade, and I couldn&amp;rsquo;t find an offering&#xA;from Apple that fit the bill.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;So I&amp;rsquo;ve had to byte the bullet and leave the Apple ecosystem for the first time&#xA;since&amp;hellip; what&amp;hellip; 2003. I&amp;rsquo;ll probably wind up on Linux, but for now I am using&#xA;Windows 10 - at least until after I play Valve&amp;rsquo;s &lt;em&gt;Half Life: Alyx&lt;/em&gt;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>WebGl, WebVR, Webcomponents Oh my</title>
				<link>https://robrohan.com/2018/08/05/webgl-webvr-webcomponents-ohmy.html</link>
				<pubDate>Sun, 05 Aug 2018 08:00:00 +1100</pubDate>
				<guid>https://robrohan.com/2018/08/05/webgl-webvr-webcomponents-ohmy.html</guid>
				<description>&lt;p&gt;Now that I&amp;rsquo;ve started porting my Javascript game engine&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;https://mesh.robrohan.com/?#level:sound &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;to Go, I&amp;rsquo;ve started using the javascript&#xA;version for some fun experiments.&lt;/p&gt;&#xA;&lt;p&gt;The first one, you should hopefully see above. It&amp;rsquo;s the game engine in a&#xA;webcomponent. I haven&amp;rsquo;t fully tested it, but it should work in the latest&#xA;versions of the popular desktop browsers (on recent OSs).&lt;/p&gt;&#xA;&lt;p&gt;I think putting the engine in a webcomponent is an intresting idea. It allows one to basically just do:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Go &#43; OpenGL 2.1 &#43; Shaders &#43; VertexAttribPointer</title>
				<link>https://robrohan.com/2018/07/28/go-opengl21-vertexattrib-shaders.html</link>
				<pubDate>Sat, 28 Jul 2018 08:00:00 +1100</pubDate>
				<guid>https://robrohan.com/2018/07/28/go-opengl21-vertexattrib-shaders.html</guid>
				<description>&lt;p&gt;Wow, that took a while.&lt;/p&gt;&#xA;&lt;p&gt;I decided to port my little JavaScript + WebGL 3d game engine to &lt;a href=&#34;https://golang.org/&#34;&gt;Go&lt;/a&gt;. Everything was going along quite well until I decided to put together a little test renderer to see how it was all shaping up.&lt;/p&gt;&#xA;&lt;p&gt;It&amp;rsquo;s fun to watch unit tests pass and all, but I wanted to see some 3d on the screen.&lt;/p&gt;&#xA;&lt;p&gt;Go has &lt;a href=&#34;https://github.com/go-gl/gl&#34;&gt;bindings for OpenGL&lt;/a&gt; via cgo, and the library has a few examples of how to use OpenGL with Go. Unfortunately for me, both my Macs (and most Macs) only support OpenGL 2.1, and the example for OpenGL 2.1 is using a different pattern than I want.&lt;/p&gt;</description>
			</item>
			<item>
				<title>3d Game Engine Retrospective</title>
				<link>https://robrohan.com/2018/06/11/mesh-engine-status1.html</link>
				<pubDate>Mon, 11 Jun 2018 08:00:00 +1100</pubDate>
				<guid>https://robrohan.com/2018/06/11/mesh-engine-status1.html</guid>
				<description>&lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt; This is a work in progress. Demo links on here depend a lot on your system and video card. But give them a go - you&amp;rsquo;ll know if they work.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve finished some of the key features of my little 3d engine. The list includes &lt;a href=&#34;http://mesh.robrohan.com/#level&#34;&gt;Basic Levels&lt;/a&gt;, &lt;a href=&#34;http://mesh.robrohan.com/#sprite&#34;&gt;sprites&lt;/a&gt;, sounds, and basic interactions between objects. Enough features to build a small game - which, arguably, is the hardest part.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve started cutting down my original idea into some much smaller and far less ambitious. I figure if I can get a basic game out, then perhaps I can keep chipping away at the engine.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Running Physics in a Webworker</title>
				<link>https://robrohan.com/2018/05/24/physics-webworker.html</link>
				<pubDate>Thu, 24 May 2018 08:00:00 +1100</pubDate>
				<guid>https://robrohan.com/2018/05/24/physics-webworker.html</guid>
				<description>&lt;p&gt;Anyone who knows me knows I wont shut up about this &amp;ldquo;game engine thing&amp;rdquo; I am working on. I admit it, I&amp;rsquo;ve been a bit obsessed.&lt;/p&gt;&#xA;&lt;p&gt;The reason I am obsessed, I think, is because I get to solve problems that I&amp;rsquo;ve never really had to solve before. This weekend, for example, I need to make some sort of grid system (or binary space partition) to limit the number of objects I am tossing around in the engine - this kind of stuff never comes up in day to day life! It&amp;rsquo;s like a crossword puzzle for nerds.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Mesh 3d Engine Progress</title>
				<link>https://robrohan.com/2018/05/11/mesh-engine-status1.html</link>
				<pubDate>Fri, 11 May 2018 08:00:00 +1100</pubDate>
				<guid>https://robrohan.com/2018/05/11/mesh-engine-status1.html</guid>
				<description>&lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt; Demo links on here depend a lot on your system and video card. For example, Firefox 60 on my desktop doesn&amp;rsquo;t work, but on my laptop it does. Chrome works on my desktop, but not my laptop. And Safari, well, yeah. But give them a go - you&amp;rsquo;ll know if they work.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve been obsessed for the past few days trying to get my little 3d game engine closer to useful. I&amp;rsquo;ve had some progress this weekend. It was frustrating, but also very fun.&lt;/p&gt;</description>
			</item>
			<item>
				<title>It is time to get into Webassembly</title>
				<link>https://robrohan.com/2018/05/07/webassembly.html</link>
				<pubDate>Mon, 07 May 2018 08:00:00 +1100</pubDate>
				<guid>https://robrohan.com/2018/05/07/webassembly.html</guid>
				<description>&lt;p&gt;I&amp;rsquo;ve been keeping an eye on webassembly for the past few years, but it hasn&amp;rsquo;t felt ready to be used yet. However, over the weekend I took another look, and, to me, it seems baked enough to start using it &amp;ldquo;for reals&amp;rdquo; now.&lt;/p&gt;&#xA;&lt;p&gt;If you don&amp;rsquo;t know, webassembly is an attempt to create an assembly like language for the web. Instead of writing JavaScript, you&amp;rsquo;d write in an assembly language which would get your code base to run much faster (sometimes 30x faster from what I have read).&lt;/p&gt;</description>
			</item>
			<item>
				<title>Web Components and Training Plans</title>
				<link>https://robrohan.com/2018/02/15/ical-web-component.html</link>
				<pubDate>Thu, 15 Feb 2018 08:00:00 +1100</pubDate>
				<guid>https://robrohan.com/2018/02/15/ical-web-component.html</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://developer.mozilla.org/en-US/docs/Web/Web_Components&#34;&gt;Web Components&lt;/a&gt; are the future&amp;hellip; at least that&amp;rsquo;s what this news letter I read said.&lt;/p&gt;&#xA;&lt;p&gt;I like the promise of web components.  They basically, seem to me, to be Angular 5 / React like functionality built into standard HTML.  They give you the ability to create new tags for HTML that do super special things.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve been wanting a way to publish and share some basic .ics (ICalendar) files on my &lt;a href=&#34;https://bloodynipples.com&#34;&gt;running / triathlon site&lt;/a&gt;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Sharing Angular 5 Modules</title>
				<link>https://robrohan.com/2018/02/04/sharing-angular5-modules.html</link>
				<pubDate>Sun, 04 Feb 2018 08:00:00 +1100</pubDate>
				<guid>https://robrohan.com/2018/02/04/sharing-angular5-modules.html</guid>
				<description>&lt;p&gt;If you&amp;rsquo;ve ever worked on a project where you&amp;rsquo;ve tried to share code between two (or more) projects, you probably understand the pain.  Sadly, I&amp;rsquo;ve worked on a few.&lt;/p&gt;&#xA;&lt;p&gt;Admittedly, on the surface it seems like a tempting proposition.  On paper, it sounds quite easy.  For example, one system I worked on we had a single nuget library where we kept our domain objects.  The logic went: &amp;ldquo;All you have to do when you want to make a change is update the domain object project, build, push the new library to the nuget server, then pull down the new library to the other projects, and then rebuild those.  It&amp;rsquo;s easy.&amp;rdquo;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Using AWS Codebuild with Yarn and Chrome</title>
				<link>https://robrohan.com/2018/01/28/codebuild-yarn-headless-chrome.html</link>
				<pubDate>Sun, 28 Jan 2018 08:00:00 +1100</pubDate>
				<guid>https://robrohan.com/2018/01/28/codebuild-yarn-headless-chrome.html</guid>
				<description>&lt;p&gt;I am a big fan of using CI / CD.  As most software engineers are.  That&amp;rsquo;s not a very controversial stance.&lt;/p&gt;&#xA;&lt;p&gt;For open source projects there are some really nice services out there.  One such service is &lt;a href=&#34;https://travis-ci.org/&#34;&gt;Travis CI&lt;/a&gt;.  I really like their service for open source projects, but I have a few side projects that I don&amp;rsquo;t want to open source.&lt;/p&gt;&#xA;&lt;p&gt;My side projects are not for monetary gain so there is no revenue from them.  They aren&amp;rsquo;t going to be businesses or anything like that, but I also have no desire to open source them.  When I went to look at using Travis CI for these type of projects, the pricing model is, well, &lt;a href=&#34;https://travis-ci.com/plans&#34;&gt;way too pricy&lt;/a&gt; - $69 USD per month&amp;hellip; &lt;em&gt;per month&lt;/em&gt;.  My entire Amazon infrastructure bill isn&amp;rsquo;t that much.&lt;/p&gt;</description>
			</item>
			<item>
				<title>A More Interesting Retry</title>
				<link>https://robrohan.com/2018/01/14/a-more-interesting-retry.html</link>
				<pubDate>Sun, 14 Jan 2018 08:00:00 +1100</pubDate>
				<guid>https://robrohan.com/2018/01/14/a-more-interesting-retry.html</guid>
				<description>&lt;p&gt;I&amp;rsquo;ve been playing with writing my &lt;a href=&#34;http://mesh.robrohan.com/&#34;&gt;own Typescript / WebGL 3d game engine from scratch&lt;/a&gt; and fumbling about with machine learning (which oddly have a lot in common).  The hobby has led me to studying linear algebra, which has got me looking at lots of problems in a different light.  I blame a lot of my recent thinking on the YouTube Channel &lt;a href=&#34;https://www.youtube.com/watch?v=kjBOesZCoqc&amp;amp;list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab&#34;&gt;3 Brown 1 Blue&lt;/a&gt;.  The author of that channel lays out maths in a very visual way - it is much to my liking.  The way he explains things has really re-sparked my interest in mathematics.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Poor mans UML / Emacs Artist Mode</title>
				<link>https://robrohan.com/2015/01/17/poor-mans-uml-artist-mode.html</link>
				<pubDate>Sat, 17 Jan 2015 00:00:00 +0000</pubDate>
				<guid>https://robrohan.com/2015/01/17/poor-mans-uml-artist-mode.html</guid>
				<description>&lt;p&gt;When building or designing software, I love to draw diagrams.  I find the old adage &amp;ldquo;a picture is worth one thousand words&amp;rdquo; to be spot on.&lt;/p&gt;&#xA;&lt;p&gt;I also find that the diagrams are the most useful when they are right next to the source code. Having to drudge though a wiki or search though a separate documents folder to find the diagram that refers to the code I am looking at seems like a waste of time.&lt;/p&gt;</description>
			</item>
			<item>
				<title>What are closures in javascript</title>
				<link>https://robrohan.com/2014/02/13/closures-in-javascript.html</link>
				<pubDate>Thu, 13 Feb 2014 00:00:00 +0000</pubDate>
				<guid>https://robrohan.com/2014/02/13/closures-in-javascript.html</guid>
				<description>&lt;p&gt;In my pursuit of gainful employment, I was asked an interview question about closures in javascript.  The question kind of threw me for a loop because when writing javascript I have never consciously thought &amp;ldquo;ok, now I need to use a closure here.&amp;rdquo;  I answered the question poorly - mostly just passing on it - and decided to research it later.&lt;/p&gt;&#xA;&lt;p&gt;Now, I have used closures in Groovy which look something like this:&lt;/p&gt;</description>
			</item>
			<item>
				<title>How to fix &#34;Soft 404s&#34; in Wordpress</title>
				<link>https://robrohan.com/2014/01/02/fix-soft404s-in-wordpress.html</link>
				<pubDate>Thu, 02 Jan 2014 00:00:00 +0000</pubDate>
				<guid>https://robrohan.com/2014/01/02/fix-soft404s-in-wordpress.html</guid>
				<description>&lt;p&gt;We&amp;rsquo;ve been moving a somewhat large site from a proprietary platform onto Wordpress.  As you probably know, when you move a site from one platform to another, a lot of the URLs will change.  In our case, amongst other things, many URLs went from having an &lt;em&gt;.aspx&lt;/em&gt; extension to having none.  On top of that, some features or pages just don&amp;rsquo;t exist anymore.&lt;/p&gt;&#xA;&lt;p&gt;To combat the URL confusion, we proactively monitor and attempt to fix 404s before, during, and for a few months after a move.  To do that we have some proprietary tools, some log parsers, and we also use &lt;a href=&#34;http://www.google.com/webmasters/tools/&#34;&gt;Google Webmaster Tools&lt;/a&gt;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Vegan eateries by location and budgets</title>
				<link>https://robrohan.com/2013/12/19/vegan-eateries-by-location-budgets.html</link>
				<pubDate>Thu, 19 Dec 2013 00:00:00 +0000</pubDate>
				<guid>https://robrohan.com/2013/12/19/vegan-eateries-by-location-budgets.html</guid>
				<description>&lt;p&gt;The end of the year is one of my favorite times of year.  It&amp;rsquo;s when I see how I did with the goals I set for the current year and start to plan out my next adventures for the new year.  I also like to either delete old ideas, or finish up random, playing-around code I have sitting in the old &lt;em&gt;Projects&lt;/em&gt; folder.&lt;/p&gt;&#xA;&lt;p&gt;This year I made a conscious effort to refrain from putting out bits of code, but there are two proof of concept apps that I found useful and kind of fun.  Instead of sending them to the trash, I thought I&amp;rsquo;d put them up.  The hopes are that the examples may help someone just starting with a few of these technologies, but keep in mind these were just things I made to learn a particular technology.  I wouldn&amp;rsquo;t call them finished products.&lt;/p&gt;</description>
			</item>
			<item>
				<title>One-time pad in Javascript</title>
				<link>https://robrohan.com/2013/10/05/one-time-pad-in-javascript.html</link>
				<pubDate>Sat, 05 Oct 2013 00:11:22 +0000</pubDate>
				<guid>https://robrohan.com/2013/10/05/one-time-pad-in-javascript.html</guid>
				<description>&lt;p&gt;Recently, I was doing some research on encryption for a project.  I&amp;rsquo;ve used encryption libraries in past projects, but I&amp;rsquo;ve never written any actual encryption algorithms myself.  And as the Internet does from time to time, I got sucked into looking around at the various algorithms.  I came across an interesting encryption algorithm that I had never heard of.  Apparently, it can not be cracked: &lt;a href=&#34;http://en.wikipedia.org/wiki/One-time_pad&#34;&gt;the one-time pad&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;This is the one that most movies reference when you see the spy guy with his little flip book of paper.  He&amp;rsquo;d write down some random numbers he heard off the radio, or what have you, then burn up the page.  It&amp;rsquo;s an incredibly simple algorithm, and that makes it very useful because you don&amp;rsquo;t even need a computer to do the encryption / decryption.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Watching YouTube videos without Flash</title>
				<link>https://robrohan.com/2013/06/12/watching-youtube-videos-without-flash.html</link>
				<pubDate>Wed, 12 Jun 2013 01:59:34 +0000</pubDate>
				<guid>https://robrohan.com/2013/06/12/watching-youtube-videos-without-flash.html</guid>
				<description>&lt;p&gt;I&amp;rsquo;ve been trying to eliminate flash from my system, and one pain point I&amp;rsquo;ve run into is watching YouTube videos on the YouTube website.  The videos play fine on an iPad or iPhone, but for some reason when I browse them on my desktop, YouTube really wants me to use the Flash player.&lt;/p&gt;&#xA;&lt;p&gt;There used to be an HTML5 video option (set for the whole account), but I can&amp;rsquo;t seem to find it anymore.  However, it seems that when you embed videos from YouTube into another site, the video can play just fine on an iPad.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Ordering iPhoto in Reverse Chronological Order</title>
				<link>https://robrohan.com/2013/06/05/ordering-iphoto-in-reverse-chronological-order.html</link>
				<pubDate>Wed, 05 Jun 2013 18:40:18 +0000</pubDate>
				<guid>https://robrohan.com/2013/06/05/ordering-iphoto-in-reverse-chronological-order.html</guid>
				<description>&lt;p&gt;This is a very small thing that has been bothering me lately, and a benevolent voice from the void showed me how to resolve most of my woes.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve noticed that everywhere photos are displayed on all my devices, the order is oldest to newest.   It&amp;rsquo;s a very small thing, but I have photos from around the year 2000, and scrolling through 13 years of photos to get to a recent one started to bother me a bit.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Living Below the Line - Day 5</title>
				<link>https://robrohan.com/2013/05/03/living-below-the-line-day-5.html</link>
				<pubDate>Fri, 03 May 2013 18:04:44 +0000</pubDate>
				<guid>https://robrohan.com/2013/05/03/living-below-the-line-day-5.html</guid>
				<description>&lt;p&gt;This year, I decided to take part in the &lt;a href=&#34;https://www.livebelowtheline.com/&#34;&gt;Living Below the Line&lt;/a&gt; fundraising campaign.   &lt;a href=&#34;https://www.livebelowtheline.com/&#34;&gt;Living Below the Line&lt;/a&gt; aims to raise awareness about poverty by challenging people to live off of $1.50(USD) a day (the U.S. equivalent of the extreme poverty line).  If you&amp;rsquo;d like, you can donate to &lt;a href=&#34;https://www.livebelowtheline.com/me/robrohan&#34;&gt;my campaign&lt;/a&gt; or &lt;a href=&#34;https://www.livebelowtheline.com/us-en-donate&#34;&gt;donate to the cause in general&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;As you might have read in &lt;a href=&#34;https://robrohan.com/2013/04/29/living-below-the-line-day-1/&#34;&gt;Day 1&lt;/a&gt;, &lt;a href=&#34;https://robrohan.com/2013/04/29/living-below-the-line-day-2/&#34;&gt;Day 2&lt;/a&gt;, or &lt;a href=&#34;https://robrohan.com/2013/04/29/living-below-the-line-day-3/&#34;&gt;Day 3&lt;/a&gt; my strategy is to live exclusively off beans and rice for the next 5 days as that was all my $7.50 could afford.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Living Below the Line - Day 3</title>
				<link>https://robrohan.com/2013/05/01/living-below-the-line-day-3.html</link>
				<pubDate>Wed, 01 May 2013 20:28:19 +0000</pubDate>
				<guid>https://robrohan.com/2013/05/01/living-below-the-line-day-3.html</guid>
				<description>&lt;p&gt;This year, I decided to take part in the &lt;a href=&#34;https://www.livebelowtheline.com/&#34;&gt;Living Below the Line&lt;/a&gt; fundraising campaign.   &lt;a href=&#34;https://www.livebelowtheline.com/&#34;&gt;Living Below the Line&lt;/a&gt; aims to raise awareness about poverty by challenging people to live off of $1.50(USD) a day (the U.S. equivalent of the extreme poverty line).  If you&amp;rsquo;d like, you can donate to &lt;a href=&#34;https://www.livebelowtheline.com/me/robrohan&#34;&gt;my campaign&lt;/a&gt; or &lt;a href=&#34;https://www.livebelowtheline.com/us-en-donate&#34;&gt;donate to the cause in general&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;As you might have read in &lt;a href=&#34;https://robrohan.com/2013/04/29/living-below-the-line-day-1/&#34;&gt;Day 1&lt;/a&gt; or &lt;a href=&#34;https://robrohan.com/2013/04/29/living-below-the-line-day-2/&#34;&gt;Day 2&lt;/a&gt;, my strategy is to live exclusively off beans and rice for the next 5 days as that was all my $7.50 could afford.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Living Below the Line - Day 2</title>
				<link>https://robrohan.com/2013/04/30/living-below-the-line-day-2.html</link>
				<pubDate>Tue, 30 Apr 2013 18:37:27 +0000</pubDate>
				<guid>https://robrohan.com/2013/04/30/living-below-the-line-day-2.html</guid>
				<description>&lt;p&gt;This year, I decided to take part in the &lt;a href=&#34;https://www.livebelowtheline.com/&#34;&gt;Living Below the Line&lt;/a&gt; fundraising campaign.   &lt;a href=&#34;https://www.livebelowtheline.com/&#34;&gt;Living Below the Line&lt;/a&gt; aims to raise awareness about poverty by challenging people to live off of $1.50(USD) a day (the U.S. equivalent of the extreme poverty line).  If you&amp;rsquo;d like, you can donate to &lt;a href=&#34;https://www.livebelowtheline.com/me/robrohan&#34;&gt;my campaign&lt;/a&gt; or &lt;a href=&#34;https://www.livebelowtheline.com/us-en-donate&#34;&gt;donate to the cause in general&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;As you might have read in &lt;a href=&#34;https://robrohan.com/2013/04/29/living-below-the-line-day-1/&#34;&gt;Day 1&lt;/a&gt;, my strategy is to live exclusively off beans and rice for the next 5 days as that was all my $7.50 could afford.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Living Below the Line - Day 1</title>
				<link>https://robrohan.com/2013/04/29/living-below-the-line-day-1.html</link>
				<pubDate>Mon, 29 Apr 2013 21:43:38 +0000</pubDate>
				<guid>https://robrohan.com/2013/04/29/living-below-the-line-day-1.html</guid>
				<description>&lt;p&gt;This year, I decided to take part in the &lt;a href=&#34;https://www.livebelowtheline.com/&#34;&gt;Living Below the Line&lt;/a&gt; fundraising campaign.   &lt;a href=&#34;https://www.livebelowtheline.com/&#34;&gt;Living Below the Line&lt;/a&gt; aims to raise awareness about poverty by challenging people to live off of $1.50(USD) a day (the U.S. equivalent of the extreme poverty line.)&lt;/p&gt;&#xA;&lt;p&gt;In the start-up world, making do with far too little is a way of life, and that particular challenge is something I enjoy.   This seemed to be an interesting way to test my frugal / inventive skills while trying in some way to help a good cause.   If you&amp;rsquo;d like, you can donate to &lt;a href=&#34;https://www.livebelowtheline.com/me/robrohan&#34;&gt;my campaign&lt;/a&gt; or &lt;a href=&#34;https://www.livebelowtheline.com/us-en-donate&#34;&gt;donate to the cause in general&lt;/a&gt;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>How to eat like a Vegan (Plant Based Eating)</title>
				<link>https://robrohan.com/2013/04/08/how-to-eat-like-a-vegan-plant-based-eating.html</link>
				<pubDate>Mon, 08 Apr 2013 16:40:07 +0000</pubDate>
				<guid>https://robrohan.com/2013/04/08/how-to-eat-like-a-vegan-plant-based-eating.html</guid>
				<description>&lt;p&gt;The first thing I should say before any of this is: consult your doctor before you make any kind of health changes. However, keep in mind, most doctors are &lt;em&gt;not trained in nutrition&lt;/em&gt; (and some nutritionist are just plain misinformed as well). Nevertheless, doctors can draw labs and tell you if you&amp;rsquo;re going to do something that would hurt yourself which, I am sure you would agree, is nice to know.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Are tween girls the profitable music demographic?</title>
				<link>https://robrohan.com/2012/06/02/are-tween-girls-the-profitable-music-demographic.html</link>
				<pubDate>Sat, 02 Jun 2012 14:52:59 +0000</pubDate>
				<guid>https://robrohan.com/2012/06/02/are-tween-girls-the-profitable-music-demographic.html</guid>
				<description>&lt;p&gt;I am by no means a music industry veteran, but I&amp;rsquo;ve worked at a few music tech startups, and there is often this underlying theme from music industry insiders that tween girls are the target market.  I&amp;rsquo;ve often asked why that is, or if there is any proof, and I am often met with a &amp;ldquo;well that&amp;rsquo;s just common sense&amp;rdquo; kind of answer.&lt;/p&gt;&#xA;&lt;p&gt;It has never made logical sense to me, and all of my life experiences point in a different direction, but being a noob in the industry I just assumed I was old, and it was true.&lt;/p&gt;</description>
			</item>
			<item>
				<title>The iPad - I was wrong.</title>
				<link>https://robrohan.com/2012/05/31/the-ipad-i-was-wrong.html</link>
				<pubDate>Thu, 31 May 2012 21:29:12 +0000</pubDate>
				<guid>https://robrohan.com/2012/05/31/the-ipad-i-was-wrong.html</guid>
				<description>&lt;p&gt;A few years ago when the iPad first came out, I didn&amp;rsquo;t like it at all.  And to be fair, compared to OSX there wasn&amp;rsquo;t much you could do with it.  At the time you could watch movies and well&amp;hellip; that was about it.&lt;/p&gt;&#xA;&lt;p&gt;I cursed the thing with all my might for not being OSX, and I swore I would never own one.&lt;/p&gt;&#xA;&lt;p&gt;Well, of course, I now have one.  I&amp;rsquo;ve only had it for several months (its an iPad2), and I have to say it&amp;rsquo;s an incredibly capable device now.  I can run my entire company from the device, manage servers, and even do emergency coding.  If i didn&amp;rsquo;t need an IDE and compiler, I really believe I could only use an iPad and do everything I need to do.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Playing and Recording Guitar on Ubuntu</title>
				<link>https://robrohan.com/2010/05/07/playing-and-recording-guitar-on-ubuntu.html</link>
				<pubDate>Fri, 07 May 2010 09:24:53 +0000</pubDate>
				<guid>https://robrohan.com/2010/05/07/playing-and-recording-guitar-on-ubuntu.html</guid>
				<description>&lt;p&gt;When I moved back to Linux from Mac, I was a bit worried about finding&#xA;replacements for two programs: Garageband and iMovie.  While I don&amp;rsquo;t really&#xA;&lt;em&gt;need&lt;/em&gt; those applications, I do like to create media from time to time.  I&amp;rsquo;ve found replacements for both.  This is the workflow I am using for my guitar.&lt;/p&gt;&#xA;&lt;iframe width=&#34;560&#34; height=&#34;315&#34; src=&#34;//www.youtube.com/embed/YXIFi2LPQp0&#34; frameborder=&#34;0&#34; allowfullscreen&gt;&lt;/iframe&gt;&#xA;[Watch on YouTube](http://www.youtube.com/watch?v=YXIFi2LPQp0)&#xA;&lt;p&gt;This setup enables me to play my guitar into my headphones and add some effects.  It also will do multi-track recording.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Chinese Input on Android 2.1 (HTC Desire)</title>
				<link>https://robrohan.com/2010/05/02/chinese-input-on-android-2-1-htc-desire.html</link>
				<pubDate>Sun, 02 May 2010 01:57:24 +0000</pubDate>
				<guid>https://robrohan.com/2010/05/02/chinese-input-on-android-2-1-htc-desire.html</guid>
				<description>&lt;p&gt;It took a bit to sort it out, but once you know how turning on and using&#xA;Chinese input on Android 2.1 is very nice.  Here is a quick movie&#xA;showing how to install, enable, and use Chinese input using the HTC&#xA;Desire (it should be the same for any Android 2.1 phone I would guess)&lt;/p&gt;&#xA;&lt;iframe width=&#34;420&#34; height=&#34;315&#34; src=&#34;//www.youtube.com/embed/I2w0gM5Tz7o&#34; frameborder=&#34;0&#34; allowfullscreen&gt;&lt;/iframe&gt;&#xA;[Watch on YouTube](http://www.youtube.com/watch?v=I2w0gM5Tz7o)</description>
			</item>
			<item>
				<title>HSK Basic Study Aids</title>
				<link>https://robrohan.com/2010/01/17/hsk-basic-study-aids.html</link>
				<pubDate>Sun, 17 Jan 2010 01:59:43 +0000</pubDate>
				<guid>https://robrohan.com/2010/01/17/hsk-basic-study-aids.html</guid>
				<description>&lt;p&gt;I&amp;rsquo;ve been studying Mandarin as a hobby for a few years now, but I&amp;rsquo;ve decided to step it up a bit this year.  As part of one of my goals for 2010, I am going to take the &lt;a href=&#34;http://en.wikipedia.org/wiki/Hanyu_Shuiping_Kaoshi&#34; title=&#34;HSK&#34;&gt;HSK&lt;/a&gt; Basic test.&lt;/p&gt;&#xA;&lt;p&gt;While passing the HSK Basic would be a big boost for me, in the grand scheme of things passing the basic test means one simply has a solid base to really begin learning Mandarin.  For example, to pass the Basic test you only have to know somewhere between 800 to 1000 characters - for perspective you need to know about 3,500 to read a newspaper.  So passing the basic tests really means &amp;ldquo;you are ready to begin learning&amp;rdquo;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>YASnippet Emacs Snippets - Like Textmate</title>
				<link>https://robrohan.com/2009/11/07/yasnippet-emacs-snippets-like-textmate.html</link>
				<pubDate>Sat, 07 Nov 2009 11:31:01 +0000</pubDate>
				<guid>https://robrohan.com/2009/11/07/yasnippet-emacs-snippets-like-textmate.html</guid>
				<description>&lt;p&gt;I&amp;rsquo;ve gone back to Emacs for all my text processing needs for some reason.  Well, I think the main reason was I&amp;rsquo;ve been going back and forth between Linux, Mac, and Windows on my latest project at work, and there wasn&amp;rsquo;t a common editor between all three that I liked&amp;hellip; save my old friend Emacs.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve always used emacs for one thing or another, but I&amp;rsquo;ve grown very used to Textmate on the Mac for coding.  One of Textmate&amp;rsquo;s strong points is snippets.  Once I got used to having them, it has become difficult to live without them.  Enter &lt;a href=&#34;http://code.google.com/p/yasnippet/&#34; title=&#34;YASnippets&#34;&gt;YASnippets&lt;/a&gt; - snippets for Emacs that look, feel, work, and use the same syntax as Textmate snippets.  Score.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Adventures in CSS2 Font Embedding</title>
				<link>https://robrohan.com/2009/07/15/adventures-in-css2-font-embedding.html</link>
				<pubDate>Wed, 15 Jul 2009 10:28:06 +0000</pubDate>
				<guid>https://robrohan.com/2009/07/15/adventures-in-css2-font-embedding.html</guid>
				<description>&lt;p&gt;CSS2 (or maybe it&amp;rsquo;s CSS3 - who can keep up) lets you embed fonts into style sheets for use on your HTML pages.  Since all modern browsers now support true type font embedding (that&amp;rsquo;d be Firefox 3.5, Safari 4, Chrome(?), and Opera 9), I figured I take a stab at it to see how practical it was.&lt;/p&gt;&#xA;&lt;p&gt;I think in the long run this is going to be a boon for designers.  I can&amp;rsquo;t count the number of times I&amp;rsquo;ve seen a designer get bummed over the &amp;ldquo;web safe font&amp;rdquo; selection.  And for the most part, font embedding actually works.&lt;/p&gt;</description>
			</item>
			<item>
				<title>CFML in gEdit (The Ubuntu Text Editor)</title>
				<link>https://robrohan.com/2009/04/28/cfml-in-gedit-the-ubuntu-text-editor.html</link>
				<pubDate>Tue, 28 Apr 2009 08:40:49 +0000</pubDate>
				<guid>https://robrohan.com/2009/04/28/cfml-in-gedit-the-ubuntu-text-editor.html</guid>
				<description>&lt;p&gt;I&amp;rsquo;ve finished moving the basics of my work system from Mac to Ubuntu 9.  Here is a screen shot of my desktop.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://robrohan.com/wp-content/uploads/2009/04/screenshot-1.png&#34;&gt;&lt;img src=&#34;https://robrohan.com/wp-content/uploads/2009/04/screenshot-1-tm.jpg&#34; alt=&#34;Ubuntu 9&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;I put the system together from unused computer parts laying around the office.  This would be considered an underpowered system by most people&amp;rsquo;s standards, but it runs well - even the dual monitors and eye candy work seamlessly.  It probably wouldn&amp;rsquo;t do video editing very well, but it&amp;rsquo;s powerful enough to run everything need, and doesn&amp;rsquo;t skip a beat.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Import a Git repo into Subversion</title>
				<link>https://robrohan.com/2009/04/16/import-a-git-repo-into-subversion.html</link>
				<pubDate>Thu, 16 Apr 2009 08:49:16 +0000</pubDate>
				<guid>https://robrohan.com/2009/04/16/import-a-git-repo-into-subversion.html</guid>
				<description>&lt;p&gt;Yeah, I know it&amp;rsquo;s backwards.&lt;/p&gt;&#xA;&lt;p&gt;When I start working on a new wild code idea, I often start out with a Git repository.  If the idea goes no where, it&amp;rsquo;s an easy delete. If it turns out to be great, well, I already have a repo going and ready to share.  On top of the ease of use and personal nature of a Git repository, I am also a bit of a Git fanboy so by default I often choose Git.&lt;/p&gt;</description>
			</item>
			<item>
				<title>DIY iPhone Stylus - the &#34;Free Capacitive Stylus&#34;</title>
				<link>https://robrohan.com/2009/02/27/diy-iphone-stylus-the-free-capacitive-stylus.html</link>
				<pubDate>Fri, 27 Feb 2009 23:34:13 +0000</pubDate>
				<guid>https://robrohan.com/2009/02/27/diy-iphone-stylus-the-free-capacitive-stylus.html</guid>
				<description>&lt;p&gt;There are a few select times when having a stylus for your iPhone can come in handy.  For me, I sometimes want to practice writing Chinese characters on my iPhone, and using my finger seems a silly way to do that.  Another good instance is if you like to draw, it&amp;rsquo;s often more natural to use a pen than your finger (unless you are in pre-school of course).&lt;/p&gt;&#xA;&lt;p&gt;I looked around a bit and found that you can &lt;a href=&#34;http://www.thinkgeek.com/gadgets/cellphone/a31f/&#34;&gt;buy a stylus for your iPhone&lt;/a&gt; if you are so inclined. However, but being the frugal, I-wanna-make-it-myself guy, I decided to build my own.  Plus, the pre-made versions look like they are built for a small foot print, and I want a pen sized stylus.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Compressing A UUID</title>
				<link>https://robrohan.com/2009/02/14/compressing-a-uuid.html</link>
				<pubDate>Sat, 14 Feb 2009 08:19:56 +0000</pubDate>
				<guid>https://robrohan.com/2009/02/14/compressing-a-uuid.html</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://farcrycore.org&#34;&gt;FarCry&lt;/a&gt; makes heavy use of UUIDs.  I am a fan of UUIDs myself, but in some instances they are a bit long.  It seems like there should be a way to make them shorter and still have them hold their value.  I had a need for a shorter UUID and set out to find a way to compress a UUID.&lt;/p&gt;&#xA;&lt;p&gt;It kind of worked.  It wont work for my purposes so it was a wash for me, but it was still quite a bit of fun and I figured I might as well get a blog post out of all the work.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Saving a Customised Linux Amazon Instance (EC2 and S3)</title>
				<link>https://robrohan.com/2009/01/30/saving-a-customised-linux-amazon-instance-ec2-and-s3.html</link>
				<pubDate>Fri, 30 Jan 2009 01:08:25 +0000</pubDate>
				<guid>https://robrohan.com/2009/01/30/saving-a-customised-linux-amazon-instance-ec2-and-s3.html</guid>
				<description>&lt;p&gt;In my &lt;a href=&#34;https://robrohan.com/2008/11/11/bringing-up-an-ec2-instance-movie/&#34;&gt;last post about playing around with EC2&lt;/a&gt;, I showed signing up for Amazon&amp;rsquo;s service and using Firefox&amp;rsquo;s Elasticfox to bring up AMIs.  This bit is about how to take that running instance and save it to S3.&lt;/p&gt;&#xA;&lt;p&gt;The workflow being, you bring up an AMI, install a bunch of software, configure it how you need it, and then you need to store your new image so you can bring it up again and again (since images will revert back to their saved state after shutdown).&lt;/p&gt;</description>
			</item>
			<item>
				<title>DIY Whiteboard For $3.00</title>
				<link>https://robrohan.com/2008/12/22/diy-whiteboard-for-300.html</link>
				<pubDate>Mon, 22 Dec 2008 21:14:50 +0000</pubDate>
				<guid>https://robrohan.com/2008/12/22/diy-whiteboard-for-300.html</guid>
				<description>&lt;p&gt;Like most geeks, I love whiteboards.  I like it for doing quick UMLs or to just quickly get ideas out (I don&amp;rsquo;t like them when used for power trips during interviews though - thank you very much).&lt;/p&gt;&#xA;&lt;p&gt;Also, for some reason, love to practice my Chinese characters on a whiteboard.  The big whiteboard pen is closer to a 毛笔 than a normal ball point pen, but takes less effort to use (the ink, the clean up, etc).&lt;/p&gt;</description>
			</item>
			<item>
				<title>Bringing Up an EC2 Instance (Movie)</title>
				<link>https://robrohan.com/2008/11/11/bringing-up-an-ec2-instance-movie.html</link>
				<pubDate>Tue, 11 Nov 2008 20:30:30 +0000</pubDate>
				<guid>https://robrohan.com/2008/11/11/bringing-up-an-ec2-instance-movie.html</guid>
				<description>&lt;p&gt;I use Amazon&amp;rsquo;s S3 quite a bit and I really like it.  I&amp;rsquo;ve also been very curious about using Amazon&amp;rsquo;s EC2 - their cloud computing product.&lt;/p&gt;&#xA;&lt;p&gt;If you&amp;rsquo;ve never heard of it, what EC2 allows you to do is bring up images of computers into a big network of processing power and bandwidth.  It&amp;rsquo;s like you have a whole box under your control, but &amp;hellip; there is no box.  It&amp;rsquo;s like VMWare for servers.  The billing for these instances is by the &lt;del&gt;minute&lt;/del&gt; hour - around $0.10 for Linux and $0.12 for windows - so you can bring up test boxes only when you want them, or throw a bit of extra power at a problem.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Hidden Keys on the iPhone</title>
				<link>https://robrohan.com/2008/07/29/hidden-keys-on-the-iphone.html</link>
				<pubDate>Tue, 29 Jul 2008 05:55:22 +0000</pubDate>
				<guid>https://robrohan.com/2008/07/29/hidden-keys-on-the-iphone.html</guid>
				<description>&lt;p&gt;You may already know when you are filling in a URL with the iPhone if you hold down the &lt;em&gt;.com&lt;/em&gt; button for a few seconds you are offered selections of &lt;em&gt;.net&lt;/em&gt; and &lt;em&gt;.org&lt;/em&gt;, but you might not know other keys do the extra-bit-on-hold too.&lt;/p&gt;&#xA;&lt;p&gt;I was just testing out the next version of my XiaoCiDian iPhone application and found that other keys offer other options when you hold them down.  Mostly vowels and and a few punctuation key. Here are some screenshots:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Frequently Asked Question about Chinese on the iPhone</title>
				<link>https://robrohan.com/2008/07/20/frequently-asked-question-about-chinese-on-the-iphone.html</link>
				<pubDate>Sun, 20 Jul 2008 17:23:29 +0000</pubDate>
				<guid>https://robrohan.com/2008/07/20/frequently-asked-question-about-chinese-on-the-iphone.html</guid>
				<description>&lt;p&gt;I&amp;rsquo;ve been lucky enough to get quite a few emails asking about how Chinese input works on the iPhone 2.0 software.  I have received several emails from people with jailbroken 1.4 phones that want to upgrade to 2.0, but want to know how Chinese input works before going to the trouble of upgrading.&lt;/p&gt;&#xA;&lt;p&gt;Most of the emails were referring to the post with the movie showing Chinese input on the iPhone, but some parts in the movie were a bit unclear. I responded to a few people directly, but this post will likely get more google search hits so it might be a bit more helpful.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Mac OS X Regex Widget Update 1.7</title>
				<link>https://robrohan.com/2008/06/25/mac-os-x-regex-widget-update-17.html</link>
				<pubDate>Wed, 25 Jun 2008 00:11:54 +0000</pubDate>
				<guid>https://robrohan.com/2008/06/25/mac-os-x-regex-widget-update-17.html</guid>
				<description>&lt;p&gt;(RegexWidget is a Mac OS X dashboard regular expression testing widget)&lt;/p&gt;&#xA;&lt;p&gt;Another small update to the Regex Widget.  A bug reported by Niels Castle led to a new feature and an, arguable, bug fix.&lt;/p&gt;&#xA;&lt;p&gt;The new feature is Multiline support. When you tick the multiline check box it allows the &amp;ldquo;beginning of line&amp;rdquo; (^) and &amp;ldquo;end of line&amp;rdquo; ($) parts of a regex to work.  See the screen shot for an example:&lt;/p&gt;</description>
			</item>
			<item>
				<title>XBox Controller as a SNES Controller</title>
				<link>https://robrohan.com/2008/04/04/xbox-controller-as-a-snes-controller.html</link>
				<pubDate>Fri, 04 Apr 2008 15:32:57 +0000</pubDate>
				<guid>https://robrohan.com/2008/04/04/xbox-controller-as-a-snes-controller.html</guid>
				<description>&lt;p&gt;If you are into playing emulated Super Nintendo games on your Mac OS X laptop, but find the keyboard awkward to use, and have a spare Xbox controller, and a spare USB cord laying around &amp;hellip; have I got a deal for you.&lt;/p&gt;&#xA;&lt;p&gt;(I should preface this with using game emulators and and game ROMS is, sadly, of questionable legality)&lt;/p&gt;&#xA;&lt;p&gt;Short and sweet: it seems XBox controllers (non 360) use USB to do their magic, so modifying an XBox controller to use with your computer is very simple. Just cut the XBox controller and the USB cords then wire them together (leaving out the yellow wire). The inside wire colors will match up so it shouldn&amp;rsquo;t be hard, but here is &lt;a href=&#34;http://www.metacafe.com/watch/851500/xbox_controller_hack/&#34;&gt;a movie showing how it&amp;rsquo;s done&lt;/a&gt; (ignore the driver part unless you are on windows).&lt;/p&gt;</description>
			</item>
			<item>
				<title>Printing Labels on Mac</title>
				<link>https://robrohan.com/2008/01/25/printing-labels-on-mac.html</link>
				<pubDate>Fri, 25 Jan 2008 19:35:33 +0000</pubDate>
				<guid>https://robrohan.com/2008/01/25/printing-labels-on-mac.html</guid>
				<description>&lt;p&gt;How to print address labels on Mac from Address book, and any other kind of consumer Avery stock.&lt;/p&gt;&#xA;&lt;iframe width=&#34;420&#34; height=&#34;315&#34; src=&#34;//www.youtube.com/embed/pMRxFDSxpOw&#34; frameborder=&#34;0&#34; allowfullscreen&gt;&lt;/iframe&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://www.youtube.com/watch?v=pMRxFDSxpOw&#34;&gt;View on YouTube&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Chinese Learner Social Network, Pinyin Sound Board, and Flex</title>
				<link>https://robrohan.com/2008/01/22/chinese-learner-social-network-pinyin-sound-board-and-flex.html</link>
				<pubDate>Tue, 22 Jan 2008 19:08:16 +0000</pubDate>
				<guid>https://robrohan.com/2008/01/22/chinese-learner-social-network-pinyin-sound-board-and-flex.html</guid>
				<description>&lt;p&gt;My Chinese teacher&amp;rsquo;s semester is coming up, and a request he often gets in class is to have a way for people to practice correctly. It&amp;rsquo;s difficult to know if you are pronouncing something correctly, and if you practice the wrong way too much it tends to be hard to undo.&lt;/p&gt;&#xA;&lt;p&gt;Depending on how you go about learning Chinese (Mandarin), you&amp;rsquo;ll probably start with how to pronounce pīnyīn (the romanization of Mandarin. For example, 谢谢 == xièxie). However, the pronunciation of letters in pīnyīn do not match English, and it&amp;rsquo;s easy to forget how the components sound.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Lookup Chinese Characters by Character</title>
				<link>https://robrohan.com/2007/12/14/lookup-chinese-characters-by-character.html</link>
				<pubDate>Fri, 14 Dec 2007 20:25:27 +0000</pubDate>
				<guid>https://robrohan.com/2007/12/14/lookup-chinese-characters-by-character.html</guid>
				<description>&lt;p&gt;One hard part about learning Chinese is looking up new characters in a dictionary.&lt;/p&gt;&#xA;&lt;p&gt;If you find the character online, it&amp;rsquo;s not that hard. You just copy and paste it into a dictionary like &lt;a href=&#34;http://dict.cn&#34;&gt;dict.cn&lt;/a&gt;, and you have your answer.&lt;/p&gt;&#xA;&lt;p&gt;If you come across a new character in printed form, however, it&amp;rsquo;s not quite as easy. You have to know (or be able to deuced) the main radical, stroke, and count and then look it up in a paper dictionary (which is often a three step process). It is very time consuming for a noob such as myself.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Testing Browser Resolutions in Safari (Scriptlets)</title>
				<link>https://robrohan.com/2007/12/04/testing-browser-resolutions-in-safari-scriptlets.html</link>
				<pubDate>Tue, 04 Dec 2007 18:45:56 +0000</pubDate>
				<guid>https://robrohan.com/2007/12/04/testing-browser-resolutions-in-safari-scriptlets.html</guid>
				<description>&lt;p&gt;I needed to test a couple different sites in different resolutions, and I couldn&amp;rsquo;t find a simple way to get Safari to resize to &amp;ldquo;standard&amp;rdquo; formats (1024x768, 800x600, etc). I found &lt;a href=&#34;http://www.macosxhints.com/article.php?story=20030516010137152&#34;&gt;this post&lt;/a&gt; on MacOSX Hints about how to use scriptlets to make Safari go full screen, and decided to expanded upon it to solve my problem. Here are the scriptlets:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;javascript:window.resizeTo(640,480);&#34;&gt;640x480&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;javascript:window.resizeTo(800,600);&#34;&gt;800x600&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;javascript:window.resizeTo(1024,768);&#34;&gt;1024x768&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;javascript:window.resizeTo(screen.width,screen.height);window.moveTo(0,0);&#34;&gt;Full Screen&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;javascript:var%20w=prompt(&#39;Browser%20width:&#39;);var%20h=prompt(&#39;Browser%20height:&#39;);%20if(parseInt(w)%20&amp;amp;&amp;amp;%20parseInt(h))%7Bwindow.resizeTo(w,h)%7D%20else%20%7Balert(&#39;Width%20and/or%20height%20seems%20to%20be%20invalid&#39;);%7D;&#34;&gt;Custom&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;To install them just drag them to the Safari bookmark bar (as seen in the shot below).&lt;/p&gt;</description>
			</item>
			<item>
				<title>Trying to Video Chat between Mac and Windows?</title>
				<link>https://robrohan.com/2007/11/30/trying-to-video-chat-between-mac-and-windows.html</link>
				<pubDate>Fri, 30 Nov 2007 19:32:35 +0000</pubDate>
				<guid>https://robrohan.com/2007/11/30/trying-to-video-chat-between-mac-and-windows.html</guid>
				<description>&lt;p&gt;Amazingly, everyone in my family now uses Macintoshes. Doing video chats with them is obviously simple - just fire up iChat and off we go. In general, I only video chat with my family.&lt;/p&gt;&#xA;&lt;p&gt;One of my Chinese teachers, however, had the idea that we should try video chatting in Chinese to help me get some practice.&lt;/p&gt;&#xA;&lt;p&gt;(For the curious, I am having trouble understanding Chinese. I can hear the sounds, I know I know the sounds, but they are not forming any meaning in my brain. With single words (with context) I am ok. I also have problems speaking full sentences - I can read and write pretty well, but that is only because I can rearrange word orders and take time to form what I want to say - something you can&amp;rsquo;t do when speaking)&lt;/p&gt;</description>
			</item>
			<item>
				<title>Server Backup with Amazon S3 (Howto)</title>
				<link>https://robrohan.com/2007/11/03/server-backup-with-amazon-s3-howto.html</link>
				<pubDate>Sat, 03 Nov 2007 18:30:35 +0000</pubDate>
				<guid>https://robrohan.com/2007/11/03/server-backup-with-amazon-s3-howto.html</guid>
				<description>&lt;p&gt;I&amp;rsquo;ve been interested in using Amazon S3 (Simple Storage Service) for server backups, but I couldn&amp;rsquo;t find a simple, straight forward howto. This is a walk though on one way to setup a Unix server to automatically backup data to Amazon S3.&lt;/p&gt;&#xA;&lt;p&gt;I guess I should start out with what Amazon S3 is I suppose&amp;hellip; It&amp;rsquo;s a service that you can use to store reams of data, offsite, online, accessible anytime for a decent price. As of this writing the costs are:&lt;/p&gt;</description>
			</item>
			<item>
				<title>tudou.com : Chinese YouTube</title>
				<link>https://robrohan.com/2007/10/21/tudoucom-chinese-youtube.html</link>
				<pubDate>Sun, 21 Oct 2007 18:33:24 +0000</pubDate>
				<guid>https://robrohan.com/2007/10/21/tudoucom-chinese-youtube.html</guid>
				<description>&lt;p&gt;If you are having trouble finding Chinese content to practice listening with, I found a neat site called &lt;a href=&#34;http://www.tudou.com/&#34;&gt;tudou.com&lt;/a&gt; (土豆 - tǔdòu - which, as far as I can tell, means &amp;ldquo;potato&amp;rdquo;).&lt;/p&gt;&#xA;&lt;p&gt;It&amp;rsquo;s basically a Chinese version of youtube, but it looks a lot nicer. When you watch a movie, the layout simulates a theater. I find that a nice touch. And just setting the background to black instead of &amp;ldquo;youtube white&amp;rdquo; makes quite a bit of difference in the experience.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Typing Pinyin on Windows Part ]|[ - Capital Letter Tones</title>
				<link>https://robrohan.com/2007/10/19/typing-pinyin-on-windows-part-capital-letter-tones.html</link>
				<pubDate>Fri, 19 Oct 2007 19:08:59 +0000</pubDate>
				<guid>https://robrohan.com/2007/10/19/typing-pinyin-on-windows-part-capital-letter-tones.html</guid>
				<description>&lt;p&gt;One of my Chinese teachers is using &lt;a href=&#34;https://robrohan.com/2007/02/18/typing-pinyin-on-windows-part-a-better-way/&#34;&gt;my windows pinyin keyboard layout&lt;/a&gt;, and stumbled upon a problem. It seem that sometimes capital letters need tone marks too. For example, country names. Éguo (俄国, Russia) for example. It is rare in practice, but comes up quite often for teachers doing geography lessons.&lt;/p&gt;&#xA;&lt;p&gt;I did a quick update to the layout to allow tone marks on capital letters. I&amp;rsquo;ve also heard reports that ctrl+alt+u doesn&amp;rsquo;t always create a u. I added ctrl+alt+v in addition to ctrl+alt+u to hopefully solve that problem. Both will now create a u. (I have only heard of 2 people having that issue)&lt;/p&gt;</description>
			</item>
			<item>
				<title>Typing Simplified Chinese on Mac</title>
				<link>https://robrohan.com/2007/10/18/typing-simplified-chinese-on-mac.html</link>
				<pubDate>Thu, 18 Oct 2007 22:22:14 +0000</pubDate>
				<guid>https://robrohan.com/2007/10/18/typing-simplified-chinese-on-mac.html</guid>
				<description>&lt;p&gt;(without installing any 3rd party software)&lt;/p&gt;&#xA;&lt;iframe width=&#34;420&#34; height=&#34;315&#34; src=&#34;//www.youtube.com/embed/iAJD4TvzDlA&#34; frameborder=&#34;0&#34; allowfullscreen&gt;&lt;/iframe&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://www.youtube.com/watch?v=iAJD4TvzDlA&#34;&gt;Chinese on Mac&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Mac OS X WebArchive Extractor Utility</title>
				<link>https://robrohan.com/2007/09/18/mac-os-x-webarchive-extractor-utility.html</link>
				<pubDate>Tue, 18 Sep 2007 03:50:51 +0000</pubDate>
				<guid>https://robrohan.com/2007/09/18/mac-os-x-webarchive-extractor-utility.html</guid>
				<description>&lt;p&gt;The other day I wanted to use TextEdit to make simple web pages for documentation purposes. I actually didn&amp;rsquo;t really care what application I used, just one that was more word processor-ish than a coding tool. TextEdit did most of what I needed by saving to HTML, but the kicker was I wanted to have images in the document.&lt;/p&gt;&#xA;&lt;p&gt;TextEdit can save HTML with images in a file format called WebArchive, but in order to put the files on a web server for the world to view, the files need to be extracted from that format into a normal directory structure.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Three Column Layout in Mac Mail</title>
				<link>https://robrohan.com/2007/06/19/three-column-layout-in-mac-mail.html</link>
				<pubDate>Tue, 19 Jun 2007 14:20:27 +0000</pubDate>
				<guid>https://robrohan.com/2007/06/19/three-column-layout-in-mac-mail.html</guid>
				<description>&lt;p&gt;If you prefer the Outlook-ish 3 pane layout for mail, you can install &lt;a href=&#34;http://harnly.net/software/letterbox/&#34;&gt;this mail plugin&lt;/a&gt; to get the three column layout. I&amp;rsquo;ve never used a 3 column layout before, but some of my friends suggested I give it a shot.&lt;/p&gt;&#xA;&lt;p&gt;This is what mail looks like after you install the plugin:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://robrohan.com/wp-content/uploads/2007/06/mail-screen.jpg&#34; alt=&#34;Mail Screen&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;If you have a smaller screen, the layout might not work for you. On my 15&amp;quot; PowerBook, however, it works fine.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Enable Debug Mode on Safari (Windows) &#43; Error</title>
				<link>https://robrohan.com/2007/06/11/enable-debug-mode-on-safari-windows-error.html</link>
				<pubDate>Mon, 11 Jun 2007 23:02:16 +0000</pubDate>
				<guid>https://robrohan.com/2007/06/11/enable-debug-mode-on-safari-windows-error.html</guid>
				<description>&lt;p&gt;If you&amp;rsquo;ve downloaded the &lt;a href=&#34;http://apple.com/safari&#34;&gt;Safari build on Windows&lt;/a&gt;, and you want access to the very helpful &lt;del&gt;debug&lt;/del&gt; Develop menu (the javascript console, DOM viewer, etc), Do the following:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Open %APPDATA%\Apple Computer\Safari\Preferences.plist&#xA;(Or open C:\Program Files\Safari\Safari.resources\Defaults.plist)&lt;/li&gt;&#xA;&lt;li&gt;Add the key / value:&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-xml&#34; data-lang=&#34;xml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;&amp;lt;key&amp;gt;&lt;/span&gt;IncludeDebugMenu&lt;span style=&#34;color:#0550ae&#34;&gt;&amp;lt;/key&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;&amp;lt;true/&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;...&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;&lt;p&gt;for reference on Mac it&amp;rsquo;s:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ defaults write com.apple.Safari IncludeDebugMenu &lt;span style=&#34;color:#0550ae&#34;&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;&lt;p&gt;From the terminal.&lt;/p&gt;&#xA;&lt;p&gt;In both cases you&amp;rsquo;ll have to restart Safari if you already have it open.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Create Chinese Keyboard</title>
				<link>https://robrohan.com/2007/06/09/create-chinese-keyboard.html</link>
				<pubDate>Sat, 09 Jun 2007 15:02:59 +0000</pubDate>
				<guid>https://robrohan.com/2007/06/09/create-chinese-keyboard.html</guid>
				<description>&lt;p&gt;I found some &lt;a href=&#34;http://computers.search.ebay.com/chinese-stickers-keyboard_Computers-Networking_W0QQ_trksidZm37QQfromZR40QQsacatZ58058&#34;&gt;stickers on ebay&lt;/a&gt; that let you turn a normal keyboard into a Chinese keyboard. My intention was to learn the Wubi layout, but as it turns out these stickers are for a traditional character input. While they make my laptop look totally pimped out, I don&amp;rsquo;t think they are useful to someone learning Mandarin / simplified.&lt;/p&gt;&#xA;&lt;p&gt;My teacher says the pīnyīn system is usually the best input system for English beginners anyway.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Setting Mac Mail to UTF-8</title>
				<link>https://robrohan.com/2007/04/27/setting-mac-mail-to-utf-8.html</link>
				<pubDate>Fri, 27 Apr 2007 01:22:50 +0000</pubDate>
				<guid>https://robrohan.com/2007/04/27/setting-mac-mail-to-utf-8.html</guid>
				<description>&lt;p&gt;Unfortunately, what follows is for outgoing messages only. I was incorrect. I haven&amp;rsquo;t found a way to properly change the reading setting from &lt;em&gt;Automatic&lt;/em&gt; to &lt;em&gt;UTF-8&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;I don&amp;rsquo;t think this is a bug per se, but it is a bit unintuitive.&lt;/p&gt;&#xA;&lt;p&gt;For practice I&amp;rsquo;ve started reading / writing emails in Chinese. The text encoding on Mac Mail by default is set to &amp;ldquo;Automatic&amp;rdquo;, and it never seems to guess UTF-8 right. At least not the emails I am getting. They come through garbled. However, when I choose Message &amp;gt; Text Encoding &amp;gt; Unicode (UTF-8) the emails will render fine.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Typing Pinyin on Windows Part ][ (a better way)</title>
				<link>https://robrohan.com/2007/02/18/typing-pinyin-on-windows-part-a-better-way.html</link>
				<pubDate>Sun, 18 Feb 2007 02:38:46 +0000</pubDate>
				<guid>https://robrohan.com/2007/02/18/typing-pinyin-on-windows-part-a-better-way.html</guid>
				<description>&lt;p&gt;There was some room for improvement with the last posting I did on how to setup Windows to type pīnyīn. There were four problems with the last keyboard layout installer I found (three if you are in the UK).&lt;/p&gt;&#xA;&lt;p&gt;First, the original keyboard layout was UK based. If you were using a US keyboard, when you switched to the pīnyīn layout you gained the pīnyīn tone marks, but some keys switched and you lost other keys (for example you would lose the dollar sign and gain the British pound sign).&lt;/p&gt;</description>
			</item>
			<item>
				<title>Speech Recognition Coding</title>
				<link>https://robrohan.com/2007/02/14/speech-recognition-coding.html</link>
				<pubDate>Wed, 14 Feb 2007 02:42:27 +0000</pubDate>
				<guid>https://robrohan.com/2007/02/14/speech-recognition-coding.html</guid>
				<description>&lt;p&gt;Well, if you think you&amp;rsquo;re going to be able to use speech recognition to code anytime soon, this video will set you straight.&lt;/p&gt;&#xA;&lt;p&gt;This guy tries to write a simple perl script using Windows Vista&amp;rsquo;s new speech recognition. The fact the video is 10 minutes long pretty much sums it up, but you have to check it out. The frustration level and the things it actually types is a crack up. I have a headache from laughing so hard.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Blogging From Within Eclipse - metaWeblog Plugin</title>
				<link>https://robrohan.com/2007/02/07/blogging-from-within-eclipse-metaweblog-plugin.html</link>
				<pubDate>Wed, 07 Feb 2007 02:58:17 +0000</pubDate>
				<guid>https://robrohan.com/2007/02/07/blogging-from-within-eclipse-metaweblog-plugin.html</guid>
				<description>&lt;p&gt;I&amp;rsquo;ve been meaning to write this Eclipse plugin for a while, and yesterday I just pulled an all nighter to get it out. You probably know how it is; sometimes you just have to finish that nagging project. I&amp;rsquo;ve been wanting to write this post and put it out all day too, but I had to wait till I was done with work.&lt;/p&gt;&#xA;&lt;p&gt;Finally&amp;hellip; so here it is. It&amp;rsquo;s an Eclipse plugin that lets you post to metaWeblog enabled blogs (I &lt;del&gt;only&lt;/del&gt; know for sure it works with WordPress &lt;del&gt;, and while posting does work with BlogCFC, entry listing does not&lt;/del&gt; and BlogCFC). It is probably only going to be used by coders as there is no wysiwyg - it can use the Afae editor to do HTML syntax highlighting though (or any HTML editor you assign to edit the *.blog file type).&lt;/p&gt;</description>
			</item>
			<item>
				<title>Typing Proper Pinyin on Mac</title>
				<link>https://robrohan.com/2007/02/03/typing-proper-pinyin-on-mac.html</link>
				<pubDate>Sat, 03 Feb 2007 04:34:24 +0000</pubDate>
				<guid>https://robrohan.com/2007/02/03/typing-proper-pinyin-on-mac.html</guid>
				<description>&lt;p&gt;I had my first Chinese class on Friday, and it was fun. It was hard, but fun.&lt;/p&gt;&#xA;&lt;p&gt;The class is being taught by Pan lǎoshī (潘老师), and he stresses the use of pinyin and hitting the proper tones (as I am sure most teachers do). The tones are key to speaking Chinese well, he says.&lt;/p&gt;&#xA;&lt;p&gt;So I needed to find a way to type pinyin with the correct tone marks (so I can print stuff out, and to get used to placing them properly). &lt;a href=&#34;http://Openvanilla.org&#34;&gt;Openvanilla.org&lt;/a&gt; (which is fantastic at typing pinyin to get the simplified characters) doesn&amp;rsquo;t support typing accent marks on romanized characters, but after a bit of digging I found that Mac OS X does it out of the box (why am I not surprised).&lt;/p&gt;</description>
			</item>
			<item>
				<title>Mac Chinese Keyboard?</title>
				<link>https://robrohan.com/2007/01/19/mac-chinese-keyboard.html</link>
				<pubDate>Fri, 19 Jan 2007 16:42:00 +0000</pubDate>
				<guid>https://robrohan.com/2007/01/19/mac-chinese-keyboard.html</guid>
				<description>&lt;p&gt;I started taking a class to learn to speak and read / write Chinese. One cool thing about Mac is you can type Chinese without a Chinese keyboard (System Preferences -&amp;gt; International -&amp;gt; Input Menu if you are curious).&lt;/p&gt;&#xA;&lt;p&gt;The thing about trying to type Chinese with an American style keyboard is you have to use like 3 or 4 keystrokes to do one character. Plus, being a noob, I am not totally sure how to find the right character (I think they are based on radical but I am not sure).&lt;/p&gt;</description>
			</item>
			<item>
				<title>Doing Tabs In Emacs</title>
				<link>https://robrohan.com/2006/10/25/doing-tabs-in-emacs.html</link>
				<pubDate>Wed, 25 Oct 2006 19:14:00 +0000</pubDate>
				<guid>https://robrohan.com/2006/10/25/doing-tabs-in-emacs.html</guid>
				<description>&lt;p&gt;As you may know I like using the emacs editor (I use vi too - so please no wars). In general I love the key bindings and the elegant power built into the editor. One of the things that bothers me about it though is it tries to help too much when I hit tab. When I press the tab key, I want a tab. That&amp;rsquo;s why it&amp;rsquo;s the tab key.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Howto Setup Python For Web Development on Ubuntu</title>
				<link>https://robrohan.com/2006/10/01/howto-setup-python-for-web-development-on-ubuntu.html</link>
				<pubDate>Sun, 01 Oct 2006 19:26:00 +0000</pubDate>
				<guid>https://robrohan.com/2006/10/01/howto-setup-python-for-web-development-on-ubuntu.html</guid>
				<description>&lt;p&gt;I&amp;rsquo;ve been checking out python on and off for a while. It&amp;rsquo;s one of those languages I&amp;rsquo;ve been meaning to learn. I hear it&amp;rsquo;s great for desktop development as well as web development.&lt;/p&gt;&#xA;&lt;p&gt;To setup Apache 2 on Ubuntu to run python scripts like PHP, CF, ASP, et al, you can do the following (this information came from a couple places mostly &lt;a href=&#34;http://www.ubuntuforums.org/showthread.php?t=91101&#34;&gt;here&lt;/a&gt; and &lt;a href=&#34;http://www.xminc.com/linux/mod_python1.html&#34;&gt;here&lt;/a&gt; it&amp;rsquo;s assumed you are already running apache2):&lt;/p&gt;</description>
			</item>
			<item>
				<title>Simple MVC ASP Framework</title>
				<link>https://robrohan.com/2006/09/19/simple-mvc-asp-framework.html</link>
				<pubDate>Tue, 19 Sep 2006 18:26:00 +0000</pubDate>
				<guid>https://robrohan.com/2006/09/19/simple-mvc-asp-framework.html</guid>
				<description>&lt;p&gt;One of the things I do for me treasure is create custom web applications for SMBs, and often the client already has some infrastructure in place. Often times PHP is available, but sometimes they just have a basic hosting account on a windows box somewhere so the only language available is ASP. I&amp;rsquo;ve actually had a few gigs lately that needed somewhat complex sites, and they needed to be done is ASP.&lt;/p&gt;</description>
			</item>
			<item>
				<title>9ne 0.82 Beta Released</title>
				<link>https://robrohan.com/2006/09/16/9ne-082-beta-released.html</link>
				<pubDate>Sat, 16 Sep 2006 05:57:00 +0000</pubDate>
				<guid>https://robrohan.com/2006/09/16/9ne-082-beta-released.html</guid>
				<description>&lt;p&gt;9ne is an online, syntax highlighting, text editor.&lt;/p&gt;&#xA;&lt;p&gt;I just put the latest beta up. The main changes in this version are:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Firefox on Windows bug fixes and stability improvements&lt;/li&gt;&#xA;&lt;li&gt;The ability to execute javascript code within the editor&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;(Or you can read my poorly spelled&#xA;&lt;a href=&#34;https://github.com/robrohan/9ne&#34;&gt;release notes&lt;/a&gt;. Which is actually a change log and&#xA;requires a 9ne enabled browser.)&lt;/p&gt;&#xA;&lt;p&gt;The first one is pretty obvious. The second one is the cooler part to me. What it means is that you can just type some javascript in the editor and have it run. Say you just type &amp;ldquo;alert(&amp;lsquo;hi&amp;rsquo;)&amp;rdquo; on any line in the editor. You can then do CTRL+X L on Mac or CTRL+ALT+SHIFT+R on Windows / Linux and it&amp;rsquo;ll evaluate that javascript and show an alert &amp;ldquo;hi&amp;rdquo;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Javascript: String width in pixels</title>
				<link>https://robrohan.com/2006/01/20/javascript-string-width-in-pixels.html</link>
				<pubDate>Fri, 20 Jan 2006 11:11:00 +0000</pubDate>
				<guid>https://robrohan.com/2006/01/20/javascript-string-width-in-pixels.html</guid>
				<description>&lt;p&gt;One of the hardest things about doing web development - using the browser as your GUI - is that you have to get used to, and accept, &amp;ldquo;close enough&amp;rdquo; (actually, getting your clients used to that idea is probably harder). &amp;ldquo;Close enough&amp;rdquo; is in direct conflict with many things in computer science, so it&amp;rsquo;s a difficult pill to swallow.&lt;/p&gt;&#xA;&lt;p&gt;Keeping that in mind&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;I was chatting with one of my friends, and they asked if there was anyway to get the length of a string in pixels. He needed it mostly for form layouts - to align buttons with labels. The project I am working on I have a similar issue, but not related to buttons (more of a dynamic truncation &amp;ldquo;&amp;hellip;&amp;rdquo; kind of thing).&lt;/p&gt;</description>
			</item>
			<item>
				<title>PIC Programming on OS X</title>
				<link>https://robrohan.com/2005/11/20/pic-programming-on-os-x.html</link>
				<pubDate>Sun, 20 Nov 2005 13:25:00 +0000</pubDate>
				<guid>https://robrohan.com/2005/11/20/pic-programming-on-os-x.html</guid>
				<description>&lt;p&gt;Finally! I&amp;rsquo;ve been trying to setup some kind - any kind - of PIC programming&#xA;environment on my OS X box. Most of them come with Windows applications and&#xA;there are a few Linux tools out there, but I wanted an OS X environment.&lt;/p&gt;&#xA;&lt;p&gt;I didn&amp;rsquo;t get a pure one however. I did have to use Apple&amp;rsquo;s X11 and most of the&#xA;tools are Linux based, but I can now compile and write code to a chip. Since I&#xA;am just starting out I am not too picky on what kind of chips I can write to, I&#xA;just needed something to get me started. So if you are in the same boat here are&#xA;some somewhat detailed steps to getting setup.&lt;/p&gt;</description>
			</item>
			<item>
				<title>About</title>
				<link>https://robrohan.com/1/01/01/about.html</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://robrohan.com/1/01/01/about.html</guid>
				<description>&lt;h2 id=&#34;λxx&#34;&gt;λx.x&lt;/h2&gt;&#xA;&lt;p&gt;Software Engineer interested in graphics, 3d game engines, hardware hacking,&#xA;and all things +/-5v&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;WebXR Engine:  &lt;a href=&#34;https://meshengine.xyz/&#34;&gt;https://meshengine.xyz/&lt;/a&gt;&#xA;YouTube:       &lt;a href=&#34;https://www.youtube.com/robrohan&#34;&gt;https://www.youtube.com/robrohan&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;HTML Site:  &lt;a href=&#34;https://robrohan.com&#34;&gt;https://robrohan.com&lt;/a&gt;&#xA;LinkedIn:   &lt;a href=&#34;https://www.linkedin.com/in/robrohan&#34;&gt;https://www.linkedin.com/in/robrohan&lt;/a&gt;&#xA;GitLab:     &lt;a href=&#34;https://gitlab.com/robrohan&#34;&gt;https://gitlab.com/robrohan&lt;/a&gt;&#xA;GitHub:     &lt;a href=&#34;https://github.com/robrohan&#34;&gt;https://github.com/robrohan&lt;/a&gt;&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
