<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: posborne</title><link>https://news.ycombinator.com/user?id=posborne</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sun, 21 Jun 2026 08:38:03 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=posborne" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by posborne in "Pyodide 314.0: Python packages can now publish WebAssembly wheels to PyPI"]]></title><description><![CDATA[
<p>The WASI support in CPython has moved along very well and it is an early target via componentize-py[1]. Notes on WASI support in Python can be found in PEP 816[2]; CPython will be jumping from 0.1 to 0.3 (0.2 is adapted in componentize-py) which should unlock a fair bit of support, especially once cooperative threads lands (providing a pthreads impl in wasi-libc).<p>[1] <a href="https://github.com/bytecodealliance/componentize-py" rel="nofollow">https://github.com/bytecodealliance/componentize-py</a>
[2] <a href="https://peps.python.org/pep-0816/" rel="nofollow">https://peps.python.org/pep-0816/</a></p>
]]></description><pubDate>Sun, 14 Jun 2026 08:46:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=48525408</link><dc:creator>posborne</dc:creator><comments>https://news.ycombinator.com/item?id=48525408</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48525408</guid></item><item><title><![CDATA[New comment by posborne in "Wind River Linux"]]></title><description><![CDATA[
<p>From my experience (from a few years back but still appears to be the case) is that Wind River is just wrapping Yocto these days.  There could be value for some orgs where they don't have engineering teams if they do a contracting arrangement but I think, generally, orgs are better building directly on Yocto (or BuildRoot) without a vendor in the middle (other than your SoC vendor and their support layers).  I'd save your money and pay for a seasoned embedded linux expert or three if you are maintained a connected product.<p>For smaller deployments, I think it makes more sense to look into solutions like  mender.io, etc. for updates/fleet mgmt/etc.</p>
]]></description><pubDate>Mon, 22 Jan 2024 03:49:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=39085962</link><dc:creator>posborne</dc:creator><comments>https://news.ycombinator.com/item?id=39085962</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39085962</guid></item><item><title><![CDATA[New comment by posborne in "Build a Thread network with Nordic nRF52840"]]></title><description><![CDATA[
<p>The agnosticism may be refreshing for some use cases but for things like interoperable home automation the lack of an application layer associated with thread makes it useless to design into a product at this point as there is no real open ecosystem around the technology.<p>The fact that ZigBee (application layer) requires data to go through a gateway via a standard before hitting some server on the internet is probably a very good thing for pushing interoperability.  What you see with IP bulbs is that each bulb hits its own servers on the internet -- when that business disappears in a few years, the customer is probably SOL.<p>ZigBee app layer on Thread (DotDot) will probably be pushed more.  Just a question of whether the advantages of Thread over Zigbee (3) will have enough benefits to push ecosystems like home automation to switch over to this stack.</p>
]]></description><pubDate>Sun, 08 Jul 2018 17:01:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=17484813</link><dc:creator>posborne</dc:creator><comments>https://news.ycombinator.com/item?id=17484813</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=17484813</guid></item><item><title><![CDATA[New comment by posborne in "ResinOS, run Docker containers on embedded devices"]]></title><description><![CDATA[
<p>Awesome, I would love to see hear more about the approach you guys used for building base images with Yocto.  I'm willing to give up a little elegance for control and reproducibility.</p>
]]></description><pubDate>Tue, 11 Oct 2016 20:43:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=12688362</link><dc:creator>posborne</dc:creator><comments>https://news.ycombinator.com/item?id=12688362</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=12688362</guid></item><item><title><![CDATA[New comment by posborne in "ResinOS, run Docker containers on embedded devices"]]></title><description><![CDATA[
<p>I have used Yocto for building a new of embedded Linux systems in production.  I understand that Yocto is used for the resin hostOS images and Docker is used for the images run as containers.<p>Is it possible or has any thought been put into making it possible to use Yocto for building the containerized images that are deployed to resin (probably in the form of docker images)?  Although this is less convenient than using off-the-shelf docker images and customizing with your own docker files, I believe many of the benefits of Yocto in terms of building a custom embedded linux system might also be recognized within the context of resin.</p>
]]></description><pubDate>Tue, 11 Oct 2016 20:14:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=12688128</link><dc:creator>posborne</dc:creator><comments>https://news.ycombinator.com/item?id=12688128</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=12688128</guid></item><item><title><![CDATA[New comment by posborne in "Network protocols, sans I/O"]]></title><description><![CDATA[
<p>I am the author of one such library for the problem of writing parsers (particularly for binary protocols).  The declaration of the protocol structures are separate from anything involving I/O.  Not trying to push it too hard but it is one approach: <a href="https://github.com/digidotcom/python-suitcase" rel="nofollow">https://github.com/digidotcom/python-suitcase</a><p>There is also Construct which has a different syntax but is similar in many ways: <a href="http://construct.readthedocs.io/en/latest/index.html" rel="nofollow">http://construct.readthedocs.io/en/latest/index.html</a><p>Both suitcase/construct are definitely better suited for parsing binary protocols -- In my line of work, that limitation hasn't been a deal breaker.  With suitcase, at least, I haven't done much work to optimize performance (mostly because if I cared, I wouldn't be using Python).</p>
]]></description><pubDate>Sun, 07 Aug 2016 21:35:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=12243789</link><dc:creator>posborne</dc:creator><comments>https://news.ycombinator.com/item?id=12243789</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=12243789</guid></item><item><title><![CDATA[New comment by posborne in "Qt WebBrowser 1.0"]]></title><description><![CDATA[
<p>Very often.  Vendors such as NXP/Freescale, TI, Intel (and Chinese manufacturers on top of MIPS) all tend to target Linux-first.  For some drivers (e.g. wireless), you sometimes need to work directly with that vendor (Qualcomm/Broadcom/...).  In my experience, it is almost the default except in cases where you need 1) Hard real-time, 2) Very low power (most battery applications), 3) Very low cost.  Those still go to MCUs where life is more difficult for anything complex (e.g. requiring graphics, a network stack).<p>For most embedded use cases, Android is still not suitable as you have to jump through many hoops to get sufficient control over exactly how the device operates (you can make it work but the further away your device is from a phone/tablet, the harder it gets).<p>Source: Worked in embedded design services until recently.</p>
]]></description><pubDate>Tue, 19 Jul 2016 16:49:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=12122850</link><dc:creator>posborne</dc:creator><comments>https://news.ycombinator.com/item?id=12122850</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=12122850</guid></item><item><title><![CDATA[New comment by posborne in "Baby Steps: Slowly Porting Musl to Rust"]]></title><description><![CDATA[
<p>For safe, well-reviewed wrappers around libc (a different problem, but one which is more realistic to solve), I would encourage you to check out the nix crate (I am a maintainer -- the original author was Carl Lerche).  It doesn't look like we have a wrapper for getaddrinfo currently, but it is something I think we would welcome.<p><a href="https://github.com/nix-rust/nix" rel="nofollow">https://github.com/nix-rust/nix</a></p>
]]></description><pubDate>Sun, 12 Jun 2016 22:59:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=11890741</link><dc:creator>posborne</dc:creator><comments>https://news.ycombinator.com/item?id=11890741</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=11890741</guid></item><item><title><![CDATA[New comment by posborne in "Announcing Rust 1.6"]]></title><description><![CDATA[
<p>Is there a good way to look up no_std crates?  For crates written with no_std, is there a keyword we should be tagging things with?<p>I have several crates providing access to GPIO/SPI/I2C under Linux and would like to put together a roadmap for having the interface to these types of devices that is portable to various platforms and devices (e.g. Linux as well as Zinc, ...).</p>
]]></description><pubDate>Sat, 23 Jan 2016 03:13:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=10957015</link><dc:creator>posborne</dc:creator><comments>https://news.ycombinator.com/item?id=10957015</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=10957015</guid></item><item><title><![CDATA[New comment by posborne in "Working with Binary Data in Python"]]></title><description><![CDATA[
<p>Very cool.  Any conclusions from the experiment?<p>Disclosure: I'm the primary author/maintainer of suitcase (<a href="https://github.com/digidotcom/python-suitcase" rel="nofollow">https://github.com/digidotcom/python-suitcase</a>).  In your example, you can shave off a line by doing the following:<p><pre><code>    example = FIDOAttestation.from_data(a)</code></pre></p>
]]></description><pubDate>Mon, 07 Dec 2015 17:46:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=10691089</link><dc:creator>posborne</dc:creator><comments>https://news.ycombinator.com/item?id=10691089</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=10691089</guid></item><item><title><![CDATA[New comment by posborne in "MovieLens – Non-Commercial, Personalized Movie Recommendation System"]]></title><description><![CDATA[
<p>Here's the dataset they use.  I have used this as part of developing and testing the fitness of recommender systems in the past: <a href="http://grouplens.org/datasets/movielens/" rel="nofollow">http://grouplens.org/datasets/movielens/</a><p>This predates some of my more recent work with the grouplens database, but here is a parser I put together for the data awhile back: <a href="https://github.com/posborne/mlcollection/blob/master/mlcollection/datasets/movielens/movielensparser.py" rel="nofollow">https://github.com/posborne/mlcollection/blob/master/mlcolle...</a></p>
]]></description><pubDate>Mon, 17 Aug 2015 01:35:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=10071012</link><dc:creator>posborne</dc:creator><comments>https://news.ycombinator.com/item?id=10071012</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=10071012</guid></item><item><title><![CDATA[New comment by posborne in "I made a cell phone [video]"]]></title><description><![CDATA[
<p>I work for a wireless design services company.  There is a large divide between using a Cellular module (e.g. Telit LE910) versus doing a chip-down Cellular design (e.g. Qualcomm/Infineon).  This design has a module at its core.<p>Modules are based around the chipsets but they do the most expensive certification (both FCC and Carrier) work for you.  As a purchaser of the module, you pay for this on each module.<p>Certifying a cellular end device is usually <$50K (depending on number of bands, # of carriers, fallback, etc.).  Certifying a new chip-down cellular design can easily exceed $1-2M in just certification and testing costs.  Development costs and complexity will also be increased.</p>
]]></description><pubDate>Sun, 16 Aug 2015 06:28:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=10068165</link><dc:creator>posborne</dc:creator><comments>https://news.ycombinator.com/item?id=10068165</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=10068165</guid></item><item><title><![CDATA[New comment by posborne in "Rust in 2016"]]></title><description><![CDATA[
<p>This indeed would be very cool!  Right now things work relatively well with the biggest pain being the acquisition of std for your target.<p>If std and core could be made into first-class crates, then you could get rid of the need to find a pre-built version of libstd for your target.  It would just be built when needed by a project.<p>This is what we currently do in zinc for core via the hack here: <a href="https://github.com/hackndev/zinc/blob/master/Cargo.toml#L27" rel="nofollow">https://github.com/hackndev/zinc/blob/master/Cargo.toml#L27</a>.  Zinc doesn't use std (for obvious reasons).  Right now, targeting a raspberry pi is much harder than it should be as a result of having to having to find an appropriate cross-compiled std.<p>That is, I want the steps for cross-compilation to be:<p>1. Execute `cargo build --target=foo`.<p>2. There is no step 2.</p>
]]></description><pubDate>Fri, 14 Aug 2015 21:34:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=10063080</link><dc:creator>posborne</dc:creator><comments>https://news.ycombinator.com/item?id=10063080</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=10063080</guid></item><item><title><![CDATA[New comment by posborne in "Pragmatic Bare Metal Rust"]]></title><description><![CDATA[
<p>A few points:<p>* I don't think a few tens of bytes is realistic for a real application that needs to set up the stack, timers, and then blink some LEDs (<a href="https://github.com/mcoffin/zinc/blob/new-build/examples/app_blink_pt.rs" rel="nofollow">https://github.com/mcoffin/zinc/blob/new-build/examples/app_...</a> / <a href="https://github.com/mcoffin/zinc/blob/new-build/examples/app_blink.rs" rel="nofollow">https://github.com/mcoffin/zinc/blob/new-build/examples/app_...</a>)<p>* Assuming the code size overhead does not continue to bloat after some initial overhead, I think rust can still be very competitive.  Although modern embedded systems are still very constrained, the days of 8-bit micros are basically over.  You can buy a 32-bit ARM micro for nearly the same cost with sufficient RAM/Flash to run rust well.<p>* Looking back, I think the size of blink should actually be closer to 600 bytes.  Will need to investigate: <a href="http://zinc.rs/stats/" rel="nofollow">http://zinc.rs/stats/</a></p>
]]></description><pubDate>Wed, 20 May 2015 13:54:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=9576297</link><dc:creator>posborne</dc:creator><comments>https://news.ycombinator.com/item?id=9576297</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=9576297</guid></item><item><title><![CDATA[New comment by posborne in "Pragmatic Bare Metal Rust"]]></title><description><![CDATA[
<p>Yes, I believe so.  The binaries I have built so far have been very small (<2KB for a blink example).  mcoffin has a branch with SAM3x support, which appears to be the processor on the Due: <a href="https://github.com/mcoffin/zinc/tree/sam3x" rel="nofollow">https://github.com/mcoffin/zinc/tree/sam3x</a><p>The Due has 512KB of room for code which is quite a lot (for microcontrollers).</p>
]]></description><pubDate>Wed, 20 May 2015 04:55:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=9574746</link><dc:creator>posborne</dc:creator><comments>https://news.ycombinator.com/item?id=9574746</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=9574746</guid></item><item><title><![CDATA[New comment by posborne in "Pragmatic Bare Metal Rust"]]></title><description><![CDATA[
<p>I think the better approach here is to phase out existing applications in chunks.  You can link call rust code from C (when externed and rustc is told not to mangle) and C code from rust (via ffi).<p>My experience with code automatically converted has not been good.</p>
]]></description><pubDate>Wed, 20 May 2015 03:28:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=9574501</link><dc:creator>posborne</dc:creator><comments>https://news.ycombinator.com/item?id=9574501</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=9574501</guid></item><item><title><![CDATA[New comment by posborne in "Pragmatic Bare Metal Rust"]]></title><description><![CDATA[
<p>That is the hope, since master is currently out of date.<p>I have been working with Matt Coffin some on getting this working.  Feel free to increase its chances of merging by helping us test any of the supported boards (Freescale K20, NXP LPC17xx, SAM3x (on a branch), STM32F4, STM32l1, TI Tiva C).<p>I plan on putting together an RFC for how we can modify zinc (or provide documentation) to make it easier for individuals to create both libraries and projects that work well with zinc, but do not require modifying zinc itself.</p>
]]></description><pubDate>Wed, 20 May 2015 03:18:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=9574473</link><dc:creator>posborne</dc:creator><comments>https://news.ycombinator.com/item?id=9574473</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=9574473</guid></item><item><title><![CDATA[New comment by posborne in "Freescale Shrinks World’s Smallest ARM-Based MCU by 15%"]]></title><description><![CDATA[
<p>Freescale provides an RTOS for free called MQX (<a href="http://www.freescale.com/webapp/sps/site/homepage.jsp?code=MQX_HOME" rel="nofollow">http://www.freescale.com/webapp/sps/site/homepage.jsp?code=M...</a>) that I have seen used on some projects.  Otherwise, bare metal or one of the other standard RTOS options.</p>
]]></description><pubDate>Sun, 02 Mar 2014 16:15:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=7329573</link><dc:creator>posborne</dc:creator><comments>https://news.ycombinator.com/item?id=7329573</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=7329573</guid></item><item><title><![CDATA[New comment by posborne in "Put.io"]]></title><description><![CDATA[
<p>I wrote this (<a href="https://github.com/posborne/putio-sync" rel="nofollow">https://github.com/posborne/putio-sync</a>) a few weekends ago for automatically grabbing content from put.io using their API (<a href="https://put.io/v2/docs/index.html" rel="nofollow">https://put.io/v2/docs/index.html</a>).  Pretty handy and performs downloads quickly by doing multi-segment downloads.  Pure python and MIT licensed -- should be pip installable from pypi.<p>I string this together with another script to rename content and it drops right into my Plex library.</p>
]]></description><pubDate>Tue, 04 Feb 2014 05:25:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=7175683</link><dc:creator>posborne</dc:creator><comments>https://news.ycombinator.com/item?id=7175683</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=7175683</guid></item><item><title><![CDATA[New comment by posborne in "Ask YC: What's your day job?"]]></title><description><![CDATA[
<p>Undergraduate student and associate software engineer at an embedded systems startup (that just got bought recently).  I also do some side work with some peers at my school.</p>
]]></description><pubDate>Mon, 25 Aug 2008 02:22:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=285580</link><dc:creator>posborne</dc:creator><comments>https://news.ycombinator.com/item?id=285580</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=285580</guid></item></channel></rss>