PHP 7.1.0 Release Announcement
Sat, 03 Dec 2016 14:46:16 +0100
#^PHP: PHP 7.1.0 Release Announcement
The #PHP development team announces the immediate availability of PHP 7.1.0. This release is the first point release in the 7.x series.
PHP 7.1.0 comes with numerous improvements and new features such as
* Nullable types
* Void return type
* Iterable pseudo-type
* Class constant visiblity modifiers
* Square bracket syntax for list() and the ability to specify keys in list()
* Catching multiple exceptions types
What’s a change log?
Thu, 10 Nov 2016 10:02:19 +0100
#^Keep a CHANGELOG
Don’t let your friends dump git logs into CHANGELOGs™
What makes a good change log?
I’m glad you asked.
A good change log sticks to these principles:
It’s made for humans, not machines, so legibility is crucial.
Easy to link to any section (hence Markdown over plain text).
One sub-section per version.
List releases in reverse-chronological order (newest on top).
Write all dates in YYYY-MM-DD format. (Example: 2012-06-02 for June 2nd, 2012.) It’s international, sensible, and language-independent.
Explicitly mention whether the project follows Semantic Versioning.
Each version should:
List its release date in the above format.
Group changes to describe their impact on the project, as follows:
Added for new features.
Changed for changes in existing functionality.
Deprecated for once-stable features removed in upcoming releases.
Removed for deprecated features removed in this release.
Fixed for any bug fixes.
Security to invite users to upgrade in case of vulnerabilities.
PWA
Mon, 17 Oct 2016 20:11:17 +0200
#^Chris Wilson - Progressive Web Apps is the new Ajax.
This is a transformative moment for the web. The revolution that is happening now is no less revolutionary than what happened a decade ago with Ajax - we can finally build reliable, fast and engaging apps on web technologies. In this talk, I'll dive into the what, why and how of Progressive Web Apps - describe what a "Progressive Web App" really is, show the opportunities in building them, and point you on your way to becoming a Progressive Web App developer.
Need a Dependency Injection?
Sat, 15 Oct 2016 11:28:25 +0200
Any experiences with dependency injection containers like PHP-DI, Pimple, Dice, Aura.Di, Orno/Di?
#Service Container #Dependency Injection #Lacy Loading #DI
#Service Container #Dependency Injection #Lacy Loading #DI
Asterisk
Fri, 26 Aug 2016 14:07:27 +0200
Don't expect a .gitattributes in your root folder to have any effect. I had an entry to treat .sqlite files as binary:
But what I got was:
File content identification used by #Git in index and working tree are binary/no normalization (i/-text w/-text). But when checking out or committing there is normalization (attr/text eol=lf). But therefore I have a .gitattributes, are you kidding me?
Took quite a long time to find out the problem. Further down in the tree was another .gitattributes. Actually no problem, as long as you don't use something like:
*.sqlite binary
But what I got was:
$ git ls-files --eol docroot\sites\default\files\.ht.sqlite
i/-text w/-text attr/text eol=lf docroot/sites/default/files/.ht.sqlite
File content identification used by #Git in index and working tree are binary/no normalization (i/-text w/-text). But when checking out or committing there is normalization (attr/text eol=lf). But therefore I have a .gitattributes, are you kidding me?
Took quite a long time to find out the problem. Further down in the tree was another .gitattributes. Actually no problem, as long as you don't use something like:
* text=auto eol=lf
What’s wrong with pagination?
Fri, 19 Aug 2016 17:00:46 +0200
Why Most Programmers Get Pagination Wrong
This is always amusing:
Pagination is one of those things that almost everyone gets wrong for two reasons:
User experience
Database performance
Here’s why...
TL;DR: OFFSET pagination bad. Keyset pagination good.
This is always amusing:
Due to Oracle license restrictions, we cannot publish benchmark results here, comparing Oracle with PostgreSQL
Permissions API
Wed, 29 Jun 2016 23:10:38 +0200 last edited: Wed, 29 Jun 2016 23:11:58 +0200
Permissions API
Many of the functionalities that we're translated from mobile to the web require permission from the user. Think about geolocation, audio/video access (think getUserMedia for camera access), and likewise APIs. We can probably all agree that requiring permission for access to these APIs is a good thing, but I see a problem: there's sometimes no way to access each APIs permission level without triggering a request to the user to get that information. Obtrusive to say the least!
// Get the geolocation status (starts out as "prompt")
// ... meaning the user will be shown an access request if we want it
navigator.permissions.query({ name: 'geolocation' }).then(function(result) {
/* result.status = "prompt" */
});
// Request geolocation access if we really want it
navigator.geolocation.getCurrentPosition(function(result) { /* ... */ })
// Assuming the user requested access, the permission is now "granted"
navigator.permissions.query({ name: 'geolocation' }).then(function(result) {
/* result.status = "granted" */
});
// Push notifications require options:
navigator.permissions.query({ name: 'push', userVisibleOnly:true }).then(function(result) { /* ... */ });
Fear-Driven Versioning
Fri, 05 Feb 2016 18:46:37 +0100
#^jonathanong/ferver - fe(a)rver - versioning for those of us who only care about breaking changes
Fe(a)rVer - a versioning scheme for those of us who only care about breaking changes. This is similar to semver and uses the same operators like ~ and ^, but has slightly different as well as stricter semantics.
The primary differences are:
* No patch version bumps are allowed for any changes that have a possibility of being a breaking change.
* "minor" breaking changes are allowed in minor version bumps.
Fluent In 60-Year-Old Code
Sun, 01 Nov 2015 20:34:34 +0100
#^Why NASA Needs a Programmer Fluent In 60-Year-Old Code
To keep the Voyager 1 and 2 crafts going, NASA's new hire has to know FORTRAN and assembly languages.
Understanding Doxygen
Mon, 23 Mar 2015 00:47:38 +0100 last edited: Mon, 23 Mar 2015 00:48:06 +0100
Spent the whole evening with the Doxygen source code. There is a small bug in the PHP namespace export for tagfiles. The HTML export is correct, but the tagfiles export uses a wrong format so links to external library documentations don't work.
But unfortunately I still have no idea how this monster works.
#^doxygen/doxygen
But unfortunately I still have no idea how this monster works.
#^doxygen/doxygen
Official doxygen git repository
gem of death
Thu, 12 Mar 2015 19:48:41 +0100
How can people work with #ruby actually? Or am I the only one who is fucked every time using some ruby gems?
This morning I did a vagrant destroy; vagrant up which provisions among other things a ruby tool (mailcatcher) and everything worked.
I did a vagrant destroy; vagrant up this afternoon and suddenly the ruby program don't want to install anymore because some gems are not compatible anymore with the rest. WTF?!?
This morning I did a vagrant destroy; vagrant up which provisions among other things a ruby tool (mailcatcher) and everything worked.
I did a vagrant destroy; vagrant up this afternoon and suddenly the ruby program don't want to install anymore because some gems are not compatible anymore with the rest. WTF?!?
EyeDrops
Sun, 11 Jan 2015 11:35:09 +0100
Already often saw these camel and beer bottles Perl scripts, this is how they get created.
#^Acme::EyeDrops - search.cpan.org
#^Acme::EyeDrops - search.cpan.org
Acme::EyeDrops - Visual Programming in Perl Acme::EyeDrops converts a Perl program into an equivalent one, but without all those unsightly letters and numbers. In a Visual Programming breakthrough, EyeDrops allows you to pour the generated program into various shapes, such as UML diagrams, enabling you to instantly understand how the program works ...
Ur/Web
Sun, 04 Jan 2015 22:45:48 +0100
#^The Ur Programming Language Family
Ur is a programming language in the tradition of ML and Haskell, but featuring a significantly richer type system. Ur is functional, pure, statically typed, and strict. Ur supports a powerful kind of metaprogramming based on row types.
Ur/Web is Ur plus a special standard library and associated rules for parsing and optimization. Ur/Web supports construction of dynamic web applications backed by SQL databases. The signature of the standard library is such that well-typed Ur/Web programs "don't go wrong" in a very broad sense. Not only do they not crash during particular page generations, but they also may not:
* Suffer from any kinds of code-injection attacks
* Return invalid HTML
* Contain dead intra-application links
* Have mismatches between HTML forms and the fields expected by their handlers
* Include client-side code that makes incorrect assumptions about the "AJAX"-style services that the remote web server provides
* Attempt invalid SQL queries
* Use improper marshaling or unmarshaling in communication with SQL databases or between browsers and web servers
This type safety is just the foundation of the Ur/Web methodology. It is also possible to use metaprogramming to build significant application pieces by analysis of type structure. For instance, the demo includes an ML-style functor for building an admin interface for an arbitrary SQL table. The type system guarantees that the admin interface sub-application that comes out will always be free of the above-listed bugs, no matter which well-typed table description is given as input.
TYPO3 CMS 7 will require PHP 5.5
Mon, 17 Nov 2014 10:56:46 +0100
Somehow it is quite irritating the huge difference between which #PHP version is still used and which PHP versions are still officially supported.
#^PHP minimum requirements for TYPO3 CMS 7
#^PHP minimum requirements for TYPO3 CMS 7
The next major version of TYPO3 CMS will be called 7 and will have PHP version 5.5 as its minimum PHP version. We consider this step vitally important to our new release strategy for several reasons.
How to make a computer
Thu, 09 Oct 2014 23:10:56 +0200
My daughter turns 6 next month. I think I found the perfect present for her (and me)
#^Kano - How to make a computer
www.kano.me
#^Kano - How to make a computer
Kano creates simple, fun computer kits that anyone can make – perfect for kids of all ages.
www.kano.me
Feel welcome to Ruby
Tue, 07 Oct 2014 16:28:10 +0200
I should feel pity for everyone who has to work with #Ruby and rubygems. What a fucking dependency and incompatibility hell.
I used to install mailcatcher through gem install in my Vagrant provisioning scripts for a long time. Suddenly a dependency requires a newer Ruby version than what is available on CentOS6. On CentOS7 it still works, but installs another dependent package in a version that causes Encoding::CompatibilityErrors. Installing an older version of the package and everything is fine. And yet another runtime dependency is not installed by gem and needs to be installed manually. Oh and in CentOS6 gem installs it to /usr/bin in CentOS7 suddenly to /usr/local/bin #WTF?!?
At least I can handle all this in a Puppet module and reuse it, but why must these scripts get so fucked up?
I used to install mailcatcher through gem install in my Vagrant provisioning scripts for a long time. Suddenly a dependency requires a newer Ruby version than what is available on CentOS6. On CentOS7 it still works, but installs another dependent package in a version that causes Encoding::CompatibilityErrors. Installing an older version of the package and everything is fine. And yet another runtime dependency is not installed by gem and needs to be installed manually. Oh and in CentOS6 gem installs it to /usr/bin in CentOS7 suddenly to /usr/local/bin #WTF?!?
At least I can handle all this in a Puppet module and reuse it, but why must these scripts get so fucked up?
Why you should use document.readyState
Tue, 30 Sep 2014 17:56:53 +0200
#^Onload in Onload | High Performance Web Sites
I asked several web devs what happens if an onload handler adds another onload handler. Does the second onload handler execute? The onload event has already fired, so it might be too late for the second onload to get triggered. On the other hand, the onload phase isn’t over (we’re between loadEventStart and loadEventEnd in Navigation Timing ter...
Luna
Wed, 25 Jun 2014 20:58:57 +0200
#^http://www.eclipse.org/luna/
Eclipse Luna includes official support for Java 8 in the Java development tools, Plug-in Development Tools, Object Teams, Eclipse Communication Framework, Maven integration, Xtext, Xtend, Web Tools Platform, and Memory Analyzer.
This website is tracked using the Piwik analytics tool. If you do not want that your visits are logged this way you can set a cookie to prevent Piwik from tracking further visits of the site (opt-out).