Monthly Archiv: December, 2019

PHP: Hypertext Preprocessor: PHP 7.4.1 Released!

PHP 7.4.1 Release AnnouncementThe PHP development team announces the immediate availability of PHP 7.4.1. This is a security release which also contains several bug fixes.All PHP 7.4 users are encouraged to upgrade to this version.For source downloads of PHP 7.4.1 please visit our downloads page, Wi...

Akra’s DevNotes: Routing in Slim 4

Routing in Slim 4 works pretty much exactly the same as in Slim 3. They are used to map a URL that the browser requests to a specific handler that executes the code for that particular page or API endpoint. You can also attach middleware that will only be run when that route is matched. The route i...

There Are Questions Even a Grumpy Designer Can’t Answer

I am not an advice columnist. Nor am I a mediator, lawyer or even an IT specialist. Like many of you reading this, I’m a web designer.

In reality, this title only qualifies me to answer questions about web design. And even then, I may very well have to look up the answer.

But that doesn’t stop clients from asking me about all manner of subjects. The funny thing is that these questions often, in their own roundabout way, relate to their website. But they’re still outside of my particular wheelhouse.

I think it speaks to both the growing complexity of the web and how segmented the industry has become. And it also reflects the lack of resources website owners have when it comes to finding answers. Clients often don’t have anywhere else to turn, so they ask their web designer.

Here, then, are a few example subjects that have me wondering if I should head back to school.

Legal Pains

Putting a website out there for public consumption is no longer a carefree endeavor. These days, websites are subject to an increasing amount of legal scrutiny. And clients are rightfully concerned about how to stay in compliance – even as the rules continue to evolve.

I’ve received questions on a variety of legal matters, including:

  • Accessibility;
  • Copyright;
  • PCI Compliance;
  • Privacy Policies / Terms of Use;
  • User Data;

The problem is that, while these items are important considerations for any website, there’s only so much I can tell a client. The best any web designer can do is provide some general guidance and maybe an opinion. Going any further could lead to some sort of liability should something go wrong.

From there, I recommend they speak to a lawyer. As things get more complicated, it may make sense for web designers to find a legal expert they trust to refer clients to. That way, we’ll at least know they are in good hands.

A person writing.

Email and IT Nightmares

This grumpy designer has sounded off on email before. It’s a cruel sort of torture for everyone. But it’s especially bad for smaller clients who don’t have their own IT staff.

Between the folks trying to set up custom email accounts on their smartphone to wondering why form submissions don’t come through, this may be the subject I’m asked about most. After all of these years, I still dread it.

When it comes to account setup, I try to be helpful and at least point them in the right direction. Still, it can be difficult to help some of the more technically-challenged people. In addition, all of the different account types and devices available mean that there are a lot of variables at play.

The scourge of dealing with spam filters takes things to another stratosphere. When messages from forms or shopping carts don’t get delivered, it can take a lot of digging to find answers. The sad part is that, even after spending a good bit of time on an issue, I still don’t always have a good solution.

Then, there are also a myriad of general information technology questions. I’ve been asked about viruses, setting up a LAN, internet connectivity issues and just about anything else a small office might face.

Don’t get me wrong – I can certainly understand why a client may ask about these things. Web designers are technically-minded, and may be the best resource available in a given moment. Yet, it’s also far outside our area expertise.

Email in a web browser.

Scammers and the Unknown

Maybe I should add the titles of private investigator and consumer advocate to my wish list. Over the years, I’ve heard from numerous clients who were rightly suspicious over emails, snail mail or phone calls they’ve received.

A number of scams are easy to spot. The old domain registrar trick where a letter says you’re up for renewal at 5 times the price paid is common. And there are a number of ridiculous-sounding emails as well.

But where I get stumped is when I’m asked about the veracity of a third-party service. For example, a client recently asked me for an opinion on an email provider I’d never heard of. Their website looked legitimate enough, but I had no idea if the service itself was any good. And I really didn’t have time or motivation for a drawn-out Google search on their reputation.

In the end, it seems like the best move is to steer everyone towards common sense. And, when that’s not enough, encourage them to do a little research on their own.

Man looking at a computer screen.

You Can’t Know Everything

In some ways, it’s a bit flattering that a client might ask me about one of these subjects. That reflects a good relationship and a level of trust. It’s something that shouldn’t be taken lightly.

But, for any web designer, there are limits as to what you can know and are qualified to answer. Without a law degree, we can’t provide specific legal advice. Without a background in IT, we can’t provide much support for a crashed file server. It’s like asking a plumber to fix your car.

Beyond that, it’s also important that we “stay in our lane”. As great as it is to help clients, you have to ask whether or not you really want the responsibility of dealing with these outside issues. Do you want to be the one they call every time their email account has a hiccup?

Web design is a challenging field in its own right. Things outside of our sweet spot are best left to the other professionals out there.

The post There Are Questions Even a Grumpy Designer Can’t Answer appeared first on Speckyboy Design Magazine.

API Getnet PHP Client (New)

Package:
API Getnet PHP Client
Summary:
Access Getnet e-commerce Web services via its API
Groups:
E-Commerce, PHP 5, Web services
Author:
Jonatas Matheus Gino de Souza
Description:
This package can be used to access Getnet e-commerce Web services via its API...

Read more at https://www.phpclasses.org/package/11469-PHP-Access-Getnet-e-commerce-Web-services-via-its-API.html

State of the Word: the story of the slides

During the State of the Word at WordCamp US 2019, Matt Mullenweg shared that Gutenberg was used to create his slides and the presentation was powered by the Slides plugin. Using WordPress to power a slide deck isn’t an obvious choice, so we wanted to showcase the process and give some tips for making slide layouts using Gutenberg.

This post is co-written by Ella and Tammie, who (along with Mel, Mark, Enrique, Q and a cast of supporters) helped create this year’s State of the Word slide deck.

How it Started

Ella Van Durpe was selected to speak at JSConf and ReactEurope and wanted slides for her presentation. 

In the past, she’d used Reveal.js to create slides and enjoyed the freedom to create anything using HTML, CSS and JavaScript. These languages were comfortable, familiar, and also can be published on the web in their native format. 

For these new presentations, she wanted to use Reveal.js again but didn’t feel like writing all the HTML by hand. Creating blocks of content visually, without having to actually write any code, which can be published natively to the web, is exactly what Gutenberg was built for.

The plugin was prototyped quickly, with hardcoded styles on the slides and zero options. At the end of each presentation, Ella shared a brief demo of the Gutenberg-based slides and the audience was amazed.

As WordCamp US approached, Ella suggested that her plugin be used for State of the Word. Since it was such a hit with her audience members, it seemed like this would be a great chance to share it with the WordPress community as a whole.

How it Works

Technical information

The plugin registers a custom post type called “presentation” and a new “slide” block. The slide block is a sort of enhanced “Group” block, which is restricted to the root of the post, but you can put any other block inside it. As a result, you have a post filled with only slides at the root and slides filled with content. This maps perfectly to the Reveal.js markup, which requires content in HTML section elements.

Since these slides each have their own design, the theme styles are disabled and styling is set from each slide. A custom presentation template is provided by the plugin to render the custom post on the front-end.

Then Ella added options to style the slides. For example, she added options to control the slide background and font, at both the document level and individual slide level. She also added Reveal.js options, which allow you to change the transition style and speed. Lastly, she added a custom CSS field to allow style overwrites.

For the State of the Word, she also added speaker notes and a speaker view.

How it’s Designed

The inspiration for the slide designs came from Blue Note album covers (which were also the inspiration for the 2011 State of the Word slides). These album covers inspired the recent “About” page in WordPress core and the starter content for the new Twenty Twenty theme. This style consists of strong, geometric shapes and simple forms with clean lines. Photography and bold typography are at the heart of this look.

Various color palettes and font pairings were explored before selecting the best combination for the presentation.

A strong photographic element was needed for the slides. Past WordCamps are a great source of photos, so we dug through years of photo galleries to find just the right shots. With colors, fonts, and photos, we laid the foundation to build the deck.

Tips for Making Gutenberg Slides

Tip One: columns are your friends

If you want slides with a precise layout, use columns. As you can see here, we used a 3 column layout to center content within a slide:

Tip Two: spacer blocks are useful

Want to really unlock the power of columns? Combine them with the spacer block! We used spacer blocks to position content over background images, like in this slide:

Tip Three: test on large screens

It’s important to preview and test your slides as you go. Make sure to design for the size and aspect ratio of the projector you’ll be using and do a visual check in presentation mode from time to time.

Tip Four: check your videos

A good demo video is integral to showcase new features. Joen Asmussen has a great post on creating effective demo videos.

Lessons learned

I’d love to make the art directed compositions easier to create.

Mel Choyce-Dwan

As Gutenberg evolves, one big improvement is that art direction will get easier. Even with the improvements this year, creating some layouts in Gutenberg was trickier than expected. For the more complicated compositions, we relied on SVGs. Eventually, the need for hacks will dissolve away, and a new world of exciting possibilities will open for everyone.

Browsers offered one of our biggest learnings in this presentation, more than they would if you use Keynote or Powerpoint, for example (tools most of us have used). Often, we found that what we created in the editor varied a when viewed full-screen. We were able to mitigate this by updating the plugin to use a fixed size, instead of using the entire browser window.

Wrapping it up

If you would like to check out the State of the Word, you can watch the video and read all about it in a post.

The Slides plugin is not only available on the plugin repo, but you can also get the code from GitHub and help translate.

Community News: Latest PECL Releases (12.17.2019)

Latest PECL Releases:

  • swoole 4.4.13
    New API


    Enhancement

    • Support websocket compression on CoroutineHttpServer (#2943) (@twose)
    • Support CURLOPT_PUT, CURLOPT_INFILE, CURLOPT_INFILESIZE (#2954) (@twose)
    • Add error info for bind error (#2972) (@LeiZhang-Hunter) (@twose)
    • Update error info if socket call failed (it will not warn anymore if not necessary) (1e9b8cbb) (@twose)
    • Move the library to a separate repo (@twose)
    • Support CURLOPT_IPRESOLVE (library-12ffb4d6) (@twose)
    • Support CURLOPT_PORT, CURLOPT_PROXYPORT, CURLOPT_DNS_USE_GLOBAL_CACHE (library-5a718920) (@twose)
    • Better CURLOPT_ENCODING support (library-7b680712) (@twose)
    • Support curl_reset, CURLOPT_PROXYTYPE, CURLOPT_PROXYUSERNAME, CURLOPT_PROXYPASSWORD, CURLOPT_PROXYUSERPWD (library-84ce0a04) (@twose)

    Fixed

    • Fixed gdbinit in docker (missing symbol) (d46dc2d7 (@twose)
    • Fixed compression in POST request (#2947) (@twose)
    • Fixed compatibility of Websocket->push method (ac7dbcbc) (@twose)
    • Fixed $output result inconsistency (@Yurunsoft) (#2955)
    • Fixed Coroutine::fread (#2958) (@matyhtf)
    • Fixed CoroutineServer can not exit normally #2837 (#2962) (@twose)
    • Fixed memory leak in HTTP2 Server (#2964) (@twose)
    • Fixed unsafe_event (#2970) (@matyhtf)
    • Fixed illegal call after server start (#2977) (@twose)
    • Fixed WebSocketFrame can not enable mask (#2982) (#2983) (@twose)
    • Fixed memory leak of Process callback (898894a7) (@twose)
    • Fixed case where minfd is never updated (#2985)
    • Fixed HTTP2 module is always enable (3925e212) (@twose)
    • Fixed HTTP2 context double free (#2987) (f4cdff1b) (@twose)
    • Fixed string comparison (#2988) (97c6c425) (9e5eae63) (@twose)
    • Fixed HTTP2 pipeline (#2993) (@twose)
    • Fixed coroutine context has been destroyed (#2991) (@twose)
    • Fixed illegal usage of Process::daemon (#3005) (@twose)
    • Fixed compilation without zlib (#3008) (@twose)

    Kernel

    • Refactor swoole_(get|set)_object to the way of extending zend_object (more stable and efficient) (#2966) (@twose)
    • Support Github Actions (@twose) (@matyhtf)
  • xhprof 2.1.4
    - Windows support #34
  • svn 2.0.3
    PHP 7 compatility

    Changes: #75206 - support for PHP7 by at mitani at gmail dot com

  • rdkafka 4.0.2
    BREAKING CHANGE: Since version 4.0, the client no longer polls for network events at shutdown (during object destructor). This behaviour didn't give enough control to the user in case of server issue, and could cause the script to hang while terminating.

    Starting from 4.0, programs MUST call flush() before shutting down, otherwise some messages and callbacks may be lost.

    Bugfixes

    • Fix partition 0 exposed as NULL in Message (#327 reverts #321, @arnaud-lb @nick-zh)
    • Fix memory leak in consume() when messages have headers (#323, @nick-zh)
  • protobuf 3.11.2
    GA release.
  • swoole 4.4.13RC2
    New API --- + Built-in Connection Pool ([examples](https://github.com/swoole/library/tree/master/examples)) ([doc](https://wiki.swoole.com/wiki/page/p-library.html)) (@twose)

    Enhancement

    • Support websocket compression on CoroutineHttpServer (#2943) (@twose)
    • Support CURLOPT_PUT, CURLOPT_INFILE, CURLOPT_INFILESIZE (#2954) (@twose)
    • Add error info for bind error (#2972) (@LeiZhang-Hunter) (@twose)
    • Update error info if socket call failed (it will not warn anymore if not necessary) (1e9b8cbb) (@twose)
    • Move the library to a separate repo (@twose)
    • Support CURLOPT_IPRESOLVE (library-12ffb4d6) (@twose)
    • Support CURLOPT_PORT, CURLOPT_PROXYPORT, CURLOPT_DNS_USE_GLOBAL_CACHE (library-5a718920) (@twose)
    • Better CURLOPT_ENCODING support (library-7b680712) (@twose)
    • Support curl_reset, CURLOPT_PROXYTYPE, CURLOPT_PROXYUSERNAME, CURLOPT_PROXYPASSWORD, CURLOPT_PROXYUSERPWD (library-84ce0a04) (@twose)

    Fixed

    • Fixed gdbinit in docker (missing symbol) (d46dc2d7 (@twose)
    • Fixed compression in POST request (#2947) (@twose)
    • Fixed compatibility of Websocket->push method (ac7dbcbc) (@twose)
    • Fixed $output result inconsistency (@Yurunsoft) (#2955)
    • Fixed Coroutine::fread (#2958) (@matyhtf)
    • Fixed CoroutineServer can not exit normally #2837 (#2962) (@twose)
    • Fixed memory leak in HTTP2 Server (#2964) (@twose)
    • Fixed unsafe_event (#2970) (@matyhtf)
    • Fixed illegal call after server start (#2977) (@twose)
    • Fixed WebSocketFrame can not enable mask (#2982) (#2983) (@twose)
    • Fixed memory leak of Process callback (898894a7) (@twose)
    • Fixed case where minfd is never updated (#2985)
    • Fixed HTTP2 module is always enable (3925e212) (@twose)
    • Fixed HTTP2 context double free (#2987) (f4cdff1b) (@twose)
    • Fixed string comparison (#2988) (97c6c425) (9e5eae63) (@twose)
    • Fixed HTTP2 pipeline (#2993) (@twose)
    • Fixed coroutine context has been destroyed (#2991) (@twose)
    • Fixed illegal usage of Process::daemon (#3005) (@twose)
    • Fixed compilation without zlib (#3008) (@twose)

    Kernel

    • Refactor swoole_(get|set)_object to the way of extending zend_object (more stable and efficient) (#2966) (@twose)
    • Support Github Actions (@twose) (@matyhtf)
  • mustache 0.9.1
    - PHP 7.4 build fixes (@sunpoet) - Fixed memory leak
  • xhprof 2.1.3
    - Fix s390x accuracy loss #15
  • zookeeper 0.7.2
    Bugs: - Fix segfault due to double free of global callback data (GH PR #35) - Optimize callback-related statements - Fix build error with PHP 7.4 (GH PR #38)

murze.be: Using the `self` return type got better in PHP 7.4

Thanks to the improved type variance in PHP 7.4, the self return type hint is now safe to use in a class that you expect to be overridden (happens a lot in the packages we create)Demo: https://t.co/7vRTaOwRhDRFC: https://t.co/1RpnFIjlKC#php pic.twitter.com/SfAaxRDt4m— Freek Van der Herten (@f...

Branding Heroes: Adding Your Identity into the Hero Area

Brand identity is one of the essential elements of a successful business. Whether you are running a local one-person law firm or you are building a huge empire on the digital expanses, it is your face that speaks volumes.

Every representative office should proudly bear elements of brand identity, and the website is no exception. As a rule, when it comes to online branches, the logo fulfils the role of a company’s uniqueness that visually separates it from the others in consumers’ minds.

Brand colors and mottos quite often underlie the website’s aesthetics as well. However, sometimes that is not enough to create the image of the company and bring home the proper message. Sometimes you need to go the extra mile. And interweaving your brand into the hero area is a way to do it.

Let us consider some characteristic examples.

Fyresite

The simplest way to interweave your brand with the hero area is to feature the element of visual identity right in the heart of the welcome section. Take a look at Fyresite.

Although the solution is incredibly simple, it works like a charm here. All the team did was incorporate a bigger version of the logo into the hero area, completely duplicating it. In this way, they managed to make a statement and show the vibrant, dynamic nature of the agency.

One thing to note, even though the big version of logotype does have a considerable visual weight, the introduction still catches an eye. Well played. Whatever you do, always remember the balance between brand identity and content. Do not to sacrifice the latter.

Example from Fyresite

Olympp

A similar approach is realized on Olympp, though the team has taken it to the next level.

Here, the logo stands behind the entire beauty of the welcome section. It dictates the rules for aesthetics and sets the general tone. You can see how the Greek theme runs through the whole hero area, forcing it mirror the emblem.

The idea is simple. Yet, it not only works, but also impresses.

Example from Olympp

Davis Malm Attorneys

The official website of Davis Malm Attorneys is an absolute classic of brand interweaving. Much like in the previous case, here, the image background takes after the logotype.

However, this time we can see a real image of the mascot. What’s more, the arrangement of the introductory words follow the same path as the nameplate of the firm in the logo. The hero area looks like a logical continuation that contributes to the overall visual identity.

Example from Davis Malm Attorneys 

Keyformat

In essence, this is the same approach that we saw with Davis Malm Attorneys. The background features the real image of the main mascot, a goat. However, the hero area has an entirely different aura and certainly a more playful look.

The reason for that lies in the details. You can see the neon color that is quite trendy, and line style typography – another modern trait. They give the design a frisky and zestful look and at the same time favorably dish up the brand piece.

Example from Keyformat

Authenticff

But it’s not only animals that are appropriate for such solutions, anything can do the trick. Even an abstract logo can be coordinated with the hero area. Consider Authenticff as a case in point.

Here, the logo is a simple triangle with several short lines inside. Unlike the first example in our collection, you won’t see an exact replica. Instead, the team has used an alternative version with a distinctive 3D feeling. They have skillfully abstracted from the style yet still saved the nature and charisma of the emblem.

Example from Authenticff

Purple Bunny

Okay, let us make things a little bit interesting by taking the traditional approach to the next level. We’ll use some creative thinking, a pinch of modern solutions and high-end techniques. Consider Purple Bunny.

The team behind Purple Bunny has gone for the dynamic approach. Their hero area includes not only a full-sized bunny featured in the logo but also a small animation that reveals the playful nature of the mascot.

It occupies the bottom right corner and does not distract the attention from the tagline. It enriches the hero area, contributes to the visual identity and simply lightens up the mood.

Example from Purple Bunny

Digital Design Days

If the cartoonish animation is not your thing, and you are up to a serious, businesslike atmosphere, you can always adapt one of the digitally reproduced techy animations that are increasingly popular these days.

The team behind Digital Design Days shows it in practice. Their logotype can be seen not only in the top left corner but also in the hero area, where it occupies the lion’s share of space. Here, the abstract 3D shape is presented in all its glory, giving users an opportunity to play. What’s more, the nameplate takes up the same position as in the logo. Therefore, you can feel a compositional harmony in every detail.

DDD proves to us that whatever logotype you have; you can quickly build a hero area around it. And, you can end up with an outstanding outcome that will not only contribute to the general aesthetics but also enhance a corporate vision of your company.

Example from Digital Design Days

The Village Films / Athem

These examples are for those who have an eye to detail and adore subtlety and sophistication. In both cases, you can see a delicate integration of brand identity.

For instance, on the official website of Village Films, the logotype is used as a transparent mask located right at the heart of the scene. It is barely visible, yet it is here, and it adds to the overall user experience.

Example from The Village Films

The team behind Anthem does not recreate logotype: they imitate its rhythm. You can see it in the slider, where an image is divided into three slices. Each piece is shifted along the vertical axis to follow the pattern in the logo.

Example from Athem

An Introduction to Your Brand

Logos smartly coordinated with the hero area are a perfect way to strengthen the brand identity and force the website to benefit the entire venture. Not only as online real estate, but also as a piece of visual identity.

Whatever logotype you have, there are various ways to reproduce it in the welcome section. You can use the exact replica like Fyresite, take advantage of its image-based version like the team behind Olympp or even create an animation like Purple Bunny.

The post Branding Heroes: Adding Your Identity into the Hero Area appeared first on Speckyboy Design Magazine.

PHP Inventory Management System with Scanner (New)

Package:
PHP Inventory Management System with Scanner
Summary:
Manage inventory stock using scanner application
Groups:
E-Commerce, PHP 7, Web services, Wireless and Mobile
Author:
Abed Nego Ragil Putra
Description:
This package can be used to manage inventory stock using scanner application...

Read more at https://www.phpclasses.org/package/11418-PHP-Manage-inventory-stock-using-scanner-application.html
Powered by Gewgley