vendredi 11 septembre 2020

ng command not found

J'adore cette nullité de npm. angular/cli installé depuis un certain temps, et marchait très bien dans le projet Ionic.

et bon pas utilisé depuis un petit moment, je reviens sur le projet pour rajouter une classe (truc normal quoi)

et paf : ng command not found

??? what the fuck ?

bilan : npm a perdu le lien avec ng

npm link @angular/cli

dimanche 5 juillet 2020

Mode développeur sur RedMi 8

Aller dans "Paramètres" (Settings), Puis dans "À propos du téléphone" (About phone), Puis appuyer 7 fois sur "Version MIUI" (MIUI version)

Le mode développeur est activé

Retourner sous "Paramètres" (Settings), Aller dans "Paramètres supplémentaires" (Additional settings), puis dans "Options développeur" (Developer options)

samedi 28 mars 2020

Ionic 4 et ion-select event

Lors de l'utilisation de ion-select, l'évènement renvoyer par ionChange() est de type SelectInputChangeEvent.

SelectInputChangeEvent dérive de Event, et contient les bonnes propriétés.
sinon seul sera visible { "isTrusted":true|false }

<ion-select value="selected" (ionChange)="onChangeSelection($event)">
    <ion-select-option *ngFor="let item of items" [value]="item" selected="item===selected">{{item}}</ion-select-option>
</ion-select>
onChangeSelection(event: SelectInputChangeEvent){
  this.selected = event.detail.value;
}

mercredi 18 mars 2020

Wifi non trouvé sur le RaspberryPi

Pour connaitre la liste des canaux utilisable par le RaspberryPi:
sudo iwlist wlan0 channel

si raspi-config ne veut pas activer les canaux par la sélection du pays.
Il faut installer crda pour activer les canaux 12 et 13
sudo apt-get install crda

mardi 18 février 2020

npm manage version in config.xml

<major>.<minor>.<patch>-beta.<beta> == 1.2.3-beta.2

  • Use npm semver calculator for testing. (Although the explanations for ^ (include everything greater than a particular version in the same major range) and ~ (include everything greater than a particular version in the same minor range) aren't a 100% correct, the calculator seems to work fine)
  • Alternatively, use SemVer Check instead, which doesn't require you to pick a package and also offers explanations.

Allow or disallow changes

  • Pin version: 1.2.3.
  • Use (like head). Allows updates at the second non-zero level from the left: 0.2.3 means 0.2.3 <= v < 0.3.
  • Use ~ (like tail). Generally freeze right-most level or set zero if omitted:
    • ~1 means 1.0.0 <= v < 2.0.0
    • ~1.2 means 1.2.0 <= v < 1.3.0.
    • ~1.2.4 means 1.2.4 <= v < 1.3.0.
  • Ommit right-most level: 0.2 means 0.2 <= v < 1. Differs from ~ because:
    • Starting omitted level version is always 0
    • You can set starting major version without specifying sublevels.

All (hopefully) possibilities

Set starting major-level and allow updates upward

*  or "(empty string)   any version
1                         v >= 1

Freeze major-level

~0 (0)            0.0 <= v < 1 
0.2               0.2 <= v < 1          // Can't do that with ^ or ~ 
~1 (1, ^1)        1 <= v < 2
^1.2              1.2 <= v < 2
^1.2.3            1.2.3 <= v < 2
^1.2.3-beta.4     1.2.3-beta.4 <= v < 2

Freeze minor-level

^0.0 (0.0)        0 <= v < 0.1 
~0.2              0.2 <= v < 0.3
~1.2              1.2 <= v < 1.3
~0.2.3 (^0.2.3)   0.2.3 <= v < 0.3
~1.2.3            1.2.3 <= v < 1.3

Freeze patch-level

~1.2.3-beta.4     1.2.3-beta.4 <= v < 1.2.4 (only beta or pr allowed)
^0.0.3-beta       0.0.3-beta.0 <= v < 0.0.4 or 0.0.3-pr.0 <= v < 0.0.4 (only beta or pr allowed)
^0.0.3-beta.4     0.0.3-beta.4 <= v < 0.0.4 or 0.0.3-pr.4 <= v < 0.0.4 (only beta or pr allowed)

Disallow updates

1.2.3             1.2.3
^0.0.3 (0.0.3)    0.0.3

Notice: Missing major, minor, patch or specifying beta without number, is the same as any for the missing level.

Notice: When you install a package which has 0 as major level, the update will only install new beta/pr level version! That's because npm sets ^ as default in package.json and when installed version is like 0.1.3, it freezes all major/minor/patch levels.

https://docs.npmjs.com/misc/semver

https://docs.npmjs.com/files/package.json#dependencies

jeudi 13 février 2020

Vider le cache DNS

Vider le cache DNS sous Mac OS X

  • Mac OS 10.5 et 10.6 => sudo dscacheutil -flushcache
  • Mac OS 10.7 à 10.9 => sudo killall -HUP mDNSResponder
  • Mac OS 10.10 à 10.10.3 => sudo discoveryutil udnsflushcaches
  • Mac OS 10.10.4 à macOS 10.12 => sudo killall -HUP mDNSResponder

Vider le cache DNS sous Linux/Unix

  • /etc/init.d/named restart
  • /etc/init.d/nscd restart

Vider le cache DNS sous Windows

  • ipconfig /flushdns

Cordova, Matlab et code C généré avec des statiques

Le code C généré depuis Matlab, utilisent des variables statiques.

Ce qui n'est pas génant en soit dans une application classique, car ça améliore la vitesse de traitement : l'application n'ayant pas en permanence à allouer et désallouer de la mémoire.

Pour un application mobile Cordova, dans lequel le code C est encapsulé dans un plugin. Celà pose problème, car une fois le plugin utilisé on n'a que faire de cette mémoire allouer. Problème on ne peut pas déchargé le plugin.

Sur Android, en compilant le code C dans une librairie dynamique. ça semble fonctionner, la mémoire des variables statiques semblent être supprimer en déchargeant la lib. (Je n'ai pas pu vraiment tester, appli + monitoring dans Android Studio, ça rame tellement que tout fini par planter).

Sur iOS: une bibliothèque dynamique faut oublié. Donc lib statique, ou plus simple le code C direct dans le plugin (plus facile pour débuguer).

donc j'ai passé les tableaux de taille importante @@ static TYPE table100000; @@

en dynamique dans un header j'aurai

@@ extern TYPE * table_nomDeFonction; @@

Je rajoute des suffixes à mes variables, car la plupart des variables on le même nom. C'est bien la génération automatique de code ;). et dans ma fonction principale il va falloir que j'initialise tout ça, et surtout que je désalloue.

dans mon code de la fonction je remplace mes static TYPE table100000; par

@@ type * table; if ( table_nomDeFonction == NULL ) { table_nomDeFonction = (TYPE)malloc(100000); } table = table_nomDeFonction; @@

dans le code principal, je définie et j'initialise à NULL toutes mes nouvelles variables.

@@ TYPE * table_nomDeFonction = NULL; @@

après avoir fait mon traitement Matlab, une bonne déalloc

@@ free(table_nomDeFonction) ; table_nomDeFonction = NULL; @@

Faut mettre le NULL, sinon au prochain coup youppi, on écris je sais pas où. même mieux, étant habitué au vieux compilo C, qui ne tenait pas compte de l'initialisation avec la déclaration. c'est mieux de mettre en début de fonction, avant l'appel de la fonction principale Matlab.

@@ table_nomDeFonction = NULL; @@

Simplement virer les static dans les fonctions, ne convient pas, car les pointeurs sur les données des tableaux sont stoquées dans d'autres tableaux qui sont utilisés dans d'autres fonctions.

dimanche 9 février 2020

Mac convertir ses m4a vers du mp3

Méthode pour tranformer les m4a présent dans iTunes en mp3

Lire la suite...

dimanche 14 avril 2019

Générer le badge de son application Android

Comment générer de façon automatique le badge dans sa forme définie par Google pour le site web de son application Android.

Lire la suite...

mercredi 13 mars 2019

Network Boot

netboot.xyz is a way to PXE boot various operating system installers or utilities from one place within the BIOS

https://www.netboot.xyz

UNetbootin - create bootable Live USB drives

UNetbootin allows you to create bootable Live USB drives for Ubuntu and other Linux distributions without burning a CD.

https://unetbootin.github.io

vendredi 1 mars 2019

Ionic file upload issue on iOS

The fileTransfert variable must be initialize in the platform.ready().then() method.


import { FileTransfer } from "@ionic-native/file-transfer";
import { Platform } from 'ionic-angular';

...

private fileTransfer: FileTransferObject;

...

constructor(public transfer: FileTransfer, public platform: Platform) {
    this.platform.ready().then(
     (ready)=>{
       this.fileTransfer= this.transfer.create();
     }
   );
}

Cordova gradle issue

when you change gradle version for example after Android ask you to update it

You have several choices:

  • remove and reinstall android platform. :(
  • define a path to the new gradle with an environment variable :)
export CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL=https://services.gradle.org/distributions/gradle-4.10-all.zip

vendredi 18 janvier 2019

plan éolienne

Plan éolienne pour imprimante 3D.

<a href="https://www.thingiverse.com/thing:1800466/#files">https://www.thingiverse.com/thing:1800466/#files</a>

samedi 12 janvier 2019

Ma nouvelle vie d'auto-entrepreneur et les déboires de l'URSSAF

Quand on commence une activité, l'URSSAF décale d'un trimestre les déclarations. Tout ça pour qu'ils puissent calculer ce qu'il faudra payer. (La personne de l'URSSAF lors de la formation à la CCI nous avait très bien expliqué le pourquoi de la chose, et le comment).

Jusque là c'est simple, j'ai commencé en septembre, mes 1ères déclarations je ne peux le faire quand janvier et pas avant même si on connait son chiffre d'affaire, et le site de l'URSSAF interdit de le faire sur leur site. Janvier arrive, le 2 je me connecte, je déclare mes 4 mois (septembre, octobre, novembre et décembre) oui chez eux un trimestre fais 4 mois ;)

J'ai rien à payer, j'ai fait 0 de chiffre d'affaires. Je saisi mon RIB dans le mode payement comme ça sera enregistrer pour plus tard.

Chose bizarre, de mes 4 déclarations une seule passe dans l'historique (septembre), mais septembre est aussi rester dans la partie en cours de déclaration. Je me dis, c'est pas grave c'est le système, ça va passer plus tard. Je peux de toute façon, imprimer les récépissés comme quoi la déclaration à été faite. Déclarations que je m'empresse d'envoyer à l'ANPE (oui, je me suis pas encore fait à pôle-emploi).

Et là, je me reçois un courrier de relance amiable du directeur de l'URSSAF, en date du 8 janvier, qui m'indique que je n'ai pas fais ma déclaration d'octobre, et que si je me bouge pas le cul, j'aurai une pénalité de 50€.

Euh, la déclaration: je l'ai faite le 2 janvier , et j'ai même d'après leur calendrier jusqu'au 31 janvier pour la faire. Là je ne comprends pas.

Sur le site de l'URSSAF, les déclarations sont toujours en cours, pourtant elles sont validés, j'ai même les récépissés. Pas grave je vais leur envoyé un email: oui, mais alors là

Sur le site de l'URSSAF, il y a bien une page contact, mais elle ne fonctionne pas je tombe sur la 4O4. pas grave, je vais essayer l'application sur le téléphone. Yes, là on peut envoyer un message, je remplis mon blabla, non s'en bien que mal , je colle mes récépissés en pièces jointes, je presse envoyé et ...

     Le services est momentanément indisponible veuillez réessayer plus tard.

AAARRRRGGGGG!!!!!!!

Bon, je réessayerai plus tard, mais je n'y crois pas, vu que l'application a l'air d'avoir été programmé avec les pieds (certains boutons ne fonctionnent quand mode paysage, les petits telephones (iPhone SE) n'ont pas été prévue), comme le site web.

reste plus qu'à les appeler. parce que je ne vais pas perdre la journée à aller les voir à Nice ou à la Valette.

J'ai trouvé pourquoi, elle reste dans la partie en cours: car elle reste modifiable jusqu'à midi de la date déchéance. Du coup je comprends pas pourquoi septembre est dans l'historique? puisque elle aussi sa date d'échéance est le 31 janvier.

En tout cas, vu les 4 courriers qu'ils m'ont envoyés pour rien, on comprends bien la somme des dépenses publiques totalement inutile, jeter par les fenêtres, si c'est le cas pour toutes les entreprises crées.

mardi 31 juillet 2018

kernel_task qui prends 400% et + de CPU

Mac complètement à la ramasse dû au processus kernel_task qui prends tout le CPU.

Lire la suite...

dimanche 11 mars 2018

Install Symfony 4 sur 1and1

installer composer.phar avant

puis
php7.1-cli composer.phar create-project symfony/website-skeleton NomDuProjet

dans NomDuProjet/public
créer un fichier php.ini
contenant
date.timezone = Europe/Paris


Symfony 4,1and1,1und1,configuration,installation

lundi 20 novembre 2017

Activer les pages web perso sur High Sierra MacOS X 10.13

Pour avoir votre site web perso dans votre répertoire Sites (répertoire à créer dans votre dossier utilisateur)

Créer votre répertoire Sites depuis le finder ou depuis le terminal avec mkdir Sites

Sauvegarde de l'ancien fichier de configuration, histoire de pouvoir le restaurer en cas de mauvaise manipulation.
sudo cp /etc/apache2/http.conf /etc/apache2/http.conf.original

ensuite éditer le fichier (moi j'aime bien vi ça marche partout)
sudo vi /etc/apache2/http.conf

dé commenter (enlever le #) les lignes (rechercher userdir ESC :/userdir )
#LoadModule userdir_module libexec/apache2/mod_userdir.so
une fois sur la ligne taper ESC 0 x puis n pour passer au suivant
#Include /private/etc/apache2/extra/httpd-userdir.conf
pareil tapper ESC 0 x

puis sauvegarder avec ESC :wq

ensuite éditer le fichier : /etc/apache2/extra/httpd-userdir.conf

vi extra/httpd-userdir.conf

et rajouter la ligne ( ESC i )
UserDir enabled

puis sauvegarder avec ESC :wq

ensuite créer le fichier au nom de votre utilisateur
(pour connaitre son nom utilisateur taper dans le terminal whoami)

vi /etc/apache2/users/votreNomdUtilisateur.conf
rajouter les lignes ( ESC i )
puis taper ou faire un copier coller, attention il faut mettre votre nom d'utilisateur

<Directory "/Users/votreNomdUtilisateur/Sites/">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
Require all granted
</Directory>

puis sauvegarder avec ESC :wq

arrêter et relancer le serveur apache
sudo apachectl stop
sudo apachectl start

et voilà il n'y a plus qu'à ouvrir Safari
open http://localhost/~votreNomdUtilisateur



apache,web,config,MacOS X,High Sierra,10.13,userdir,Sites

mardi 17 octobre 2017

Raging Menace - MenuMeters

Raging Menace - MenuMeters

MenuMeters is a set of CPU, memory, disk, and network monitoring tools for Mac OS X. Although there are numerous other programs which do the same thing, none had quite the feature set I was looking for. Most were windows that sat in a corner or on the desktop, which are inevitably obscured by document windows on a laptop's small screen. Those monitors which used the menubar mostly used the NSStatusItem API, which has the annoying tendency to totally reorder my menubar on every login.

mac,apple,monitoring,open source,mac os x

Xcell Software Journal

Xcell Software Journal from Xilinx.

journal,magazine,IoT,software,xcell,xilinx

- page 1 de 218