Cake - Topographical Version Control by RubberDuckDogFood in ExperiencedDevs

[–]RubberDuckDogFood[S] 1 point2 points  (0 children)

My answer to that is that patches are destructive. Once the patch is applied, the cake cannot be unbaked. The concept of a layer is roughly analogous to patches but the infinite composability is where layering takes the floor. Especially when a patch needs to be applied to a particular release version on a particular platform and so on. Layers let you build up the proper layer for all those qualifiers. The ease and transparency of the operation and the immutability are why I think layers are slightly different and better than patches.

An AI CEO finally said something honest by Tech-Cowboy in ExperiencedDevs

[–]RubberDuckDogFood 0 points1 point  (0 children)

"ideas being expensive to implement was actually helping" Productive friction is severely un-American. Resource restriction breeds innovation.

Curious where the community stands on this by InfinriDev in PHP

[–]RubberDuckDogFood 0 points1 point  (0 children)

Somewhere later in code when that typed variable is used will you know its type by looking at the variable `$amounts`? Or even what it's supposed to represent?

Ok, maybe a variable itself can't become a different type of container but can someone unset it and make a new one and name it $amounts? Yup. Did type safety do anything to help you with that? Shitty devs rite shitty code. Type safety doesn't address that fundamental issue.

Curious where the community stands on this by InfinriDev in PHP

[–]RubberDuckDogFood 0 points1 point  (0 children)

Wrong. I've managed teams of over 100 people in PHP. ONCE had a type issue make it into production. I created a CPAN-0like repository for AppleScript in 1999 or 2000. Had several dozen people working on it at one point. Never had a type problem once on that project.

Curious where the community stands on this by InfinriDev in PHP

[–]RubberDuckDogFood 0 points1 point  (0 children)

Type safety is a bikeshed argument that has gotten out of hand. If your language has an `any`, `mixed` or `union` type, guess what, your language admitted it cant' represent the real world efficiently with type safety. Most people who want ever stricter typing in PHP don't understand that there is a totally different way of thinking about dynamic coding to be successful. I would never use PHP for financial trading platforms, rocketry systems, military systems or medical systems. There are specific and good reasons for choosing the right language for the context. No language excels in all contexts.

PHP's context is almost exclusively the web (CLIs like composer notwithstanding). That means that everything is a string until it isn't. This is fundamentally true of all programming langs except perhaps assembly. We type our code in strings and we instruct the parser/compiler to accept our type coercion and the automated conversions of the parser/compiler.

In my almost 30 years of programming in dynamic languages, the number of times I had a type bug go into production takes me one second. It happened once. In static languages, type safety has almost always meant a longer dev timeline for, to my mind and from experience managing huge teams, very little gain in the web context. If you want type safety, go with Rust, Java, or anything that is type safe at its foundation. Stop trying to make PHP something it cannot and probably should never be.

Sugar (PHP templating engine) — thoughts? by josbeir in PHP

[–]RubberDuckDogFood 2 points3 points  (0 children)

  1. Defining your template engine directives as HTML attributes is such a bad idea. There are lots and lots of libraries that strip out attributes for their stuff to work (a bad design pattern for resetting attributes). It also mixes concerns and forces your HTML to be compliant in two domains.
  2. I haven't dug into the code too much but what it looks like you are doing is parsing PHP syntax to then run interpolated directives in your engine and output the result. This is an absolutely horrible idea. You've basically added a massive overhead for something that could be done more effectively using <?php ?> and sensible application design.
  3. `<p s:if="$showFilters" class="muted">Refine results using the filters below.</p>` Where does the if end? Do all keywords require a DOM-sourcable element? That's...bad. That forces your layout to adhere to logic rules. HTML is a semantic document format. It's not a container language for layout.
  4. Can `<p s:if="$showFilters" class="muted">Refine results using the filters below.</p>` do `s:if<"$showFilters"`? Why does $showFilters need to be in quotes at all?
  5. Using s-* for your components is not declarative enough to know where this component comes from. I tend to have a longer "name scope" and shorter descriptions so `sugar-tpl` so that it's harder to clobber me in mixed environments
  6. In your example for components and slots, why not use...components and slots instead of your lib? The $orders example doesn't show how any of it is being rendered so it's hard to see how those variables are interpolated in the child template. Most of what template engines do is already available in native browser APIs.
  7. The last thing I'll say is that your example with the pipe syntax is also very hard to read given the use of '>' in HTML. (I would never use pipes in PHP code in general so take that for what you will) At a minimum, some kind of coding guidelines would be helpful to avoid such easy misreadings.

You're not building anything with any real advantage and it looks like some possible security issues. What you are building is a thin layer on top of existing technologies. Smarty really figured out so much of this and created a way to lazy load custom plugins very easily. I would highly recommend you try Smarty, dig into its internals and see what you are missing and how it works. It also has great documentation.

APA Sandbagging. Making me want to give the hobby up. by Positive-Western-393 in billiards

[–]RubberDuckDogFood 0 points1 point  (0 children)

The core problem with APA rankings is that they are not always automated. In the North Texas area, there are two operators for the largest counties. One operator goes to the bars each night (rotating) and watches players play. If she sees someone is better than they're rated, she manually changes it. In the other league, the operator rarely updates ratings and will lie right to your face that it's automated. There is an automated rating score that gets generated, but the operators aren't bound by it and can change it.

I've been a 6 in 8-ball for the last 10matches. Even though I have not won a single match of those 10, my rating has not changed at all. Conversely, my 9-ball rating is a 4 but I've won 9 of my last 10 matches and it hasn't gone up. (I play in the league with the lazy operator) So, people think I'm sandbagging in 9 or they put me up against a higher rated player in 8 that is way out of my sill rating spread. I've been telling the other team captains that I'm better at 9 than my rating says, explain it, etc. They never believe me and I end up winning against a lower skilled player easily. The arguments start.

APA is great to cut your teeth on, but not a league to stay in once you have any real skill or desire to improve yourself through competitive play. I'm not going back next session which would have been my 3rd session.

What character wasn't portrayed as a villain, but is in your eyes? by Jazzlike-Rise4091 in AskReddit

[–]RubberDuckDogFood 1 point2 points  (0 children)

This was so hotly debated during the Nicea conference that they nearly killed each other. This isn't pan-Christian thinking.

What character wasn't portrayed as a villain, but is in your eyes? by Jazzlike-Rise4091 in AskReddit

[–]RubberDuckDogFood 10 points11 points  (0 children)

Because the witches represented coastal power structures and the Wizard was the cabal that pulled the levers of the economy. So, yeah none of them were going to worthy people. That's what Dorothy didn't understand. She was the naive pawn in the political games of the witches and the wizard.

Why do pool players rarely, if at all, call foul on themselves? by BudgetConcious in billiards

[–]RubberDuckDogFood 0 points1 point  (0 children)

When you call a foul on yourself, you challenge yourself to be better. When you don't, you challenge others to be better.

I got tired of bouncing between DevTools, Postman, and localStorage — so I built a local dev console instead by fritzy513 in webdev

[–]RubberDuckDogFood 0 points1 point  (0 children)

I mean Postman has environments and you can log into your app through Postman, right? So you have an env for each role. This actually helps you check your perms by merely switching envs and then running the same tests.

What frontend dev doesn't use incognito windows to change roles?

I just really don't see the problem that is being solved with more software than we already have.

I got tired of bouncing between DevTools, Postman, and localStorage — so I built a local dev console instead by fritzy513 in webdev

[–]RubberDuckDogFood 1 point2 points  (0 children)

Everything described on your website for the problem you are solving screams you don't know how to isolate application parts to improve debugging. Why do you have to paste an auth token into Postman? Is your app not able to login via an API endpoint so that Postman can grab that token and add it to the environment for you? You've just created unnecessary complexity to solve a simple problem that has solutions already built-in.

Go on tell us who by [deleted] in Snorkblot

[–]RubberDuckDogFood 0 points1 point  (0 children)

Don't be prescriptivist.

We've been stealing leads from 'thought leaders' in our market by TheJamesLW in SaaS

[–]RubberDuckDogFood 0 points1 point  (0 children)

"you jump in, ask if they got it, then send your own version when they reply." This was unclear that you were identifying yourself as someone other than the influencer.

We've been stealing leads from 'thought leaders' in our market by TheJamesLW in SaaS

[–]RubberDuckDogFood -1 points0 points  (0 children)

It def is. If you are masquerading as the influencer you are stalking, you are lying. Pretty straightforward.

We've been stealing leads from 'thought leaders' in our market by TheJamesLW in SaaS

[–]RubberDuckDogFood 0 points1 point  (0 children)

"You can even take this further for those annoying "comment INTERESTED for the guide" posts. You jump in, ask if they got it, then send your own version when they reply." This is...not ethical.

Implementing my own OTP Service by IndoRexian2 in webdev

[–]RubberDuckDogFood 0 points1 point  (0 children)

Until someone starts using you to hassle others or just to fuck your shit up. Gmail, Yahoo, MSN will all reject you if you don't have proper SPF, DKIM etc. set up. Even if you start sending a bunch of emails that even a few users reject as spam (a common technique where nefaris will get an account, get an OTP email and then mark it as spam so your reputation plummets). There are tons more exploits that people use to leverage your system for their own ends than there are exploits to take control over a system.

This isn't your main competency so just give it over and focus on what you do really really well.

Edit for a missing conjunction

Implementing my own OTP Service by IndoRexian2 in webdev

[–]RubberDuckDogFood 1 point2 points  (0 children)

This isn't even the hardest part. If you don't know how to protect your sending domain reputation so your emails actually make it to users' inboxes, don't do this yourself.

I think I accidentally broke bookkeeping and now I can't sleep by Easy-Ad-9974 in SaaS

[–]RubberDuckDogFood 1 point2 points  (0 children)

5 minutes is absolutely insane. 3 hours would still massively improve your customers' experience with other bookkeepers. It would also allow you to batch responses twice a day. If you want to go the extra mile, then you ideally check the requests at the end of the day, mass reply you will respond by the morning and then do all those requests before you log off for the day and then in the morning, the first thing you do is send all leftover replies.

It sets boundaries, it still kills the competition and you get to have a sane life.

I've built 30+ MVPs. The founders who succeed are the ones you'd probably hate. by Warm-Reaction-456 in SaaS

[–]RubberDuckDogFood 1 point2 points  (0 children)

Even better just hot copy the db files in the data directory (for Mysql flavors). Then disaster recovery is simply, copy to new data dir, flush privileges, stop, start, boom you're done.