Buffer your life

It’s quite hard to realize how much chance we have at some moments in life. Our focus is on daily routings work and family.

We are non stop working more than 8h a day, and my feeling is that the job once you are off the network, you don’t disconnect right away. It takes quite a while to disconnect totally.

It’s like when you go on PTO, you always have a delay of a couple days before you can say that you have totally disconnected. Is this sensation the result of realizing that we feel great, happy and well positioned in a company?

Probably yes… there are so much to think about and especially there are so much things to think about on a day to day basis. We’d like to cover it all in a timely manner to free up some mind space but it’s impossible within 24h. You have the work time 8h and 8h of sleep. It’s 8h of free space!

Goal is to optimize most of your time on those 8h to get maximum peace of mind time. So you get automation within your life and add convenience as much as you can to reduce chores.

There is a famous citation saying: what is important is not quantity but quality. Quality falls into happiness when time is optimized as much as you can. Getting quality takes time.

The challenge is to anticipate the unanticipated. Easy to say but hard to do.

One thing that I’ve learn a while back when I was a student for being a Project Manager at HETIC school, is to create buffer spaces within the projects. It has a cost for companies. That usually a problem for companies as they prefer to name it differently as it’s seen as lost time not spent by the people that would be working on the projects to accomplish it.

In a family context it’s hardly applicable due to a human behavior discipline. Even on a couple relationships, discipline is sometimes overdriven by some noise tasks surrounding us.

Peace of mind is quite important in our lives at work and at home to lead to happiness. Mindfulness time is required in our daily life to have time to think about our day, month, accomplishments, feelings, sharing, caring moments. Buffer could be a solution. We sometime don’t want to create those moments as we don’t see any value – like a company – but this is the key to happiness from my point of view.

This is an essay on life.

Crée ton propre Netflix local avec la Freebox Delta

Objectif

Créer un Netflix-like sécurisé accessible depuis l’extérieur avec la possibilité de télécharger automatiquement les films/séries. Merci Swizzin.
Swizzin Logo

Pré-requis

  • Nom de domaine
  • Compte CloudFlare (idéalement le nom de domaine est déjà lié)
  • Freebox Delta
  • Postman

À installer

  • Radarr
  • Lidarr
  • Readarr
  • Jackett
  • Jellyfin
  • Let’s Encrypt
  • Panel
  • FFMpeg
  • Jellyseer (optionnel)

Préparation de la freebox

Depuis votre navigateur, aller sur https://mafreebox.freebox.fr/.

Vérifier dans “Paramètres de la freebox” > (Mode avancé) > Partage de Fichier / Partages Windows

  • Activer SMB2/SMB3
  • Activer le partage de fichier

Étapes

Installation de la VM

  1. Aller sur VM -> Ajouter une VM
    • Nom: “Swizzin
    • CPU: “2
    • RAM: Autant que vous pouvez (Possible de remplacer par plus de RAM)
    • Sélectionner “Choisir un système d’exploitation pré-installé parmi une liste
  2. Cliquer sur “Suivant
    • Système pré-installé: “Debian 11 (Bullseye)
    • Utilisateur par défaut: “freebox
    • Clé SSH: <votercléSSHk> (Linux/Mac command to retrieve key: pbcopy < ~/.ssh/id_rsa.pub)
    • Cocher “Accès aux disques Freebox
  3. Cliquer sur “Suivant
    • Choisissez l’espace que vous souhaitez allouer (42 par défaut semble largement suffisant). Les films et séries seront télécharger depuis l’interface Freebox donc les médias ne sont pas stocker sur la VM.
    • Une fois que c’est terminé de télécharger, cliquer “Terminer
  4. On peut maintenant “Allumer” la VM
  5. Attendre un peu que la VM ce lance et exécute tous les scripts cloud-init puis l’IP de la machine doit apparaître dans l’encart “État”
  6. Toujours dans l’onglet VM, cliquer sur Réseau > Configurer une redirection de port
    • Port de début : 443
    • Port de fin : 443
    • Port de destination : 443

Installation de Swizzin, applications et domaine

  1. Se connecter en SSH avec son Terminal (Linux/MacOS) ou Putty (Windows) “ssh freebox@<votreIPetape5>
  2. Une fois connecté et authentifier en tant que user: freebox, on change le mot de passe root: “sudo passwd
  3. Ensuite on s’authentifie en root, “su –
  4. Tape la commande : “bash <(curl -sL s5n.sh) && . ~/.bashrc
  5. Après quelques seconds/minutes, il y a l’assistant qui ce lance
  6. Valider “OK”
  7. Mettez un “username”
  8. Laisser le mot de passe vide il va vous en générer un
  9. Copier ce mot de passe et stocker-le précieusement
  10. Il demande si vous l’avez bien sauvegardé. Confirmer.
  11. Dans la liste sélectionner : radarr lidarr readarr jacket jellyfin let’sencrypt panel ffmpeg
  12. Puis valider
  13. Suivez les instructions pour Let’s encrypt (domain, Y, Y, Y API token, email), done!

Changer les permissions d’accès SMB au dossier de nos vidéos

  • Lancer la commande “sudo nano /etc/fstab
  • Changer la ligne où il y a le network mapping en prenant soin de changer uniquement la partie à partir de guest: “rw,guest,uid=1001,gid=1001,comment=cloudconfig”
  • Sauvegarder le fichier (CTRL+X, Y)
  • Lancer la commande “sudo umount /mnt/*
  • Lancer la commande “sudo mount -a

Voilà. Vous avez tout ce qu’il faut désormais pour télécharger, gérer et visionner vos films/séries via une seule et même interface.

Ad blocker for all your devices everywhere with Pi-Hole + WireGuard

PiHole + Unbound + WireGuard on Raspberry Pi

On my previous article I’ve been disabling my ad-blocker to feel like a vanilla user with no experience at all in using a computer and it was a catastrophe experience on a vast majority of websites I was browsing.

Instead of a simple extension on your browser which will use computing resources, slow page rendering, you can go to a more radical way with Pi-Hole.

PiHole powerful DNS server for filtering your network

This will cost you at most 50 € with a Raspberry Pi 3 for a lifetime efficient ad/social/whatever you want blocker!

Pi-Hole is a network wide ad blocking application that filter all the traffic from your network and delivers it through a DNS server. So instead of taking some heavy resources on your computer with a browser ad blocker like uBlock Origin or LuLu as a blocker for computer wise network filtering, you get it on your full network! How handy!

What are the pros:

  • Full network filtering: which means that all your devices at home will be filtered. Even if some friends and family joins
  • Increase Internet speed: yep! True and verified. As you’ll cut all trackers/ads/and other unwanted traffic, your pages will load at least 2 times faster on most cases. You can even do some page loading comparison to check. Make sure you are connected to a 1 Gb/s Ethernet cable for optimum speed
  • Mobile through VPN: you can filter your traffic as well on your other devices that supports VPN’s. This will enable you to move with your filtering rules everywhere you go.

The couple Pi-Hole + WireGuard (VPN) is a great combination to keep battery usage low on your mobile phones while being connected to your PiHole.

Quick list of tutorials about PiHole and WireGuard setup:

I turned off my ad blocker after 10 years

uBlockPlus

And believe me, Internet is clearly in danger.

This happened just a few weeks ago while at work at the office, a colleague asked me an information that I knew exactly where it was on the company network. So, I’ve triggered quickly my bookmark shortcut to get straight to the information requested. It was a Confluence page which I’ve checked quickly regarding the quality of information and then promptly shared it to my colleague on Slack.

After moving to his desk for discussing about this topic I started to heard my CPU reaching the moon! Why? After closing my Confluence page it was back to normal but I wanted to know why my colleagues didn’t have this issue. After reading that this could be caused by some Chrome extension, I deactivate one by one while monitoring CPU usage through Chrome task manager.

Boom! Virgin Chrome! Problem solved!

Then forgot about reactivating my extensions one by one as I was navigating on corporate network websites (without ads). Surprisingly, my navigation was fluid and extremely speed. I was like a kid discovering a new optic fiber connection on my brand new computer back in 2010. But my excitement just dropped once I started to get on all websites I was regularly following…

Nytimes

Wow! How can you read consciously an article without being polluted visually while reading? Wait! Can we still talk about reading? The pattern used by the journal is extremely disturbing.

Le Huffington Post lots of distractions

YouTube

I’m a heavy consumer and early adopter of YouTube content. There are so much interesting educational videos on YouTube that I can almost not live without it anymore. I know advertising help content producer to make a living of it but there must be another way. Donations should be the solution, not agressive and EXTREMELY repetitive ads! Moreover, some friends are giving away their phone to their kids and they watch those advertising over and over. Not good at all either from an educational point of view.

Conclusion

After a few weeks using no ad blocker, I started to see what web was alike for my parents and for my step parents. Tricky ads hidden similarly to some content, very eye catchy banner, extreme tracking obviously which target with a sniper accuracy product they searched for.

But there is one thing that I noticed the most, it’s the waste of time! At work, it honestly impacted my productivity due to required scrolling, frenetic clicking crosses, video ads that you can’t skip and visual agression that you constantly have along the day.

Full automated website experimentation with a static site generator

Static Site Generator workflow

Lately, we’ve see a lot of static site generator tools being created by a lot of talented developers. At first sigh, you might be skeptical about the usage you could take of it. Most of the time this is advertise for a blog usage, or just a single page website. But personally, I see a lot of potential in it, you can for example create a ad listing website with a form on each ad submitted by users, you can create a full e-commerce website or you can create a full tube site. For experimentation purpose, I’ve tried to create a full tube site in full static mode + tried to automatise the content generation at it’s maximum.

What really gives all values to static sites are the side online services that could enrich drastically all the power of a single website into a full dynamic and social website.

Also, what I find really amazing with static website are the following benefits that it could bring:

  • Cost effective
  • Crazy speed
  • SEO power that they can provide!
  • (Almost) no hacks possible

How is it possible?

That’s what I’d like to demonstrate into this article as my goal was basically to generate a full tube site without having to maintain anything and put everything on autopilot. I must say that I partially succeed as there are a few features that are missing but most of the work is there yet. In order to show the full potential, I will explain the steps I went through and mention all the tools I’ve been using.

Step 1 – Choose the right static site generator

To find out the most appropriate static site generator, I’ve went through a list of mandatory features I needed. (I won’t mentioned the standard ones that are all already provided in each and everyone static site generator such as post, slug, etc…)

  • Custom collection – This is useful for creating new type of content such as in my case “videos”. We aren’t dealing with posts but with a video collection which has some different attributes (lenght, video-url, etc…)
  • Event driven plugin – This will be really interesting for fetching/scrapping automatically content from another website/API, posting automatically to social networks, minimizing, etc…
  • Sorting of collections
  • Flexible theme system
  • Command line tools

The language didn’t matter a lot but as I was more PHP fluent, I was searching for one that would fit my needs in PHP, so, I went to staticgen website to find out the best generator for my experimental website.

At first, as I’ve been reading a lot about it the time being, I’ve looked toward Sculpin. Unfortunately, what stopped me was the fact that templates weren’t well implemented yet and that custom collection (custom types) was in beta. Another criteria was that the team wasn’t maintaining the project anymore.

Then, I looked into a pretty new one that was active and proposed exactly what I wanted: Spress. I really invite you to take a look at the documentation because it’s simple & easy to read. Then take a look at a few code example on their repository and you’re good to go! Kudo guy’s for the great work!

Step 2 – Creating the template

There was no open-source template for a tube site, I needed to create my own. To speed up the process, I could have gone with a good old standard Bootstrap framework and create my blocks quickly but I wanted to learn a new CSS framework with a more UX approach. In 2015, there was a CSS framework that was making a bit of noise called Semantic-UI as they have bundle not only a lot of UI elements that all made sense but also proposed a very flexible CSS theme system where you basically just set your variables in the config files with your customization and it will change the look & feel of all your UI elements while keeping UX consistency! Same as Spress, go give it a try!

Then a problem, came to me about some dynamic values that I would need to deal with:

  • Publish date and video duration – to get over it, I’ve used the following Javascript library: MomentJS
  • Video – VideoJS is from what I know the best fitted tool for getting videos working smoothly & also responsive.
  • Social Sharing buttons – Found this on Github and works pretty fine. (I could have done this on my own but decided to go with a library that does it)

Step 3 – External services

On a tube website, you usually want users to interact with your visitors by commenting, submitting videos, making some search or simply contact us. Here are the online tools that I’ve been using:

  • CommentingDisqus
  • Search videosTipusearch (a javascript search engine)
  • Video submissionZiggeo an online service where you can simply upload or even record your video.
  • Contact formGetSimpleForm

There is a tool that I’m missing, which is the number of page views per video. If you know any service that does just that, let me know by commenting!

Step 4 – Creating the template for Spress

After getting a fully functional template. I’ve took some examples from Spress templates and started to code my own template with all the static template I’ve been working with initially.

Step 5 – Fetching content

To fetch content & generate markdown files, I’ve used the Vid.me service which provides an API that have a bunch of information related to videos. The only thing I needed to do was the following:

  1. Retrieve from a vid.me channel all videos
  2. Download the videos & related images
  3. Generate the markdown file while injecting all the meta datas in it
  4. Run the command line for generating the website from the markdown files
  5. Put a cronjob on this script

Unfortunately, I haven’t been able to create a proper plugin for Spress with it, but it’s something that I have in my plans.

Step 6 – Wrap everything up

Once the fetcher put in place, I just needed to create a neat bash script for executing everything on a regular basis to fetch, generate and move created website to the appropriate server.

I’ve also included a plugin to minimize the HTML pages in order to speed up the delivery of the pages.

The result: Loopion Me which is a tube site dedicated to Funny Fails Videos.

Known issues:

  • Everything is currently hosted on a shared hosting called DreamHost which doesn’t allow to use enough RAM & CPU usage for generating all the pages (more than a thousands). So, either I increase my DremaHost hosting performance or Spress team needs to do efforts to reduce the amount of resources used by the page generation
  • In relation with above issue, Spress regenerate everything from start to end, which of course has the consequence to take longer to generate the full site. It would have been nice if like Hugo it was generating per update pages. They call it “partial builds”.
  • Ziggeo is providing the video through the API and I have a few submission but they aren’t published yet as I haven’t created a script to transform those incoming videos into a markdown file
  • Tags & Categories aren’t implemented

Conclusion

It was interesting to see how we can make a full website on autopilot, without any dynamic code and with a minimum security risk. Of course, the moderation is drastically missing there as you can see. But in a nutshell, the potential of delegation all dynamic work to others and not maintaining it almost at all. (I just receive a report of correct importation)

Few improvements that could bring a lot of value to your site:

  • Implement categories & tags
  • After each generated video page, send a Tweet and a Facebook post
  • Get a script to validate in one click the submitted videos on Ziggeo
  • Minimize CSS
  • Improve SEO semantics (by using Google guidelines for example)
  • Provide an authenticated (Basic Auth with SSL) API for creating native mobile apps
  • Compress images

 

Don’t hesitate to share your thoughts about this experiment. Or if you have any other suggested static site generator.

What I’ve learned by being more than 2 years a SCRUM master

In my previous company, I’ve been a SCRUM master (in addition to my main job: project manager) for more than 2 years and as you know, we always learn from our own errors and success. That’s why I started to list of few thoughts and things that I’d like to avoid in similar situation/role:

  • Setup tools as soon as possible early in the project in order to automatize a lot of development process. The more you do before starting, the better it will be.
  • Force your team to have some pause during your sprint in order to cool down on stuff that are important to team eyes (update continuous environment, upgrade a library, research, etc.).
  • Team must justify the need of this time and not only in front of SCRUM master but also to product owner and even beyond to stakeholders.
  • When working with a deported team, meet as soon as possible the team in order to give them a perfect vision of the project and share PO & SCRUM Master charisma.
  • Give visibility with transparency to stakeholders on a sprint or release basis by giving:
    • Budget status
    • Global vision of the project (no features! Otherwise it’s taken as granted) usually give business value
    • Milestone /sprints
    • Backlog priorities
    • Risks
  • Challenge stories without bringing your knowledge but by confronting the stories from previous sprints
  • Get a commitment from the team
  • Resolve impediments as soon as possible
    • Anticipate backup plans (ex: someone working on another story) at the same time
  • Give as much as possible visibility to all the team on the upcoming sprints
  • Give time to SCRUM team for reading/studying PO stories
  • If building an online application, have at least 1 x UI/UX designer in the team
  • Don’t rush on cutting edge technology or if it’s required, team needs training on those new technologies or simply change the whole team

So far this is what I’ve encountered along my experience and personal suggestion. I can possibly update the list in the future.

If you’d like me to develop a specific topic enunciated above, please shoot a comment and I will do my best to have a post on it.

About Magento: Meets Magento | Build native mobile shopping experiences for Magento

Meets.io is a native SDK for iOS and Android, designed to ease communication between mobile apps and Magento stores.
URL: http://meets.io

Markdown desktop editor

Syntax Markdown example

Markdown is really a powerful way to create documents and maintain them in a pretty way. There is no changes in the way you write from a site to another, there is no mistake done on the rendering of your pages and most of all, it’s simple to learn!

  • MarkdownPad (Windows) is a full-featured Markdown editor for Windows. There is a free and a paid version. The free version for me is way enough, but when looking to the paid services it tempting to buy the pro version.
  • Mou (Mac) is way simpler and cleaner (normal you would say “Apple style”). It does the job with no additional flavor feature included.

Both do the job and I personally use both: MarkdownPad for professional usage and Mou for personal usage.

Do you know any other Markdown apps or even offline webapps to work with Markdown documents?

Memegif share and create meme based on existing gif

The buzzing world around meme gif are going crazy and creativity provided by users are also pretty impressive. One of my friend recently launched a great website for sharing and creating memes based on existing gif that could be easily found on the internet.

In france we have a few famous websites that is getting more and more welknown by geeks and nerds called les joies du code who provide daily fun sentences attached to gifs.

In a different maner, Memegif let you take back those existing memes and suggest new sentences to match those gifs.
Currently, it’s only in French but I know it will be released soon in English and with couples of new features.

Go submit your meme gif on memegif.com and share it with your friends.

Check your website links before launching

A web spider of dots

This is often omitted by project managers but before launching the website live on the Internet, you must check that all your links from your domain point to a specific location that is reachable and (if possible) has value for your content.

Why that?

  • to make a consistent website as hyperlinks is basis of website creation.
  • have a better SEO. It will ensure a coherence for search engine spiders.
  • to not frustrate your visitor. (You know what I’m talking about)

As a consolation, if you still can’t fully be sure of your links, at least try to make as much as possible the most explainable 404 page.

To perform a full check of your links the best tool from my POV is Xenu Link Sleuth. Simple to use and easy to make reports.

Once your report build up, fix all misleading paged linked or give it away to your developers with the expected result.

I’m curious, do you have better techniques to achieve this task ?