June 17, 2017 ademcan No comments

How to submit an Electron app to the mac appstore?

 

1- Create a Bundle ID for your app

The very first step to be able to send a mac app to the appStore is to create a unique Bundle ID for it:

  • go to your Apple Developer Account
  • click Certificates, IDs & Profiles
  • select macOS in the top-left dropdown list
  • click on App IDs under the Identifiers menu
  • click the + sign on the upper-right part of the screen
  • give a description to your app, choose Explicit App ID and enter a Bundle ID (usually something like com.domain.appname)
  • click Continue and then Register

 

2- Create your developer certificates

You need two types of certificate as a developer to submit an app to the mac appStore:

  • click Certificates, IDs & Profiles
  • select macOS in the top-left dropdown list
  • click on All under the Certificates menu
  • click the + sign on the upper-right part of the screen
  • in the Production section choose Mac App Store
  • in the next page select Mac App Distribution, click Continue
  • create your Certificate Signing Request as indicated, click Continue
  • load your CSR file and download the generated certificate

In addition to the Mac App Distribution certificate, one also need a Mac Installer Distribution certificate. You need to perform the same steps as previously and select Mac Installer Distribution on step 5.
All your certificates should be ready now.
 

3- Package your Electron app

It is now time to prepare your app for the submission. You  first need to install electron-packager. This module will be helpful to create the .app and package everything we need. To install :

npm install electron-packager -g

And then run:

electron-packager . --appname=appName --app-bundle-id=com.domain.appname --version=ELECTRON_VERSION --overwrite --platform=mas --arch=x64 --icon=../appName.icns --prune --out=mas-build --ignore --app-version=1.0.0 --ignore=.+.o$

Change ELECTRON_VERSION to the correct version of Electron installed in your machine (run “electron -v” if you are not sure).
This will create your appName.app in a new folder named mas-build. This is usually enough if you want to distribute your app. However, a few more steps are required to submit it properly to the appStore.
As you can see, you also need the .icns file with the requested icon format. You can check here to see how to prepare the perfect .icns.
 

4- Sign your app

You need then to sign your app, so everybody knows it’s coming from a trustworthy developer ūüėČ
The codesign command already exists by default on mac, you will use it to sign your app. Run the following command by properly adding the name of your certificate and the correct path to your appName.app.

codesign --deep --verbose --force --sign "3rd Party Mac Developer Application: $$$$$ (£££££)" PATH_TO/appName.app
codesign --verify -vvvv PATH_TO/appName.app

 

5-Prepare additional files

5.a- Update the Info.plist

Your app is now signed. The next step is to find your appName.app, right-click and select Show Package Contents.
Go to the Contents folder and open the Info.plist file with a text editor (not Xcode).
Add the following code

<key>ElectronTeamID</key>
<pre><string>TEAM_ID</string>

Just before

...
<code><span class="nt"></dict></span>
<span class="nt"></plist>

Here you need to replace TEAM_ID with your teamID, you can find it on your Apple developer account (click Membership then you’ll see a row named Team ID).
 

5.b- Add child.plist and parent.plist

Create the two following files with the corresponding content:

  • child.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>com.apple.security.app-sandbox</key>
    <true/>
    <key>com.apple.security.inherit</key>
    <true/>
  </dict>
</plist>
  • parent.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>com.apple.security.app-sandbox</key>
    <true/>
    <key>com.apple.security.application-groups</key>
    <string>TEAM_ID.your.bundle.id</string>
  </dict>
</plist>

Replace TEAM_ID by your Team ID and your.bundle.id by the unique Bundle ID of your app (we previoudly used com.domain.appname).
 

6- Create a .pkg of your app

Create a new file and name it packageAppStore.sh with the following content.

#!/bin/bash

# Name of your app.
APP="YourApp"
# The path of your app to sign.
APP_PATH="/path/to/YourApp.app"
# The path to the location you want to put the signed package.
RESULT_PATH="~/Desktop/$APP.pkg"
# The name of certificates you requested.
APP_KEY="3rd Party Mac Developer Application: Company Name (APPIDENTITY)"
INSTALLER_KEY="3rd Party Mac Developer Installer: Company Name (APPIDENTITY)"
# The path of your plist files.
CHILD_PLIST="/path/to/child.plist"
PARENT_PLIST="/path/to/parent.plist"

FRAMEWORKS_PATH="$APP_PATH/Contents/Frameworks"

codesign -s "$APP_KEY" -f --entitlements "$CHILD_PLIST" "$FRAMEWORKS_PATH/Electron Framework.framework/Versions/A/Electron Framework"
codesign -s "$APP_KEY" -f --entitlements "$CHILD_PLIST" "$FRAMEWORKS_PATH/Electron Framework.framework/Versions/A/Libraries/libffmpeg.dylib"
codesign -s "$APP_KEY" -f --entitlements "$CHILD_PLIST" "$FRAMEWORKS_PATH/Electron Framework.framework/Versions/A/Libraries/libnode.dylib"
codesign -s "$APP_KEY" -f --entitlements "$CHILD_PLIST" "$FRAMEWORKS_PATH/Electron Framework.framework"
codesign -s "$APP_KEY" -f --entitlements "$CHILD_PLIST" "$FRAMEWORKS_PATH/$APP Helper.app/Contents/MacOS/$APP Helper"
codesign -s "$APP_KEY" -f --entitlements "$CHILD_PLIST" "$FRAMEWORKS_PATH/$APP Helper.app/"
codesign -s "$APP_KEY" -f --entitlements "$CHILD_PLIST" "$FRAMEWORKS_PATH/$APP Helper EH.app/Contents/MacOS/$APP Helper EH"
codesign -s "$APP_KEY" -f --entitlements "$CHILD_PLIST" "$FRAMEWORKS_PATH/$APP Helper EH.app/"
codesign -s "$APP_KEY" -f --entitlements "$CHILD_PLIST" "$FRAMEWORKS_PATH/$APP Helper NP.app/Contents/MacOS/$APP Helper NP"
codesign -s "$APP_KEY" -f --entitlements "$CHILD_PLIST" "$FRAMEWORKS_PATH/$APP Helper NP.app/"
codesign -s "$APP_KEY" -f --entitlements "$CHILD_PLIST" "$APP_PATH/Contents/MacOS/$APP"
codesign -s "$APP_KEY" -f --entitlements "$PARENT_PLIST" "$APP_PATH"

productbuild --component "$APP_PATH" /Applications --sign "$INSTALLER_KEY" "$RESULT_PATH"

You need to do some changes on this file on the first lines:

  • l4: change YourApp.app by the name of your app (with the .app extension), in our case appName.app
  • l6: change /path/to/YourApp.app to the path to your appName.app
  • l8: change ~/Desktop/$APP.pkg to the directory where you want to save your final .pkg, don’t modify the $APP.pkg part
  • l10 and l11: Enter the corresponding names of your two certificates
  • l13: change /path/to/child.plist to the path to your child.plist file
  • l14: change /path/to/parent.plist to the path to your parent.plist file

Finally, run the following command to generate your appName.pkg :

./packageAppStore.sh

 

7- Launch Application Loader and load the .pkg

If you already installed Xcode, you should also have an application called Application Loader. Launch Application Loader and login with your account. You might need to get an app specific password, for this connect to appleid.apple.com and click Generate Passwords… on the APP-SPECIFIC-PASSWORDS section. Enter a Label (for example Application Loader) and copy paste the code to the Application Loader app.
Click Choose and select the freshly generate appName.pkg. This should automatically identify your app based on the Bundle ID.
Finish the whole process of uploading your app.
 

8- Complete your app information

You app build should be available on your iTunesConnect account soon. In the meantime, you need to complete the information about your app. Once done, you can select the build that you want to upload to the appStore and click Submit.
 

9- Some potential issues

If you submitted the .pkg file but it does not appear on itunesConnect, check your email. If you received something like:

Invalid Signature – The executable at path appName.app/Contents/Resources/app/node_modules/robotjs/build/Release/robotjs.node has following signing error(s): code object is not signed at all In architecture: x86_64 . Refer to the Code Signing and Application Sandboxing Guide at http://developer.apple.com/library/mac/#documentation/Security/Conceptual/CodeSigningGuide/AboutCS/AboutCS.html and Technical Note 2206 at https://developer.apple.com/library/mac/technotes/tn2206/_index.html for more information.

You need to sign the different modules mentioned in this email. For that, just do as follow for each module:

electron-osx-sign appName.app appName.app/Contents/Resources/app/node_modules/robotjs/build/Release/robotjs.node

Voil√† ūüôā You can now enjoy some coffee while waiting for the review. Congratulations!

Source: https://electron.atom.io/docs/tutorial/mac-app-store-submission-guide/

June 12, 2017 ademcan No comments

How to draw a Venn diagram in R?

The topic of today is about Venn diagrams, see here for a detailed defition. I will quickly show you how to draw a Venn diagram composed of three distinct datasets in R.

For this purpose you will need the VennDiagram package. Start R and install the required package as follow:

install.packages('VennDiagram')
library(VennDiagram)

The main command to draw your Venn diagram is:

draw.triple.venn(area1 = 3472, area2 = 3528, area3 = 3492, n12 = 3176, n23 = 3323, n13 = 3182, n123 = 3096, category = c("sample1", "sample2", "sample3"), lty = "blank", fill = c("skyblue", "pink1", "mediumorchid") , cex=2, cat.cex=2, cat.fontfamily = rep("serif", 3))

The resulting Venn diagram will look like :

The explanation of the different numbers (area1, area2, area3, n12, n23, n13 and n123) are represented in the figures below:

June 7, 2017 ademcan No comments

How to launch a job on SGE based clusters ?

As bioinformaticians, we often have to deal with computer clusters. There are different computer cluster systems available such as SGE, LSF… Although the main idea is the same, the commands used to submit a job might be slightly different. In this article I will quickly show how to submit a job to an SGE (Sun Grid Engine) based cluster.

There are two main commands that are very useful :

  • qsub: to submit a job to the cluster
  • qstat: to check the jobs you submitted to the cluster

There are two ways to submit a job to a cluster:

1 – Submission via a script

An example of a script is shown below, let’s call the script file jobscript.sh. In this case, it is essential to specify all the parameters as header of the script.

#!/bin/bash
#$ -N jobName
#$ -q jobQueue
#$ -o /path_to/jobs.out
#$ -e /path_to/jobs.err
cd /folder
$YOUR_COMMAND

Here, we are starting a job with the following parameters:

  • -N: name of the job
  • -q: queue on which to run the job
  • -o: path to the output file
  • -e: path to the error file
  • The rest of the script correspond to the commands we want to run

Some additional helpful headers are as follow:

  • -pe smp 8: number of threads to use for the job (here 8)
  • -cwd: start the job on current working directory
  • -M: email address (to get notifications about the job status)
  • -m [b,e,a,s,n]: status to be notified about (beginning, end, aborted, suspended, no mail)

For more information see: http://gridscheduler.sourceforge.net/htmlman/htmlman1/qsub.html

To start your job, you need to run

qsub jobscript.sh

2 – Direct submission from the command line

There is an alternative way to submit a job from the command line.


qsub -N jobName -q jobQueue -o /path_to/jobs.out -e /path_to/jobs.err [ENTER]

cd /folder [ENTER]

$YOUR_COMMAND [Ctrl+D]

This way the job will be submitted as soon as you press Ctrl+D. You can use several commands by pressing ENTER to separate each of them and start the job by pressing Ctrl+D after the last command.

January 19, 2014 ademcan No comments

Save and share your snippets with canSnippet

canSnippetLogoBlack.png

UPDATE : canSnippet is not anymore on beta, I created a new page for the project.
canSnippet’s project page.

I am very happy today to introduce you to canSnippet. canSnippet is an open source web-based application to save and share your code snippets. It is my first ‚Äúbig‚ÄĚ project, thus I would like to have as many comments and feedback as possible. Please don’t hesitate to contact me for any question or remark, I will be happy to answer. For this project I used the CC BY license (I am also moving my whole blog under the same license), more information in the creative common by 4.0 page.
I used the following technologies for canSnippet : HTML, PHP, Javascript and sqlite.

Author: ademcan (ademcan@ademcan.net)
Version: 1.0 beta
License: CC BY

canSnippet is an open source web-based application to save and share your snippets.
The advantages of canSnippet are :
– it’s green (literally)
– open source (License CC BY)
– web-based
– easy installation process
– sqlite database
– syntax highlighting (based on prism.js)
– possibility to save private and public snippets
– unique link per snippet for easy sharing
– support many programming languages (html, css, javascript, python, java, php, ruby, c, c++, sql)
– rss feed
– search engine
– browse panel using AJAX
– responsive design
– it’s flat-green¬†ūüôā

Todo :
– search API
– tags support
– including prismjs plugins and themes
– create new non-flat theme

Alternatives to canSnippet :
SnippetVamp

Installation :
– Download the latest canSnippet.zip file
– send the zip file to your server and unzip
– give the following rights
705 to folders
604 to files
– open the following URL in your web browser
http://[YOUR_DOMAIN]/canSnippet/
– Follow the unique instruction (i.e. fill in the form)
– Remove the install.php file for higher security
– You are done¬†! Now you canSnippet…

Screenshots:
http://ademcan.net/gallery/?dir=canSnippet

Demo :
http://ademcan.net/canSnippet/demo

Download :
GitHub : https://github.com/ademcan/canSnippet
zip | 7z (v1.0 beta ‚Äď 22.01.2013)

I would also like to thank my two super beta-testers Yome and Bajazet, thank you guys !
Again¬†: this is a beta. I am still working on the code to improve it as much as possible, and I am very open to any discussion about the code and the design¬†ūüôā

Enjoy !

Source: New feed

December 10, 2013 ademcan No comments

[FR] L’identit√©

 

Fingerprint_picturesvg.png
J’ai √©crit cette courte “histoire” pour ma participation au Prix de la Sorge 2013.
Merci à Yome et Yohan (le luxembourgeois) pour les corrections.

L’iDentit√©

¬ę¬†Ch√©rie, je vais passer chez ma m√®re cet apr√®s-midi¬†¬Ľ s’exclama Christine.
¬ę¬†Fais-attention, tu ne devrais pas utiliser la iTransport si souvent, tu sais tr√®s bien que cette machine a caus√© des ennuis √† certains de ses utilisateurs.¬†¬Ľ
Christine ne l’√©couta pas en rentrant dans sa iBeauty pour se pr√©parer de la t√™te aux pieds en 30 secondes. John se m√©fiait encore plus chaque jour qui passe de toutes ces nouvelles technologies qui avaient d√©sormais envahi leur vie quotidienne. Il ne pouvait pas non plus trop s’en plaindre, lui qui se rendait tous les jours avec la iTransport depuis chez lui de Sophia √† l’Universit√© de Boston o√Ļ il √©tait professeur en √©tudes g√©n√©tiques. Il se tourna sans trop insister vers son √©cran g√©ant pour terminer son projet, allong√© sur son canap√©, le tout transmis aux travers des iElectrodes pos√©es dans son cerveau.
La soci√©t√© Aplle, avait lanc√© la iTransport il y a cinq mois. Cette machine de t√©l√©portation permettait de se rendre en quelques secondes √† n’importe quel endroit du globe disposant d’une autre iTransport. La technologie √©tait bas√©e sur la fission et la fusion des mol√©cules composant le corps humain. Chris Temp √©tait le chercheur qui s’occupait de ce projet au sein de la soci√©t√©. Il √©tait vraiment fier de son dernier bijou. Il ne pouvait pas s’emp√™cher de penser √† l’ann√©e 2001, l’ann√©e du s√©quen√ßage du g√©nome qui avait d√Ľ occuper pendant des ann√©es plusieurs groupes de recherche, dont le fameux Watson. Aujourd’hui, le s√©quen√ßage d’un organisme entier ne prenait pas plus de 5 secondes…
Avec la iTransport les notions de fronti√®res, pays et nationalit√©s avaient compl√®tement disparu. Toutes les communes √©taient au moins √©quip√©es d’une machine, ce qui permettait de se rendre √† des milliers de kilom√®tres pour passer la soir√©e dans un restaurant √† l’autre bout du monde. Dans la tr√®s grande majorit√© des cas, cette machine fonctionnait parfaitement. Cependant, il est arriv√© que la iTransport ne fonctionne pas comme pr√©vu dans certaines situations. Le syst√®me de t√©l√©portation est bas√© sur la fission des mol√©cules au lieu de d√©part et leur fusion dans des proportions et positions exactes √† la destination finale. Une simple erreur de proportion ou position d’une seule mol√©cule a √©t√© fatale pour certains de ses utilisateurs. N√©anmoins le leitmotiv de la compagnie Aplle √©tait clair ¬ęPas de progr√®s sans sacrifices¬Ľ m√™me si le sacrifice devait √™tre une vie humaine. Il restait encore certaines personnes qui ne partageaient pas cette id√©ologie mais elles √©taient trop facilement exclues de la soci√©t√© et consid√©r√©es comme ¬ę¬†attard√©es¬†¬Ľ pour √™tre pris au s√©rieux. John ne faisait pas partie de ces ¬ę¬†attard√©s¬†¬Ľ mais il les comprenait bien, lui, qui avait fait des √©tudes approfondies en g√©n√©tique, r√©alisait bien que ce n’√©tait pas une notion √† prendre √† la l√©g√®re. Cependant, il ne se plaignait pas trop et utilisait la iTransport assez fr√©quemment. Il devait d’ailleurs se rendre √† Oslo la semaine prochaine car il lui serait attribu√© le plus grand prix en g√©n√©tique pour ses travaux de recherches. Il recevra le prix Krogel en g√©n√©tique. C’est en particulier de ce fait qu’il √©tait tr√®s occup√© en ce moment, il devait finaliser ses analyses et surtout pr√©parer un discours digne de ce nom, ce qui n’√©tait pas chose facile, lui qui ne supporte pas d’√™tre mis sur le devant de la sc√®ne.¬†¬†¬†¬†John sursauta. Il venait de faire un cauchemar, il se retrouvait dans les ann√©es 1990. Il vivait dans un bloc en b√©ton et devait tout faire √† la main¬†: saisir du texte au clavier, utiliser la t√©l√©commande, ouvrir la porte, se doucher… S’il ne connaissait pas d√©j√† toutes ces machines bizarres gr√Ęce √† son arri√®re-arri√®re grand p√®re il n’aurait jamais su √† quoi elles servaient. Il aurait certainement eu l’impression de se retrouver sur une autre plan√®te.
Christine était de retour, elle apparut toute souriante au travers de la vitre de la iTransport.
¬ę¬†Bonjour ch√©rie.¬†¬Ľ
¬ę¬†Salut, comment va ta m√®re¬†?¬†¬Ľ
¬ę¬†Elle va tr√®s bien figure-toi, elle m’a annonc√© qu’elle participera √† la remise des prix Krogel √† Oslo.¬†¬Ľ
¬ę¬†Je ne pense pas que ce soit raisonnable qu’elle vienne. De plus, la c√©r√©monie de remise des prix sera retransmise en direct par hologramme.¬†¬Ľ
¬ę¬†Je ne vois pas ce qui te pose probl√®me, si elle participe, c’est pour te faire plaisir.¬†¬Ľ
¬ę¬†Oui, mais tu sais aussi tr√®s bien qu’elle n’a jamais utilis√© la iTransport et que cette machine est fortement d√©conseill√©e aux personnes √Ęg√©es.¬†¬Ľ
¬ę¬†Ah John¬†! Que puis-je te dire de plus…¬†¬Ľ
John se retourna sans trop insister pour continuer son travail. Il devait terminer sa pr√©sentation le plus rapidement possible pour avoir le temps de r√©p√©ter son discours. Il n’√©tait vraiment pas dou√© pour parler en face d’un public, encore moins quand ce dernier √©tait compos√© de grands chercheurs dont le professeur Temp.

Christine se r√©veilla lentement de son second sommeil, servit son caf√© et se pr√©para pour sortir chercher les enfants √† l’√©cole. Christine et John avaient deux adorables filles. Ils faisaient tout pour qu’elles grandissent dans de tr√®s bonnes conditions. C’est pour cela que John tenait aussi beaucoup √† son prix Krogel. Le sommeil avait √©t√© √©tudi√© en profondeur et les chercheurs d√©couvrirent que les humains disposaient plut√īt d’un sommeil polyphasique alors que la soci√©t√© des ann√©es 1990 les avait rendu mono-phasique. Une simple sieste de vingt minutes toutes les quatre heures suffisait largement.

John re√ßu un message t√©l√©pathique de la part de l’un de ses collaborateurs Fredy Curck¬†:
¬ę¬†John, il faut imp√©rativement que tu me retrouves le manuscrit de th√®se de ton ancien √©l√®ve Greg. Je pense que celui-ci peut contenir des informations tr√®s importantes pour mener notre projet √† bien.¬†¬Ľ
John et Fredy √©tudiaient en secret la iTransport. Ils avaient pr√©vu de la d√©monter et d’analyser en d√©tails les technologies utilis√©es. Le but de John √©tant tout d’abord d’√™tre s√Ľr de son utilisation saine et pourquoi pas en faire une base pour ses futures analyses. John s’empressa de se rendre au sous-sol de sa maison o√Ļ il conservait encore bizarrement des versions papier de certains documents, dont le fameux manuscrit de th√®se. Le papier √©tant tr√®s cher, et tout le monde disposant d’espaces √©lectroniques infinis pour sauvegarder leurs documents, il √©tait tr√®s rare de trouver encore des documents au format papier, cela va s’en dire qu’il √©tait encore plus difficile de trouver une imprimante. John √©tait bricoleur et avait r√©ussi √† remettre en marche une imprimante qu’il avait retrouv√© dans les objets de son arri√®re-arri√®re grand-p√®re.
Il retrouva tr√®s rapidement le manuscrit en question et s’empressa de le scanner au travers de ses lunettes pour le transmettre √† Fredy. Il ne pouvait s’emp√™cher de se demander ce que Fredy pouvait trouver d’int√©ressant dans cette th√®se. Il ne se souvient d’aucun r√©sultat tr√®s important au sein de ce manuscrit qui pourrait leur permettre d’avancer dans l’analyse de la iTransport.
¬ę¬†Ok Fredy, voici donc le manuscrit que tu m’as demand√©. Je peux savoir ce que tu cherches exactement¬†?¬†¬Ľ
¬ę¬†Pas maintenant John, il faut que je regarde cela rapidement. La c√©r√©monie des Krogel √† lieu dans moins d’une semaine. Tu imagines si nous pouvions avoir des r√©sultats juste avant cette c√©r√©monie¬†?¬†¬Ľ
¬ę¬†Oui effectivement ce serait une tr√®s bonne chose…¬†¬Ľ
¬ę¬†Papaaa, nous t’attendons pour manger¬†!¬†¬Ľ S’√©cria Sophie, la plus grande des deux filles.
¬ę¬†J’arrive mon amour¬†! Fredy, je dois y aller, tu sais que nous mangeons √† table une fois par semaine, j’attends de tes nouvelles avec impatience, tiens-moi au courant d√®s que tu as du nouveau, salut.¬†¬Ľ

Les capsules nourrissantes √©taient largement suffisantes pour permettre au corps humain de s’approprier tous les √©l√©ments n√©cessaires. N√©anmoins, Christine et John avaient d√©cid√© qu’ils mangeraient √† table une fois par semaine, m√™me si cela semblait tr√®s archa√Įque.

¬ę¬†John, nous avons un probl√®me…¬†¬Ľ, c’√©tait Fredy, sa voix tremblait. John ne pouvait plus le joindre mais il appris rapidement que des forces de l’ordre avaient fait irruption √† son domicile et r√©cup√©r√© tout le mat√©riel n√©cessaire √† l’√©tude de la iTransport. La soci√©t√© Aplle disposant de tous les droits sur le produit, il √©tait formellement interdit d’analyser cette machine. Toute personne essayant de comprendre son fonctionnement risquait une peine tr√®s lourde. C’√©tait horrible, qu’allez-t-il se passer maintenant¬†? John essayait en vain de joindre son ami et de faire quelque chose pour le sauver. Il se rend√ģt chez lui o√Ļ la femme de Fredy √©tait seule et d√©sesp√©r√©e. Il savait pertinemment que Fredy lui aurait laiss√© un message, un signe. C’√©tait bien le cas, certains documents tr√®s importants de Fredy √©taient toujours gard√©s dans leur bo√ģte secr√®te en commun. John ne risquait pas grand-chose, leurs discours avec Fredy √©taient toujours chiffr√©s. Il n’√©tait pas possible pour John de laisser tomber cette affaire. Avec tous les documents il se rend√ģt chez lui pour continuer les travaux¬†; il ne lui restait plus que deux jours avant la c√©r√©monie de remise des prix Krogel.

Ces deux deniers jours, John ne respecta pas son cycle polyphasique de sommeil, il ne dormit pas du tout. En lisant les rapports de Fredy il r√©alisa pourquoi son ami lui avait demand√© la th√®se de son ancien √©l√®ve. Il avait d√©couvert une potentielle faille dans le syst√®me de la iTransport. Le court instant entre la fission et la fusion des particules composant le corps humain √©tait le point faible de la machine. Il devait alors analyser ces ondes de tr√®s grandes amplitudes. La th√®se en question correspondait tout √† fait √† ce qui pouvait aider John et Fredy √† se faufiler au sein du m√©canisme de fonctionnement de la iTransport. John s’empressa de relire la th√®se de Greg et y retrouva effectivement un algorithme permettant la r√©ception et la modification des ondes qui transportent les mol√©cules, les m√™mes utilis√©es dans la iTransport.
John √©tait tout excit√©, en plus de recevoir le prix Krogel, il pouvait devenir le chercheur le plus reconnu de la Terre s’il arrivait √† se faufiler dans le syst√®me de la iTransport. Bien s√Ľr tout cela n’√©tait pas sans risque. Il pourrait m√™me tout au contraire perdre son prix Krogel, mais rien ne pouvait arr√™ter John. Ce projet d√©passait tout ce qu’il pouvait imaginer. Il se doutait que ce syst√®me poss√©dait une voire plusieurs failles et c’est lui qui les d√©couvrirait.

John disposait de deux iTransports √† son domicile, son salaire √©lev√© lui permettait ce luxe. Il regroupa rapidement ses deux machines dans sa salle d’√©tude. Il lui fallait maintenant un cobaye, il ne pouvait pas risquer Katzy, sa chatte ador√©e, de plus ses filles ne le lui pardonneraient jamais s’il arrivait quoi que ce soit √† Katzy. Il d√©cida de se servir d’un simple objet et amena son imprimante avec lui. La iTransport disposait d’un syst√®me de reconnaissance et n’aurait jamais accept√© de fonctionner avec un objet connu autre qu’une particule vivante, ce qui √©tait la raison pour laquelle elle avait √©t√© cr√©√©e. Un des rares objets qui ne serait pas reconnu et donc potentiellement rejet√© par la iTransport √©tait la vieille imprimante qui lui restait. C’est avec un pincement au cŇďur qu’il d√©cida de l’utiliser en tant que cobaye.
Il testa donc rapidement la t√©l√©portation de l’imprimante d’une iTransport vers l’autre. Le transfert √©tait tellement rapide qu’il n’avait pas eu le temps d’intercepter d’ondes, mais comment Fredy avait-il fait¬†? En relisant rapidement les rapports de Fredy il r√©alisa que son ami avait travaill√© dans une chambre froide pour ralentir naturellement les ondes pendant le transfert. John f√ģt de m√™me en se rendant dans le sous-sol de sa maison. En renouvelant le transfert avec toutes les machines en place il commen√ßa √† apercevoir des signaux. L’√©cran affichait des nombres et des lettres qui n’avaient aucun sens tel quel. Il ne savait pas trop comment s’y prendre mais les notes de Fredy allaient lui √™tre d’une aide exceptionnelle.
Il installa rapidement l’algorithme d’identification des ondes sur l’ordinateur principal et r√©p√©ta la manipulation de t√©l√©portation de son imprimante. L’√©cran affichait un message binaire, qui ne repr√©sentait rien aux yeux de John dans son √©tat actuel. La section ¬ę¬†R√©sultats¬†¬Ľ de la th√®se de Greg contenait des informations √† propos de cette s√©quence binaire. Il s’agissait en fait de la composition de l’imprimante. John s’arr√™ta. Que voulait dire la composition¬†? Une explication lui effleura l’esprit mais il ne voulait pas y croire. Il n’y avait qu’une seule solution pour pouvoir confirmer ses doutes, il devait essayer la machine avec un organisme vivant.
Il courut au jardin et trouva une coccinelle sur une feuille de son prunier. John ne pouvait pas faire de mal √† une fourmi mais cette fois c’√©tait pour la bonne cause, il en √©tait excus√©. Il se pr√©cipita √† nouveau dans le sous-sol de sa maison et r√©p√©ta la manipulation avec la coccinelle. Les s√©quences binaires ne s’affichaient plus sur l’√©cran, il ne distinguait plus rien. Il r√©p√©ta la manipulation une dizaine de fois avant de voir appara√ģtre le premier signal. Il s’agissait d’une s√©quence, une suite de lettre cette fois-ci, John lisait
¬ę¬†A, A, C, T, A, G, T…mon Dieu¬†!¬†¬Ľ S’exclama-t-il, ¬ę¬†ils n’ont pas os√©…¬†¬Ľ
Il s’agissait de la s√©quence d’ADN de la coccinelle. John pouvait facilement distinguer tous les g√™nes de la petite b√™te. Il pouvait m√™me en d√©duire le ph√©notype de celle-ci. John √©tait √©bahi, l’ADN, le code g√©n√©tique √©tait la derni√®re identit√© qu’il restait aux personnes. Plus rien n’√©tait secret, les informations personnelles, le groupe sanguin, les empreintes digitales… il ne restait plus que l’ADN… mais cela n’√©tait plus vrai d√©sormais. John √©tait persuad√© que la iTransport utilisait uniquement les informations des mol√©cules pour effectuer les r√©actions de fission et fusion. Il ne se doutait pas une seule seconde que tout le corps √©tait scann√© jusqu’au d√©tail pr√®s du code g√©n√©tique. En analysant en d√©tails les donn√©es transmises il r√©alisa un lien vers une adresse internet¬†: iDbD, il s’agissait certainement de la base de donn√©es o√Ļ toutes les s√©quences √©taient stock√©es.
John s’assis, il √©tait t√©tanis√©, il ne lui restait plus rien, il ne restait plus rien de l’humanit√©. La d√©couverte qu’il venait de faire √©tait une charge trop lourde pour lui. La c√©r√©monie de remises des prix Krogel avait lieu dans moins de deux heures, qu’allait-il faire¬†?…

Image source : Fingerprint Рwikimedia

Source: New feed

October 11, 2013 ademcan No comments

Goodbye Piwik !

This is not an anti-Piwik article. I have started using Piwik a few months ago. I really liked it, it is a powerful and open-source analytics tool.
If today I say “Goodbye” to Piwik, it is because I stopped using any analytic tool at all.
I was checking my stats very often, I was affected at some point, I couldn’t stay without checking many times a day.

A very interesting article from Ploum made me wonder about it.
I don’t want to write articles or share links depending on the interest of my readers (of course I care about you), but I want you to read things I will write with pleasure, with love. I completely uninstalled Piwik, I don’t know how many people are reading me, I only hope to be helpful to at least someone with my tutorials or information.
NB¬†: You can also check your Ghostery, it says “No Trackers Found” 😉
Do the same, feel free.

Source: New feed

September 19, 2013 ademcan No comments

Alternative to locate/find command line on mac

In linux you can use the “find” or “locate” command to look for a specific file or folder. The best alternative I know on Mac is Spotlight. However Spotligh is based on a graphical interface and the “best” option is to show all the results on the Finder, which is not very handy if you work all the time on the command line. After some research, I found a way to use Spotlight from the command line and show the results as the find or locate command on linux.

The main command to show Spotlight results on the terminal is :

    mdfind -name $NAME

where $NAME is the word you are looking for.

To make it easier to use and remember, I put an alias on my bash
1 – Open the file ~/.bash_profile
2 – Add the following lines

    search()
{
mdfind -name $1
}
alias find=search

3 – Reload you bash

    source ~/.bash_profile

you can now use the “find $NAME” command within your terminal as you would use it on linux and enjoy the results 😉

Related links :
Bash alias and parameters
Search Spotlight from the osx terminal
Source: New feed

September 16, 2013 ademcan No comments

Getting rid of Google on Android

noGoogleAndroid.jpg
I recently switched again to Android. I was getting very limited in iOS, it was a pain to do simple things that you would do easily with Android (file transfert, syncing with multiple computers, real Bluetooth…). However, there is a big problem with Android¬†: Google…
After receiving my second Androphone I realised that all the apps I installed in my first one were saved online on the Play Store. I knew the equation “Google¬†!= Privacy” and this was decisions’ time for me. I will explain in this article how to use Android without getting annoyed even by the G of Google.
I already stopped using any service from Google a few months ago. I am using owncloud for my contacts and calendars, Leed for my RSS feeds and Shaarli for my links (only private links). The biggest problem for me was to get rid of the Play Store. Luckily on Android it is possible to install third party apps without “jailbreaking” and many alternative app-stores exist.

The first step when you get your Androphone is to install Cyanogenmod (a.k.a CM, or any other alternative ROM respecting your privacy). It is a very nice ROM running on multiple devices and always up-to-date with the latest version of Android. Although my device is a Nexus (and thus get all the latest version of Android), I still decided to install Cyanogenmod to get completely rid of Google. The installation is straightforward, everything is clearly described on the wiki page of your device. The idea of installing CM is to use a stock version of Android, even without the Google Apps, thus do not install the additional Google Apps package for CM, I will show you how to survive without them.

First of all let’s look at the Play Store alternatives, as we need somewhere to download interesting apps.
There are many options, I tried the following ones.
F-Droid, an appstore containing only free and open-source softwares (FOSS) – F-Droid.apk
1 Mobile Market, where you can find the majority of the Play Store apps – 1mobile.apk
SlideMe
Amazon Android Appstore
PandaAppPandaApp.apk
GetJar
Opera mobile store
Firefox marketplace

For some of the stores you will need to create an account. I recommend to use junk/fake email services such as yopmail which works very well. Discodog.fr presents a list of junk email alternatives, I didn’t try all of them, be prudent and check by yourself first.

You can also use the google play downloader app from Tuxicoman. It is a graphical interface written in Python which connects to the Play store and downloads all the apps you want to your computer. If you need and Android ID, you can use the android-checkin script to create one (using a fake gmail address). (thank you Tuxicoman for the tip)
Another option is the APK Downloader pugin, which is unfortunately only available for the Google Chrome browser.

IDEA: Why not create a web-app accessible from your Androphone to be able to download the .apk files directly in your smartphone instead of dealing with your computer? If someone else is interested, please let me know, we can do that 😉

As we now have many Play Store alternatives, here are some alternatives for the original Google Apps.
First, try to get your own domain name, it is really cheap and very nice to have your email address like firstname@name.com. In this situation you also have all the control over your Privacy.
K9-mail, this app is a must-have.
Firefox, the Android app is very nice, I really enjoy using it (you can also access your apps downloaded from the Firefox Marketplace)
Navit (I recently discovered OsmAnd which is better and work the same way with offline maps) as a Navigation system, it runs on multiple platforms and is based on OpenStreetMap maps. It works offline, the map is saved on your Smartphone and you won’t need any data connection to use it. Please consider improving OSM maps, it is a very interesting experiment, start by reading the beginners’ guide.
Owncloud
MuPDF a simple document viewer
DuckDuckGo as your favorite search engine (.apk file link on the top of the page).
Gibberbot, a chat client supporting the open XMPP protocol and OTR encryption. In addition, I recommend to install your personal XMPP server.

So far so good, but I still miss the following features of iOS¬†: by default support of calDAV and cardDAV, a nice reminders app (with calDAV support). There are some calDAV and cardDAV sync app but they are mainly not open-source (except caldav sync adapter) and they don’t work as expected (automatic sync, two-ways sync…) — I found DavDroid (carDAV and calDAV support) and Mirakel (task manager with calDAV sync) — Google is unfortunately trying to force you to use your Google account, then everything is easier.

Interesting links :
Me & My shadow
Security in-a-box : How to use smartphones as securely as possible

Images :
Google
Android
Peace Love and Happyness
Source: New feed