Absint PHP Template Engine Trait
Read more at https://www.phpclasses.org/package/11929-PHP-Trait-to-render-templates-from-inside-any-class.html#2021-01-29-09:31:06
In this episode of "PHP Internals News" I talk with Larry Garfield (Twitter, Website, GitHub) about a new RFC that he is proposing together with Ilija Tovilo: Enumerations.
The RSS feed for this podcast is https://derickrethans.nl/feed-phpinternalsnews.xml, you can download this episode's MP3 file, and it's available on Spotify and iTunes. There is a dedicated website: https://phpinternals.news
Hi I'm Derick and welcome to PHP internals news that podcast dedicated to explain the latest developments in the PHP language.
This is Episode 73. Today I'm talking with Larry Garfield, who you might recognize from hits such as object ergonomics and short functions. Larry has worked together with Ilija Tovilo on an RFC titled enumerations, and I hope that Larry will explain to me what this is all about. Larry, would you please introduce yourself?
Hello World, I'm Larry Garfield, I am director of developer experience at platform.sh. We're a continuous deployment cloud hosting company. I've been in and around PHP for 20, some odd years now. And mostly as an annoying gadfly and pedant.
Well you say that but in the last few years you've been working together with other people on several RFCs right, so you're not really sitting as a fly on the wall any more, you're being actively participating now, which is why I end up talking to you now which is quite good isn't it.
I'm not sure if the causal relationship is in that direction.
In any case we are talking about enumerations or enums today. What are enumerations or enums?
Enumerations or enums are a feature of a lot of programming languages, what they look like varies a lot depending on the language, but the basic concept is creating a type that has a fixed finite set of possible values. The classic example is Boolean; a Boolean is a type that has two and only two possible values: true and false. Enumerations are way to let you define your own types like that to say this type has two values, sort ascending or descending. This type has four values, for the four different card suits in a standard card deck, or a user can be in one of four states: pending, approved, cancelled, or active. And so those are the four possible values that this variable type can have. And what that looks like varies widely depending on the language. In a language like C or c++, it's just a thin layer on top of integer constants, which means they get compiled away to integers at compile time and they don't actually do all that much, they're a little bit to help for reading. At the other end of the spectrum, you have languages like rust or Swift, where enumerations are a robust Advanced Data Type, and data construct of their own. That also supports algebraic data types, we'll get into that a bit more later. And is a core part of how a lot of the system actually works in practice, and a lot of other languages are somewhere in the middle. Our goal with this RFC, is to give PHP more towards the advanced end of enumerations, because there are perfectly good use cases for it so let's not cheap out on it.
What is the syntax?
Syntax we're proposing is tied into the fact that enumerations as we're implementing them, are a layer on top of objects, they are internally objects with some limitations on them
Truncated by Planet PHP, read more at the original (another 25388 bytes)
"But… it all relates!" A reaction so often heard while facilitating (or participating) to group reflexion processes (brainstorming, agile retrospectives, …).
"You ask us to group things … but everything is connected!"
It often comes with a contrived smile ("things are complex, you know!"). Sometimes also with a counterproposal "let us make a single group around the central thing here which is X, since obviously all things relate to X."
A very human reaction, which if you’re unprepared as facilitator, can take you aback. Keeping the following arguments in your mind can help.
That it all relates does not mean that it all ought to conflate. It makes sense to distinguish the different aspects of a situation or a problem, the different knots of its web of complexity. Some seem to think that seeing the big picture implies refusing to distinguish the whole from its parts. Yet if we can see the links, the relationships, it is because we have identified the parts.
Although a holistic view provides a definite advantage when facing a complex situation, it is good to remind ourselves that action cannot be holistic. You cannot act on the system as a whole. You may only act on precise points of the system.
Two simple arguments to help us facilitate these "everything is connected" moments and realize that in a (group) reflexion process, taking things apart is the first step towards deciding meaningful action.
Photo: Ruvande fjällripa
UNR, the owner of some Top Level Domains (TLDs) has decided to auction off 23 TLDs to the highest bidder. There are 23 total, including some great endings such as .audio, .blackfriday, .christmas, and .help, and .link. These are not domain names, but the endings of domain names.
The full list of TLDs up for auction on April 28, 2021 is:
.audio
.blackfriday
.christmas
.click
.country
.diet
.flowers
.game
.guitars
.help
.hiphop
.hiv
.hosting
.juegos
.link
.llp
.lol
.mom
.photo
.pics
.property
.sexy
.tattoo
The domain name registrations would come with those endings–and domain names that are currently registered are included. The registered domains would still be registered, and domain won’t go down. You’re essentially bidding to own a domain name business, the entire Top Level Domain. These have domain names already registered, so you’d just continue to charge the domain name owners (you could leave the annual renewal fees in place or change the business model).
Personally, I think there are several of those TLDs that are promising, and a few of them that I believe are too risky. For example, Christmas will always be around in the future: but based on what occurred the past few Black Fridays, with retailers having sales on Thanksgiving or even days before “Black Friday”, will there be a traditional Black Friday in the future?
I took a look at the number of domain names that are currently registered for each of these TLDs, and the numbers are interesting:
.audio – 4731 domains registered
.blackfriday – 1046 domains registered
.christmas – 1634 domains registered
.click – 38961 domains registered
.country – 1069 domains registered
.diet – 1473 domains registered
.flowers – 1139 domains registered
.game – 2291 domains registered
.guitars – 823 domains registered
.help – 16811 domains registered
.hiphop – 528 domains registered
.hiv – 321 domains registered
.hosting – 3201 domains registered
.juegos – 593 domains registered
.link – 159124 domains registered
.llp – 1 domains registered
.lol – 11595 domains registered
.mom – 2852 domains registered
.photo – 18145 domains registered
.pics – 5916 domains registered
.property – 2963 domains registered
.sexy – 5973 domains registered
.tattoo – 1696 domains registered
Here are some key dates for getting registered and set up to bid on these TLDs:
April 2, 2021 – Last day to submit non-technical questions
April 16, 2021 – Deadline to complete bidder validation and sign all required documents
April 19-22, 2021 – Auction demos for eligible bidders
April 23, 2021 – Deadline to receive bidding deposits
April 28, 2021 – Auctions open
April 29, 2021 – Auctions conclude
There are services available that would completely manage the TLD for you, so it’s really a turnkey operation if you want to own your own Top Level Domain. You can be involved as much as you want in the technical side of it, or not.
It seems like every designer has a horror story or two (or seventeen) about getting ripped off by a client who refuses to pay.
Once it happens, there’s not too much you can do. It sucks, but it’s the simple truth.
If you didn’t get a contract or a clear payment process established in the beginning, a lot of the time you’re just going to have to eat the loss. You can’t sue someone without a legally binding document, so the only thing you can do is plead, pester, threaten, or try something possibly illegal like a CSS kill switch (only use this in extreme circumstances!).
That ain’t a pretty picture.
You’re probably going to want to slap me for this, but I’m going to say it anyway: I suggest learning from your mistake and preparing to do things better next time. I think I may be turning into the agony aunt of the design community: “Learn from your mistakes!” “A penny saved is a penny earned!” “Don’t eat your dessert with a salad fork – what are you, some kind of barbarian?”
But really, it’s often the only thing you can do if you find yourself in an unfortunate money situation with a client. Perhaps you can’t afford to hire a lawyer or debt collection agency to get your money back from the jerks who stiffed you (although if you can, it can be a good “last straw” solution for a really stubborn client). After you stomp and wave your arms at your cat and/or spouse, it’s time to draw up Plan B.
The bright side to dealing with deadbeat clients is that there’s always a next time. And what should be the first thing you do with your next client? Negotiate. There are plenty of resources if you need some tips on how to negotiate a client contract, like this one or this one.
But since getting paid has been an issue for you recently, I would start by getting an upfront deposit, ideally 50% if possible. Yes, it can be awkward and require some negotiating skills. But is a little awkwardness really worse than getting stiffed again? I think it’s preferable to letting someone get away with being unprofessional and terrible to you.
You should be picking your clients as carefully as you would pick the person you want to marry. It sounds weird until you actually think about it – you’re entering into a relationship with this person. Relationships have rules and each person has a responsibility to clearly communicate their needs to the other person.
Don’t try to make a bad client into a good one; as I’ve mentioned in previous articles, it will never work out. Ever. Any client who exhibits the telltale signs of crappiness is only going to get worse and worse as a project drags on. You know this already. Don’t do it to yourself. Prevention over cure is always the best way.
Let’s be honest here. Designers aren’t always noble warriors of integrity, put upon constantly by big, bad clients looking to rob them blind. I know because I’ve hired them. There’s rarely an excuse for non-payment, but sometimes, a designer’s conduct can leave a client desperately looking for one.
What do I mean by this? Oftentimes, designers are genuinely unaware of how they’re coming across to their clients, and believe that a particular client’s decision to get funny with the money comes out of nowhere, when in fact, the designer has been communicating poorly, or sometimes not at all.
I promise I’m not going to start attacking designers (I’m a designer too), since I know the industry is full of hardworking folks with integrity, but I’ve hired some people who were just flat out unprofessional no matter which way you cut it. I always paid, in full and on time, but boy did I feel crummy about it sometimes.
One designer who shall remain nameless and genderless actually took an unannounced, four-day ski trip with their significant other right in the middle of the work week! I couldn’t reach them at all; my messages and emails were met with dead silence. For four days – a week before deadline. I was so shocked I couldn’t even think of what to say when they returned, all rosy-cheeked and oblivious (oh, how shall I fire thee? Let me count the ways).
Of course, that’s an extreme example, and I’m sure none of you here would ever do something like that. But I wanted to provide a bit of context for those who might not realize that their actions are aggravating a client who has appeared perfectly reasonable up until now. Probably the biggest issue I have with many freelancers, as a client, is that they over-promise and under-deliver.
Under-promise and over-deliver. Always. Never the other way around. I can’t tell you how many times I’ve hired designers who claimed they’d have a website ready for me in some ridiculously short amount of time, and then not only failed, but failed spectacularly to do so.
Instead of the “48 hour” or “3-days, max” ETAs I was promised, I waited for weeks; sometimes even months, before I got any work. It was dreadful. Eventually I got smart, and learned to stop working with designers who made impossible claims, because 99.9% of the time, people who promise you the moon end up delivering nothing but stinky cheese.
Designers, if you make wildly extravagant claims to prospective clients, you are shooting yourselves in the foot. Even if you think the time period you’ve given is “reasonable,” it’s usually not, and you’ll end up grossly underestimating the time it will take you to complete a task. You’ll be attracting all the wrong kinds of clients to yourself, and driving away all the right ones.
Good clients know that if something sounds too good to be true, it usually is. Be honest with yourself and figure out how long it’s actually going to take you to complete a project. Then multiply that number by three. That’s the time period you give to your client. Then make sure you finish under that time. Under. Not over, guys. Seriously.
Okay, time to switch back over to freelancer mode. As a freelancer, I have never had a client who refused to pay me, or who was abnormally late with payment. Why? Perhaps some of that is due to luck – sometimes a payment issue can truly come out of left field. It’s happened to big name designers as well as the little guys. Mostly, though, I believe my 100% payment success rate is due to me always taking the same precautions I’ve outlined for you today.
I never work with anyone I feel sketchy about, and you shouldn’t either. Don’t be so desperate for work that you’re willing to overlook a client’s red flags. Draw up a set of non-negotiable rules in your contract, and (this is important) stick to them no matter what.
It doesn’t matter if you’re doing business with your grandmother, your head or state, or your pet bullfrog – if any prospective client complains about the rules, politely show them the door. You work hard enough for your income. Don’t work even harder just to get it in your bank account.
The post How to Stop Getting Burned by Your Design Clients appeared first on Speckyboy Design Magazine.
Four new email software for Windows, macOS, Android, and Linux have been added to the Free Email Clients page. These programs allow you to send/receive email directly from your own computer (or phone), without having to log into a web mail service.
Four new email software for Windows, macOS, Android, and Linux have been added to the Free Email Clients page. These programs allow you to send/receive email directly from your own computer (or phone), without having to log into a web mail service.