PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

Francois Aichelbaum : Only 3 types of CTO?

mercredi 15 janvier 2020 à 15:17

For a few months now, there have been a lot of articles explaining that there are 3 types of CTO: the hacker, the stabilizer, and the industrializer. Although accurate in substance, these articles are incomplete when we go into practice. But why is that?

Let’s start by going over these three types again.

The Hacker

You have just created your startup and you are looking to deliver your product as soon as possible with your famous MVP that will allow you to make yourself known and really launch your business. To do so, your company relies on a very limited number of people, whose role boundaries are relatively fluid. This allows you to gain flexibility and to do as much as possible with as little as possible. This schema also applies to your technical referent: once architect, one “hands-on”, he will go through phases to tackle technical related matters. Your referent finds himself having to touch everything, but never 100%, since you can’t know everything, or do everything alone. Doesn’t the saying go “to go fast, go alone; to go far, go together”? This profile is therefore all-rounder, passionate more than experienced: it will allow you to go fast, even to take shortcuts, but it will work … for the MVP. The risk for this type of profile is to persist too long in this type of role. Indeed, he will certainly gain experience, but his expertise will be to always want to do everything, alone, and quickly. It will then become difficult for him to delegate or even manage. To the extreme, he will develop an aura of saviour/messiah within your company, and will monopolise speaking time (and reflection time) with your tacit and silent agreement.

The Stabilizer

Your MVP was launched a few months ago now, your business model is being refined, after a few turnarounds, and your situation is motivating the company and the product to grow. So it’s time to hire and to assess the situation. This step is often perceived as painful or risky, because it involves questioning everything that has been done so far. Why painful? Because no one is “wired” in the same way and, because of the personal commitment required to create an MVP, some will take these questions as a challenge to themselves. However, in order to stabilize the product, and to prepare its scalability, i.e. your ability to accelerate your business development and attack new markets, it is essential to know your strong points, on which you will rely, and your weak points, which you will correct. It is therefore necessary to treat everything in the same way and manage to motivate and structure your teams accordingly. On technical subjects, this will naturally be the role of the CTO. Structuring the team, from a human and managerial point of view, implementing adapted processes and methodologies, he will gradually nose up to become the orchestrator of the technique. Where the hacker was managing alone, the stabilizer will have to orchestrate to make sure to find the right balance between new features, patches, and stabilizations, these last two subjects having strong impacts on the morale of the teams, and thus the quality of their rendering. The risk of this type of profile is linked to the ambivalence between the technical aspect, since the team remains relatively small, and the time needed to structure the whole. In case of imbalance, he would then fall into one of the other two profiles, which would not be in adequacy with your company, and thus your need.

The Industrializer

Now that your company has made a place for itself on the market and is well known, your work continues: it is time to become the absolute reference and to project yourself to several versions/iterations of your product in advance, the famous long term vision. This is the moment when your company sets up its ComEx, when the teams are counted in several dozen and you want/need to add a 0 to the number of employees to realize your plan. Your CTO must then let go, officially at least, of the technique to focus on the strategy and how to get there. You are entering an era where the long-term technical orientation will merge with the vision of future technological developments mixed with the evolution of your market. Everything has to be formalized; the roadmap is then done over several years, where it was defined over a few months; the teams become specialized, needing to improve exchanges between teams and individuals, through human management, processes, … any useful tool for these purposes. Your CTO is therefore at work on strategy, competitive analysis, an in-depth work of your company to find the levers necessary for your commercial success. The risk of this profile is to be too disconnected from technology, to lose touch with technological advances and to be drowned in hypes. The direct consequence would be that the technical teams would no longer have faith in him, with all that this can have as an impact on their productivity but also on the pure realization of his strategy.

So?

Since these definitions are relatively fair, clear and, on paper, non-exclusive, where is the lack? These various articles have been written for “pure players”, i.e. editors of solutions that will be exclusively usable on the web, and where the role of CTO is relatively unique, and that it will be the same person who will manage your internal and external issues. This is a simple echo of a growing trend where some companies are no longer able to distinguish the roles and missions of each, with the direct consequence of having several CTOs in the same structure. I have had the opportunity to note this point several times recently with, for example, an agency that recruits a CTO for one of its clients, and who will have to work in pairs with the CTO in place, each sharing specific but related subjects. But then, what are these missions that require different titles?

The list is long but we could mention the management of your IS, especially if your company starts to develop on several different locations, the management of your R&D, especially with the diversification of technologies, the operational with the support of the customer, the product and its roadmap definition, … Of course, the boundaries are not watertight between these topics, especially depending on the size of your company, but for all that, titles exist to clearly mark the distinction: CTO, CIO, VP Engineering, VP Operations, VP Products, … At some point, your CTO will assume all these roles (the Hacker in this case), but the more you move towards a stabilizer, even an ndustrializer profile, the more he will need support. Depending on his profile, he will refer you to one or the other of these roles as a complement. So who has to do what in this story? Let’s focus on the 3 most technical roles: CTO, CIO and VP Engineering. As much as the difference may seem obvious between the last two, their proximity to the first one adds a significant blur. So let’s dig into their missions

VP Engineering

Simply put, he’s your R&D boss. As a former engineer who rose through the ranks, passing through lead developer and architect roles, he has also developed an ability to manage people. As an internal technical referent in your R&D, he is the person your company relies on to transform the defined strategy into a real product.

CIO

Do you have an internal IT or infrastructure to manage? The IOC is your boss on these matters. He is the face that everyone in your company knows when it comes to IT and related topics: security, cloud, automation, … At the crossroads of all the other professions in your company, even the non-technical ones, he will make sure that your IT teams guarantee the quality of service necessary for the proper functioning of your product and your company itself. Because of its positioning, it will often have a strong impact on your processes and methodology.

CTO

This is the technical face of your company. As a technical referent for the whole company, with priority given to business issues, it must stay up to date technically, so that it can respond to your customers and your board, while guiding product development. How is he not your VP Engineering? Because he has to be able to keep his hacker and hacking side to test and therefore stay up to date, where your VP Engineering has to move forward in accordance with your roadmap and little opportunity to play. How is he not your CIO? I will repeat the discussion I had with the CEO of a large transport group: what is your job and therefore on which technique will your CTO intervene?

Gravatar de Francois Aichelbaum
Original post of Francois Aichelbaum.Votez pour ce billet sur Planet Libre.

RaspbianFrance : Donner une IP locale fixe à votre Raspberry Pi.

mardi 14 janvier 2020 à 17:32
Définir une IP fixe.

Comme vous le savez peut-être, chaque équipement connecté à votre box dispose d’une adresse IP locale qui permet de l’identifier à l’intérieur de votre réseau.

Seulement, ces IP peuvent changer à chaque ré-démarrage de la machine, et c’est très gênant quand on souhaite accéder à la raspberry depuis un ordinateur, par exemple en SSH.

Dans ce tutoriel nous allons voir comment faire pour donner une IP locale fixe à notre Raspberry Pi et ainsi éviter de la chercher à chaque fois.

De quoi avons-nous besoin ?

Nous aurons uniquement besoin d’une Raspberry Pi fonctionnelle et reliée à internet, avec Raspbian installé.

Attention, nous parlons bien d’une adresse IP locale, servant à accéder à la raspberry depuis votre réseau et pas directement depuis internet. Nous ferons un tutoriel sur ce sujet précis dans les semaines à venir.

Assigner une IP statique à la Raspberry Pi

Dans un premier temps connectez vous à votre pi, soit physiquement soit par SSH, et ouvrez-y un terminal.

Nous allons commencer par trouver l’adresse IP locale actuelle de votre Raspberry Pi. Pour cela, tapez une des deux commandes suivantes (adaptez selon votre cas) :

#Si la raspberry pi est connectée à votre box en ethernet
ip route | grep eth0

#Sinon si la pi est connectée en wifi
ip route | grep wlan0

Vous devriez obtenir un retour ressemblant un peu à ça :

default via 192.168.0.1 dev wlan0 src 192.168.0.101 metric 303 
192.168.0.0/24 dev wlan0 proto dhcp scope link src 192.168.0.101 metric 303

Notez vous ce retour de côté afin de pouvoir y revenir facilement.

Ceci fait, ouvrez le fichier /etc/dhcpcd.conf avec nano (ou un autre éditeur texte, peu importe), rendez-vous à la fin et ajoutez les lignes ci-dessous, en remplaçant :

interface wlan0
static ip_address=192.168.0.101/24
static routers=192.168.0.1

Qu’est-ce que ça fait tout ça ? Et bien tout simplement, dans notre exemple, ça indique à la Raspberry Pi que nous voulons :

Pour info, vous pouvez tout à fait choisir une autre adresse que celle suivant src, les seules contraintes sont de rester dans le bon masque de sous réseau (/24 veut dire modifier uniquement le dernier groupe) et de choisir une adresse qui ne soit pas déjà utilisée par une autre machine.
Nous avons choisi d’utiliser l’adresse actuelle de la Raspberry Pi puisque nous sommes sûr qu’aucune autre machine ne l’utilise.

Il ne vous reste qu’à redémarrer votre Raspberry Pi pour appliquer la modification et vérifier qu’elle a toujours accès à internet.

Après chaque redémarrage l’IP de votre Raspberry Pi restera toujours celle que vous avez définie.

Lire l'article complet : Donner une IP locale fixe à votre Raspberry Pi.

Gravatar de RaspbianFrance
Original post of RaspbianFrance.Votez pour ce billet sur Planet Libre.

Thuban : Firefox v72.0.1 disponible sous OpenBSD stable ?

lundi 13 janvier 2020 à 23:24
Firefox v72.0.1 disponible sous OpenBSD stable ?
Là est la question pertinente.

Explications


À-propos de l'avis de sécurité concernant Firefox : "Mozilla Foundation Security Advisory 2020-03" :
Il y a quelques jours, @solene informait sur Mastodon qu'il n'y aurait pas de mise à jour dorénavant pour Firefox sur OpenBSD Stable.

Une publication a été faite sur l'"OpenBSD Journal".
En effet, cela demandant un effort certain et une énergie en temps, le mainteneur officiel ne veut pas s'en occuper et explique ses raisons, dans un commentaire : "trop compliqué, à cause de Rust et cbindgen". (je paraphrase)

Mais solene qui fait elle aussi partie de l'équipe OpenBSD a pris de son temps, de son énergie, et nous restitue le paquet corrigé pour que nous l'ayons sur OpenBSD stable.

Et, elle a besoin des bonnes volontés pour tester la version patchée qu'elle propose, mais aussi qu'on lui fasse un retour pertinent car sans ce retour le mainteneur a annoncé qu'il n'y aura pas d'intégration pour stable, donc officiellement nous n'en bénéficieront pas, ni les différentes architectures supposées être gérées.

À noter que cette version est fournie avec pledge(2), mais n'a pas le support de unveil(2).

Comment aider !

Sachant que le condensat cryptographique sha512 - appelé communément "somme de contrôle" - est : 63913e85f41017506d66907e07369d4818cc048e5bd46327b928a1a43e5a1acc

En premier téléchargez l'archive proposée, puis installez-la :
$ cd ~/Downloads
$ ftp https://perso.pw/firefox-72.0.1.tgz
$ doas pkg_add -D unsigned firefox-72.0.1.tgz
Bien sûr avant de l'installer, vérifiez la correspondance de la somme de contrôle ;)

Ce qu'il est intéressant de tester, hormis son bon fonctionnement :
  • qu'il est possible d'accéder à n'importe quel de vos documents personnels, prouvant par la même la non gestion d'unveil.
  • si vous aviez firefox déjà installé, montrez que la mise à jour s'est bien passée - par exemple, par copie de la sortie de la commande `pkg_add` - ET que votre profil firefox est toujours correctement géré - c'est-à-dire que vous n'avez pas eu à en recréer un.
  • que l'icône firefox soit bien affichée correctement dans votre menu d'applications, ce qui dépend aussi du bureau que vous employez.
  • et toutes autres choses utiles qu'il vous semble bon de faire remonter…


Comment remonter l'information ?


Très simplement, en la contactant, soit :
- sur Mastodon , et lui fournissant vos différents éléments, voire ceux qu'elle pourrait vous demander en plus.
- par mail, sachant qu'elle fait partie de l'équipe "openbsd.org", à son adresse solene@ suivi du nom de domaine en question !

Merci par avance de vos efforts.

----

Et, juste pour le fun :


Gravatar de Thuban
Original post of Thuban.Votez pour ce billet sur Planet Libre.

Thuban : Obsd4a.net devient openbsd.fr.eu.org

lundi 13 janvier 2020 à 15:00

Bonjour,

Certains d’ici nous sui(vai?)t la communauté “OpenBSD pour tous”, situé à l’adresse obsd4a POINT net.
Suite à des soucis récurrents, @prx et moi, avons décidé de rapatrier tout sur son serveur @home, du fait qu’il a la fibre.

Bref, tout se passe désormais sur : openbsd.fr.eu.org (en mode plus minimaliste…).

Voici les services proposés :

voili, voilou.

----

Hi, all.

Some of us here follow the "OpenBSD for All" French Community, on obsd4a DOT net.

Due to recurring worries, @prx and I decided to repatriate everything on its @home server, because it has the fiber.

Now, everything takes place on:
openbsd.fr.eu.org

The services are:

Voilà!

----

#OpenBSD #obsd4a

Gravatar de Thuban
Original post of Thuban.Votez pour ce billet sur Planet Libre.

genma : Yunohost et plusieurs instances de Nextcloud (2/N)

lundi 13 janvier 2020 à 09:00

Cet article fait suite à mon article Yunohost et plusieurs instances de Nextcloud (1/N).

Dans cet article, je présenterai des problématiques rencontrées suite à ce mode multi-instance.

Nettoyage suite montée en version

Il faut nettoyer le dossier /home/yunohost.app/nextcloud/data/updater-ocfwd41fh2cx/backups/nextcloud-15.0.12.1

Conséquence de la changement de version de PHP

Pour l'installation de Nextcloud 17 (montée en version de Nextcloud 15, installé en tant qu'application Yunohost) et en suivant le tutoriel de mon premier billet Yunohost et plusieurs instances de Nextcloud (1/N), j'ai installé PHP 7.3 et (finalement) migré TOUS les instances Nextcloud sur PHP 7.3 (gain de performance, à valider, pour les instances 15).

Par conséquences, les fichiers /etc/php/7.0/fpm/pool.d/nextcloud.conf n'existent plus, cela casse la sauvegarde de Nextcloud via Yunohost. Il faut faire les sauvegardes à la main (via Borg par exemple). Cela sera le sujet d'un article futur.

Listing d'une sauvegarde de l'application Nextcloud via Yunohost et des erreurs rencontrées :

# yunohost backup create --apps nextcloud
Info: Collecting files to be backuped for nextcloud…
Info: [++..................] > Loading installation settings...
Info: [##++................] > Backing up the main app directory...
Info: [####++..............] > Backing up nginx web server configuration...
Info: [######++............] > Backing up php-fpm configuration...
Warning: [WARN] Source path '/etc/php/7.0/fpm/pool.d/nextcloud.conf' does not exist
Warning: [ERR] !!
Warning: nextcloud's script has encountered an error. Its execution was cancelled.
Warning: !!
Warning: Please find here an extract of the log before the crash:
Warning: [DEBUG]: DEBUG - ++ ynh_app_setting get nextcloud do_not_backup_data
Warning: [DEBUG]: INFO - > Backing up php-fpm configuration...
Warning: [DEBUG]: DEBUG - ++ ACTION=get
Warning: [DEBUG]: DEBUG - ++ APP=nextcloud
Warning: [DEBUG]: DEBUG - ++ KEY=do_not_backup_data
Warning: [DEBUG]: DEBUG - ++ VALUE=
Warning: [DEBUG]: DEBUG - ++ python -
Warning: [DEBUG]: DEBUG - + do_not_backup_data=
Warning: [DEBUG]: WARNING - Source path '/etc/php/7.0/fpm/pool.d/nextcloud.conf' does not exist
Warning: [DEBUG]: DEBUG -'
Warning: [DEBUG]: DEBUG -
Warning: [DEBUG]: DEBUG - + ynh_print_warn '--message=Source path '\\''/etc/php/7.0/fpm/pool.d/nextcloud.conf'\\'' does not exist'
Warning: [DEBUG]: DEBUG - + local legacy_args=m
Warning: [DEBUG]: DEBUG -=message=)
Warning: [DEBUG]: DEBUG - + declare -Ar args_array
Warning: [DEBUG]: DEBUG - + local message
Warning: [DEBUG]: DEBUG - + ynh_handle_getopts_args '--message=Source path '\\''/etc/php/7.0/fpm/pool.d/nextcloud.conf'\\'' does not exist'
Warning: [DEBUG]: DEBUG - + set +x
Warning: [DEBUG]: DEBUG - Source path '\\'''\\'' does not exist'
Warning: [DEBUG]: DEBUG - Source path '\\''/etc/php/7.0/fpm/pool.d/nextcloud.conf'\\'' does not exist'
Warning: [DEBUG]: DEBUG -'
Warning: [DEBUG]: DEBUG - + grep --quiet /etc/fail2ban
Warning: [DEBUG]: DEBUG - + echo /etc/php/7.0/fpm/pool.d/nextcloud.conf
Warning: [DEBUG]: DEBUG - + return 1
Warning: [DEBUG]: DEBUG - + ynh_exit_properly
Warning:
Error: Unable to back up the app 'nextcloud'
Error: There is nothing to save

Ne pas faire les mises à jour de Nextcloud via Yunohost

Pour les différentes applications Nextcloud installées, dans sa partie administration, Yunohost continue de proposer de faire les mises à jour. En effet, Yunohost conserve la version de l'application installée et quand l'application packagée dispose d'une mise à jour, il la propose.

Suite aux modifications manuelles faites sur les instances Nextcloud, on perd la compatibilité avec Yunohost. Il ne faut donc plus faire les mises à jour de Nextcloud via Yunohost, mais via l'application Nextcloud en elle-même.

Il va falloir que je creuse ce point, sans casser Yunohost, pour enlever ces notification. A suivre.

DAVx⁵ ne synchronise pas sur la bonne instance malgré la saisie de la bonne URL

Sur un même serveur, j'ai donc différentes instances Nextcloud. Comme cela le sera expliqué dans un article futur, il est possible de se connecter avec les applications comme DAVx⁵ (ex DavDroid) à plusieurs instances Nextcloud pour synchoniser Contacts, Agenda...

DAVx⁵ ne synchronise pas sur la bonne instance malgré le bon compte et la saisie de la bonne URL du serveur.

Je mets ici le résultat de mon analyse :

Dans la configuration de l'instance Nextcloud sur laquelle je souhaite me connecter, dans la configuration Nginx, dans le fichier /etc/nginx/conf.d/nextproduction.mondomaine.org.d/nextcloud__3.conf il manque les lignes

location = /.well-known/carddav {
return 301 https://$server_name/remote.php/dav;
}
location = /.well-known/caldav {
return 301 https://$server_name/remote.php/dav;
}

Cela est lié à cette règle dans le script d'installation du package Nextcloud pour Yunhost :

# Check if .well-known is available for this domain
if is_url_handled --url="https://$domain/.well-known/caldav" || is_url_handled --url="https://$domain/.well-known/carddav"
then
ynh_print_warn --message="Another app already uses the domain $domain to serve a caldav/carddav feature. You may encounter issues when dealing with your calendar or address book."

# Remove lines about .well-known/carddav and caldav with sed.
sed --in-place --regexp-extended '/^location = \\/\\.well\\-known\\/(caldav|carddav) \\{/,/\\}/d' "../conf/nginx.conf"
fi

Si l'on n'y prend pas garde, lors de l'installation d'une seconde application Nextcloud sur une même instance Yunohost, on a donc ce message qui dit Another app already uses the domain $domain to serve a caldav/carddav feature. You may encounter issues when dealing with your calendar or address book.

Mon conseil est pour ne pas rencontrer de soucis, si l'on souhaite utiliser les fonctionnalités d'Agenda / Contact des différentes instances (pour des synchronisations sur son smartphone), d'installer chaque instance Nextcloud sur plusieurs sous-domaines et non sur un même domaine (dans des sous-répertoires).

Il est possible de bouger / migrer une application NextCloud déjà installé d'un domaine à un sous-domaine, par exemple d'une url ondomaine.org/2èmenextcloud/ vers 2èmenextcloud.mondomaine.org mais les fichiers de configuration ne sont pas tous modifiés et il faudra donc faire la correction des fichier Nginx à la main.

Gravatar de genma
Original post of genma.Votez pour ce billet sur Planet Libre.