Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

Re^5: Given my Raspberry Pi work, Happy Pi day Perlmonks!

by stevieb (Canon)
on Mar 16, 2017 at 01:26 UTC ( [id://1184798]=note: print w/replies, xml ) Need Help??


in reply to Re^4: Given my Raspberry Pi work, Happy Pi day Perlmonks!
in thread Given my Raspberry Pi work, Happy Pi day Perlmonks!

You're definitely right, considering I've prototyped a few chips now.

There's a couple where I'm leveraging the C lib wiringPi a bit too much (for specific ICs). I'm using parts of the API from there that I don't necessarily agree with, and it is forcing me to do things in my code that I don't like.

For instance, the shift register; I'm using a wiringPi library function for it, but it uses internally what are called "pseudo-pins", which collapses consistency across the board. To boot, only one set of these pseudo pins can be used per program run, so I can't include anything else that uses these pins or things break.

This means that after I get a baseline unit test automation happening, I'll be re-writing the shiftreg software myself, using techniques I've learned (bit-banging in conjunction with allowing a user to use the onboard hardware SPI), among other things. Same with iirc one other peripheral.

It just sucks that I will have to change the API in some cases; not just because it means I will have to update *insert number of tests in number of tests files here*, but for the small number of users who are using the software already, who have been providing wonderful feedback.

Thankfully, the ones that have been reaching out through issues or direct emails are all good with this. Disaster strikes for those who are using it that I don't know about.

This is a learning lesson for me. I have released some 30 odd CPAN modules, and have been able to keep my APIs pretty consistent across version bumps because my testing regimen is usually 100% coverage or it's not ready, and that includes backwards-compat. This case, there will be breakage.

It is what it is. I've learned now that when wrapping something else and going overboard with writing new low-level code to both supplant and/or augment the wrapped software, that sanity should win the day, and *everything* you're wrapping should be tested *thoroughly* like one's other software before releasing public.

It is what it is. I digress, which allows me to learn and move forward.

  • Comment on Re^5: Given my Raspberry Pi work, Happy Pi day Perlmonks!

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1184798]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others contemplating the Monastery: (5)
As of 2024-04-26 08:35 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found