-
"Last week, a tweet by Stanford researcher Yegor Denisov-Blanch went viral within Silicon Valley. “We have data on the performance of >50k engineers from 100s of companies,” he tweeted. “~9.5% of
"Last week, a tweet by Stanford researcher Yegor Denisov-Blanch went viral within Silicon Valley. “We have data on the performance of >50k engineers from 100s of companies,” he tweeted. “~9.5% of software engineers do virtually nothing: Ghost Engineers.”
Denisov-Blanch said that tech companies have given his research team access to their internal code repositories (their internal, private Githubs, for example) and, for the last two years, he and his team have been running an algorithm against individual employees’ code. He said that this automated code review shows that nearly 10 percent of employees at the companies analyzed do essentially nothing, and are handsomely compensated for it. There are not many details about how his team’s review algorithm works in a paper about it, but it says that it attempts to answer the same questions a human reviewer might have about any specific segment of code, such as:
“How difficult is the problem that this commit solves? How many hours would it take you to just write the code in this commit assuming you could fully focus on this task? How well structured is this source code relative to the previous commits? Quartile within this list How maintainable is this commit?”
Ghost Engineers, as determined by his algorithm, perform at less than 10 percent of the median software engineer (as in, they are measured as being 10 times worse/less productive than the median worker)."
<https://www.404media.co/are-overemployed-ghost-engineers-making-six-figures-to-do-nothing/>
#SoftwareDevelopment #GhostEngineers #Surveillance #Overemployment #Programming
-
This may be true for tech writers who work for large companies, but not necessarily for the vast majority of cases...
This may be true for tech writers who work for large companies, but not necessarily for the vast majority of cases...
"In technical writing roles, you have a surprising ability to focus your efforts on documentation projects you believe in. I have about 60+ documentation bugs sitting in my queue. Which ones do I work on? Which do I prioritize? If a product has an upcoming release, sure, I make sure we have docs for those features. Or if partners are complaining loudly about an issue, I also prioritize those fixes. But beyond those P0 type bugs, there’s a lot of leeway to ignore some products and prioritize others. Making that judgment call could be more significant than the quality of documentation you write. In other words, instead of focusing so much on documentation quality, focus on documentation priority. Are you working on products that matter to the company? That decision might matter more in your promotion efforts than the quality of documentation you write."
<https://idratherbewriting.com/blog/reading-lynch-focus-on-high-priority-projects>
#TechnicalWriting #SoftwareDocumentation #SoftwareDevelopment #Docs #Programming
-
"I’ve developed the impression that, as humanists in tech, technical writers are constantly subjected to the pull of two separate forces. One is eminently technological, embodied by the
"I’ve developed the impression that, as humanists in tech, technical writers are constantly subjected to the pull of two separate forces. One is eminently technological, embodied by the Developer-Maker; the other is communicational, represented by the Writer-Storyteller. I see you muttering “Woz & Jobs” in glee while reading about those profiles, and you wouldn’t be too far off, despite how trite those stereotypes have become over time. For the sake of the discussion, let’s assume that they’ve always been there.
If you represented both forces in a diagram, you’d get something like the following: the Developer strain diverging from the initial trunk towards more engineering-colored shades of writing, and the second strain, the Writer’s, moving towards meaning and connection and away from explaining buttons and menus. As UIs become more self-explanatory, and coding more accessible, writers pursue deeper specialization, and so the tech writer becomes an API writer and then a Docs Engineer, for example.
I think it’s still entirely possible to remain at the center as a full-stack writer, but it’s becoming harder due to the way job titles convey expectations and foster teamwork. It’s easier for tech writers to embed with engineers if they carry the engineer sobriquet, as it’s simpler to work with designers if you attach the UX patch to your business card. It’s all meant to say “I understand and respect your work, let’s collaborate”. And since technical writing is a landing pad, switching between those sides isn’t impossible."
<https://passo.uno/what-is-a-documentation-engineer/>
#TechnicalWriting #SoftwareDocumentation #DocumentationEngineering #Docs #SoftwareDevelopment #Programming
-
I love the introductory chapter in the Bendix G15 Programmers's Reference Manual - when computers were still fresh enough that you had to start from the very basic concepts.
I love the introductory chapter in the Bendix G15 Programmers's Reference Manual - when computers were still fresh enough that you had to start from the very basic concepts. http://www.bitsavers.org/pdf/bendix/g-15/G15D_Programmers_Ref_Man.pdf
#retrocomputing #programming #bendixg15
-
Regular Types: From Stepanov to C++ Concepts – by @ciura_victor – ACCU 2024
Regular Types: From Stepanov to C++ Concepts – by @ciura_victor@hachyderm.io – ACCU 2024
<https://www.youtube.com/watch?v=ZwHD6-6EDYc>
#coding #concepts #cplusplus #cpp #programming
-
Functional Programming in CPlusPlus – History and Evolution – by @neuroevolutus – ACCU 2024
Functional Programming in CPlusPlus – History and Evolution – by @neuroevolutus@discuss.systems – ACCU 2024
https://www.youtube.com/watch?v=zmOaBT3i_Hc
#coding #cplusplus #cpp #programming
-
My universal keybind, explained: https://summeremacs.github.io/posts/universal-keybind/
My universal keybind, explained: <https://summeremacs.github.io/posts/universal-keybind/>
#emacs #keyboard #keys #elisp #programming #geek
-
If you use Vial (https://get.vial.today) to configure your keyboard on macOS and you need to map a key to backtick/tilde, the backtick/tidle key won’t work (you’ll get the section/plus-minus key).
If you use Vial (<https://get.vial.today>) to configure your keyboard on macOS and you need to map a key to backtick/tilde, the backtick/tidle key won’t work (you’ll get the section/plus-minus key). Instead, map it to the following code:
KC_NONUS_BSLASH
(At least that’s what worked for me on the British English Mac layout.)
#Mac #keyboard #layout #programming #backtick #tilde #via #vial
-
after lusting for a copy of andré lamothe's Black Art of 3d Game Programming for years, i finally found an affordable copy
after lusting for a copy of andré lamothe's Black Art of 3d Game Programming for years, i finally found an affordable copy
it does not disappoint. one of the fatal flaws of 95% of 3d game programming books is that they jump straight into mathematical proofs, instead of explaining in human terms how concepts are relevant to making a game. lamothe's programming concepts are clear, easy to understand, and provide real-world examples before diving into code
to my delight, the book doesn't limit itself to just 3d. it covers every conceivable topic for building a game engine from scratch in MS-DOS - and includes some great chapters on FM and wavetable synthesis!
#programming #c #retroGaming
!A four-inch-tall coffee cup sits beside a girthy copy of the book, rising 2/3rds up the cup's side. !A page from the book, showing how FM synthesis works on sound cards. Two diagrams describe how FM synthesis is produced over time.
-
#POSIX #C #programming
#POSIX #C #programming
So, you want to launch some external tool. Ok,
fork()
/exec()
is simple enough.But you don't want to "care" for it (
wait()
) if it's running longer. Ok, just fork some intermediate child,init
will adopt it when this child exits.But wait ... you do want to know if execution itself fails ... or if the tool exits "somewhat quickly" with an error. Okay, this will be interesting ...
Seriously, I'm quite unsure whether this code here is correct. But it's surprisingly large for that "simple" job. <https://github.com/Zirias/xmoji/blob/master/src/bin/xmoji/xdgopen.c#L56>
-
#Python 3.13 released with new and improved interactive interpreter, experimental free-threaded build mode, experimental JIT, support for type defaults in type parameters, and more
#Python 3.13 released with new and improved interactive interpreter, experimental free-threaded build mode, experimental JIT, support for type defaults in type parameters, and more <https://pythoninsider.blogspot.com/2024/10/python-3130-final-released.html>
#OpenSource #programming #Linux
-
#X11 #programming #tales – the magic pager powers! 🤩
#X11 #programming #tales – the magic pager powers! 🤩
There's a general problem with windowing systems and desktop environments. You can do stuff with windows like, bring them to the front, activate them, move them to a different virtual desktop, and so on. That's nice until something bad happens like a user accidentally typing sensitive stuff into a wrong window ... or maybe just annoying the user.
So, windowing systems started to do things to prevent this. E.g. they just ignore something an application wants to do ... or replace it with something different (hey, this window wants to be activated, let's flash it in the taskbar instead).
But then, there are very valid usecases where e.g. bringing a window to the front is most likely exactly what the user wants. While implementing single-instance mode (which I plan to make optional of course!) in #Xmoji, I had such a usecase. So, the user only wants to have a single instance of that app running. Yet the user starts it again ... 🤔 the natural expectation would be that the already running instance appears on the screen as if it was newly started, which is, of course, on top ...
Well, enter #EWMH (which is used for communication with the window manager additionally to #ICCCM in all "modern" environments). They identified that pagers always have valid reasons to do anything to windows. So, they added a field to lots of requests, the "source identifier", which must be set to
1
if the request is issued by a "normal" application, and to2
if it is issued by a pager. Window managers are required to always obey the pager.Now for the magic trick: What if we just tell the window manager "hey, I'm a pager"? Oh, I love it! 😂 (sudo make me a sandwich style, just better).
Of course that's sarcasm. The initial problem just can't be solved that way. It can only be solved in individual applications, that just shouldn't do unexpected nonsense with their windows. 🙄
Side note: #Windows does it differently. An application on a windows desktop can only "self-activate" if the currently active application explicitly passes permission. That's a lot more boring (I can't just pretend something and make the desktop obey me 😞), but also doesn't solve the problem. While I could certainly cover my usecase in Xmoji that way (I mean, the new instance can pass that permission to the already running one), I'm sure there are lots of other valid usecases for e.g. activating a window that just can't be done on a Windows desktop...
-
Has anyone understood and is using <memory_resource> in C++17..?
Has anyone understood and is using <memory_resource> in C++17..? #cxx #programming
-
i am in love with the cover art on al sweigart's python game programming book
i am in love with the cover art on al sweigart's python game programming book
it was switched out with some more corporate art a year later.
#programming
-
Versatility, Speed.
Versatility, Speed.
Pick Two.
October 23 and 24th, come see the magic. And,
the crime we use to get it. <https://www.p99conf.io/>
#p99conf #ScyllaDB #DevTalk #programming