HNHacker News
TopNewBestAskShowJobs

trelliscoded

397 karma · joined October 3, 2016

I do stuff with computers, networks, and security. I'm the laziest admin you'll meet. Clicking for hours in management interfaces is for suckers, I'd rather run a script. I'd rather all my coworkers run a script, too. Scripts for everyone!

I also do programming, especially embedded programming. Now it's called the "Internet of Things." Fortunately, the standards for security and reliability haven't changed that much relative to the history of embedded programming.

I am concerned that some customers are attaching things to the Internet of Things which should not be on the Internet of Things. Like cows. "Why can I not ping my cow?", one farm asks me. "Why did you put a cow on the Internet?!", I reply. They do not know, but Compliance says "because compliance," so now there's a cow on the Internet.

I am also concerned that NB-IoT is also going to be a thing in the near future. It's so cheap! It's so cheap, you can put cellular radios on all the things! Please do not do this. All the things do not need to run LTE stacks on energy harvesting SoCs forever and ever.

submissionscomments
trelliscoded··on Ask HN: Is having videogames in your portfolio/GitHub a bad move?
I'd consider game development experience to be a plus for any programmer.
trelliscoded··on “Rest and vest”: engineers who get paid and barely work
I agree. I've worked with people who actually put in 8 hours of work a day on a regular basis, and it had a huge impact on my desire to get things done. Also, working with Germans.
trelliscoded··on The first Bitcoin Cash block has been mined
This is a good overview:

https://en.bitcoin.it/wiki/Block_size_limit_controversy#Argu...

There's a bunch of political reasons on both sizes as well.

trelliscoded··on Ask HN: What is China doing with 1.1.1.1?
So 1.1.1.0/24 doesn't seem to be in the global table from North American carrier perspectives. It's certainly not a routed prefix for any of my machines in North America. The closest prefix I can see an announcement for on a global basis is 1.1.3.0/24 (CHINANET FUJIAN PROVINCE NETWORK).

Like bcoates said, there's a bunch of dumb stuff out there designed by people who barely understood TCP/IP and used non-RFC1918 ranges for customer equipment. Occasionally they leak indirectly into a table that's being redistributed into some mom and pop ISP's BGP announcements, and this happens. The backbone carriers of the Internet all (well, maybe not tata) have much stronger filters than Honest Achmed's used car sales and Internet transit, so they tend to leak only within a country or region.

Occasionally its some ISP internal services and it's done deliberately to have easy to remember IP addresses for techs working on the network. I mean, do you want to have to remember to point SNMP traps to 216.31.49.167 or would you rather only have to remember 1.1.1.1 instead? Then the prefix hits the border bogon filter and remains entirely with that ISP's network.

Now that I think about it, scanning ISPs for known unannounced prefixes in the global table would be kind of a fun project to discover all the little internal services ISPs might have squirreled away throughout their network.

trelliscoded··on The Need for Web UDP
WebRTC doesn't work for browser control of a lot of IoT type stuff. The really high volume cheapo devices speak things like CoAP or DTLS, and they don't have the horsepower to run something like WebRTC. You'd need a level of control similar to the berkeley socket API to get the browser to speak those protocols.

At the moment, I see a lot of ridiculous stuff like phone apps talking to some cloud instance which tries to jam the packets back through your firewall into your Internet light bulbs. Congratulations, you literally just used thousands of kilometers of fiber and billions of dollars of routing infrastructure to make the world's most expensive how many... light bulb joke.

trelliscoded··on The Need for Web UDP
Why, yes. Yes you can.

http://jslinux.org/

trelliscoded··on How to Make a Wireless Sensor Live for a Year on One Tiny Coin Cell Battery
It's true, and radio technology has a lot of inefficiencies in the analog bits. Digital RF techniques help, but the Rx amplifier and downconverters, mixers, and stuff all lose a lot of energy in the process.

Also, the watch has a clock frequency measured in kilohertz, and the processor is probably some dumb as rocks 8051 variant or something with a tiny amount of static RAM. Big difference in power consumption compared to a 32-bit ARM core.

Cortex-M0s are pretty competitive with that power regime though these days, especially if your application (like the watch) will allow you to run the M0 at sub-1MHz speeds.

trelliscoded··on How to Make a Wireless Sensor Live for a Year on One Tiny Coin Cell Battery
I don't think I've ever seen any design that didn't have decoupling caps across the power lines. I mean, the Murata parts I use have dozens of megaohms of resistance at DC, and the chip is off 90% of the time anyway so there's no energy loss keeping the E-field charges in the cap when the SoC is only drawing whatever miniscule amount of power it needs when it's asleep.

Anyway, TI has stuff like this specifically designed for these applications, so it's kind of a nonissue these days:

http://www.ti.com/lit/ds/symlink/tps62730.pdf

I think Mouser had them for like $0.50 or something.

trelliscoded··on How to Make a Wireless Sensor Live for a Year on One Tiny Coin Cell Battery
TI actually makes a specialized power regulator for their OMAP product line to do exactly that. It's this weird little part that includes the power regulating circuitry and some of the analog audio codec stuff for some reason.
trelliscoded··on How to Make a Wireless Sensor Live for a Year on One Tiny Coin Cell Battery
They never needed it from a technical perspective, it's there to make provisioning easier. Because the carriers were pretty decoupled from the baseband ecosystem, there wasn't a really good way to get the subscriber keys into the radio hardware unless the carrier stuck their nose in the supply chain somehow. Because baseband vendors all hate each other, there wasn't a lot of interest in cooperating to create a standard to do something like that. Plus, Gemalto kept trying to throw monkey wrenches into the committees by doing some quite frankly pretty messed up things.

Regardless, profit is important and someone had to get squeezed out of the BoM of these things being manufacturing in the billions. It finally happened because of a combination of improvements to system on chip security, CMs cracking down on security, and the carriers hauling their EDI based provisioning systems into the 21st century. As a result, carriers can now securely provision devices after manufacturing. AT&T is kind of a jerk about it though, they do some stuff to the SIM when you onboard an unlocked device sometimes to tie it to their network.

I'm still not entirely clear how the keys get distributed in a SIMless world though. The process I use to onboard stuff into Verizon's IoT cloud involves me uploading a CSV file to a server somewhere and making some REST requests, but it's just IMSIs. The virtual UICC in the products like your watch works pretty much the same way, according to my chip vendor. But they have a multicarrier solution where the virtual UICC already knows about the major networks, so maybe they're exchanging keys as part of the OTA activation flow and securing it with a hardware key they give to the carriers in a HSM or something. Or maybe the manufacturers are getting HSMs at the factory and doing it right in the manufacturing process. I tried to wrap my head around the 3GPP documents on the subject and I just got more and more confused.

There's definitely a vendor proprietary aspect to what's going on though, because I can see the OTA provisioning packets in QXDM and it says it doesn't know how to decode them.

trelliscoded··on How to Make a Wireless Sensor Live for a Year on One Tiny Coin Cell Battery
Cool! Maybe I'll see you at the next convention we end up at.
trelliscoded··on How to Make a Wireless Sensor Live for a Year on One Tiny Coin Cell Battery
I agree... as long as radios aren't involved. Getting parts with the necessary tolerances in low quantities and dealing with the board layout is kind of expensive. The analyzer you need to use to figure out why the radio is acting funny is pretty expensive too. I don't know how I could have done my senior radio project without access to my uni's pimped out RF lab.

But yeah, I've made MCU boards in my toaster oven, it's fun times for little non-RF projects.

The several gigabytes of stuff TI makes you install just to do hello world on their simple link products is kind of nuts though. There's nothing simple about it tbh.

trelliscoded··on How to Make a Wireless Sensor Live for a Year on One Tiny Coin Cell Battery
I agree... as long as radios aren't involved. Getting parts with the necessary tolerances in low quantities and dealing with the board layout is kind of expensive. The analyzer you need to use to figure out why the radio is acting funny is pretty expensive too. I don't know how I could have done my senior radio project without access to my uni's pimped out RF lab.

But yeah, I've made MCU boards in my toaster oven, it's fun times for little non-RF projects.

The several gigabytes of stuff TI makes you install just to do hello world on their simple link products is kind of nuts though. There's nothing simple about it tbh.

trelliscoded··on How to Make a Wireless Sensor Live for a Year on One Tiny Coin Cell Battery
He puts out some interesting ideas, but he forgot that genome sequencing requires some occasionally toxic regeants that are incompatible with bolting DNA sensors all across town.

He's spot on about the data firehose problem, though. IoT data usage patterns break all kinds of assumptions that network and storage engineers have about how computers do stuff. The packet sizes are really small, so routers have to work way harder, and all those tiny I/Os blow through IOPS way more than a typical web app does.

And then there's the data formatting issues, like how searching this pile of stuff makes you want to put it in columnar formats but time-series type displays want row oriented formats. Oh, and the indexers. Ugh. A lot of good indexing code has trouble keeping their internal trees balanced with all the I/O going on at the same time the big data reporting stuff is going on a spelunking expedition through your storage. There's probably some group at Amazon going insane trying to come up with solutions to keep up with even the limited IoT deployments out there already. I wouldn't be surprised if their storage solutions are operating in a constant state of imminent capacity breakdown of some kind.

trelliscoded··on How to Make a Wireless Sensor Live for a Year on One Tiny Coin Cell Battery
The microphone doesn't work, TI never released packaged firmware for it. There's source code available that should work, but I haven't seen anyone on the forums that managed to get it integrated into an application, much less even build it.
trelliscoded··on How to Make a Wireless Sensor Live for a Year on One Tiny Coin Cell Battery
You can't weld regular batteries into a lot of applications, and a lot of IoT applications are mobile and vibration sensitive. You'd be surprised how just a little vibration can really mess up your power supply as the springs bounce around.

CR2032s have a much higher surface area on the contacts, which is required to dissipate the heat from the weld as well as have more surface contact with the springs if you use a battery socket instead.

trelliscoded··on How to Make a Wireless Sensor Live for a Year on One Tiny Coin Cell Battery
https://espressif.com/en/products/software/esp-mesh/overview

It's not exactly self-healing in the same way 802.11s is, iirc it's your basic distance-vector routing protocol with all the usual problems that has.

trelliscoded··on How to Make a Wireless Sensor Live for a Year on One Tiny Coin Cell Battery
I'm actually building a product that incorporates a CC1350 in it, which is the variant that has both a 2.4 GHz and a proprietary sub-1GHz radio.

These chips are totally amazing. TI used every trick in the book to help the designers save power. There's even a specialized coprocessor that uses special low leakage silicon to handle some simple 16 bit I/O processing so you don't have to wake up the main processor, and the main Cortex-M3 is pretty darn low power already.

I am kind of annoyed that you have to call into their ROM routines to use the radio, though. The datasheet is a snarky little tease that says ha ha, the radio registers are somewhere around these addresses but we aren't going to tell you what they do! Shhhh it's a secret! This is particularly annoying because I could make my life a lot simpler if I could interface with the Nordic shockburst protocols, and TI's firmware only knows how to speak TI simplelink packet formats.

The thing that TI isn't talking about is that they did some stuff around the voltage regulation that looks like they were planning on pushing some kind of energy harvesting companion silicon. It's just a guess, but they might announce something in the future along those lines. Whoever ends up first to market with a productized energy harvesting IoT chip is going to print bucketloads of money.

There's also a lot of stuff going on in the low power LTE space right now. Altair semi announced the 1250 chip, which is -- get this -- power competitive with the TI chip for low frequency telemetry applications. AT&T and Verizon have already launched their cat-M1 networks and cat-NB1 is going to be out by the beginning of next year. Those protocols use oversampling and a bunch of other mad scientist RF hacks to get even more range than the LTE radio in your phone. The bandwidth is really low, like modem or ISDN low, but there's a ton of applications that can be implemented with literally one bit per day worth of data. The chips are getting pumped out in volume now, and the cost regime is actually causing revenue jitters at the carriers. They want to squeeze some extra revenue out of LTE IoT space since it's basically free for them to implement since the LTE IoT designers figured out how to reuse the otherwise useless guard bands surrounding the real full-fat LTE signals your phone uses.

However, it's kind of a tough problem to figure out a cost model where customers are paying something like $10 a year for maybe hundreds of devices that are so cheap that the most expensive item on the board is the SIM card. And even that's going away in the 2nd generation IoT chips now that someone figured out how to get around the UICC requirement for provisioning by doing something funny with a protected element in the main LTE radio.

Also check out my profile. It's not a joke, someone made a homebrew monitoring solution out of someone else's IoT chip to keep track of cow farts because they wanted to adjust the feed based on farts per minute or something, I didn't really understand it.

trelliscoded··on How to Make a Wireless Sensor Live for a Year on One Tiny Coin Cell Battery
Some of the radio handling bits on MSP430 would be more complex due to the lack of 32 bit support. There's also some third party firmware for e.g. the lowpwan stuff that's only available as Cortex binaries.

TI keeps trying to push their MSP432 cortex-M4 series on me as a replacement for MSP430. I guess they don't want to have customers go with a different vendor just because TI doesn't have an ARM solution that supports whatever code module or toolchain the customer wants to use.

trelliscoded··on How to Make a Wireless Sensor Live for a Year on One Tiny Coin Cell Battery
Yeah it's just a regular XO. There's some calibration data they stick in a special flash area at the factory that the radio firmware uses to handle temperature compensation for the chip's internal digital oscillator. I also believe you can run it in a XO-less mode with some caveats.
trelliscoded··on Ask HN: What is preventing rust from replacing c/c++?
Greenfield systems work by startups isn't really done these days. If it's not greenfield, it's probably already in c/c++. If it's not a startup, they probably already have a bunch of expensive c/c++ tooling (static analyzers, IDEs, CI systems, ...) that they aren't going to get in rust.
trelliscoded··on OpenVMS State of the Port to x86_64 [pdf]
If you worked for one of their bigger customers, chances are someone paid for source access and it was available on an internal server :)

I browsed through a copy a few jobs ago and it's honestly kind of boring.

trelliscoded··on Ask HN: How do you interview candidates for a DevOps (systems engineering) role?
I'm trying to find a devops role, and the interviews I've had are all over the map. As far as I can tell, the closest thing to a devops filter is a SRE filter. A lot of the necessary skills are the same between the two roles, but SREs are more webapp oriented and devops is often internal enterprise work which might or might not include web apps.

The problem is that there's no single definition for devops. Aside from involving automation, companies all mean different things when they say devops. Some companies want to migrate to CI/CD type deployments for their webapp, some want to move to DSC instead of RDPing into everything because they just grew to 1000 Windows machines, and some want to deploy OpenStack because VMware wants to renew their contract at 2x the price. There's no single interview process which can reliably predict a successful hire for all of these examples.

If I were trying to hire for such a role, I wouldn't do whiteboard interviews or look at their github page or any of that. I'd look for flexibility in their career history. The ideal candidate would have two of SWE, system admin, or network administration roles on their resume on a variety of platforms (or all three, like me.) Then there's the security aspect intersecting all of those, and finding someone who's done real whitehat work on top of that is just impossible to hire for.

Like it or not, devops tooling is in a constant state of flux. Regardless of what you're running now, you want someone who can adapt to changing business circumstances on the fly with the best technology they can find. It's not uncommon for the chosen solution to be something no one in the whole company has ever worked with before. You want someone who adapts quickly and learns fast.

As far as interviewing goes, the more mature companies I've interviewed at have had me do multi-hour projects (usually involving Hashicorp products) in a virtual container somewhere. Let them use man pages, autocompletion, etc. Look over their shoulder and have them explain their thought process out loud. Have the candidate do the same things they're going to get paid to do if they're hired. Why would you want to filter them any other way?

Less mature companies do whiteboard interviews about things that you'll never do on the job, usually involving recursion or binary trees. I think the idea is that they're using that as a proxy for general intelligence or CS knowledge, but that doesn't matter if you're trying to add vswitch redundancy throughout your clusters and slinging ruby and XML around all day.

trelliscoded··on The long arrow operator in C++
In the dashed case, k is going to be zero or one (a<b is true or false). This works, though:

        int a=0, b=4;

        while(a < - - - - --b) {
                printf("b: %d\n", b);
        }
trelliscoded··on I Am Graphics and So Can You
The thing about Vulkan is it moves a lot of the boilerplate out of the driver and into your app. That way you can just tell the hardware what to do (and not to do) without the driver trying to read your mind via API calls and optimizing that way.
trelliscoded··on Ask HN: How do you backup your linux system?
I don't back up my systems. Everything important is in some cloud storage somewhere, and I have network boot into installers set up on my network. There's actually one machine where I ran out of space on the local disk and didn't feel like getting up to replace it, so I copied it into a bigger volume on one of my servers and it's been booting off of that ever since.

My customers and employers have all had these rube goldberg enterprisey backup systems, usually Symantec or Veritas talking to HP MSAs.

trelliscoded··on OpenBSD Will Get Unique Kernels on Each Reboot
Yes.
trelliscoded··on OpenBSD Will Get Unique Kernels on Each Reboot
Binutils has had debuglink support for, like, a decade now. OpenBSD uses it to put the symbols in a separate file. gdb knows how to find it using information in the executable.
trelliscoded··on OpenBSD Will Get Unique Kernels on Each Reboot
There's this thing called return oriented programming that this is a hard counter to. Return oriented programming replaced shell code a while back when stacks became non executable across the board.
trelliscoded··on OpenBSD Will Get Unique Kernels on Each Reboot
It makes sense to me, but we say "left the barn door open." I think the most natural translation is "gaping holes."
← PreviousPage 4 of 6Next →