The findings were published in the book The Lessons of Experience: How Successful Executives Develop on the Job (1988). Here is how they got to those numbers and why I put "research" under quotes:
Their "research" was therefore not a controlled study and it was never published in a peer-reviewed scientific or psychological journal.
If you don't believe me, here is a quote from people who collaborated on it:
The research that led to this publication had its origins in a six-month period (spanning 1981-1982) as a collaboration emerged between four organizations (Union Carbide, Sun Company, Armco and Westinghouse) and three CCL researchers (and eventual authors of the book). The relationship was formalized in CCL’s Research Sponsors Program. Goodyear, PepsiCo and Robinhood Multifoods soon joined the program and the research efforts. The “issue of mutual interest” that bound this group together was how executives learn, grow and change throughout their careers. The data at the core of the book came from 191 successful executives from six major corporation who responded to some form of the question:
When you think about your career as a manager, certain events or episodes probably stand out in your mind—things that led to a lasting change in you as a manager. Please identify at least three key events in your career, things that made a difference in the way you manage now. What happened? What did you learn from it (for better or worse)?
The research established the foundational messages of the book: Executives learn primarily on the job from challenging assignments, hardships and other people. Some experiences are more developmental than others. Different experiences teach different lessons. Yet the book also captures what came to light as the authors worked with human resources professionals and senior line executives to actually implement the finding from the research.
Emphasis mine.
Now that we have established the origin of this absurd model, let's break down the flaws of this "research":
So why am I writing about this? Because this "model" is being used as a one-size-fits-all for employees regardless of their role.
The 70-20-10 model assumes that all professional growth follows the same trajectory. For a manager back in 1981, "70% experiential learning" might mean learning how to navigate a board meeting by trial and error. However, for an engineer, surgeon, or a pilot, the "70% experiental learning" simply isn't an option -- you don't "learn from your mistakes" while deploying an update to your production database, performing heart surgery or landing a 747 because the cost of experience is a catastrophic failure.
By touting "10% formal knowledge" as a hiring benchmark any HR department following this model is:
If anything, this model is a perversion of the original 70-20-10 structure where 70% was formal knowledge you brought in, 20% meant informal learning from peers, and 10% of "learning on the job".
Now before you say "but you can't learn everything in school" know that I agree with you. Experience is important and I was a junior once. But what is also important is to understand that junior software engineer should be expected to know the programming language syntax, common algorithms, and to be fluent in use of common developer tools.
Nobody expects junior software engineers to know how a Point-Of-Sale terminal or an ATM work, that's the "learning on the job" part. Teaching them difference between arithmetic and bitwise operators, how to enter BIOS to change settings, how to use a debugger, work with Git, or how to write correct, efficient, and readable code, or just how to find the answer they need using a search engine isn't and should never be part of "on the job learning". It would be like hiring an administrative assistant who not only doesn't know how to use Microsoft Word, but also doesn't know how to read or write.
Conclusion
We need to stop pretending that 191 managers from 1981 found the universal law of learning. We need to hire for competence, respect formal knowledge, and stop expecting our senior talent to be full-time, unpaid faculty for those who decided to take the easy route through life.
A closing word for those who keep propagating this BS model
If you are an HR professional, a "leadership coach," or a manager who continues to propagate this 70-20-10 myth as a universal truth, you need to understand the damage you are doing:
TL;DR -- Stop citing a 40-year-old business brochure as if it were a scientific fact because (fact check) -- it isn't. Now get off my lawn!
]]>Sally forth and receive carnal knowledge unto thyself.
Respectfully,
Your Lost Customer
With that out of the way let me tell you that this GeForce 5090 RTX is the last NVIDIA product I bought. Maybe you don't care, but in the very unlikely case that you do, here's why:
Brute force hardware design
600W constant power draw to drive 1440p monitor at barely 60 FPS in path traced games is not only unacceptable, but also environmentally irresponsible. But you already knew that as you did much worse when you poured massive amounts of power-hungry GPUs into the hands of miners in the previous cycle and now keep doing the same but with "AI".
Datacenter focus
Consumer market at this point is just 12% of NVIDIA revenue so the writing is on the wall. Thanks to your greed PC gaming is almost dead, and so is professional 3D, video editing, CAD, and ray tracing.
Software support
I got this card in January 2025. It's February 2026 and 80% of software stack sitll doesn't support it even for AI/ML workloads. It's "too new" it seems and the news of 6000 series being delayed paint a very grim picture of what we can expect to get in the future. Drivers? What's that? Oh you mean the buggy mess you are shipping with ever declining frequency of updates? The "RTX ON" which crashes browsers if you enable video super resolution or HDR? Black screens? TDRs?
Conclusion
I used to like and enjoy using NVIDIA products, but this neglect of customers at these exorbitant prices we have to pay for top of the line silicon which then impersonates an expensive brick because year and a half later software support just didn't materialize is a bridge too far for me -- you can't pitch "AI is the future" if I can't even build xformers and triton for Blackwell yet. So once again, go fuck yourself along with everyone else in your team who's enabling this.
I really wanted my relationship with Linux to work given how abusive Microsoft has become, so I went and installed Kubuntu after deciding Debian can't get their shit together. I had the install running in an external NVME M.2 enclosure on a spare 1TB Samsung 970 Pro I had laying around.
I nuked snapd and flatpak right away, set up NVIDIA drivers and CUDA toolkit, tweaked kernel performance to feel as snappy as possible. I installed Brave manually and KeePassXC using Ubunut PPA, then added Steam and Proton, even installed and ran a game of Mass Effect 3 multiplayer. Everything was working great, and I even got some Windows apps like Total Commander to work using Wine. I added docker so I can run Ollama and keep it up-to-date. Then life and work interfered and I didn't use it for a while — until today.
What greeted me was a prompt to do an upgrade to 25.04 Plucky Puffin. I clicked Upgrade and I was met with a message that I have custom apt sources which won't be used and do I want to proceed. I did, and the upgrade started and then failed with error 32 when trying to install new grub. Then it told me my install is in a broken state and it needs to recover it.
Upgrade GUI ran dpkg --configure -a. That hung at 99%. I clicked on close button, nope, not responding. KDE asked me if I want to kill the python process that was running this GUI which was frozen and I agreed. It didn't close it. I went to terminal and manually killed all involved processes including said dpkg and then I re-run it which allowed me to see why it hung — grub was asking where to install itself and that prompt was suppressed in GUI upgrade.
In 2025 one would think asking this question is no longer necessary as dpkg knows which root filesystem it was ran from and which EFI partition is mounted. It doesn't even have to guess, and if it really has to ask then the OS upgrade GUI can't just fucking assume everyone uses a single bootable drive in their system and provide a means to pass the question up from dpkg to the user instead of hanging with no indication of what went wrong whatsoever.
After I fixed that problem I went to inspect what happened with my apt sources. Of course all custom sources were renamed to .migrate so they were deactivated. I fixed it all, did another round of upgrades and rebooted. And then I got a prompt to upgrade to 25.10.
At this point I was getting annoyed — if you know there's 25.10, why force me to go through 25.04 at all? I hate when software is wasting my time instead of letting me work with my PC, but I still wanted my system to be up-to-date so I clicked the dreaded Upgrade button again.
This time there were no errors, though it again warned me about custom apt sources which I dismissed as I expected I will be able to fix it. And this time I was wrong, as it just deleted my Brave Browser, Steam, and KeePassXC lists, not renamed them. But that's not the worst thing it did. It removed xorg, xinit, xinput, etc and after reboot I was greeted with text mode login. Congratulations, Kubuntu upgrade! You made my Linux desktop as secure as possible by making sure it doesn't run anymore.
Yes, I could've tried to fix it but I won't — to quote Commander Shepard "I'd rather drink a cup of acid after chewing on a razor blade."
TL;DR — when the core system component responsible for upgrading hoses your system so spectacularly that you lose graphical environment it is time to repeat the conclusion:
Despite Windows 10 EOL this ain't the year of Linux desktop, and judging by the experience I just had with a major distro like Kubuntu it is still perpetually a decade away, just like cold fusion, flying cars, and faster-than-light travel.
So how did we, the software engineers, get there?
We have allowed business-driven feature creep and unrealistic deadlines to override sound engineering principles. We have all but turned into yes-men (or should I say yes-mercs), agreeing to any and all managerial decisions, even those that make no sense for the product, or are actively harmful to the customers. Most of us have suppressed what little ethics we had (if any) and are just following orders. We went from resigning in protest in 2018, over signing letters of protest in 2024, to crickets in 2025. Instead of curiousity and rebelliousness there's complacency and blind obedience. Instead of creative drivers who shape the future for the betterment of our fellow humans we have turned into just another cog in the money-making machine.
We got spoiled with tools and languages that hide the complexity and domain-specific knowledge needed to write stable and performant code. I've personally faced juniors who didn't know the difference between bitwise and arithmetic operators, let alone OS fundamentals, nor anything from hardware realm.
Some of those might not be necessary learning for mostly web-driven front-end stuff, but not knowing number systems and boolean algebra? Who's going to maintain all the existing C/C++ code after current generation dies off? Will they reimplement it all in Javascript? As Marvin the janitor would put it so succinctly in Die Hard 2: "I'll be damned if I'm gonna clean up this mess."
Debugging truly seems to be the lost art nowadays. I remember when I started working on an embedded application for Verifone PoS terminals back in 2009. I was shocked that nobody in the company could tell me how to setup a debugger and run the code step by step. To my astonished question "But... how do you debug?" I got "We use logs".
In practice that meant writing the code with tracing statements strewn all over it, compiling, deploying, running, observing logs, making a change, compiling, deploying, running, observing logs, ... an endless and pointless iterative loop which took way more time and effort than it would if the code was run under debugger to directly observe the behavior.
Same goes for most of today's code, and most juniors wouldn't know what to do in debugger if their life depended on it.
What is an exception? Historically, exceptions were hardware faults (invalid or unaligned memory access, division by zero, etc) raised by the CPU which would almost never occur in well-written code hence the name.
Starting with C++, C#, Java, Python, ... exceptions have morphed into anything but, and today they are (ab)used as a default (and poorly performing!) replacement for proper error handling.
Same goes with logging overuse, what was once a tool for inspecting state of critical variables at runtime has turned into a deluge of irrelevant noise you have to sift through when you have an actual problem to solve. I've been asked to write code with full logging coverage from the beginning which I flat out refused.
Like I, you should write code, debug code, and add logging where it makes sense. Doing it any other way just adds noise, increasing the risk that your log output gets out of sync with underlying code and becomes misleading instead of just useless.
We have been tricked through endless repetition by CEO wannabe-influencers on LinkedIn into accepting the "modern" move fast and break things approach to software development. Definition of minimum viable product has eroded over time and today it encompasses things that barely work.
We shifted from engineering, design-driven, development to mocking what the customer wants, akin to throwing shit at wall and seeing whether something sticks instead of designing APIs and interfaces. We were thus forced into "defensive" programming because we can't rely on usage contracts anymore as they usually don't exist, and if they do, they are seldom honored.
We have been pulled into endless meetings where we rarely have any purpose but our presence is mandatory which further diminishes the time we can dedicate to writing quality code or even just staying on top of current technology trends.
So now that we know what's wrong with the state of software engineering, what are we going to do about it? It is tempting to embrace the Joshua's/WOPR "A STRANGE GAME. THE ONLY WINNING MOVE IS NOT TO PLAY." mindset, but we can, and should, fight back.
]]>However, in 2025, one major reason not to buy Supermicro products is their poor handling of BIOS updates, which are critical for security and system stability. Despite being an Intel Titanium Partner, Supermicro fails to deliver Intel CPU microcode updates on schedule and lacks the public transaprency (directly accessible changelogs) for the contents of their BIOS and BMC updates.
BIOS and microcode updates are essential for fixing security vulnerabilities and improving system functionality. Intel regularly releases microcode updates to address security flaws and functional issues in their CPUs, and responsible vendors integrate these updates into BIOS releases as quickly as possible which is usually ahead of or in lock-step with the actual security advisories being published. Unfortunately, Supermicro has demonstrated a lack of urgency and transparency in this regard.
2025-01-26 - I ask about the lack of BIOS with Intel CPU microcode update revision 2B000603 dated 2024-06-20.
2025-01-28 - Supermicro requests SKU and serial number for review.
2025-01-28 - I provide requested information.
2025-01-28 - Supermicro states they don't wait for customers to request updates and their engineering team determines update schedules.
2025-02-22 - Almost a month later without response, I bring up another Intel CPU microcode update revision 2C0003E0 dated 2024-07-30 along with relevant security advisories.
2025-02-24 - Supermicro acknowledges the issue and states they’ll check internally.
2025-02-27 - Supermicro provides an update, mentioning that BIOS R2.2 will take 3-4 weeks for validation before being posted.
2025-02-28 - I respond criticizing Supermicro’s slow response compared to other vendors and reiterate the need for changelogs.
2025-02-28 - Supermicro acknowledges the comment and assures it will be passed to the PM team.
2025-03-31 - Last BIOS update for my mainboard is dated 2024-05-28, so I inform Supermicro I will be writing an article.
Below is a full exchange between me and Supermicro technical support regarding Intel CPU microcode updates. The emails highlight how Supermicro fails to provide timely updates and does not communicate changelogs publicly, requiring unnecessary steps for customers to obtain critical security information.
From: Igor Levicki <censored>
Sent: Sunday, January 26, 2025 3:04 AM
To: Technical Support <support@supermicro.com>
Subject: Microcode update
Hello,
New microcode revision for Sapphire Rapids has been available (2B000603, current is 2B0005C0) which according to Intel fixes functional and security issues:

As you can see from the date, it's been available for quite a while. With that in mind I have two questions:
1. Does Supermicro always wait for customers to ask for updates related to security and functionality?
2. Is Supermicro committed to providing product support of this kind or not?
The way I see it Supermicro should be notifying me about this, not the other way around.
Please advise.
Regards,
Igor Levicki
From: Technical Support <support@supermicro.com>
To: Igor Levicki <censored>
Subject: RE: Microcode update
Date: Tue, 28 Jan 2025 19:32:03 +0000
Hi Igor,
Can you please provide the serial number of the system or the SKU for review?
Thanks
From: Igor Levicki <censored>
Sent: Tuesday, January 28, 2025 1:45 PM
To: Technical Support <support@supermicro.com>
Subject: Re: Microcode update
Hi
X13SRA-TF
S/N: <censored>
Regards,
Igor
From: Technical Support <support@supermicro.com>
To: Igor Levicki <censored>
Subject: RE: Microcode update
Date: Tue, 28 Jan 2025 22:04:34 +0000
Dear Igor,
No, we don’t wait for the customer to ask for updated related to security and functionality. Our engineer and PM team will determine the BIOS update schedule. Thanks a lot!
Have a great day!
From: Igor Levicki <censored>
Sent: Saturday, February 22, 2025 3:43 AM
To: Technical Support <support@supermicro.com>
Subject: Re: Microcode update
Hello,
You may claim you don't wait, but here I am asking Supermicro for an updated BIOS again — while your engineering and PM team is "determining BIOS update schedule" Intel has released another batch of microcode updates fixing both security and functional issues:

Intel advisories:
https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-01213.html
https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-01139.html
https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-01194.html
I find this level of lack of care about security and functionality of your products totally unacceptable.
Supermicro should get out of 1990s where BIOS updates were risky and start publishing timely BIOS updates along with publicly accessible release notes.
Regards,
Igor Levicki
From: Technical Support <support@supermicro.com>
To: Igor Levicki <censored>
Subject: RE: Microcode update
Date: Mon, 24 Feb 2025 18:10:18 +0000
Dear Igor,
Thank you for contacting Super Micro Technical Support!
We’ll check this information internally and get back to you ASAP.
Have a great day!
From: Technical Support <support@supermicro.com>
To: Igor Levicki <censored>
Subject: RE: Microcode update
Date: Thu, 27 Feb 2025 17:19:47 +0000
Dear Igor,
Good morning!
Based on our internal update, R 2.2 BIOS will be submitted to our LAB to validate for X13SRA-TF. It’ll take about 3-4 weeks. Once the validated is completed, we’ll post on our website immediately. About the security update information, feel free to check our Super Micro security page as a reference. https://www.supermicro.com/en/support/security_center#!advisories Thanks a lot!
Have a great day!
From: Igor Levicki <censored>
Sent: Friday, February 28, 2025 3:47 AM
To: Technical Support <support@supermicro.com>
Subject: Re: Microcode update [KY]
Hello,
Microcode was probably available to OEMs for integration and testing from Intel well before those advisories were published. Other vendors, such as HP are taking proactive stance on security and publish firmware updates with CHANGELOG in lockstep with advisories, not a month after and most certainly don't wait for customers to prod them into action.
As for your security page it is nice, but you know very well that's not what I mean — for the sake of transparency BIOS and BMC update pages should have a CHANGELOG. We the customers need to see what changes have been made so we can make an informed decision when updating and be aware of potential issues.
Regards,
Igor Levicki
From: Technical Support <support@supermicro.com>
To: Igor Levicki <censored>
Subject: RE: Microcode update [KY]
Date: Fri, 28 Feb 2025 16:43:33 +0000
Dear Igor,
Thanks for your comment! We’ll forward your comment to our PM team.
On the other hand, BIOS and BMC release note can be requested through our Super Micro Sales team who takes care of your account.
Thanks again!
Have a great day!
From: Igor Levicki <censored>
Sent: Friday, February 28, 2025 9:33 AM
To: Technical Support <support@supermicro.com>
Subject: Re: Microcode update [KY]
Hello,
I am aware that they can be requested, but:
1. I'd have to contact a company, company contacts your sales team, they send info back to company, the company sends it back to me — how is 4 extra steps (and that's assuming that everyone involved gets it right the first time) better than just having a changelog and release notes like every other vendor in the industry?
2. That doesn't help people who buy your products directly in retail or on your own eStore
You can pass that to the PM team too and have a nice day yourself.
Regards,
Igor Levicki
From: Technical Support <support@supermicro.com>
To: Igor Levicki <censored>
Subject: RE: Microcode update [KY]
Date: Fri, 28 Feb 2025 17:36:07 +0000
Dear Igor,
Thanks for your comment!
We’ll pass your comment about the BIOS/BMC release note to our PM team. Thanks again!
Have a great day!
From: Igor Levicki <censored>
Sent: Monday, March 31, 2025 1:04 PM
To: Technical Support <support@supermicro.com>
Subject: Re: Microcode update [KY]
Hello,
It's now been 22 business days since you said 3-4 weeks for a BIOS update.
This email is to let your management know that I will be writing an independent article about Supermicro's atrocious lack of timely security updates as well as lack of transparency on the update contents. It will include this correspondence with all the relevant dates and other information as an example of your company's failure to follow best practices.
Have a nice day.
Regards,
Igor Levicki
Unlike Supermicro, vendors such as HP, Dell, and Lenovo proactively release BIOS updates alongside security advisories. They provide clear changelogs and ensure customers have access to security patches without delays. This approach reflects their commitment to security and reliability, something that Supermicro lacks.
Failing to provide timely BIOS and microcode updates puts users at risk. Security vulnerabilities, especially CPU side-channel attacks, can be exploited if patches are delayed, leading to potential data breaches. In a competitive industry where security and transparency are paramount, Supermicro’s outdated approach makes them a poor choice for businesses and professionals who rely on timely security updates.
Supermicro’s failure to handle BIOS updates efficiently, coupled with their lack of transparency, makes their products a risky investment in 2025. Until they improve their update policies and customer communication, potential buyers should consider alternative vendors who prioritize security and reliability of their products.
]]>Yesterday I wrote about "Security" vendors to avoid in 2025 after my tool ME3Buyer got flagged as malicious by several less than reputable "security" vendors due to their over-reliance on AI/ML heuristic analysis.
Today I am going to write about CrowdStrike's scanner, and their "analysis" of my tool which at the time of this writing is also flagging it as grayware with threat score of 55/100 — you are in for a deep dive into why AI/ML and other heuristic "analysis" used by CrowdStrike and possibly those other vendors is actually just fearmongering and why those results are anything but reliable.
Anti-Detection/Stealthyness
Contains ability to impersonate access tokens (API string)
Found reference to API "OpenProcessToken" (Indicator: "OpenProcessToken"; File: "ME3Buyer.exe")
The reason why this indicator is useless without context is that it can only be used for impersonation if you open a different process token, not your own.
Contains ability to load/free library (API string)
Found reference to API "LoadLibraryA" (Indicator: "LoadLibrary"; File: "ME3Buyer.exe")
This indicator is even more useless, as almost every Windows executable contains this call.
Anti-Reverse Engineering
PE file contains zero-size sections
Raw size of "UPX0" is zero
This indicator is as useless as previous ones. UPX packer is a well-known tool and its compression is fully reversible.
Cryptographic Related
Sample file has high entropy (likely encrypted/compressed content)
Sample file "sample.bin" has high entropy 7.852839850308484
No shit Sherlock, it's compressed with UPX, of course it has high entropy.
Shows ability to obfuscate file or information
The analysis contains indicators for cyrpto or data obfuscation(base64/decrypt) which can hide information. Matched sigs: Sample file has high entropy (likely encrypted/compressed content)
Neither base64 nor any other form of encryption is used in the code so this is a false flag.
Environment Awareness
Able to identify virtual environment by using user activity (API string)
Found string "GetCommandLineA" (Indicator: "GetCommandLine"; Source: "00000000-00003372-00000C2A-3253035874")
Found string "GetCommandLineW" (Indicator: "GetCommandLine"; Source: "00000000-00003372-00000C2A-3253035903")
Yeah, and if you checked the PE header and saw it's a console application of course it is using the command line... idiots.
Able to visualize and control listed components (API string)
Found reference to API "FindWindowW" (Indicator: "findwindow"; Source: "00000000-00003372-00000C2A-3253112167")
Found reference to API "PostMessageW" (Indicator: "postmessage"; Source: "00000000-00003372-00000C2A-3253112914")
Again analysis of individual APIs bundled together without context. FindWindow is used to find the game window, but PostMessage is used to send messages to its own overlay window. They aren't used together.
Calls an API typically used to get system version information
"ME3Buyer.exe" called "RtlGetVersion" with parameter 140100000a000000000000005d5800000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 (UID: 00000000-00003372)
No, my executable didn't call that API -- it's not even in the IAT (iimport address table). They can't even separate who did what and we should trust their "analysis"?
Calls an APIs used to retrieve process information
Observed import api "OpenProcessToken" which can be "used to retrieve process information" [Source: ME3Buyer.exe]
Same as indicator 01, and equally useless. Yes, a process can get information about itself. Brilliant "analysis" really.
Contains ability to read software policies
"ME3Buyer.exe" (Path: "HKLM\SOFTWARE\POLICIES\MICROSOFT\WINDOWS\SAFER\CODEIDENTIFIERS"; Key: "TRANSPARENTENABLED")
Now this is an outright lie, as the following Microsoft documentation about SRP (Software Restriction Policies) will tell you:
- The user-mode Windows CreateProcess function in %SystemRoot%\System32\Kernel32.dll enforces it for executable images
- The DLL loading code of Ntdll (%SystemRoot%\System32\Ntdll.dll) enforces it for DLLs
- The Windows command prompt (%SystemRoot%\System32\Cmd.exe) enforces it for batch file execution
- Windows Scripting Host components that start scripts—%SystemRoot%\System32\Cscript.exe (for command-line scripts), %SystemRoot%\System32\Wscript.exe (for UI scripts), and %SystemRoot%\System32\Scrobj.dll (for script objects)—enforce it for script execution
Each of these components determines whether the restriction policies are enabled by reading the registry value HKEY_LOCAL_MACHINE\Software\Microsoft\Policies\Windows\Safer\CodeIdentifiers\TransparentEnabled, which if set to 1 indicates that policies are in effect.
So basically they are flagging my executable for registry key access done by the OS loader itself, retards.
General
Calls an API typically used to load libraries
"ME3Buyer.exe" called "LoadLibrary" with a parameter api-ms-win-core-synch-l1-2-0 (UID: 00000000-00003372)
... (long irrelevant list od DLLs goes here)
First, no it didn't -- the UPX unpacking code called it as it was resolving imported libraries.
Second, all Windows programs use standard Windows libraries listed -- they literally couldn't work without them.
Calls an API typically used to retrieve function addresses
"ME3Buyer.exe" called "GetProcAddress" with a parameter InitializeCriticalSectionEx (UID: 00000000-00003372)
... (long irrelevant list od APIs goes here)
Another wrong attribution of behavior of the UPX unpacker to the packed executable itself.
Contains ability to dynamically determine API calls
Found GetProcAddress() and LoadLibraryA() in an import section (Source: ME3Buyer.exe)
Again, part of UPX unpacking code and irrelevant to the analyzed executable code itself.
Contains ability to execute Windows APIs
Found reference to API (Indicator: "OpenProcessToken"; File: "ME3Buyer.exe")
... (long irrelevant list od APIs goes here)
A program built for Windows platform contains ability to execute Windows APIs? You don't say!
This "indicator" is so retarded that it doesn't deserve any further comments.
Contains ability to retrieve/open a process (API string)
Found reference to API "OpenProcessToken" (Indicator: "OpenProcess"; File: "ME3Buyer.exe")
Another repeat of indicators 01 and 09 — if you repeat a lie enough times then it might just become true?
File contains dynamic base/NX flags
"ME3Buyer.exe" has flags like IMAGE_DLLCHARACTERISTICS_HIGH_ENTROPY_VA
IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE
IMAGE_DLLCHARACTERISTICS_NX_COMPAT
IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE
And this is bad how? Those are standard flags that are added to INCREASE code security.
Loads modules at runtime
"ME3Buyer.exe" loaded module "API-MS-WIN-CORE-SYNCH-L1-2-0" at base 7ffc6cc30000
... (long irrelevant list od DLLs goes here)
And? Find me one Windows application, console or otherwise which doesn't. I dare you, I double-dare you, motherfuckers!
Loads the RPC (Remote Procedure Call) module DLL
"ME3Buyer.exe" loaded module "%WINDIR%\System32\rpcrt4.dll" at 6EA90000
RPCRT4.dll is not even in the IAT (iimport address table) of my executable! It must have been injected by some other process running in a sandbox, most likely by some vendor's "security" software. If you take a look at the list of modules loaded there is this entry:
"ME3Buyer.exe" loaded module "%WINDIR%\TEMP\VXOLE64.DLL" at base 7ffc47f20000
It's not a module my tool was linked against so it is likely injected by the OS or the scanner / sandbox environment itself and I can bet that it's the one bringing RPCRT4.dll in — OLE stands for Object Linking and Embedding Automation which is pretty much a definition of inter-process communication which would rely on remote procedure calls. Again, they can't even tell who did what. How do you even begin to trust such "analysis"?
Matched Compiler/Packer signature (DIE)
"ME3Buyer.exe" was detected as "UPX" and name: "Packer"
Well perhaps you could use that information to unpack it since upx is fully reversible and then scan it? Nah, that would be too much work — easier to just claim that every packed executable is suspicious.
Possibly uses system binaries (Windows LOLbins)
Observed system executable string:"\Device\HarddiskVolume3\Windows\System32\conhost.exe" [Source: 00000000-00003372-00000BC0-3251731136]
Again, not in my code. Not even in UPX code. Atrociously inaccurate analysis.
The input sample is signed with a certificate
The input sample is signed with a certificate issued by "CN=SSL.com Root Certification Authority ECC, O=SSL Corporation, L=Houston, ST=Texas, C=US" (SHA1: 95:B5:F0:2E:48:58:8F:8D:6A:42:6F:AC:5C:85:F8:6B:9D:BD:22:72; see report for more information)
The input sample is signed with a certificate issued by "CN=SSL.com Code Signing Intermediate CA ECC R2, O=SSL Corp, L=Houston, ST=Texas, C=US" (SHA1: 67:BF:EC:D3:2A:46:97:9B:0A:6F:69:E4:91:4D:D5:CC:CF:B3:3E:63; see report for more information)
The input sample is signed with a valid certificate
The entire certificate chain of the input sample was validated successfully.
So now it's bad to sign your code with a valid certificate? Pathetic fearmongering.
Installation/Persistence
Contains ability to load modules (API string)
Found reference to API "LoadLibraryA" (Indicator: "LoadLibrary"; File: "ME3Buyer.exe")
A repeat of indicator 02, again on it's own isn't a proof of any wrongdoing.
Opens registry keys
"ME3Buyer.exe" (Access type: "OPEN"; Path: "HKLM\SYSTEM\CONTROLSET001\CONTROL\NLS\CODEPAGE"; Key: ""; Value: "")
... (Long list of irrelevant REG keys goes here)
Another misatribution of behavior, this time of the OS loader which is reading those keys on EVERY process launch, to the executable being run.
Queries basic information of the specified process
"ME3Buyer.exe" queries basic process information of the "C:\ME3Buyer.exe" (UID: 3372)
Yes it does, and? It's a common practice to check for elevation if your tool needs admin privileges to run.
Shows ability to use execution guardrails
The analysis shows indicators which can be used as execution guardrails to ensure that payload only executes against intended targets/system. Matched sigs: Able to identify virtual environment by using user activity (API string)
This isn't elaborated upon at all with any concrete evidence so it's unclear what it means. Yes, many programs have the ability to check for some pre-requisites before they continue to run in order not to crash.
Touches files
"ME3Buyer.exe" trying to touch file "%WINDIR%\System32\apphelp.dll"
... (long irrelevant list od files goes here)
Sigh... yet another misatribution of behavior of the execution environment itself to the executable being analyzed. At this point I am convinced that the whole "security" industry is one giant scam. First they scare you with "that's a nice executable you have there, it would be bad if something happened to it" and then they offer you "protection" by making everyone involved (users and developers alike) pay an extortion racket — users pay to be "protected" from those nasty developers, and developers pay to get whitelisted. It's a win-win scenario for "security" vendors and pretty much no one else and it's high time for someone to call them out on their bullshit.
Network related
Found potential URL in binary/memory
Pattern match: "http://www.ssl.com/repository/sslcom-rootca-ecc-384-r1.crt0"
Yeah, that 0 at the end shows they can't even get the zero-terminated strings right (hint: 0 is not part of that string). But a link to a root certificate in an executable signed by a commercial IV code signing certificate sure sounds dangerous, right? What a bunch of tools... no, fucktards. There are no words insulting enough that I can say to people working on producing this scam.
Possibly tries to communicate over SSL connection (HTTPS)
Found HTTPS url "https://www.ssl.com"
Found HTTPS url "https://levicki.net"
Possibly? Look, it either does or doesn't. What the hell does "possibly" even mean?
Those strings are part of a certificate bundle with which the executable is signed and SpcSpOpusInfo respectively used by SmartScreen so they aren't used to communicate but don't let that stop you from making false claims — after all, "corporations are people" who, apparently, can't be held liable for anything including defamation.
Spyware/Information Retrieval
Calls an API typically used for taking snapshot of the specified processes
"ME3Buyer.exe" called "CreateToolhelp32Snapshot" with parameters {"dwFlags": "4", "th32ProcessID": "0"}
No it doesn't as it's not in IAT, it's either UPX unpacker or the OS loader or an indirect call by Windows API. More unproven claims, and all of them LIES.
Contains ability to capture screen (API string)
Found reference to API "GetDC" (Indicator: "GetDC"; File: "ME3Buyer.exe")
Yes it does contain GetDC call -- it uses it to query LOGPIXELSY on a desktop DC so it can create a 14pt font at 72 DPI for using in an overlay window which shows operation progress. If the "security" scanner actually analyzed the code as they falsely claim to do it would see this:
const HDC hDC = GetDC(nullptr);
int Height = -MulDiv(14, GetDeviceCaps(hDC, LOGPIXELSY), 72);
ReleaseDC(nullptr, hDC);
g_hFont = CreateFont(Height, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, DEFAULT_CHARSET, OUT_TT_ONLY_PRECIS, CLIP_DEFAULT_PRECIS, CLEARTYPE_QUALITY, VARIABLE_PITCH, L"Arial");
So another useless "Indicator" taken out of context and more lies and false flags. But wait, there is more "malicious" code in my tool, and they didn't even see it:
HDC GameDC = GetWindowDC(GameWindow);
COLORREF Color = GetPixel(GameDC, value.pt.x, value.pt.y);
ReleaseDC(GameWindow, GameDC);
Oh my God! It's reading pixels from the game window! They flagged GetDC as potentially malicious for screen capture when it was only used to create a font for text output, but not GetWindowDC and GetPixel which I actually use to read game window content in order to automate lootbox purchasing. Good job, eh?
Contains ability to terminate a process (API string)
Found reference to API "ExitProcess" (Indicator: "ExitProcess"; File: "ME3Buyer.exe")
This one sounds like a LLM hallucination and if it wasn't sad it would be funny. EVERY executable linked against C runtime contains call to ExitProcess. You can only terminate your own process with it, not other processes. The fact that they include this as "indicator" shows how much their business model relies on scaring people into paying for their products.
Queries services related registry keys
"ME3Buyer.exe" (Access type: "QUERYVAL"; Path: "HKLM\SYSTEM\CONTROLSET001\SERVICES\BAM\STATE\USERSETTINGS\S-1-5-21-1271187874-1938232448-3812392235-1001"; Key: "\DEVICE\HARDDISKVOLUME3\WINDOWS\SYSTEM32\CONHOST.EXE"; Value: "")
Nope, it doesn't — it's another misatribution, this time from Microsoft Defender Boot Anti-Malware to the executable being scanned.
TL;DR — The analysis falsely flags common and harmless behaviors, such as standard API calls, UPX packing, and system-level operations, as malicious without proper context. It misattributes OS loader, unpacker, and even sandbox / scanner actions to the executable being scanned. Overall, the analysis overstates risks by failing to distinguish between routine program behavior and actual threats, resulting in an alarmist and inaccurate security assessment which highlighs flaws in the security industry’s automated scanning methods.
I am not going to address all the ridiculous "indicators" they show as "proof" that my tool is malicious. Next time you see CrowdStrike Falcon "detection" on VirusTotal unless it is corroborated by at least ESET and Windows Defender do yourself a favor and put it on the malicious "security" vendors list together with others I listed in my previous article.
]]>Surely you are wondering why am I writing about this? It's simple — I had enough of their "security". I write simple tools for Windows platform and if you are reading this it is likely that you've at least checked out my site Downloads section or even downloaded and used some of them.
Recently I've updated ME3Buyer to version 1.0.3 and like I always do with all my tools I've uploaded it to VirusTotal first (you can see the scan result here). This time, 4 "security" vendors have flagged it as malicious, some of them claiming moderate confidence(!), and some outright labeling it as a Trojan.Kryptik@AI.88 or TROJ_GEN.R002H09CR25. Those vendors are as follows:
I was also tempted to include Rising in the above list, but they were the only ones who had an actual person respond to my false positive submission via email so I'll leave them out for now. However, their results still shouldn't be trusted in isolation.
As for the others, I am hereby declaring all of them malicious and here's why:
DeepInstinct is the worst offender here as they seemingly don't have a false positive submission form, and their regular contact form doesn't even allow GMail addresses so good luck disputing their results if you are an individual developer.
When we are at that, why should I have to prove my innocence by repeatedly submitting false positives to those "security" vendors every time I make a new release? If there was any justice in this world, they would all be liable for false claims about maliciousness of my tools. As it stands, I am just glad that my livelyhood doesn't depend on my reputation with those "security" vendors.
As a final note — if you download anything from my website and ESET or Windows Defender flag it, then don't run it and let me know using the contact form.
]]>Sally forth and receive carnal knowledge unto thyself.
Respectfully,
Your Lost Customer
With that out of the way let me tell you that iPhone 16 Pro Max is the last Apple product I bought. Maybe you don't care, but in the very unlikely case that you do, here's why:
Enshitification of user experience
When you buy a new phone, you are exposed to Incessant bombardment with "free" offers via email (despite saying you don't want marketing emails) and on the device itself over the period of three months after the purchase.
Lack of substantial product improvements
Balkanization of services
Unless you are in the USA, in order to have all the apps, books, music, etc you need to use 3 different regional iTunes stores. As a counter-example, Steam allows me to buy everything in my region and handles VAT calculations and submissions correctly for all purchases. If they can do it why can't a 3T$ valuated company priding itself in "courage" and "innovation" do the same and drop those regional blocks between the stores.
Conclusion
Your dear friend Steve must be spinning in his grave right now -- maybe you could ask his family for permission to use him as a power source for the AI datacenter which handles all the nonsensical and useless features you've added to iOS because of FOMO on the AI hype train.
I used to like and enjoy using Apple products, but this upselling, nay, bullying, is a bridge too far for me -- you can't pitch privacy to me and then intrude on it yourself. So once again, go fuck yourself along with everyone else in your team who's enabling this.
]]>Games were made available in Microsoft Store and even included as pre-provisioned in Windows 10 and 11, but wouldn't you rather play the old version say from Windows 7 instead of installing some "app" from the store which despite being free has in-app purchases, possibly ads, and most definitely usage tracking?
If you would like to play those old games I am sure you could find them available for download on some seedy websites but how about me showing you how to get them yourself straight from the source?
Still reading? Let's roll up our sleeves, crack our fingers and get to work.
Prerequisites:
Once you have the ISO image, first step is to open it and get a file called install.wim. In Windows 10 and 11 you can just mount the ISO image by double-clicking the ISO file, otherwise you can use 7-Zip to extract the ISO contents to a folder of your choice.
Next you need to mount the install.wim contents to a folder using the following command:
DISM.EXE /Mount-Image /ImageFile:install.wim /Index:3 /MountDir:C:\MNT
In the above command, Index parameter specifies which image to mount from install.wim file. Since install.wim you are working on contains four images (Home Basic, Home Premium, Professional, and Ultimate) you have to specify 3 to select Professional image. MountDir parameter naturally specifies the folder where contents of the image will be mounted and it goes without saying that it should exist before executing the command.
Once the mounting process completes successfully (which takes some time during which you can grab a cup of espresso) you can navigate to that folder to copy the game executables from it.
For FreeCell you need the following files:
For Minesweeper, you need the following files:
All of them will be found strewn around in various sub-folders of C:\MNT\Windows\WinSXS folder so the easiest way is to search by name from there.
In Windows 7, those two games are installed in C:\Program Files\Microsoft Games\FreeCell and C:\Program Files\Microsoft Games\Minesweeper. You can make those folders in your Windows 10 or 11 installation or simply put the games anywhere you like, even both in the same folder if you want. The only thing you need to do is to put files with .mui extension in a sub-folder called en-US in your game folder.
Once that is done, don't forget to dismount the install.wim using the following command:
DISM.EXE /Unmount-Image /MountDir:C:\MNT /Discard
Then you can try running the games and... nothing happens.
I can already hear your frustrated groans, all this trouble for nothing, right? Well no, we are just missing one tiny little bit to get them working. Can you guess what? Yep, a license. That's right, Microsoft coded in a check at startup to prevent those games from being run on Windows systems older than Vista (they could have probably run just fine even on Windows XP).
There are two ways to bypass this check, one of them is to patch the executables directly (a single byte change in each), but that one is of dubious legality and there is a more elegant solution anyway.
Since both games rely on SLC.DLL API function SLGetWindowsInformationDWORD to check for enablement, and since they don't have a manifest that forces loading of SLC.DLL from C:\Windows\System32 folder, we can simply drop a replacement SLC.DLL which will always pass this enablement check into the game folder.
That's it, now you can finally play those old games which you enjoyed so much without having to install Windows 7 on some old PC or spin up a virtual machine just for that.
]]>Every time I used them for servers it was set it and (mostly) forget it since nowadays even Linux has automatic updates.
Every time I tried them for desktop use the experience was outright broken from the installer onwards. For example, Debian couldn't bother to include working Intel e1000 driver in their net install ISO several years ago. None of the systems came with ClearType font rendering out of the box and the only one you could set up to render fonts to look sharp as tack like in Windows instead of a blurry mess was Arch Linux but you needed arcane magic to configure it.
Just today I tried installing Debian 12.5 in a VirtualBox VM. That outright failed repeating a message about not being able to compile a keymap in a loop. Turns out that back in May 2023 it has been reported during 12.0 release candidate testing, but it is still not fixed in 12.5 release eight months later.
Yesterday, I installed the same Debian 12.5 with KDE Plasma on a HP ProBook 440 G9 laptop. That went fine until I got to the desktop. Then I decided I want to remote into it from the comfort of my desktop PC instead of using the tiny laptop screen and started searching for a built-in way to do so.
You can probably guess how that turned out -- in 2024 there's no remote desktop functionality out of the box which you can enable with a click of a checkbox in your desktop environment of choice. I tried installing TigerVNC server, TightVNC server, and finally Krfb (KDE specific VNC server) and I couldn't get any of them to work with the desktop environment I have chosen.
Today I sat down to try to figure it out in a VM and after finding a workaround for the installer bug, I managed to find a workaround for Krfb. It turns out that pipewire is missing in the default KDE Plasma install. This does not affect only Krfb, but also Zoom, OBS, and any other applications a regular user might need to use. To be able to add it, you need to use apt from the shell and be in the sudoers group.
I thought that shouldn't be hard, you just change your user type from Standard to Administrator in the Settings, click Apply, enter root password and you can sudo as much as you want from the Konsole... except it won't work not until you log out and log back in but until you reboot!
Apparently, KDE and Wayland in 2024 are incapable of checking user group membership and permissions when you log out and log back in again, let alone refresh them dynamically after you explicitly change them in Settings. So, a reboot later I had a working desktop sharing... until the desktop session locked itself and I wasn't able to unlock it remotely using UltraVNC. So much for that "unattended access" checkbox in Krfb.
If I add to that how poorly Linux CPU schedulers cope with modern CPUs and almost soft real-time nature of modern desktop use (streaming, gaming, remote access, DAW, etc), I can only conclude that Linux, with it's fractured distro and desktop environment landscape will never be ready for everyday desktop use. Poor man's internet browsing and office? Sure. Anything more advanced? Hell no. Now get off my lawn.
]]>So, what was so far a painless experience (press Ctrl+N or click File->New to get a blank new scene or your predefined new scene which you configured in Prefrences) has now turned into an excruciating torture of waiting for the "improved" New Scene dialog to check its cached notifications, check for updated notifications, download a bunch of media content, populate the window with thumbnail images and ads, just so you can click the Create button.

It wouldn't be such a big deal if DAZ 3D developers have addressed numerous long standing bugs and issues in Daz Studio ranging from user interface glitches which have convoluted workarounds (animation timeline, need I say more?) to outright bugs that hang or crash the app and make you lose your work.
Instead, they have chosen (or more likely were forced) to focus on this "feature" who nobody (except perhaps Tafi shareholders looking to maximize profit before running DAZ 3D into the ground) have asked for. Daz Studio is right now a product which is in the second stage of enshitification (becoming actively hostile to the users in an attempt to extract more profit).
If you still have to use Daz Studio my advice is to start transitioning to some other tool and workflow, it was good while it lasted but it is clear that things can only get worse from here onwards. Until you do that, feel free to check my Downloads section and grab a script that will help you avoid exposure to their blatant upsell attempts every time you try to create a new scene.
]]>For those not aware, ghostlight is a term used to refer to fully invisible light source in ray tracing -- one that is not visible to the camera and whose reflections are not visible on glossy surfaces of the objects in its vicinity. They are often used to create ambient lighting and attain a certain scene mood.
This addition is a game-changer for Iray because other ray tracing applications already had that feature for a while, and Iray users had to rely on the opacity trick which NVIDIA made unusable approximately one year ago by fixing a bug by adding a missing luminosity and opacity multiplication for emissive surfaces.
To read how ghostlights work in Iray, check the Iray official documentation. To read how to create ghostlights manually in Daz Studio, check the thread posted by their lead developer. But, since you are here, you might as well check the Downloads section for a script I wrote that will automatically prepare any object surface or built-in light emitter for use as a ghostlight.
]]>
An example of their corporate hypocrisy is nicely demonstrated in this screenshot I took in the iOS App Store.

We all know how much energy is wasted on Bitcoin mining and transactions, and how crypto currencies are mostly used for illegal activity. Bitcoin miners are buying old coal plants to power their business, so how can Apple claim with a straight face to be carbon neutral when they are not only taking money to advertise Bitcoin whose very nature is in direct opposition to their stated environmental goals, but also actively promoting it by placing the ad on the top of Suggested apps list in their, supposedly curated, App Store?
Aside from enormous energy waste and pollution, crypto currencies drive speculation in which gullible people are losing their savings, they drive prices of video cards causing shortages for gamers, developers, and graphics professionals alike, and they enable new forms of criminal behavior (ransomware, trade in illicit goods on dark web, untraceable transactions with Monero).
But the most important thing is that crypto currencies can never replace traditional currencies because they aren't scalable -- I don't know about you, but I would feel bad if I had to wait 10 minutes on average for my morning coffee payment to go through while consuming 1,795 KWh for a single transaction, and if I had to pay the transaction fee more expensive than the coffee itself.
It is about time that Apple puts their money where their mouth is, and ban all crypto apps from the App Store as crypto currencies have so far been a net negative both on the environment and on the society.
If they don't do so, they are proving that removing power chargers from their new products' packaging had nothing to do with environment and everything to do with money, just like those promoted crypto ads.
]]>When trying to connect using FTP client I was getting the following error:
431 Failed to setup secure session.
After checking the IIS FTP logs I noticed a Win32 error code 2148074253 (0x8009030d) which translates into SEC_E_UNKNOWN_CREDENTIALS.
Given that I haven't even reached the point where I would be asked for user credentials, I suspected that this has something to do with the SSL certificate private key access and it turned out I was right.
The mistake I made is that I imported the SSL certificate using IIS Manager -- it turns out you have to import it using MMC Certificates snap-in (select Computer Account, Personal store), but you also have to mark the private key as exportable in order for TLS to work.
The reason is that the IIS is using SChannel for TLS and according to Microsoft Security Developer John Banes, SChannel has to be able to export the SSL certificate's private key:
On NT4 private keys used for server-side SSL must be marked exportable. The CSPs on NT4 don't support the operation necessary for SSL and so our SSL implementation (schannel) exports out the private key and uses it directly.
One would hope that 17 years later new CSPs would be available with a proper support for SSL/TLS which would eliminate the need for this requirement, but here we are.
TL;DR -- re-import your SSL certificate using MMC and mark the key as exportable and your IIS FTP server will work fine.
]]>DISCLAIMER:
Running Active Directory DNS on a router (or pretty much anywhere else except on a Windows DNS server) is not advised -- if you use DNSSEC, dynamic DNS record updates from DHCP, domain controller replication, or if you have more than one domain in your Active Directory forest please stop reading now, because as far as I know MikroTik cannot handle any of that.
If on the other hand you have a simple domain with one domain controller and you want your DNS to always be accessible for your home network devices even when your domain controller is down while installing Windows Updates without having to dedicate another Windows PC to run as a DNS server, then maybe this article can help you out. Commands to create DNS records shown below are based on Microsoft's TechNet article SRV Records Registered by Net Logon, and were completed by analyzing a live test domain.
So without further ado, here is the script:
/ip dns static add name=ns.example.com address=DNSIP
/ip dns static add name=dc.example.com address=DCIP
/ip dns static add name=example.com address=DCIP
/ip dns static add name=example.com ns=ns.example.com
/ip dns static add name=_gc._tcp.Default-First-Site-Name._sites.example.com srv-port=3268 srv-target=dc.example.com srv-weight=100
/ip dns static add name=_kerberos._tcp.Default-First-Site-Name._sites.example.com srv-port=88 srv-target=dc.example.com srv-weight=100
/ip dns static add name=_ldap._tcp.Default-First-Site-Name._sites.example.com srv-port=389 srv-target=dc.example.com srv-weight=100
/ip dns static add name=_gc._tcp.example.com srv-port=3268 srv-target=dc.example.com srv-weight=100
/ip dns static add name=_kerberos._tcp.example.com srv-port=88 srv-target=dc.example.com srv-weight=100
/ip dns static add name=_kpasswd._tcp.example.com srv-port=464 srv-target=dc.example.com srv-weight=100
/ip dns static add name=_ldap._tcp.example.com srv-port=389 srv-target=dc.example.com srv-weight=100
/ip dns static add name=_kerberos._udp.example.com srv-port=88 srv-target=dc.example.com srv-weight=100
/ip dns static add name=_kpasswd._udp.example.com srv-port=464 srv-target=dc.example.com srv-weight=100
/ip dns static add name=DomainDnsZones.example.com address=DCIP
/ip dns static add name=_ldap._tcp.DomainDnsZones.example.com srv-port=389 srv-target=dc.example.com srv-weight=100
/ip dns static add name=_ldap._tcp.Default-First-Site-Name._sites.DomainDnsZones.example.com srv-port=389 srv-target=dc.example.com srv-weight=100
/ip dns static add name=ForestDnsZones.example.com address=DCIP
/ip dns static add name=_ldap._tcp.ForestDnsZones.example.com srv-port=389 srv-target=dc.example.com srv-weight=100
/ip dns static add name=_ldap._tcp.Default-First-Site-Name._sites.ForestDnsZones.example.com srv-port=389 srv-target=dc.example.com srv-weight=100
/ip dns static add name=_msdcs.example.com ns=ns.example.com
/ip dns static add name=DsaGUID._msdcs.example.com cname=dc.example.com
/ip dns static add name=_kerberos._tcp.Default-First-Site-Name._sites.dc._msdcs.example.com srv-port=88 srv-target=dc.example.com srv-weight=100
/ip dns static add name=_ldap._tcp.Default-First-Site-Name._sites.dc._msdcs.example.com srv-port=389 srv-target=dc.example.com srv-weight=100
/ip dns static add name=_kerberos._tcp.dc._msdcs.example.com srv-port=88 srv-target=dc.example.com srv-weight=100
/ip dns static add name=_ldap._tcp.dc._msdcs.example.com srv-port=389 srv-target=dc.example.com srv-weight=100
/ip dns static add name=_ldap._tcp.DomainGUID.domains._msdcs.example.com srv-port=389 srv-target=dc.example.com srv-weight=100
/ip dns static add name=_ldap._tcp.Default-First-Site-Name._sites.gc._msdcs.example.com srv-port=389 srv-target=dc.example.com srv-weight=100
/ip dns static add name=_ldap._tcp.gc._msdcs.example.com srv-port=389 srv-target=dc.example.com srv-weight=100
/ip dns static add name=_ldap._tcp.pdc._msdcs.example.com srv-port=389 srv-target=dc.example.com srv-weight=100
However, before you rush to upload and run the above script on your MikroTik router, please note that you need to substitute a few placeholder values first, namely:
DNSIP - IP address of your MikroTik router
DCIP - IP address of your Domain Controller
example.com - FQDN of your domain (this should never be the same as your internet domain)
dc.example.com - FQDN of your domain controller (replace "dc" with domain controller's actual computer name)
Default-First-Site-Name - Replace with your actual Active Directory Site name if you renamed it
DsaGUID, DomainGUID - Replace with actual values found in your domain controller DNS server configuration
After replacing those values you can upload the script to your MikroTik router and run it using the following command:
/import filename
Where filename is the name of the uploaded file.
After verifying that those records are in place using WinBox GUI (IP -> DNS -> Static), you can test if everything works by logging in to your domain controller, replacing DNS IP address in network adapter's properties with your router's IP address, and then executing the following commands in the command prompt:
ipconfig /flushdns
dcdiag /test:dns
First command ensures that any cached DNS entries are purged, and the second one runs actual tests which should obviously pass without any errors.
After making sure DNS configuration is ok, login to any domain-joined PC, change it's DNS server IP address temporarily, and run the following commands in the command prompt:
ipconfig /flushdns
gpupdate /force
As in the previous test we first purge the DNS cache to make sure we are actually testing new DNS server, and the second command serves to check whether your domain-joined PC can still fetch the group policy updates from your domain controller.
If both tests pass without errors then congratulations are in order -- you can now safely change your DHCP server's DNS IP address to point to your MikroTik router and remove the DNS role from your domain controller.
]]>Let's start with the forum. Approximately every two days or less it logs me out. Other users have complained as well so I am not the only one with this issue. I submitted a ticket and after going through a lengthy troubleshooting back and forth involving testing with several different browsers, three different computers with different operating systems, accessing from different locations which have different IP addresses and different routers/firewalls the issue was closed without resolution with the Cloudflare DDoS protection given as a possible explanation without a way to investigate further and fix.
On to DAZ Studio. Even the final release versions have serious bugs. When I say serious I mean bugs ranging from not being able to render using Iray to those that cause you to lose work.
1. dForce cloth physics simulation engine often causes the simulated clothing item to "explode", and if you don't react fast enough and cancel it right away, the results may vary from simply stopping with an error message and being unable to simulate anything until you restart the application, to outright crashing and losing unsaved work.
2. Iray rendering is a mess, current release version (4.12.0.86) as well as public beta (4.12.1.40) have serious issues with R440 NVIDIA drivers. How serious? Well switching to Iray preview in release version with 44x.xx drivers when you first launch the application with an empty scene will cause immediate CPU fallback. Furthermore, once you get a working Iray preview it can also happen that you get an error message saying that the renderer is in use once you hit the Render button. In beta version CPU fallback for empty scene seems to have been worked around, but you may get a CPU fallback by switching figure materials (for example changing eye color or clothing textures or even just tweaking the geometry a bit). I have two tickets open for two weeks and still not a word about a fix.
3. Application seems to use considerably more video memory than previous release (4.11), and as a result you will often have CPU fallback because memory allocation has failed.
4. When loading morphs with duplicate formulas, DAZ Studio does so extremely slowly -- figure which otherwise loads in 30 seconds takes more than 4 minutes to load when there are duplicate formulas. Yes, the product in question should be fixed, but this is also a parser issue which could be handled better so I opened a ticket. However, since it was a third party product (i.e. not sold on daz3d.com) they didn't even want to try to reproduce it, let alone consider making a performance improvement.
5. Once you face a problem and quit the application, which is something you will be doing very often, its process will remain active for dozens of seconds, apparently freeing memory and thus preventing you from launching it again immediately to continue working.
So what is DAZ Studio exactly then? Is it a professional application? I'd say that even though its output can look professional provided that you use high-quality assets and you know 3D, the way it is being developed and tested is far from professional -- in its current state it is no more than a toy 3D application given out for free to entice people to spend on 3D assets in the DAZ Store.
The store itself has a huge amount of 3D assets -- some of them very well done, and many others with various flaws such as bad clothing fits (some of which you can't fix yourself), and misaligned skin textures to name just a few. The prices for most items are outrageous, even if they are lower quality. For example, a Pro character bundle can go as high as $135 -- you get a base character, and one or two variations, you get a few clothing items, maybe a matching hair and that's it while just the character itself can cost you $45.
On top of it, there are a lot of characters which are not 3D sculpted, but are instead done by tweaking bog standard base body and head morph dials which you must own as well, and which you could have tweaked yourself and saved some money.
Finally, there is a matter of interactive licensing for every product -- you must pay additional $10-$50 per item for the right to use it outside of DAZ Studio, say in your 3D game.
DAZ Studio was supposedly used in creation of some popular movies, although to what extent it is not clear. In its current state I wouldn't recommend it if you are doing anything more serious than hobby 3D rendering.
Of course, NVIDIA has it's own share of blame for this, but more about that in my next article. Stay tuned.
]]>Only a single instance of the application, per release channel, is now allowed to run at a time; attempts to load registered file types via double-click or "open with" commands will now forward to a running instance (if any) instead of allowing concurrent instances that compete for resources and cause conflicts.
Frankly, I have no idea whose bright idea that was, but judging by the user comments, not a single one of them seems to appreciate this change. Why? Because it is breaking their workflow, and because nobody ever asked for it.
Here is where my reverse-engineering skills come to the rescue -- by following the procedure below you too can re-enable old behavior and launch multiple instances of DAZ Studio.
Disclaimer:
The patching procedure applies only to DAZ Studio Public Beta 4.12.1.16 -- attempting to apply this patch to any other DAZ Studio version can lead to outcomes ranging from DAZ Studio simply crashing or not starting to seemingly working properly but silently corrupting your data.
Note:
This patch is only disabling detection of another running instance, but if you encounter any issue while using the program after applying the patch, please first restore the backed up file and re-test to see if you can still reproduce the issue. Only if the issue still persists with the original file you should proceed to submit a bug report to DAZ 3D developers.
cd C:\Program Files\DAZ 3D\DAZStudio4 Public BuildAfter you press Enter it should read:
C:\Program Files\DAZ 3D\DAZStudio4 Public Build>
sfk setbytes DzCore.dll 0xB6C9FC 0x33 -yesAfter you press Enter it should read:
1 bytes written.If you are typing instead of copying and pasting, note that the first character after 0x is B, not 8.
Optional:
Remove sfk.exe from your C:\Windows\System32 folder if you believe you will no longer need it. Or better yet, keep it, because it will allow you to do other awesome things -- for a full list of features and help with examples visit Swiss File Knife website.
That's it, happy ray-tracing!
]]>Unwanted telemetry added into all executables built using Visual Studio 2015 prior to Update 3 (which I was the first to notice and write about below) has been picked up by other developers four months later on Reddit, and MSVC Dev Manager Steve Carroll has issued an official statement which you are advised to read.
More...]]>What I have been saying all along is now official information in the Windows 10 FAQ — Windows 10 free upgrade will make your existing retail license non-transferable.
ORIGINAL ARTICLE
Microsoft has announced that people with valid licenses (be it OEM or Retail) for Windows 7 and Windows 8.1 will be able to upgrade to Windows 10 free of charge. Since then, there has been a lot of speculation what exactly is the meaning of the word "free" in that context.
More...]]>I wrote earlier why Firefox developers and designers are clueless when it comes to UI and UX, and despite all security risks I was holding off from upgrading my Firefox 24.8.1 ESR until today when I finally realized I will have to "go with the flow" if I want to have functional web. If you have asked yourself what could possibly become broken by not updating your browser for a while let me give an example — despite version 24.8.1 not being too far from 31.7.0 feature-wise, for some weird reasons Javascript was hanging when you click the video window controls on YouTube, and HD video was not available for many clips regardless of whether I tried to use the latest Flash Player or HTML5.
More...]]>Consider the following typical code snippet which can probably be found in almost any project from small utility to linux kernel driver:
int func1(int param)
{
switch (param) {
case 0:
set(DEVICE, 0);
break;
case 1:
set(DEVICE, 1);
break;
case 2:
set(DEVICE, 2);
break;
case 3:
set(DEVICE, 3);
break;
More...]]>
More...]]>I have also moved the website to a new server, goodbye Loopia AB.
You served me well, but unfortunately you could not solve the email problems I had (read: spam). So far there is no new content (just the migration of the existing content took enough time as it is), but be on the lookout for new stuff. You never know, maybe I become less lazy when it comes to posting content to my own website.
Stay tuned!
]]>Or should I rather say "security questions"? Or insecurity questions? That really depends on whose security we are talking about. Usually it is not yours.
How many times you had to fill in those so called "security questions" on various websites at registration time including your e-banking? They are usually used in case you forget your password and you need it reset so you can gain access.
Examples of such questions include but are not limited to gems such as:
More...]]>It seems that I have given way too much credit to Adobe by assuming that they are competent enough to keep CURRENT version of their offline Flash installer in a folder named current on their download server. This seems not to be the case as the links I posted in the original article are still pointing to version 11.2 while the current version is 11.4. Latest offline Adobe Flash Player installers can be downloaded here:
More...]]>Do you feel insulted that Mark Zuckerberg believes you couldn't have done it on your own if you really wanted to?
Do you feel enraged because the message keeps showing every time you visit Facebook, and there is no opt-out?
Do you use Firefox?
If you answered "yes" to those questions, you are on a right page! Just follow those simple instructions to get rid of that pop-up once and for all:
More...]]>I had a chance to play a bit, and I don't like it. I mean, graphics is great, physics nice as well, but the commands suck and the game has bugs.
Occasional graphics corruption (Alt-Tab and back fixes it) can perhaps be attributed to an ATI driver problem with new HD 58xx series of cards, but game showing wrong keyboard shortcuts once you redefine them is unforgivable — you need to remember the original keys if you want to pass through the action sequences where you have to press certain keys in order.
More...]]>This program is freeware, if you paid for it you have been scammed, and you should get a refund.
Do you keep getting that message box each time, or almost each time you start the program? If your answer is "yes" then you are at a right place.
Let me first explain the background — uTorrent is a freeware application but some bad people on the Internet have been selling it to those who are stupid enough to pay for it. Can you believe that? Neither can I, but there is more to it.
More...]]>The drive has died after being unplugged while the activity light was on. Since USB standard specifies SURPRISE_REMOVAL_OK flag for removable mass storage, something like that shouldn't have happened.
Maybe it was just my bad luck, but I am suspecting that USB to SATA controller might be too sensitive to hot-plug events.
Anyway, I got my money back since they didn't have another red one. Too bad because I really liked the drive.
I also have to clarify that it actually had read speed of 34 MB/s in real use with both ends of Y cable attached — it looks like the amount of power available greatly affects the drive speed.
More...]]>Those with a sharp eye for details may have noticed even more changes:
I have just noticed that there is an updated BIOS available for download for my Sony VAIO VGN-FW190E:
This utility updates the BIOS to version R0270Y0 to add support for the Intel® Virtualization Technology and provides the ability to enable or disable this feature within the BIOS settings.More...]]>
Let there be a website which requires username and password to post comments. Let that username be user and let the password be empty. Now that we have a context, visit the site using Firefox and post a comment — Firefox will offer you to remember the password but clicking the Remember button won't do a single thing. Yes, that's right — It won't even close the damn bar!
Bug or a feature? I say it's a bug, and if it is on purpose it is still a bug — you can't offer an option to the user, and then ignore their input.
More...]]>Have you ever filled some info on some website and got a page showing your new username and password? You then open a login page in another tab, and you figure that you have to go back to the previous tab to copy/paste the username or the password in order to log in successfully because they are too hard to remember. Guess what — you can't!
Be it Firefox, Internet Exlporer or Opera it will stuff a modal prompt in your face and you won't be able to switch tabs!
More...]]>I have completely revamped the site "engine" — a lot of coding in PHP was involved, as well as a lot of manual article editing.
Fortunately, those editing days are now thing of the past — I will never have to edit each article again when I want to change site layout or functionality. This project is becoming more and more CMS like and the funny thing is that everything works with just PHP and XML — absolutely no MySQL in sight (yet).
In the next few days my next update target will be the photo gallery — some people complained that navigation is hard (Hi Bojana!), soon they will get a flash based gallery viewer with all the associated bells and whistles. Don't worry though — it won't make the site any slower or bigger than it is.
More...]]>I have bitten the bullet and got myself Canon EOS 40D [review] instead. Read about my DSLR shopping experience here.
I have sold my Fuji S6500FD camera few days ago. Most likely I will be getting myself a Canon EOS 450D [review] as a replacement.
More...]]>Let me tell you — I don't give a shit who that diligent comment spammer is, but because of him as of today The Inquirer is off my website link list. I also won't torment myself by reading their news anymore, because almost every news article is now followed by his verbal diarrhea.
I thought about the possibility that someone from the Inquirer is doing that in order to provoke comments. If that is true, they should better stop it because it wasn't funny the first time — now it is outright annoying and I am not alone judging by the comments of other readers.
More...]]>After getting back from a vacation, Raymond said that he didn't censor my posts. They were "eaten" by an overzealous comment filtering system. I apologize for accusing him of censorship — sorry Raymond!
He also said he was sorry that I found those drag'n'drop articles boring and asked "How much more boring can you get than scroll bars!" — easy, just keep writing about COM! ;)
More...]]>I often do.
Obviously, it is not our computer's fault that we run lousy software on it which in turn provokes such dark emotions from the deepest corners of our souls. This rant will be short because I have a headache so I will just give an example of what decent software should not do.
As an example I am going to use Windows Media Player 11 setup. Actually, Windows Media Player 10 would do nicely too because it is guilty of the same thing.
More...]]>In that section I will post my thoughts on other people's blog entries and thanks to some new PHP code I wrote, my thoughts will be linked to the original blog post using PingBack protocol. Yes, I know that many bloggers think that pingbacks suck big time (I hate it when I see them while reading comments on someone's blog too) but I intend to use them responsibly.
]]>SUR "Mara" has just reopened their business at a new location in Novopazarska street (ex Sime Milosevica street)!
For those who are too young to remember, they started their business in 1987 in a small red kiosk selling delicious yet fast food on the square between Petrogradska street (ex Lenjingradska street), Milesevska street (ex Save Kovacevica street), and Vojvode Dragomira street. At that time I was living in an apartment bare 50 meters away and they were my favorite food source.
More...]]>As you can see my computer was built using high-quality components. It has been working for over a year without a single BSOD under Windows XP SP2.
More...]]>Long time ago I have made custom Serbian (Latin) keyboard layout but it was only for Windows XP. After MSKLC 1.4 has been released I have updated it and now it works for 32-bit and 64-bit versions Windows. Features are:
KC Lemson has read this post and she said that she has forwarded my feedback to the Outlook team. I have since cleared the article of the word "moron" (which I used twice in my frustration), because the points I am making about UI design are still valid and more easily digested without it.
Quite some time ago when I still had the blog instead of this site I ranted about applications which seem to be designed to piss you off. My example at that time was Outlook email client. I am reproducing that rant here so we can establish a context:
More...]]>I can't tell you how much that pisses me off. There is no benefit in using variable bitrate mp3 for video clips — file won't be any smaller, quality won't be any better, and you are just creating synchronization nightmare for those who would like to edit it.
If you still don't understand how VBR works, here is a brief reminder. If you assign 128kbps CBR to audio track, it will have the same bitrate during the whole clip. If you assign 128kbps VBR (and that is what most of those pricks are doing), then some parts of the audio will be encoded with 112kbps, some with 144kbps, but on average you will still have 128kbps so the file size will stay the same and you have just made editing harder. High quality audio cannot fit in less than 256kbps anyway so why bother assigning more bits to explosions and less to dialogs? Beats me.
More...]]>I have just opened the Stories section! This is the place where you will be able to read about some of the things that happened to me in the (not so distant) past.
I wanted to tell a story and I figured out that it doesn't fit in any of the existing categories so I thought "Why not expand?" and here it is — the Stories section. Enjoy!
]]>You are surely asking yourself WTF is this list, right?
Well, it is a growing list of options which are not accessible from the Firefox Preferences but only via about:config. What do they have in common? They are all set to an unreasonable default, which is different from what you have been used to so far. I guess someone is bored out there and has decided to piss people off this way.
icon next to the link to a content which has been added or modified since your last visit.
More...]]>I just wanted to let you know that this site is now online!
It still doesn't have much content but I hope to finish this initial version very soon.
Site has a very simple design because I was a cheap bastard and I haven't paid for MySQL database to be able to use CMS so I am creating it all by hand. It might take a while though because I am using the opportunity to learn PHP as I go. So grab the popcorns and stay tuned, because "I'll be back!"
]]>