<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Resin.io Archives - ClickedyClick</title>
	<atom:link href="https://gergely.imreh.net/blog/tag/resin-io/feed/" rel="self" type="application/rss+xml" />
	<link>https://gergely.imreh.net/blog/tag/resin-io/</link>
	<description>Life in real, complex and digital.</description>
	<lastBuildDate>Tue, 18 Aug 2015 14:23:28 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>A window to IRC with Edison and Resin</title>
		<link>https://gergely.imreh.net/blog/2015/08/a-window-to-irc-with-edison-and-resin/</link>
					<comments>https://gergely.imreh.net/blog/2015/08/a-window-to-irc-with-edison-and-resin/#comments</comments>
		
		<dc:creator><![CDATA[Gergely Imreh]]></dc:creator>
		<pubDate>Sat, 01 Aug 2015 15:26:07 +0000</pubDate>
				<category><![CDATA[Maker]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Intel Edison]]></category>
		<category><![CDATA[IRC]]></category>
		<category><![CDATA[Resin.io]]></category>
		<guid isPermaLink="false">https://gergely.imreh.net/blog/?p=1995</guid>

					<description><![CDATA[<p>Displaying the chatter on IRC for those who are not online themselves. A cloud IoT project.</p>
<p>The post <a href="https://gergely.imreh.net/blog/2015/08/a-window-to-irc-with-edison-and-resin/">A window to IRC with Edison and Resin</a> appeared first on <a href="https://gergely.imreh.net/blog">ClickedyClick</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>After trying <a href="https://resin.io">Resin.io</a> briefly with <a href="https://gergely.imreh.net/blog/2015/05/resin_io_somastream/">a SomaFM Streaming Application</a>, I was eager to experiment more with their cloud deployment platform. Maybe some new hardware, maybe some more complex project&#8230; In the end, it became a little bit of both: here&#8217;s MrEdison, and portable IRC chat display based on Intel Edison.</p>
<figure id="attachment_1997" aria-describedby="caption-attachment-1997" style="width: 550px" class="wp-caption aligncenter"><a href="https://gergely.imreh.net/blog/wp-content/uploads/2015/08/2015-08-01-21.34.28.jpg"><img fetchpriority="high" decoding="async" class="size-large wp-image-1997" src="https://gergely.imreh.net/blog/wp-content/uploads/2015/08/2015-08-01-21.34.28-1024x576.jpg" alt="Checking out the chatter on the #ubuntu channel" width="550" height="309" srcset="https://gergely.imreh.net/blog/wp-content/uploads/2015/08/2015-08-01-21.34.28-1024x576.jpg 1024w, https://gergely.imreh.net/blog/wp-content/uploads/2015/08/2015-08-01-21.34.28-500x281.jpg 500w, https://gergely.imreh.net/blog/wp-content/uploads/2015/08/2015-08-01-21.34.28-768x432.jpg 768w" sizes="(max-width: 550px) 100vw, 550px" /></a><figcaption id="caption-attachment-1997" class="wp-caption-text">Checking out the chatter on the #ubuntu channel</figcaption></figure>
<p>The idea came from the fact that we have an IRC channel for the <a href="https://taipeihack.org">Taipei Hackerspace</a>, <a href="https://taipeihack.org/#irc">#taipeihack on Freenode</a>, just it is not very well (or rather: at all) frequented by people. I wanted to break that channel out of the computer, and put a physical window to it in the &#8216;space, so people can see what&#8217;s going on, and hopefully want to get on too!</p>
<p><span id="more-1995"></span></p>
<p>Here is it in action:</p>
<p><iframe title="MrEdison: IRC channel monitoring demo" width="580" height="326" src="https://www.youtube.com/embed/8BpqkYePXUw?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
<h2>Hardware</h2>
<p>For this I&#8217;ve used parts that were pretty much lying around in the Hackerspace:</p>
<ul>
<li>an <a href="https://www-ssl.intel.com/content/www/us/en/do-it-yourself/edison.html">Intel Edison</a>, then added&#8230;</li>
<li>an Android Breakout Board,</li>
<li>a <a href="http://www.seeedstudio.com/wiki/Grove_-_Base_Shield_V1.3">Grove Base Shield</a></li>
<li>a <a href="http://www.seeedstudio.com/wiki/Grove_-_LCD_RGB_Backlight">Grove RGB-LCD</a> (that is controlled over the I2C lines)</li>
<li>a <a href="http://www.seeedstudio.com/wiki/Grove_-_Red_LED">Grove LED</a> (on one of the digital pins)</li>
</ul>
<figure id="attachment_2006" aria-describedby="caption-attachment-2006" style="width: 500px" class="wp-caption aligncenter"><a href="https://gergely.imreh.net/blog/wp-content/uploads/2015/08/MrEdisonSchematic.png"><img decoding="async" class="wp-image-2006 size-medium" src="https://gergely.imreh.net/blog/wp-content/uploads/2015/08/MrEdisonSchematic-500x444.png" alt="MrEdison Schematic" width="500" height="444" srcset="https://gergely.imreh.net/blog/wp-content/uploads/2015/08/MrEdisonSchematic-500x444.png 500w, https://gergely.imreh.net/blog/wp-content/uploads/2015/08/MrEdisonSchematic.png 593w" sizes="(max-width: 500px) 100vw, 500px" /></a><figcaption id="caption-attachment-2006" class="wp-caption-text">MrEdison Schematic</figcaption></figure>
<p>I&#8217;ve started a new project in the Resin.io interface based on Edison. Downloaded their image (and <a href="http://docs.resin.io/#/pages/installing/gettingStarted-Edison.md">checked out getting started guide</a>), flashed it onto the board through the Android breakout board, and it was ready to get some code on (well, kinda).</p>
<h2>Software</h2>
<p>In the docs I&#8217;ve found that there&#8217;s <a href="http://docs.resin.io/#/pages/configuration/resin-base-images.md#i386-intel-edison">a specific docker starter container</a> made by the Resin team for Python code, and that looked like a good point to start off from.</p>
<p>First I was thinking using the default <a href="https://github.com/intel-iot-devkit/mraa">mraa library</a> that Intel provides for the low level I/O, but fortunately also found <a href="https://github.com/intel-iot-devkit/upm">UPM</a>, a higher level library that already supports a lot of sensors and I/O &#8211; including the RGB-LCD! That saves a lot of time indeed, and has both Python and Node.js API for quicker code (besides the base C++).</p>
<p>Mraa is already installed on the base image, but UPM had to be added manually to the Dockerfile.</p>
<p>The base function of the code is crystallized out as:</p>
<ul>
<li>connect to a specified IRC server and join a specific channel</li>
<li>listen to the messages there</li>
<li>on the LCD display the messages as:
<ul>
<li>first line shows the user that posted</li>
<li>second line is the message posted, if longer than the width of the LCD then scroll it</li>
<li>to quickly distinguish between people, assign different colours to the different users</li>
</ul>
</li>
<li>blink the LED on new messages</li>
<li>keep doing this&#8230;</li>
</ul>
<p>Straightforward enough?</p>
<figure id="attachment_1996" aria-describedby="caption-attachment-1996" style="width: 360px" class="wp-caption aligncenter"><a href="https://gergely.imreh.net/blog/wp-content/uploads/2015/08/MrEdisonAnimation.gif"><img loading="lazy" decoding="async" class="size-full wp-image-1996" src="https://gergely.imreh.net/blog/wp-content/uploads/2015/08/MrEdisonAnimation.gif" alt="MrEdison at work" width="360" height="202" /></a><figcaption id="caption-attachment-1996" class="wp-caption-text">MrEdison at work</figcaption></figure>
<p>I&#8217;ve used the <a href="https://pypi.python.org/pypi/irc">irc</a> library in Python to create a simple IRC bot that listens to the channel and does the required I/O. Needed some code digging (because it&#8217;s not too &#8212; khm &#8212; well documented), for example to enable SSL connection for the bot part of the code (for using <a href="https://freenode.net/irc_servers.shtml">port 7070 on Freenode</a>). In the end indeed &#8220;use the source, Luke!&#8221;, as they write and it worked out.</p>
<p>The I/O part needed to be parallelized too, there used some part of the multiprocessing library that I haven&#8217;t used before (<a href="https://docs.python.org/2/library/multiprocessing.html#the-process-class">Process</a>), and some data sharing: the display can run and scroll the text, while the bot can notify the display&#8217;s process when it needs to show something new. Same for notifying the LED, when it needs to blink.</p>
<p>For doing different colours for the different usernames I use hashing: run the username through <a href="https://en.wikipedia.org/wiki/SHA-2">SHA256</a>, and use the 1st, 2nd, 3rd bytes of the resulting has as Red/Green/Blue for the backlight colour.</p>
<p>Here&#8217;s the code in Python (2.x):</p>
<pre class="lang:python decode:true  ">import hashlib
username = "MrEdison"
h = hashlib.sha256()
h.update(username)
ColorR = int(h.hexdigest()[0:2], 16)
ColorG = int(h.hexdigest()[2:4], 16)
ColorB = int(h.hexdigest()[4:6], 16)
# (ColorR, ColorG, ColorB) = (115, 126, 15) or #737EF</pre>
<p>the result:</p>
<figure id="attachment_2015" aria-describedby="caption-attachment-2015" style="width: 550px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-2015" src="https://gergely.imreh.net/blog/wp-content/uploads/2015/08/colours550.gif" alt="Example colours" width="550" height="400" /><figcaption id="caption-attachment-2015" class="wp-caption-text">Example colours</figcaption></figure>
<p>Works pretty well!</p>
<p>The bot&#8217;s settings (server name, port, channel, nickname) are all set through the Resin.io control panel as environment variables.</p>
<p>Environmental variables used at the moment:</p>
<ul>
<li>SERVER: the IRC server used, defaults to <strong>irc.freenet.net</strong></li>
<li>PORT: port used, has to be SSL-enabled, defaults to <strong>6697</strong></li>
<li>CHANNEL: which channel to connect to, together with all the hashes, defaults to <strong>#mredison</strong></li>
<li>NICK: nick to choose, no authentication yet, defaults to <strong>mredison</strong></li>
<li>TIMEZONE: what timezone to display updates in standard <a href="https://en.wikipedia.org/wiki/List_of_tz_database_time_zones">tz database notation</a>, defaults to <strong>UTC</strong></li>
</ul>
<figure id="attachment_1998" aria-describedby="caption-attachment-1998" style="width: 550px" class="wp-caption aligncenter"><a href="https://gergely.imreh.net/blog/wp-content/uploads/2015/08/ResinMrEdison.png"><img loading="lazy" decoding="async" class="size-large wp-image-1998" src="https://gergely.imreh.net/blog/wp-content/uploads/2015/08/ResinMrEdison-1024x640.png" alt="Settings through environment variables in the Resin.io interface" width="550" height="344" srcset="https://gergely.imreh.net/blog/wp-content/uploads/2015/08/ResinMrEdison-1024x640.png 1024w, https://gergely.imreh.net/blog/wp-content/uploads/2015/08/ResinMrEdison-500x313.png 500w, https://gergely.imreh.net/blog/wp-content/uploads/2015/08/ResinMrEdison-768x480.png 768w, https://gergely.imreh.net/blog/wp-content/uploads/2015/08/ResinMrEdison.png 1280w" sizes="auto, (max-width: 550px) 100vw, 550px" /></a><figcaption id="caption-attachment-1998" class="wp-caption-text">Settings through environment variables in the Resin.io interface</figcaption></figure>
<p>This makes it quite flexible, can let the bot/setup monitor any channel on any network, though at the moment needs SSL-enabled server, but that&#8217;s easy enough to change if someone wants to run the code and don&#8217;t care about security&#8230; :P</p>
<p>For testing I was using mostly the #ubuntu and ##linux channels, as they seems to be pretty chatty!</p>
<h2>Experience</h2>
<p>It was a bit bumpy process, like most experimental works. First I&#8217;ve run into some <a href="http://talk.resin.io/t/i2c-crashes-cant-use-e-g-lcd-rgb/100">Edison/Docker related strangeness</a> that messed with the I/O. Solved by <a href="https://github.com/shaunmulligan/">Shaun</a> from Resin, the trick being needing to mount the debugfs before running my code, so the kernel can configure things correctly:</p>
<pre>mount -t debugfs nodev /sys/kernel/debug</pre>
<p><strong>Edit (8/1):</strong> This in the end wasn&#8217;t enough, had to go back to the <a href="http://www.emutexlabs.com/project/215-intel-edison-gpio-pin-multiplexing-guide">Edison GPIO Pin Muxing Guide</a>, and turned their <em>Example 4: Configure IO18/IO19 for I2C connectivity</em> guide into a pretty hard core, but probably well commented <a href="https://github.com/taipeihackerspace/mredison/blob/33f6a61e474fae87c7c2770282ecca7d5fe9f0c4/gpio_setup.sh">bash script</a> to set up I2C, which is called on start. Seems to work out!</p>
<p>There was also some issue with the bot timing out in a strange way and losing connection. I was about to rewrite the whole code in Node.js, but tried a quick client test first. Turns out that I was testing on port 6697 (which is I read the default SSL port), and that has some connection issues. After I&#8217;ve switched to 7070, all of that disappeared, and the connection seems pretty solid (no timeout so far).</p>
<p>There are some bugs that remain, though:</p>
<ul>
<li>Unicode handling is non-existent, so those posts can pretty much mess up the display</li>
<li>There can be race conditions using the display, not the best threading code probably&#8230;</li>
<li>At bootup, the LCD display is borked, but after adjusting the environment variables (without reboot), things sort themselves out! Maybe need to tweak the startup script and add some delay between the steps?</li>
</ul>
<p>Otherwise it&#8217;s working pretty well, the colour changes are fun, the text is readable, so I guess mission is accomplished!</p>
<p>The <a href="https://github.com/taipeihackerspace/mredison">source code is on Github</a>, and to set up your own version of this, just create a new Edison project, flash the system, clone the source code and push it to your application, finally define the environment variables SERVER, PORT, CHANNEL, NICK as they are suitable for you, and enjoy!</p>
<h2>Future</h2>
<p>It would be probably good to create an enclosure for this setup, to hold the parts together more securely. Then drop it in the Hackerspace and set it up to listen to our IRC channel &#8211; and get chatting.</p>
<p>It&#8217;s probably unlikely that I&#8217;ll change much on it in the future, most I can think of is adding some more bells &amp; whistles (or rather, literally a buzzer:), but that might be too much. The code works well enough, but pull requests are accepted!</p>
<p>I&#8217;m mostly just glad that the idea worked out, and the project is done. Now I can actually move onto another one (there are way too many projects on the waiting list, driving me nuts)&#8230;.</p>
<p>What&#8217;s your take on IRC? Do you use it? Would this project be useful for you somehow?</p>
<p><em>This project is also <a href="https://www.hackster.io/imrehg/standalone-irc-channel-monitoring">written up on hackster.io</a>.</em></p>
<p>The post <a href="https://gergely.imreh.net/blog/2015/08/a-window-to-irc-with-edison-and-resin/">A window to IRC with Edison and Resin</a> appeared first on <a href="https://gergely.imreh.net/blog">ClickedyClick</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://gergely.imreh.net/blog/2015/08/a-window-to-irc-with-edison-and-resin/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Magic for the Internet of Things: Resin.io</title>
		<link>https://gergely.imreh.net/blog/2015/05/resin_io_somastream/</link>
					<comments>https://gergely.imreh.net/blog/2015/05/resin_io_somastream/#comments</comments>
		
		<dc:creator><![CDATA[Gergely Imreh]]></dc:creator>
		<pubDate>Wed, 27 May 2015 14:26:09 +0000</pubDate>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[IoT]]></category>
		<category><![CDATA[Parallella]]></category>
		<category><![CDATA[Raspberry Pi]]></category>
		<category><![CDATA[Resin.io]]></category>
		<category><![CDATA[Yocto]]></category>
		<guid isPermaLink="false">https://gergely.imreh.net/blog/?p=1970</guid>

					<description><![CDATA[<p>I have my fair share of playing with embedded Linux and Internet of Things projects these days, but the real treat is finding projects occasionally that just blow me away. Through some Hacker News comments I ended up checking out Resin.io, a tool that brings cloud deployment and management to embedded applications. That might simple [&#8230;]</p>
<p>The post <a href="https://gergely.imreh.net/blog/2015/05/resin_io_somastream/">Magic for the Internet of Things: Resin.io</a> appeared first on <a href="https://gergely.imreh.net/blog">ClickedyClick</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>I have my fair share of playing with embedded Linux and Internet of Things projects these days, but the real treat is finding projects occasionally that just blow me away. Through some <a href="https://news.ycombinator.com/item?id=9602659">Hacker News comments</a> I ended up checking out <a href="https://resin.io/">Resin.io</a>, a tool that brings cloud deployment and management to embedded applications. That might simple (boring?), but here&#8217;s the workflow in a nutshell:</p>
<ol>
<li>Start a new application and <strong>download an image file</strong> for your chosen single board computer (1 of 5 choices at the moment: Raspberry Pi 1 &amp; 2, Parallella, Intel Edison, and BeagleBone Black)</li>
<li><strong>Flash</strong> the image onto an SD card, connect the board to the network, and <strong>boot it up</strong></li>
<li>The board shows up in the <strong>cloud management console</strong>, and you get a git repo address</li>
<li>Make an application (Docker, Node.js, etc.), do a <strong>git push</strong>: voila, your board&#8217;s running your app</li>
<li>Flash a few more SD cards, connect the devices to the network, all of them will run your application</li>
<li>Modify the app behaviour through <strong>environment variables</strong>, either all of them at once, or customize each</li>
<li>Check status, logs, updates, online, and enjoy that <strong>things just work</strong>!</li>
</ol>
<p>I cannot emphasise enough how good any service feels that 1) runs by <em>git push</em>ing code, and 2) just works.</p>
<h2>SomaStream</h2>
<p>To try it all out, I&#8217;ve put together a very simple application: <a href="https://github.com/imrehg/somastream">SomaStream</a> &#8211; the <a href="http://somafm.com">SomaFM</a> internet radio streaming app.</p>
<figure id="attachment_1974" aria-describedby="caption-attachment-1974" style="width: 500px" class="wp-caption aligncenter"><a href="https://gergely.imreh.net/blog/wp-content/uploads/2015/05/SomaStreamResin2.png"><img loading="lazy" decoding="async" class="wp-image-1974 size-medium" src="https://gergely.imreh.net/blog/wp-content/uploads/2015/05/SomaStreamResin2-500x276.png" alt="SomaStream device status" width="500" height="276" srcset="https://gergely.imreh.net/blog/wp-content/uploads/2015/05/SomaStreamResin2-500x276.png 500w, https://gergely.imreh.net/blog/wp-content/uploads/2015/05/SomaStreamResin2-768x424.png 768w, https://gergely.imreh.net/blog/wp-content/uploads/2015/05/SomaStreamResin2-1024x565.png 1024w, https://gergely.imreh.net/blog/wp-content/uploads/2015/05/SomaStreamResin2.png 1265w" sizes="auto, (max-width: 500px) 100vw, 500px" /></a><figcaption id="caption-attachment-1974" class="wp-caption-text">SomaStream device status (image uploading)</figcaption></figure>
<p>Grabbed my RaspberryPi that didn&#8217;t do much lately, plugged an earphone in it, and started to look for some examples in the <a href="http://docs.resin.io/">docs</a> how to make it play some streaming music. <span id="more-1970"></span></p>
<p>In the end I&#8217;ve used a docker image, installed mplayer, and stated a shell script in the app to start playing the stream defined by the appropropriate environment variable. This makes it very reusable: if I use more than one board, using the same code all of them could play different SomaFM channels. Also added the cache size as a variable to deal with crappy internet connections without pushing new code to the board.</p>
<p>After git pushing the code, it compiles the image in about 7 minutes which is not too quick, but most of the time is spent in Raspbian package install (which is not a quick thing in itself). Then the image is downloaded to the board automatically (just like it&#8217;s on the way on the image above), and if everything went well, in a minute or so there&#8217;s music to my ears through the Pi&#8217;s headphones &#8211; and can see in the logs what is it playing at the moment like this:</p>
<figure id="attachment_1971" aria-describedby="caption-attachment-1971" style="width: 500px" class="wp-caption aligncenter"><a href="https://gergely.imreh.net/blog/wp-content/uploads/2015/05/SomaStreamResin.png"><img loading="lazy" decoding="async" class="wp-image-1971 size-medium" src="https://gergely.imreh.net/blog/wp-content/uploads/2015/05/SomaStreamResin-500x312.png" alt="SomaStream control panel" width="500" height="312" srcset="https://gergely.imreh.net/blog/wp-content/uploads/2015/05/SomaStreamResin-500x312.png 500w, https://gergely.imreh.net/blog/wp-content/uploads/2015/05/SomaStreamResin-768x480.png 768w, https://gergely.imreh.net/blog/wp-content/uploads/2015/05/SomaStreamResin-1024x640.png 1024w, https://gergely.imreh.net/blog/wp-content/uploads/2015/05/SomaStreamResin.png 1279w" sizes="auto, (max-width: 500px) 100vw, 500px" /></a><figcaption id="caption-attachment-1971" class="wp-caption-text">SomaStream control panel</figcaption></figure>
<p>This is a totally toy project, but still the outcome is useful and very enjoyable. The entire code from my side is about half a dozen lines altogether, here&#8217;s the <a href="https://github.com/imrehg/somastream">somastream repository</a>. Tried out most of the functionality of the system, and it enables me to think of more complex problems for which it might be a good solution.</p>
<p>Now, with a (little) job well done, hello <a href="http://somafm.com/player/#/now-playing/secretagent">Secret Agent</a> (set CHANNEL to &#8220;secretagent130&#8221;) :)</p>
<figure id="attachment_1976" aria-describedby="caption-attachment-1976" style="width: 500px" class="wp-caption aligncenter"><a href="https://gergely.imreh.net/blog/wp-content/uploads/2015/05/RaspberryPiSomaStream.jpg"><img loading="lazy" decoding="async" class="wp-image-1976 size-medium" src="https://gergely.imreh.net/blog/wp-content/uploads/2015/05/RaspberryPiSomaStream-500x375.jpg" alt="RaspberryPiSomaStream" width="500" height="375" srcset="https://gergely.imreh.net/blog/wp-content/uploads/2015/05/RaspberryPiSomaStream-500x375.jpg 500w, https://gergely.imreh.net/blog/wp-content/uploads/2015/05/RaspberryPiSomaStream-768x576.jpg 768w, https://gergely.imreh.net/blog/wp-content/uploads/2015/05/RaspberryPiSomaStream-1024x768.jpg 1024w" sizes="auto, (max-width: 500px) 100vw, 500px" /></a><figcaption id="caption-attachment-1976" class="wp-caption-text">Let&#8217;s listen to some radio&#8230;</figcaption></figure>
<h2>The Future</h2>
<p>I feel that this tool will breathe new life into my Raspberry Pi, because all the possible projects just got a lot more playful and interesting suddenly. The same goes for my Kickstarter <a href="https://www.parallella.org/">Parallellas</a>, since Resin.io powers their new <a href="http://supercomputer.io/">Supercomputer.io</a>, which I&#8217;m really looking forward to see in action (Computing and science? Sign me up!)</p>
<p>Also, in the <a href="http://taipeihack.org/">Taipei Hackerspace</a> we had a chat recently to set up a small rack for single board computers, so people can try a toy &#8220;datacenter&#8221;, having their &#8220;server&#8221; there. Our question at the time was, how deep people will want to go in the abstraction of server management &#8211; all the way to the bare metal managing a Linux distro, or stay on the level applications? Now with Resin, the second option is totally realistic. I can&#8217;t wait to discuss this with people in the &#8216;Space, and see what projects they&#8217;ll come up with!</p>
<p>According to the Hacker News discussion, the magic of this system is in part powered by <a href="http://www.yoctoproject.org/">Yocto</a>-generated images, and any single board computer that has a Yocto layer and reasonably new kernel will be usable. I&#8217;m a Yocto novice, but this smells like the perfect use case for their philosophy: decoupling the hardware support and the actual operating system, so any recombination of the two still works. Talk about floodgates, how many boards I have idle here that someone already made a Yocto layer (and if there&#8217;s a board that does not have a layer, now&#8217;s the time&#8230;)</p>
<p>The post <a href="https://gergely.imreh.net/blog/2015/05/resin_io_somastream/">Magic for the Internet of Things: Resin.io</a> appeared first on <a href="https://gergely.imreh.net/blog">ClickedyClick</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://gergely.imreh.net/blog/2015/05/resin_io_somastream/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Object Caching 19/30 objects using APC
Page Caching using Disk: Enhanced 
Lazy Loading (feed)

Served from: gergely.imreh.net @ 2026-04-28 16:46:01 by W3 Total Cache
-->