Xdebug Update: December 2021

Xdebug Update: December 2021

In this monthly update 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 and GitHub supporters will get it earlier, around the first of each month.

You can become a patron or support me through GitHub Sponsors. I am currently 46% towards my $2,500 per month goal. If you are leading a team or company, then it is also possible to support Xdebug through a subscription.

In December, I worked on Xdebug directly for only about 26 hours, with funding being around 21 hours. Please become a supporter of Xdebug through Patreon or GitHub.

Xdebug 3.1 and further

On the first of the month, I released Xdebug 3.1.2.

It addresses a few crash bugs related to PHP 8.1 fibers, a crash bug when Xdebug can't write a profiler file, and an issue with Xdebug's var_dump() not using the magic __debugInfo method.

The full list of changes can be found on the updates page on the Xdebug website.

Since Xdebug 3.1.2 I have fixed a few more bugs, which are not yet in a released version. One fix pertains to the debugger generating not-well-formed XML, and another one improves performance with long strings in the debugger.

I spend most of my time in December to investigate issues that have not yet been solved. One of them turned to be a change in PHP behaviour between PHP 8.0 and 8.1. In PHP 8.0 and earlier, the $_GLOBALS[] superglobal also had a key GLOBALS, which PHP 8.1 no longer has. PhpStorm was reading values for its watch feature, from the GLOBALS context, but also added the extra (unnecessary) GLOBALS array element to read out the real variables. Fixing this in Xdebug is complex, so hopefully this will be addressed in the next version of PhpStorm itself.

The second issue turned out to be an issue with PHP-FPM, which is not strictly following PHP's processing model. This can cause a discrepancy between PHP-FPM's control and worker processes, where they do not agree what the value of the xdebug.mode INI setting is. Ideally this should get fixed in PHP-FPM, but there are further issues that both PHP-FPM and Xdebug probably need changes for.

Xdebug Videos

I did not create any new Xdebug videos this month on my YouTube channel. But I am working on a more thought out set of instructional videos. Stay Tuned!

If you would like to suggest a topic for a 5 to 15 minute long video, feel free to request them through this Google Form.

Truncated by Planet PHP, read more at the original (another 582 bytes)

Community News: Latest PECL Releases (01.11.2022)

Latest PECL Releases:

  • scoutapm 1.6.0
    - Added support for PHP 8.1 (#101)

  • PDO_INFORMIX 1.3.5
    Added Support for PHP 8.1 version.
  • datadog_trace 0.68.2
    ### Changed - Clean up generate-final-artifact.sh #1442

    Fixed

    • Replace direct access of meta/metrics zvals by safe array access in most places #1440
    • Always separate meta and metrics arrays on access #1441
    • Bump profiling to v0.3.0-rc.6 (fixes some linking bugs) #1444
  • memprof 3.0.2
    ## Improvements - PHP 8.1 support (@remicollet) - Added parameter types and return types (@remicollet) - dump_on_limit: Append the profile filename to the "Allowed memory size of %d bytes exhausted" error message (@arnaud-lb) - Added memprof_version() function (@arnaud-lb)

    Bugfixes

    • Fixed compatibility issue with xdebug (@arnaud-lb)
  • rdkafka 6.0.0
    # Changes since 5.x

    Improvements

    • PHP 8.1 support (@remicollet, @ruudk, @nick-zh)
    • Added parameter types (when built with PHP>=8.0) (@arnaud-lb)
    • Added tentative return types (when built with PHP>=8.1) (@arnaud-lb)

    Deprecations

    • PHP 8.1: Overloading php-rdkafka methods without specifying a return type will trigger a deprecation message unless annotated with #[ReturnTypeWillChange]

    Changes since 6.0.0RC2

    Bugfixes

    • Fix newTopic() arginfo (#502, @arnaud-lb)
  • gRPC 1.43.0
    - gRPC Core 1.43.0 update
  • phalcon 5.0.0beta2
    Full changelog can be found at: https://github.com/phalcon/cphalcon/blob/master/CHANGELOG-5.0.md

    Fixed

    • PhalconMvcViewEngineVoltCompiler::functionCall() to check for container presence before checking the tag service #15842
    • PhalconDiFactoryDefault() to set assets and tag as shared services #15847
    • PhalconFormsElementAbstractElement::getLocalTagFactory() to return the tagFactory from itself, the form, the DI or a new instance #15847
    • Changed references to sha1 with hash("sha256", $data) to ensure that there are no collisions from the hashing algorithm #15844
    • Changed PhalconSupportHelperStrCamelize to accept a third boolean parameter indicating whether the result will have the first letter capitalized or not #15850

    Added

    • Added PhalconSupportHelperStrKebabCase, PhalconSupportHelperStrPascalCase and PhalconSupportHelperStrSnakeCase helpers #15850
  • weakreference_bc 0.4.1
    - Fix windows build issues. - Stop using the nonstandard `ulong` type. - Fix typo in PECL conflicts section with weakref PECL. - Change configure flag to enable/disable this extension to --enable-weakreference_bc
  • weakreference_bc 0.4.0
    - Fork this from the abandoned "weakref" PECL to provide WeakMap for php 7.0-7.4 and WeakReference for php 7.0-7.3 - Fix compilation errors for WeakMap in php 7.4 - Rename WeakRef to WeakReference to act as a polyfill for WeakReference in php before php 7.4. - Make WeakReference constructor throw and require the use of WeakReference::create, like php 7.4 - Fix edge cases when destructor of an old value modifies the weakmap during an update. - Strictly prevent the creation of dynamic properties on a WeakReference.
  • protobuf 3.19.2
    * No new changes in 3.19.2
  • protobuf 3.18.2
    * No new changes in 3.18.2
  • imagick 3.7.0RC1
    - Added: * function Imagick::deleteOption(string $option): bool {} * function Imagick::getBackgroundColor(): ImagickPixel {} * function Imagick::getImageArtifacts(string $pattern = "*"): array {} * function Imagick::getImageKurtosis(): array {} * function Imagick::getImageMean(): array {} * function Imagick::getImageRange(): array {} * function Imagick::getInterpolateMethod(): int {} * function Imagick::getOptions(string $pattern = "*"): array {} * function Imagick::getOrientation(): int {} * function Imagick::getResolution(): array {} * function Imagick::getType(): int {} * function Imagick::implodeImageWithMethod(float $radius, int $pixel_interpolate_method): bool {} * function Imagick::oilPaintImageWithSigma(float $radius, float $sigma) * function Imagick::polaroidWithTextAndMethod(ImagickDraw $settings, float $angle, string $caption, int $method): bool {} * function Imagick::polynomialImage(array $terms): bool {} * function Imagick::setDepth(int $depth): bool {} * function Imagick::setExtract(string $geometry): bool {} * function Imagick::setInterpolateMethod(int $method): bool{} * function Imagick::setOrientation(int $orientation): bool {} * function Imagick::spreadImageWithMethod(float $radius, int $interpolate_method): bool {} * function Imagick::swirlImageWithMethod(float $degrees, int $interpolate_method): bool {} * function Imagick::waveImageWithMethod(float $amplitude, float $length, int $interpolate_method): bool {} * Imagick::IMAGE_TYPE_BILEVEL * Imagick::IMAGE_TYPE_GRAYSCALE * Imagick::IMAGE_TYPE_GRAYSCALE_ALPHA * Imagick::IMAGE_TYPE_PALETTE * Imagick::IMAGE_TYPE_PALETTE_ALPHA * Imagick::IMAGE_TYPE_TRUE_COLOR * Imagick::IMAGE_TYPE_TRUE_COLOR_ALPHA * Imagick::IMAGE_TYPE_COLOR_SEPARATION * Imagick::IMAGE_TYPE_COLOR_SEPARATION_ALPHA * Imagick::IMAGE_TYPE_OPTIMIZE * Imagick::IMAGE_TYPE_PALETTE_BILEVEL_ALPHA * Imagick::COMPOSITE_SEAMLESS_BLEND - Changed: * Imagick::setImageArtifact can now take null for the string value. * Return type for Imagick::getImageArtifact is string|null instead of string.
  • lzf 1.7.0
    - drop support for PHP 7.1 and older - add type hinting

The Secret to Successful Food Packaging Design

We all see it every day. That box, that wrapper, those bottles, jars, and cans. Food packaging is something that permeates our lives, and yet most people don’t ever stop to consider how it actually affects the decisions we make when we purchase our food.

From the moment you make a selection in the store to the moment you get your groceries home and open them, food package designers have carefully engineered each step of your eating experience to make sure you make the choices that are right for you.

As designers, it’s always worth considering how others in different parts of the design industry tackle their own special problems and challenges. So today, we’ll be taking a “field trip” into the design process behind some of the industry’s most successful and effective food packaging designs.

Confidence is Delicious

Here’s a little experiment you can try the next time you’re shopping for food at the store: pick a packaged item. Bread, cheese, yogurt – anything you like. Find a low-priced version of it, and hold it in your hands.

Examine the design, the quality of the materials used to make it. Make a mental note of how it makes you feel to hold it. Do you feel calm? Hungry? Intrigued? Slightly nauseated? Now put it back and do the same thing with a higher-priced version. How do you feel now? Is there a difference in your level of engagement with the product?

One of the most important things food packaging designers consider when creating a package design is the way it will feel in your hands when you hold it in a store. For many consumers, something that doesn’t feel right in their hands can mean the difference between making a purchase and leaving something on the shelf.

 Barrelhead Foods Company by David Cole Creative
Barrelhead Foods by David Cole Creative

You want your users (in this case, food shoppers) to feel confident holding your packaging in their hands, because that sends the subconscious message that “this is a trustworthy food item I can confidently serve to my family.”

If you’re a web or print designer, you can create the same sense of confidence in your own users by being consistent and committing to a uniform standard of quality across every aspect of your project.

Quality design seems to be something most people recognize when they see it, even if they don’t exactly know why. When people purchase something with quality design, it sends a little subliminal message that they’ve made a good decision, and actually increases their opinion of the product regardless of how good it actually is.

You want to encourage your users’ confidence by subtly telling them that purchasing your product (or consuming your content, in whatever form it might come) is, to quote Martha Stewart, a Good Thing. You can do just that by adhering to the highest design standards possible.

bushwick tea organic black seed
Bushwick Tea X Black Seed Bagels by Salih Küçükağa

Smile For the Camera

I don’t know the exact percentage of food packaging which incorporates photography versus that which does not, but just from browsing the store aisles where I live in the US, I’d say that photographic designs are in the minority.

However, there are benefits to this kind of food packaging, which I personally thing some food packaging designers could make better use of. Obviously, the biggest benefit to including a photo is that the consumer can see the actual product that they’re buying without opening the package.

Nowadays, this can be a tricky way to sell food, since people are more cynical than they used to be. You know, for example, that the food-styled photography you see in television ads is usually not what you’re going to get at the store or the drive-thru window. So seeing a photo of perfectly styled food can actually lead to disappointment.

However, there’s an interesting thing that happens the majority of the time, and it’s why food stylists are able to stay employed. It’s related, in part, to the feeling of confidence I mentioned before. When people see something of quality, they’re more inclined to feel they made a good decision, and – here’s the important part – they’re more likely to be charitable in their opinion of the product they’ve purchased. Simply put, presentation is everything.

When I was in culinary school, our chef instructors always used to stress how important it was that we make our plates look as delicious as we possibly could, even if the food was mediocre. Why? Because it’s common knowledge that the better something looks, the more positively people respond – especially if they’re going to be putting it in their mouths.

In design school, I heard and witnessed the same phenomenon – the students who presented “blah” ideas exceptionally well almost always outperformed those who presented awesome ideas poorly.

Of course, presenting an awesome idea well is ideal, but it’s less important to make every single thing pixel perfect. Putting a perfectly styled photo on a food package (or in an advertisement) counts as good presentation, and consumers generally respond with confidence.

When you take on a customer-facing design project, you are making a presentation. You can directly control how most of your users will respond to your product or content by presenting it well, even if it’s not perfect.

Nori Takeout Sushi
Nori Takeout Sushi by María Luisa Castro

The Food Gods Have Spoken

According to the very accurate, scientific research of, um, me browsing through the grocery aisle, the vast majority of food packaging design does not use photography. Rather, they use graphic elements to hint at a specific set of values which strike a chord with the consumers who are most likely to buy that item.

The Clif brand of energy bars, for example, includes several different types of packaging in their multiple varieties of products. Believe it or not, each of these different packages is designed to appeal to a slightly different sub-market of consumer. The majority of the product line of energy bars feature no photography on their opaque wrappers – just a simple design and vector illustrations of a guy rock climbing or doing some other type of extreme sport.

That has nothing to do with the actual food item itself, but it does suggest to the customer the kind of lifestyle they can aspire to if they eat Clif bars. The “Builder’s” line of protein bars features photography, for a certain type of consumer who tends to be more practical and serious about living an active, health-conscious lifestyle. The people at Clif know this – they target specific segments of their market in different ways, in order to appeal to all their consumers effectively.

When you connect with your target audience – when you really explore what they want and how to reach them, you can create their world with your designs. It sounds kind of godlike, but it’s true. Creating products and content for a specific group of users allows you to zoom in on their likes and dislikes; their hopes and fears.

Using this information, you can engineer the experience they have with your content or product by catering directly to the type of person they are.

Once you know your users’ ideal lifestyle, you can then create it for them, suggesting it to them whether they’re in the grocery store buying ingredients for dinner, or whether they’re reading the summary for an ebook online. Food packaging designers know this when they cater to the “lifestyle” of their target market.

tomiris
Tomiris by Svetlana Nikolayeva

Narrowing It Down

Everyone is different. Contrary to popular opinion, there is no such thing as a “general audience.” There are only different microcosms of people who have many different tastes and preferences. Many designers think this makes their job more difficult, but in fact, if you learn to embrace it, it can make design much more straightforward.

Not necessarily easier, but knowing your specific audience can take much of the guesswork out of figuring out what will sell. It takes a bit of work to pinpoint your exact type of user, and what he or she really wants (partly because people tend to be horrible at articulating what they actually want), but it’s definitely worth it.

The post The Secret to Successful Food Packaging Design appeared first on Speckyboy Design Magazine.

8 Outstanding CSS and JavaScript Chat UI Snippets

Long before social media took over our screens, internet chat was the original online time-waster. One could spend hours on IRC and other assorted live messaging apps. For those who took part in the obsession, late nights often turned into early mornings. Sleep was lost, wrists were sore. What a time to be alive!

While chat has changed quite a bit since those early days, it’s still every bit as relevant. Only now it has become a staple of customer service and team Slack channels.

And communication has been further improved by the latest CSS and JavaScript techniques. They allow for creating amazingly interactive UIs, while providing more advanced functionality as well.

Today, we’ll show you eight interesting and unique chat UIs. They’re so great, you might even LOL.

Messaging App UI with Dark Mode by Aysenur Turk

Facebook Messenger is wildly popular and it’s no wonder developers are looking to imitate it. The look is simple, effective and instantly-recognizable. Here’s a remix that includes an ever-so-trendy dark mode option.

See the Pen Messaging App UI with Dark Mode by Aysenur Turk

Daily UI #013:Direct Messaging by Fabio Ottaviani

Glassmorphism is a popular look these days. Here, a touch of its style is used to liven up this private messaging UI. Thankfully, the result is miles away from the boring, plain-text chat apps of the past.

See the Pen Daily UI #013:Direct Messaging by Fabio Ottaviani

MSN Messenger 7.5 Visual Demo with WebComponents (HTML+CSS+Javascript) by Manz

Speaking of the past, this UI snippet recreates the look of MSN Messenger. It’s pretty authentic, right down to the chunky 3D icons. Not only does this show how far we’ve come, but it’s also a nice exercise in using modern styling to bring back an old favorite.

See the Pen MSN Messenger 7.5 Visual Demo with WebComponents (HTML+CSS+Javascript) by Manz

floating website chat button (intercom inspired) by neil kalman

Here’s a trend we’re seeing just about everywhere. The “floating” chat UI that’s uncomfortably stuck on the bottom right of the screen. Click the button and start typing away. It certainly is handy, especially for sales and support purposes. Just beware:you’re probably talking to a bot, rather than a real human.

See the Pen floating website chat button (intercom inspired) by neil kalman

Mock Chat Animation by Jacob Foster

Perhaps you’re in the beginning stages of a chat-based project and haven’t fully figured out the UI just yet. No worries, as this mock chat animation snippet can serve as a solid stand-in. The demo is clean, colorful and inspiring. That makes it perfect for wireframing.

See the Pen Mock Chat Animation by Jacob Foster

Stylish chat window design by Mamun Khandaker

For those who use chat to provide customer support, it’s likely that you’re dealing with multiple conversations. This UI snippet provides a solution in the form of neatly-arranged windows. Each one can be minimized and maximized. Notice the status indicator icons within the title – making it easier to see what’s going on.

See the Pen Stylish chat window design by Mamun Khandaker

Simple Chat UI by Sajad Hashemian

Like most design-related things, simple is often better. Chat UIs can become littered with goofy effects and unreadable fonts. But not here. Instead, this “Simple Chat” is intuitive. Best of all, you won’t need to zoom in to read it.

See the Pen Simple Chat UI by Sajad Hashemian

Club Command Line by Jon Kantner

There’s no rule that says chat has to be a text-only experience. Certain instances may call for something a bit more fun. And that’s exactly what this video game-like chat UI does. Use your arrow keys to move your character around and chat up a storm. If you want to keep better track of the conversation, the “View Chat” button pulls up a text archive.

See the Pen Club Command Line by Jon Kantner

BRB, Building a Better Chat UI

With so many cutting-edge technologies available, there are a world of possibilities for chat UIs. Yet, the overall goal should be the same. No matter what bells and whistles we add to the mix, the idea is to create something that’s easy to use and understand.

The other lesson here is that the design choices we make should be based on need. For example, some of the snippets above would be great for an online gaming community – but not so much for a corporate sales channel. A user interface works best when it reflects the people it will serve.

We hope you enjoyed this dive into the world of chat and messaging. If you want to check out even more examples, visit our CodePen Collection.

The post 8 Outstanding CSS and JavaScript Chat UI Snippets appeared first on Speckyboy Design Magazine.

PHP Web Server Configuration Policy Maker

Package:
Summary:
Generate Web server configuration from a policy
Groups:
Author:
Description:
This package can generate Web server configuration from a policy...

Read more at https://www.phpclasses.org/package/12347-PHP-Generate-Web-server-configuration-from-a-policy.html#2022-01-07-16:32:45
Powered by Gewgley