Apple : encore une raison de ne pas prendre des produits Apple !

Lien

Voici donc l’article : http://www.lemonde.fr/pixels/article/2017/12/21/apple-admet-finalement-ralentir-ses-anciens-iphones_5232892_4408996.html :

Apple admet finalement ralentir ses anciens iPhone

Face aux plaintes des utilisateurs et aux preuves d’un expert, l’entreprise a reconnu être intervenue sur des fonctions d’une partie des iPhone SE, 6, 6s et 7.

Il faut boycotter les produits Apple !

Misère :

A lire : https://www.lesnumeriques.com/vie-du-net/evasion-fiscale-apple-uber-ciblees-par-paradisepapers-n67999.html :

Ainsi, Apple a décidé d’installer certaines de ses activités les plus rémunératrices sur l’île de Jersey, où elle a pu profiter d’un taux d’imposition on ne peut plus faible : 0 %. C’est le cabinet Appleby qui s’est occupé de l’installation et la gestion de deux filiales irlandaises d’Apple sur l’île pendant un an. Car oui, il est bien question du déplacement d’activités auparavant domiciliées en Irlande, où l’on sait bien qu’Apple disposait pourtant déjà de conditions fiscales très favorables.

Installation de Jupyter ( Anaconda ) sous Mac

Jupyter, c’est programmation et rédaction sur une même page. C’est vraiment très bien !

La documentation officielle : http://jupyter.readthedocs.io/en/latest/install.html .

Mon OSX : Version 10.13.2 (17C88). ( A noter : Le MacBook est de mi-2012 et on est en 2017 … bonne espérance de vie. Pour rappel, la vrai date d’utilisation est dans Logiciel -> Installation )

Il est possible de faire l’Etape n°1 ou l’Etape n°1 bis (avec Anaconda).

L’étape n°1 : Installation de Python :

D’abord on installe un gestionnaire de package : Homebrew

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Modification (ou ajout) de ~/.profile :

export PATH=/usr/local/bin:/usr/local/sbin:$PATH

Et on finit par l’installation de Python :

brew install python

Problème n°1 : Il faut avoir fait la mise à jour d’XCode :

Error: Your Xcode (6.1) is too outdated.
Please update to Xcode 9.2 (or delete it).
Xcode can be updated from the App Store.

Donc ne pas oublier de faire l’Etape n°0 : Mise à jours de Xcode. Le dernier Xcode fait 5,5 Go … la mise à jour est donc longue.

Problème n°2 : Il faut lancer une fois Xcode :

Error: You have not agreed to the Xcode license. Please resolve this by running:
  sudo xcodebuild -license accept

Ensuite si on veut ajouter un package :

pip2 install feedparser
Collecting feedparser
  Downloading feedparser-5.2.1.zip (1.2MB)
    100% |████████████████████████████████| 1.2MB 636kB/s 
Building wheels for collected packages: feedparser
  Running setup.py bdist_wheel for feedparser ... done
  Stored in directory: /Users/....../Library/Caches/pip/wheels/15/ce/10/b500f745822ea6db6ea8ed225c06b15c000d71016b89ef9037
Successfully built feedparser
Installing collected packages: feedparser
Successfully installed feedparser-5.2.1

A noter que la version installée est :

python -V
Python 2.7.10

Etape n°1 bis: Installation de Anaconda ( 600 Mo )  pour avoir Python : https://www.anaconda.com/download/ . C’est plus simple que ci-dessus … J’ai pris la version avec Python 3.6.

Cela va occupé 2 Go d’espace (officiellement … en réalité 2,3 Go), une fois la fin de l’installation il suffit de lancer Anaconda :

Et on lance Jupyter notebook (version 5.0.0) :

Rien de plus simple avec Anaconda !

Par contre, je trouve que l’installation de Anaconda n’est pas très propre … tous les binaires sont dans le répertoire de l’utilisateur et pas sur Applications. Misère.

du -sh /Users/....../anaconda3/
2,3G /Users/...../anaconda3/

du -sh /Applications/Anaconda-Navigator.app/
292K /Applications/Anaconda-Navigator.app/

Si je veux ajouter un package :

./anaconda3/bin/conda install feedparser
Fetching package metadata ...........
Solving package specifications: .
Package plan for installation in environment /Users/...../anaconda3:
The following NEW packages will be INSTALLED:
    feedparser: 5.2.1-py36_0
Proceed ([y]/n)? y
feedparser-5.2 100% |##############################################################################################################| Time: 0:00:00 544.46 kB/s

Pour bien débuter :

A suivre …  je vais faire un exemple d’utilisation pratique.

Apple : énorme faille de sécurité sur MacOS High Sierra

Enorme faille de sécurité sur MacOS High Sierra :

L’entreprise fait d’énormes bénéfices ( http://www.itespresso.fr/apple-50-milliards-dollars-benefice-annuel-175284.html : « Apple frôle les 50 milliards de dollars de bénéfice annuel » ) , et fait des failles de sécurités d’un niveau particulièrement bas. Je pense que la priorité de la qualité de matériel et de la qualité des softwares est révolu. La spécialité d’Apple n’est plus informatique mais plutôt dans la dissimulation : http://www.lefigaro.fr/secteur/high-tech/2017/11/07/32001-20171107ARTFIG00128-paradise-papers-apple-accuse-d-avoir-dissimule-128-milliards-de-dollars-dans-un-paradis-fiscal.php « «Paradise papers» : Apple accusé d’avoir dissimulé 128 milliards de dollars ».

Et je passe sur le « Hold-up » de la mémoire sur iPhone/iPad (différence de prix entre un 32Go et un 128 Go), et aussi la non possibilité de mettre une carte SD. Le fait aussi de ne plus pouvoir réparer des iPhone ailleurs que dans des Apples Store : http://belgium-iphone.lesoir.be/2016/02/08/erreur-53-apple-bloque-volontairement-les-iphone-repares-ailleurs-qua-lapple-store/ : « Erreur 53: Apple bloque volontairement les iPhone réparés ailleurs qu’à l’Apple Store ».

Je passe aussi sur les disques dur SSD soudés sur les nouveaux Mac : https://www.macg.co/mac/2016/11/le-ssd-est-soude-dans-les-macbook-pro-avec-touch-bar-96327  :  « Le SSD est soudé dans les MacBook Pro avec Touch Bar ». ou http://www.numerama.com/tech/205648-nouveaux-macbook-pro-demontes-la-ram-est-soudee-et-le-ssd-nest-pas-standard.html : « Nouveaux MacBook Pro démontés : la RAM est soudée et le SSD n’est pas standard » 

En vrac :

Il ne reste rien d’honnête chez eux ….

Misère.

A lire :

Mac OS X : Script pour parser tous les emails de Mail ( format emlx )

J’ai fait un script ( rapidement, donc un bash et pas du Perl ou du Python) pour parser tous les emails dans Mail, il suffit de mettre ce script sous : /Users/MonLogin/Library/Mail/ .

Le scripts en version V1 :

#!/bin/bash
#


compteur=0
erreur=0

chercheFichier() {
   Rep="$1"
   for item in $Rep/*
   do [ -f "$item" ] 
	ext="${item##*.}"
	#echo "$item $ext"
	#if  file -i $item | grep -q text ; then 
		if [ "$ext" = "emlx" ] ; then
			from=`head -40 $item | grep "^From: " | awk -v FS="(<|>)" '{print $2}' | head -1`
		        if [ ! -n "$from" ] ;
				then
				from=`head -40 $item | grep "^From: " | awk -v FS='("|")' '{print $2}' | head -1`
			fi
			date=`head -50 $item | grep "^Date: " | sed 's/Date: //g' | sed 's/.*,//' | head -1`
			if [ ! -n "$date" ] ;
				then
				date=`head -50 $item | grep "^Date: " | head -1`
			fi
			if [ -n "$from" ] ; then
				if [ -n "$date" ] ; then
					compteur=`expr $compteur + 1`			
					echo "$compteur | $from | $date" >> list.txt
					else 
					erreur=`expr $erreur + 1`
					echo "Pas de date : $compteur / $erreur / $from / $item"
					fi
				else 
				erreur=`expr $erreur + 1`
				from=`head -10 $item | grep "^From: " | head -1`
				echo "Pas d'email : $compteur / $erreur / $from / $item"
				fi
			fi
		#fi
      [ -d "$item" ] && chercheFichier "$item"
   done
}
 
[ -d "${1:-.}" ] && chercheFichier ${1:-.}

J’ai fait un test et sur 140.000 emails (en 14 ans) j’ai eu 500 erreurs, le problèmes des erreurs ce sont les emails en binaires. Il faut trouver la bonne limite dans le « head -40 » et « head -50 » afin de n’avoir que l’entête de l’email. Mais le champ « Date » se trouve après le champ « To », qui lors d’un spam est très très long .

A la fin de l’exécution on a une fichier list.txt avec numéro, from, date. Pour le reste il suffit de faire un peu d’Excel :

Les emails c’était 5 heures de travail par jour pour les cadres en 2015 : https://www.usine-digitale.fr/article/les-e-mails-c-est-5-heures-de-travail-par-jour-pour-les-cadres-de-2015.N346564 .

L’idée serait de pouvoir identifié les flux (une cartographie des flux) des emails envoyés et reçus … mais c’est pour la version V2. Et aussi de voir l’évolution des flux dans le temps.

Pour l’instant j’ai trouvé ceci pour les flux : https://rgeomatic.hypotheses.org/415 .

A suivre.

La version V1 bis (moins d’erreur : 200).

#!/bin/bash

compteur=0
erreur=0

chercheFichier() {
   Rep="$1"
   for item in $Rep/*
   do [ -f "$item" ] 
	ext="${item##*.}"
	#echo "$item $ext"
	#if  file -i $item | grep -q text ; then 
		if [ "$ext" = "emlx" ] ; then
			from=`head -10 $item | grep "^From: " | awk -v FS="(<|>)" '{print $2}' | head -1`
		        if [ ! -n "$from" ] ;
                                then
                                from=`head -40 $item | grep "^From: " | awk -v FS='("|")' '{print $2}' | head -1`
                        fi
			if [ ! -n "$from" ] ;
				then
				from=`head -80 $item | grep "^From: " | awk -v FS='("|")' '{print $2}' | head -1`
			fi
			date=`head -30 $item | grep "^Date: " | sed 's/Date: //g' | sed 's/.*,//' | head -1`
			if [ ! -n "$date" ] ;
				then
				date=`head -70 $item | grep "^Date: " | sed 's/.*,//' | head -1`
			fi
			if [ -n "$from" ] ; then
				if [ -n "$date" ] ; then
					compteur=`expr $compteur + 1`			
					echo "$compteur | $from | $date" >> list.txt
					else 
					erreur=`expr $erreur + 1`
					echo "Pas de date : $compteur / $erreur / $from / $item"
					fi
				else 
				erreur=`expr $erreur + 1`
				from=`head -15 $item | grep "^From: " | head -1`
				echo "Pas d'email : $compteur / $erreur / $from / $item"
				fi
			fi
		#fi
      [ -d "$item" ] && chercheFichier "$item"
   done
}
 
[ -d "${1:-.}" ] && chercheFichier ${1:-.}

echo "Fin du script : $compteur / $erreur "