Aller au contenu principal

23 articles tagués avec "Communauté"

Community initiatives in Electron

Voir tous les tags

Projet de la semaine : Voltra

· 6 mins de lecture

Cette semaine, nous avons rencontré Aprile Elcich et Paolo Fragomeni pour parler de Voltra, un lecteur de musique basé sur Electron.


Qu'est-ce que Voltra ?

Voltra est un lecteur de musique destiné aux personnes qui veulent posséder leur musique. C’est aussi un magasin où vous pouvez découvrir et acheter de nouvelles musiques en fonction de ce que vous possédez déjà. Voltra est sans publicité, multi-plateformes pour bureau et mobile. De plus, il ne vous espionne pas.

voltra-artistview

À qui destiné Voltra ?

A quiconque écoutant de la musique.

Qu'est-ce qui vous a motivé à créer Voltra?

La radio a toujours eu une grande part d'auditeurs. Elle quitte les ondes pour l'Internet. Maintenant vous pouvez louer de la musique à la demande — c'est le renouveau de la radio ! De nombreux nouveaux produits et services ont vu le jour grâce à cela, mais la radio en streaming laisse encore quelqu'un d'autre au contrôle de votre musique et la façon dont vous la vivez.

Nous voulions un produit entièrement axé sur la musique que vous possédez. Quelque chose qui permette de découvrir et d'acheter facilement de la nouvelle musique directement auprès des artistes ou des labels.

Existe il une version gratuite ?

Le lecteur de bureau est complètement gratuit. Vendre votre musique est également gratuit ! Nous ne sommes pas financés par la publicité.

Puisque l'application est gratuite, nous pourrions en ouvrir les sources plus tard. Pour le moment, nous n'avons pas la bande passante pour gérer cela. Nous avons également des idées très précises concernant les fonctionnalités et la direction que nous voulons donner aux choses. Nous avons une communauté bêta active et nous prenons les commentaires à cœur.

Comment gagnez-vous de l'argent ?

Nous avons des fonctionnalités premium !

Notre archive audio Voltra est un service de sauvegarde cloud conçu spécifiquement pour la musique. Nous ne compressons ni ne partageons les blocs de données. Votre collection musicale est sauvegardée physiquement pour vous.

Pour les artistes et labels, notre adhésion pro offre des outils qui les aident à atteindre des publics plus pertinents, tels que des analytiques et des pages web professionnelles pour les artistes.

Qu'est-ce qui rend Voltra différent?

Le design et la facilité d'utilisation sont extrêmement importants pour nous. Nous voulons offrir aux auditeurs une expérience d'écoute sans distraction ! Il existe des lecteurs de musique et des magasins intéressants. Mais beaucoup d'entre eux sont plus avancés et plus difficiles à utiliser que leurs créateurs ne le pensent. Nous voulons rendre Voltra accessible au plus grand nombre de personnes possible.

Nous ne prenons pas non plus de commission sur l'artiste ou le label. C'est un différenciateur clé pour nous. C'est vraiment important car cela abaisse la barrière pour les artistes qui souhaitent commercialiser leur musique.

Quels sont les aspects de design & décisions techniques que vous avez prises?

En concevant Voltra, nous avons envisagé des conventions de l'interface utilisateur à partir d'applications natives et du web, nous avons également beaucoup réfléchi à ce que nous pouvions supprimer. Nous avons un groupe bêta privé actif qui nous a donné des commentaires critiques au cours de ces derniers mois.

Nous avons découvert que les pochettes d'album et la photographie sont vraiment importantes pour les gens. De nombreux lecteurs ne sont que des listes de fichiers. L'une des choses intéressantes de la possession d'albums physiques est la pochette de l'album, et nous avons voulu mettre l'accent sur cet aspect dans l'application de bureau Voltra.

voltra-albumview

Nous nous sommes également assurés de ne pas toucher aux fichiers des gens. Nous utilisons la surveillance de fichiers pour que vous puissiez placer vos fichiers où vous voulez, nous ne les renommons pas et ne les déplaçons pas pour vous. Nous disposons d'une base de données intégrée pour suivre l'état des répertoires surveillés afin de pouvoir suivre ce qui est nouveau, même lorsque le processus n'est pas en cours d'exécution.

Quels sont les défis que vous avez rencontrés lors de la création de Voltra ?

Nous passons beaucoup de temps à nous concentrer sur les performances. Nous avons commencé avec des frameworks, mais nous sommes passés à du Javascript classique. D'après notre expérience, les abstractions généralisées qu'ils fournissent l'emportent sur les pénalités de performance et le cérémonial qu'ils introduisent.

Nous gérons assez bien les très grandes collections à ce stade. De grandes collections signifient potentiellement des dizaines de milliers d'images ! Le fait d'avoir le module de système de fichiers de Node.js directement accessible depuis le processus de rendu a permis de facilement charger et de décharger paresseusement de nombreuses images très rapidement en fonction des événements DOM.

En général setImmediate et requestIdleCallback ont été des outils super importants pour effectuer beaucoup de traitement tout en maintenant l'interface utilisateur réactive. Plus précisément, la répartition des tâches liées au processeur dans des processus distincts aide beaucoup à garder l'interface utilisateur réactive. Par exemple, nous avons déplacé le contexte audio dans un processus distinct, communiquant avec l'interface par IPC pour éviter les interruptions potentielles d'une interface utilisateur occupée.

Pourquoi avez-vous choisi de construire Voltra avec Electron?

Le bac à sable du navigateur est trop restreint pour notre application. Mais nous développons également un lecteur web. Le fait que nous puissions partager presque 100 % du code entre les deux implémentations est donc une grande victoire.

Nous avons en fait commencé par construire une application native avec Swift. Le principal problème que nous avons rencontré était que nous devions réinventer beaucoup de choses. Le web possède le plus grand écosystème open source au monde. Nous sommes donc assez rapidement passés à Electron.

De plus, et c'est le plus important, avec Electron, vous développez une fois et cela devrait Juste Fonctionner™ sur toutes les principales plateformes. Ce n'est pas garanti, mais le coût du codage natif pour chaque plateforme dépasse nettement sur les autres coûts qu'Electron introduit.

Quelles sont vos choses préférées à propos d'Electron?

GTD!: Having Node.js’ networking stack and Chromium’s presentation layer packaged together is a recipe for getting things done.

Compétence : C'est juste la couche web, donc littéralement toute notre équipe est impliquée dans la construction du produit.

Communauté : Il existe une communauté très organisée qui sait très bien communiquer ! Nous sommes très heureux de pouvoir nous développer avec un tel soutien.

Dans quels domaines Electron pourrait-il être amélioré ?

Nous aimerions voir Electron approuver un seul empaqueteur. L'empaqueteur est aussi important pour Electron que le gestionnaire de paquets est à Node. Il y a plusieurs empaqueteurs dans la zone utilisateur, chacun avec des fonctionnalités intéressantes, mais chacun avec des bogues. Un consensus de la communauté permettrait de diriger l'énergie dépensée par les contributeurs.

What's coming next?

Nous développons actuellement une application mobile et travaillons avec des artistes et des labels pour ajouter leur musique à la boutique Voltra. Hé ! Si vous êtes un artiste ou un label, inscrivez-vous maintenant ! Nous prévoyons d'ouvrir la boutique lorsque nous aurons atteint notre objectif de 10 millions de titres.

Projet de la Semaine : Bureau WordPress

· 5 mins de lecture

Cette semaine, nous avons rattrapé les gens à Automattic pour parler de WordPress Desktop, un client de bureau open-source pour la gestion du contenu WordPress.


Applications WordPress

Tout le monde connais WordPress, mais qu’est-ce que WordPress Desktop?

L'application de bureau WordPress.com offre une expérience multiplateforme transparente qui vous permet de vous concentrer sur votre contenu et votre conception sans que des onglets de navigateur ne viennent vous distraire - ou de garder vos sites à l'écart mais accessibles. En combinaison avec le support de notre navigateur et de notre application mobile, vous pouvez construire votre site n'importe où, de quelque manière que ce soit pour vous aider à faire votre travail.

Pourquoi construire une application de bureau pour gérer les sites WordPress ? Ne pourrait-il pas tous être basé sur le web?

Il utilise en fait exactement la même technologie que vous obtenez en visitant WordPress.com dans votre navigateur. Cependant, tout est hébergé localement, donc il a des temps de chargement minimes. Avec le bénéfice de fonctionnalités natives comme être dans votre doc, les notifications, etc., vous pouvez vraiment vous concentrer sur vos sites WordPress et blogging.

Pourquoi avez-vous choisi de construire WordPress Desktop sur Electron?

À la fin de 2015, nous avons reconstruit une grande partie de WordPress.com sous la forme de Calypso, une application JavaScript moderne open-source utilisant React. Nous avons commencé à regarder Electron et avec quelques modifications à Calypso ont été en mesure de le faire fonctionner localement. C'était une expérience convaincante et nous pensions qu'il y avait beaucoup de valeur à la développer.

Nous avons eu plusieurs équipes travaillant sur Calypso. Créer un client graphique multi-plateforme qui corresponde à cela en utilisant les technologies de bureau traditionnelles aurait pris plus de travail. En utilisant Electron, une petite équipe de 2-4 d'entre nous ont pu tirer parti des efforts de l'autre équipe et construire l'application de bureau dans quelques mois.

Quels sont les défis que vous avez rencontrés lors de la construction de WordPress Desktop ?

Nous avons réussi à faire fonctionner une première version de l'application très rapidement, mais la mettre au point pour qu'elle se comporte de manière optimale comme une application de bureau a pris beaucoup plus de temps. L'un des grands défis de l'application est que vous exécutez en réalité une copie de Calypso sur votre propre machine - c'est purement une interface utilisateur pilotée par API. Il y a eu beaucoup de travail de transition dans ce domaine, et les changements ont été répercutés sur Calypso elle-même.

En outre, beaucoup d'efforts ont été déployés pour adapter l'application à différentes plateformes - nous proposons des versions Windows, macOS et Linux - et les différences sont suffisantes pour rendre la tâche délicate.

À l'époque, Electron était relativement nouveau et nous rencontrions régulièrement des problèmes qui étaient rapidement résolus (parfois le jour même !)

Dans quels domaines faut-il améliorer Electron ?

Electron fournit déjà la plupart de ce dont nous avons besoin pour l'application Desktop, et il progresse rapidement depuis que nous avons commencé à l'utiliser. Cela dit, il y a certains domaines qui sont considérés comme acquis dans une application de bureau, comme la vérification orthographique et la trouver/remplacement, qui sont plus difficiles à reproduire avec Electron tel quel.

Nous aimerions aussi voir certaines des nouvelles technologies Chrome filtrer dans Electron également. Nous sommes particulièrement désireux d’expérimenter avec WebVR.

Quelles sont vos choses préférées à propos d'Electron?

La raison principale pour laquelle nous avons choisi Electron, et c'est la plus grande force, est la communauté très active et ouverte. Automattic a toujours cru en l'open source. C'est l'un de nos principes de base, le projet et la communauté d'Electron suivent beaucoup des convictions fondamentales d'être très ouvert et positif.

Que se passe-t-il dans WordPress Desktop ?

L'avantage de notre modèle est que l'application de bureau bénéficie de toutes les nouvelles fonctionnalités de Calypso - il y a des améliorations constantes. Nous espérons que nous pourrons ajouter des fonctionnalités supplémentaires à l'application, telles que le support hors ligne, qui transmettrait réellement l'application dans le territoire natif, et de meilleures notifications systèmes.

Y a-t-il des équipes dans Automattic travaillant sur d'autres applications Electron ?

Oui, après nos efforts sur l'application Desktop, l'équipe Simplenote a décidé d'utiliser Electron pour construire des applications de bureau pour Windows et Linux (un client Mac natif existe déjà). L'application Simplenote Electron est également open source et disponible sur Github.

Nous avons également une prochaine intégration Raspberry Pi qui utilise Electron.

Si l'un de ces éléments semble intéressant, alors nous aimerions avoir de vos nouvelles!

Des conseils d'Electron qui pourraient être utiles aux autres développeurs ?

Le processus d'expédition de logiciels de bureau signés est relativement récent pour nous, en particulier pour Windows. nous avons écrit un article pour Code Signing a Windows App qui inclut le processus et quelques-uns des obstacles que nous avons rencontrés pour le faire correctement.

Projet de la Semaine : Dat

· 8 mins de lecture

Le projet vedette de cette semaine est Dat, un projet financé par des subventions, open source et décentralisé pour la distribution d’ensembles de données. Dat est produit et maintenu par une équipe géodistribuée, dont beaucoup de membre ont aidé pour écrire cet article.


Une capture d'écran de la vue principale de dat-desktop, montrant quelques lignes de données
partagées

Tout d’abord, qu’est-ce que Dat?

Nous voulions apporter le meilleur des systèmes distribués "peer to peer" au partage de données. Nous avons commencé avec le partage de données scientifiques puis nous nous sommes tourné vers des institutions de recherche, le gouvernement, la fonction publique et les équipes open source.

Une autre façon d’y penser est une application de synchronisation et de téléchargement comme Dropbox ou BitTorrent Sync, sauf que Dat est open source . Notre objectif est de produire un logiciel de partage de données puissant, open source et à but non lucratif pour les données de toute sorte et de toute taille.

Pour utiliser l’outil CLI dat , il vous suffit de taper :

dat share path/to/my/folder

Et dat va créer un lien que vous pouvez utiliser pour envoyer ce dossier à quelqu'un d'autre -- aucun serveur central ou tiers n'ayant accès à vos données. Contrairement à BitTorrent, il est également impossible d'aller "fouiner" afin de voir qui partage quoi (voir le brouillon de Dat Paper pour plus de détails).

Maintenant que nous savons ce qu’est Dat. Comment Dat Desktop s’intègre-t-il ?

Dat Desktop est un moyen de rendre Dat accessible aux personnes ne pouvant pas ou ne voulant pas utiliser la ligne de commande. Vous pouvez héberger plusieurs fichiers Dat sur votre machine et diffuser les données sur votre réseau.

Quelques cas d’utilisation intéressants?

DataRefuge + Projet Svalbard

Nous travaillons sur un projet nommé Projet Svalbard qui est lié à DataRefuge, un groupe de travail pour soutenir les données gouvernementales sur le climat susceptibles de disparaître. Svalbard a été nommé ainsi en référence au Svalbard Global Seed Vault dans l'Arctique qui possède une grande bibliothèque souterraine d'ADN végétal. Notre version est une grande collection de données scientifiques publiques avec gestion des versions. Une fois que nous avons connaissance aux métadonnées et que nous pouvons leu faire confiance, nous pouvons construire d'autres projets géniaux comme un qui est un réseau bénévole de stockage de données distribué.

Regroupement de données citoyennes en Californie

CACivicDataest une archive open-source diffusant quotidiennement à partir de la base de données californienne de suivi de l'argent en politique CAL-ACCESS. Des mises à jour quotidiennes sont effectuées, ce qui oblige à héberger beaucoup de données en double dans leurs fichiers zip. Nous travaillons sur l'hébergement de leurs données en tant que repository Dat qui réduira la quantité de tracas et de bande passante nécessaire pour se référer à une version spécifique ou mettre à jour vers une version plus récente.

Mises à jour d'Electron

Celui-ci n'est pas encore concret, mais nous pensons qu'un cas d'utilisation amusante serait de mettre une application Electron compilée dans un dépôt Dat, puis en utilisant un client Dat dans Electron pour tirer les derniers deltas du binaire de l'application construite, pour économiser sur le temps de téléchargement, mais aussi pour réduire les coûts de bande passante pour le serveur.

Qui devrait utiliser Dat Desktop ?

Toute personne souhaitant partager et mettre à jour des données sur un réseau p2p. Data scientists, hackers de données libres, chercheurs, développeurs. Nous sommes très ouverts aux commentaires à propos de cas d’utilisation sympa auquel nous n’avons pas encore pensé. Vous pouvez passer par notre Gitter Chat et nous demander n’importe quoi!

Quelle est la prochaine étape dans Dat et Dat Desktop ?

Comptes d’utilisateurs et publication de métadonnées. We are working on a Dat registry web app to be deployed at datproject.org which will basically be an 'NPM for datasets', except the caveat being we are just going to be a metadata directory and the data can live anywhere online (as opposed to NPM or GitHub where all the data is centrally hosted, because source code is small enough you can fit it all in one system). Comme beaucoup de jeux de données sont énormes, nous avons besoin d'un registre fédéré (similaire à la façon dont fonctionnent les trackers BitTorrent). Nous voulons faciliter la recherche ou la publication de jeux de données dans le registre de Dat Desktop, pour rendre le partage des données sans friction.

Une autre fonctionnalité est les dossiers multi-auteurs/collaboratifs. Nous avons de gros projets pour faire des flux de travail collaboratifs, peut-être avec des branches, similaires à git, sauf conçu autour de la collaboration de jeux de données. Mais nous travaillons toujours, en ce moment à la stabilité générale et à la standardisation de nos protocoles !

Pourquoi avez-vous choisi de créer Dat Desktop avec Electron?

Dat étant sur Node.js, c'était naturel de l'intégrer ainsi. Au-delà de cela, nos utilisateurs utilisent une variété de machines depuis des scientifiques, les chercheurs et les responsables gouvernementaux peuvent être contraints d'utiliser certaines configurations pour leurs institutions -- cela signifie que nous devons être en mesure de cibler Windows et Linux ainsi que Mac. Dat Desktop nous le donne très facilement.

Quels sont les défis que vous avez rencontrés lors de la construction de Dat et Dat Desktop ?

Trouver ce que les gens veulent. Nous avons commencé avec des jeux de données tabulaires, mais nous avons réalisé que c'était un peu compliqué à résoudre et que la plupart des gens n'utilisent pas de bases de données. Donc, à mi-parcours du projet, nous avons redessiné tout depuis zéro pour utiliser un système de fichiers et nous n'avons pas regardé en arrière.

Nous avons également rencontré des problèmes généraux d'infrastructure d'Electron, notamment :

  • Télémétrie - comment capturer des statistiques d'utilisation anonymes
  • Mises à jour - C'est une sorte de piqué et de magie de mettre en place des mises à jour automatiques
  • Versions - Signature XCode, construction de versions sur Travis, en faisant des versions bêta, tous étaient des défis.

Nous utilisons également Browserify et quelques transformations de Browserify sur le code 'front-end' dans Dat Desktop (ce qui est un peu bizarre parce que nous avons encore des paquets même si nous avons natif require -- mais c'est parce que nous voulons les transformations). Pour mieux aider à gérer notre CSS nous sommes passés de Sass à l'utilisation de sheetify. Il nous a grandement aidés à modulariser notre CSS et à faciliter le déplacement de notre interface utilisateur vers une architecture orientée vers des composants avec des dépendances partagées. Par exemple dat-colors contient toutes nos couleurs et est partagé entre tous nos projets.

Nous avons toujours été un grand fan de standards et d'abstractions minimes. Toute notre interface est construite à l'aide de nœuds DOM réguliers avec seulement quelques bibliothèques nous aidant. Nous avons commencé à déplacer certains de ces composants dans les éléments de base, une bibliothèque de composants réutilisables de bas niveau. Comme avec la plupart de notre technologie, nous continuons à itérer dessus jusqu'à ce que nous y arrivions correctement, mais en tant qu'équipe, nous avons le sentiment que nous allons dans la bonne direction ici.

Dans quels domaines faut-il améliorer Electron ?

Nous pensons que le plus grand point de douleur est les modules natifs. Reconstruire vos modules pour Electron avec npm ajoute de la complexité au workflow. Notre équipe a développé un module appelé prebuild qui gère les binaires précompilés, qui a bien fonctionné pour Node, mais les workflows d'Electron nécessitaient toujours une étape personnalisée après l'installation, généralement npm run rebuild. Cela a été ennuyeux. Pour résoudre ce problème, nous sommes récemment passés à une stratégie où nous regroupons toutes les versions binaires compilées de toutes les plates-formes à l'intérieur de l'archive tar npm. Cela signifie que les archives deviennent plus grandes (bien que cela puisse être optimisé avec les fichiers .so - bibliothèques partagées), cette approche évite d'avoir à exécuter des scripts de post-installation et évite également complètement le modèle npm run rebuild. Cela signifie que npm install fait la bonne chose pour Electron la première fois.

Quelles sont vos choses préférées à propos d'Electron?

Les API semblent assez bien pensées, elles sont relativement stables et ça fait un bon travail pour se tenir à jour avec les versions amont de Node, pas grand chose que nous pouvons demander !

Des conseils d'Electron qui pourraient être utiles aux autres développeurs ?

Si vous utilisez des modules natifs, essayez prebuild !

Quelle est la meilleure façon de suivre les développements de Dat ?

Suivez @dat_project sur Twitter, ou abonnez-vous à notre newsletter e-mail.

Project of the Week: Ghost

· 5 mins de lecture

This week we chatted with Felix Rieseberg, desktop engineer at Slack and maintainer of Ghost Desktop, an Electron client for the Ghost publishing platform.


Ghost Desktop Screenshot

What is Ghost?

Ghost is a fully open source, hackable platform for building and running a modern online publication. We power blogs, magazines and journalists from Zappos to Sky News.

What makes it different from other publishing platforms?

Ghost was founded in April 2013, after a very successful Kickstarter campaign to create a new platform focused solely on professional publishing. Our mission is to create the best open source tools for independent journalists and writers across the world, and have a real impact on the future of online media. It offers a simpler, more focussed experience: Our editor is designed solely around providing the best possible writing experience.

Compared to the all-time classic WordPress, it offers a simpler, more streamlined experience - it is easier to setup and maintain, comes with all important features out-of-the-box, and is dramatically faster. Compared to other online platforms, Ghost gives writers full ownership and control over their content, allows full customization, and enables authors to build a business around their publication.

Is Ghost a for-profit company?

This one is important to us: Ghost is an independent non-profit organisation. We build publishing tools for modern journalism & blogging because we believe freedom of speech is important. Our software is released under a free open source license, our business model is completely transparent, and our legal structure means that 100% of the money we make is reinvested into making Ghost better.

What is Ghost Desktop?

Ghost Desktop allows writers to manage multiple blogs at once - and to focus on their writing. Des choses simples comme des raccourcis d'écriture courants ne peuvent pas être réalisées dans un navigateur, mais sont disponibles dans notre application de bureau. Il permet à d'autres applications de communiquer directement avec le blog via deeplinks.

What is Ghost for Journalism?

This year we're very excited to be dedicating our entire 10 person full-time Ghost team to helping grow three independent publications, along with $45,000 in resources toward their efforts. We're calling it Ghost for Journalism.

We've been building Ghost as the web's next great platform for independent publishers for about three and half years now, and we've now reached a really interesting inflection point. We started this journey to create a simple, well designed blogging platform which could be used by just about anyone. That was always going to be step one.

Long term, we want Ghost to be an incredible platform for the world's best journalism, and that means we need to build features to attract exactly those people. This year we're making a very conscious decision to focus on just that.

Why did you choose to build Ghost Desktop on Electron?

Ghost uses JavaScript and Node.js on both the backend and frontend, so being able to utilize the same technology and skillset enables our team to move faster, build more, and ultimately deliver a better experience. In addition, being able to share more than 95% of code between the macOS, Windows, and Linux version of the app allows us to focus on building a great core user experience, without having to maintain one code base for each platform.

What are some challenges you've faced while building Ghost Desktop?

Spellchecking is likely still one of the most difficult services offered - we could easily utilize one of the many online services, but correctly spellchecking text in multiple languages while guarding the privacy and autonomy of our users is not an easy task.

Dans quels domaines faut-il améliorer Electron ?

We would love to see Electron bring the operating system's native spellchecking capabilities to their apps. We're dreaming about a world in which an <input> field receives the same services as a NSTextView, but we are also intimately aware how difficult that is.

Quelles sont vos choses préférées à propos d'Electron?

JavaScript is famous for being a vast ecosystem, involving countless tools and frameworks - but the convenience it affords us is hard to overstate. Building an app with Electron is only slightly harder than building a web app, which is an amazing feat.

Is Ghost done? If not, what's coming next?

Ghost Desktop is also an ongoing project - we're pretty far from being done. We have been talking for a while about bringing a full offline mode to our users, and we're getting fairly close. Other notable work areas are the extension and integration with other text editing apps (like Word or Atom), ultimately allowing people to write posts using their favorite tools. In general, once we've shipped the offline mode feature, we're looking for deeper integration with the operating system. If that sounds interesting to you, join us!

What are some of your favorite Electron apps?

I'm a big fan of Kap, Felony, and Visual Studio Code.

👻

Project of the Week: Beaker Browser

· 4 mins de lecture

This week we caught up with Paul Frazee, creator of Beaker Browser. Beaker is an experimental peer-to-peer web browser that uses the Dat protocol to host sites from users’ devices.


What is Beaker and why did you create it?

Beaker is a participatory browser. It's a browser for indie hackers.

The Web is closed source. If you want to influence how social media works, you have to work at Facebook or Twitter. For search, Google. Control is in the hands of companies, rather than the users themselves.

With Beaker, we have a new Web protocol: the Decentralized Archive Transport. "Dat". Il crée des sites à la demande, gratuitement, et ensuite les partage à partir de l'appareil. No servers required. That's our innovation.

Beakers Protocols

When you visit a Dat site in Beaker, you download the files. The site is yours, forever. You can save it, fork it, modify it, and share your new version for free. It's all open-source.

So that's what it's about: We're making a browser for open-source Websites. We want it to be a toolkit for social hacking.

Who should be using Beaker?

Hackers. Modders. Creative types. People who like to tinker.

How do I create a new project that uses Dat?

We've got a command-line tool called bkr that's kind of like git + npm. Here's creating a site:

$ cd ~/mon-site
$ bkr init
$ echo "Bonjour, monde!" > index.html
$ bkr publish

And here's forking a site:

$ bkr fork dat://0ff7d4c7644d0aa19914247dc5dbf502d6a02ea89a5145e7b178d57db00504cd/ ~/my-fork
$ cd ~/my-fork
$ echo "Mon fork n'a aucune considération pour l'index précédent. > index.html
$ bkr publish

Those sites then get hosted out of your browser. It's a little like BitTorrent; you share the sites in a P2P mesh.

If you want a GUI, we have some basic tools built into the browser, but we're pushing those tools into userland. It's all going to be moddable user apps.

Why did you choose to build Beaker on Electron?

It was obvious for this project. If I forked Chrome myself, I'd be writing C++ right now! Nobody wants to do that. I know the Web stack, and I can work quickly with it. It's a no-brainer.

The truth is, I'm not sure I could do any of this without Electron. It's a great piece of software.

What are some challenges you've faced while building Beaker?

Half of it is poking at the tools and figuring out how much I can get away with.

Making the browser itself was pretty easy. Electron is practically a toolkit for making browsers. ...Except for the browser tabs; that took me forever to get right. I finally broke down and learned how to do SVGs. It's much better looking, but it took 3 or 4 iterations before I got that right.

Dans quels domaines faut-il améliorer Electron ?

It'd be really great if I could dock the devtools inside a webview.

What's coming next in Beaker?

Secure DNS names for Dat sites. A socially configurable URL scheme, called the "app scheme." More Dat APIs.

For folks who may be interested in contributing to the project, in what areas does Beaker need help?

We have lots of open issues. Don't be afraid to ping me. #beakerbrowser on freenode. We keep a page for contributors and we'll add you to it. And if you visit Austin, I'll buy you a beer.

Des conseils d'Electron qui pourraient être utiles aux autres développeurs ?

  1. Use the build tooling that's out there. You don't want to wrestle with your own solutions, trust me. Use electron-builder. Use a boilerplate repo.
  2. If you need to open an issue in the Electron repo, go the extra mile to make it easy to reproduce. You'll get a response much more quickly, and the team will appreciate it. Even better, try fixing it yourself. It's actually pretty interesting to see the innards.
  3. Read through all the guides and advanced docs at least once.
  4. Don't build a browser, it's a saturated market.

Project of the Week: Kap

· 7 mins de lecture

The Electron community is growing quickly, and people are creating powerful new apps and tools at an astounding rate. To celebrate this creative momentum and keep the community informed of some of these new projects, we've decided to start a weekly blog series featuring noteworthy Electron-related projects.


This post is the first in the series, and features Kap, an open-source screen recording app built by Wulkano, a geodistributed team of freelance designers and developers.

Kap Screencast

What is Kap?

Kap is an open-source screen recorder built primarily for designers and developers to easily capture their work. People use it to share animated prototypes, document bugs, create silly GIFs and everything in-between.

Nous avons vu des gens de tous âges et de tous horizons l'utiliser dans des environnements éducatifs, screencasts, tutoriels... la liste continue. Even to create production assets! We're completely blown away by how well received our little side project has been.

Why did you build it?

That's a very good question, it's not like there's a lack of screen recorders out there! We felt the alternatives were either too complex, too expensive or too limited. Nothing felt just right for our everyday needs. We also think it's great when the tools we use to do our work are open-source, that way everyone can help shape them. Building Kap ended up being just as much about what we didn't do. It's all in the details, an accumulation of small improvements that became the outline of a tool we wanted to use.

However, and maybe most importantly, Kap has become a place for us to leave our worries at the door and just have fun building something for ourselves and people like us. It's so important to create an environment where you get to just vent, try new thins and enjoy your craft. No requirements, no pressure, no expectations. Should designers and developers side project? Why, yes. Yes, they should.

Why did you choose to build Kap on Electron?

There were a number of reasons:

  • Web tech
  • Most of the team are web developers
  • We're invested in JavaScript
  • It opens the door for more people to contribute
  • Electron itself is open-source
  • The power and easily maintainable modularity of node_modules
  • Cross-platform possibilities

We think the future of apps are in the browser, but we're not quite there yet. Electron is an important step in the journey towards that future. It not only makes the apps themselves more accessible, but also the code they're built with. An interesting thought is imagining a future where the OS is a browser, and the tabs are essentially Electron apps.

Additionally, being primarily web developers, we're big fans of the isomorphic nature of JavaScript, in that you can run JS on the client, server, and now the desktop. With web tech (HTML, CSS and JS), many things are much simpler than native: Faster prototyping, less code, flexbox > auto-layout (macOS/iOS).

What are some challenges you've faced while building Kap?

Using the resources Electron has available to record the screen was the biggest challenge. They simply weren't performant enough to meet our requirements and would render the project a failure in our eyes. Though at no fault of Electron itself, there's still a gap between native development and building desktop apps with web tech.

We spent a lot of time trying to work around the poor performance of the getUserMedia API, an issue originating in Chromium. One of our main goals when we set out to make Kap was to build the entire app with web tech. After trying everything we could to get it working (the minimum requirement being 30 FPS on a Retina screen), we eventually had to find another solution.

I see some Swift code in the repo. What's that about?

Being forced to look for alternatives to getUserMedia, we started experimenting with ffmpeg. Besides being one of the best tools for audio and video conversion it has the functionality of recording the screen in almost any OS, and we were able to record crispy video meeting our minimum requirement of 30 FPS on a Retina screen. Problem? The performance was "😩", the CPU usage was going haywire. So we went back to the drawing board, discussed our options and realised that we had to make a compromise. That resulted in Aperture, our own screen recording library for macOS written in Swift.

Dans quels domaines faut-il améliorer Electron ?

We all know that Electron apps can have a thing for using RAM, but again, that's really a Chromium thing. It's part of how it works and it really depends on what you're running, for example Kap and Hyper typically use less than 100MB of memory.

One of the biggest areas of improvement that we see is payload, particularly how Electron distributes Chromium. One idea would be to have a shared Electron core and make app installers check if it's already present on the system.

Creating cross-platform Electron apps could be a better experience. Right now there are too many inconsistencies, platform-specific APIs, and missing features between platforms, making your codebase littered with if-else statements. For example, vibrancy is only supported on macOS, the auto-updater works differently on macOS and Windows, and is not even supported on Linux. Transparency is a hit or miss on Linux, usually miss.

It should also be easier to call native system APIs. Electron comes with a very good set of APIs, but sometimes you need functionality it doesn't provide. Creating a native Node.js addon is an option, but it's painful to work with. Ideally Electron would ship with a good FFI API, like fastcall. This would have enabled us to write the Swift part in JavaScript instead.

Quelles sont vos choses préférées à propos d'Electron?

Our favorite thing is easily the fact that anyone with knowledge of creating for the web can build and contribute to multi-platform native experiences. Not to mention the ease and joy of developing on it, the excellent documentation and the thriving ecosystem.

From a front-end perspective, building Kap felt no different than building a simple website using browser APIs. Electron does a really great job of making app development similar (basically identical) to web development. So simple in fact that there was no need for frameworks or similar to help us, just clean and modular JS and CSS.

We are also huge fans of the team building it, their dedication and support, and the active and friendly community they maintain. Hugs to all of you!

What's coming next in Kap?

The next step for us is to review the app in preparation for our 2.0.0 milestone, which includes a React re-write in addition to support for plugins, allowing developers to extend the functionality of Kap! We invite everyone to follow to project and contribute on our GitHub repository. We're listening and want to hear from as many of you as possible, let us know how we can make Kap the best possible tool it can be for you!

What is Wulkano?

Wulkano is a design studio and digital collective, a team of remote technologists who love working together on both client gigs and our own projects. We're a distributed but tight knit group of people from different places and backgrounds, sharing knowledge, ideas, experiences, but most importantly silly GIFs and memes, in our virtual office (which happens to be the Electron based Slack!).

Des conseils d'Electron qui pourraient être utiles aux autres développeurs ?

Take advantage of and get involved in the fantastic community, check out Awesome Electron, look at examples and make use of the great docs!

Exemples simples d'Electron

· 2 mins de lecture

Nous avons récemment organisé un hackathon Electron au siège de GitHub pour les membres de la Hackbright Academy, une école de codage pour femmes fondée à San Francisco. Pour aider les participants à prendre un bon départ dans leurs projets, notre propre Kevin Sawicki a créé quelques exemples d'applications Electron.


Si vous êtes nouveau dans le développement avec Electron ou si vous ne l'avez pas encore essayé, ces exemples d'applications sont un bon point de départ. Ils sont petits, faciles à lire et le code est fortement commenté pour expliquer comment tout fonctionne.

Pour commencer, clonez ce dépôt :

git clone https://github.com/electron/simple-samples

Pour exécuter l'une des applications ci-dessous, allez dans le répertoire de l'application, installez les dépendances, puis démarrez :

cd activity-monitor
npm install
npm start

Moniteur d'activité

Affiche un diagramme en beignet du temps d'activité du CPU, de l'utilisateur et d'inactivité.

Capture d'écran

Hachage

Affiche les valeurs de hachage du texte saisi en utilisant différents algorithmes.

capture d'écran

Miroir

Lit une vidéo de la caméra de l'ordinateur à une taille maximale, comme si vous regardiez dans un miroir. Inclut un effet de filtre arc-en-ciel optionnel qui utilise des animations CSS.

Prix

Affiche le prix actuel du pétrole, de l'or et de l'argent à l'aide de l'API Yahoo Finance.

capture d'écran

URL

Charge une URL passée à la ligne de commande dans une fenêtre.

Autres ressources

Nous espérons que ces applications vous aideront à démarrer avec Electron. Nous vous proposons également ces quelques autres ressources pour en apprendre plus :

Electron Userland

· 4 mins de lecture

Nous avons ajouté une nouvelle section userland au site Web d'Electron pour aider les utilisateurs à découvrir les gens, les packages et les applications qui composent notre écosystème open-source florissant.


contributeurs de GitHub

Origines du Userland

Userland est l'endroit où les gens dans les communautés de logiciels se réunissent pour partager des outils et des idées. Le terme est originaire de la communauté Unix, où il fait référence à tout programme qui s'est exécuté en dehors du noyau, mais aujourd'hui, cela signifie quelque chose de plus. Lorsque les membres de la communauté Javascript d’aujourd’hui se réfèrent à userland, ils parlent généralement du registre des paquets npm. C'est là que la majorité des expériences et l'innovation se produisent, alors que Node et le langage JavaScript (comme le noyau Unix) conservent un ensemble relativement petit et stable de fonctionnalités de base.

Node et Electron

Comme Node, Electron a un petit ensemble d’API de base. Celui ci fournit les fonctionnalités de base nécessaires au développement d'applications de bureau multi-plates-formes. Cette philosophie de conception permet à Electron de rester un outil flexible sans être trop normatif sur la manière dont il devrait être utilisé.

Userland est le pendant du « core », permettant aux utilisateurs de créer et de partager des outils qui étendent les fonctionnalités d’Electron.

Collecte des données d’utilisation

Pour mieux comprendre les tendances de notre écosystème, nous avons analysé les métadonnées de 15 000 dépôts GitHub publics qui dépendent de electron ou electron-prebuilt

Nous avons utilisé les bibliothèques GitHub API, libraries.io API, et le registre npm pour récupérer des informations sur les dépendances, dépendances de développement, dépendants, auteurs de package, contributeurs de dépôts, compteurs de téléchargement, compteurs de fork, compteurs de stargazer etc.

Nous avons ensuite utilisé ces données pour générer les rapports suivants :

Filtrage des résultats

Des rapports tels que les dépendances d’applications et les applications étoilées qui répertorient les packages, les applications et les repos ont une entrée de texte qui peut être utilisée pour filtrer les résultats.

Lorsque vous tapez dans cette entrée, l'URL de la page est mise à jour dynamiquement. Ceci permet de copier une URL représentant une tranche particulière de données de l'espace utilisateur, puis de la partager avec d'autres.

babel

Plus d'infos à venir

Ce premier ensemble de rapports n'est que le début. Nous continuerons à collecter des données sur la façon dont la communauté construit Electron, et nous ajouterons de nouveaux rapports au site web.

Tous les outils utilisés pour collecter et afficher ces données sont open-source:

Si vous avez des idées sur la façon d'améliorer ces rapports, veuillez nous faire savoir en déclarant un problème sur le dépôt du site web ou l'un des dépôts susmentionnés.

Merci à vous, la communauté Electron, d’avoir fait de userland ce qu’il est aujourd’hui !

Septembre 2016 : Nouvelles applications

· 3 mins de lecture

Voici les nouvelles applications et conférences d'Electron qui ont été ajoutées au site en septembre.


This site is updated with new apps and meetups through pull requests from the community. Vous pouvez surveiller le dépôt pour être informé des nouveaux ajouts ou, si vous n'êtes pas intéressé par toutes les modifications du site, vous pouvez vous abonner au fil RSS du blog.

Si vous avez créé une application Electron ou si vous organisez une réunion, faites une requête pour l'ajouter au site et elle fera partie du prochain regroupement.

Nouvelles discussions

En septembre, GitHub a tenu sa conférence GitHub Universe présentée comme l'événement pour les personnes qui construisent l'avenir des logiciels. Il y a eu quelques présentations intéressantes d'Electron lors de l'événement.

Also, if you happen to be in Paris on December 5, Zeke will be giving an Electron talk at dotJS 2016.

Nouvelles applications

PexelsSearch for completely free photos and copy them into your clipboard
TimestampA better macOS menu bar clock with a customizable date/time display and a calendar
HarmonyMusic player compatible with Spotify, Soundcloud, Play Music and your local files
uPhoneWebRTC Desktop Phone
SealTalkInstant-messaging App powered by RongCloud IM Cloud Service and IM SDK
InfinityAn easy way to make presentation
Cycligent Git ToolStraightforward, graphic GUI for your Git projects
FocoStay focused and boost productivity with Foco
StrawberryWin Diners for Life Know and serve them better with the all-in-one restaurant software suite.
MixmaxSee every action on your emails in real-time Compose anywhere.
Firebase AdminA Firebase data management tool
ANoteA Simple Friendly Markdown Note
TempsA simple but smart menubar weather app
AmiumA work collaboration product that brings conversation to your files
SoubeSimple music player
(Un)coloredNext generation desktop rich content editor that saves documents with themes HTML & Markdown compatible. For Windows, OS X & Linux.
quickcalcMenubar Calculator
Forestpin AnalyticsFinancial data analytics tool for businesses
LingREST Client
ShortextsShortcuts for texts you copy frequently, folders and emojis
Front-End BoxSet of front-end-code generators

Août 2016 : Nouvelles applications

· 3 mins de lecture

Voici les nouvelles applications Electron qui ont été ajoutées sur le site en août.


The site is updated with new apps and meetups through pull requests from the community. Vous pouvez surveiller le dépôt pour être informé des nouveaux ajouts ou, si vous n'êtes pas intéressé par toutes les modifications du site, vous pouvez vous abonner au fil RSS du blog.

Si vous avez créé une application Electron ou si vous organisez une réunion, faites une requête pour l'ajouter au site et elle fera partie du prochain regroupement.

Nouvelles applications

Code RPGifyRPG style coding application
PamFaxA cross-platform app for sending and receiving faxes
BlankUpMarkdown editor witch clarity +1
RamboxFree and Open Source messaging and emailing app that combines common web applications into one
GordieThe best app for your card collections
Ionic CreatorBuild amazing mobile apps, faster
TwitchAlertsKeep your viewers happy with beautiful alerts and notifications
MuseeksA simple, clean and cross-platform music player
SeaPigA converter from markdown to html
GroupMeUnofficial GroupMe App
MoeditorYour all-purpose markdown editor
SoundnodeSoundnode App is the Soundcloud for desktop
QMUI WebQMUI Web Desktop is an application for managing projects based on QMUI Web Framework
SvgsusOrganize, clean and transform your SVGs
RammeUnofficial Instagram Desktop App
InsomniaREST API Client
CorreoA menubar/taskbar Gmail App for Windows, macOS and Linux
KongDashDesktop client for Kong Admin API
Translation EditorTranslation files editor for INTL ICU messages (see formatjsio)
5EClient5EPlay CSGO Client
Theme JuiceLocal WordPress development made easy