I’ll show how to write plugins for Nvim using the new Python Plugin API.
This talk will be held at Vimfest 2017 in Berlin. I’ll show how to write plugins for Nvim using the new Python Plugin API. The API is async and wraps the new msgpack. The API is called “Remote Plugin API”.
As an example I will use the plugin neotags, which is my first Nvim plugin using the new API. It’s completely written in Python3 and covered with tests. Of course there are already some tag update plugins out there, but I wanted to try out the new API. Also most of the plugins did not work with my setup, or contain to much code and no tests.
PHP_CodeSniffer is a command line tool allowing to check php, js and css. The main use case is to check code styles like the popular PSR-2. Beside checking coding styles, some communities are already using this tool for further checks like direct access to global variables like
$_POSTinstead of using the provided API, e.g. take a look at Magento PHP_CodeSniffer Coding Standard. Also there is a standard to check compatibility of the code with PHP versions.
Beside this use cases and huge benefits, there is another use case: automated code migrations that can be achieved using PHP_CodeSniffer. In this blog post I will provide the necessary basics and an example how to auto migrate your PHP code using PHP_CodeSniffer.
This post is about the content of the talk and a basic introduction without the hands on.
TYPO3 CMS allows you to build a language menu to enable the frontend user to switch the current language. This menu is generated via TypoScript using optionSplit. Just start a query and take a look at the snippets. This way has one big drawback. In a multi domain setup you have to change the config
We have overcame this issue with one language menu working for all setup on all domains without the need to adjust anything. Read here how to achieve this.
The TYPO3 Developer Days 2016 in Nuremberg took place from 01. Sep to 04. Sep in the youth hostel of Nuremberg. During these days multiple prepared talks were presented, together with a coding night of the Core Team where everyone could jump in.
In this post I’ll recap the event and some talks I’ve participated on. All talks that were recorded during the event are available on Youtube as playlist T3DD16 - TYPO3 Developer Days 2016.
During my contributions in the area of documentation it turns out most developers have so much fun while developing new features. In the end they are proud of their new product, but don’t provide documentation for their users. Users can be further developers extending the original product via an API, or the user interacting with the product via a GUI or CLI. Sometimes they promote their new product, e.g. a new feature. They write a Blog post, tweet about it, talk on conferences, and so on. But no one else can inform himself about the features and much more important if he once get interested, how to use the product or feature.
Reading a magazine, I was confronted with scrapy »an open source and collaborative framework for extracting the data you need from websites. In a fast, simple, yet extensible way.« The framework is written in python and easy to use. You can persist the information in multiple output formats like xml, json, csv and some more. That makes it easy to fetch structured information like TYPO3 Changelog. Also I had highcharts bookmarked for some years now. The interest in how many changes were introduced in each TYPO3 Version, in combination with the type of change, like breaking change or feature, were the missing idea to put everything together.
Hooks inside of TYPO3 CMS allow you to hook into existing processes of the core, or of extensions, to manipulate the processes.
This post will explain in more depth what hooks are and how you can find and use them.
Flow provides different packages, one is the Eel package the embedded expression language. A developer can use Eel to generate a domain specific language, (=DSL). Neos, the CMS built upon Flow, uses Eel to parse parts of their TypoScript 2. Also I’ve heard of one using Eel to generate QR-Codes. Myself has used Eel like Vim auto command for filetype detection. There is a wide range of use cases where Eel can be used.
In this blog post you get a short introduction into the basics to understand how and when to use Eel.
Documentation was never easier, with a Framework like Sphinx and a hoster like Read the docs. All you need is a repository containing your Documentation written with Sphinx and an account at Read the docs. Plantuml can be used in addition to generate UML-Diagrams using plain text. The result can be SVG files in the same color as your Documentation. The whole setup and workflow for that will be explained in this Blog post. After reading the post, you are able to kickstart a new documentation and host it at Read the docs. You then can dig deeper and adjust it to your needs.
TYPO3 ships with a debugging process called DevLog. It’s a function provided by the core and used by many extensions. The main purpose is to log information for debugging. Beside the new Core feature Logging with TYPO3, it’s older and therefore used in more extensions. TYPO3 doesn’t ship with a handler for this function, it’s possible to provide handler via TYPO3’s Hooks mechanism and the popular devlog extension is installed on many TYPO3 installations to have a handler which logs everything to the database and provide a backend module to see the entries. But that’s not necessary, you can register your own, very small handler in your
AdditionalConfiguration.phpor your distribution.
TYPO3 provides some record types like pages, content, files and categories. With this basic set of record types you can build full blown websites containing products, projects, Blog posts, news and many more different content types without the need of any plugins, it’s just configuration in TYPO3.
If you are like me, you have a structured filesystem for your different jobs. E.g. one for your own projects, one for customers, one for learnings, etc. This allows you to set specific options within Vim related to the projects or customers. E.g. if typo3 uses tabs instead of spaces you can configure that for
Projects/typo3/**. And if you want to ignore certain folders like
buildwithin Sphinx installations, but not within e.g. typo3 projects, you can do it like the following.
Tmux is a nice tool. Most people already know screen, and tmux is like screen a terminal multiplexer.
An alternative name for this post could be: I definitely have to learn to take less, or to be happy with less perfectly work. As I had to finish a new feature for one of our customers today, while being at the TYPO3 conference in Amsterdam, I took a look at the time tracking. This feature took five hours of time to be implemented. Everything he requested was to implemented a Newsletter registration with double opt in for a lottery game. Of course the customer already has a registration with double opt in for the newsletter. So the only task I had to do, was to bring the information from lottery form to the newsletter. Sounds like a small deal and it actually was. But where does the time come from?
The first day was all about business with the TYPO3 Award in the evening. One big topic this year on the first day was agile. You could stay the whole day at room onedrop and listen to different aspects and opinions of agile.
There was one talk at the TYPO3 conference this year, with the name “Semantic Annotations within TYPO3 CMS” by Johannes Goslar. The main goal is to prepare content inside TYPO3 CMS with semantic information, so you can deliver it with rich snippets to improve SEO. Beside that, the solution developed offers a way to query all your content by the semantic understanding. Most of us heard about Graphs nowadays, whether from Facebook or Google. They aim to make information understandable by computer and enable users to query information like they normally would in the real world.
Sometimes you need settings like TypoScript in a class which is not your controller. Inside a controller, the Extbase framework already injects the settings for you, so you are able to access them under
If you’re using the OS X build in terminal, you wanna change the colors. The default colors aren’t that nice. Instead of changing them manually and figure out a nice set of colors, just grab an existing color scheme for the app. Here are some links with nice color schemes ready to use for you.
As a dedicated Vim user I’ve collected some links already which I want to share as a list here. This list is dedicated to my team mate @dk2kde. And I recommend walking through them in the order I’ve listed them.
What do your visitors need? Deliver the requested experience. E.G. give them an overview with anchors. Deliver the right information in the right moment. But never ever tell him he don’t need a specific information. You never can cover all use cases. Let the visitor decide what he needs and give him a way to still fetch everything you have on your normal web page.
Even Dropbox has a versioning system that allows you to restore deleted files and folders or revert an older version of a file. What a nice feature. But you can have it even without Dropbox for your local file management. Just try one of the modern version system. There are even nice GUI applications for them so it’s easy to use and setup.
The TYPO3 Documentation Team makes a great job. Each feature is as good as it’s documentation. Whether inside the code or as HTML or plain text format.
You often have to merge some storage pids inside your static TypoScript setup of an extension.
Since TYPO3 4.5 it’s possible to use the new XLIFF-Format for translation. There is a very nice article about the differences and usage in the internet. Take a look at it. After reading I had some more question. I’ll try to answer them now in this post.
I don’t know why there are so many articles about installing ImageMagick on a Mac for TYPO3. All you have to do is to install Homebrew (The missing package manager for OS X). After installing (this takes 1 Minute), just run:
I found out how to start the built in Apache in Mac OS X Lion (10.7.x) with standard configuration.
We first need the array we want to sort (here called
arrayToSort). Secondly we need a second array containing the values we want to sort. In this case our names. I called the array
Therefore I had to add the CSS- and JS-Files to the Theme. This is done by adding the following lines of code to the method “initPage” of the theme-file:
I don’t like to use the eID mechanism, because I have to instantiate everything on my own (db-connection, feuser,...)
You often need to debug your SQL-Statements. That isn’t difficult, because TYPO3 give you easy to use functions for this situation: