Matheus Marabesi website, sharing ideas about software development - Listing posts on page 7

SIM800L tracking your IoT device

After a while testing the GPS NEO6 I ordered a new guy to play around with GSM connection and GPS at the same time. The sensor this time is the SIM800L, which basically is an interface between the SIM card and the Arduino Uno (could be any board, not Arduino Uno only). The version used is the Arduino Uno, so every time you see Arduino in the text I am talking about the Uno version. For purpose of test I started using the Raspberry Pi (model B+) board but ended up with Arduino, the switch is given by the facility...

Setting up GPS NEO 6 sensor

Recently I have had the chance to set up a basic IoT project which consists of localization by GPS. The decision was to work with the Raspberry board over the arduino based on the number os shields that arduino would use. To get start with we would need a Wi-Fi(or GSM) shield, which on raspberry is just an adapter. The second point was the MQTT protocol and the code maintainability. Whereas on arduino is just plain C, with Raspberry we have more options. One could argue that we can use the standard firmata to avoid using C, but just for...

30 days of VIM - One week after

It’s been one week since I adopted vim as my main editor, and this is the second post about this journey. If you haven’t read the first post yet, click here and be happy. First impressions I feel like I have the control over my editor and the navigation is REALLY fast with the w and e letters. The key challenge here (I believe, and I haven’t achieved yet) is to move the navigation from the key arrows (up, down, left and right) to k, j, h and l. As it seems to be weird at first the book Practical...

30 days of VIM

I’ve been looking at vim for quite a while, and now I decided to take it serious. The goal of this series of posts is to write at least one tip that I learned along the way using vim as my main editor. I started with netbeans, which was a good IDE to write PHP code and Java at the same time. After that I switched to PHPStorm, which is a great IDE to code PHP (or should I say web code? - PHPStorm gives an amazing support to write HTML and Javascript as well). Finally I moved to Vscode,...

Introduction to Easy CRUD - Laravel

Lately I had the opportunity to implement a basic CMS in the project that I was working on, unfortunately I had the change but not the time needed to achieve that. What I was looking for: The package must operate Create, Read, Update and Delete operations The package must have a dashboard The package must use Laravel models Besides that the perfect project would be the one that I could use all the models and the existing database tables of my project. Given the scenario I started to search packages that could have something like that, and I found a...

PHPUnit coverage on vagrant

Vagrant is the official tool that Laravel supports in the development stage, which means that you can use vagrant and Homestead to create a simple and powerful environment. Homestead(a box to use with vagrant) has been created to give everything that developers need to run Laravel. Web server, PHP (including extensions), database, cache drivers and so on. To run vagrant you must use a virtualization provider, such as virtualbox and vmware. Installing PHPUnit Homestead doesn’t come with any specific PHPUnit version, which means that you must download yourself the desired version. To keep this post as simple as possible, we...

Queues and slow jobs with Laravel

Queues are commonly used on a daily basis of software development, even the IoT world has an specific protocol that implements this concept. Laravel does the same providing developers with an amazing API. Here, we are going to focus on the theory and practice itself being independent of any vendor such as Amazon or Beanstalk, for that you can check Laravel’s documentation. Basics The first thing to notice is how Laravel handles the configuration part, as usual the configuration part is in the config folder, the file queue.php is the place to set up the details of our service. <?php...

Custom validator with Laravel 5 + (5.0, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8 and 6.0)

Obs: This post assumes that you understand the following topics within the Laravel framework: Routers and controllers. Using default validator rules. What is a service provider and how to use them. Using built-in validator rules Laravel comes with powerful features to validate your data, the official documentation has tons of examples to use. Usually the validation is really straight forward, it takes a request as parameter and the second parameter is an array with all the rules to be validated. <?php namespace App\Http\Controllers; use Illuminate\Http\Request; class BookController extends Controller { /** * @param Request $request data to be validated */...

Is specification important?

Recently during my daily work I started to think about software specifications. The development world is living in the agile era and is even more aggressive with dead and quality. There are two extreme scenarios which we can begin with, the first is a team where developers don’t have documentation at all. The second is the poor documentation, which means that developers usually have something to guide them when coding, but a lot of questions appear during the development process. The best scenario is obviously to have a great document with all the details needed and no change request from...

Intel Galileo and Debian

It’s been a while since we have Intel Galileo board in the market as well as Intel Galileo Gen2, which is a version with performance improvements. Yocto is the official Linux distribution that Intel has chosen to create a full environment where makers can build awesome IoT projects. Unfortunately Yocto does not have a easy learning curve, most of the packages are not up to date and the software repositories offer are restricted. the community as developed other ways to get a Linux distribution running, such as Debian and Ubuntu. Both are used worldwide and is easy to get started....