|
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.
3. No sys-admin, networking, "how do I setup XYZ" questions. For those use the SysAdmin[^] or Hardware and Devices[^] forums.
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.
cheers,
Chris Maunder
The Code Project | Co-founder
Microsoft C++ MVP
modified 16-Sep-19 9:31am.
|
|
|
|
|
<rant>
If you want to build up some technical debt that becomes brittle, difficult to maintain, and that will eventually metastasize into a massive pus spewing ball of nightmares be sure to package your code into multiple NuGet packages that you sprinkle over your projects like hail on a greenhouse.
Do these things save time?
No.
The web of dependencies that you can build with these things is incredible and I'd argue that the time it takes to properly manage these conveniences more than offsets simply keeping all your code for a solution within that solution. I've about had it with nice little widgets you can include in a project that immediately explode when jumping from JQuery 3.5.1 to 3.5.2 - indecipherable errors and surprise failures everywhere.
Don't even get me started on the magic of code generation... that is a nice little dependency that will absolutely stab you in the back, rob you, steal your car and run off to Mexico with your girlfriend. I'm getting to the point where I hate every single freakin' pointdexter that posts a solution of some sort on GitHub - I'm glad you've managed to pad yoru resume - thanks for the headache.
|
|
|
|
|
MadGerbil wrote: NuGet ... JQuery
There's your first problem.
Client-side libraries like Bootstrap and jQuery should never have been distributed as NuGet packages. Especially since Visual Studio now has a built-in client library manager[^] to manage them for you.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
NO!
You may be a nice, seasoned, and well-adjusted developer but I won't let you justify this nonsense or shift the blame to me. I'm mid-rant right now and you need to just let this play out.
-------------------------------------
As for the substance of your post there are many client side web packages that have very specific JQuery dependencies and so forth. It isn't as easy as just letting Visual Studio manage it. It should be that easy, but alas...
|
|
|
|
|
MadGerbil wrote: a nice little dependency that will absolutely stab you in the back, rob you, steal your car and run off to Mexico with your girlfriend.
Promise? Please?
"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!
|
|
|
|
|
Sounds to me like your Chakras are blocked or out of balance. I think you need to fine tune your meditation techniques.
Just saying...

|
|
|
|
|
Well... I mean... never use this-party code.
Always roll your own and you can always locate the culprit very easily.
|
|
|
|
|
Saying this from the beginning. 90% of "programmers" are either amateurs or never work on anything safety relevant.
Every time we add some component we keep a copy under version control and it is frozen. Only new major versions or extensively customized ones may use different versions, which become frozen and bundled as well.
In my current field every software component has to have an accompanying heap of safety documents and certifications that there is no will to joyfully add crap to the codebase... and that's without considering that 64 kB of code memory might be all that we have to work with so everything is trimmed to the last variable.
GCS/GE d--(d) s-/+ a C+++ U+++ P-- L+@ E-- W+++ N+ o+ K- w+++ O? M-- V? PS+ PE Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- r+++ y+++* Weapons extension: ma- k++ F+2 X
|
|
|
|
|
The internet may not forget, but it can hardly remember something it almost never heard of. I'm looking for a computer that was described in Dr. Dobb's Journal (for those who remember what that was) and mentioned in another book about another computer. From these sources, I can pinpoint it to 1985 or earlier and that's about all the entire internet has to say about it so far. I don't even have any idea what it looked like.
It must have been some sort of portable computer with internal NiCd batteries. It had some sort of LCD display for 8 lines of 40 characters, a 1200 baud modem and 64k - 256k RAM. Dimensions and weight were described as 11 by 13 by 3 1/8 inches and 12.8 pounds. It also had two interchangable processor boards, one with a CMOS Z80 and the other with a (also CMOS) CDP1805. As a CMOS system, it got a decent battery life of 12 - 80 hours out of its NiCd batteries, depending of how much use you made of the display.
It was called the UDI-500 and must have been an expensive toy for managers. Does anyone have more information or even heard of it? It's like a missing relative in the family tree. How did it handle two so very different processors?
I have lived with several Zen masters - all of them were cats.
His last invention was an evil Lasagna. It didn't kill anyone, and it actually tasted pretty good.
|
|
|
|
|
|
You can still access Dr Dobb's Journal through the archives[^]. Even supports text search.
Let us know what you find.
|
|
|
|
|
|
... to get rid of all the hideous manual memory management I was using. (It's written in C++, and yes, I know I never should have done that in the first place, but let's just say I'm older and wiser now).
Anyway, I just wanted to share the fact that I'm down to ~2500 compiler errors and counting. Things are looking up. It'll be interesting shaking out the bugs though, it actually worked just fine before the big hackathon of Spring '22.
Also, just for the benefit of you C++ hounds, I find myself in an interesting position. In order to support the various platforms I want to support, I am limited to C++14 (which is actually not too bad) but, on my feeblest platform, the STL only supports C++03. That means no 'move semantics' in (most importantly) std::vector so I have rolled my own and plan to put up an article or two about that when I get my head above water.
So take cover! You have been warned! And now, back to work
Paul Sanders.
Some of my best work is in the undo buffer.
|
|
|
|
|
2500 compiler errors? Damn!
It's amazing what an extra close curly bracket can do, isn't it?
"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!
|
|
|
|
|
Is a moral or ethical discussion about coding too spicy for this forum? Here goes nothing.
I've checked out of platforms that boost posts based on "engagement"
I rarely visit, and no longer participate. I don't have a usable facebook or twitter account.
I do it for the same reason I've cut most advertisements and branding out of my life - to the degree that is possible in the consumer-centric society in which I live.
It's mind pollution. It's a psychic vampire. It eats joy. It makes you angry. That's the point. Anger keeps you "engaged" more than just about anything, so these platforms boost those posts.
It's promoting toxicity algorithmically. I think its messing up our social cohesion and our ability to be rational, at least as a whole if not specifically in the individual sense.
It's one of the darker sides of modern innovation in software development. Sometimes I feel like we're in the same moral or perhaps ethical predicament as say, physicists, who can use their knowledge to create things like weaponized nuclear fission, or they can use it to improve our lives. I don't think anyone involved at that level with something like the Manhattan Project did so without deep reservations about what it meant for our collective future.
Is it the same thing? Perhaps not, but can you really measure the damage we're doing with some of things we help create?
I think about this stuff when it comes to the projects I'm willing to take on. I try - at least by my estimation - to avoid projects that aren't socially responsible.
I think given the social landscape, at least in the divided country in which I find myself, after understanding some of the reasons we're in that situation, I don't want to be part of the problem. I won't be, at least deliberately.
To err is human. Fortune favors the monsters.
|
|
|
|
|
No wise response here, simply, I agree with everything you wrote.
And yes, IMO, weaponizing nuclear fission (and many other things) vs. "weaponizing" software to coerce everything from consumer purchases to who we vote for, it is the same thing, and the damage we're creating with software is considerably more difficult to measure in terms of psychological and social effects. There is some good, for example, some of my diabetic friends on social media, whom I did not know were diabetic, were very helpful in helping me help my mom when she was diagnosed with diabetes. I think that's the dilemma -- while one can argue that a "weapon" can act as a deterrent, it is designed specifically for destruction. It's more complicated with software -- it can be designed with good intentions but is easily "weaponized" (without a line of code change) for unethical activity. Even worse, it can be used as intended but there are social and psychological effects no one understands.
|
|
|
|
|
HtC - you are spot on. I also do not use social media. Who needs the extra stress?
|
|
|
|
|
Totally agree. And I must let you know, I only saw the subject: Psychic drain Pin, and I thought of you that same moment!
Advertising in itself is just mind pollution, so that is a bit evil, but not as evil as this algorithmic feed generation that amplifies groupthink, division and aggression. The question of where to draw the line to morally unacceptable is a tricky one.
ATM i am involved in creating a server that creates scheduled web-TV channels from recorded assets. Our customers want offer these TV channels for "free". But they will make money from unskippable advertising in these channels. We are not involved in the (client side) unskippability. I do not think it goes beyond the morally acceptable, but nor do I think it will boost my karma...
"If we don't change direction, we'll end up where we're going"
|
|
|
|
|
The use of anger to engage and control isn't limited to software-based social media, and it isn't a new phenomenon. It's as old as the printed word, and older still in the hands of politicians. The technology is just making the medium more efficient.
To create that anger you must create enemies for the people to hate, and it's handy to have a few enemies to blame, to direct the anger at, both external (Russia! China! Mars! California! Alabama (roll tide!)) and internal (Liberals! Conservatives! That religion! That <name any ethnic group or any group of like-minded people>!). Anything to distract us from what they're doing to stay in power and/or make more money.
Tyranny finds a way, and our "civilized" first-world countries aren't immune to it. I'd suggest we're more likely to serve several different tyrants at once.
If you think 'goto' is evil, try writing an Assembly program without JMP.
|
|
|
|
|
To be clear what I think makes it different are the algorithms, because you're right - it's about the efficiency at which this happens. Things go "viral" in a way they never could before, just for example.
To err is human. Fortune favors the monsters.
|
|
|
|
|
Correct.
I've cut nearly all news out of my life (1) and social media is for communicating with immediate family.
Also, I don't watch ads and if they come on the radio/tv/browser window is turned off until the ads cease.
Focus on the people near you and be in a healthy state of mind so you can help them when required.
NOTES
-------------------------------------------------------------------------
1: If the news isn't a bald faced lie it is information you don't need to know.
|
|
|
|
|
Let's call it by what it really is - asocial media. I completely agree with you.
|
|
|
|
|
Let x be the number of IO pins required by your project.
Let y be the number of IO pins available on your MCU.
Step 1: x = y + 1
Step 2: Upgrade the MCU or add an IO Expander
Step 3: Realize you can then add some cool functionality now you have more GPIO
Step 4: Go to step 1
|
|
|
|
|
lol, truth. Otherwise known as scope creep
Charlie Gilley
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
Has never been more appropriate.
|
|
|
|
|
I'm honestly not sure how people run out of pins, when realistically you can connect like 5 devices to an SPI or I2C bus before it collapses due to line capacitance.
I use the ESP32 for the lion's share of my projects, because it's hard to find a 512kB MCU with a dual core 240mhz processor. It's a sweet spot that allows me to perform magic, like True Type fonts with it, which makes all the difference in the world when it comes to presenting a user interface.
You don't really need all the sensors in the world to do cool stuff. You just need to lock down your scope. If you need to do more, you probably need another MCU - make another IoT device. If you're running ESP32s you can use ESP-NOW to create a wireless mesh network with up to like 20 devices on it. (Or you can use WiFi or bluetooth or BLE)
To err is human. Fortune favors the monsters.
|
|
|
|
|