Do you know what a shoemaker is? Well… it’s a person who makes shoes. But it also has another meaning. In the culinary world, a shoemaker is a hack – someone who is typically ill-informed and incompetent, and who uses shortcuts to get around their lack of skill.
The term comes from the oddity of having a person who makes shoes running around in a kitchen. To be fair to shoemakers, I’m pretty sure most cooks (or designers, for that matter) would be completely lost as to what to do in a shoe factory.
The Web Designer Toolbox
Unlimited Downloads: 1,000,000+ Web Templates, Themes, Plugins, Design Assets, and much more!
Of course, the equivalent of a shoemaker in the design world are the overly opinionated clients, that insists on bringing in a team of non-designers to muck up your smooth workflow. Better known as design-by-committee, it’s something that has been discussed and re-discussed by designers probably since the dawn of time. Or least since the dawn of design.
Believe it or not, there is a way to nip most design by committee in the bud, and we’re going to explore how you as the designer can tap into this rarely used power and use it to your advantage when working with clients.
Authority Vs. Hierarchy
Designers hate design-by-committee because it undermines the years of dedication they put into perfecting their craft. You’ve heard the expression ‘too many cooks in the kitchen,’ and plenty of people outside the culinary industry use the analogy on a daily basis.
Non-designers butting their heads in where they don’t belong and all but ruining any creative effort with their ill-informed decision making is enough to make any designer want to quit and go work in sales.
Non-creative people tend to see design as something subjective, much like art. However, design and art are very different. Whereas art is created mainly to please the artist, design has to please the people who use it. Seth Godin has said that design should be a “dictatorship” rather than a consensus.
If there isn’t one single person making the important decisions as to a design’s direction, you’ll most likely end up with a mess. It’s very rare to find the design team that has completely done away with hierarchy and is still capable of producing a clear, solid vision.
Building The Boundaries
Every designer in the world would leap at the chance to solve the design-by-committee problem once and for all. The constant changing of minds and cropping up of doubts is often the death of any real vision or creativity in a design project.
I hate to break it to you, but design-by-committee is never going to go away completely. As long as designs have to pass through a funnel of more than one person, you will always have design ‘shoemakers’ in your kitchen, telling you what they think is best. What can change, however, is whether or not you let them completely take over your job as the designer.
Most of the time, clients get too involved in the work they hired you to do because you didn’t set clear enough boundaries in the beginning. The solution involves bringing the client back to a familiar pain point: money.
Show Them The Money
Why are your ideas automatically superior to your client’s? Well, they hired you for a reason; you’re the professional designer, after all. By taking the opportunity to gently remind your client what it is that you’re there for, you not only gain more respect, you also help them realize that they’re paying you for a service they’re not allowing you to perform.
By reminding the client how much money they’re wasting by forcing you to contend with their bad ideas, you can turn any client from an overbearing burden to a respectful and efficient employer in no time. No client likes to see how their own actions are costing them money, so this is something all designers should be constantly using to their advantage in order to maintain control of the projects they were hired to do in the first place.
Of course, you shouldn’t be trying to manipulate anyone, but then again, neither should you be okay with being pushed around like a puppet on stage either. You aren’t a dancing monkey – you’re a professional service provider who (hopefully) commands a professional rate. Remind the shoemakers that time – yours and theirs – is money, so that they can go back to making shoes (or whatever they actually do), and you can get on with making design magic happen.
When In Doubt, Ask
Don’t be afraid to ask questions and find out exactly why your client is going against your better judgement. As a part of the problem-solving team, you have a right to know, and your client has a vested interest in making sure you’re contributing to the process (they are paying you, after all).
Remember that if things go wrong because of a bad design decision, the blame will fall to you, not the client or the committee. It’s important to get as much of your client communication in writing as possible. Why? Because when things predictably go wrong and your client wants to scream at you, you’ll have hard proof that you tried to warn them.
Sometimes, however, the client has a legitimate reason for making changes that seem insane – this is where knowing your client’s market and understanding the needs of their customers comes in handy. If you make an arbitrary design choice that actually contradicts your client’s customer data, they have every right to question you on it.
Conclusion
It’s important to pick your battles and know when it’s not worth it to fight with a client. But it’s equally important to remember your place as the designer. If you trust your decisions and stand by them, your clients will too.
The post Dealing With Overly Opinionated Design Clients appeared first on Speckyboy Design Magazine.
PHP just recently celebrated its 25th anniversary since it was first introduced, which is quite the achievement, considering it still powers a large slice of the Internet today. I don't write much PHP anymore myself as I've more or less moved on to new and different things, but I am incredibly grateful to PHP. It was one of the first “real” programming languages I really invested in to learn programming, and learn I did. I built real things, real websites with it, and also was involved in the community for a while. I saw the rise of Composer and Packagist replace the aging PEAR. I saw the release of PHP 7 and all the work that went into it the years prior leading up to it.
Now as expected whenever talking about PHP on the Internet, people are quick to grab their pitchforks and rehash the same classic criticisms of PHP over and over like a mantra. Is it to feel superior? Do they think they're doing a public service? I don't know. What I do know is that they're right to some extent; PHP isn't the best-designed language by any means, largely because it changed organically and incrementally over time. It certainly hasn't stopped PHP from becoming as popular as it has.
There are plenty of good reasons why PHP isn't the best language for many use-cases, and reasons why other languages are superior. I consider myself very experienced with it, so I speak from experience. Here are some examples just from memory:
- The standard library, while fairly complete, doesn't really follow modern PHP's own best practices for API design, as it was largely created before PHP had things like namespaces and classes. This results in an odd disconnect with modern packages, and that weird mix of styles never really goes away.
- The standard library also cares a lot about backwards compatibility, which is a good thing, but its also a double-edged sword. There are a lot of APIs and extensions that are soft-deprecated or generally not used in favor of higher-quality third-party packages.
- The fact that every class file begins with
<?php
reminds you that PHP was originally just an html preprocessor and always runs inside the context of another file format. It makes sense, but its unusual and weird, especially since embedding PHP into html isn't even done at all in many frameworks which have dedicated templating languages instead.
There are probably others, but these don't keep me from remembering PHP with fondness as something that just works out of the box and has a lot of convenient features for web development.
What's strange to me though is that instead of reasonable complaints like these, people like to present complaints that don't make sense, aren't true, or are just plain silly. Let's take a look at just a couple that I've seen.
The syntax is strange and archaic!
This complaint doesn't really make much sense to me. PHP's syntax is very heavily inspired by C (which it is written in) and borrows many things from it. In fact, it fits right in with most of the languages in the C family of syntax. Just swap the dot operator for ->
(which by the way is also lifted from C, its equivalent to (*struct_ptr).field
), prepend all your variables with the $
sigil, and that's just about it. It's got your boring traditional class
syntax that even JavaScript adopted, closures, and pretty much every modern convenience.
Granted, sigils probably remind you of Perl, but don't worry, they don't have crazy effects on data types like in Perl. Just think of it as part of the variable name and you'll be fine.
There are a few PHP-specific oddities in its syntax, like @
and using \
as a namespace separator, but these seem like really petty nitpicks to me.
It isn't modular!
This sort of complaint is really nebulous, and could stand to have some clarifying questions asked. Usually one means one of two things:
- Everything is in a global namespace with no modular separation.
- There is no modular way of packaging code.
Now both of these are just blatantly false. The first one is easy: PHP has namespaces, like Java, C#, or what-have-you. And they were added to the language in version 5.3, which was released in 2009! Now to be fair, there still exists a lot of codebases that were initially designed before then (like WordPress) that don't leverage namespaces everywhere because of this, and this includes the standard library itself. But generally namespaces have been adopted for some time, and any modern PHP codebase uses them well.
The second complaint is also false, but has a seed of truth i
Truncated by Planet PHP, read more at the original (another 5095 bytes)
Package:
Summary:
Application to record feedback from customers
Groups:
Author:
Description:
This package implements an application to record feedback from customers...
Read more at https://www.phpclasses.org/package/11676-PHP-Application-to-record-feedback-from-customers.html#2020-06-09-15:18:41
Package:
Summary:
Encrypt and decrypt data using secret key
Groups:
Author:
Description:
This class can encrypt and decrypt data using secret key...
Read more at https://www.phpclasses.org/package/11674-PHP-Encrypt-and-decrypt-data-using-secret-key.html#2020-06-09-11:45:47
Dispersion effects create a really cool look in your finished photos. This effect basically works by taking an image and then breaking up on one edge so that it appears as though it’s been broken up into tiny pieces. As you might imagine, trying to create this image manually would be quite tedious. However, this can be easily remedied by the use of a Photoshop action.
There are several Photoshop actions that make it possible to create a dispersion effect with just a few clicks. And for your convenience, we’ve compiled a few of them here today.
While these actions share a similar theme, they do vary in terms of color options, opacity, texture, and several other variables. Take a look for yourself!
More Actions:
3D Effects,
Art Effects,
B&W Effects,
Bokeh Effects,
Cinema & Movie Effects,
Comic & Cartoon Effects,
Duotone Effects,
Double Exposure Effects,
Glitch Effects,
HDR Effects,
Ligh Leak Effects,
Retro & Vintage Effects,
Sketch Effects, or
Text Effects.
First up is the Dispersion Photoshop Action. This one is super easy to use. Just brush it over the area of the photo you want to disperse, choose a direction you want the dispersion effect go, and play the action. That’s it! It comes with a Readme file you can reference for guidance on how to use the action as well.
Another great option is the Elementum Dispersion Photoshop Actions. It works by breaking up an area of a photo that you select. You can choose from four different directions to point the dispersion effect and it’s super easy to use and implement. Other features include 10 color presets, graphic elements, and it’s fully editable.
You might also want to consider the 3D Dispersion Photoshop Action. It works similarly to the other dispersion effects on this list with the addition of a three-dimensional particle effect. Just select the area you want to add the effect, select a direction, then click play.
This action diffuses rather than disperses, but earns a spot on this list because it provides a similar end result. With the Diffusion Photoshop Action, you can create a particle diffusion effect with just a couple of clicks. Pick from four directions and click play. And it comes with a written and video tutorial for reference.
The Geometric Dispersion FX Photoshop Extension is great addition to this list. This action breaks a part an image into geometric shards, almost like broken glass, with geometric shapes floating off from the primary picture. It can be enhanced with patterns and shapes as well.
Another solid choice is the Feathers Dispersion Photoshop Action. With just a few clicks, you can create a dispersion effect that breaks apart a section of your image into feathers. You can select from five dispersion directions and 10 color presets.
Another option you might want to consider the Dispersion 2 Photoshop Action. This one is super straightforward. Just brush it on a select area of a photo and press play. That’s all there is to it and the end result makes it look like the subject of your photo is disintegrating.
The Tornadum Dispersion Photoshop action is another fantastic selection you might wish to consider. Once applied to your photo, it makes it appear as though a tornado has broken up the object of the scene and sent pieces of it into a direction you specify. It also comes with 10 color presets and is fully editable.
The Commetum Cosmic Tail Photoshop Action applies the same kind of dispersion effect to your photo as others on this list but adds a really interesting light element to the mix. The dispersion here looks almost like sparks. It comes with 10 color presents, graphic elements, and full instructions as well.
This is another really cool effect you might want to try on your photos. The Ashes n Embers Photoshop Action works by creating the appearance of an explosion on an area of your photo that you select. The dispersion looks like ashes and embers drifting away from the subject of your photo. Select the dispersion direction and from 10 color presets.
Another option is the Pixelum Digital Pixelation Photoshop Action. This one has four different actions that allow you to select the direction of the dispersion, which looks like the image is breaking down into pixels. It comes with 10 color presets, graphic elements, well-organized layers, and a text-file user’s guide.
The Sand Dust and Powder Explosion Photoshop Action offers a really interesting effect to your photos. It adds the appearance of sand or dust exploding out from a segment of your image. The end result is professional and the action comes with a written and video tutorial to help you figure out how best to use it.
The Disturb Photoshop Photo Template creates a really interesting vertical line distortion to your photos. You can use it on illustrations as well and the action itself comes with one PSD file, 6 shape options, and a full guide that walks you through its use.
The Cortisol Photoshop Action is a really impactful effect. Apply it to your photos with a couple of clicks and add a real sense of drama to your artwork. The actions comes with an action and pattern file, an illustrated tutorial, well-organized layers, color filters, and more.
The Pixels Poster Photoshop Action is another fantastic option that makes it look like your photo has burst into pixels and geometric shapes. The action has editable layers, provides multiple colors and elements, and comes with a video tutorial to help you with getting started.
You might also want to consider the Bubblum Bubble Generator Photoshop Action. Select an area of the photo you want to disperse then play the action. This will make t appear as though a segment of your photo is breaking apart into bubbles. Select from four directions, 10 color presets, graphic elements, and more.
The Sandstorm Photoshop Action makes it appear as though a part of your photo has disintegrated into sand. Just apply it to where you want it to appear, click play, and you’re good to go. Pick from five directions and you can customize layers as well.
Another option is the Destrukt Photoshop Action, which makes it look like a part of your image has exploded to smithereens. Select the direction you want the disbursement to go and click play. That’s it. It comes with a video and written tutorial as well.
Explode & Shatter Photoshop Action is another fantastic choice. Once applied to your images, it makes the graphics look like they’re shattering apart. It comes with an action file, brush file, pattern file, and a help file to make getting started with this action easier.
You might also want to consider the Magic Dust Photoshop Action. This one adds a sense of whimsy and playfulness to your photos. When applied, this action creates a glitter dispersion effect. The action comes with a video tutorial as well as a Readme file to help you in using it.
What an impact this action could make! The StarDust Photoshop Action only requires that fill in your desired subject with a color, select the direction of the effect, then click play. The end result is a final image that appears as though it’s broken apart and left streaks of light in its wake.
Here’s another pixelated Photoshop action that stands to make an impact on your work. Apply it to an area and play the action. The end result is a photo whose subject appears to be breaking apart into pixels. It’s a really cool effect that could easily be used in a variety of tech-focused photos.
And here’s another pixelated effect Photoshop action. This one takes the effect a bit further and as the pixels are breaking away from your photo’s subject, they get smaller and smaller. It’s a more all-encompassing effect than some of the other pixelated options on this list.
How to Install Photoshop Actions
- Download and unzip the action file
- Launch Photoshop
- Go to Window > Actions
- Select Load Actions from the menu and go to the folder where you saved the unzipped action file to select it
- The Action will now be installed
- To use the newly installed action, locate it in the Action panel
- Click the triangle to the left of the action name to see the list of available actions
- Click the action you want to play and press the play button at the bottom of the Actions panel
Dispersion effects can make a bold statement in your photography. And instead of trying to figure out how to accomplish this effect on your own, it’s a much better idea to use a Photoshop action that streamlines this process. We hope you’ve found this list of Photoshop actions helpful. Good luck!
The post The 20 Best Photoshop Actions for Creating Stunning Dispersion Effects appeared first on Speckyboy Design Magazine.
Latest PECL Releases:
- gRPC 1.30.0RC1
- gRPC Core 1.30.0 update
- Fix crash in subprocess after fork() #22774
- zip 1.19.0
- add ZipArchive::EM_TRAD_PKWARE and ZipArchive::EM_UNKNOWN constants
- Fix #79424 don't use gl_pathc after call to globfree (Max Rees)
- add ZipArchive::isCompressionMethodSupported() method (libzip 1.7.0)
- add ZipArchive::isEncryptionMethodSupported() method (libzip 1.7.0)
- initial PHP 8 support
- skywalking 3.3.2
Fix bugs
- yaf 3.2.4
- Fixed issue #489 (global library is not used if namespace is not set)
- Fixed issue #490 (segfault with repeated call arguments)
- zstd 0.9.0
- Windows build support
- zstd 0.9.0RC1
- Windows build support
- skywalking 3.3.1
Fix bugs
- datadog_trace 0.46.0
## Important behavior changes in this release
If you use the OpenTracing API, the OpenTracing compatible tracer will no longer be returned from `OpenTracingGlobalTracer::get` automatically. See #899 or [the documentation](https://docs.datadoghq.com/tracing/opentracing/php/) for more details.
On PHP 7, dd_trace
will no longer work on internal functions e.g. curl_exec
; use dd_trace_method
or dd_trace_function
instead. Additionally, when targeting internal functions they also need to be added to the environment variable DD_TRACE_TRACED_INTERNAL_FUNCTIONS
which is a comma separated list e.g. DD_TRACE_TRACED_INTERNAL_FUNCTIONS=array_sum,mt_rand,DateTime::add
. These two changes enable a significant performance optimization.
Changed
- Avoid usage of spl_autoload_register while still allowing noop manual instrumentation without ext installed #877
- Sandbox Slim integration #878
- Sandbox Lumen integration #884
- Sandbox CakePHP integration #898
- Remove legacy hook for OpenTracing #899
- Noop the legacy API when a potentially conflicting module detected #900, #905
- Move the request init hook to
auto_prepend_file
#907
- Optimize internal functions handlers at startup (PHP 7) #895
Fixed
- Fix early return in dd-doctor #894 (thank @tatsuo48!)
- Fix opcache check in dd-doctor #896 - thanks @tatsuo48
- Update CONTRIBUTING.md #897 - thanks @askkaz
The post Interview with Nuno Maduro appeared first on Voices of the ElePHPant.
Xdebug Update: May 2020
London, UK
Tuesday, June 9th 2020, 09:11 BST
Another monthly update where I explain what happened with Xdebug development in this past month. These will be published on the first Tuesday after the 5th of each month. Patreon supporters will get it earlier, on the first of each month. You can become a patron to support my work on Xdebug. If you are leading a team or company, then it is also possible to support Xdebug through a subscription.
In May, I worked on Xdebug for about 70 hours, on the following things:
Xdebug 2.9.6
Continuing my new tradition of releasing at least one Xdebug release a month, in May I've released Xdebug 2.9.6. The main reason for the release is to fix a crash which would occur when classes in third party extensions would not implement PHP's internal "get_properties" API. This bug was found with the protobuf extension.
The second change is to add the SameSite attribute to the cookies that Xdebug maintains for multi-request debugging sessions. Because PHP's cookie setting API did not support this until PHP 7.3, neither will Xdebug. (So upgrade!).
And lastly, the 2.9.6 release addresses an inconsistency when path and branch information is returned with xdebug_get_code_coverage(), when enabled. Up to now, nothing made use of Xdebug's branch/path coverage yet, but PHP Unit will from this August's release have initial support for it. Xdebug 3 should also make code coverage (and other things) faster as well. Which brings me to the next item.
Xdebug 3
I have spent some time changing the way how you configure Xdebug's myriad of features. Xdebug has way too many configuration settings, and one of Xdebug 3's goal is to simplify its configuration, and at the same time improve performance.
With Xdebug 2.9 I have already split up and reorganised the code towards this, but with a soon-to-be-merged branch, you will no longer be able to enable both the step-debugger, code coverage, profiling, and/or tracing at the same time. The settings xdebug.default_enable
, xdebug.remote_enable
, xdebug.profiler_enable
, xdebug.coverage_enable
, and xdebug.auto_trace
have been replaced with the xdebug.mode
setting which can have the values off
, display
(for var_dump() override and stack traces), trace
, debug
, profile
, and coverage
.
Further more, the individual "trigger" features, either through cookies, function calls, environment variables, etc, have been replaced by a generic xdebug.start_with_request
settings, which can have the values never
, trigger
, always
, and default
. The default
value for the setting emulates Xdebug 2's behaviour.
As an example, where you previously used for code coverage:
xdebug.default_enable=0
xdebug.coverage_enable=1 # this was the default
You now use:
xdebug.mode=coverage
And you also won't have to think about setting xdebug.profiler_enable=0
and xdebug.auto_trace=0
.
Similarly, for step-debugging with the debugger starting when you have a warning, error, or exception, you no longer use:
xdebug.remote_enable=1
xdebug.remote_mode=jit
But instead you use:
xdebug.mode=debug
xdebug.start_with_request=trigger
I have not written the documentation or upgrade guide for these changes yet, but I expect that to be finished in June, when I will also shift my focus to improvement the performance of each month.
Xdebug Cloud
I worked on Xdebug Cloud only a little in the beginning of the month, with a few minor things to iron out b
Truncated by Planet PHP, read more at the original (another 1188 bytes)
Package:
Summary:
Manages collections of elements stored in arrays
Groups:
Author:
Description:
This package can manages collections of elements stored in arrays...
Read more at https://www.phpclasses.org/package/11669-PHP-Manages-collections-of-elements-stored-in-arrays.html