HNHacker News
TopNewBestAskShowJobs

coderjames

622 karma · joined November 14, 2013

Senior Aerospace Software Engineer building the road to space. If I ship bugs, people might literally die. If you want to help build the road to space, let's talk.
submissionscomments
coderjames··on How I got to 200 productive hours a month
I'm one of the early birds. I'm awake by about 5 AM without an alarm, regardless of weekday or weekend. That keeps my sleep schedule consistent.

I get to the office between 6 and 6:30 in the morning and take a 30 minute lunch, so I'm out by 3 PM. This gives me several daylight hours in the afternoon before heading to bed around 8 PM to start the cycle over again.

coderjames··on Ask HN: Which companies give programmers offices?
Universal Avionics provides their Engineers private offices. It was important to the founder of the company, so when a new building was constructed it was specifically arranged to provide as many offices as possible, even if some are internal (no outside window).
coderjames··on Why do developers who could work anywhere flock to the most expensive cities?
> All interesting types of development work can easily be done remotely.

My employer would prefer I not walk out the building with the rather expensive test equipment necessary to debug our latest prototypes (which they would also prefer to keep in the building). Some of us software developers work on actual physical products, those which involve using a logic analyzer, oscilloscope, and JTAG pod for debugging. This equipment is too expensive to replicate for every engineer and has to be configured hands-on.

Different folks have different ideas of what is interesting to work on.

> Google, Facebook, WhatsApp, name it. The unicorn billions are all things that never needed face-to-face spitting.

All terribly boring to me. That's why I'm an embedded software engineer. Somebody has to write the code that keeps your airplane in the air.

coderjames··on Discussions with Apple regarding license agreement
Or PowerVR texture compression, which according to Anandtech is the canonical method for iOS development:

"Because Apple’s SoCs have always used GPUs from the same vendor, certain vendor-specific features like PowerVR Texture Compress (PVRTC) are widely used in iOS app development"

[0] http://www.anandtech.com/show/11243/apple-developing-custom-...

coderjames··on Anthony Bourdain on not having debt
I was thinking about this recently when I filed my taxes.

Maybe if they provided some kind of itemized receipt? "You paid $x in taxes. This was distributed as $y to infrastructure, $z to education, $w to defense" etc.

coderjames··on Ask HN: Which developers do you closely follow?
Casey Muratori: https://mollyrocket.com/casey/
coderjames··on Things Every Hacker Once Knew
Many of the control codes are still in active use today in the air-ground communications protocol spoken between airplanes and Air Traffic Control.

The ACARS[0] protocol I work with every day starts each transmission with an SOH, then some header data, then an STX to start the payload, then ends with either an ETX or an ETB depending on whether the original payload had to be fragmented into multiple transmissions or fits entirely into one.

These codes aren't archaic and obsolete in the embedded avionics world.

[0] ACARS: "Aircraft Communications Addressing and Reporting System" - see ARINC specification 618[1]

[1]http://standards.globalspec.com/std/10037836/arinc-618

coderjames··on What's wrong with Software nowadays and how we can fix it
This was an insightful and thought-provoking response. Thank you for taking the time to write it. Given how much a word processor's spelling and grammar checking improves my own writing, I can definitely see how an equivalent assisted-programming tool could help people.
coderjames··on Ask HN: What is your hardware/garage side-project?
I've been developing a Motorola 68K-based retro computer. The goal is somewhere around Atari ST-era sophistication, but it isn't quite there yet. Currently has a UART, some switches, some LEDs, and a periodic timer. Still needs keyboard input, video output, removable storage, and a slightly smarter interrupt controller.

http://coderjames.bitbucket.org/

The website has a bunch of broken links to missing material, as I haven't gotten around to writing it yet. All the schematics, gerbers, and firmware source code are up though, so it should be reproducible.

coderjames··on What's wrong with Software nowadays and how we can fix it
>To fix this, we need to increase the currently tiny number of people who are able to write, modify, combine and share software. We need a tool that makes writing software easy and fun, and accessible to everyone. A tool that enables software literacy.

Global access to niche knowledge doesn't seem like an effective use of the world's time to me. Let's look at this same idea, but replace "develop software" with "perform brain surgery."

> To fix this, we need to increase the currently tiny number of people who are able to perform brain surgery. We need a tool that makes performing brain surgery easy and fun, and accessible to everyone. A tool that enables neurosurgical literacy.

Just like Software Engineers don't need to know how to perform neurosurgery, accountants, marketers, burger flippers, and salespeople don't need to know how to write software. I'd rather the CEO of the company I work for spend time on growing the business, not learning how to write a "Hello, world!" program.

coderjames··on Microsoft Kills off ISVs by Foisting Its Own Products That Are No Better
I meant that I literally did not have a visible Start Menu that I could interact with because Windows 10 uninstalled the version of Classic Shell[1] I was using as part of installing the Anniversary Edition upgrade. I actually had that message pop up, "Windows has uninstalled this program because it is known to be incompatible." Luckily there was an Anniversary Edition-compatible version available that I could reinstall.

Note also that I don't especially consider Classic Shell to be an odd program given that when I briefly worked at Microsoft a few years ago (Win 8.1 was current), my manager actually recommended I install it on my second day there on the company-provided computer in order to retain the classic UI because that group found the Win8 touch UI to be unusable on the desktop.

[1] http://www.classicshell.net

coderjames··on Microsoft Kills off ISVs by Foisting Its Own Products That Are No Better
> uninstalling user-installed apps

I ran into this when the Windows 10 Anniversary Update rolled out. In my case the program Microsoft uninstalled was a Start Menu replacement, so I didn't actually have a functional start menu for several hours after the upgrade until I got the updated version of the 3rd-party program installed.

This left me shocked, dumbfounded, speechless, and furious. Everything I've observed over the last 20 years says Microsoft honours backwards compatibility above all else. Raymond Chen has great blog posts about the huge efforts they used to go through. My understanding is that's why businesses have stuck with Windows; it'll keep running their 10, 15 ,20 year old legacy VB line-of-business apps even on their newest OS. Apparently Microsoft has now decided to throw out backwards compatibility? I don't understand this decision.

coderjames··on A Method I’ve Used to Eliminate Bad Tech Hires
> This was for a particular team in one branch.

Which is a bummer. When I interviewed at Amazon a few years ago, it was a day of coding on the whiteboard. Turned out I didn't have the Java experience that group wanted, and I'm allergic to pager duty so that was a non-starter for me.

coderjames··on Not Your Problem
For developing 2D games, I've found the combination of Love2D [0], Bump.lau [1], anim8 [2], and Gamera [3] to be extremely productive for me. This is a Lua game engine with additional libraries for collision detection, animation, and moveable/zoomable camera.

I'm an embedded C++ programmer by day so I've almost certainly done many of the things on the OP's list. It wasn't until I set C++ aside after 15 years or so and gave Lua a chance that I finally started making real headway on my Secret Agent Sam remake.

[0] http://love2d.org/ [1] https://github.com/kikito/bump.lua [2] https://github.com/kikito/anim8 [3] https://github.com/kikito/gamera

(Note: I'm not kikito, just an appreciative user of his work)

coderjames··on Comma.ai Fiasco Leaves None Unscathed
Apparently a startup built or is working on building an after-market ADAS system for Hondas. In typical startup fashion they seem to have moved fast and broken things, failing to consider the regulatory environment in which they tried to introduce their product. The NHTSA would like some additional information on their product [1]. Instead Comma.ai decided this was too hard, gave up, and is taking their product to China.

Reading over the NHTSA's requests, I don't see anything unreasonable or that should be hard for them to answer. Maybe this is really just another Theranos fraud and they figured they better give up before they get found out.

[1] https://www.scribd.com/document/329218929/2016-10-27-Special...

coderjames··on Tile Studio: development utility for graphics of tile-based games
I use Tile Studio as my only sprite and map editor for 2D platformer development (first in C, then C++, now Lua/Love). The ability to define my own output format instead of having to deal with somebody else's XML is a killer feature for me - a primary reason I've previously tried and discarded Tiled.
coderjames··on Google May Be Stealing Mobile Traffic
> I would expect an un-biased search engine to rate pages with and without AMP equal

Well there's your problem :-). Google isn't an unbiased search engine, they're a commercial entity with a financial interest in feeding you particular search results. They're absolutely going to be biased in the results they provide you.

coderjames··on USB-IF Publishes Audio Over USB Type-C Specifications
My wife does this pretty much every night with her iPhone SE. Listens to music on her EarPods while keeping it charged up.
coderjames··on You can now buy bare Snapdragon SoCs with 410E and 600E
Hopefully that will change in 1Q2017 when Xilinx finally releases to production their new Zynq UltraScale+ MPSoC[1]. It has a quad-A53 cluster and a dual-R5 cluster. It is still in early-access so I can't say much more beyond that (we're designing it into a system so I'm constrained by the early-access NDA).

[1] http://www.xilinx.com/products/silicon-devices/soc/zynq-ultr...

coderjames··on Apple Surveying MacBook Pro Users About Headphone Jack and Other Ports
I use the headphone port on my rMBP (2013) daily. Frequently use it at the same time as both USB ports and the mag-safe charging port. HDMI port used often enough that I wouldn't buy a laptop without one. I've never used either Thunderbolt port and would actually prefer to swap those out for more USB ports.

[edit: Thunderbolt, not lightning. See, I never use it.]

coderjames··on Why Americans don't take sick days
My experience: the three companies I've worked for as a Software Engineer in the USA all tracked vacation and sick leave as two distinct buckets. Vacation gets paid out when you leave the company, sick leave does not.

If I'm sick and out of sick days I can either go in to work (infecting everyone else), burn a vacation day, or (presumably) not get paid. I've never been willing to risk trying the third option, and since I don't have a ton of vacations days, I'm most likely to pick the first one.

coderjames··on Fujitsu Switches Horses for Post-K Supercomputer, Will Ride ARM into Exascale
I'd never heard of the Rex Neo until your post. Looks very interesting!
coderjames··on The RC2014 Retro Computer
I've started putting something together, but in case I never finish, I've at least tossed the schematics, gerbers, and CPLD source code up on the web, if you're really interested:

  http://coderjames.bitbucket.org
Next I have to figure out how to properly make public the BitBucket repo holding the source code for programs that run on the system.
coderjames··on The RC2014 Retro Computer
That would be awesome! Thanks for the idea.
coderjames··on The RC2014 Retro Computer
My home-brew 68K machine just recently reached the same level of completeness except for the particular BASIC implementation (Tiny vs. Microsoft). Guess I should get it written up as a blog post or three.
coderjames··on I decided to make a graphics card for my Amiga 2000
This is highly relevant to my interests, as I'm currently home-brewing a 68K-based system in need of a video card.

Thanks for sharing your work! This is awesome.

coderjames··on Regulators Propose Banning Theranos Founder from Blood Testing
> back in the dot com boom this thing would have been held by mom and pop.

Who also should have known better. If someone doesn't understand how a company they invest in makes a profit, or what the risks to that company are, they have no business investing in it. For example, I hold agency-MBS REITs in my portfolio, but only because I'm willing to read the quarterly filings and keep an eye on news relevant to interest rates. They are absolutely not an investment I would recommend to most people who want something simple they can "set and forget."

coderjames··on Tiny DSP Based Erlang / Linux Boards
My single biggest pain point was the single-buffered UARTs in the 53X series.

On the BF-538 that we were using, there are three of them and we needed them all. Since each one can only buffer a single incoming or outgoing byte at a time, there's a lot of interrupt-handling overhead with all of the RISC-style registers that need to be saved on each incoming byte.

We were already using two of the SPORTs and both DMA engines for hard real-time transmit and receive signal processing with microsecond-scale deadlines, so they weren't available to offload the UARTs. But since the UARTs have such tiny hardware buffers, their interrupts have to be very high priority in order to avoid dropping characters.

On a different project we were trying to build a very-low-power system around one of their new (at the time) BF52X parts, which had new low-power states for extended sleep. Except in the 0.0 version of the chips, those low-power states simply didn't work. An updated errata sheet was published a week or two later documenting that the processor couldn't be woken up once put to sleep.

coderjames··on Tiny DSP Based Erlang / Linux Boards
That was my reaction, too :-). My day job for 4 years was writing a software-defined radio for aviation on a Blackfin-based system. Intel and ADI made some really unfortunate design choices with that architecture that ADI seems surprisingly unwilling to correct.
coderjames··on Ask HN: Should engineering jobs have a nap time?
Aerospace. If I have to put in a 50 hour week, something's gone horribly wrong and its probably an "all hands on deck" situation.
← PreviousPage 3 of 5Next →