Clean my coffee machine again

I bought a Nespresso coffee machine around November this year, and before that, I had bought an Illy Y.3.2 capsule coffee machine. There are three main considerations, one is that the illy capsule is expensive, the price is about twice as high as the Nespresso coffee capsule, and the other is to try different flavors of coffee.  I buy mainly Starbucks Nespresso coffee capsules, more sour, and fruity flavor is more prominent.

Configure Docker PHP with Xdebug 3

These days I am using LDAP to integrate with an authentication system in the project. So I using the LDAP module. During the use of LDAP, several issues were submitted, I was happy that the maintainer was active in the module, and I was very glad that several patches were merged. One of the patches needs to submit a test at the suggestion of the maintainer.  Since I’ve spent most of the past year writing about theming code, I’ve made a number of changes to the PC development environment, including resetting the laptop.

Installing Arch Linux in my computer

Yesterday I installed ArchLinux on my desktop and the installation was basically smooth. But I’d like to record some basic operations just to make a note. Archlinux Installation Guide is very well documented and is recommended to read. I use the balenaEtcher to flash the iso file to my USB disk. I recommend watching this video to learn the installation process. Some of the content in the video is out of date, and you may not be able to boot the system if you follow the video exactly.

GSoC 2019 Coding Period Week 13

I made a video tutorial Build a Web of Things project using the WoT:API module. This video contains the entire process from enabling the module to lighting the LED. The main demonstration content is as follows: Download the WoT:API module using composer composer require 'drupal/wotapi:1.x-dev' -vvv Enable all modules of the WOTAPI package. Add thing type: Lamp Manage fields » Add field » Thing property:Switch.

GSoC 2019 Coding Period Week 12

I created a route /things/{thing_id}/actions to execute the action that the user requested through the POST. Interface description: Actions resource. To get the most realistic look, I created an Action Example module for testing and a template for creating actions. You can download and enable the sandbox module and add an Action to Thing as mentioned in the last blog post. The sandbox module require a third-party package that is downloaded by the composer:

GSoC 2019 Coding Period Week 11

To enable the user to add a Thing Action to a Thing, I create a custom Thing action field to associate the user-created Thing Action with a Thing. The user needs to create a custom Thing Action and then choose which Thing Action to add when creating a Thing. /** * Fades a multi level switch to a given level over a given duration. * * @WotapiAction( * id = "fade", * access = {"administer site configuration"}, * description = "Fades a multi level switch to a given level over a given duration.

GSoC 2019 Coding Period Week 10

I don’t think actions should be predefined. This is the description of the Action object. 2.11 Action object An action object describes a function which can be carried out on a device. Take a blinking LED on plugged into a Raspberry Pi as an example. I followed the tutorial Blinking LED on Raspberry Pi using Golang and succeeded in making the LED blinking. I need to customize the GPIO pin and set the pin to output mode.

GSoC 2019 Coding Period Week 9

Answer the previous question mentioned in the blog post. How does type restrict the type of field that stores the property value? Remove the `type` item in the Thing property type form. I’ve made some progress. I can get the information from a specific Thing property entity. It contains the field value and storage information. It means it doesn’t need to fill out the value of `type` in the bundle of the Thing property type.

GSoC 2019 Coding Period Week 8

Since the JSON:API code base is very large, after copying the jsonapi module into the wotapi code base, I deleted a lot of things, such as the Query folder, but it was not enough. Cutting out the code base makes it easier for me to move forward. This is one endpoint of the jsonapi to the listing route to get a list of entities. All I need is a Thing Entity, and everything else is indexed to it based on a Thing Entity.

GSoC 2019 Coding Period Week 7

As I mentioned in another blog, I can edit the value of Thing property when creating the Thing entity by Inline Entity Form (IEF). After adding an Entity Reference type of field, commonly used WIDGET is Autocomplete/Autocomplete (tags style) instead of IEF. In the case of points, IEF is used by default after adding a field of entity reference type where the target type is points. So I need to refer to points to implement hook_entity_presave().