HNHacker News
TopNewBestAskShowJobs

jerryr

786 karma · joined October 26, 2010

https://jerryryle.com
submissionscomments
jerryr··on Dependency Inversion in C Using Function Pointers
Agreed. I find articles like this great for passing along to junior engineers to help extend their vocabulary, making our pairing more productive. So, thank you for this nice little example of using dependency injection to remove static dependencies. Which, besides reducing "smell", makes unit testing more tractable.

I do agree with the parent's list--especially the "void*" pointer for passing around context. Unless the injected routine is doing something very simple, some context is almost always required. Providing that along with the function pointer helps avoid globals--and thus avoid unnecessary singletons.

I could see how providing a complete example that illustrates the use of this context might muddy the core focus of your article. Maybe a follow-up article? :) Thanks again for creating teaching material for me.

jerryr··on Ask HN: Who Is Hiring? (June 2012)
San Francisco, CA (25 Kearny St) - MindTribe Product Engineering, Inc.

Hi, I’m MindTribe’s CTO. I’m searching for people who enjoy learning and making embedded systems. MindTribe is a small company, and I am looking for people with whom I would personally like to work and who want to work with me and my team. We've moved from Palo Alto to SF and we're finally settled into our new location. Now, besides experienced SENIOR embedded software engineers, I am looking for JUNIOR engineers as well. If you enjoyed your microcontroller classes in school, come join us in SF for continuing education.

Here are the tools I use regularly: The C programming language (specifically ISO/IEC 9899:1990); Eclipse, Make, Subversion, Git, Python; Linux, Embedded Linux, Android, iOS; ARM processors (TI OMAP, TI Stellaris, NXP LPC); Atmel AVR/AVR32, Microchip PIC, TI MSP430, Cypress PSoC

Here is what I enjoy doing at work: Writing embedded software that runs on cool hardware; Figuring out how to apply agile techniques such as test-driven development to embedded product development; Reducing regressions and supporting customer development with agile techniques; Developing embedded libraries for things like USB, TCP/IP, graphics displays, sprites, fonts, encryption, etc.; Having long, dorky conversations with coworkers about programming languages, physics, DIY sous-vide setups, whether it should be called "firmware" or "software", etc.

Here is what I enjoy doing outside of work: Hiking, walking around San Francisco; Pseudonymous humor blogging; Cooking and baking; Photography; Reading. Recently: "Test Driven Development for Embedded C", "The Clean Coder", "The Four Steps to the Epiphany", "Norwegian Wood", "The Mind's Eye", and currently "Sealab: America's Forgotten Quest to Live and Work on the Ocean Floor"

You can see examples of how I’ve applied my tools and passion here: http://mindtribe.com/portfolio/

I ask that you bring some C and microcontroller experience--other than that, you don't have to use the same tools and you don't have to enjoy the same things. But if you're excited about similar stuff, drop me a line at hn@mindtribe.com to let me know.

We're also hiring ELECTRICAL and MECHANICAL engineers!

jerryr··on The 144 Million Dollar Button
:) They're working on it: http://bits.blogs.nytimes.com/2012/03/06/with-new-hardware-s...
jerryr··on Christmas tree made out of form elements (webkit)
I just spent way too much time catching and clicking all the radio buttons...
jerryr··on Space Station time lapse
I'm embarrassed by my ignorance of geography, but quite intrigued, so I'll ask: can anyone identify the crooked little vein of light that's centered at 3:48 and again (though to the left) at 4:38?
jerryr··on Ask HN: Who is Hiring? (October 2011)
San Francisco, CA (25 Kearny St) - MindTribe Product Engineering, Inc.

Hi, I’m MindTribe’s director of Software Engineering. I’m searching for people who enjoy learning and making. We’re a small company, and I’m looking for people with whom I would personally like to work and who want to work with me. We're moving from Palo Alto to SF on Nov 1st. And now, besides experienced SENIOR embedded programmers, I am looking for INTERNs and JUNIOR engineers as well. If you enjoyed your microcontroller classes in school, come join us in SF for continuing education.

Here are the tools I use regularly: The C programming language (specifically ISO/IEC 9899:1990); Eclipse, Make, Subversion, Git, Python; Linux, Embedded Linux, Android, iOS; ARM processors (TI OMAP, TI Stellaris, NXP LPC); Atmel AVR/AVR32, Microchip PIC, TI MSP430, Cypress PSoC

Here is what I enjoy doing at work: Writing embedded software that runs on cool hardware; Figuring out how to apply agile techniques such as test-driven development to embedded product development; Reducing regressions and supporting customer development with agile techniques; Developing embedded libraries for things like USB, TCP/IP, graphics displays, sprites, fonts, encryption, etc.; Having long, dorky conversations with coworkers about programming languages, physics, estimating Facebook’s relative revenue distribution between advertising and games, etc.

Here is what I enjoy doing outside of work: Hiking, walking around San Francisco; Pseudonymous humor blogging; Cooking and baking; Photography; Reading. Recently: "Test Driven Development for Embedded C", "The Clean Coder", "The Four Steps to the Epiphany", "The Art of Racing in the Rain", "Norwegian Wood", "The Mind's Eye", and "Cutting for Stone".

You can see examples of how I’ve applied my tools and passion here: http://mindtribe.com/portfolio/

You don’t have to use the same tools and you don’t have to enjoy the same things. But if you’re excited about similar stuff, drop me a line at hn@mindtribe.com to let me know.

We're also hiring ELECTRICAL and MECHANICAL engineers!

jerryr··on Ask HN: Who is Hiring? (September 2011)
San Francisco, CA (25 Kearny St) - MindTribe Product Engineering, Inc.

Hi, I’m MindTribe’s director of Software Engineering. I’m searching for people who enjoy learning and making. We’re a small company, and I’m looking for people with whom I would personally like to work and who want to work with me.

Here are the tools I use regularly: The C programming language (specifically ISO/IEC 9899:1990); Eclipse, Make, Subversion, Git, Python; Linux, Embedded Linux, Android, iOS; ARM processors (TI OMAP, TI Stellaris, NXP LPC); Atmel AVR/AVR32, Microchip PIC, TI MSP430, Cypress PSoC

Here is what I enjoy doing at work: Writing embedded software that runs on cool hardware; Figuring out how to apply agile techniques such as test-driven development to embedded product development; Reducing regressions and supporting customer development with agile techniques; Developing embedded libraries for things like USB, TCP/IP, graphics displays, sprites, fonts, encryption, etc.; Having long, dorky conversations with coworkers about programming languages, physics, estimating Facebook’s relative revenue distribution between advertising and games, etc.

Here is what I enjoy doing outside of work: Hiking, walking around San Francisco; Pseudonymous humor blogging; Cooking and baking; Photography; Reading. Recently: “Test Driven Development for Embedded C”, “The Clean Coder”, “The Four Steps to the Epiphany”, “The Art of Racing in the Rain”, “Norwegian Wood”, and "The Mind's Eye".

You can see examples of how I’ve applied my tools and passion here: http://mindtribe.com/portfolio/

You don’t have to use the same tools and you don’t have to enjoy the same things. But if you’re excited about similar stuff, drop me a line at hn@mindtribe.com to let me know.

We're also hiring Electrical and Mechanical engineers!

jerryr··on Django Offline Docs
Thank you! I appreciated the thoughtful "Why?" column as much as the offline docs themselves.
jerryr··on Ask HN: Who is Hiring? (August 2011)
San Francisco, CA - MindTribe Product Engineering, Inc.

Hi, I’m MindTribe’s director of Software Engineering. I’m looking for people who enjoy learning and making. We’re a small company, and I’m looking for people with whom I would personally like to work and who want to work with me.

Here are the tools I use regularly: The C programming language (specifically ISO/IEC 9899:1990); Eclipse, Make, Subversion, Git, Python; Linux, Embedded Linux, Android, iOS; ARM processors (TI OMAP, TI Stellaris, NXP LPC); Atmel AVR/AVR32, Microchip PIC, TI MSP430, Cypress PSoC

Here is what I enjoy doing at work: Writing embedded software that runs on cool hardware; Figuring out how to apply agile techniques such as test-riven development to embedded product development; Reducing regressions and supporting customer development with agile techniques; Developing embedded libraries for things like USB, TCP/IP, graphics displays, sprites, fonts, encryption, etc.; Having long, dorky conversations with coworkers about programming languages, physics, estimating Facebook’s relative revenue distribution between advertising and games, etc.

Here is what I enjoy doing outside of work: Hiking, walking around San Francisco; Pseudonymous humor blogging; Cooking and baking; Photography; Reading. Recently: “Test Driven Development for Embedded C”, “The Clean Coder”, “The Four Steps to the Epiphany”, “The Art of Racing in the Rain”, and “Norwegian Wood”

You can see examples of how I’ve applied my tools and passion here: http://mindtribe.com/portfolio/

You don’t have to use the same tools and you don’t have to enjoy the same things. But if you’re excited about similar stuff, drop me a line at hn@mindtribe.com to let me know.

--Jerry

jerryr··on Forgotten C: The comma operator
I think that when you overload the comma operator in C++, you change the nature of the sequence point. I believe you're no longer guaranteed to have "1, 2, 3" evaluated in that order. In your example, this doesn't matter, but if it was "f1(), f2(), f3()" and for some reason the sequence of those calls determined what each returned, you might have a problem. I could be wrong here though--my C++ is rusty from years of disuse.
jerryr··on Things you should know when interviewing for a programming job
Agreed. And remember you're only seeing a little snapshot in time, so there are probably quite a few questions you could ask regardless of your observational powers.

Do you eat lunch together? Is dress always this casual? How often do you refresh your equipment? How often do people work in groups vs solo? Do you encourage working in pairs? How geographically distributed are project teams, typically? Do people take personal calls at their desks? How do you manage shared resources like conference rooms? At my last job, everyone stood up and belted show tunes for a 1/2 hour at tea--do you have such a program?

jerryr··on Persona - A concept email client
Yeah, and the vocals compete with the narrative, so they might want to change it regardless.
jerryr··on Noah Kagan and the Faceless Bitch slide
This is worth a read for anyone presenting: http://geekfeminism.wikia.com/wiki/Category:Incidents

I won't go so far as to condone the OPs actions, but I can understand why women in tech might be at a breaking point.

jerryr··on Apple Patent Could Bring New Type of File Sharing to iPhone & iPad
The Siftables guys demoed a pouring interface for color mixing, among other things: http://www.ted.com/talks/david_merrill_demos_siftables_the_s...

Not sure if that feature made it into the commercially available version, but they definitely still have the proximity features, which are pretty cool: https://www.sifteo.com

jerryr··on Ask HN: Who is Hiring? (July 2011)
As of September this year: San Francisco near Market Street

Currently: Palo Alto, CA (very close to Caltrain)

MindTribe is hiring Electrical, Mechanical, and Software engineers. We're an engineering consultancy in downtown Palo Alto (considering an office in SF very soon though, so if that interests you, let us know). Notable projects include the Aliph Jawbone headset, the Pure Digital Flip (before it was acquired by Cisco). We're looking for thought leaders who will help us bring agile development to physical products in support of our clients' customer development efforts. http://mindtribe.com/jobs/

I'm our Director of Software Engineering and, despite the requirements listed on our website, I'm specifically looking for enthusiastic embedded developers with strong C skills, test-driven development discipline, and agile planning experience--regardless of degree or pedigree. And the agile experience/mindset is more important than intimate knowledge of C. If this excites you, contact me at hn@mindtribe.com.

jerryr··on Advice From An Old Programmer
As someone who's been trying to hire good software engineering professionals for some time now, I'm going to tentatively agree with, "people who can code in the world of technology companies are a dime a dozen"; however, I'm going to posit that, in the world of technology companies, good software engineers who are passionate, diligent, and bent on improving themselves and their field are rare. So, please do not despair because you've read the Old Programmer's advice and you're not fluent in biology, medicine, government, sociology, physics, history, or mathematics. I can say that even as a generalist, you can help advance the field of software engineering, and I represent one technology company that will value you for that.
jerryr··on PVS-Studio vs Chromium
I'm used to pricing for commercial embedded tools, which is rarely this straightforward or inexpensive. I'm not saying that's a good thing, but that's why I found this "cheap". Of course, I can't really speak to its value without having evaluated it. The "only" qualifier presumed it's a comprehensive, commercially-supported static analysis tool that I would find valuable, but the call for actual users' opinions was my first step in testing this presumption. I'm installing it now.
jerryr··on PVS-Studio vs Chromium
Has anyone else used PVS Studio before? Looks interesting as a static analyzer, but curious how it stacks up against other options. It looks like it's pretty reliant on Visual Studio. This is the first I've heard of it. With a free trial and at only 1,600 Euro for a single-user license, I might actually try it out.
jerryr··on SonyPictures.com hacked, personal information and passwords compromised
Hey, I'm curious whether my information was compromised in this attack, but I'm too lazy to figure out how to figure out whether it was. If someone has downloaded the released data and is looking for a weekend project (and the weekend's coming up), I'd love a site that lets me easily determine whether I'm affected.
jerryr··on Ask HN: Who is Hiring? (June 2011)
Palo Alto, CA (very close to Caltrain)

MindTribe is hiring Electrical, Mechanical, and Software engineers. We're an engineering consultancy in downtown Palo Alto (considering an office in SF very soon though, so if that interests you, let us know). Notable projects include the Aliph Jawbone headset, the Pure Digital Flip (before it was acquired by Cisco). We're looking for thought leaders who will help us bring agile development to physical products in support of our clients' customer development efforts.

http://mindtribe.com/jobs/

I'm our Director of Software Engineering and, despite the requirements listed on our website, I'm specifically looking for enthusiastic embedded developers with strong C skills, test-driven development discipline, and agile planning experience--regardless of degree or pedigree. And the agile experience/mindset is more important than intimate knowledge of C. If this excites you, contact me at hn@mindtribe.com.

jerryr··on Why Google Choosing Arduino Matters
I thought it seemed a bit optimistic as well. It'll be interesting to see how many handset manufacturers adopt the open accessory kit or opt to omit it or otherwise lock it down--similar to those that chose to provide their own app stores (I'm under the impression that you can do this, but you lose the ability to certify your device with Google and therefore lose access to the Android marketplace, Gmail client, maps, etc., correct?). I believe manufacturers are still generally motivated to profit from their accessories' ecosystems (not that the toolkit precludes this, but it relinquishes some control they've become used to).

That said, I'd love Apple to open up their accessory platform. I maintain an Apple accessory software stack that I'd love to throw on Github (frankly, I'm tired of maintaining it), but I am unable to do so due to our development agreement & the closed nature of their accessory program.

jerryr··on Soldering is easy - 7 page comic book about how to solder
Hah. That's great. Soldering is easy. And, a soldering iron is almost as versatile as a Swiss Army knife[1]. You can use it for soldering, wood burning, spot retouching a hot-glue job, boiling water, opening those pesky Costco clamshell packages without slicing an artery, shaping open or closed-cell foam, giving toy soldiers horrific battle wounds, rosin-based aromatherapy, a(u)nt punishment, and general hole-melting. It's the lightsaber of our millennium.

And finally, to make this comment more useful, so I don't hemorrhage my 33 points of karma: If you've ever wanted to gracefully rework SOICs, QFPs, etc., invest in a good hot air system with appropriately-shaped spreading tips. Amazon has a basic kit for $139: http://www.amazon.com/X-TRONIC-Digital-Rework-Soldering-Stat...

Do not use ChipQuik. It's expensive, unnecessary, and messy.

[1] Metcal enthusiasts, before you have a heart attack, recall that Radio Shack sells disposable lightsabers for $7.99.

jerryr··on A complete Internet web server built into an Ethernet (RJ-45) jack
It's a manufacturer-specific serial protocol--NOT standard. You can find the command reference here: http://www.lantronix.com/pdf/XPort-Pro_CR.pdf

But, if you're really interested in internet-enabling a new product, you'd likely be better off selecting a microcontroller with built-in Ethernet (or an Arduino with Ethernet shield, if prototyping). In my experience, products like the XPort were better for manufacturers looking to internet-enable a legacy device with a free serial port.

jerryr··on A complete Internet web server built into an Ethernet (RJ-45) jack
Yeah, looks like an XPort. Maybe this is the evaluation kit, which comes with the carrier board for ~$150-200. It's been a while since I used one (probably 7 years ago), but the serial interface was rather limited. To develop firmware for the XPort itself, you needed an SDK only available under NDA for customers they were willing to support (we were such a customer and the SDK was reasonably usable). It was a cool idea & a great way to Ethernet-enable serial devices, but nowadays something like the Arduino with Ethernet shield is probably more accessible.
jerryr··on I’ve given up using soap & shampoo forever
I stopped showering with soap and shampoo in high school after a bout of dry skin. After a transition period of length similar to the author's, I saw the same improvements. Today, I use soap (though not antibacterial) when cooking and whenever I'm covered in something like grease or rosin (hey, it happens) that could use the extra help soap affords. I only use the tiniest bit of shampoo to assist in getting the itchy little hair bits out after a haircut.

While I have personally gained from the benefits of this experiment, I'm not a fan of the rationalizations some use to justify minimalism/naturalism/whatever you'll call it -- the arguments that run along the lines of "we didn't need it years ago, why do we need it today?" As an engineer, I find this wholesale skepticism of technology especially repugnant. Thus, I really appreciate that Sean frames this in terms of experimentation and checking hypotheses--be they self or socially formed. That is cool.

jerryr··on Offer HN: hardware engineering advice from MindTribe, Palo Alto, Dec. 9
Yes, we've talked about phone, videoconference, and email sessions for those not in Palo Alto. We'll likely open up those options soon.

We've purposely not specified selection criteria yet. We're waiting to see what kind of response we get. If it's manageable (which might be helped by the initial physical presence requirement), we'll help as many people as we can on Dec 9th and begin scheduling the remainder in January. If the response is somehow overwhelming, we'll probably triage it based upon our opinion of the product's chance for success--though technically interesting projects will stand out as well.

We'll write about our experience with this experiment, which will likely include a retrospective of our selection process. We're also hoping to synthesize common advice into blog articles that should be generally helpful.

jerryr··on Offer HN: hardware engineering advice from MindTribe, Palo Alto, Dec. 9
Wow. That was fast. I was just about to submit this as an Offer HN, when I saw your submission.

Just wanted to add that MindTribe is a product development firm specializing in products that integrate hardware, software, and mechanical engineering (though not all of our programs feature all three). We're opening up free office hours to give entrepreneurs and startups 1-on-1 advice for getting their products from concept to market. There's no catch and no strings. We love talking about product development and we've been doing this informally for years. We're finally able to support this on a regular basis so we can more formally offer the service publicly.

jerryr··on Gmail: Trap my contacts now (warning when exporting contacts to Facebook)
The wording is definitely questionable. The savvy user will understand that if contacts are imported into Facebook and maintained there, changes can't be exported or synched back to Google--a valid concern. But the current warning copy doesn't quite capture that and seems to imply, as you've mentioned, that your data is moved.

Google is so engineering-oriented, I can't tell if this was an honest, poor choice of wording or intentionally vague for the purpose of inducing fear. I'm not against the warning if it's in the spirit of educating users about how to keep their data "free", but if this is indeed vendetta as others here are suggesting...well, that's Google's prerogative, but this method would seem a bit unprofessional. If they want to attack Facebook, I'd have more respect if they were explicit about it in this warning.

jerryr··on Questions you'd be crazy not to ask at the start of your next project
I agree with your checklist point. I've witnessed smart, creative people abandon thought and agility to complete a checklist. I've personally struggled with this issue in our business development process. When we're meeting with a new client, I get so excited about their project, that I dive into technical details and forget to ask fundamental questions about milestones, schedule, resources, etc. But when I have a checklist in front of me to ensure I ask these questions, I'm too focused on the list and miss important details specific to the project. We've found that a decent compromise is to have at least two people from our side at every meeting. One is dedicated to scenario-specific quick thinking and the other more mechanically ensures we've covered the fundamentals. It's still not perfect for some of the other reasons you mention, but having only one person in charge of the checklist and having others be checklist-free seems to allow for a good mix of agility while ensuring the critical parts of our process are followed.
jerryr··on [dead]
Well, because the title's so short, I upvoted by accident from my iPad. From now on I'm using HN with a capacitive stylus. :P
← PreviousPage 4 of 5Next →