@afilina@phpc.social
@afilina@phpc.social avatar

afilina

@afilina@phpc.social

Legacy software modernization, project rescue, architecture, test automation, public speaking.

I'm supporting a tactical unit in Ukraine directly. You can help me do more: https://afilina.com/donate/ua-supplies

This profile is from a federated server and may be incomplete. Browse more on the original instance.

afilina, to random
@afilina@phpc.social avatar

When did I get from "too young to be taken seriously as a programmer" to "I have a kid your age"?!

heiglandreas, to random
@heiglandreas@phpc.social avatar

"I'd rather listen to fuckin' paint dry"....

Some people can really be to the point 😂

afilina,
@afilina@phpc.social avatar

@heiglandreas Yep, some meetings are really that useless.

I appreciate such directness, because then I know that it is urgent to change course before people stop caring about a project, leave at the most unfortunate time or have a burnout at work. Of course, there are people who overreact or are impatient, but I like to err on the side of caution and analyze the environment.

jrf_nl, to random
@jrf_nl@phpc.social avatar

In the world of curious coincidences, I just ran into someone I'd briefly worked with 25 years ago and hadn't seen in at least 20 years... and we both still recognized each other and remembered each others name.

Made for a pleasant wait for my flight to

afilina,
@afilina@phpc.social avatar

@jrf_nl That sounds lovely :)

mortenbock, to random
@mortenbock@hachyderm.io avatar

Hot take: If you change jobs every 3 years, you've never learned from dealing with your own legacy applications, and you will keep making the same mistakes.

afilina,
@afilina@phpc.social avatar

@mortenbock @syntaxseed @kevin I think that you don't give people enough credit. Developers are smart. They don't necessarily need to see someone else burn their hand to avoid putting their own into the fire.

The why isn't needed to see that a particular design choice is difficult to test or to maintain. They will have to refactor it and will learn better practices in the process. The next time they write code, they'll avoid bad patterns.

afilina,
@afilina@phpc.social avatar

@mortenbock @syntaxseed @kevin I never stayed anywhere for 3 years. I barely stay 3 months on most projects. And yet others consider me an expert on refactoring legacy code. I worked on over 100 projects and I've seen what decision leads to what outcome, which I then teach to other people so that they can avoid it.

In my opinion, changing often can be very beneficial. It really depends on the type of work, person, team composition, etc. There isn't a single better approach.

afilina,
@afilina@phpc.social avatar

@mortenbock @syntaxseed @kevin What's most important, in my opinion, is being surrounded by other people who are motivated to make things better. This can be a team or a community, for example.

SenseException, to CSS German
@SenseException@phpc.social avatar

#CSS communication tipp: It's important to know why !important was important

afilina,
@afilina@phpc.social avatar

@SenseException Usually because css got unnecessarily complicated and reusable.

preinheimer, to random
@preinheimer@phpc.social avatar

Uh-oh! ICQ is shutting down.

https://icq.com/desktop/en#windows

afilina,
@afilina@phpc.social avatar

@preinheimer Good riddance! It's been owned for over a decade by the same company that owns VK. Both services are snitches for the Russian intelligence services.

heiglandreas, to random
@heiglandreas@phpc.social avatar

😂 I just found that outlook allows one to set the language to "English (Germany)" and now I am looking forward to Deutsche Bahn English (senk ju for träwelling)... 🙈

afilina,
@afilina@phpc.social avatar

@ihabunek @heiglandreas Hehe, I had a particular video in mind when I clicked, and then it was exactly that video. Still one of my favorites.

afilina, to random
@afilina@phpc.social avatar

Yes, Disney+, when I press Continue, what I really want is to start from the beginning and lose my place. This issue remains unfixed after over a year.

Programming is apparently so hard that a profit of 3B dollars is not enough to get basic functionality right.

malware, to random
@malware@hachyderm.io avatar

I recently learned that the word for “ankle” in Japanese translates to “leg neck”, and wrist translates to “hand neck”, and I can’t stop thinking about how smart that is

afilina,
@afilina@phpc.social avatar

@malware In Hebrew:
school = house of the book
hospital = house of the sick

afilina, to random
@afilina@phpc.social avatar

I just witnessed a "my dad owns xbox" moment on a call, but it was an adult.

sarah, to random
@sarah@phpc.social avatar

Having a backup is a good idea.

Having a well-tested backup is a better idea.

Knowing with certainty that your database, file and code backups are working is the only way to be sure that you can recover from a disaster.

An untested backup is just a hope. A thoroughly-tested backup and restore approach is a good idea.

afilina,
@afilina@phpc.social avatar

@sarah Schrodinger's backup: it both exists and doesn't exist until you attempt to restore.

afilina, to random
@afilina@phpc.social avatar

My face when I get another PHP 5 app that concatenates $GLOBALS['HTTP_GET_VARS'] into an SQL query.

afilina,
@afilina@phpc.social avatar

@dap6000 Great job security for me :)
I'll never run out of legacy modernization work if people keep this up, hehe.

afilina,
@afilina@phpc.social avatar

@dap6000 I wish I could get paid to mentor people, then I could spread that knowledge more efficiently. Unfortunately, nobody is interested in hiring me for that. I once tried explaining to a company that they don't need to hire 300 new devs when they can just skill up their existing devs, and still they wanted me to just write features.

gamingonlinux, to random
@gamingonlinux@mastodon.social avatar

Immediately ew. They deleted it, obviously. Ridiculous shit.

afilina,
@afilina@phpc.social avatar

@docRekd @gamingonlinux They're snorting the salt from the tears of Teams and Outlook users.

afilina, to random
@afilina@phpc.social avatar

I'm in npm dependency hell, where I have no idea what I need to uninstall so that my testing framework can be updated to work with the online examples, but without updating the other dependencies, which could break the app itself.

I got so spoiled by Composer in PHP that any time I step into the JS ecosystem, I lose my temper rather quickly.

afilina,
@afilina@phpc.social avatar

I feel like updating dependencies in npm is always a lost cause and one just needs to uninstall everything and start deps from scratch to avoid a rabbit hole so deep you end up on the other side of the observable universe. I'd pay money to have someone untangle this for me.

afilina,
@afilina@phpc.social avatar

npm is so broken that it makes me more frustrated than the most horrible 25-year-old legacy PHP code.

afilina, to random
@afilina@phpc.social avatar

I need your advice on testing React. I want to mock API responses, but without using a complex Docker setup. Ideally, a way to simply say what fetch should return. Then I can test that the UI correctly responds to every scenario provided by the API contract. Was thinking Jest.

afilina,
@afilina@phpc.social avatar

@ocramius It's not using axios, but fetch() from node_modules/typescript/lib/lib.dom.d.ts. Not my code.

Are you saying that Jest can stub all of those?

afilina,
@afilina@phpc.social avatar

@psycodepath I am familiar with Wiremock, but I wanted to avoid setting up any kind of networking to keep my tests simpler. There are some quirks in the app's config that I just don't have the time to deal with.

afilina,
@afilina@phpc.social avatar

@lewis Treating fetch() calls as a dependency that can be stubbed sounds like a reasonable proposal.

afilina,
@afilina@phpc.social avatar

@ocramius The second approach is probably the easiest to reason about. Thanks.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • JUstTest
  • Durango
  • thenastyranch
  • osvaldo12
  • magazineikmin
  • GTA5RPClips
  • rosin
  • InstantRegret
  • Youngstown
  • slotface
  • ngwrru68w68
  • kavyap
  • khanakhh
  • DreamBathrooms
  • megavids
  • mdbf
  • everett
  • ethstaker
  • normalnudes
  • cisconetworking
  • tacticalgear
  • cubers
  • modclub
  • provamag3
  • Leos
  • tester
  • anitta
  • lostlight
  • All magazines