The Lounge is rated Safe For Work. If you're about to post something inappropriate for a shared office environment, then don't post it. No ads, no abuse, and no programming questions. Trolling, (political, climate, religious or whatever) will result in your account being removed.
1. The lounge is for the CodeProject community to discuss things of interest to the community, and as a place for the whole community to participate. It is, first and foremost, a respectful meeting and discussion area for those wishing to discuss the life of a Software developer.
The #1 rule is: Be respectful of others, of the site, and of the community as a whole.
2. Technical discussions are welcome, but if you need specific programming question answered please use Quick Answers[^], or to discussion your programming problem in depth use the programming forums[^]. We encourage technical discussion, but this is a general discussion forum, not a programming Q&A forum. Posts will be moved or deleted if they fit better elsewhere.
4. No politics (including enviro-politics[^]), no sex, no religion. This is a community for software development. There are plenty of other sites that are far more appropriate for these discussions.
5. Nothing Not Safe For Work, nothing you would not want your wife/husband, your girlfriend/boyfriend, your mother or your kid sister seeing on your screen.
6. Any personal attacks, any spam, any advertising, any trolling, or any abuse of the rules will result in your account being removed.
7. Not everyone's first language is English. Be understanding.
Please respect the community and respect each other. We are of many cultures so remember that. Don't assume others understand you are joking, don't belittle anyone for taking offense or being thin skinned.
We are a community for software developers. Leave the egos at the door.
My mother-in-law had problems with the App "VoiceMail" from the german Telekom.
They called the hotline: "Oh, no problem, just deinstall and install it again, everything will work"...
Only that the new Version doesn't run in her phone because that Android version has been discontinued
And they don't offer the old ones... and neither can I find older versions in play store
After googling a bit I have found a site... apkpure.com
It looks like an "internet archive" for android software, they have a a list with almost 40 different past versions of this App and they offer the same for other stuff...
Do you know it / Have you used it??
Is it trustworthy? Or is a risk to get "something else" within the App?
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
I cut my teeth on a 6502 processor. 8 bit and 65536 bytes of RAM to play with. Later on I moved to 16 and finally 32 bit.
As computers get more sophisticated and accordingly more complicated looking back I realize part of me enjoys them less. Don't get me wrong - garbage collected code is great and not having to worry about out of memory exceptions on a modern OS under most circumstances is a huge win that I think many of us probably take for granted.
I like to bit twiddle though. Don't you? I liked it when I had to come up with something crafty to make it even work. It's a challenge, and it's more hacking than coding.
Recently, I had to change the timing in the driver code for a display I was using because it had never been coded for my IoT CPU.
Even with "higher level" network stuff like REST communication that element of hacking your way through without anything to spare is still there - the other day I had to roll my own HTTP chunked transfer encoding mechanism for batch uploading JSON data from an IoT device, because I didn't have enough RAM to load the logged data into memory so I could generate a Content-Length header for the upload.
All these little skills I picked up coding in the 80s for getting things done without much to work with basically atrophied after years of not only not using them but *avoiding* them.
We're not supposed to hack unless we have to.
We're not supposed to be "clever"
But here we are, full circle, with these little tiny SoC gadgets where it's all necessary again.
Yeah its a lot of fun playing with retro devices. I recently built a z80 board and loaded CPM on it. What a rush.
Haven't had to play wit it or any of my other devices lately, been working 4 months solid remodeling a house but nearly done so looking forward to getting back into it.
I'm not sure how many cookies it makes to be happy, but so far it's not 27.
I have a friend who I grew up coding with who is a fan of retrocomputing and I've been trying to pique his interest on IoT gadgets in part because it uses many of the same skills and build useful things with it. Plus there's even money in it.
I have a special affection for ham operators, especially the MARS variety. When I was across the big pond many many years ago they provided a way for us to actually call home. It was convoluted and iffy but if everything was just so we could get 3 minutes to talk to a loved one. When you're in a foreign country thousands of miles from home, 13 months at a time with only mail, and that not reliable it was a blessing.
I'm not sure how many cookies it makes to be happy, but so far it's not 27.
One of the best pieces of coding fun I've had in the last ten years was a project using a Microchip Technology PIC microcontroller. 8-bits, and IIRC 256 bytes of RAM and 2KB of ROM. The code fit on a single printed page. Timing requirements were such that the comments for each line of code included the number of clock cycles required for the instruction.
That reminds me of graphics coding on the original Nintendo
I had another project back in the late 1980's. We found an algorithm for converting a CMYK measured gamut to RGB via interpolation. The gamut was to used to perform fine-grained correction between a scanned original image and the 35mm film we were imaging on.
I was responsible for implementing the essential algorithm in software. I knew the customer eventually wanted a hardware-accelerated version, as the software version took minutes to process an image. I spent several days refactoring the code to emulate a potential hardware implementation. When I was done, the image processing time was under a second, and the hardware 'implementation' only required a few 100KB of RAM for coefficient tables compute from the 'raw' gamut data. I believe an actual hardware implementation would have been usable in real-time. Unfortunately the project ran out of money before we got that far .
All these little skills I picked up coding in the 80s for getting things done without much to work with
I used to enjoy the bit-twiddling and extreme optimization, too. I still do, when coding for my own enjoyment.
OTOH, we are professional programmers. It is our duty to solve any problem in the quickest and cheapest way that meets the requirements.
Given two options:
Use a low-powered system. Program it in C with all possible performance-enhancing tricks, with the risks associated with no memory management, etc. Completion expected in one year, with a high risk of delays.
Use a higher-powered system. Program it in C++, C#, or Java, with powerful libraries and proper memory management. Completion expected in 6 months, with a medium risk of delays.
I would say that the equation of "time to market + risk" vs "development and production platforms" is not one that can be decided by us. In some cases (e.g. small runs or one-offs), the client will opt to throw hardware at the problem, and get a faster (and possibly cheaper in the long run) solution. In others (e.g. high volume production), the cost of the production hardware trumps everything. In still other cases (e.g. a demo for an expo), meeting the schedule is all important.
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
-- 6079 Smith W.
I agree with you, and that's normally true that hardware is cheaper than software. The situations is more complicated for IoT devices. They cannot scale out, and sometimes you need their size and power requirements.
I am building something for a client on just such a platform now. Bit twiddling is necessary. They're paying for the privilege of running on one of these little guys. That's how I look at it.
I love doing it too. It means what I used to only be able to do for fun I get to do professionally now.
4kB is not a lot! That sounds like fun. 520kB seems like an incredible amount in comparison until you add the libraries for the bluetooth, the wifi, the touchscreen, the SD read/write, the HTTP REST client w/ JSON and the Fat32 FS to go with the SD pretty soon it's not much at all!
Real programmers use butterflies
Last Visit: 28-Nov-20 10:48 Last Update: 28-Nov-20 10:48