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.
While the comic is great, I can imagine having the pretty much same problems. Windows is an interesting example of itself, it's desktop-only (let's stick with client Windows), but Microsoft has a plethora of compatibility shims because desktop apps written for version X rely on quirks of version X and break when facing version X+1.
The usual solution is to cleanly define the interface and simply not break it. The implementation can change, but who cares? Speaking from experience here, an externally-usable DLL is a part of my main product and I've changed it's guts several times in my time here, including one complete rewrite. Nobody cares because the outside stays the same.
Isn't it the same in the server space? Publish an API, publish a documentation and simply don't break the API thus having all clients using it by the book not breaking? I don't have that much experience there, what's preventing web APIs from staying stable once published?
Yeah, that's basically how it goes.
It's a bit difficult for SOAP, for example, because you can't just add new properties to your API (which is sometimes necessary).
You must make sure they can be omitted, for example by making them nullable.
It's easier for REST, which doesn't check the incoming message and just makes the best out of it (which also has its drawbacks).
I always say, the best versioning is no versioning at all.
Just make sure you don't break the API.
But that assumes your API is perfect from the get-go, which it rarely is.
My last big rework, for example, had an API which got a complete object from the client and then created object x and object y and added some of object z.
Then came some functionality where we just had to add object z and also object y was no longer necessary...
The best solution was really to break that complete API and rework all clients (which, luckily, was only one)
I think the biggest problem, in comparison with (strongly-typed) desktop development, is that your API definition can change without the client side breaking.
You just send message back and forth and try to make something of it at runtime.
That's (sometimes) better with SOAP, but also not always (and I like REST better anyway).
So even if you're very careful, but still make a mistake, you won't find out until you test that particular service call (which isn't a simple unit test) or until it breaks in production
I've had the same problems with some late-bound desktop development, but usually you target a specific version of a DLL, so the API is known at design time and your build simply fails.
You can call it foo or bar or fubar
You can call me Ray or you can call me Day, or you can call me RayDay.
You could put a number on the end.
You could use an online theosaurus and find something that measn what you really want to call it.
You could get one of those books of baby-names, boys names, girls names, etc, and just use the next name out of that. It works for hurricanes.
If it helps try and think of it like difference between how people are named in different parts of world. Like in the western countries there's usually a given name, followed by middle name (one of either mother or father) followed by family name. In Arabic countries it is common to find only one given name for the individual followed by an iterative ibn (meaning son of) or bint (daughter of) of all their ancestors. In south Asia there are usually two names, one given and one father's, occasionally you'd find a sect name before or after the two names. Or in some rare/unique cases as in mine you'd find three names with no relation to ancestors or sects. Just plain old names (all like first) brought together to create an ambigous meaning and make everyone in the family happy.
P.S. my name translates to An Ancient Enlightened Lion. "Ancient" is the only word I can think of but the name translates to something that has been around before time.
P.P.S. that rant was more for me than you, but you could still chose to see these differences and learn not to give a sh*t.
It's not really the same though.
Everything within a project, environment or company should be named as consistently as possible so you'll never have to think about that.
I know it's a utopia to be completely consistent, but you should at least get it right in one product.
So why does Azure not do that?
And even worse, why oh why can it only allow lower case characters (and not even special characters) in 2019?
Abbas (name) - Wikipedia[^]
My name comes from a power tool... Just kidding, it's a popular Dutch name (an actual sander is called a 'schuurmachine', which loosely translates to 'friction machine' or, of course, a sander)
It comes from Alexander[^] which means something like "Defender of the People"
it's a popular Dutch name (an actual sander is called a 'schuurmachine', which loosely translates to 'friction machine'
Sander Rossel wrote:
Everything within a project, environment or company should be named as consistently as possible
If only! Integration between existing systems require (rather force) you to adopt multiple naming conventions. Just as you have ideas for better naming conventions so does all the developers of these platforms. It's almost impossible for all these developers to agree on the same thing. Now if you were to build something from scratch where selection criteria for third party tools is dominated by naming conventions...! That wouldn't leave you much options.
I agree there should be one universal naming convention for all languages, but that is simply impossible, not because it can't be done. But because everyone has different ideas about them and none of them wants to back down. I know I wouldn't! if I wrote something similar I'd defend it to the end of the Earth, i.e. until I fall off the edge.
selection criteria for third party tools is dominated by naming conventions...!
I have seen products that use inconsistent naming conventions, that usually means that's not the only thing that's wrong!
Between systems is always difficult, but I guess in that case it's just not possible, but you can still be as consistent "as possible".
Abbas A. Ali wrote:
I agree there should be one universal naming convention for all languages, but that is simply impossible
I'm not even saying there should be one convention to rule them all, just that at least in a single product it should be.
And it goes the other way around to!
It's just a simple serializer trick, of course, but quite effective.
I mentioned earlier this week in some message thread here somewhere in the lounge that it's been a while I've blown the dust out of the NUC sitting on my desk...and that while initially it was whisper quiet, nowadays it took very little CPU activity to get the fan running at full speed and stay there. Sensor readouts, if they're to be believed, held steady at 80+ Celsius, and I literally couldn't hold it in my hand because it was just too hot.
After months of putting up with that, I finally took the time this morning to take the cover off and blow the dust out of it. There didn't seem like much, but it's making all the difference in the world...it's now been a few hours, cores are holding steady at ~50-55 Celsius, and I still haven't heard the fan kick in even once.
So even though it should be common sense, here's a friendly reminder: Do your devices a favor, and take the time to periodically blow that dust out, even though you might think the exterior looks fine.
It's been hot and our personal server has been restarting twice in as many weeks and the fans running on medium high always. So I took it outside Saturday and blew the dust out of it also and not she's running quiet again.
Some of them had 2cm of dust and fluff layered on top of the boards.
I once came across a desktop (not mine) that had a such a thick layer of dust on the inside that I managed to lift it from the motherboard in one go like it was a sheet laid on top of it. The owner was a smoker, and the tar kinda glued the dust particles together. And the smell...
Something peeps should consider is the storage inside a box. Hard drives like to be kept below 50c to run reliably. For a target temp, I try to keep the drives in my care, in the 30c range. Doing this will add years of reliability to any drive.
Most people tend to think of things in terms of temperature maximums. And that the thermal junction maximum is the limit, not thinking of what they may damage along the way. Liquid cooling should be explored where practical. Even in servers if you have the space. My 8 core 6900K I7 never sees 50c. It always runs from 25c - 45c in performance mode, due to a decent liquid cooler. I've even "lapped" a CPU lid in the past to buy about 8 degrees Celsius, on my old 3900K rig.
I've given some thought to liquid cooling on and off for years. I've always built my own systems, and I've heard horror stories about liquid cooling not done right. So I've always hesitated. Maybe for once I'd need to pay someone to do it and guarantee his work.
My current VM host has a noisy fan (but still the quietest available for my case, according to the vendor), and it's variable speed, so it doesn't "blend into background noise" like a constant noise otherwise would. I had to put it in another room and keep the door closed so I don't hear it. How's liquid cooling, in terms of noise? I'm told water pumps can get noisy, which wouldn't help me...
Much quieter in my case, running higher end workstations with beefy graphics cards that are never short of some fan noise. lol
There are some decent closed loop systems out there (I favor Corsair's H115i series). The main thing is to make sure your case can accommodate the radiator. Other than mounting the radiator itself, its no harder to deal with than a standard "tower" cooler.
Get some some good thermal transfer compound (I like Arctic Cooling's MX-4), clean the lid and new cooler surface well, then "tin" each surface with the compound. Use very thin amount of compound to fill the microscopic bumps and valleys. I like to drag an old laminated card across them, while pressing downward and scraping away excess. Then put a small amount on the CPU lid before final mounting. Mount the radiator drawing air through it to the outside of the case. Anything north of 4 cores in I7+ territory should be on liquid IMNSHO. Also favor a larger tower with both airspace and room for a few aux fans for air transfer. Also keeping the ambient room temp around 75 or below at low humidity will also help a ton.
With the right setup and quality hardware + environment, your systems should run over a decade. My last rig, the "lapped" 3900k was built at the end of 2010, and is still running strong. On the server front, I have hand built servers in the field that have been re-assigned (some retired) at 18-20 years old. Still running on the same spinning disks I put into them when Windows 2000 Server was a new thing.
I received an update notice from Installshield latest version (2019 R2) , and they start talking about MSIX.
"...MSIX is the Windows app package format that provides a modern packaging experience to all Windows apps. The MSIX package format preserves the functionality of existing app packages and/or install files in addition to enabling new, modern packaging and deployment features to Win32, WPF, and WinForm apps..."
"...Take your existing desktop application and add modern experiences for Windows 10 users. Then, achieve greater reach across international markets by distributing it through the Microsoft Store. You can monetize your application in much simpler ways by leveraging features built right into the Store. Of course, you don't have to use the Store. Feel free to use your existing channels...."
I have no clue about those "modern experiences for windows 10 users" they are talking aboot.
How is this different from MSI (packaged in a setup.exe) ?
Is this relevant for normal/regular/boring Windows Desktop application installations packages (non-windows store) ?
This video show them repackaging an existing MSI installer, and I don't the point of it.
This MSIX inside and out - BRK2467 - YouTube video show a some more (along tons of star-trek type techno-babble), but still confusing af.
It is very popular today to use the word "experience" in marketing and it seems to be very important to just about everything. The really annoying thing is it is often used in really weird ways and this is one example. What the heck is a "modern packaging experience" ? Never mind. I really don't think I want to know.
"They have a consciousness, they have a life, they have a soul! Damn you! Let the rabbits wear glasses! Save our brothers! Can I get an amen?"