Programming thread

Anyone familiar with Microsoft Dynamics and X++?

Easy to pivot to/from a stack focused on C# and SQL?

Just trying to get a general feel. Lucrative niche or enterprise hellscape?
 
If someone is feeling particularly charitable, could they explain to me, in retard terms, what RtlpWaitForCriticalSection is and why it's the leading cause of WINE screwing me over?
 
could they explain to me, in retard terms, what RtlpWaitForCriticalSection is
A "critical section" in Windows is a contrivance for thread synchronization. The idea is that only one thread in a process can hold the critical section object at a time. So imagine you have something like a log file where if two threads try to write at the exact same time you'll end up with garbled nonsense. One solution is to say "Every time I want to write to the log, I will obtain a certain critical section object first and then I know no other thread can have it at the same time. Then I release the critical section when I'm done."
You can have your thread wait for a critical section if it's in use (hence the "WaitForCriticalSection" name), and you can set a maximum time it's willing to wait. If that time is exceeded then you get an error.

Why exactly that may happen in Wine where it wouldn't on real Windows, I have no idea.
 
Anyone got project ideas or know a place for doing projects?
currently learning Python n just started with JS but I wanna do something with it other than making clocks and calculators.
Learning JS is fine when coming from Python. If you aren't already, you need to get familiar with HTML/CSS for DOM manipulation and get used to asynchronous javascript because ES6 is all about it. This means understanding callback hell, promises and why async()/await is great.
The best way to get introduced to this is building some simple web store. I recall there are lots of pajeet tutorials on youtube about it. This way you will pretty much go through everything you need to know for starters. Just find one where they use vanilla javascript and not libraries(jquery for example)
Also, completing challenges on codewars is great for interviews and getting used to the language, no matter which one.
 
  • Feels
Reactions: 1988 prick
Why exactly that may happen in Wine where it wouldn't on real Windows, I have no idea.
I've run into it before. I think what's happening is that the waiting thread isn't being preempted by the thread using the critical resource so it's just deadlocked forever. Switching wine versions around usually fixes it.
 
  • Informative
Reactions: Friendly Primarina
Learning JS is fine when coming from Python. If you aren't already, you need to get familiar with HTML/CSS for DOM manipulation and get used to asynchronous javascript because ES6 is all about it. This means understanding callback hell, promises and why async()/await is great.
The best way to get introduced to this is building some simple web store. I recall there are lots of pajeet tutorials on youtube about it. This way you will pretty much go through everything you need to know for starters. Just find one where they use vanilla javascript and not libraries(jquery for example)
Also, completing challenges on codewars is great for interviews and getting used to the language, no matter which one.
Just use React.js as your client-side solution. The one valid contribution to society Facebook ever made. I promise you will never think about JQuery again.
 
  • Agree
Reactions: Angry Shoes
Just use React.js as your client-side solution. The one valid contribution to society Facebook ever made. I promise you will never think about JQuery again.
React is indeed great, goes above and beyond angular and jquery both. But getting started with vanilla is better for a beginner. People getting into web development and js should also stay away from bootstrap/less/sass etc. They kind of leave you with a false sense understanding. Pure CSS is niggerish shit but even if you're not gonna be doing any frontend at all you still need to understand why shit breaks with a quick glance. At least that's how I feel.
 
React is indeed great, goes above and beyond angular and jquery both. But getting started with vanilla is better for a beginner. People getting into web development and js should also stay away from bootstrap/less/sass etc. They kind of leave you with a false sense understanding. Pure CSS is niggerish shit but even if you're not gonna be doing any frontend at all you still need to understand why shit breaks with a quick glance. At least that's how I feel.
I disagree with this premise with SASS. First, SASS can be used syntactically identically to CSS. There is no benefit to not using it apart from infrastructure setup. And if you are setting up infrastructure, you either should learn how to use build tools the right way or let someone with actual experience handle it.

I tend to feel the same way with React, but i do acknowledge that react adds some complexity that vanilla JS doesn't have.
 
  • Agree
Reactions: Nuke Africa
The best way to get introduced to this is building some simple web store. I recall there are lots of pajeet tutorials on youtube about it. This way you will pretty much go through everything you need to know for starters. Just find one where they use vanilla javascript and not libraries(jquery for example)
Also, completing challenges on codewars is great for interviews and getting used to the language, no matter which one.
recommending that newbies complete meaningless "sample" projects, especially from tutorials, has always bugged me.

unless the goal is to become a corpo cubicle rat churning out boilerplate for the rest of your life, it doesn't impart the principles of computer science properly and gives off the idea that it's more about typing out pre-imagined lines of code than actually formulating and engineering solutions (see: the prevalence of LOL XD PROGRAMMING IS JUST COPY PASTE FORM STACKOVERFLOW LOLOLOLOL among CS freshmen and normalfags). this is the reason for the emergence of the "FizzBuzz" effect: people that were technically able to translate basic speech into code (i.e. they knew syntax) were completely stumped with the smallest possible problem that they actually had to devise a solution to themselves. this is a curable affliction, but it takes forever and consigns you to retardation until the process is complete.

my advice: instead of making whatever gay-ass useless toy some tutorial tells you to, pick something you think is cool (my first real project was an imageboard, as an example), and logically try to figure out how one would work using what you know. draw a structure on paper, if that helps. when implementing this structure, every time you run into a wall in actual knowledge of the language, look it up (e.g. "how to read json file in javascript").

the outcome will be shit. this is inevitable, but at least it's your shit, right? it may be ugly, slow, riddled with security holes (my aforementioned imageboard project worked by having PHP take full contents of a form submission and append it directly to the end of a .html file that nginx read as a "thread" to be fair, I was 12), but you have successfully engineered something. keep it up for a few years, and you'll be more competent than your peers by far.

t. ended up going into my first year of university published in IEEE without any formal /prog/ education
 
When I first heard about FizzBuzz being a filter I thought it was just an inside joke. Turns out many "programmers'" immediate attempt at problem solving is to just copy and paste someone else's solution, no matter how trivial it is.
In an ironic twist, I think the modern interview focus on leetcodey problems favors this type of thinking which further exacerbates the problem in the professional world.
 
recommending that newbies complete meaningless "sample" projects, especially from tutorials, has always bugged me.

unless the goal is to become a corpo cubicle rat churning out boilerplate for the rest of your life, it doesn't impart the principles of computer science properly and gives off the idea that it's more about typing out pre-imagined lines of code than actually formulating and engineering solutions (see: the prevalence of LOL XD PROGRAMMING IS JUST COPY PASTE FORM STACKOVERFLOW LOLOLOLOL among CS freshmen and normalfags). this is the reason for the emergence of the "FizzBuzz" effect: people that were technically able to translate basic speech into code (i.e. they knew syntax) were completely stumped with the smallest possible problem that they actually had to devise a solution to themselves. this is a curable affliction, but it takes forever and consigns you to retardation until the process is complete.

my advice: instead of making whatever gay-ass useless toy some tutorial tells you to, pick something you think is cool (my first real project was an imageboard, as an example), and logically try to figure out how one would work using what you know. draw a structure on paper, if that helps. when implementing this structure, every time you run into a wall in actual knowledge of the language, look it up (e.g. "how to read json file in javascript").

the outcome will be shit. this is inevitable, but at least it's your shit, right? it may be ugly, slow, riddled with security holes (my aforementioned imageboard project worked by having PHP take full contents of a form submission and append it directly to the end of a .html file that nginx read as a "thread" to be fair, I was 12), but you have successfully engineered something. keep it up for a few years, and you'll be more competent than your peers by far.

t. ended up going into my first year of university published in IEEE without any formal /prog/ education
Completely agree and that's why I said "to get introduced". Meaning to get introduced to the language and it's intricacies(like the json example you mentioned). Didn't mean to start mindlessly copy-pasting.
the prevalence of LOL XD PROGRAMMING IS JUST COPY PASTE FORM STACKOVERFLOW LOLOLOLOL among CS freshmen and normalfags
That's like saying electricians just connect the wires and rally drivers just push the pedals and everyone with 5 hours into OOP 101 knows it's normalfag cope. Writing code/scripting/copy-pasting from stackoverflow is not programming.
the outcome will be shit. this is inevitable, but at least it's your shit, right?
Which is when the tutorial/lecture/lesson comes in place, because what better way to improve your own shitty meaningless sample project than seeing an example of less shitty one.

What I meant was ''learn and see how people do it properly" rather than "see what others do and just do the same". Guess didn't make myself clear, happens often.
 
  • Feels
Reactions: Xiphias
recommending that newbies complete meaningless "sample" projects, especially from tutorials, has always bugged me.
There are reasons for it.
unless the goal is to become a corpo cubicle rat churning out boilerplate for the rest of your life, it doesn't impart the principles of computer science properly and gives off the idea that it's more about typing out pre-imagined lines of code than actually formulating and engineering solutions (see: the prevalence of LOL XD PROGRAMMING IS JUST COPY PASTE FORM STACKOVERFLOW LOLOLOLOL among CS freshmen and normalfags).
One goal is to burn into the mind of a newbie the boilerplate for starting a project. This starting boilerplate will be re-used over and over in every project, and it gives a starting point for people to build on.
this is the reason for the emergence of the "FizzBuzz" effect: people that were technically able to translate basic speech into code (i.e. they knew syntax) were completely stumped with the smallest possible problem that they actually had to devise a solution to themselves. this is a curable affliction, but it takes forever and consigns you to retardation until the process is complete.
There is just a segment of the population who cannot think creatively no matter what they do. It isn't even a sign of stupidity. Problem-solving is a creative skill, and it's also one that is being beaten out of students in high school and many colleges.
my advice: instead of making whatever gay-ass useless toy some tutorial tells you to, pick something you think is cool (my first real project was an imageboard, as an example), and logically try to figure out how one would work using what you know. draw a structure on paper, if that helps. when implementing this structure, every time you run into a wall in actual knowledge of the language, look it up (e.g. "how to read json file in javascript").
The gay ass useless toys are just examples laid out to demonstrate the concept. The expectation is that the reader will take that and adapt it to their individual needs. It's not the author of the tutorial's fault if people don't understand that. The rest of this advice is spot on.
the outcome will be shit. this is inevitable, but at least it's your shit, right? it may be ugly, slow, riddled with security holes (my aforementioned imageboard project worked by having PHP take full contents of a form submission and append it directly to the end of a .html file that nginx read as a "thread" to be fair, I was 12), but you have successfully engineered something. keep it up for a few years, and you'll be more competent than your peers by far.

t. ended up going into my first year of university published in IEEE without any formal /prog/ education
it's inefficient to waste a bunch of time teaching newbies garbage coding practices just so they can unlearn them later. You drill the correct boiler plate into their head, and later as they begin to understand why it's that way things click into place. Thinking creatively to use programming concepts together to solve a problem is much like composing a song mentally. That's why music majors are the #1 non-computer science major among developers with degrees.

One thing to add: That ability cannot really be taught. If you have it, you can learn to code and that's why there are a lot of self-taught developers in tech. (I think that extends beyond just developers honestly)
 
Regarding RtlpWaitForCriticalSection, I'm noticing some strange things. On real Windows (Windows 10 21H2), it's an export forward to WinSqmEndSession (an export forward is something a DLL file can do, where if you ask the DLL for a function A, it can give you a function B instead that can even be in a seperate DLL)

If I try to look up RtlpWaitForCriticalSection or WinSqmEndSession on Google, the results are all about Wine and I can't find them on http://undocumented.ntinternals.net/ either.

And then there is the actual code of that function...
It is literally nothing
WinSqmEndSession.png
 
The Rtlp* functions are all private, so maybe Microsoft dummied it out. Alternatively there could be some API set chicanery going on.
 
When I first heard about FizzBuzz being a filter I thought it was just an inside joke. Turns out many "programmers'" immediate attempt at problem solving is to just copy and paste someone else's solution, no matter how trivial it is.
In an ironic twist, I think the modern interview focus on leetcodey problems favors this type of thinking which further exacerbates the problem in the professional world.
I loved the cope from these guys: "FizzBuzz is unfair because the applicant might not know modulo".
Just think about it for a second and you'd realize that it's very easy to solve without modulo.
 
I loved the cope from these guys: "FizzBuzz is unfair because the applicant might not know modulo".
Just think about it for a second and you'd realize that it's very easy to solve without modulo.
I would argue that it is absolutely fair to expect an applicant to know the language's fundamental arithmetic operators and their effects.

But you are correct, if an applicant cannot figure out how to solve FizzBuzz either with or without the modulo operator, they're probably going to require an excessive amount of training (if they can be trained at all).

In fact I would expect that you could probably write a faster solution by using addition and comparison only and avoiding the integer division required for modulo.
 
I'd actually say that Fizzbuzz gets you more out of applicants who don't know the modulo operator because you get to see how they approach the problem.
In fact I would expect that you could probably write a faster solution by using addition and comparison only and avoiding the integer division required for modulo.
Significantly faster. But neither version will be able to compete with this.
 
In an ironic twist, I think the modern interview focus on leetcodey problems favors this type of thinking which further exacerbates the problem in the professional world.
This is a result of leetcode problems culminating in a race to the bottom among applicants. There's a large body of test banks with questions and solutions on a certain Chinese website that every third-worlder trying to get a visa uses to cheat the system and because those candidates can vomit up answers immediately, the bar has been raised to absolutely ludicrous heights where you now have companies asking for shit like four leetcode mediums/hards in 20 minutes. So now your normal-ass engineer trying to get a job spends all their time grinding leetcode problems instead of actually developing useful skills. I mean go on youtube and look at the dudes live-streaming their job prep sessions - just non-stop leetcode grinding doing shit that never comes up in 90% of app development. And even when it does, the process in actual serious business software development is so slow that you're never going to have to solve a dynamic programming problem in 20 minutes or burn down the company - the kind of shit that'd go into a feature that needs DP is going to be like half a year of paperwork just to get into prod in the first place at any medium-ish sized company.

It's all so tiresome.
 
Back