Aller au contenu

Le fil des geeks informatiques


Johnnieboy

Messages recommandés

1 hour ago, cedric.og said:

Essaye un chromebook alors, ça devrait te plaire.

 

  Mon but ultime est de ne pas avoir autre chose que mon téléphone portable (quitte à rajouter quelques trucs autour), que de toute façon j'aurai toujours sur moi. Je poursuis ce graal depuis les premiers plam. Il n'y a pas de raison qu'on n'y arrive pas. J'y suis quasiment , je dirais 90%. Je retiens l'idée du Chromebook pour remplacer le portable cependant (faut que je vois si ça solutionne le problème de la sortie hdmi). Par contre faudra que je bidouille pour installer un caml dessus : je fais des cours de programmation interactifs en projetant mon terminal sur l'écran de l"amphi et le reste au tableau. Finalement c'est mieux que l'intégrale slide qui a tendance à hypnotiser les étudiants.

Lien vers le commentaire
il y a 35 minutes, Kassad a dit :

Finalement c'est mieux que l'intégrale slide qui a tendance à hypnotiser les étudiants.

Tu as songé à faire tes slides sur fond noir ?

Lien vers le commentaire
  • 2 weeks later...
On 14 février 2018 at 9:51 AM, cedric.og said:

Si, on le sait, sur un OS libre dont les audits se font continuellement.

LOL. Tu ne sais même pas de manière certaine comment le processeur au niveau "en-dessous" interprète ce code binaire que tu es si fier qu'il puisse être produit déterministiquement. Ni ce que les autres composants de ta machine font dans ton dos, comme le Management Engine intégré.

Lien vers le commentaire
Le ‎19‎/‎02‎/‎2018 à 13:57, Kassad a dit :

 

  Mon but ultime est de ne pas avoir autre chose que mon téléphone portable (quitte à rajouter quelques trucs autour), que de toute façon j'aurai toujours sur moi. Je poursuis ce graal depuis les premiers plam. Il n'y a pas de raison qu'on n'y arrive pas. J'y suis quasiment , je dirais 90%. Je retiens l'idée du Chromebook pour remplacer le portable cependant (faut que je vois si ça solutionne le problème de la sortie hdmi). Par contre faudra que je bidouille pour installer un caml dessus : je fais des cours de programmation interactifs en projetant mon terminal sur l'écran de l"amphi et le reste au tableau. Finalement c'est mieux que l'intégrale slide qui a tendance à hypnotiser les étudiants.

 

Démarche intéressante. En fait de nombreux fabriquants ont, je crois, tenté le coup de faire du téléphone un ordinateur de poche universel. Un des plus abouts en date c'était le padfone d'Asus (un téléphone assez puissant, associé à un module "tablette" servant d'écran et de recharge), qui n'a pas été un succès commercial, comme toutes les tentatives du genre. Ils avaient aussi tenté l'inverse, la grosse tablette qui fait téléphone  (le fonepad, un truc qui parait séduisant, couplé à une oreillette bluetooth à commande vocale, qui permettrait d'appeler sans sortir le gros machin) mais qui n'a pas bien marché non plus.

 

Microsoft a aussi tenté le coup avec continuum pour les windows phone .... mais ça n'est pas ça qui a permis a microsoft de percer sur le marché des smartphones. Ca existe encore mais pour combien de temps .... https://www.microsoft.com/fr-fr/windows/continuum

 

Bref, ça serait très intéressant de connaître ton setup et son évolution. 

 

Il y a 6 heures, Rübezahl a dit :

OVH propose des VPS localisés à Singapour

https://www.ovh.com/fr/vps/

 

 

Si le tuto "mon proxy dans le cloud pour les nuls" existe, je suis preneur :P

Lien vers le commentaire
34 minutes ago, Jesrad said:

LOL. Tu ne sais même pas de manière certaine comment le processeur au niveau "en-dessous" interprète ce code binaire que tu es si fier qu'il puisse être produit déterministiquement. Ni ce que les autres composants de ta machine font dans ton dos, comme le Management Engine intégré.

Je ne vais pas relire la conversation mais il le semble que j'ai dit "hormis le matériel" ou quelque chose comme ça.

Lien vers le commentaire
il y a 59 minutes, Jesrad a dit :

LOL. Tu ne sais même pas de manière certaine comment le processeur au niveau "en-dessous" interprète ce code binaire que tu es si fier qu'il puisse être produit déterministiquement. Ni ce que les autres composants de ta machine font dans ton dos, comme le Management Engine intégré.

Et sans parler que les OS open source soi-disant audités régulièrement peuvent très bien laisser passer des failles de sécurité pendant longtemps. Pour Shellshock, il a fallu 25 ans pour la découvrir. Un putain de quart de siècle, de Septembre 1989 à Septembre 2014.

Lien vers le commentaire
On 04/03/2018 at 4:11 PM, FabriceM said:

Bref, ça serait très intéressant de connaître ton setup et son évolution.

 

Aujourd'hui je suis équipé d'une oneplus five avec 128 G. J'ai une batterie de 10 000 mAh, et un clavier pliant 1byOne. J'ai installé Termux comme appli et ensuite tout ce dont j'avais besoin pour travailler (donc essentiellement latex). J'utilise Google Drive pour avoir une gesion du transfert de fichiers quasi transparente (je fais aussi pas mal par sftp mais surtout pour mettre à jour mon site web académique).

 

 Au final ce que je ne peux pas bien faire sur le smartphone : utiliser inkscape pour faire des schémas (oui on peut techniquement mais là c'est un peu pour la beauté du geste car c'est vraiment pas efficace), me connecter sur un projecteur pour faire un talk (je squatte un ordi ou j'envoie un pdf). Donc le fait de supporter MHL deviendra un must pour mon prochain smartphone.

  • Yea 1
Lien vers le commentaire
il y a une heure, Kassad a dit :

me connecter sur un projecteur pour faire un talk

Oui, c'est super frustrant en fait.

Lien vers le commentaire

Programmeurs, programmeuses : Je cherche une fonction de hash en C afin de détecter quand une structure mémoire a été modifiée, afin de stocker la structure en dur dans un fichier (je rajoute un champ avec la valeur du hash, la version de la structure ainsi que sa taille, quand je stocke la structure je calcule le hash et quand je la charge depuis le disque dur je vérifie que le hash est valide et s'il ne l'est point je remet la structure à zéro par défaut)

 

Des idées de fonctions de hash qui mélange les bits bien comme il faut ? Je n'y connais rien. Un truc pas compliqué ça serait mieux histoire que je m'instruise

Lien vers le commentaire

Pourquoi pas une fonction qui existe déjà ? Genre sha 256 ou 512. Attention je suis un noob complet en crypto donc à prendre avec des grosses pincettes.

Si tu peux utiliser un truc comme sha256 tu peux à la limite faire un hash de chacun des champs de ta structure puis tu concatènes les hash et tu hash encore une fois le tout. Après ça dépend de tes contraintes de perfs et de niveau de sécurité.

Lien vers le commentaire
22 minutes ago, ttoinou said:

Par contre ca serait pratique de stocker ca dans un unsigned long long (64 bits) je crois pas que SHA aie ca

 

Ben si, en ne prenant que les 8 premiers (ou derniers, ou au mileu, on s'en fiche) octets du hash généré.

 

Sinon n’importe quelle fonction de hash fera l'affaire. Tu as une liste sympa sur Wikipedia : https://en.wikipedia.org/wiki/List_of_hash_functions. https://en.wikipedia.org/wiki/List_of_hash_functions#Non-cryptographic_hash_functions sera surement le plus simple à implémenter. djb2 a l'air parfait pour ton besoin.

Lien vers le commentaire
3 minutes ago, Noob said:

Quels sont les conséquences en cas de faux conflits ? Est-ce que ça serait un vrai problème ?

800 bits hachés sur 64 faudrait vraiiiiiiiment pas avoir de bol pour se taper une collision. À mon avis tu peux faire ton choix au hasard dans les algos connus : https://fr.m.wikipedia.org/wiki/Liste_de_fonctions_de_hachage

Lien vers le commentaire

Merci je vais regarder ça ! J'avais oublié qu'on pouvait tronquer et c'était encore un hash

 

En gros si il y a une collision ça voudrait dire que je ne détecte pas que quelqu'un a modifié la structure ou une erreur de lecture disque, pas très grave quoi. A moi de vérifier derrière que les valeurs de la structure ne sont pas farfelues aussi !

Lien vers le commentaire
6 minutes ago, Kassad said:

800 bits hachés sur 64 faudrait vraiiiiiiiment pas avoir de bol pour se taper une collision. À mon avis tu peux faire ton choix au hasard dans les algos connus : https://fr.m.wikipedia.org/wiki/Liste_de_fonctions_de_hachage

Effectivement, en fait ma question partait du principe qu'il passait d'une fonction de classe crypto à une fonction pour hashtable sur lesquels on a plus vraiment les mêmes garanties. Pour une hashtable, ça se traduit juste par une liste plus ou moins longue de sauts pour retrouver le bon éléments, lui il bazarde son contenu c'est pas tout à fait les mêmes conséquences.

Lien vers le commentaire
  • 3 weeks later...
Le 05/03/2018 à 16:38, Kassad a dit :

me connecter sur un projecteur pour faire un talk (je squatte un ordi ou j'envoie un pdf).

 

Faut que j'essaie mais dans ma boîte, ils viennent de mettre un truc où tu peux projeter ton téléphone. Faut installer une app et ça passe par le wifi de la salle.

(enfin, l'université a peut-être pas les sous)

Lien vers le commentaire
On 22/03/2018 at 7:10 PM, ttoinou said:

Il y a des développeurs C/C++ OSX Xcode ici ?

J'ai fait deux trois apps, il y a quelques années pourquoi ?

 

1 hour ago, Adrian said:

so f***ing true

A mon avis c'est aussi par design. Typiquement Google utilise les résultats des captchas pour labelliser ses images pour pouvoir les utiliser dans google maps.

Et Google ne va pas investir de l'argent dans la classification d'image juste pour les beaux yeux du net. Donc j'en viens à une façon simple de procéder:

C'est le net qui va classifier les images pour eux.

 

Là je spécule, mais si je devais bootstrapper un tel système je ferais comme ceci:

Par exemple si une image n'a aucun label, on peut pas déterminer si les réponses aux captchas sont celles d'utilisateurs legit ou de bots.

 

Donc on file une série d'images neuve à classifier et on fait échouer le test. Ensuite seulement on donne une série d'images déjà classifiées pour faire passer le test.

Si le test réussi alors les labels de la première série sont retenus sinon ils sont rejetés. En faisant passer la même image lors de plusieurs test Google peut enfin tirer des labels satisfaisant et utiliser l'image à la fois pour les captchas et pour son propre système.

 

Les images passent donc d'un état où elles sont vierges et ne peuvent pas servir à  déterminer s'il s'agit d'un bot ou non. Puis une fois qu'elles ont été classifiées suffisamment de fois, elle entre dans le système pour le vrai test de captcha. Puis Google les vire du système une fois qu'elles ont été trop utilisése pour risquer qu'un bot les mémorise.

C'est pour ça qu'à mon avis vous avez pas souvent eu un seul captcha à passer.

Lien vers le commentaire
Le 3/22/2018 à 19:53, Cthulhu a dit :

Ça dépend de la question.

 

à l’instant, Noob a dit :

J'ai fait deux trois apps, il y a quelques années pourquoi ?

 

Je code un plugin en C++ et j'avais des crash avec ce genre de log :

Citation

Application Specific Information:
objc_msgSend() selector name: isKindOfClass:


Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   libobjc.A.dylib                   0x00007fffa523301d objc_msgSend + 29
1   com.apple.AppKit                  0x00007fff8d8e9623 -[NSWindow _shouldGetCornerMaskFromVisualEffectView] + 93
2   com.apple.AppKit                  0x00007fff8d9fb7e3 -[NSWindow _cornerMask] + 95
3   com.apple.AppKit                  0x00007fff8d9fb740 -[NSWindow _cornerMaskOrNil] + 22
4   com.apple.AppKit                  0x00007fff8da75df5 __67-[NSWindow _updateSettingsSendingScreenChangeNotificationIfNeeded:]_block_invoke + 229
5   com.apple.AppKit                  0x00007fff8da01d48 NSPerformVisuallyAtomicChange + 147
6   com.apple.AppKit                  0x00007fff8d9837cc -[NSWindow _updateSettingsSendingScreenChangeNotificationIfNeeded:] + 444
7   com.apple.AppKit                  0x00007fff8dc78d50 -[NSWindow _screenChanged:] + 58
8   com.apple.AppKit                  0x00007fff8dc78ccf -[NSWindow _displayChangedSoAdjustWindows:] + 152
9   com.apple.AppKit                  0x00007fff8da5465f __44-[NSApplication makeWindowsPerform:inOrder:]_block_invoke + 27
10  com.apple.AppKit                  0x00007fff8dd087e1 __52-[NSApplication _findWindowWithOptions:passingTest:]_block_invoke + 26


etc..

Et je ne savais pas du tout quoi faire (j'ai essaye les zombies Xcode Instruments mais le crash ne se produisait plus) ; mais bon apparemment ca a l'air d'etre de la faute de mon logiciel hote puisque meme quand je n'utilise pas mon plugin ca crashe comme cela.

 

Et maintenant j'essaye de comprendre pourquoi sur certains mac mon plugin ne se charge pas (aucun message d'erreur, juste ca charge pas, et c'est pas sur ma machine donc je ne peux pas reproduire le bogue). Apparemment il faut faire otool -L nomExecutable pour connaitre toutes les dependances d'un executable pour OSX (equivalent de Dependency Walker sur Windows) mais elles ont l'air plutot standards et incluses par defaut dans OSX :(

Citation

    /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0)
    /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon (compatibility version 2.0.0, current version 157.0.0)
    /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 21.0.0)
    /System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox (compatibility version 1.0.0, current version 492.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1213.0.0)
    /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0)
    /System/Library/Frameworks/WebKit.framework/Versions/A/WebKit (compatibility version 1.0.0, current version 600.5.15)
    /usr/lib/libexpat.1.dylib (compatibility version 7.0.0, current version 7.2.0)
    /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5)
    /System/Library/Frameworks/Security.framework/Versions/A/Security (compatibility version 1.0.0, current version 57031.20.26)
    /usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0)
    /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0)
    /usr/lib/liblzma.5.dylib (compatibility version 6.0.0, current version 6.3.0)
    /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1153.20.0)
    /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
    /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 1347.57.0)
    /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 48.0.0)
    /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1153.18.0)
    /System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics (compatibility version 64.0.0, current version 600.0.0)
    /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 62.0.0)
    /System/Library/Frameworks/CoreText.framework/Versions/A/CoreText (compatibility version 1.0.0, current version 1.0.0)
    /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO (compatibility version 1.0.0, current version 1.0.0)

 

Lien vers le commentaire

Ton plugin est chargé comment par l'utilisateur ?

C'est possible de le démarrer depuis un terminal ?  Si t'as un erreur de chargement d'une biblio tu devrais avoir un truc genre Dyld Error Symbol not found.

Si tu veux simuler ça chez toi tu peux par exemple modifier DYLD_LIBRARY_PATH comme dans l'exemple ci-dessous.

export DYLD_LIBRARY_PATH=/path/to/imagemagick/library:${DYLD_LIBRARY_PATH}

Ici c'est pour ajouter un dossier de biblio dans lequel dyld ira chercher pour résoudre les dépendances. Le bout :${} c'est pour la concaténation, sans cela tu écraserais toute la variable et tu perdrais donc l'accès au biblio de base. Dès l'instant où tu recrées un session bash la variable DYLD_LIBRARY_PATH est remise à sa valeur par défaut.

Pour tout ce qui touche à ça tu peux faire man dyld.

 

Mais globalement tu donnes assez peu d'info pour t'aider. Pour moi un plugin c'est un truc qui est chargé par un autre programme et pas démarrer directement par l'utilisateur.

Mais comme tu as un binaire je me demande comment il est chargé par ton programme. La communication passe par un pipe, un socket ? Comment le logiciel liste les plugin disponibles ? T'as une idée de la version du programme avec lequel ça marche pas ?

Sans tous ces détails c'est assez chaud de te répondre.

Lien vers le commentaire

Il est chargé dynamiquement par le logiciel host (comme les DLL dans Windows), et oui c'est pas initié par l'utilisateur pas évident à débugguer. Turns out c'était une erreur de zippage du plugin que j'envoyais au client, je suis un boulet :jesaispo: (Mon dossier microsoft onedrive ne se comporte pas de la même facon avec 7zip par rapport à un dossier normal). Désolé de t'avoir dérangé pour rien.

 

Par contre le bogue NSWindow objc_msgSend c'est vraiment moi puisque quand mon plugin n'est pas chargé ça ne bogue pas. Mais le bogue se déroule même quand mon plugin ne tourne plus. Ce qui signifie que je fous la merde quelque part avec Cocoa je dois changer l'état de la machine sans le savoir et ça doit produire un bug unique à mon plugin dans le logiciel host.. Le bordel à débugguer. En tapant "objc_msgSend() selector name: isKindOfClass:   Thread 0 Crashed:: Dispatch queue: com.apple.main-thread 0   libobjc.A.dylib         objc_msgSend" dans Google je peux voir que je ne suis pas le seul à avoir ce genre de problème :/

Lien vers le commentaire

T'es sûr de ta gestion de la mémoire ? Tu te serais pas planté dans ta manipulation de pointeur pour aller corrompre une autre partie du programme.

Parce que si je me trompe pas, dans ta situation tu partages l'espace mémoire du programme hôte non ?

Lien vers le commentaire

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...