10 Best SVG Filter Resources & Tutorials

SVG or Scalable Vector Graphics have one serious advantage over the regular image formats: they are infinitely scalable which means there is no degradation of quality no matter how big or how small you make the image.

However, SVG is not only used for images. You can use SVG filters to manipulate images and text and apply cool effects. In this post, we’ve gathered the most interesting SVG filters and SVG filter tutorials that you can study and then apply to your designs.

You might also like: CSS Image Filter Libraries & Tools.

SVG Filters 101

The first tutorial on the list is a great introductory material to SVG filters. This tutorial walks you through the process of using SVG filters in your own designs and is a part of a larger series that goes more in-depth about SVG filters.

SVG Filters 101 Tutorial

The Art Of SVG Filters

This article by Smashing Magazine takes a deep dive into the world of SVG filters and explains why you should be using them in your own designs. It also includes some basic examples of SVG filters applied to various text elements.

The Art Of SVG Filters Tutorial

SVG Filters on Text

This is another tutorial that shows you how to apply SVG filters to your text. The tutorial walks you through the process of creating an SVG filter and even shares a tool that makes creating SVG filters a lot easier.

SVG Drop Shadows

This quick little code snippet will allow you to add a drop shadow to any object on your page. It shows you how the filter works and then provides a code example that you can modify to your liking.

SVG Drop Shadows Tutorial

SVG Blur Effects

Similarly to the example above, this code snippet teaches you how to reproduce blur effects on your images using SVG filters. You can modify the code and play around with your options to learn how it works then apply it to your designs.

SVG Blur Effects Filter Tutorial

The Gooey Effect

With this tutorial, you’ll learn how to create a cool and unique effect and apply it to a menu. This SVG filter is sure to make your project stand out so be sure to check out the tutorial and learn how to apply this effect to your designs.

The Gooey Effect SVG Filter Tutorial

SVG Filters

Although not a tutorial, this resource lists all the necessary elements for SVG filters and serves as a great reference point when you’re ready to experiment with them in your own designs. What follows is a reference list of various SVG filters that can be applied to text, images, and more.

Masked Blur Effect

Learn how to create an interesting masked blur effect in this tutorial. A great way to spice up your header elements or your parallax sections on a website.

Masked Blur Effect SVG Filter Tutorial

Practical SVG Filters

This is another in-depth tutorial that gives you a nice overview of what SVG filters are and how to use them. It even includes practical examples that you can immediately apply to your designs.

SVG Light Source Filter Tutorial

If you want to apply a cool lighting effect to your design, don’t skip this tutorial. You will learn how to apply a lighting effect and manipulate it using three different lighting effects.

SVG Light Source Filter Tutorial SVG Filter Tutorial

Conclusion

SVG filters provide a rich set of filters that can add depth to any design. What’s more, you can apply them on any DOM element using the <filter> tags so take advantage of the tutorials in this post and master SVG filters for your own designs.

The post 10 Best SVG Filter Resources & Tutorials appeared first on Speckyboy Design Magazine.

Derick Rethans: Xdebug Update: June 2019

  Xdebug Update: June 2019 
   
     London, UK 
    Tuesday, July 9th 2019, 09:34 BST 
   
  This is another of the monthly update reports in which I explain what happened with Xdebug development in this past month. It will be published on the first Tuesday after...

php|architect: Find the Way With Elasticsearch

How are you going to find that? You don’t want to implement a search engine on your own as your content grows or integrate with real-world places and addresses. Instead, leverage the rich feature set of an established solution like ElasticSearch. This month we look at how to integrate it with y...

PHP: Hypertext Preprocessor: PHP 7.2.20 Released

The PHP development team announces the immediate availability of PHP 7.2.20. This is a bugfix release.All PHP 7.2 users are encouraged to upgrade to this version.For source downloads of PHP 7.2.20 please visit our downloads page, Windows source and binaries can be found on windows.php.net/download/....

501 Not Implemented

A server can return 501 Not Implemented when it doesn’t support a certain feature.

The RFC specifically lists ‘not supporting a specific HTTP method on any resource’ as an example of this.

In most practical cases this is similar enough to 405 Method Not Allowed, and 405 is probably the clearer status code for most cases.

But there is a difference. Given that 5xx are server-side errors and 4xx errors are client-side errors, it could be argued that emitting a 405 means that a method should never really have been called by a client, but a 501 could mean that the method should have worked, but the server has incomplete functionality.

I sometimes use 501 during development of new API’s as a ‘stub response’ for features I intend to build, but haven’t built yet.

Example

HTTP/1.1 501 Not Implemented
Content-Type text/html

<img src="http://geocities.example/work-in-progress.gif" />

References

Community News: Latest PECL Releases (07.09.2019)

Latest PECL Releases:

  • rdkafka 3.1.2
    * Fix build

  • ahocorasick 0.0.7
    Issue #21 fixed. Problem with buffering all previous searches in the trie.
  • swoole 4.4.0
    Backward incompatible changes ---
    • Consistent with PHP official, no longer supports PHP7.0 (@matyhtf)
    • Remove the Serialize module, which is maintained in a separate ext-serialize extension. Reason: Due to frequent changes to the PHP kernel, stability cannot be guaranteed
    • Remove the PostgreSQL module and maintain it in a separate ext-postgresql extension. Reason: PostgreSQL uses asynchronous ways in the kernel and lacks the necessary unit tests to guarantee quality
    • Runtime::enableCoroutine is no longer automatically compatible with the internal and external environment of the Coroutine. Once enabled, all blocking operations must be called in the Coroutine (@matyhtf)
    • Due to the introduction of the new CoroutineMySQL client driver, the underlying design is more standardized, but there are some small downward incompatible changes
      • CoroutineMySQL-&gt;fetch/nextResult is optimized for on-demand reads, which will trigger IO scheduling
      • When the defer attribute is on, the request of statement needs to use statement-&gt;recv to receive the response
      • When the defer/fetch_mode feature is enabled, if there is unreceived data, a new request will be banned
      • Unlike asynchronous, the connected attribute is no longer updated based on events in real-time (It's not reliable) but is updated after the IO operation fails
    • CoroutineHttpClient-&gt;set_cookie_headers no longer have key names (#2664) (@twose)

    Deprecated content

    • The Buffer module will be discarded. Reason: It is highly replaceable and has low usage. It can be replaced by PHP string or fopen(&quot;memory&quot;)
    • The Lock module will be discarded. Reason for discarding: There may be problems with locking in the Coroutine. You can use Chan to implement the Lock of the Coroutine version
    • Since async stream_socket_pair is introduced, it is recommended to enable the hook by flag SWOOLE_HOOK_STREAM_FUNCTION instead of SWOOLE_HOOK_STREAM_SELECT

    New features

    • Added Library, using pure PHP to write kernel functions instead of C/C++, providing the following features
      • Added high quality PHP module CoroutineWaitGroup (@twose)
      • Use the PHP code to implement the CURL hook, one-click to make the CURL non-blocking, currently the experimental feature, you need to call Runtime::enableCoroutine(SWOOLE_HOOK_CURL) to open (@matyhtf) (@Yurunsoft)
      • Use PHP code to implement exec/shell_exec of Coroutine version (#2657) (@Yurunsof)
      • When RuntimeHook is turned on, the function array_walk, array_walk_recursive will be replaced by the version of Swoole, which will solve the problem that the native function cannot be reentrant, but it will not be able to traverse object (@matyhtf) (@twose)
    • Added a new Coroutine Preemptive Scheduler to prevent the Coroutine from taking too long CPU time to cause other Coroutine to starve. Open the swoole.enable_preemptive_scheduler = On by php.ini. For details, see preemptive_scheduler (@shiguangqi)
    • Added Timer::list() to get TimerIterator, which can traverse all timers, TimerclearAll clears all timers, Timerinfo(int $id) gets timer information, Timer::stats() gets the global timer status (#2498) (@twose)
    • Added two methods getOption and setOption for CoroutineSocket (9d13c29) (@matyhtf)
    • Added $master_pid property and shutdown method to ProcessPool (a1d6eaa) (@matyhtf)
    • Added the 4th parameter of the constructor of ProcessPool, when true, the underlying layer will automatically create the Coroutine in the onWorkerStart callback (8ceb32cd) (@matyhtf)
    • Support non-blocking stream_socket_pair in Runtime hook (#2546) (@matyhtf)
    • Added static_handler_locations setting of HttpServer to set static file path (@matyhtf)
    • Added CoroutineHttpClient-&gt;setBasciAuth method to automatically send Authorization header (#2542) (@hongbshi)
    • Added CoroutineHttp2Client-&gt;ping method (40041f6) (@shiguangqi)
    • Added task_use_object (#2659) (aa01317) (@twose)

    Enhancement

    • New CoroutineMySQLClient driver (#2538) (@twose)
      • The underlying programming mode using C++ and Coroutine (sync writing, async performance)
      • Support SSL connection (configure [&#039;ssl&#039; =&gt; true] when connect)
      • Support request with large data (unlimited)
      • Support response with large data (unlimited)
      • Support fetch to read by line (now fetch is read on demand, data without fetch does not consume user memory) (#2106)
      • Support nextResult read on demand (ibid)
      • Optimized protocol parser
      • date related type decimal precision support
      • Error code and information are consistent with PDO/mysqli
    • CoroutineRedis compatibility mode, enabled by $redis-&gt;set([&#039;compatibility_mode&#039; =&gt; true]), which can make the result of hmGet/hGetAll/zRange/zRevRange/zRangeByScore/zRevRangeByScore consistent with phpredis (#2529) (@caohao-php)
    • Now 100K Coroutine are allowed to exist at the same time by default (c69d320b) (@twose)
    • Support bailout (can exit the process correctly when a fatal error occurs in the Coroutine) (#2579) (@twose)
    • Server can display a friendly 400/404/503 when error occurred (@matyhtf) (f3f2be9d)
    • Server enable reload_async and send_yield by default (#2555) (9d4a4c47) (@matyhtf)
    • Server-&gt;onFinish callback is in Coroutine (@twose)
    • CoroutineHttpClient enable websocket_mask by default (c02f4f85) (@twose)
    • Scheduling operation of Channel outside the Coroutine is no longer allowed (519b6043) (@twose)
    • WebSocketServer will close the connection when the handshake fails (#2510) (@twose)
    • Under the Linux, the dead parent process will automatically send a signal to kill the child process (4b833a3d) (@matyhtf)
    • Memory optimization of Socket-&gt;recv (642a3552) (@twose)
    • Floating point calculation optimization (#2572) (@tangl163)
    • All built-in classes prohibit cloning/serializing/unseting-declared-properties (f9c974b8) (@twose)
    • Server-&gt;bind will generate a warning and return false when uid is more than UINT32_MAX
    • Support PHP7.4 (#2506) (@twose)

    Fixed

    • Fixed getProcess of ProcessPool (#2522) (@matyhtf)
    • Fixed a bug that exceptions were ignored in some special cases (@twose)
    • Fixed memory leak by timer after fork process (8f3abee7) (@twose)
    • Fixed timezone on non-Linux systems (#2584) (@devnexen)
    • Fixed enable_coroutine=false + task_enable_coroutine=true (#2585) (@matyhtf)
    • Fixed Http2's trailer method can not output a empty value header (#2578) (@twose)
    • Fixed CoroutineHttpClient-&gt;setCookies memory error in special cases (#2644) (@Yurunsoft)
    • Fixed #2639 (#2656) (@mabu233)
    • Fixed arginfo_swoole_process_pool_getProcess (#2658) (@mabu233)
    • Fixed static_handler does not support soft links (@matyhtf)
    • Fixed a bug (I don't know how to describe it) (22504dd4) (@matyhtf)
    • Fixed Server-&gt;getClientInfo error (#2639) (@matyhtf)
    • Fixed an illegal operation of the same Socket with multiple Coroutine operations (#2661) (@twose)
    • Fixed swoole_table iterator coredump (#2663) (@mabu233)

    Coroutine scheduler ?

    • Added SwooleCoroutineScheduler class as the entry for the cli script, replacing go() + SwooleEvent::wait()
    • Added SwooleCoroutineRun function to provide wrapper for SwooleCoroutineScheduler
    • go() + SwooleEvent::wait() may be deprecated

    Internal

    • Continuous underlying code quality optimization work (@swoole)
    • More unit tests, and use the assertion library swoole/assert based on webmozart/assert secondary development (@twose)
    • Completely abolish the Windows support plan
    • CoroutineHttp2Client refactor (f64874c3) (@matyhtf)
    • The faster callback function caller (@twose)

    Experimental content

    • May add CoroutineServer and CoroutineHttpServer in 5.0
  • solr 2.5.0
    - Atomic Updates (partials) - Simple Optimistic Concurrency - Compatibility with PHP 7.1, 7.2, 7.3, latest 7.4 - Enable gzip encoding if server supports it - Fix Real Time Get requests fails if it wasn't the first request - Fix addQueryField return wrong query - Fix Solr Extension build fail with curl 7.19+
  • gRPC 1.22.0
    - gRPC C Core 1.22 update
  • rdkafka 3.1.1
    * Expose query watermark offsets (#219, @gytislakavicius) * Support sending timestamp (epoch ms) in producev (#228, @lkm) * Fix KafkaTopic::producev causing segfault on librdkafka 1.0.0 (#222, @Steveb-p) * Fix version parsing (#224, @dariuskasiulevicius)
  • datadog_trace 0.29.0
    ### Fixed - Edge case where the extension version and userland version can get out of sync #488

    Changed

    • Prefix hostnames as service names with host- to ensure compatibility with the Agent #490
Powered by Gewgley