Location: TX, USA
Remote: Yes
Willing to relocate: Yes, to MX, CL, or AR.
Technologies: Linux, C++, Python, TCP/IP, 3G/4G networks, PostgreSQL
Résumé/CV: Not published to the world. I will provide to inquirers.
Email: hg@netdog.org
I have 20 years of experience in systems and engineering software development, system design, data modeling and telecom networks. This includes managing engineering projects and teams, and related business efforts such as proposal development, product management, and technical support.
The last 8 years have been in the telecom industry, the last 4 in wireless/mobile.
I'm interested in a Lead/Principal/Staff/Architect role, where my years of experience are needed.
I'm also open to contract work, and travel to LatAm.
Please don't contact me about opportunities related to: Ads, Bitcoin, Scraping, User tracking, Gambling.
The GCC Atomic Builtins mentioned in the article are not specific to Unix. They are compiler constructs, and depend on specific architecture hardware support. All x86 CPUs have such support for some years now. So these atomic operations can also be used in non-Unix software running on x86 CPUs.
The GCC documentation lists other non-intel architectures which also have the features required to support the atomic built-ins.
There are mustache twirling villains and then there are just your garden variety sorts that run the "free" world. They usually direct their violence towards the people of the part of the world run by mustache twirling villains. And use the rest of their power to strip freedom and independence from the people of their own countries... so that the world can be ruled by a single conglomerate of garden variety villains who think that they know what's best for everyone... but if you look at their track record, it's less than spectacular. You know because as the market shows centralization is not a good thing. The world should be a bazaar not a cathedral.
I think the widespread insecurity of home routers will not improve anytime soon.
Background: I work at a company which makes a "home router". It's not one you will find at a big box store, but internally it's not much different.
Most of these routers are built from a MIPS SoC manufactured by Broadcom, Atheros, or Marvell. Since their business is selling chips, not routers, these SoC companies need to make it easy for your LanWan Company startup to choose to use their chipset.
So these SoC companies will give you a reference hardware design. They will also give you a completely functional software package with Linux kernel, drivers for all the peripherals (Wi-Fi, ethernet, etc.), all the necessary user space utilities, a complete GCC cross-compiler toolchain binary which runs on Ubuntu, and a bad web app. You can literally unzip this package, run 'make', and end up with a functional filesystem image ready to flash onto the reference board.
So LanWan startup can start manufacturing routers with only one or two software devs who know some C and a part-time hardware engineer. Manufacturing is contracted out to China.
The vendor-supplied C code is not written by expert programmers. It's obvious when you (try to) read the source. It's also a huge and messy pile of code.
Where I work we use the vendor-supplied kernel but we wrote all the user space ourselves. All this stuff is written in C. The software devs here have more than a few years of experience writing C, but are very uneducated about how to write secure code. They don't think about it. And management does not think about it. The only thing that matters to management is that the box passes the tests.
I've been around long enough to have figured out that things are like this in most places. Whether small companies or big companies doesn't matter.
I believe this is the premise behind EFF's open router project. Provide a higher quality base router distribution that can be used by anyone, including SoC and router manufacturers.
Every SoC has a different kernel, heavily patched, with drivers specific to the SoC. The SoC vendor has an army of paid programmers developing this software for every SoC they make.
These Soc vendors have to start working on a new kernel long before the chip is released, as they need working software by the time the chip goes to market (to offer the router makers). Broadcom's business depends on this. They will not simply hope some loose-knit group of volunteers will timely produce software which will help them sell their new chips.
And it's not realistic for the open router project to do this much work. It would require cooperation from the SoC vendors, providing free and early access to their kernel driver source and complete documentation for their chips. I don't see this happening.
At best the open router project could release software for hardware which is already a year or two old.
Sorry to be such a pessimist, but the incentives to make this work are just not there for the businesses involved.
> That's not how the internet works. Nobody PUSHES data. People PULL data.
There's more to "the Internet" than just "the WWW". While HTTP could be considered a "pull data" protocol, there's plenty of application protocols which involve "pushing" data over TCP/IP transport.
Yes I'm aware. But the vast majority of traffic happens as a result of a request of some kind.
In other words Netflix doesn't start streaming data to me for the hell of it. Pandora doesn't stream songs to my computer unless I hit play. Songs don't get downloaded from iTunes unless I request them and pay for them.
This is in contrast to the mail that the USPS delivers to my door. I don't ask for most of it and I have to sort through it and throw all the bullshit away.
I guess what I mean is that most internet traffic is based on consent of some kind. While paper mail is not.
I might not specifically request any particular bits but the majority don't show up unannounced and unwanted.
> there's plenty of application protocols which involve "pushing" data over TCP/IP transpor
Right but by the time a TCP link is established you've already setup a session which can't be done unilaterally. That is akin to consent and quite possibly a request. You can't be "data-raped" because if you decline the TCP session that's the end of it. Someone can send a billion request to initiate TCP sessions but they can't initiate without your (or your computer's) consent.
Given the router/firewalls that basically everyone has between their modems and their computers it's getting very, very difficult to send data to residential ISP customers without their express or implied consent.
TCP quite literally is NOT UDP. You can do TCP over IP and you can do UDP over IP.
But under NO circumstances could you claim to do UDP over TCP/IP.
Were Netflix performing this "data rape" of Verizon's network it would be huge news as a DoS/DDoS attack. But that's not what we're hearing.
CAN people perform attacks? Yes absolutely and it requires no consent. But without some kind of consent it's regarded as an attack rather than as legitimate network traffic.
par is one of the handiest text tools around. I often use it to reformat longer quotes for HN. I just wish the documentation was a little better. I can only tell you about the two or three options that i use. I do not understand all of the other possible formatting commands and I definitely have no idea why I always set
PARINIT="rTbgqR B=.,?_A_a Q=_s>"
The first version of par was released in 1993 and the first Debian package was in 1996. The latest release will be 13 years old on Tuesday.
The last 8 years have been in the telecom industry, the last 4 in wireless/mobile.
I'm interested in a Lead/Principal/Staff/Architect role, where my years of experience are needed.
I'm also open to contract work, and travel to LatAm.
Please don't contact me about opportunities related to: Ads, Bitcoin, Scraping, User tracking, Gambling.