Lateo.net - Flux RSS en pagaille (pour en ajouter : @ moi)

🔒
❌ À propos de FreshRSS
Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
☐ ☆ ✇ Ars Technica

Framework responds to complaints that BIOS update bricks Ryzen 7040 laptops

Par : Scharon Harding — 19 août 2026 à 22:21

A BIOS update for the Framework Laptop 13 with AMD Ryzen 7040-series processors is bricking the systems, multiple users have reported online.

Framework started shipping pre-built Ryzen 7040-based Framework Laptop 13 computers and compatible motherboards in 2023. In June 2026, Framework released BIOS 3.20 for the devices. The update adds mainboard support for features, including a haptic touchpad and new speakers, for the higher-end Framework Laptop 13 Pro and fixes issues, including one “where the Battery Extender status was reported incorrectly following a reboot, hibernation, or shutdown after the timer had expired," per a post on Framework’s forum from an employee.

Some users say that they installed the update successfully.

Read full article

Comments

☐ ☆ ✇ TechRepublic - Articles

5 Mac Studio Alternatives for 2026

Par : Liz Ticong — 3 août 2026 à 10:11

Compare five Mac Studio alternatives for professional graphics, creative work, local AI, and repairability, including pricing, strengths, and trade-offs.

The post 5 Mac Studio Alternatives for 2026 appeared first on TechRepublic.

☐ ☆ ✇ Ars Technica

Framework Laptop 13 Pro review: Much better battery, much worse price

Par : Andrew Cunningham — 27 juillet 2026 à 17:02

I've liked the Framework Laptop 13 since the first time I used it, partly because I just think the idea of a repairable and upgradeable laptop is cool and partly because it's not Yet Another Ultraportable Trying To Be A MacBook Air Clone. But the design has always had real shortcomings—the most noticeable and serious being its mediocre battery life.

Enter the Framework Laptop 13 Pro. While all previous Laptop 13 refreshes have tinkered around the edges with the original design (a tweaked lid design here, new hinges or new speakers there), the Laptop 13 Pro is as close as we've gotten to a second-generation revision for the original design.

This means that it breaks backward compatibility for some (but not all) Laptop 13 components, most notably the bottom case, the keyboard and trackpad, and the original 55 WHr and 61 WHr battery designs. But by allowing itself to make larger changes to the design, Framework has made major strides in battery life and general fit and finish.

Read full article

Comments

☐ ☆ ✇ MiniMachines.net

Framework pousse son Desktop vers le Ryzen AI Max+ Pro 495 et 192 Go de mémoire

Par : Pierre Lecourt — 30 septembre 2026 à 18:20

Mise à jour : Le MiniPC Framework Desktop en version Ryzen AI Max+ Pro 495 avec 192 Go de mémoire vive vient d’ouvrir ses précommandes. Deux solutions s’offrent à vous pour l’acquérir. Le modèle « DIY Edition » à monter vous-même y est proposé à 7 659€. À ce prix, il faudra donc de l’huile de coude mais également un stockage, celui-ci n’est pas compris. L’autre option est le modèle « pre-built » avec un Windows 11 ou une Fedora 44 KDE Plasma installés sur un SSD de 2 To. Là vous partez sur un 8 739€ bien tassé. L’expédition est prévue pour… novembre.

Billet original du 23/07/2026 : Vous reconnaissez le MiniPC Framework Desktop avec sa façade modulaire et son gabarit de 4.5 litres. L’engin a été lancé en février 2025 avec la première génération de processeurs Strix Halo. Les fameux Ryzen AI Max+ Pro 395 secondés par un maximum de mémoire vive.

Desktop

En 2026, AMD lance le Ryzen AI Max+ Pro 495, une version améliorée du 395 avec quelques poussées de performances assez marginales. La structure est identique avec toujours une architecture Zen 5 développée sur 16 Coeurs et 32 Threads et le circuit graphique Radeon 8065S. Les fréquences ont été très légèrement optimisées de 100 MHz et cela se ressent avec des performances qui ne décollent que très marginalement de l’offre 395…

Mais alors pourquoi passer le Framework Desktop en Ryzen AI Max+ Pro 495 ? Parce que la vraie nouveauté de cette puce est dans l’explosion de sa capacité de gestion mémoire. Si le 395 est capable de manger 128 Go de LPDDR5X au petit-déjeuner, le 495 peut avaler jusqu’à 192 Go de RAM. Un « détail » qui va permettre d’avaler tout cru des LLM beaucoup plus larges pour une exploitation d’IA locale.

Le Framework Desktop à son lancement en février 2025

Le Framework Desktop à son lancement en février 2025

Il sera donc possible de commander cette nouvelle version du Desktop avec 192 Go de LPDDR5X en échange, bien entendu, d’une jolie somme. La marque n’a pas précisé de prix pour le moment, mais elle n’a pas cessé d’augmenter les tarifs de ses engins au fil des mois pour faire face à la hausse des composants. La version 395+ 128 Go est ainsi passée de 2000$ en début d’année 2025 pour son lancement à 3449$ aujourd’hui.

Le Framework Desktop aujourd'hui

Le Framework Desktop aujourd’hui

L’exemple du Framework Desktop montre que le marché s’auto-sabote

Le marché local fait donc lui aussi le pari de la mémoire vive et assèche également l’offre de mémoire dont il dispose. Non pas que ce soit le plus gourmand par rapport à la production actuelle. Les centres de données IA sont beaucoup, beaucoup plus demandeurs. Mais des engins de ce type participent à creuser la propre tombe du secteur. Le volume des ventes de Framework sur cette machine doit être marginal par rapport aux Top 10 des fabricants de PC… mais la majorité de ces fabricants vont ou ont déjà emboîté le pas de la même stratégie. 

Paradoxalement, alors que la mémoire vive est à son tarif le plus haut, les engins de ce type se vendent beaucoup moins bien avec peu de mémoire. C’est finalement assez logique, l’offre PC est très onéreuse en ce moment et acheter un engin avec 32 Go ne résoudra rien de spécial niveau usage par rapport à un engin de la génération précédente. Par contre, la même machine avec 128 ou, désormais, 192 Go de mémoire vive, est beaucoup plus intéressante puisqu’elle ouvre les portes d’une exploitation d’IA locale. Avec 128 Go vous pouvez construire 8 machines équipées de 16 Go, avec 192 Go ce sont 12 machines qui peuvent sortir d’un atelier de montage. Autrement dit, l’augmentation des capacités de gestion de la mémoire vive du Ryzen AI Max+ Pro 495 va encore plus limiter la production de PC globale.

Par ces nouveaux usages, l’IA étouffe littéralement à petit feu le marché d’un PC personnel classique. Le fait que les sociétés qui font ce marché foncent dans ce déploiement spécifique est totalement compréhensible, mais cela va tendre encore plus fortement les stocks. Et, par effet rebond, pousser encore plus les prix à la hausse. Un effet dont se plaint en permanence Framework puisque cela affecte son secteur d’activité principal par la hausse constante des prix. La dernière mise à jour de leur blog à ce sujet date… d’hier.

Et oui, le serpent se mord la queue.

Framework pousse son Desktop vers le Ryzen AI Max+ Pro 495 et 192 Go de mémoire © MiniMachines.net. 2026

☐ ☆ ✇ MiniMachines.net

Framework a de bonnes et de moins bonnes nouvelles sur ses tarifs

Par : Pierre Lecourt — 26 juin 2026 à 13:13

Framework a toujours été assez transparent sur ses soucis de composants. Le constructeur a appris à ses dépens que le marché frappait tout le monde de manière différente et fait depuis des points réguliers sur sa propre situation.

Framework Laptop 13 Pro

Framework Laptop 13 Pro

Et si ces derniers mois Framework proposait des informations plutôt négatives avec des hausses de tarifs à répétition, les dernières nouvelles sont plutôt bonnes. Un nouveau SSD issu des productions d’ADATA semble avoir fait son chemin vers leurs ateliers. Les SSD NVMe PCIe Gen 5 intégrés dans le Framework Laptop 13 Pro seront désormais des XPG MARS 970 qui offriront, je cite, « de meilleures performances, efficacité et une meilleure fiabilité » que les anciens SSD. Cerise sur le gâteau, ils sont proposés à un tarif meilleur marché que les modèles qu’ils vont remplacer. 

Les précommandes du Framework Laptop 13 Pro n’ayant pas encore été expédiées puisque toutes les machines ont été retardées, les équipes vont donc remplacer tous les SSD par ces nouveaux modèles avec un joli bonus. Les SSD XPG MARS 970 n’existent qu’en 1 et 2 To mais comme le modèle 1 To est moins cher que le modèle de SSD de 500 Go précédemment choisi, les personnes ayant commandé des machines avec 500 Go auront droit au nouveau stockage de 1 To. Toutes les nouvelles commandes de cette machine seront livrées en SSD ADATA.

Framework a également de moins bonnes nouvelles

Le constructeur suggère que plusieurs signaux annoncent une nette augmentation des prix des processeurs pour très bientôt. Ce qui va affecter l’ensemble des machines. La marque vous encourage donc à passer vos précommandes rapidement si vous voulez acheter un de ces modèles.

Ce n’est pas le premier constructeur à faire écho de cette hausse. Si la proposition de ce SSD ADATA est conjoncturelle et reste une excellente nouvelle pour la marque, le marché est tout entier dirigé vers la hausse. Encore une fois, la majorité des contrats passés entre les constructeurs de PC et leurs fournisseurs se termine entre mai et juin. Ces contrats forcent les fabricants de mémoire, stockage, écrans, processeurs et autres à respecter des prix décidés en début d’année 2026 ou à la fin de l’année 2025. Quand ces contrats seront terminés, d’autres seront négociés. En général cela survient pour les engins qui commencent à entrer en production en juillet pour la rentrée de septembre. À ce moment précis, de nouveaux contrats sont signés et vont durer plus ou moins longtemps suivant les marchés et leurs fluctuations.

Les échos que j’ai de la situation actuelle sont assez simples :

Sur la mémoire vive, les contrats sont quasiment tous tombés avant la date de fin de ceux-ci. Les pénalités encourues pour ne pas livrer les composants exigés contractuellement étaient inférieures aux prix du marché. Quand un fournisseur de RAM devait payer 10 ou 20% du prix des composants non livrés, le marché lui proposait entre 300 et 400% de marge supplémentaire par rapport au prix négocié. Les fabricants de mémoire ont donc accepté de payer les pénalités pour dégager plus de bénéfices. Énormément de production s’est réorienté vers la mémoire HBM au détriment de la production de DDR5 et les nouvelles usines en cours de développement ne seront pas sorties de terre avant 2028.

Sur le stockage, c’est un peu la même chose mais en moins pire. D’abord parce que l’offre est plus large que la mémoire vive, la concurrence est plus large, mais aussi parce que le marché des Datacenters s’intéresse moins à certaines références. Là où la mémoire a été réorientée vers la DDR5 et la HBM, les puces des SSD sont toujours plus largement fabriquées avec des contrôleurs très différents dans des assemblages de contrôleurs et de modules aux capacités et vitesses plus variables.

Processeurs, c’est un peu plus tendu. AMD comme Intel ont annoncé des augmentations de prix. La demande en puces est également énorme et les prix de fabrication sont à la hausse aussi bien dans les usines d’Intel que dans les usines de TSMC ou GlobalFoundries. Les calendriers sont très chargés et la situation géopolitique de ces derniers mois semble avoir affecté le prix de production à cause de l’augmentation du prix de l’énergie. Bref, les prix grimpent.

Sur le reste, notamment les affichages mais aussi certaines pièces comme les pavés tactiles ou les batteries, la baisse de volume de production a conduit certaines marques à augmenter leurs prix de quelques dollars pour compenser la faiblesse de leurs ventes.

Mis bout à bout, l’ensemble de ces éléments va tirer les prix des machines largement vers le haut pour toute la fin de l’année. Et probablement toute lannée 2027 également…

Framework a de bonnes et de moins bonnes nouvelles sur ses tarifs © MiniMachines.net. 2026

☐ ☆ ✇ MiniMachines.net

Allez vous RISC-V votre portable Framework Laptop 13 ?

Par : Pierre Lecourt — 15 mai 2026 à 12:20

Le SoC Spacemit K3 est une solution RISC-V d’une marque que l’on a déjà croisée à plusieurs reprises sur Minimachines avec des déploiements variés dans diverses cartes de développement.

Il est ici proposé dans un format pensé pour être intégré aux Framework Laptop 13, afin de remplacer les puces plus classiques livrées par défaut par des puces évidemment plus exotiques et spécialisées, mais qui vont intéresser les développeurs.

Il faudra tout de même être motivé, réellement motivé, car la carte DC-ROMA RISC-V proposée par DeepComputingg est au prix de 612.95€ Hors Taxes et hors frais de port. Pour ce tarif, vous obtiendrez un modèle complet et presque prêt à l’emploi puisque la carte propose bien un SoC et 16 Go de mémoire vive LPDDR5 soudée, elle n’embarque pas de stockage. On pourra lui ajouter un SSD au format M.2 2280 compatible avec les standards NVMe ou SATA3. Un lecteur de cartes MicroSDXC sera également intégré.

Vous pourrez également ajouter des options avec votre carte. La version de base propose le fameux boîtier de Cooler Master ainsi qu’un module Wi-Fi et une carte de débug (oui parce que ne vous y trompez pas, ce genre de cartes est avant tout fait pour les développeurs chevronnés). Une version « standard » est proposée avec un module d’extension USB Type-C et un SSD de 1 To et enfin le modèle « Pro » est fourni avec un stockage et deux extensions Type-C et toujours un SSD de 1 To. Les prix montent suivant les modèles pour atteindre 1314.95€ en version 16Go/1To. Et cela peut même gonfler encore un peu plus si vous choisissez l’option 32 Go de mémoire pour la version Pro, à ce moment-là, il faudra débourser 1577.95€ pour la carte.

Totalement compatible avec le 13 pouces de Framework, la DC-ROMA RISC-V peut également être utilisée en solo en l’intégrant comme une sorte de MiniPC dans le boitier de Cooler Master co-développé avec Framework. 

 

Le SpacemiT K3 explique toute l’existence de cette carte.

Si DeepComputing propose cette carte, ce n’est pas vraiment pour séduire les particuliers. L’idée est plus de proposer une base de travail et de développement clé en main pour optimiser code et accessoires pour la puce SpacemiT K3. La plateforme est donnée comme « compatible » avec Ubuntu 26.01. Sachant que le constructeur indique que cette distribution est limitée à une exploitation par des développeurs, mais pas vraiment « grand public ». À terme, ce genre de carte SoC SpacemiT K3 permettra sans doute de développer des outils matériels et logiciels qui seront ensuite déployés dans des formats très différents d’une carte de ce type. DeepComputing fournit un environnement de travail professionnel pour des industriels qui proposeront ensuite des solutions variées.

Le gros avantage pour un fabricant qui déploie son produit sur cette plateforme RSIC-V est l’absence de royalties et un coût de fabrication qui peut être extremement bas. Ce qui a énormément de sens si votre produit est destiné à une production industrielle de millions d’unités. Les investissements en amont représentent de sacrées économies en aval.

SpacemiT K3
8 cœurs 64-bit RISC-V X100 “big” cadencés à 2.4 GHz
8 cœurs IA RISC-V A100
Circuit graphique Imagination Technologies BXM4-64-MC1 GPU
Décodeur vidéo H.265, H.264, VP9 up to 4K @ 120 FPS
Encodeur vidéo H.265, H.264 up to 4K @ 60 FPS
NPU 60 TOPS (INT4)

Allez vous RISC-V votre portable Framework Laptop 13 ? © MiniMachines.net. 2026

☐ ☆ ✇ Ars Technica

Nvidia fixes the 8GB RAM problem with one of its GPUs—if you can pay for it

Par : Andrew Cunningham — 29 avril 2026 à 18:06

Whether you're a gamer trying to play recent AAA titles at high resolutions and maxed-out settings or an AI enthusiast trying to run models locally, we've reached the point where a GPU with 8GB of video memory is a pretty limiting bottleneck. But because of ongoing memory shortages and price spikes, it's also a uniquely bad time for GPU makers to attempt to fix this problem—rumors suggested that a RAM-boosting mid-generation "Super" refresh for Nvidia's RTX 50-series GPUs was quietly delayed or canceled earlier this year, at least in part because of memory costs.

One of Nvidia's GPUs is getting a RAM upgrade, according to an announcement the company buried at the bottom of a blog post about a routine Game Ready driver update. The laptop version of the GeForce RTX 5070 is getting a bump from 8GB to 12GB of GDDR7, a 50 percent increase that should reduce some performance bottlenecks and generally future-proof the GPU.

Otherwise, the 12GB version of the mobile RTX 5070 is the same as the 8GB version. The RAM is still connected to the GPU with a 128-bit memory interface, and the GPU still has 4,608 CUDA cores. The mobile 5070 uses the same GB206 silicon die as the desktop RTX 5060 instead of the larger, more powerful GB205 die in the desktop version of the RTX 5070, meaning that despite the RAM increase, the desktop version remains a much more powerful GPU.

Read full article

Comments

☐ ☆ ✇ MiniMachines.net

Wireless TouchPad Keyboard : le cheval de Troie de Framework

Par : Pierre Lecourt — 23 avril 2026 à 13:37

Le Wireless TouchPad Keyboard a été annoncé en même temps que le nouveau Framework Laptop 13 Pro. C’est un produit malin, intéressant dans son approche, très ouvert et potentiellement une excellente nouvelle pour le secteur.

Le premier Logitech K400

Le premier Logitech K400

Framework ne révolutionne rien avec le Wireless TouchPad Keyboard. Le clavier reprend les codes classiques de ce type d’instrument pensé pour piloter une interface graphique loin de son poste. On retrouve un clavier déployé de manière habituelle pour la frappe et, juste à côté, sur la droite, un pavé tactile qui permet de naviguer avec un curseur. C’est la formule consacrée pour ce type de produit qu’on connait tous avec le Logitech K400. L’exemple que tout le monde a en tête quand on veut décrire ce type de dispositif. Il faut dire que le K400 a roulé sa bosse et qu’il est depuis des années la solution préconisée pour piloter un PC de salon. 

Le All-in-One Media de Microsoft

Le All-in-One Media de Microsoft

Je me suis toujours demandé pourquoi les constructeurs ne s’intéressaient pas plus à ce type de clavier. Microsoft, par exemple, a pendant un temps proposé un excellent All-in-One Media à 30€ sur le même principe. Corsair a imaginé un K83 avec un pavé tactile original. Ceux qui ont connu les Logitech Illuminated Living Keyboard K830, proposés à un prix beaucoup plus élevé mais d’un confort sans pareil, le regrettent probablement amèrement. Car les productions concurrentes se sont toutes taries et la majorité des claviers de ce type ont disparu.

C’est ce qui fait le succès du K400 Plus actuellement d’ailleurs. Non pas que ce soit un clavier exceptionnel, c’est tout simplement le seul qui reste vraiment sur le marché pour piloter confortablement un PC depuis son canapé. Présent dans le paysage depuis tellement longtemps, disponible facilement, régulièrement en promo, c’est une valeur sûre qui fait le travail. Il est par exemple en ce moment proposé à moins de 25€, un prix tout simplement imbattable sur ce segment. On a bien de temps en temps des produits alternatifs sympathiques comme le Omoton, mais sur le principe, rien qui ne vient chasser le Logitech de son trône.

Et c’est d’abord pour cela que l’annonce d’un nouveau challenger est intéressante. Si Framework maîtrise le prix de l’objet, il peut être un vrai concurrent pour Logitech. Ce qui peut également entrainer d’autres acteurs sur ce terrain notablement délaissé depuis de nombreuses années.

Le Framework Wireless TouchPad Keyboard

Le Framework Wireless TouchPad Keyboard

Framework Wireless TouchPad Keyboard : état des lieux

Le clavier est calqué sur le standard habituel : pavé tactile à droite (tant pis pour les gauchers) et clavier à gauche. On retrouve un jeu de touches de fonctions combinées avec des commandes multimédia qui ont la priorité de frappe. On pourra donc simplement mettre en pause ou relancer un média. L’arrêter, le mettre en sourdine mais également lancer une recherche, ouvrir les paramètres système ou couper son micro.

Le pavé tactile mesure 6.88 cm de large pour 8.56 cm de haut et propose une surface entièrement réactive aux clics et prenant en charge les gestes multipoints sous Windows (norme Windows precision touchpad) comme sous Linux. 

La partie clavier est classique, pour le moment uniquement annoncée en QWERTY « US English ». Les touches sont de type chiclets et elles proposent une course sensiblement profonde de 1.5 mm pour une frappe précise. Le Wireless TouchPad Keyboard n’est pas rétroéclairé, ce qui est parfois gênant au vu de l’usage classique de ce type de produit mais a le mérite de sauvegarder la batterie. On ne connait d’ailleurs pas la capacité de cet élément et la marque reste évasive sur la durée de vie entre deux charges pour le moment. 

Ce qui est mis en avant par le constructeur, c’est l’ouverture de son produit. Outre le fait qu’un seul de ces claviers saura piloter jusqu’à quatre appareils par défaut et ainsi jongler d’un PC portable à un PC de bureau, d’une tablette à un MiniPC de salon, par une simple combinaison de touches. La marque insiste sur des détails pas anodins avec la présence d’un circuit de communication sans fil Nordic nRF54L20. Une puce « magique » qui prend en charge aussi bien le Bluetooth LE que les formats propriétaires RF 2.4 GHz mais aussi les protocoles Zigbee, Matter et même Thread.

Le clavier du Framework Laptop 12

Le clavier du Framework Laptop 12

Et cela n’est pas vain car Framework promet un véritable écosystème de développement pour l’objet. Des fichiers open source permettront de dessiner le châssis de son choix et donc de l’intégrer parfaitement dans un projet. On comprend d’ailleurs cette philosophie car elle correspond exactement à ce qu’a fait le constructeur pour concevoir ce clavier. Les composants sont exactement ceux d’un portable Framework Laptop 12 réassemblés l’un à côté de l’autre. Un tour de passe-passe piloté par un autre élément intéressant. Le « cœur » du clavier s’appuie sur le firmware ZMK, bien connu des soudeurs de touches invétérés. Ce firmware sera programmé sous licence Zephyr et permettra de définir précisément les interactions entre chaque touche pressée et l’ordinateur connecté. On peut donc l’utiliser pour définir précisément les actions à mener. Qu’il s’agisse d’une frappe simple ou de combinaisons de touches. 

L'arrière du clavier permettra d'accéder aux composants, de changer la batterie, d'extraire la carte mère...

L’arrière du clavier permettra d’accéder aux composants, de changer la batterie, d’extraire la carte mère…

La carte mère du clavier va être, par ailleurs, commercialisée par la marque, seule, prête à l’emploi pour les plus expérimentateurs d’entre nous. Elle permettra de construire le jeu de touches de son choix, d’y ajouter un pavé tactile et de programmer le tout à sa sauce pour définir exactement ses besoins. Framework va donc proposer son Wireless TouchPad Keyboard aussi bien pour les particuliers désireux d’obtenir une simple solution de salon, que pour ceux à la recherche d’un clavier capable de seconder un ordinateur portable et un objet bien pratique pour piloter un PC assigné à un vidéoprojecteur en salle de réunion. Mais aussi tous ceux qui veulent une solution adaptable à tout type de scénario matériel pour des projets industriels ou personnels.

Le pavé tactile du Framework Laptop 12 a simplement été réorienté de 90°

Le pavé tactile du Framework Laptop 12 a simplement été réorienté de 90°

La beauté de la chose, c’est que pour le constructeur, il n’y a pas ici un énorme investissement technique mais plutôt le recyclage de composants existants. Un assemblage de pièces déjà développées dans leur catalogue. Un coût beaucoup plus marginal qu’un développement de A à Z et un moyen intelligent de mettre en valeur son matériel. Je ne serais pas surpris que le projet de ce clavier soit né dans l’esprit d’un des ingénieurs de Framework et qu’il l’ait développé de son côté avant de le proposer quasi finalisé à la direction. On sent toute la mécanique du « DIY » derrière ce produit.

On ne connait pas encore le tarif du Wireless TouchPad Keyboard, pas plus que son autonomie réelle ni l’éventuelle disponibilité d’un jeu de touches en AZERTY. Pour ce dernier poste, pas trop d’inquiétudes à avoir. Le Framework Laptop 12 existe avec un clavier français et il sera donc possible de l’intégrer simplement dans la coque du clavier.

Le Wireless TouchPad Keyboard s'ajoute à un catalogue plus classique.

Une manière de se faire connaitre d’un plus grand public pour Framework

Je me suis d’abord demandé pourquoi la marque s’engageait dans ce secteur. Et, en décortiquant le produit, j’ai fini par comprendre quelle aubaine c’était pour Framework ! Ce Wireless TouchPad Keyboard est l’outil parfait pour la marque, il ne lui coûte pas cher en développement et va lui permettre de recycler des composants. Mais surtout, cela lui offre une occasion d’exister en dehors du cercle restreint de ses clients habituels. 

On ne peut pas dire que Framework soit le constructeur le plus connu du marché. S’il bénéficie d’un beau succès d’estime chez les passionnés d’informatique, sa clientèle reste assez restreinte. Le fait de se diversifier avec ce type de produit va étendre son image sans avoir à passer par la case publicité. Le côté séduisant de son offre combiné à l’aspect DIY et open source de celle-ci peut convaincre de nouveaux utilisateurs de la vraie pertinence de ses produits. 

Cette diversification va également permettre à Framework d’améliorer son chiffre d’affaires. Ce clavier n’embarque pas de composants en tension, il est donc beaucoup moins sujet à des fluctuations de tarifs que le reste de sa production. Il peut être fabriqué en masse et stocké longtemps sans perdre son intérêt ni se dévaluer. Après tout, cela fait des années que Logitech vend des milliers de K400 Plus chaque mois sans avoir changé son produit depuis.… 2012.

Wireless TouchPad Keyboard : le cheval de Troie de Framework © MiniMachines.net. 2026

☐ ☆ ✇ 01net

15 ans de domination pour le clavier de canapé de Logitech : Framework passe à l’attaque

Par : Thomas Estimbre — 22 avril 2026 à 15:16
Framework Wireless Touchpad Keyboard 01

Le Logitech K400 Plus est devenu le clavier de canapé par défaut de millions d'utilisateurs, faute de vraie alternative. Framework compte bien changer ça.

☐ ☆ ✇ MiniMachines.net

Framework Laptop 13 Pro : passage au Panther Lake pour le portable modulaire

Par : Pierre Lecourt — 22 avril 2026 à 12:20

Le nouveau Framework Laptop 13 Pro reprend tous les codes de la marque. L’engin est sobre, totalement modulaire et se présente comme une solution à même de piloter de nombreux usages. Il garde la même approche de réparabilité et d’évolution technique en aménageant la possibilité de glisser ses composants dans un ancien système.

Cela ne veut pas dire que le Framework Laptop 13 Pro fait du surplace technique. Les changements sont nombreux pour cette plateforme. Le châssis a beau être rétrocompatible avec les anciennes cartes mères, il n’en a pas moins changé. On retrouve ainsi une structure totalement métallique en aluminium usiné, une batterie qui gagne en capacité, un meilleur écran et un jeu de puce Panther Lake. Le nouveau venu pourra piloter des puces allant jusqu’au Core Ultra X9 388H d’Intel.

Pour lutter contre la hausse des prix des composants, la première offre est de type barebone. L’utilisateur devra donc lui apporter sa mémoire vive, son stockage et son système d’exploitation. Cette « DIY Edition » est proposée à 1349€ dans sa version la plus basique sous Core Ultra 5 325. Comptez 450€ de plus pour un Core Ultra X7 358H. Le modèle Core Ultra x9 388H n’a plus de tarif pour le moment puisqu’il a été totalement épuisé très rapidement.

Une seule version prête à l’emploi est disponible avec 32 Go de LPDDR5x-8533 au format LPCAMM2 et 1 To de stockage NVMe PCIe 4.0 en M.2 2280. Il s’agit d’un modèle Core Ultra X7 358H. Le modèle Core Ultra 5 325 n’est pas proposé.

Vous l’aurez compris, les éditions « DIY » sont confrontées à un problème majeur, la disponibilité et les tarifs de la mémoire LPCAMM2 qui n’est pas encore très répandue et dont les tarifs ont peut-être encore plus explosé que les autres. La plupart des utilisateurs devront donc aller à la pêche aux composants et espérer en trouver de pas trop chers ou se rabattre sur les versions prêtes à l’emploi.

Tous les modèles totalement équipés seront livrés au choix avec une distribution Ubuntu gratuite ou un Windows 11 Pro qui vous coutera 220€. Framework assurera également le support de diverses distributions comme Fedora, NixOS, Linux Mint, CachyOs et même Bazzite. Des personnalisations supplémentaires existent comme le choix d’un clavier anglais international, allemand ou français. On retrouve même des enceintes stéréo compatibles Dolby Atmos pour améliorer la qualité sonore de l’ensemble.

Framework Laptop 13 Pro

Framework Laptop 13 Pro

On retrouve donc ici  un portable de 13.5 pouces assez sobre avec un écran IPS en 2880 par 1920 pixels tactile et mat. Un écran au format 3:2 qui pourra travailler des fréquences allant de 30 à 120 Hz. La dalle s’annonce mate avec une luminosité de 700 nits, ce qui devrait lui permettre de fonctionner correctement en extérieur.

Un gros travail a été fait sur la batterie pour grimper à 74 Wh, soit 21% de plus que le dernier modèle de la marque. En combinaison d’une puce Panther Lake plus efficace, cela devrait permettre d’atteindre 20 heures d’autonomie dans des conditions optimales. En pratique, cela signifie de longues sessions de travail sans trop penser à devoir recharger l’engin suffisamment pour tenir des réunions qui s’enchaînent. Le constructeur donne plusieurs scénarios : 20 heures en streaming Netflix 4K sous Windows avec une luminosité de 250 nits et un volume audio à 30%. 17 heures pour du surf en ligne dans les mêmes conditions, 11 heures en visioconférence et… 7 jours en veille sous Ubuntu.

Le tout entre dans un châssis de 1.4 Kg en aluminium avec 29.66 cm de large, 22.89 cm de profondeur et 1.58 cm d’épaisseur. Évidemment le Framework Laptop 13 Pro est toujours livré avec des connecteurs entièrement modulaires qui permettent de choisir les sorties disponibles sur sa machine mais également d’en changer la géographie. On retrouve pour le reste une attention particulière à de nombreux détails. La possibilité de bloquer la webcam avec un œilleton de confidentialité et de couper les micros dans le même temps, un grand pavé tactile, un clavier personnalisable et autres détails du genre.

Un Framework Laptop 13 Pro totalement rétrocompatible

Si des ajustements techniques ont été faits, il est parfaitement possible de greffer des composants des anciens modèles de Framework Laptop 13 sur cette nouvelle version « pro ». Évidemment certains postes ne pourront pas être récupérés. Le passage de la mémoire sera par exemple assez compliqué vu le changement de format, mais Framework a travaillé dans le bon sens. Ainsi les tous premiers modèles de portables de la marque employaient de la mémoire SODIMM classique… Les processeurs Intel Panther Lake demandent de la LPDDR5x qui est donc généralement soudée à la carte mère. Framework ayant compris à ses dépens que la hausse de la mémoire vive l’impacterait probablement plus que ses grands concurrents, la marque a recours à de la mémoire LPCAMM2 qui n’est plus compatible avec les anciens modèles mais qui évite d’enfermer la capacité mémoire… et permet de distribuer une édition « DIY ».

L’avantage des connecteurs modulaires est qu’ils permettent de rendre les châssis adaptables d’une génération à l’autre. Ainsi on pourra glisser une carte mère équipée des nouvelles puces du Framework Laptop 13 Pro dans une ancienne génération de ces machine au prix de quelques ajustements techniques. La vidéo ci-dessus montre la possibilité d’une mise à jour d’un modèle vers un autre.

Ce tableau récapitule les compatibilités – et incompatibilités de base – entre les modèles précédents et le nouveau format du Framework Laptop 13 Pro. Il montre que certains éléments comme le châssis inférieur ou le clavier sont bien compatibles mais nécessitent des kits d’ajustement proposés par la marque sur son magasin. A noter que des guides et documents sont toujours disponibles pour développer ses propres accessoires et extensions.

La marque poursuit sa trajectoire alternative au monde des ordinateurs portables traditionnels. Elle est plus ouverte, plus libre et pense à un marché à la recherche de solutions pérennes. C’est un postulat qui fonctionne et qui rencontre son public. Évidemment la note est salée et le grand public n’y verra peut-être pas un avantage. Mais la frange de clients susceptibles d’être intéressés par ce type de matériel semble grossir au fil des ans. Framework a tenu bon et ceux qui pariaient sur son échec à ses débuts ne peuvent que reconnaitre la pertinence de leur offre.

Framework Laptop 13 Pro

Année de sortie 2026
Prix À partir de 1 349 €
Assemblage À construire soi-même
Temps : 10 – 20 minutes
Difficulté : modérée
Processeurs disponibles Intel Core Ultra 5 325
Jusqu’à 4,5 GHz • 4P + 4 basse conso • 8 threads

Intel Core Ultra X7 358H
Jusqu’à 4,8 GHz • 4P + 8E + 4 basse conso • 16 threads

Intel Core Ultra X9 388H
Jusqu’à 5,1 GHz • 4P + 8E + 4 basse conso • 16 threads

Consommation CPU Mode performance : 30W (60W boost)
Mode équilibré : 25W (60W boost)
Mode efficacité : 15W (20W boost)
Graphiques intégrés Ultra 5 : Intel Graphics (4 cœurs Xe, 2.45 GHz)
Ultra X7/X9 : Intel® Arc B390 (12 cœurs Xe, 2.5 GHz)
NPU (IA) Ultra 5 : jusqu’à 47 TOPS
Ultra X7/X9 : jusqu’à 50 TOPS
Refroidissement Ventilateur 65 x 5,5 mm
Caloduc 10 mm
Interface thermique Honeywell PTM7958
Système d’exploitation Aucun (Windows / Linux au choix)
Stockage Jusqu’à 2 To PCIe 5.0 NVMe
Jusqu’à 8 To PCIe 4.0 NVMe
Ou stockage personnel
Mémoire Jusqu’à 64 Go LPCAMM2 LPDDR5X
Connectivité Intel Wi-Fi 7 BE211 (sans vPro)
Poids 1,44 kg (avec cartes)
1,41 kg (sans cartes)
Dimensions 15,85 x 296,63 x 228,98 mm
Écran 13.5″ tactile 2.8K (2880 x 1920)
Ratio 3:2 • 700 nits
30–120 Hz • 100% sRGB
Surface mate antireflet
Ports 4 cartes d’extension modulaires
USB-C, USB-A, HDMI, DisplayPort, Ethernet
Jack 3,5 mm, MicroSD, SD
Audio Dolby Atmos (Windows)
Haut-parleurs stéréo 2W x2
2 micros MEMS avec interrupteur de confidentialité
Interfaces Thunderbolt 4
DisplayPort 2.1
USB-C PD jusqu’à 140W
Batterie 74.45 Wh
80% de capacité après 1000 cycles
Caméra 1080p 30 fps
Capteur 9.2 MP
Cache de confidentialité matériel
Biométrie Lecteur d’empreintes (Windows Hello / Linux)
Chargeur USB-C 100W GaN (optionnel)
Clavier Rétroéclairé
Course 1,5 mm
Configurable (langue / disposition)
Pavé tactile Haptique piézoélectrique
123,7 x 76,7 mm
Retour réglable
Matériaux Aluminium 6063 CNC (châssis complet)
Nouvelle charnière renforcée
Durabilité 75% aluminium recyclé
35% plastique recyclé
Emballage 100% recyclable
Compensation carbone
Contenu de la boîte Laptop Framework 13 DIY
Clavier, contour écran
RAM / SSD (optionnel)
Cartes d’extension
Chargeur (optionnel)
Tournevis Framework

Framework Laptop 13 Pro : passage au Panther Lake pour le portable modulaire © MiniMachines.net. 2026

☐ ☆ ✇ MiniMachines.net

Mémoire vive : une quatrième hausse des prix pour Framework

Par : Pierre Lecourt — 11 mars 2026 à 16:25

Résumé des épisodes précédents. Le 17 décembre dernier, Framework se pose en défenseur du grand public en expliquant que les grandes marques se gavent avec la hausse des prix en pratiquant des tarifs sans rapport avec la hausse. Plus raisonnable, la marque indiquait alors ne pas pouvoir faire autrement qu’augmenter ses prix mais en étant plus sage et moins gourmand que Dell ou Apple. Deux jours plus tard, elle augmentait à nouveau la mémoire vive une première fois… Avant de remettre le couvert en février avec une troisième hausse.

Aujourd’hui, quasiment un mois plus tard, c’est une quatrième hausse qui est annoncée. Je n’ai rien contre Framework en particulier, je les aime plutôt beaucoup, mais cela illustre extrêmement bien la problématique rencontrée par le marché. Dès le mois de décembre, je vous expliquais que la critique de leur PDG était infondée. Elle s’établissait sur une vision quelque peu étroite.

Framework, avec une production estimée à quelques dizaines de milliers de pièces par trimestre, se comparait à un Dell qui vend en moyenne plus de 110 000 ordinateurs par jour. À chaque fois que Framework commande de la mémoire ou du stockage ces derniers mois, il se voit contraint d’augmenter ses tarifs. Chez Dell, ou Apple, également mis en cause, cette commande mensuelle correspond à quelques heures de leur activité. 

Pour ne pas modifier leurs prix au quotidien, voire pire heure par heure, les grandes marques ont simplement anticipé leurs tarifs à plus long terme et reflété le prix d’un contrat passé avec leurs fournisseurs. Ceux-ci ont établi un prix moyen à long terme et les marques ont répercuté le tout. En décembre, Framework indiquait que le passage de 16 Go à 32 Go de DDR5 coutait 80$ HT chez eux.

Les options du Framework Laptop 13

Les options du Framework Laptop 13

Chez Dell, ces 80$ HT étaient exigés pour passer de 0 Go à 16 Go. Aujourd’hui, Framework propose un Laptop 13 vide de mémoire à 1049€ et une option à 156€ pour lui ajouter 8 Go de DDR5. Et 312€ pour passer à 16 Go… Chez Dell, on trouve désormais des portables à 1099€ avec 32 Go de mémoire vive. Les engins ne sont pas comparables mais la situation sur la mémoire s’est totalement inversée.

Framework reste un acteur de troisième plan niveau volumes

Et c’est totalement logique, alors que Framework continue d’acheter sa mémoire vive au « compte-goutte », Dell a sécurisé des contrats à moyen terme qui lui assurent un prix plus stable et des livraisons suffisantes. Cela leur a coûté cher les premiers temps mais c’est maintenant à leur avantage. Apple aurait fait la même chose il y a peu en s’assurant un contrat en béton avec Samsung. Un contrat signé aux exigences de prix du fabricant de mémoire et sans « négocier » sur celle-ci. Car l’obtention d’une mémoire en flux stable, même au plus cher, est plus importante pour la marque que de gagner quelques dollars sur chaque module… Avant de renégocier deux mois plus tard ou risquer de ne pas être livré parce qu’un autre acteur aurait accepté de mettre plus sur la table

Les machines de Framework restent parmi les plus intéressantes du marché actuel et leur modularité est exemplaire. Mais il est toujours très délicat de critiquer ses concurrents de cette manière. La crise de la mémoire vive touche tout le monde mais il semble évident que les plus petits acteurs sont ceux qui peuvent le plus en subir les effets.

Reste un point capital à comprendre : qu’elles soient effectuées d’un coup comme Dell ou Apple, ou par étape comme Framework, ces hausses sont massives et continuent d’enfler. La situation actuelle est légèrement stabilisée car beaucoup de marques vivent encore en partie sur des stocks de composants établis en 2025. Les prochains mois vont aller de mal en pis.

Framework de mauvaise foi avec l’augmentation de la mémoire

Mémoire vive : une quatrième hausse des prix pour Framework © MiniMachines.net. 2026

☐ ☆ ✇ TechRepublic - Articles

Hackers Used New Exploit Kit to Compromise Thousands of iPhones

Par : Ken Underhill — 5 mars 2026 à 21:27

Thousands of iPhones were compromised using the Coruna exploit kit, which chained 23 iOS vulnerabilities into advanced attacks used for espionage and cybercrime.

The post Hackers Used New Exploit Kit to Compromise Thousands of iPhones appeared first on TechRepublic.

☐ ☆ ✇ MiniMachines.net

Troisième hausse des prix de Framework à cause de la mémoire

Par : Pierre Lecourt — 13 février 2026 à 12:22

La hausse des prix de la mémoire vive joue des tours à toute l’industrie. Mais pour Framework, c’est particulièrement sensible et révélateur de la dimension de cette entreprise.

hausse des prix

Chaque composant de mémoire a vu son prix augmenter

Le 17 décembre dernier, une première hausse des prix chez Framework s’accompagnait d’un grincement de dents. Son PDG expliquait que les entreprises concurrentes n’étaient pas justes dans leurs augmentations de tarifs. Qu’ils « profitaient » de la crise de la mémoire vive pour augmenter leurs marges. Chose que ne faisait pas Framework. Deux jours plus tard, la même marque annonçait une seconde hausse de mémoire qui rattrapait d’un coup sensiblement l’écart qu’il constatait juste quelques jours avant avec ses concurrents.

Une troisième hausse des prix est désormais annoncée pour Framework, ce 11 février c’est un message laconique qui explique que l’achat de mémoire LPDDR5x qui équipe les ordinateurs portables de la marque continue d’augmenter. Ce qui ne laisse pas d’autres choix pour le constructeur que de refléter cette hausse sur ses tarifs publics. Au passage, les prix de vente proposés pour ces modules LPDDR5x sont dévoilés. En décembre, le gigaoctet de LPDDR5x était positionné à 10$ environ. Un prix HT en gros et avant toute implantation.

Aujourd’hui, ce même gigaoctet varie entre 12 et 16$ suivant la densité des puces. Les composants de 1 Go, peu denses, sont les moins chers. Si vous construisez un portable avec quatre emplacements de LPDDR5x cela ne permet que de proposer 4 Go de mémoire à vos clients. Si vous voulez 8 Go il vous faut des puces LPDDR5x plus denses de 2 Go. Et ainsi de suite : pour avoir 16 Go il vous faut des puces de 4 Go. Cela va jusqu’à 32 Go avec quatre puces de 8 Go. Les prix de ces composants LPDDR5x de meilleure capacité s’envolent et s’approchent de 16$ le Go.

hausse des prix

Les modules les plus denses de mémoire vive sont plus chers.

Autrement dit, chaque petit composant de 4 Go RAM à souder sur une carte mère pour sortir un portable en 16 Go est passé de 40$ pièce en décembre à 64$ pièce. Un prix Hors Taxes qui a des impacts en cascade, notamment sur la trésorerie des entreprises. Avec cette hausse des prix spectaculaire, le constructeur ne peut plus commander autant de mémoire qu’avant et donc ne peut pas sortir autant de portables qu’avant. 

En décembre, Framework pouvait, en utilisant 10 000$, acheter 250 modules de 4 Go de LPDDR5x à 40$. Désormais, avec des modules à 64$, il ne peut plus que  commander 156 modules pour la même somme. Avec 250 modules, la marque pouvait sortir de ses lignes 62 portables équipés en 16 Go. Avec 156 modules, ce ne sont plus que 39 machines qui peuvent être produites1. Il faut donc payer son personnel, ses locaux, ses charges avec 39 machines vendues pour 10 000 dollars injectés, ce qui a également un impact sur le prix de chaque engin.

Cette hausse des prix s’accompagne chez Framework d’un message indiquant que, non seulement, la marque essayait d’ajuster le prix des composants au plus proche de son prix d’achat, mais qu’elle absorbait une partie de ce tarif pour ne pas le répercuter sur ses clients. En clair, Framework a baissé ses marges. Elle sait pertinemment que si elle ne le fait pas, comme les autres constructeurs du marché, elle va gripper son carnet de commandes. Baisser ses marges n’est pas un choix pour l’industrie aujourd’hui, c’est une mesure de sauvegarde pour ne pas mettre ses ventes à l’arrêt.

hausse des prix

Un module de mémoire Micron

Framework piégé par la hausse des prix

Comme je vous le disais en décembre, Framework a été un peu cavalier de se déclarer plus proche des prix réels de la hausse que ses concurrents. Quand la marque annonçait que Dell et Apple surfacturaient le prix de leur mémoire vive, c’est bien parce que les problématiques en jeu sont différentes. Les échelles de ventes sont très étrangères et les outils industriels ne sont pas dimensionnés de la même façon.

Au final, Framework a sans doute « rattrapé » aujourd’hui la différence de tarif qu’elle reprochait à ses concurrents. Mais lorsque Framework commandait de quoi produire quelques dizaines de milliers de machines en décembre, les grands fabricants de la planète devaient trouver des ressources pour en fabriquer des millions. Dell a sorti 11.7 millions de PC au troisième trimestre 2025. Cela fait 2.92 millions de machines sur la période et donc autant de modules de mémoire vive à obtenir. Framework ne communique pas sur sa production, évoquant juste un nombre « à six chiffres » et donc quelque chose entre 100 000 et 999 999 machines à l’année.

On peut se dire que la capacité d’achat d’un Dell permet de payer moins cher sa mémoire vive et donc d’avoir de meilleurs tarifs qu’un plus petit concurrent. C’est tout à fait vrai lorsque l’offre est plus grande que la demande. Mais dans le cas présent, c’est tout le contraire. Si un fournisseur de mémoire vive comme Micron, Samsung ou SK Hynix ne produit plus assez parce que le gros de sa production est absorbé par des serveurs de calcul d’IA. Il va vous demander de payer plus cher pour obtenir la garantie de recevoir la mémoire vive dont vous avez besoin.

Au final, les prix d’une entité comme Framework ou d’une autre comme Dell vont se retrouver être assez similaires. Framework aura pour lui l’agilité et la possibilité de compléter ses commandes au fil de l’eau par « petits » lots. Saisissant les occasions comme elles se présentent. Dell aura sa force de frappe et l’historique de son carnet de commandes pour négocier sa mémoire.

Chaque lame de serveur d’IA consomme des To de mémoire vive

Comparer ses actions et ses prix sur un marché informatique si spécifique est donc toujours assez dangereux. Au mieux, c’est assez naïf, au pire c’est une pratique commerciale douteuse et teintée de mauvaise foi. Encore une fois, les constructeurs font face à une situation dont ils connaissaient les risques. De nombreux signaux d’alerte ont par le passé déjà fait largement fluctuer les cours de la mémoire.

En 2020 par exemple, une ligne de production Micron tombe en panne et le cours de la mémoire vive s’envole immédiatement. Le flux entre production et demande étant déjà extrêmement tendu. En 2017, ce n’étaient pas les serveurs d’IA qui faisaient monter les cours, mais l’impact de la demande de smartphones de plus en plus gourmands.

La différence aujourd’hui, c’est que les plans d’investissement des géants de l’IA sont absolument sauvages. Ils ne sont pas « auto-régulés » par l’arbitrage d’une clientèle qui est l’acheteur final et vont durer très longtemps. Une usine qui pose problème, à la suite d’une panne ou d’une catastrophe naturelle, cela se répare et les constructeurs peuvent jouer sur leurs stocks pour faire tampon. Le calendrier des investissements liés à l’intelligence artificielle s’étale au contraire sur plusieurs années. Ce qui rend la tension trop longue pour être encaissée.

Quant aux tarifs des produits qui pouvaient limiter la hausse, elle n’existe tout simplement pas. En 2017 quand les smartphones se sont mis à faire flamber les cours, le prix a dû s’arrêter de monter parce que les constructeurs se sont rendus compte que l’impact de cette hausse ralentissait leurs ventes. Les centres de données d’IA n’ont aucune notion de rentabilité à court, moyen et long terme pour le moment. Ils achètent donc de la mémoire pour n’importe quel montant, même le plus délirant. Sans jamais être ralentis par une quelconque question de retour sur investissement.

Et la hausse des prix n’est pas prête de s’arrêter.

 

Troisième hausse des prix de Framework à cause de la mémoire © MiniMachines.net. 2026

☐ ☆ ✇ MiniMachines.net

DockFrame : un dock modulaire sous extensions Framework

Par : Pierre Lecourt — 22 janvier 2026 à 11:54

L’idée du DockFrame est simple et c’est ce qui en fait toute la beauté. L’appareil reprend les différents accessoires de connectique des portables Framework pour les assembler dans un dock indépendant.

DockFrame

Un prototype du DockFrame

Le DockFrame répond à une question assez simple : que faire des différents modèles de connecteurs Framework quand vous ne vous en servez pas ? Il permet également de construire le dock sur mesure dont vous avez besoin en exploitant les différentes options proposées par la marque.

Framework

De premières images de prototypes ont été publiées en ligne avec les différents connecteurs disponibles : USB Type-A et Type-C, Ethernet, HDMI, DisplayPort, jack audio 3.5 mm. Une des idées fortes de Framework est en effet de proposer une base de connecteurs en USB Type-C et de leur adjoindre une extension qui embarque à la fois la connectique de sortie voulue, mais aussi l’électronique pour convertir ces ports USB Type-C internes au portable vers le format souhaité. Ainsi, un ensemble de petites cartouches propose un composant qui va prendre le signal USB 3.1 du portable et le convertir en HDMI ou en lecteur de cartes SDXC. 

DockFrame

Framework propose plusieurs types de connecteurs différents et encourage sa communauté à en développer d’autres. Ici le DockFrame s’appuie donc sur ces accessoires pour vous permettre de construire une solution sur mesure en assemblant pas moins de quatre extensions. Trop peu ? Pas grave, le dock propose une face supérieure qui reprend le format de connexion des LEGO pour permettre d’empiler plusieurs docks ensemble et passer à huit extensions ou plus.

Le DockFrame avec un connecteur d'alimentation et un multimètre.

Le DockFrame avec un connecteur d’alimentation et un multimètre.

Le DockFrame sera accompagné d’extensions originales

Le créateur de ce dock particulier a décidé d’aller encore plus loin en imaginant des extensions utiles pour son propre usage. En plus de ce projet de base, il a décidé de construire des extensions adaptées à ses propres besoins. On retrouvera ainsi une alimentation ajustable du 3.3 au 12V, un multimètre, un lecteur Mini SSD et même une solution de développement qui s’appuie sur les formats de SEEED.

Évidemment, ce DockFrame n’a pas besoin d’un ordinateur Framework pour être utilisé, il s’agit juste d’une fonctionnalité USB classique et il pourra être connecté à n’importe quel ordinateur compatible avec les formats USB 3.x. Les extensions de type SSD seront évidemment plus rapides si vous le connectez à un port USB4 ou Thunderbolt.

Pas de prix ni de date officielle de lancement, le site du projet permet toutefois de s’inscrire à une liste d’information.

Source : Tomshardware

DockFrame : un dock modulaire sous extensions Framework © MiniMachines.net. 2025

☐ ☆ ✇ MiniMachines.net

Framework augmente – encore – ses tarifs

Par : Pierre Lecourt — 19 décembre 2025 à 16:39

Framework mettait en cause Dell et Apple en expliquant qu’ils exagéraient sur le prix de leurs options mémoire. Je vous expliquais il y a deux jours pourquoi comparer la marque Framework à Dell et Apple était assez maladroit. Les dimensions des trois entités étant totalement différentes.

Aujourd’hui Framework est contraint d’augmenter à nouveau ses tarifs. Ce sont les unités de stockage qui grimpent cette fois-ci. Voilà donc deux hausses en une semaine seulement. Ce qui donne une bonne idée des problématiques en jeu. Si la marque pensait pouvoir échapper en passant entre les gouttes grâce à plus de souplesse que de grands industriels comme Dell et Apple, elle se fait probablement rattraper par des volumes beaucoup plus faibles. C’est le problème quand on critique la concurrence, on devient la cible d’une analyse plus poussée.

Source Notebookcheck

L’augmentation est sensible, l’ajout d’un SSD WD Black SN7100 de 500 Go coutait 79€ auparavant, il passe à 92€. Un 1 To bascule de +115€ à +150€. Un 2 To passe de +229€ à +259€. Plus on monte en gamme et en capacités, plus la hausse se ressent.

La marque indique que les prix devraient encore augmenter pendant le premier semestre 2026. Ce qui pourrait mettre à mal sa communication de base. Celle qui grinçait des dents sur les options d’Apple et de Dell. Ces grands groupes pouvant être mieux protégés sur le long terme que certains plus petits concurrents.

Toujours impossible de voir jusqu’où les tarifs vont grimper, mais la situation empire de jour en jour aux dires des revendeurs, grossistes et marques que j’ai pu interroger.

Framework de mauvaise foi avec l’augmentation de la mémoire

Framework augmente – encore – ses tarifs © MiniMachines.net. 2025

☐ ☆ ✇ MiniMachines.net

Framework de mauvaise foi avec l’augmentation de la mémoire

Par : Pierre Lecourt — 17 décembre 2025 à 13:53

Après avoir critiqué Dell et Apple pour faire leur beurre sur la disette imposée de mémoire vive, Framework annonce à son tour une augmentation de la mémoire vive dans ses options de DDR5. Hausse qui s’associe avec une mise à jour des conditions de ventes de ses machines.

Chez Framework, on estimait le 9 décembre que des entités comme Dell et Apple surfacturaient l’augmentation de la mémoire. Ce qui n’est franchement pas un scoop et qui fait partie intégrante des schémas de commercialisation de ces entreprises. Si la crise actuelle accentue le phénomène, tout le catalogue de Dell et d’Apple sont pensés dans ce sens.

Framework indiquait que son passage de 16 à 32 Go de DDR5 ne coutait que 80$ le 9 décembre. Tout en mettant en avant le fait que ce tarif ne vous offrirait qu’une seule barrette de 16 Go depuis un engin vide chez Dell. Et qu’il vous en couterait le double pour en avoir deux. Je ne vais pas revenir en détail sur les stratégies de chacun, mais cela me parait un peu difficile de comparer Dell, Apple et Framework. 

Tout le monde sait, depuis toujours, qu’appeler un conseiller Dell permet de réduire sa facture d’achat significativement. Les entreprises qui contactent le service client pour acheter quelques machines à l’année bénéficient de réductions et le calcul des composants secondaires est souvent lié à cela. Doubler « gratuitement » sa mémoire vive est un « geste commercial » assez classique chez Dell. Du moins, ça l’était.

Depuis le Apple M1, la mémoire vive est intégrée directement sur le SOC

Depuis le Apple M1, la mémoire vive est intégrée directement sur le SOC

Apple de son côté embarque directement la mémoire vive dans ses puces et cela rend cette comparaison très étrange. L’impact de l’augmentation de la mémoire et des tensions d’approvisionnement est forcément très différent. Apple achète en amont de la fabrication de ses SoC. Et la marque choisit des grades de mémoire très élevés. Elle n’intègre évidemment que le très haut de gamme dans ses puces pour ne pas générer de couteux déchets de production ou de pannes à moyen terme. Là où un autre constructeur peut tolérer des barrettes défectueuses, Apple ne laissera rien passer. Imaginez vous acheter de la mémoire un peu moins haut de gamme, la monter sur une série de quelques milliers de puces et découvrir ensuite des erreurs en sortie de chaine. Le coût de fabrication d’un SoC Apple avec cette mémoire défectueuse embarquée serait catastrophique. Framework de son côté peut simplement renvoyer les barrettes qui posent un éventuel souci en SAV. 

Enfin, les volumes des trois entités sont totalement différents. Les chiffres de Framework ne sont pas connus, mais Dell a distribué 10.3 millions de PC au troisième trimestre 2025. Apple, 6.8 millions. Je doute fortement que l’impact d’une pénurie de mémoire soit le même pour les trois entités. Je ne suis pas là pour défendre Dell ou Apple mais s’ils ont décidé une augmentation de la mémoire vive, c’est en anticipant probablement le scénario que va connaitre toute l’industrie en 2026. Ils le font peut être plus rapidement que d’autres tout simplement parce qu’ils vendent plus que d’autres. C’est par ailleurs lié à leur position particulière dans un calcul permettant de lisser les tarifs pour ne pas avoir à changer les prix en permanence1. Tout simplement parce que pour Dell comme pour Apple, il est difficile de proposer des devis et des contrats professionnels avec des tarifs qui fluctuent. 

Ainsi Framework achète sa mémoire avec plus de souplesse que Dell ou Apple, peut changer de fournisseur/fabricant et même utiliser des grossistes au besoin. Son appétit n’est pas tout à fait le même en quantité. Dell et Apple ont dû signer des engagements sur une période plus longue pour obtenir l’approvisionnement nécessaire à leur fonctionnement. Et leurs fournisseurs n’ont évidemment pas décidé de leur faire un cadeau en se basant sur le cours du jour pour déterminer leurs contrats à long terme. S’ils savent que les prix vont monter à l’avenir, ils vont anticiper un tarif moyen sur l’année 2026.

augmentation de la mémoire

Une augmentation de la mémoire vive pour tout le monde

Au final, Framework monte donc le prix de ses composants à son tour mais uniquement pour les options. La marque a dû sécuriser un assez gros stock de DDR5 avant la hausse qu’elle conservera au prix d’avant la hausse pour ses machines pré-équipées. Comme la marque n’écoule pas 10.3 millions de PC par trimestre comme Dell, ce qui veut dire 3.43 millions de PC par mois entre juillet en septembre, ou 114 333 PC par jour, chaque jour pendant trois mois, elle peut se le permettre. Si elle avait la même distribution que Dell, Apple ou un autre acteur du TOP 10 des vendeurs de PC mondiaux, elle serait dans le même bain.

D’ailleurs ce n’est qu’une question de temps avant que la marque soit obligée d’augmenter tous les tarifs de ses composants mémoire. Le fait que ses composants n’augmentent pas dans ses portables va les rendre plus séduisants et son stock va disparaitre plus vite. Et le constructeur en est pleinement conscient puisqu’il a déjà modifié ses conditions générales de vente pour éviter que de petits malins achètent des portables Framework avec des options mémoire vive et puissent les renvoyer sans cette même mémoire. Désormais il faudra renvoyer la machine telle qu’elle a été livrée, options comprises, pour bénéficier d’un remboursement.

Pour suivre le DDRGate

Framework de mauvaise foi avec l’augmentation de la mémoire © MiniMachines.net. 2025

☐ ☆ ✇ MiniMachines.net

MetaComputing développe une carte mère ARM CIX P1 pour Framework

Par : Pierre Lecourt — 5 décembre 2025 à 14:08

À bord de cette carte mère MetaComputing ARM AI PC, un SoC que l’on a déjà croisé. Du moins sur le papier. Le CIX P1 a en effet été retenu par Radxa, Orange Pi et Minisforum. 

Il s’agit toujours d’un CXI CP8180 au TDP de 28 W, une solution 12 cœurs comprenant deux cœurs Cortex-A720 à 2.6 GHz, deux cœurs Cortex-A720 à 2.4 GHz, quatre cœurs cortex-A-720 à 2.3 GHz et enfin quatre cœurs Cortex-A520 à 1.8 GHz. Un circuit graphique Immortalis-G720 MC10 et un NPU 30 TOPS complètent l’ensemble. Cette puce prendra ici en charge de la mémoire vive LPDDR5-5500 en 16 et 32 Go avec un stockage associé de 1 To. 

La carte mère sera proposée à partir de 480.95€ HT en version standard. Mais elle pourra également être achetée avec un ordinateur Framework, totalement préinstallée, pour une base tarifaire de 962.95€ HT. Il semble qu’il sera également possible d’obtenir le boitier dédié mis au point par Cooler Master.

CNX Software pointe vers deux éléments intéressants pour cette carte. Le premier est technique et remonte que si la puce CIX P1 présente bien un TDP de 28 watts compatible avec les portables, sa consommation électrique est en revanche bien plus élevée que les puces classiques de ce marché. Là où des processeurs AMD, Qualcomm ou Intel proposent des fonctionnements en veille sous les 3 watts, la CXI grimpe à 16 watts. Ce qui affectera énormément l’autonomie du portable sur batterie.

La carte mère MetaComputing sous CIX P1

La carte mère MetaComputing sous CIX P1

L’autre point notable est dans la société MetaComputing elle même. Il semble qu’elle soit pilotée par le créateur de DeepComputing qui développe des solutions RISC-V dont une en particulier. La carte mère spécialisée qui propose une de ces puces RISC-V Starfive aux… Framework.

La carte mère DeepComputing sous StarFive JH7110

La carte mère DeepComputing sous StarFive JH7110

MetaComputing semble donc avoir repris purement et simplement l’image de la carte mère de DeepComputing sur son site. De là à dire que la carte n’est pour le moment pas encore fabriquée mais uniquement en précommande ? Difficile d’être totalement affirmatif mais le site de vente de la marque ne donne aucune indication de délai, de stock ou de situation géographique.

MetaComputing développe une carte mère ARM CIX P1 pour Framework © MiniMachines.net. 2025

☐ ☆ ✇ MiniMachines.net

Le Framework Desktop​ peut désormais être utilisé en rack

Par : Pierre Lecourt — 2 octobre 2025 à 12:09

Deux nouveaux accessoires sont annoncés sur le MarketPlace de Framework. D’abord une poignée pour porter le châssis facilement d’un poste à l’autre. Ensuite et surtout un moyen de monter la carte mère de la machine en rack.

La Framework Desktop Handle peut paraitre un peu gadget mais c’est un ajout sympathique pour certaines personnes qui baladent leurs machines. C’est aussi une solution appréciée par les gens qui transportent des engins sur des salons ou chez des clients. Elle est désormais accessible dans les options du produit lors de l’achat et pourra également être achetée dans la boutique pour 20 €.

Le support de rack est quant à lui proposé à 40 €, il permettra de monter la carte mère du Framework sur un support 2U de 10 pouces. Le format MiniITX de la carte peut par ailleurs être monté sur d’autres supports de ce type plus classiques. Celui-ci a néanmoins été pensé pour coller aux standards de Framework, porter l’alimentation du boitier et même servir à accueillir des cartes à d’autres formats avec une compatibilité Flex-ATX.

Framework Desktop : un MiniPC AMD modulaire et évolutif

Le Framework Desktop​ peut désormais être utilisé en rack © MiniMachines.net. 2025

☐ ☆ ✇ MiniMachines.net

Campus : un portable Framework en alu avec un clavier méca

Par : Pierre Lecourt — 16 septembre 2025 à 11:56

Prenez un ordinateur Framework, ajoutez lui une toute nouvelle coque sur mesure en aluminium et un clavier mécanique et vous obtiendrez Campus. Un portable certes un peu plus épais, un peu moins… portable. Mais très séduisant.

Flurpes est un moddeur qui propose sur Youtube des expérimentations assez originales très orientées autour des claviers4.

Propriétaire d’un ordinateur Framework, il était ravi de l’offre proposée par la marque mais déçu de la prestation du clavier proposé sur le portable. Sans surprise pour un habitué de claviers mécaniques, le modèle ultrafin proposé par Framework n’était pas forcément le plus ergonomique ni le plus agréable. Le projet Campus est donc une tentative destinée à remplacer la solution d’origine par un nouveau clavier. Plus conforme aux attentes de notre moddeur.

Le projet débute par la reconstruction d’un châssis de portable Framework 13. Tout a été mesuré et recréé pour accueillir non seulement les éléments d’origine de la machine et les ajuster au millimètre mais également permettre l’intégration d’une solution mécanique beaucoup plus épaisse. Pour réaliser ce nouveau châssis, des prototypes ont été imprimés en 3D afin d’ajuster tous les éléments du mieux possible avant de voir l’ensemble être réalisé par une CNC dans un bloc d’aluminium massif.

Un travail très rarement vu pour ce type de réalisation de « hobbyiste » car ce genre de réalisation est aussi longue que couteuse. Le résultat est assez incroyable.

Pour éviter l’usure prématurée du châssis en aluminium, notamment des parties devant recevoir des vis, l’idée a été de monter des supports imprimés en 3D sur le châssis en aluminium. Ce seront ces supports qui auront ensuite à porter les différents composants, cela évitera d’abîmer le pas de vis en aluminium plus fragile. En cas de casse des supports imprimés en 3D, ils seront plus simples à remplacer et pourront recevoir des inserts en alliages de métal plus résistants aux contraintes que l’aluminium.

Les différentes inscriptions et le logo Campus sont rajoutés dans un second temps à l’aide d’une graveuse laser directement sur la coque en aluminium

Le nouveau clavier mécanique affleure juste sur la surface du Campus et permet une frappe confortable. Il s’agit d’une solution 60% assez classique dans le monde des  fondus de claviers mécaniques. Pour les plus curieux, on retrouve ici des mécanismes Kailh Choc Sunset et des keycaps MBK.

Le tout est soudé pour gagner en épaisseur. Sur le côté du châssis, on peut distinguer trois boutons rotatifs qui affleurent en surface. Ils sont reliés à des encodeurs rotatifs qui vont piloter le volume, la luminosité de l’écran et le rétro-éclairage du clavier. Le tout exploite un firmware QMK pour une programmation complète du dispositif.

En interne, puisqu’il y avait de la place disponible, un hub USB a été ajouté sur un des ports USB Type-C de base de la machine. Le Campus offre ainsi en plus un lecteur de cartes MicroSDXC, une sortie HDMI et un USB type-A. 

Flurpes souligne plusieurs points problématiques dans sa vidéo, chose que peu de créateurs dans son genre ne mettent en avant. D’abord le fait que tout n’a pas fonctionné comme prévu. Son hub interne pose d’importants problèmes et malgré du temps et un investissement conséquent, il n’est pour le moment pas parvenu à l’alimenter correctement ni à l’exploiter. Cela n’empêche pas la machine d’être fonctionnelle, mais cela montre la complexité de ce genre de choses que l’on prend souvent pour des gadgets simples à réaliser. Autre déception de ce projet Campus, la qualité du signal Wi-Fi. Contrairement à une certaine croyance assez commune, le positionnement d’antennes et la gestion de celles-ci n’est pas aussi simple qu’il n’y parait. La « magie » des ondes se calcule très précisément et non pas au petit bonheur. Ainsi en déplaçant les antennes et en les repositionnant presque au même endroit qu’à l’origine, la puissance du réseau a largement décliné.

Rien qui ne pose véritablement de problèmes et qui montre à quel point ce genre de projet peut être compliqué à maitriser, même pour quelqu’un de très talentueux et motivé.

Campus : un portable Framework en alu avec un clavier méca © MiniMachines.net. 2025

☐ ☆ ✇ MiniMachines.net

Framework offre une option Gaming à son portable 16″ évolutif

Par : Pierre Lecourt — 27 août 2025 à 11:22

Le Framework Laptop 16 est sorti en 2023 avec une promesse, permettre à ses acquéreurs de le faire évoluer. C’est le mantra de la marque, proposer des ordinateurs évolutifs même quand il s’agit de portables. Ses clients étaient donc en droit d’espérer des mises à jour matérielles. Ils ne seront pas déçus.

Le portable 16 pouces de Framework est apparu en 2023 et promettait un bon niveau de performance avec la gamme de puces AMD Ryzen 7040HS et la possibilité d’ajouter des circuits graphiques Radeon RX 7700S. Cette machine pourra bientôt être mise à jour grâce à la modularité de son concept. La nouvelle série propose de basculer sur la gamme Ryzen AI 300 et même de choisir un circuit Nvidia GeForce RTX 5070. Cette nouvelle gamme proposera pas moins de quatre sorties vidéo.

Ticket d’entrée pour cette nouvelle gamme complète et prémontée ? Le modèle de base n’est pas donné avec son Ryzen AI 7 350, 16 Go de mémoire vive et 512 Go de stockage sous Windows 11 il se positionne à 2029€. Si vous voulez le monter vous-même, vous pourrez économiser quelques dizaines d’euros avec un prix de base qui bascule à 1689€. Cela sans circuit graphique secondaire. Ajoutez 720€ si vous voulez un module d’extension Nvidia RTX 5070. 

Le module d’extension graphique

D’autres options sont disponibles pour atteindre le modèle Ryzen AI 9 HX 370 à 2869€ prémonté avec 64 Go de mémoire vive et 2 To de stockage. Toujours sans circuit graphique Nvidia. C’est, semble-t-il, le prix à payer pour la modularité. Toutes les machines ne seront expédiées qu’en décembre si vous vous positionnez aujourd’hui en les précommandant. A noter que Framework a rogné sur le tarif des modèles précédents sous Ryzen 7040HS. Le modèle de base est désormais à 1799€ en 16/512 Go sous Win11.

La nouvelle version du Framework Laptop 16 propose également une webcam de meilleure qualité avec un modèle 9.2 MP OVO8X d’Omnivision entourée de deux micros, un châssis en aluminium renforcé et de nouvelles options de claviers… Framework propose surtout des lettrages classiques et peut également vous proposer d’embarquer un logo Windows et même une touche Copilot si vous aimez faire de la pub à Microsoft…

Pour le reste, c’est assez classique, on retrouve deux slots DDR5-5600 pour un maximum de 96 Go de mémoire vive, deux ports M.2 pour l’extension de stockage. Un M.2 2280 de base et un M.2 2230 en option. On retrouve un module Wi-Fi7 et Bluetooth 5.4 AMD RZ717, une paire d’enceintes stéréo et une batterie 85 Wh qui nécessitera le chargeur 240 W en USB Type-C livré avec. 

Le système conserve évidemment sa particularité d’avoir une connectique magnétique avec des ports échangeables et vous pourrez donc ajouter six éléments à votre machine : des ports USB Type-A ou C, du HDMI ou DisplayPort, de l’Ethernet, un lecteur de carte, des sorties audio et même des SSD de 250 Go ou 1 To.

Évidemment, le gros intérêt de cette annonce est pour ceux qui possèdent déjà un Framework Laptop 16. Ils peuvent facilement remplacer la carte mère de leur modèle par une des nouveaux. Un échange qui permettra de garder son écran, son clavier et le reste de ses composants. L’ancienne carte mère pouvant être recyclée de différentes manières. Vous pouvez par exemple vous inspirer des nombreux projets DIY qui reprennent des cartes de la marque pour monter des minimachines :  : Le Framedeck, le Mainboard Terminal, ce MiniPC Tout en un, le pseudo-netbook Penkesu Computer et même un format tablette. les nouvelles cartes se négocient de 929 à 1979€ suivant les composants embarqués.

Framework offre une option Gaming à son portable 16″ évolutif © MiniMachines.net. 2025

☐ ☆ ✇ Raspberry Pi

Our Code Editor is open source

Par : Phil Howell — 11 juillet 2023 à 14:14

A couple of months ago we announced that you can test the online text-based Code Editor we’re building to help young people aged 7 and older learn to write code. Now we’ve made the code for the Editor open source so people can repurpose and contribute to it.

The interface of the beta version of the Raspberry Pi Foundation's Code Editor.

How can you use the Code Editor?

You and your learners can try out the Code Editor in our Python project paths. We’ve included a feedback form for you to let us know what you think about the Editor.

  • The Editor lets you run code straight in the browser, with no setup required.
  • It makes getting started with text-based coding easier thanks to its simple and intuitive interface.
  • If you’re logged into your Raspberry Pi Foundation account, your code in the Editor is automatically saved.
  • If you’re not logged in, your code changes persist for the session, so you can refresh or close the tab without losing your work.
  • You can download your code to your computer too.

Since the Editor lets learners save their code using their Raspberry Pi Foundation account, it’s easy for them to build on projects they’ve started in the classroom or at home, or bring a project they’ve started at home to their coding club.

Three learners working at laptops.

Python is the first programming language our Code Editor supports because it’s popular in schools, CoderDojos, and Code Clubs, as well as in industry. We’ll soon be adding support for web development languages (HTML/CSS).

A text output in the beta version of the Raspberry Pi Foundation's Code Editor.

Putting ease of use and accessibility front and centre

We know that starting out with new programming tools can be tricky and add to the cognitive load of learning new subject matter itself. That’s why our Editor has a simple and accessible user interface and design:

  • You can easily find key functions, such as how to write and run code, how to save or download your code, and how to check your code.
  • You can switch between dark and light mode.
  • You can enlarge or reduce the text size in input and output, which is especially useful for people with visual impairments and for educators and volunteers who want to demonstrate something to a group of learners.

We’ll expand the Editor’s functionalities as we go. For example, at the moment we’re looking at how to improve the Editor’s user interface (UI) for better mobile support.

If there’s a feature you think would help the Editor become more accessible and more suitable for young learners, or make it better for your classroom or club, please let us know via the feedback form.

The open-source code for the Code Editor

Our vision is that every young person develops the knowledge, skills, and confidence to use digital technologies effectively, and to be able to critically evaluate these technologies and confidently engage with technological change. We’re part of a global community that shares that vision, so we’ve made the Editor available as an open-source project. That means other projects and organisations focussed on helping people learn about coding and digital technologies can benefit from the work.

How did we build the Editor? An overview

To support the widest possible range of learners, we’ve designed the Code Editor application to work well on constrained devices and low-bandwidth connections. Safeguarding, accessibility, and data privacy are also key considerations when we build digital products at the Foundation. That’s why we decided to design the front end of the Editor to work in a standalone capacity, with Python executed through Skulpt, an entirely in-browser implementation of Python, and code changes persisted in local storage by default. Learners have the option of using a Raspberry Pi Foundation account to save their work, with changes then persisted via calls to a back end application programming interface (API).

Two young people working together on a tech project.
Two teenagers sit at laptops and do coding activities.

As safeguarding is always at the core of what we do, we only make features available that comply with our safeguarding policies as well as the ICO’s age-appropriate design code. We considered supporting functionality such as image uploads and code sharing, but at the time of writing have decided to not add these features given that, without proper moderation, they present risks to safeguarding.

There’s an amazing community developing a wealth of open-source libraries. We chose to build our text-editor interface using CodeMirror, which has out-of-the-box mobile and tablet support and includes various useful features such as syntax highlighting and keyboard shortcuts. This has enabled us to focus on building the best experience for learners, rather than reinventing the wheel.

Diving a bit more into the technical details:

  • The UI front end is built in React and deployed using Cloudflare Pages
  • The API back end is built in Ruby on Rails
  • The text-editor panel uses CodeMirror, which has best-in-class accessibility through mobile device and screen-reader support, and includes functionality such as syntax highlighting, keyboard shortcuts, and autocompletion
  • Python functionality is built using Skulpt to enable in-browser execution of code, with custom extensions built to support our learning content
  • Project code is persisted through calls to our back end API using a mix of REST and GraphQL endpoints
  • Data is stored in PostgreSQL, which is hosted on Heroku along with our back end API

Accessing the open-source code

You can find out more about our Editor’s code for both the UI front end and API back end in our GitHub readme and contributions documentation. These kick-starter docs will help you get up and running faster:

The Editor’s front end is licensed as permissively as possible under the Apache Licence 2.0, and we’ve chosen to license the back end under the copyleft AGPL V3 licence. Copyleft licences mean derived works must be licensed under the same terms, including making any derived projects also available to the community.

We’d greatly appreciate your support with developing the Editor further, which you can give by:

  • Providing feedback on our code or raising a bug as a GitHub Issue in the relevant repository.
  • Submitting contributions by raising a pull request against the relevant repository.
    • On the back end repository we’ll ask you to allow the Raspberry Pi Foundation to reserve the right to re-use your contribution.
    • You’ll retain the copyright for any contributions on either repository.
  • Sharing feedback on using the Editor itself through the feedback form.

Our work to develop and publish the Code Editor as an open-source project has been funded by Endless. We thank them for their generous support.

If you are interested in partnering with us to fund this key work, or you are part of an organisation that would like to make use of the Code Editor, please reach out to us via email.

The post Our Code Editor is open source appeared first on Raspberry Pi Foundation.

☐ ☆ ✇ Raspberry Pi

Test our new Code Editor for young people

Par : Phil Howell — 5 avril 2023 à 12:55

We are building a new online text-based Code Editor to help young people aged 7 and older learn to write code. It’s free and designed for young people who attend Code Clubs and CoderDojos, students in schools, and learners at home.

The interface of the beta version of the Raspberry Pi Foundation's Code Editor.
The Code Editor interface

At this stage of development, the Code Editor enables learners to:

  • Write and run Python code right in their browser, with no setup required. The interface is simple and intuitive, which makes getting started with text-based coding easier.
  • Save their code using their Raspberry Pi Foundation account. We want learners to easily build on projects they start in the classroom at home, or bring a project they’ve started at home to their coding club.
A young person at a CoderDojo uses the Raspberry Pi Foundation's Code Editor.

We’ve chosen Python as the first programming language our Code Editor supports because it is popular in schools, CoderDojos, and Code Clubs. Many educators and young people like Python because they see it as similar to the English language. It is often the text-based language young people learn when they take their first steps away from a block-based programming environment, such as Scratch. 

Python is also widely used by professional programmers and usually tops at least one of the industry-standard indexes that ranks programming languages.

We will be adding support for web development languages (HTML/CSS/JavaScript) to the Editor in the near future.

We’re also planning to add features such as project sharing and collaboration, which we know young people will love. We want the Editor to be safe, accessible, and age-appropriate. As safeguarding is always at the core of what we do, we’ll only make new features available once we’ve ensured they comply with the ICO’s age-appropriate design code and our safeguarding policies.

Test the Code Editor and tell us what you think

We are inviting you to test the Code Editor as part of what we call the beta phase of development. As the Editor is still in development, some things might not look or work as well as we’d like — and this is why we need your help. 

A text output in the beta version of the Raspberry Pi Foundation's Code Editor.
Text output in the Code Editor

We’d love you to try the Editor out and let us know what worked well for you, what didn’t work well, and what you’d like to see next.

You can now try out the Code Editor in the first two projects of our ‘Intro to Python’ path. We’ve included a feedback form for you to let us know which project you tried, and what you think of the Editor. We’d love to hear from you.

Your feedback helps us decide what to do next. Based on what learners, educators, volunteers, teachers, and parents tell us, we will make the improvements to the Editor that matter most to the young people we aim to support.

Where next for the Code Editor?

One of our long-term goals is to engage millions of young people in learning about computing and how to create with digital technologies. We’re developing the Code Editor with three main aims in mind.

1. Supporting young people’s learning journeys

We aim to build the Code Editor so it:

  • Suits beginners and also supports them as their confidence and independence grows, so they can take on their own coding projects in a familiar environment
  • Helps learners to transition from block-based to text-based, informed by our deep understanding of pedagogy and computing education
  • Brings together projects instructions and code editing into a single interface so that young people do not have to switch screens, which makes coding easier

2. Removing barriers to accessing computing education

Our work on the Code Editor will:

  • Ensure it works well on mobile and tablet devices, and low-cost computers including the Raspberry Pi 4 2GB
  • Support localisation and translation, so we can tailor the Editor for the needs of young people all over the world

3. Making learning to program engaging for more young people

We want to offer a Code Editor that:

  • Enables young people to build a vast variety of projects because it supports graphic user interface output and supplies images and sprites for use in multimedia projects

We’re also planning on making the Editor available as an open source project so that other projects and organisations focussed on helping people learn to code can benefit. More on this soon.

Our work on the Code Editor has been generously funded by the Algorand Foundation and Endless, and we thank them for their generous support. If you are interested in partnering with us to fund this key work, please reach out to us via email.

The post Test our new Code Editor for young people appeared first on Raspberry Pi Foundation.

☐ ☆ ✇ Raspberry Pi

Introduce young people to coding with our updated projects

Par : Liz Smart — 17 novembre 2022 à 12:29

A year ago we launched our Introduction to Scratch path of six new coding projects. This was the first path to use our new 3…2…1…Make! approach for prioritising fun and engagement whilst enabling creators to make the things that matter to them. Creators learn how to add code, costumes, and sounds to sprites as they make animations, a game, an app, and a book.

Young person using Scratch.

As the first birthday of the Introduction to Scratch path approached, we decided to review and refresh each project. We used input from the community, looked at remixes of the projects, and analysed visitor data to guide us in our review.

We would like to say a massive thank you to everyone who engaged in focus groups, provided input via social channels, or clicked the project feedback buttons. We really appreciate you taking the time to reach out and we hope you will be pleased with the changes. 

An illustration of the 3-2-1 structure of the new Raspberry Pi Foundation coding project paths.
Our project paths have a 3-2-1 structure (click the image to enlarge)

The updates are split into two parts, those we made specifically to the Introduction to Scratch path, and changes made across all of the 3…2…1…Make! projects.

3…2…1…Make! projects

The first thing you might notice is the revamp of our Introduction step, now called ‘You will make’. This simplified step focuses on setting the scene and encourages creators to play with a completed project example.

Young person using a computer.
Picture Conor McCabe Photography

Also changed is the Reflection step, replaced by ‘Quick quiz’ — a much neater page that guides creators through three questions before awarding a project badge. 

Introduction to Scratch

Here is an overview of the Scratch path to tell you more about the projects and the changes we’ve made to the content.

Creators can start using the updated Scratch projects right away!

Three Explore projects

Our first three projects in the path introduce creators to a set of skills and provide step-by-step instructions to help them develop initial confidence.

Explore 1: Space talk 

In this project, creators design a space scene with characters that emote to share their thoughts or feelings. We received some amazing feedback from a member of the Deaf community to enhance the Nano uses sign language task and include a great new boxout to prompt discussion amongst our creators.

We also heard from a couple of club leaders that the Text to Speech extension in Scratch was a great addition to this project so we added an optional Text to Speech information card to the Upgrade your project step.  

Three alien characters stood still on a planet. One alien has a speech bubble that says, "Hello!". Another has a thinking bubble that reads, "Hmm...".

Explore 2: Catch the bus

The bus in the Catch the bus project is a tour bus, but we originally used the school backdrop as a departure point. We liked how the backdrop looked but now recognise that doing a project about a school bus whilst in a club was probably not the most popular choice. Please forgive us! The project now uses a nighttime city scene.

We also removed the use of the ‘Timer hat block’ from this project — it isn’t needed for the rest of the path and has behaviour that complicates things. The ‘timer hat block’ has been replaced by a ‘wait block’.

A bus drives along a cityscape at night. Scratch cat is faced towards the bus. A hippo with wings flies alongside the bus and towards Scratch cat.

 

Explore 3: Find the bug

We have loved engaging with the community submissions of this project and really enjoyed seeing how quickly we can find the small bugs on each level of the games that have been created. With replicating that enthusiasm in mind, our changes to this project focused on young creators sharing their project and playing projects created by others.

Our new Share and play step has a number of options, including sharing in a club, submitting your project to a shared studio, and experiencing remixes as a user. We have also embedded some community projects into the step to provide upgrade ideas and inspiration.

An insect is on a blackboard. Next to the insect is a speech bubble that contains "13.10". A parrot is below the blackboard.

Two Design projects

The next two projects in the path encourage creators to practise the skills they learned in the previous ‘Explore’ projects, and to express themselves creatively while they grow in independence.

The revamped Get ideas task on the first step of each Design project now has a featured community project that will be regularly updated. You may also notice that the inspirational examples have been reordered or changed using analysis from interactions with them.

Additional community submissions can be found in the Share and play steps to provide upgrade ideas and creators are encouraged to look at remixes of the starter project for even more inspiration. 

Design 1: Silly eyes

Interacting with remixes of the Silly eyes project is one of our favourite things to do! The project involves creating a character whose eyes follow the mouse pointer. We love seeing how design decisions have shaped each project and how various upgrades have been used.

For this project, we decided to remove the ‘Add stage effects’ step as it was largely a repeat of the earlier ‘Add sprite effects’ step. Stage effects is now an optional upgrade which means creators can get through to the ‘Share and play’ step to look at the design decisions made by others, then use those to choose which ideas to include in their project. 

A sea creature with large eyes.

Design 2: Surprise animation

This project consists of creating an animation of a story. We looked at the remixes so far and realised the main steps of the surprise animations were:  

  1. Create your scene
  2. Show curiosity
  3. Add a surprise

Sometimes projects had a reaction in them but others relied on creating a reaction in the user watching the animation. With this in mind we moved the Reaction step and added it as an optional upgrade. We also added graphics to each step to explain the step position in the animation timeline.

A new option to remix one of the example projects was added to this project as a starting point if creators were short of time, needed help with ideas, or had perhaps already thought of an extension to the example animations. 

A filmstrip that contains three images.

One Invent project

Our final project in the path is where creators use their skills to meet a project brief for a particular audience.

The project brief has been revamped to make it more concise with the Reflection step becoming a checklist to keep track of how the project is meeting the brief. 

Invent: I made you a book

This project consists of creating a book with multiple pages to tell a story or share facts. The major change to this project is a reorganisation of the steps. The original planning step has now split in two — the first step to decide the high-level purpose and audience for the book and the second step to plan the book in more detail using either the starter Scratch project or our new planning sheet. 

A storyboard with images that have been drawn by hand.
Creators can use the new planning sheet to sketch their ideas on paper

The build and test step has also been restructured to break up the skills into categories and make the tasks clearer. At the end of the step, creators are encouraged to ask for feedback then repeat the process to work on their book until it is ready to share.  

What next?

We will start refreshing another path soon but in the meantime, we hope you and your creators enjoy using the revamped Introduction to Scratch path. We would love to hear your feedback on any of our projects via the feedback button on the bottom of each project page. 

Two learners working together at a computer.

We look forward to seeing what your creators make. 

The post Introduce young people to coding with our updated projects appeared first on Raspberry Pi.

☐ ☆ ✇ Raspberry Pi

Get kids creating webpages with HTML and CSS

Par : Rik Cross — 3 novembre 2022 à 12:03

With our new free ‘Introduction to web development’ path, young people are able to learn HTML and create their own webpages on topics that matter to them. The path is made up of six projects that show children and teenagers how to structure pages using HTML, and style them using CSS. 

At Coolest Projects, a young person explores a coding project.

With all the website tools available today, why learn HTML? 

Webpage creation has come a long way since the 1990s, but HTML is still the markup language that is used to display almost every page on the World Wide Web. By knowing how it works, you can deepen your understanding of the technology you use every day.

If you want to build your own website today, there are many tools to get you quickly up and running. These tools often involve dragging and dropping predefined elements and choosing from a wide collection of themed looks. Learning HTML and CSS skills is important for web designers, developers, and content creators who want to build unique webpage designs that make their content stand out.

Six webpages, each with a unique design and based on a topic important to the creator.
The path helps young people express themselves through their own webpages

With our new ‘Introduction to web development’ path, we want creators (the young people who use our projects) to be able to quickly make fantastic-looking websites that follow modern best practices, while they also learn how HTML and CSS work together to create a webpage. Creators write their own HTML to develop the content and structure of their webpages. And they customise our pre-built CSS style sheets to get their webpages to look like they imagine.

This really is a fun and unique approach to learning HTML and building a webpage, and we think young people will quickly engage with it. They start by finding out how to structure pages using HTML before applying CSS styles that bring their pages to life. Through the six projects, they build all the skills and independence they need to make webpages that matter to them. 

Accessibility first

We believe that young people should find out about website accessibility right from the start of their learning journey. That’s why the path for learning HTML shows creators how they can make their websites accessible to all their users regardless of the users’ needs or digital devices.

That’s why our new path uses semantic HTML. Older HTML tutorials might show you how to structure a webpage using tags like <div> and <span>. In contrast, the meaning and purpose of tags in semantic HTML is very clear. For example:

  • <main> is used to tag the main content for the webpage
  • <footer> is used for content to be displayed in the footer
  • <blockquote> contains a quote and typically the author of the quote
  • <section> contains a portion of content that usually sits within the main part of the webpage

Semantic HTML supports accessibility because it allows people who use a screen reader to more easily navigate a webpage and read it in a logical way. 

Another element of accessible design that the path introduces is the colour combinations used on webpages. It is really important that contrasting colours are used for the background and the text. High contrast makes the text more readable, which means the webpage is more suitable for visually impaired users. 

Good and bad examples of colour contrasting on webpages.
It’s very important to use contrasting colours on a webpage

The path also shows creators the importance of adding meaningful alternative text for images. Good alternative text helps visually impaired users, and users who have a very low bandwidth and therefore turn images off in their web browser. 

With the path, young people will learn how to design webpages that respond to the device of the user

Finally, our path for learning HTML introduces creators to the concept of responsive web design. Responsive design is helpful because websites can be viewed on thousands of different devices. Some people view pages on large, high-resolution monitors, and others view them on a mobile phone screen. We show learners how they can use HTML and CSS to make their pages responsive so they display in the way that works best for the specific screen on which a user is viewing them.

Key questions answered

Who is the ‘Intro to web development’ path for?

We have written the projects in this path with young people of around the age from 9 to 17 in mind. 

HTML and CSS are text-based markup languages. This means a young person who wants to start learning HTML needs to be familiar with typing on a keyboard. It would also be helpful to have experience of using the copy and paste function, which is useful when changing the layout of a page or copying similar pieces of code. 

Young people attending a Dojo.

If a young person is unsure whether they have the right skills to get started with the path, they can first try out a short ‘Discover’ project. With this Discover project, young people can choose between the themes ‘space’, ‘sunsets’, ‘forests’, or ‘animals’ to see how they can create their first webpage in just five steps. (We’re still working on the ‘Discover’ project type, so if you have any feedback about it, let us know.)

An example step from the Discover project, forest theme.
Young people can experiment with our Discover project to build their own webpage in just a few steps

What will young people learn with the path?

Creators will learn how to use HTML and CSS to build webpages that have:

  • Images
  • Lists
  • Quotes 
  • Links 
  • Animations
  • Imported fonts

They will also learn about how to make their webpages accessible to all through use of:

  • Semantic HTML
  • Alternative text for images
  • Colour contrast checking
  • Responsive design (means the webpage adapts to the device on which it is viewed)

How long does the path take to complete?

We’ve designed the path so young people can complete it in six one-hour sessions, with one hour for each project. Since the project instructions encourage creators to upgrade their projects, they may wish to go further and spend a little more time getting their projects exactly as they imagine them. 

A CoderDojo coding session for young people.

What software is needed to create the projects in the path?

Young people only need a standard web browser to follow the project instructions and use an online code editor to create their webpages. 

What can young people do next?

Explore our other projects for learning HTML

There are 28 other step-by-step projects for creators to choose from on our website. They can browse through these to see what cool things they’d like to make and what new skills they want to learn.

Build a webpage for Coolest Projects 

If your kid is proud of the webpage they create with the final ‘Invent’ project in the path, they can share it with a worldwide community of young creators in our free Coolest Projects tech showcase. Project registration will open again in spring 2023. You can sign up to hear news about the showcase on the Coolest Projects homepage.

Two teenage girls participating in Coolest Projects shows off their tech project.
Details about the projects in ‘Intro to web development’
The ‘Intro to web development’ path is structured according to our Digital Making Framework, with three Explore projects, two Design projects, and a final Invent project. You can also check out our learning graph to to see the progression of young people’s skills and knowledge throughout the path.

Explore project 1: Anime expressions


In the ‘Anime expressions’ project, creators build and style a webpage for an anime drawing tutorial. They learn how to use HTML tags to structure a webpage; use CSS to apply layout, colours, and fonts; and add images and text content to their page.  

Explore project 2: Top 5 emojis


With the ‘Top 5 emojis’ project, young people create a webpage displaying their top 5 list of emojis. They learn how to add emojis, create a list, use a block quote, and animate elements of the page. 

Explore project 3: Flip treat webcards


With the ‘Flip treat webcards’ project, creators make a webpage showing a flip card with a treat from around the world. They use CSS to make the card flip over when a user interacts with it. Creators also learn how to apply gradients and import fonts from Google Fonts. 

Design project 1: Mood board


This Design project gives creators the chance to develop the skills that they have learned in the three ‘Explore’ projects. With the ‘Mood board’ project, young people create a webpage to display a mood board for a real or imaginary project. The mood board could, for example, show ideas for a party, a fashion item, a redesign of their bedroom, or a website; or it could show reminders of all the things that make them happy. 

Design project 2: Sell me something

 
The ‘Sell me something’ project is another chance for creators to practise the skills that they have gained in the ‘Explore’ projects. They create a webpage to ‘sell something’ to the webpages visitors. It could be anything they like, from an object they love, to a game they like to play. 

Invent project: Build a webpage

 
The ‘Build a webpage’ project is the final project in the path and allows young people to independently build a webpage on any topic they’re interested in. This Invent project offers info cards to remind creators of the key skills they’ve learned with the path, and a light structure to support them through the process of making their webpage. Young people are encouraged to showcase their final webpages in the path gallery to inspire other creators. 

The post Get kids creating webpages with HTML and CSS appeared first on Raspberry Pi.

☐ ☆ ✇ Raspberry Pi

Get kids coding and learning electronics with Raspberry Pi Pico

Par : Rebecca Franks — 11 mai 2022 à 11:56

Since the release of the Raspberry Pi Pico microcontroller in 2021, we have seen people all over the world come up with creative Pico-based inventions.

Raspberry Pi Pico with its inbuilt LED blinking.
The Raspberry Pi Pico microcontroller.

Now, thanks to our brand-new and free ‘Introduction to Raspberry Pi Pico’ learning path, young coders can easily join in and make their own cool Pico projects! This free learning path has six guided projects to help kids to independently develop their coding skills, and their skills in physical computing and electronics.

A girl creates a physical computing project.
Physical computing is a great way to help young people get creative with coding.

In this post, I’ll tell you about Raspberry Pi Pico, what kids can make by following our free ‘Intro to Pico’ path, and what skills they will be learning.

Meet Raspberry Pi Pico

Raspberry Pi Pico is a physical computing device that is low-cost and easy to use. It’s much smaller than any Raspberry Pi computer, and it needs much less power. That’s because it’s not a full computer but instead a microcontroller. That means Pico is a device that you program by writing code on any computer, and then sending that code to Pico via a USB cable.

Raspberry Pi Pico has GPIO pins (like Raspberry Pi computers do). These pins mean it can interact with different types of physical computing components, such as buttons, buzzers, and LEDs.

In the ‘Intro to Raspberry Pi Pico’ path, we’ve designed new digital making projects specifically using Pico. By following the projects in the path, young people learn to make things with different electronic components. They’ll bring to life their own LED fireflies; they’ll make music with a sound machine and dial (a potentiometer); they’ll look after themselves and people around them by making a mood indicator and a heart rate visualiser. To find out more, visit the path, or scroll to the bottom of this post and click on ‘Details about the projects’.

The specially designed structure of our learning paths helps kids become confident and independent coders and digital makers. Through this project path, we want to show young people what is possible with Raspberry Pi Pico and inspire them to continue their digital making journey beyond the six projects. Seeing tech creations from our amazing community is super special to us, and we would love to hear about what your young coders have made with Pico. Kids can share their projects in the path gallery, or you can tag us on social media if you post photos!   

alt=""

Learning skills and independence with our project paths 

While young people make all these Raspberry Pi Pico projects, they will learn the skills and independence to make and code their very own, unique creations with a Pico. We have designed our new project paths to help kids become independent digital makers. As they progress through a path, kids gain new skills, practise what they have learnt, and finally write and follow their own project brief. 

Our learning paths help kids develop many of the skills that are important to all coders and digital makers, no matter how much experience they have: 

  • How to turn an idea on paper into a tech creation
  • How to debug a project
  • How to combine new information with what they already know about digital making 

The learning paths also encourage kids to make projects about the things that matter to them.  

Key questions answered

Who is this path for?

We have written the projects in this path with young people around the age of 9 to 13 in mind. 

Programs for Raspberry Pi Pico are written in a text-based language called MicroPython. That means a young person who wants to start the ‘Intro to Pico’ path needs to be familiar with typing on a keyboard.

A young person codes at a Raspberry Pi computer.

If your kid has never coded in a text-based language before, they could complete our free ‘Introduction to Python‘ project path first, but this is not a prerequisite.

What will young people learn?

To help with the programming aspects of the projects, the instructions in the path tell young people about:  

  • Displaying output
  • Arithmetic expressions
  • Importing from a library
  • While loops
  • Nested if statements
  • Defining and calling functions
  • Events
Raspberry Pi Pico attached with jumper wires to a purple LED.
We still get excited by a flashing LED.

One of the great things about this project path is that it helps young people explore physical computing and electronics. In the ‘Intro to Pico’ path, they’ll use:

  • Single-colour LEDs
  • Multi-colour LEDs (so-called RGB LEDs)
  • Buzzers
  • Switches (including switches the kids will make out of craft materials!)
  • Buttons
  • Potentiometers (dials)

How much time is needed to complete the path?

We’ve designed the path to be completed in around six one-hour sessions, with one hour per project. However, the project instructions encourage kids to upgrade their projects and go further if they wish. This means that they might want to spend a little more time getting their projects exactly as they imagine. 

What software is needed for the projects?

Young people need a web browser so they can follow the project instructions. The first two projects in the path provide detailed instructions for how to install the free software needed for the projects. 

alt=""
The projects in the path show you how to program Raspberry Pi Pico using MicroPython in the Thonny software.

What hardware is needed for these projects?

The first step of each project lists what components are needed to create the project. You can purchase a kit from Pimoroni that includes all of the components used in the path:

‘Intro to Raspberry Pi Pico’ kit list (click here)
  • 1 × soldered Raspberry Pi Pico
  • 1 × USB cable
  • 1 × red LED
  • 1 × blue LED
  • 2 × yellow LEDs
  • 6 × single-colour LEDs (random)
  • 3 × RGB LEDs
  • 15 × 75 ohm resistors (max 220 ohm)
  • 2 × potentiometers
  • 8 × push buttons (optional, these can be made from crafting materials)
  • 15 × pin–socket jumper wires
  • 38 × socket–socket jumper wires
  • 4 × pin–pin jumper wires

What can young people do next?

Explore Python coding with us 

If your young coders enjoy MicroPython, they’ll also love our Python learning paths: ‘Introduction to Python‘ and ‘More Python‘. Both are structured in the same way as our Pico path, and will help young people learn Python while creating their own visual designs.

A girl points happily at a project on the Raspberry Pi Foundation's projects site.
Details about the projects in ‘Intro to Raspberry Pi Pico’
The ‘Intro to Raspberry Pi Pico’ path is structured according to our Digital Making Framework, with three Explore projects, two Design projects, and a final Invent project. You can also check out our learning graph to see the progression of skills and knowledge throughout the path.

Explore project 1: LED firefly


The ‘LED firefly’ project introduces creators to Raspberry Pi Pico while they make their first project with a blinking LED. They program the LED with a blink pattern that is common to fireflies in the wild. To upgrade their projects, creators can place their LED firefly into a glass jar to create a twinkling effect.  

Explore project 2: Party popper


‘Party popper’ introduces creators to the RGB LED and a buzzer. To form the popper, they craft a pull switch out of kitchen foil and cardboard. When the popper is activated, the RGB LED flashes in their chosen colour, and a ‘tada’ sound plays on the buzzer. 

Explore project 3: Beating heart


‘Beating heart’ uses a potentiometer (dial) to control the pulsing speed of an LED. Creators craft their own hearts using red paper and origami before placing the pulsing LED inside. In this way, they create a model of a heart they can use to learn about medicine or to bring to life a favourite toy. 

Design project 1: Mood indicator


In the ‘Mood indicator’ project, kids use switches and an RGB LED to create a device that can communicate a need or a mood to another person. This Design project gives young creators lots of opportunities to use their new skills to create something personal to them.

Design project 2: Sound machine

 
‘Sound machine’ is a project for kids to work with the different tones that a buzzer can make. They can use the buzzer to create sound effects, or to recreate their favourite songs. Once they have decided on their sounds, they can think about how a user of their project might choose to play them. 

Invent project: Sensory gadget

 
This project gives creators that chance to pick their favourite elements of the path to create something totally unique to them. They could make all sorts of sensory gadgets, from a Picosaber to a candle that can be blown out. Creators are encouraged to showcase their creations in the path gallery to give other young makers inspiration. 

The post Get kids coding and learning electronics with Raspberry Pi Pico appeared first on Raspberry Pi.

☐ ☆ ✇ DjangoTricks

How I Integrated Zapier into my Django Project

Par : Aidas Bendoraitis a.k.a. archatas — 18 avril 2022 à 03:46

As you might know, I have been developing, providing, and supporting the prioritization tool 1st things 1st. One of the essential features to implement was exporting calculated priorities to other productivity tools. Usually, building an export from one app to another takes 1-2 weeks for me. But this time, I decided to go a better route and use Zapier to export priorities to almost all possible apps in a similar amount of time. Whaaat!?? In this article, I will tell you how.

What is Zapier and how it works?

The no-code tool Zapier takes input from a wide variety of web apps and outputs it to many other apps. Optionally you can filter the input based on conditions. Or format the input differently (for example, convert HTML to Markdown). In addition, you can stack the output actions one after the other. Usually, people use 2-3 steps for their automation, but there are power users who create 50-step workflows.

The input is managed by Zapier's triggers. The output is controlled by Zapier's actions. These can be configured at the website UI or using a command-line tool. I used the UI as this was my first integration. Trigger events accept a JSON feed of objects with unique IDs. Each new item there is treated as a new input item. With a free tier, the triggers are checked every 15 minutes. Multiple triggers are handled in parallel, and the sorting order of execution is not guaranteed. As it is crucial to have the sorting order correct for 1st things 1st priorities, people from Zapier support suggested providing each priority with a 1-minute interval to make sure the priorities get listed in the target app sequentially.

The most challenging part of Zapier integration was setting up OAuth 2.0 provider. Even though I used a third-party Django app django-oauth-toolkit for that. Zapier accepts other authentication options too, but this one is the least demanding for the end-users.

Authentication

OAuth 2.0 allows users of one application to use specific data of another application while keeping private information private. You might have used the OAuth 2.0 client directly or via a wrapper for connecting to Twitter apps. For Zapier, one has to set OAuth 2.0 provider.

The official tutorial for setting up OAuth 2.0 provider with django-oauth-toolkit is a good start. However, one problem with it is that by default, any registered user can create OAuth 2.0 applications at your Django website, where in reality, you need just one global application.

First of all, I wanted to allow OAuth 2.0 application creation only for superusers.

For that, I created a new Django app oauth2_provider_adjustments with modified views and URLs to use instead of the ones from django-oauth-toolkit.

The views related to OAuth 2.0 app creation extended this SuperUserOnlyMixin instead of LoginRequiredMixin:

from django.contrib.auth.mixins import AccessMixin

class SuperUserOnlyMixin(AccessMixin):
    def dispatch(self, request, *args, **kwargs):
        if not request.user.is_superuser:
            return self.handle_no_permission()
        return super().dispatch(request, *args, **kwargs)

Then I replaced the default oauth2_provider URLs:

urlpatterns = [
    # …
    path("o/", include("oauth2_provider.urls", namespace="oauth2_provider")),
]

with my custom ones:

urlpatterns = [
    # …
    path("o/", include("oauth2_provider_adjustments.urls", namespace="oauth2_provider")),
]

I set the new OAuth 2.0 application by going to /o/applications/register/ and filling in this info:

Name: Zapier
Client type: Confidential
Authorization grant type: Authorization code
Redirect uris: https://zapier.com/dashboard/auth/oauth/return/1stThings1stCLIAPI/ (copied from Zapier)
Algorithm: No OIDC support

If you have some expertise in the setup choices and see any flaws, let me know.

Zapier requires creating a test view that will return anything to check if there are no errors authenticating a user with OAuth 2.0. So I made a simple JSON view like this:

from django.http.response import JsonResponse


def user_info(request, *args, **kwargs):
    if not request.user.is_authenticated:
        return JsonResponse(
            {
                "error": "User not authenticated",
            },
            status=200,
        )
    return JsonResponse(
        {
            "first_name": request.user.first_name,
            "last_name": request.user.last_name,
        },
        status=200,
    )

Also, I had to have login and registration views for those cases when the user's session was not present.

Lastly, at Zapier, I had to set these values for OAuth 2.0:

Client ID: The Client ID from registered app
Client Secret: The Client Secret from registered app

Authorization URL: https://apps.1st-things-1st.com/o/authorize/
Scope: read write
Access Token Request: https://apps.1st-things-1st.com/o/token/
Refresh Token Request: https://apps.1st-things-1st.com/o/token/
I want to automatically refresh on unauthorized error: Checked
Test: https://apps.1st-things-1st.com/user-info/
Connection Label: {{first_name}} {{last_name}}

Trigger implementation

There are two types of triggers in Zapier:

  • (A) Ones for providing new things to other apps, for example, sending priorities from 1st things 1st to other productivity apps.
  • (B) Ones for listing things in drop boxes at the former triggers, for example, letting Zapier users choose the 1st things 1st project from which to import priorities.

The feeds for triggers should (ideally) be paginated. But without meta information for the item count, page number, following page URL, etc., you would usually have with django-rest-framework or other REST frameworks. Provide only an array of objects with unique IDs for each page. The only field name that matters is "id" – others can be anything. Here is an example:

[
    {
        "id": "39T7NsgQarYf",
        "project": "5xPrQbPZNvJv",
        "title": "01. Custom landing pages for several project types (83%)",
        "plain_title": "Custom landing pages for several project types",
        "description": "",
        "score": 83,
        "priority": 1,
        "category": "Choose"
    },
    {
        "id": "4wBSgq3spS49",
        "project": "5xPrQbPZNvJv",
        "title": "02. Zapier integration (79%)",
        "plain_title": "Zapier integration",
        "description": "",
        "score": 79,
        "priority": 2,
        "category": "Choose"
    },
    {
        "id": "6WvwwB7QAnVS",
        "project": "5xPrQbPZNvJv",
        "title": "03. Electron.js desktop app for several project types (42%)",
        "plain_title": "Electron.js desktop app for several project types",
        "description": "",
        "score": 41,
        "priority": 3,
        "category": "Consider"
    }
]

The feeds should list items in reverse order for the (A) type of triggers: the newest things go at the beginning. The pagination is only used to cut the number of items: the second and further pages of the paginated list are ignored by Zapier.

In my specific case of priorities, the order matters, and no items should be lost in the void. So I listed the priorities sequentially (not newest first) and set the number of items per page unrealistically high so that you basically get all the things on the first page of the feed.

The feeds for the triggers of (B) type are normally paginated from the first page until the page returns empty results. The order should be alphabetical, chronological, or by sorting order field, whatever makes sense. There you need just two fields, the ID and the title of the item (but more fields are allowed too), for example:

[
    {
        "id": "5xPrQbPZNvJv",
        "title": "1st things 1st",
        "owner": "Aidas Bendoraitis"
    },
    {
        "id": "VEXGzThxL6Sr",
        "title": "Make Impact",
        "owner": "Aidas Bendoraitis"
    },
    {
        "id": "WoqQbuhdUHGF",
        "title": "DjangoTricks website",
        "owner": "Aidas Bendoraitis"
    },
]

I used django-rest-framework to implement the API because of the batteries included, such as browsable API, permissions, serialization, pagination, etc.

For the specific Zapier requirements, I had to write a custom pagination class, SimplePagination, to use with my API lists. It did two things: omitted the meta section and showed an empty list instead of a 404 error for pages that didn't have any results:

from django.core.paginator import InvalidPage

from rest_framework.pagination import PageNumberPagination
from rest_framework.response import Response


class SimplePagination(PageNumberPagination):
    page_size = 20

    def get_paginated_response(self, data):
        return Response(data)  # <-- Simple pagination without meta

    def get_paginated_response_schema(self, schema):
        return schema  # <-- Simple pagination without meta

    def paginate_queryset(self, queryset, request, view=None):
        """
        Paginate a queryset if required, either returning a
        page object, or `None` if pagination is not configured for this view.
        """
        page_size = self.get_page_size(request)
        if not page_size:
            return None

        paginator = self.django_paginator_class(queryset, page_size)
        page_number = self.get_page_number(request, paginator)

        try:
            self.page = paginator.page(page_number)
        except InvalidPage as exc:
            msg = self.invalid_page_message.format(
                page_number=page_number, message=str(exc)
            )
            return []  # <-- If no items found, don't raise NotFound error

        if paginator.num_pages > 1 and self.template is not None:
            # The browsable API should display pagination controls.
            self.display_page_controls = True

        self.request = request
        return list(self.page)

To preserve the order of items, I had to make the priorities appear one by one at 1-minute intervals. I did that by having a Boolean field exported_to_zapier at the priorities. The API showed priorities only if that field was set to True, which wasn't the case by default. Then, background tasks were scheduled 1 minute after each other, triggered by a button click at 1st things 1st, which set the exported_to_zapier to True for each next priority. I was using huey, but the same can be achieved with Celery, cron jobs, or other background task manager:

# zapier_api/tasks.py
from django.conf import settings
from django.utils.translation import gettext
from huey.contrib.djhuey import db_task


@db_task()
def export_next_initiative_to_zapier(project_id):
    from evaluations.models import Initiative

    next_initiatives = Initiative.objects.filter(
        project__pk=project_id,
        exported_to_zapier=False,
    ).order_by("-total_weight", "order")
    count = next_initiatives.count()
    if count > 0:
        next_initiative = next_initiatives.first()
        next_initiative.exported_to_zapier = True
        next_initiative.save(update_fields=["exported_to_zapier"])

        if count > 1:
            result = export_next_initiative_to_zapier.schedule(
                kwargs={"project_id": project_id},
                delay=settings.ZAPIER_EXPORT_DELAY,
            )
            result(blocking=False)

One gotcha: Zapier starts pagination from 0, whereas django-rest-framework starts pagination from 1. To make them work together, I had to modify the API request (written in JavaScript) at Zapier trigger configuration:

const options = {
  url: 'https://apps.1st-things-1st.com/api/v1/projects/',
  method: 'GET',
  headers: {
    'Accept': 'application/json',
    'Authorization': `Bearer ${bundle.authData.access_token}`
  },
  params: {
    'page': bundle.meta.page + 1  // <-- The custom line for pagination
  }
}

return z.request(options)
  .then((response) => {
    response.throwForStatus();
    const results = response.json;

    // You can do any parsing you need for results here before returning them

    return results;
  });

Final Words

For the v1 of Zapier integration, I didn't need any Zapier actions, so they are yet something to explore, experiment with, and learn about. But the Zapier triggers seem already pretty helpful and a big win compared to individual exports without this tool.

If you want to try the result, do this:

  • Create an account and a project at 1st things 1st
  • Prioritize something
  • Head to Zapier integrations and connect your prioritization project to a project of your favorite to-do list or project management app
  • Then click on "Export via Zapier" at 1st things 1st.

Cover photo by Anna Nekrashevich

☐ ☆ ✇ Raspberry Pi

Python coding for kids: Moving beyond the basics

Par : Rebecca Franks — 14 avril 2022 à 10:55

We are excited to announce our second new Python learning path, ‘More Python’, which shows young coders how to add real data to their programs while creating projects from a chart of Olympic medals to an interactive world map. The six guided Python projects in this free learning path are designed to enable young people to independently create their own Python projects about the topics that matter to them.

A girl points excitedly at a project on the Raspberry Pi Foundation's projects site.
Two kids are at a laptop with one of our coding projects.

In this post, we’ll show you how kids use the projects in the ‘More Python’ path, what they can make by following the path, and how the path structure helps them become confident and independent digital makers.

Python coding for kids: Our learning paths

Our ‘Introduction to Python’ learning path is the perfect place to start learning how to use Python, a text-based programming language. When we launched the Intro path in February, we explained why Python is such a popular, useful, and accessible programming language for young people.

Because Python has so much to offer, we have created a second Python path for young people who have learned the basics in the first path. In this new set of six projects, learners will discover new concepts and see how to add different types of real data to their programs.

Illustration of different graph types
By following the ‘More Python’ path, young people learn the skills to independently create a data visualisation for a topic they are passionate about in the final project.

Key questions answered

Who is this path for?

We have written the projects in this path with young people around the age of 10 to 13 in mind. To code in a text-based language, a young person needs to be familiar with using a keyboard, due to the typing involved. Learners should have already completed the ‘Introduction to Python’ project path, as they will build on the learning from that path.

Three young tech creators show off their tech project at Coolest Projects.

How do young people learn with the projects? 

Young people need access to a web browser to complete our project paths. Each project contains step-by-step instructions for learners to follow, and tick boxes to mark when they complete each step. On top of that, the projects have steps for learners to:

  • Reflect on what they have covered in the project
  • Share their projects with others
  • See suggestions to upgrade their projects

Young people also have the option to sign up for an account with us so they can save their progress at any time and collect badges.

A young person codes at a Raspberry Pi computer.

While learners follow the project instructions in this project path, they write their code into Trinket, a free web-based coding platform accessible in a browser. Each project contains a link to a starter Trinket, which includes everything to get started writing Python code — no need to install any additional software.

Screenshot of Python code in the online IDE Trinket.
This is what Python code on Trinket looks like.

If they prefer, however, young people also have the option of instead writing their code in a desktop-based programming environment, such as Thonny, as they work through the projects.

What will young people learn?  

To use data in their Python programs, the project instructions show learners how to:

  • Create and use lists
  • Create and use dictionaries
  • Read data from a data file

The projects support learners as they explore new concepts of digital visual media and: 

  • Create charts using the Python library Pygal
  • Plot pins on a map
  • Create randomised artwork

In each project, learners reflect and answer questions about their work, which is important for connecting the project’s content to their pre-existing knowledge.

In a computing classroom, a girl laughs at what she sees on the screen.

As they work through the projects, learners see different ways to present data and then decide how they want to present their data in the final project in the path. You’ll find out what the projects are on the path page, or at the bottom of this blog post.

The project path helps learners become independent coders and digital makers, as each project contains slightly less support than the one before. You can read about how our project paths are designed to increase young people’s independence, and explore our other free learning paths for young coders

How long will the path take to complete?

We’ve designed the path to be completed in around six one-hour sessions, with one hour per project, at home, in school, or at a coding club. The project instructions encourage learners to add code to upgrade their projects and go further if they wish. This means that young people might want to spend a little more time getting their projects exactly as they imagine them.

In a classroom, a teacher and a student look at a computer screen while the student types on the keyboard.

What can young people do next?

Use Unity to create a 3D world

Unity is a free development environment for creating 3D virtual environments, including games, visual novels, and animations, all with the text-based programming language C#. Our ‘Introduction to Unity’ project path for keen coders shows how to make 3D worlds and games with collectibles, timers, and non-player characters.

Take part in Coolest Projects Global

At the end of the ‘More Python’ path, learners are encouraged to register a project they’ve made using their new coding skills for Coolest Projects Global, our free and world-leading online technology showcase for young tech creators. The project they register will become part of the online gallery, where members of the Coolest Projects community can celebrate each other’s creations.

A young coder shows off her tech project for Coolest Projects to two other young tech creators.

We welcome projects from all young people, whether they are beginners or experienced coders and digital makers. Coolest Projects Global is a unique opportunity for young people to share their ingenuity with the world and with other young people who love coding and creating with digital technology.

Details about the projects in ‘More Python’
The ‘More Python’ path is structured according to our Digital Making Framework, with three Explore project, two Design projects, and a final Invent project.

Explore project 1: Charting champions

Illustration of a fast-moving, smiling robot wearing a champion's rosette.
In this Explore project, learners discover the power of lists in Python by creating an interactive chart of Olympic medals. They learn how to read data from a text file and then present that data as a bar chart.

Explore project 2: Solar system

Illustration of our solar system.
In this Explore project, learners create a simulation of the solar system. They revisit the drawing and animation skills that they learned in the ‘Introduction to Python’ project path to produce animated planets orbiting the sun. The animation is based on real data taken from a data file to simulate the speed that the planets move at as they orbit. The simulation is also interactive, using dictionaries to display data about the planets that have been selected.

Explore project 3: Codebreaker

Illustration of a person thinking about codebreaking.
The final Explore project gets learners to build on their knowledge of lists and dictionaries by creating a program that encodes and decodes a message using an Atbash cipher. The Atbash cipher was originally developed in the Hebrew language. It takes the alphabet and matches it to its reverse order to create a secret message. They also create a script that checks how many times certain letters have been used in an encoded message, so that they can discover patterns.

Design project 1: Encoded art

Illustration of a robot painting a portrait of another robot.
The first Design project allows learners to create fun pieces of artwork by encoding the letters of their name into images, patterns, or drawings. Learners can choose the images that will be produced for each letter, and whether these appear at random or in a geometric pattern.
Learners are encouraged to share their encoded artwork in the community library, where there are lots of fun projects to discover already. In this project, learners apply all of the coding skills and knowledge covered in the Explore projects, including working with dictionaries and lists.

Design project 2: Mapping data

Illustration of a map and a hand of someone marking it with a large pin.
In the next Design project, learners access data from a data file and use it to create location pins on a world map. They have six datasets to choose from, so they can use one that interests them. They can also choose from a variety of maps and design their own pin to truly personalise their projects.

Invent project: Persuasive data presentation

Illustration of different graph types
This project is designed to use all of the skills and knowledge covered in this path, and most of the skills from the ‘Introduction to Python’ path. Learners can choose from eight datasets to create data visualisations. They are also given instructions on how to access and prepare other datasets if they want to visualise data about a different topic.
Once learners have chosen their dataset, they can decide how they want it to be displayed. This could be a chart, a map with pins, or a unique data visualisation. There are lots of example projects to provide inspiration for learners. One of our favourites is the ISS Expedition project, which places flags on the ISS depending on the expedition number you enter.

The post Python coding for kids: Moving beyond the basics appeared first on Raspberry Pi.

☐ ☆ ✇ DjangoTricks

How to Upload a File Using Django REST Framework

Par : Aidas Bendoraitis a.k.a. archatas — 22 mars 2020 à 08:58
How to Upload a File Using Django REST Framework

When you develop a web app or a mobile app with Django, it is common to use the Django REST Framework for communication with the server-side. The client-side makes GET, POST, PUT, and DELETE requests to the REST API to read, create, update, or delete data there. The communication by Ajax is pretty uncomplicated, but how would you upload an image or another file to the server? I will show you that in this article by creating user avatar upload via REST API. Find the full code for this feature on Github.

Extend Django User model

We will start by installing Pillow for image handling to the virtual environment using the standard pip command:

(venv)$ pip install Pillow

Create accounts app with a custom User model:

# myproject/apps/accounts/models.py
import os
import sys
from django.db import models
from django.contrib.auth.models import AbstractUser
from django.utils import timezone
from django.utils.translation import gettext_lazy as _

def upload_to(instance, filename):
    now = timezone.now()
    base, extension = os.path.splitext(filename.lower())
    milliseconds = now.microsecond // 1000
    return f"users/{instance.pk}/{now:%Y%m%d%H%M%S}{milliseconds}{extension}"

class User(AbstractUser):
    # …
    avatar = models.ImageField(_("Avatar"), upload_to=upload_to, blank=True)

You can add there as many fields as you need, but the noteworthy part there is the avatar field.

Update the settings and add the accounts app to INSTALLED_APPS, set the AUTH_USER_MODEL, and the configuration for the static and media directories:

# myproject/settings.py
INSTALLED_APPS = [
    # …
    "myproject.apps.accounts",
]

AUTH_USER_MODEL = "accounts.User"

STATICFILES_DIRS = [os.path.join(BASE_DIR, "myproject", "site_static")]
STATIC_ROOT = os.path.join(BASE_DIR, "myproject", "static")
STATIC_URL = "/static/"
MEDIA_ROOT = os.path.join(BASE_DIR, "myproject", "media")
MEDIA_URL = "/media/"

Next small steps:

  • Create and run migrations with the makemigrations and migrate management commands.
  • Set up the custom model administration for the new User model.
  • Create the superuser with the createsuperuser management command.

Install and configure Django REST Framework

Install Django REST Framework for the REST APIs to your virtual environment, as always, using pip:

(venv)$ pip install djangorestframework

We'll be using authentication by tokens in this example. So add Django REST Framework to INSTALLED_APPS in the settings and set TokenAuthentication as the default authentication in the REST_FRAMEWORK configuration:

# myproject/settings.py
INSTALLED_APPS = [
    # …
    "rest_framework",
    "rest_framework.authtoken",
    # …
]

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': [
        'rest_framework.authentication.TokenAuthentication',
    ]
}

Prepare the serializer and the view

In Django REST Framework, serializers are used for data validation, rendering, and saving. They are similar to Django forms. Prepare UserAvatarSerializer for avatar uploads:

# myproject/apps/accounts/serializers.py
from django.contrib.auth import get_user_model
from rest_framework.serializers import ModelSerializer
User = get_user_model()

class UserAvatarSerializer(ModelSerializer):
    class Meta:
        model = User
        fields = ["avatar"]

    def save(self, *args, **kwargs):
        if self.instance.avatar:
            self.instance.avatar.delete()
        return super().save(*args, **kwargs)

Now create an API view UserAvatarUpload for avatar uploads.

# myproject/apps/accounts/views.py
from rest_framework import status
from rest_framework.parsers import MultiPartParser, FormParser
from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response
from rest_framework.views import APIView
from .serializers import UserAvatarSerializer

class UserAvatarUpload(APIView):
    parser_classes = [MultiPartParser, FormParser]
    permission_classes = [IsAuthenticated]

    def post(self, request, format=None):
        serializer = UserAvatarSerializer(data=request.data, instance=request.user)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data, status=status.HTTP_200_OK)
        else:
            return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

Make sure that the view uses MultiPartParser as one of the parser classes. That's necessary for the file transfers.

Prepare the URL configuration

In the URL configuration, we will need those URL rules:

  • The path for the index page. Let's make it a direct TemplateView.
  • The path for logging in by user credentials and obtaining the authentication token.
  • The path for user avatar upload.
  • The path for model administration.
  • The path for static URLs.
  • And finally, the path for media URLs.
# myroject/urls.py
from django.conf.urls.static import static
from django.contrib import admin
from django.urls import path
from django.views.generic import TemplateView
from django.conf import settings
from myproject.accounts.views import UserAvatarUpload
from rest_framework.authtoken.views import obtain_auth_token

urlpatterns = [
    path("", TemplateView.as_view(template_name="index.html")),
    path("api/auth-token/", obtain_auth_token, name="rest_auth_token"),
    path("api/user-avatar/", UserAvatarUpload.as_view(), name="rest_user_avatar_upload"),
    path("admin/", admin.site.urls),
]

urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

Prepare the frontend HTML and JavaScript

I will illustrate the frontend using Bootstrap HTML and Vanilla JavaScript. Of course, you can implement the same using ReactJS, Vue, Angular, or other JavaScript framework and any other CSS framework.

The template for the index page has one login form with username and password or email and password fields (depending on your implementation), and one avatar upload form with a file selection field. Also, it includes a JavaScript file avatar.js for Ajax communication.

{# myproject/templates/index.html #}
<!doctype html>
{% load static %}
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css"
          integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">

    <title>Hello, World!</title>
</head>
<body>
<div class="container">
    <div class="row">
        <div class="col-md-8">
            <p class="text-muted my-3"><small>Open Developer Console for information about responses.</small></p>
            <h1 class="my-3">1. Log in</h1>
            <form id="login_form">
                <div class="form-group">
                    <label for="id_email">Email address</label>
                    <input type="email" class="form-control" id="id_email" aria-describedby="emailHelp"
                           placeholder="Enter email"/>
                </div>
                <div class="form-group">
                    <label for="id_password">Password</label>
                    <input type="password" class="form-control" id="id_password" placeholder="Password"/>
                </div>
                <button type="submit" class="btn btn-primary">Log in</button>
            </form>

            <h1 class="my-3">2. Upload an avatar</h1>
            <form id="avatar_form">
                <div class="form-group">
                    <label for="id_avatar">Choose an image for your avatar</label>
                    <input type="file" class="form-control-file" id="id_avatar"/>
                </div>
                <button type="submit" class="btn btn-primary">Upload</button>
            </form>

        </div>
    </div>
</div>
<script src="{% static 'site/js/avatar.js' %}"></script>
</body>
</html>

Last but not least, create the JavaScript file avatar.js. It contains these things:

  • a global variable to store the user token. In the real-world application, you would probably save the token in a cookie or local storage.
  • a login-form submit handler which posts user credentials to the server and retrieves the authentication token.
  • an avatar-form submit handler which posts the selected file and the token to the server and retrieves the path of the saved file on the server.
// myproject/site_static/site/js/avatar.js
let userToken;

document.getElementById('login_form').addEventListener('submit', function(event) {
    event.preventDefault();
    let email = document.getElementById('id_email').value;
    let password = document.getElementById('id_password').value;

    fetch('http://127.0.0.1:8000/api/auth-token/', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json',
        },
        body: JSON.stringify({
            "username": email,
            "password": password,
        })
    }).then( response => {
        return response.json();
    }).then(data => {
        console.log(data);
        userToken = data.token;
        console.log('Logged in. Got the token.');
    }).catch((error) => {
        console.error('Error:', error);
    });
});

document.getElementById('avatar_form').addEventListener('submit', function(event) {
    event.preventDefault();
    let input = document.getElementById('id_avatar');

    let data = new FormData();
    data.append('avatar', input.files[0]);

    fetch('http://127.0.0.1:8000/api/user-avatar/', {
        method: 'POST',
        headers: {
            'Authorization': `Token ${userToken}`
        },
        body: data
    }).then(response => {
        return response.json();
    }).then(data => {
        console.log(data);
    }).catch((error) => {
        console.error('Error:', error);
    });
});

In the JavaScript file, we are using fetch API for the REST API requests. The noteworthy part there is the FormData class that we use to send the file to the server.

Now run the local development server and go to the http://127.0.0.1:8000. There you will have something like this:

The frontend of the experiment

Final Thoughts

As more than a half Internet usage happens on mobile devices, there is a demand to switch from usual HTML websites and platforms to mobile apps. Whether you create a native mobile app, a hybrid app, or Progressive Web App, you will likely have to communicate with the server via REST API or GraphQL. It is pretty clear how to transfer textual data from and to a remote server. But after this exercise, we can also transfer binary files like images, PDF or Word documents, music, and videos.

Happy coding!


Cover Photo by Dan Silva

❌