Impressions de Guix : Le point de vue d'un utilisateur de Nix

2025-07-19

Un utilisateur expérimenté de Nix partage son expérience en essayant le système Guix. Guix, étant un système GNU, privilégie la liberté logicielle, nécessitant l'utilisation de nonguix pour le support du matériel moderne. L'article se concentre sur les différences architecturales entre Guix et Nix : Nix utilise une conception modulaire permettant des combinaisons flexibles de versions de paquets, tandis que Guix intègre tous les paquets dans un profil fixe, nécessitant une reconstruction pour les mises à jour. La documentation, les performances et les systèmes init sont comparés, révélant la documentation supérieure de Guix, mais des performances plus lentes ; il utilise Shepherd au lieu de systemd. Globalement, Guix est une alternative intéressante, mais avec une courbe d'apprentissage plus raide, nécessitant des connaissances en Scheme.

Lire plus
Développement

La procrastination récompensée : un jeu d’invasion spatiale pour apprendre le japonais

2025-07-19
La procrastination récompensée : un jeu d’invasion spatiale pour apprendre le japonais

Un débutant en japonais, ayant besoin de pratiquer le hiragana et le katakana, a créé un jeu de type Space Invaders, « Mochi Invaders », au lieu d’utiliser des ressources existantes. Bien qu’il ait techniquement procrastiné, le projet a nécessité l’apprentissage de SpriteKit et de nombreux tests d’applications, ce qui a débouché sur une expérience d’apprentissage étonnamment efficace. Le jeu est désormais disponible sur l’App Store.

Lire plus
Jeux

Stack Overflow dit au revoir aux serveurs physiques : le voyage vers le cloud commence

2025-07-19
Stack Overflow dit au revoir aux serveurs physiques : le voyage vers le cloud commence

Après 16 ans, Stack Overflow et son réseau de sites ont officiellement fait leurs adieux à leur centre de données du New Jersey, tous les serveurs ayant été mis hors service et éliminés correctement. Cette migration représente une étape importante dans la transition de Stack Overflow vers le cloud, signifiant la transformation complète et native dans le cloud de son infrastructure. L'article relate de manière vivante les détails du processus de migration, du démontage des serveurs et de la gestion d'une grande quantité de câbles au nettoyage final du centre de données, montrant le travail acharné et l'exécution efficace de l'équipe. Ce changement non seulement améliore l'efficacité, mais garantit également la sécurité des données des utilisateurs.

Lire plus

Accords HALO : Un nouveau modèle d’acquisition dans l’IA

2025-07-19
Accords HALO : Un nouveau modèle d’acquisition dans l’IA

Une nouvelle structure d’accord a émergé dans l’industrie de l’IA : l’accord HALO. Contrairement aux acquisitions traditionnelles ou aux simples embauches, les accords HALO impliquent qu’une entreprise embauche l’équipe principale d’une startup et obtient simultanément une licence de sa propriété intellectuelle. La startup reçoit des honoraires de licence importants distribués aux investisseurs et aux employés, et continue d’opérer sous une nouvelle direction. Ces transactions sont rapides, coûteuses et (actuellement) exclusives à l’IA. Bien qu’elles suscitent des débats, les accords HALO tentent de préserver le contrat social entre les fondateurs, les investisseurs et les employés, en offrant un moyen rapide et sûr d’acquérir des talents dans le domaine de l’IA dans un contexte de fusions et acquisitions de plus en plus scrutées.

Lire plus

Au-delà de cuBLAS et CUTLASS : Un nouveau moteur de noyaux de multiplication matricielle

2025-07-19
Au-delà de cuBLAS et CUTLASS : Un nouveau moteur de noyaux de multiplication matricielle

La multiplication matricielle est au cœur du calcul moderne, notamment en IA où sa vitesse impacte directement les capacités du modèle. Si les accélérateurs matériels comme les Tensor Cores de NVIDIA sont efficaces, ils manquent de flexibilité. Cet article présente CubeCL, un nouveau moteur générant des noyaux de multiplication matricielle optimisés pour plusieurs plates-formes. CubeCL utilise une abstraction hiérarchique (Tile, Stage, Global, Batch Matmul) et divers algorithmes (Simple, Double Buffering, Ordered, etc.) pour y parvenir. Il exploite intelligemment les caractéristiques architecturales des GPU, comme l'exécution synchrone des plans et l'accès mémoire coalescé, utilisant des techniques comme le double buffering pour masquer la latence mémoire. Les benchmarks montrent des améliorations significatives des performances sur divers GPU (NVIDIA, AMD et Apple Silicon), surpassant même cuBLAS et CUTLASS dans certains cas.

Lire plus
Développement

Le verrouillage XML de Microsoft Office : un piège technologique

2025-07-19
Le verrouillage XML de Microsoft Office : un piège technologique

Cet article explique comment le schéma XML intentionnellement complexe du format de document Microsoft Office sert de stratégie de verrouillage des utilisateurs. En concevant un schéma XML excessivement complexe, Microsoft rend difficile pour les concurrents le développement de logiciels compatibles, créant ainsi un monopole technologique. Cela force les utilisateurs dans l’écosystème Microsoft, les obligeant à accepter ses prix et ses services. L’analogie utilisée est celle d’un système ferroviaire avec des voies accessibles, mais un système de contrôle complexe contrôlé uniquement par un fabricant, dominant ainsi le transport ferroviaire. L’auteur exhorte les utilisateurs à se méfier des monopoles technologiques et à choisir des systèmes XML simples et clairs pour éviter d’être piégés par la complexité.

Lire plus

Refonte du catalogue public Bitnami : migration vers des images sécurisées et un référentiel hérité

2025-07-19
Refonte du catalogue public Bitnami : migration vers des images sécurisées et un référentiel hérité

Le catalogue public Bitnami subira des modifications importantes à partir du 28 août 2025. La génération d’images basées sur Debian sera interrompue et les images existantes seront déplacées vers un référentiel hérité Bitnami. Les images gratuites seront simplifiées pour offrir des images plus sécurisées et renforcées, disponibles uniquement avec la balise « latest » à l’adresse https://hub.docker.com/u/bitnamisecure. Les conteneurs et les graphiques Helm prêts pour la production seront transférés vers l’offre Bitnami Secure Images, qui propose un système d’exploitation renforcé, des mises à jour de sécurité continues (niveau 3 SLSA), une transparence CVE, des SBOM, des artefacts de conformité et une assistance d’entreprise. Toutes les images existantes seront déplacées vers le référentiel hérité Bitnami (docker.io/bitnamilegacy), sans plus de mises à jour ni d’assistance. Les utilisateurs doivent mettre à jour les pipelines CI/CD et envisager de s’abonner à Bitnami Secure Images pour bénéficier d’une assistance continue.

Lire plus
Développement Images sécurisées

ccusage : Analysez votre utilisation des jetons Claude Code, extrêmement rapidement !

2025-07-19
ccusage : Analysez votre utilisation des jetons Claude Code, extrêmement rapidement !

ccusage est un outil en ligne de commande permettant une analyse extrêmement rapide de votre utilisation des jetons Claude Code et de leurs coûts à partir de fichiers JSONL locaux. Il propose des rapports quotidiens, mensuels, par session et par blocs de 5 heures, avec des fonctionnalités telles que la surveillance en temps réel, le filtrage des dates, les chemins personnalisés et la sortie JSON. Sa taille de paquet minuscule permet une exécution directe sans installation, prenant en charge plusieurs modèles et des répartitions des coûts. Essayez-le avec `bunx ccusage` !

Lire plus
Développement Analyse des coûts

Arnaque aux frais de 500 $ pour fumée : un système de revenus algorithmique pour hôtel ?

2025-07-19
Arnaque aux frais de 500 $ pour fumée : un système de revenus algorithmique pour hôtel ?

Un client de l’hôtel Hyatt Pell à Newport, dans le Rhode Island, a été injustement facturé 500 $ pour avoir fumé, alors qu’il n’a jamais fumé. Le personnel de l’hôtel a été agressif, affirmant que ses détecteurs de fumée étaient infaillibles. Le client a découvert que plusieurs autres clients avaient subi le même problème, avec des réponses hostiles similaires de la direction. Une vidéo virale a exposé le problème, ce qui a conduit à un remboursement, mais d’autres clients se battent encore pour obtenir le leur. L’enquête a révélé que l’hôtel utilise Rest Sensors, une société qui commercialise ses détecteurs comme un moyen de « débloquer un nouveau flux de revenus » grâce à un « algorithme robuste ». Cela suggère un système potentiel de génération de revenus généralisé dans les hôtels.

Lire plus

OrioleDB : Une extension de stockage hautes performances pour PostgreSQL

2025-07-19
OrioleDB : Une extension de stockage hautes performances pour PostgreSQL

OrioleDB est une extension de stockage pour PostgreSQL qui remplace le moteur de stockage Heap par défaut, améliorant considérablement les performances. En repensant des composants clés tels que MVCC, la mise en cache des pages et les points de contrôle, OrioleDB améliore le débit et la prévisibilité des charges de travail transactionnelles tout en maintenant l'expérience utilisateur familière de PostgreSQL. Les versions récentes ajoutent la prise en charge des types d'index non B-tree, des tablespaces et du fillfactor, ainsi que des optimisations des performances des requêtes et des index. Les benchmarks utilisant TPC-C et sysbench montrent des améliorations significatives du débit par rapport au moteur de stockage Heap par défaut de PostgreSQL, les tests go-tpc démontrant plusieurs fois le tpmC.

Lire plus
Développement

Statiques sans coût en C++ : exploitation des fonctionnalités du lieur

2025-07-19

Cet article traite de la surcharge de performance liée à l'initialisation des variables statiques en C++. Les variables statiques à portée de bloc entraînent généralement des coûts d'exécution, tels que la synchronisation via `__cxa_guard_acquire`. L'auteur propose une optimisation exploitant les fonctionnalités du lieur UNIX : préallocation d'espace dans une section dédiée et réalisation de l'initialisation lors de l'initialisation globale. Cela élimine la surcharge d'exécution, rendant les statiques à portée de bloc aussi efficaces que celles à portée de fichier. L'article détaille l'implémentation, y compris la gestion des conflits d'attributs de section provenant des fonctions inline et des membres de modèle, aboutissant finalement à une optimisation sans coût.

Lire plus
Développement Lieur

Debcraft : simplification de l'empaquetage Debian

2025-07-19
Debcraft : simplification de l'empaquetage Debian

L'empaquetage Debian est notoirement difficile, conduisant souvent à la frustration et à l'épuisement des contributeurs. Debcraft vise à résoudre ce problème en automatisant les tâches fastidieuses, en améliorant la courbe d'apprentissage et en suivant les modifications du code source et des artefacts de construction. En utilisant la technologie des conteneurs, il supprime la dépendance à un système Debian, simplifiant ainsi le processus de construction, de test et de publication. Des fonctionnalités d'amélioration et de mise à jour automatisées facilitent encore davantage la maintenance des paquets Debian.

Lire plus
Développement Empaquetage

Restrictions d'application des suggestions de code sur GitHub

2025-07-19
Restrictions d'application des suggestions de code sur GitHub

L'application en masse de suggestions de code lors de la revue de code sur GitHub est soumise à plusieurs limitations. Celles-ci incluent : aucune modification de code effectuée, la demande d'extraction est fermée, affichage d'un sous-ensemble de modifications, une seule suggestion par ligne, application à des lignes supprimées, suggestions déjà appliquées ou marquées comme résolues, suggestions de revues en attente, commentaires multilignes et demandes d'extraction en file d'attente pour la fusion. De plus, il existe des cas où l'action ne peut pas être effectuée en raison d'une erreur non spécifiée.

Lire plus
Développement

L'équilibre du fraudeur : comment la publicité CPA a brisé la signalisation de la qualité

2025-07-19
L'équilibre du fraudeur : comment la publicité CPA a brisé la signalisation de la qualité

Cet article explore comment Internet, et plus précisément la publicité au coût par acquisition (CPA), a brisé le mécanisme traditionnel de signalisation de la qualité dans la publicité. Historiquement, les vendeurs de haute qualité étaient plus disposés à investir massivement dans la publicité en raison de rendements plus élevés à long terme. Cependant, la publicité CPA permet aux vendeurs de faible qualité de financer les annonces dès le premier jour de revenus, sapant ainsi ce signal. Des facteurs tels que la création facile de marques, les sanctions légères pour les retours, la compression des notes et la confiance des consommateurs dans les heuristiques de prix contribuent à un « équilibre du fraudeur » où les produits de faible qualité dominent. L'article présente un modèle économique illustrant cela et propose des solutions telles que des identifiants de fabricant persistants et des surcharges CPA ajustées aux retours pour dissuader les vendeurs de faible qualité.

Lire plus

E/S Asynchrone de Zig : Asynchronie ≠ Concurrence

2025-07-19
E/S Asynchrone de Zig : Asynchronie ≠ Concurrence

Cet article approfondit les concepts souvent confondus d’asynchronie, de concurrence et de parallélisme dans la programmation concurrente. L’auteur soutient que de nombreux écosystèmes de langages souffrent d’un manque de compréhension de « l’asynchronie », ce qui conduit à des efforts de bibliothèques dupliqués et à une pire expérience utilisateur. Zig différencie l’asynchronie de la concurrence, permettant des E/S asynchrones sans concurrence obligatoire. Cela empêche la propagation « virale » du code asynchrone, permettant au code synchrone et asynchrone de coexister pacifiquement, améliorant ainsi l’efficacité et la maintenabilité du code.

Lire plus
Développement Programmation Concurrente

Steam supprime des jeux pour adultes sous la pression des processeurs de paiement

2025-07-19
Steam supprime des jeux pour adultes sous la pression des processeurs de paiement

Valve a récemment supprimé un lot de jeux pour adultes de la boutique Steam en raison de violations des règles établies par les processeurs de paiement tels que Mastercard. Valve a déclaré que la perte de méthodes de paiement empêcherait les clients d'acheter d'autres jeux et contenus sur Steam. Bien que Valve contacte les développeurs affectés et offre des crédits, l'incident met en lumière le contrôle strict exercé par les processeurs de paiement sur le contenu pour adultes, même le contenu animé. Cela soulève des inquiétudes concernant la censure et le pouvoir détenu par les processeurs de paiement, de nombreux utilisateurs arguant que des entreprises comme Mastercard ne devraient pas dicter ce que les joueurs peuvent acheter sur Steam.

Lire plus

Mon installation d'auto-hébergement ultime : un triomphe avec NixOS, ZFS et Tailscale

2025-07-19

Après des années d'expérimentations avec différentes approches d'auto-hébergement, l'auteur a enfin réussi à mettre en place une configuration stable fonctionnant depuis plus de six mois. Cette configuration est centrée sur NixOS pour la configuration du système d'exploitation, ZFS pour une protection robuste des données et Tailscale pour un réseau interne sécurisé. L'article détaille l'architecture, les choix technologiques clés (y compris Authelia et LLDAP pour l'authentification) et les solutions aux problèmes rencontrés, tels que l'intégration de Tailscale avec d'autres VPN et l'exposition des services à Internet public. Des extraits de configuration et des liens utiles sont fournis pour que les lecteurs puissent s'appuyer dessus.

Lire plus
Développement

Interopérabilité Rust et C dans le noyau Linux : Mémoire, structures auto-référentielles et verrous

2025-07-19

Cet article explore les subtilités de l'interface entre le code Rust et C dans le noyau Linux. Il met en lumière l'allocation de mémoire (Kmalloc, Vmalloc, KVmalloc et leur utilisation correspondante de Box et Vec), la gestion des structures auto-référentielles (Pin et la macro pin_init!) et les mécanismes de verrouillage (Mutex, LockedBy, GlobalLockedBy). Rust améliore la sécurité du code du noyau et réduit les erreurs d'exécution grâce à son système de types et à la gestion du cycle de vie.

Lire plus

1862 serveurs MCP exposés : une faille de sécurité révélée

2025-07-18
1862 serveurs MCP exposés : une faille de sécurité révélée

L'équipe de recherche de Knostic a découvert 1 862 serveurs MCP exposés sur Internet sans mesures de sécurité appropriées. Ces serveurs, identifiés à l'aide de Shodan et d'outils Python personnalisés, ont permis un accès non authentifié aux listes d'outils internes. Les résultats mettent en évidence le stade initial d'adoption de la technologie et les risques de sécurité importants, de nombreux serveurs présentant une instabilité et des vulnérabilités. Les chercheurs soulignent la nécessité de résoudre ces problèmes de sécurité, en suggérant des mesures de sécurité proactives avant une exploitation généralisée.

Lire plus
Technologie

Escrime historique : renouer avec l'art du duel médiéval

2025-07-18
Escrime historique : renouer avec l'art du duel médiéval

Une journaliste raconte son expérience en apprenant les arts martiaux historiques européens (HEMA), un mélange unique de recherche historique et de combat pratique. De débuts maladroits à la maîtrise de techniques de base, elle met finalement ses compétences au service d'une production théâtrale, donnant vie à des duels historiques sur scène. L'article explore l'histoire de la HEMA, son état actuel et ses effets transformateurs sur les participants, en développant la confiance en soi et la pensée stratégique. Des interviews avec des passionnés de HEMA révèlent l'attrait du sport et sa riche signification historique et culturelle.

Lire plus

lsr : Liste de fichiers ultrarapide avec io_uring

2025-07-18

lsr est un utilitaire de liste de fichiers extrêmement rapide qui utilise io_uring, surpassant largement la commande ls traditionnelle. Les benchmarks montrent des améliorations de vitesse spectaculaires et une réduction du nombre d'appels système lors du traitement de nombreux fichiers. Il offre un ensemble complet d'options, notamment l'affichage des fichiers cachés, le tri par date et la sortie couleur, ainsi que des instructions d'installation et d'utilisation simples. Le projet est hébergé sur GitHub et prend en charge le clonage via HTTP ou SSH.

Lire plus
Développement

15 ans de Jefit : Du salon du père à la Silicon Valley

2025-07-18

Ying, le fondateur de Jefit, raconte l'histoire de son application de fitness, passée d'un projet personnel dans le salon de son père à une entreprise comptant plus de 13 millions d'utilisateurs. Ayant commencé avec un petit prêt et surmonté de nombreux défis - problèmes de financement, constitution d'équipe et déménagement dans la Silicon Valley - Ying a persévéré, créant une plateforme axée sur l'expérience utilisateur et la qualité. L'article met en lumière les difficultés et la persévérance de l'entrepreneuriat, ainsi que l'importance du travail d'équipe et de la fidélité des utilisateurs.

Lire plus

La vie à bord du Pino : Journal de six mois (2025)

2025-07-18

Ce couple documente sa vie à bord de son bateau, le Pino, pendant les six premiers mois de 2025. Leurs entrées détaillent les réparations du bateau, la sortie de leur jeu Oquonie et divers projets, notamment l'écriture de livres, le développement de jeux et des game jams. Ils partagent leurs lectures, leurs interactions avec la communauté et les défis de la vie à bord, peignant le tableau d'une existence maritime détendue mais aventureuse.

Lire plus
Divers vie à bord

Publication d'extraits inédits des mémoires de Gary Kildall, créateur du CP/M

2025-07-18
Publication d'extraits inédits des mémoires de Gary Kildall, créateur du CP/M

Une partie d'un mémoire inachevé de Gary Kildall, le créateur du système d'exploitation CP/M, a été publiée par le Computer History Museum. Écrit avant sa mort en 1994, l'extrait détaille les débuts de Kildall et son parcours entrepreneurial, en soulignant ses valeurs d'invention et d'amour de la vie par-dessus le profit. Les chapitres suivants, qui détaillent ses combats contre l'alcoolisme, resteront inédits.

Lire plus
Technologie

Le processeur IBM Power11 : un équilibre entre mémoire et E/S

2025-07-18
Le processeur IBM Power11 : un équilibre entre mémoire et E/S

IBM a lancé le processeur Power11, une mise à niveau du Power10 qui améliore principalement l’utilisation des cœurs et prend en charge la mémoire DDR5. Le Power11 maintient un bon équilibre entre la mémoire et les E/S, même avec des demandes massives de mémoire et de périphériques, ce qui le rend compétitif pour les systèmes de gestion de bases de données transactionnelles de grande taille. Malgré les défis et les retards du processus de fabrication, le Power11 a surmonté les obstacles grâce à un partenariat avec Samsung, améliorant les jeux d’instructions et l’architecture. L’article explore également les futures mises à niveau du Power11, telles que l’expansion des modules DCM pour augmenter l’évolutivité afin de répondre aux demandes informatiques croissantes.

Lire plus
Matériel processeur serveur

Moteur Servo progresse : le support multiprocessus pour Windows arrive !

2025-07-18

Le moteur de rendu web open source Servo continue de progresser. La mise à jour mensuelle de ce mois met en avant des progrès significatifs dans la mise en page incrémentale, les optimisations de performances, la prise en charge du serveur WebDriver pour l’automatisation, la prise en charge des métadonnées viewport, la prise en charge des événements de défilement DOM, la prise en charge de base d’IndexedDB, l’amélioration de la gestion des interruptions AbortController, la prise en charge multiprocessus expérimentale sous Windows et des fonctionnalités améliorées de DevTools et de lecteur d’écran. Servo mûrit progressivement pour devenir un moteur de navigateur embarqué robuste.

Lire plus
Développement

La psilocybine montre des résultats prometteurs dans le traitement de la dépression et de l'anxiété chez les patients atteints de cancer

2025-07-18

Un essai croisé en double aveugle a étudié les effets de la psilocybine, un hallucinogène classique, chez 51 patients atteints d'un cancer mettant leur vie en danger et présentant des symptômes de dépression et/ou d'anxiété. Des doses élevées de psilocybine ont significativement réduit la dépression et l'anxiété, évaluées par les cliniciens et les patients eux-mêmes, améliorant la qualité de vie, le sens de la vie et l'optimismo, tout en diminuant l'anxiété liée à la mort. Ces effets positifs ont perduré lors du suivi à 6 mois, environ 80 % des participants montrant des améliorations cliniquement significatives. L'étude souligne le rôle médiateur des expériences de type mystique induites par la psilocybine dans l'obtention de résultats thérapeutiques.

Lire plus

Loi GENIUS adoptée : les cryptomonnaies entrent dans le courant dominant

2025-07-18
Loi GENIUS adoptée : les cryptomonnaies entrent dans le courant dominant

La Chambre des représentants des États-Unis a adopté la loi GENIUS, qui établit des réglementations fédérales pour les stablecoins. Cela marque un changement majeur, sortant les cryptomonnaies de la zone grise réglementaire et les faisant entrer dans le système financier dominant. La loi exige que les émetteurs de stablecoins détiennent des réserves de un pour un en espèces ou en bons du Trésor américain, exige des divulgations mensuelles, priorise la protection des consommateurs en cas de faillite de l'émetteur et fournit un cadre pour la supervision fédérale et étatique. Cela ne réglementera pas seulement le marché des cryptomonnaies, mais positionnera également les États-Unis en position de leader dans la course mondiale aux monnaies numériques, ouvrant la voie à des paiements mondiaux instantanés basés sur les stablecoins et à des applications quotidiennes.

Lire plus

Une merveille antique ressuscitée : 22 blocs massifs du phare d’Alexandrie récupérés

2025-07-18
Une merveille antique ressuscitée : 22 blocs massifs du phare d’Alexandrie récupérés

Vingt-deux énormes blocs de pierre de l’ancien phare d’Alexandrie, l’une des sept merveilles du monde antique, ont été récupérés du fond marin méditerranéen après des siècles passés sous l’eau. Cette percée fait partie du projet PHAROS, qui utilise une technologie de pointe pour reconstruire virtuellement la structure. Les blocs récupérés, notamment d’énormes linteaux d’entrée et des pierres de fondation, montrent un mélange de styles égyptien et grec, reflétant le passé multiculturel d’Alexandrie. Ces blocs seront numérisés et réassemblés par des ingénieurs, créant un jumeau virtuel du phare pour révéler sa gloire originelle et la cause de son effondrement.

Lire plus

Quantification des mensonges politiques : Étude de cas des discours de RFK Jr. et Buttigieg

2025-07-18

Cet article quantifie le pourcentage de mensonges dans les discours de RFK Jr. et Pete Buttigieg grâce à une vérification des faits phrase par phrase. L'auteur a découvert que les discours de RFK Jr. contenaient un taux étonnant de 60 % d'affirmations fausses, soit plus de huit mensonges toutes les cinq minutes en moyenne, tandis que le taux de Buttigieg était significativement inférieur. Cette méthodologie s'attaque à la « loi de Brandolini » (l'énergie nécessaire pour réfuter des âneries est d'un ordre de grandeur supérieur à celle nécessaire pour les produire) en vérifiant exhaustivement un discours échantillon pour établir un taux de mensonges, éliminant ainsi le besoin de vérification constante. Bien que chronophage, cette approche offre un moyen novateur d'évaluer la crédibilité des figures politiques.

Lire plus
1 2 106 107 108 110 112 113 114 595 596