paint-brush
ShlinkedIn : un réseau social amusant basé sur l'open sourcepar@evansoohoo
1,802 lectures
1,802 lectures

ShlinkedIn : un réseau social amusant basé sur l'open source

par Evan SooHoo5m2022/10/07
Read on Terminal Reader
Read this story w/o Javascript

Trop long; Pour lire

ShlinkedIn est une parodie d'un site Web très populaire (je laisserai au lecteur le soin de deviner lequel) Selon son développeur principal, il compte des milliers d'utilisateurs. Le site utilise le relativement nouveau Phoenix LiveView (https://fly.io/blog/how-we-got-to-liveview/), car Holtz voulait s'entraîner à construire quelque chose avec. La pile technologique, que vous pouvez trouver sur leur GitHub, est en fait assez intéressante. Il critique LinkedIn et la culture de l'agitation que LinkedIn semble parfois représenter.

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - ShlinkedIn : un réseau social amusant basé sur l'open source
Evan SooHoo HackerNoon profile picture

En l'honneur du Mois de l'Open Source , je voulais écrire sur ShlinkedIn . ShlinkedIn est une parodie d'un site Web très populaire (je laisserai au lecteur le soin de deviner lequel), et selon son développeur principal, il compte des milliers d'utilisateurs. Il y a environ un an, il a fait la page n ° 1 de HackerNews . J'en ai entendu parler pour la première fois sur un podcast britannique appelé Tech Team Weekly .


Pour être tout à fait clair, je ne suis pas celui qui l'a construit… bien que j'aie fait quelques petites contributions qui pourraient être qualifiées d'excuse pour écrire ce billet de blog. Un lecteur occasionnel pourrait simplement penser que ce site Web est le projet parallèle occasionnel d'un ingénieur logiciel - et ils auraient raison - mais voici quelques raisons pour lesquelles je pense qu'il y a plus à ShlinkedIn qu'il n'y paraît :


  • La pile technologique, que vous pouvez trouver sur leur GitHub ici, est en fait assez intéressante. Il utilise le relativement nouveau Phoenix LiveView , car Holtz voulait s'entraîner à construire quelque chose avec. Le noyau de ShlinkedIn était cette vidéo

  • Ceci est une démonstration de ce que pourrait être un réseau social. Il n'y a pas d'annonces. Il n'y a pas de collecte de données. Au lieu de cela, il gagne de l'argent avec un niveau payant facultatif

  • Il critique LinkedIn et la culture de l'agitation que LinkedIn semble parfois représenter. Il évolue également avec la plate-forme : sur le côté droit se trouvent des titres d'actualités que tout le monde peut inventer, sur chaque message se trouvent des boutons de réaction qui n'ont aucun sens (comme "lait" et "sauce piquante"), et tout au long du site sont dépassés. les meilleures fonctionnalités avancées telles que la génération NFT, les animations de page de profil et l'intégration de Spotify. Ils ont même une fonctionnalité d'IA, et j'ai demandé dans leur discorde quelle bibliothèque ils utilisaient. Ils ont dit qu'ils utilisaient des "libs folles", et il m'a fallu un certain temps pour réaliser qu'ils plaisantaient


Pourquoi l'Open Source ?

De nombreux avantages de l'open source sont évidents : c'est gratuit et "laissons tout le monde jouer", selon les mots de Linus Torvalds (oui, je me suis senti obligé dans un article sur l'open source de citer Linus Torvalds. Dans le contexte, il avait un dispute avec quelqu'un sur l'opportunité de laisser les entreprises utiliser des logiciels open source pour réaliser des bénéfices). Mais cela présente également une opportunité d'apprentissage beaucoup plus réaliste et pertinente qu'un tutoriel ou, oserais-je dire, une question LeetCode.


Lorsque vous créez un compte et que vous vous connectez, vous avez la possibilité de publier. J'étais curieux au sujet des boutons et j'en ai essayé quelques-uns. Vous pouvez ajouter des emojis inutiles à une publication, mais cela ne précise pas combien. Un bouton "annuler" serait utile car le standard "ctl + z" ne fonctionne pas ici.


Alors, comment faites-vous? Cherchez-vous comment les gens dans d'autres applications implémentent "annuler" ? Peut-être utiliser une simple structure de données, comme une pile, pour suivre tous les changements ? C'est peut-être beaucoup plus simple… parce que ces boutons n'incorporent rien d'aléatoire, pourquoi ne pas simplement utiliser de simples compteurs ? C'est le genre de questions que vous auriez à vous poser pour implémenter une fonctionnalité significative, et c'est aussi le genre de choses que vous feriez réellement sur le terrain (bien que sur un projet beaucoup plus vaste et plus compliqué).


Ma (petite) contribution

…Mais pendant qu'ils attendaient cela, j'ai décidé de travailler sur quelque chose de complètement différent. Il y avait un bouton "Espacement excessif", mais il ne semblait rien faire. J'ai déposé un problème sur leur GitHub, et le développeur a précisé qu'il ne faisait rien s'il y avait des sauts de paragraphe. Cela semblait être un fruit à portée de main pour démontrer que j'étais sérieux.


Cela n'a finalement pas été si compliqué, mais c'était certainement moins trivial que je ne l'avais imaginé. Il existe deux fichiers écrits en JavaScript et Elixir, respectivement, qui gèrent ce formulaire ci-dessus. Le développeur a précisé que Phoenix LiveView est un frontend, mais à première vue, ce projet semblait défier la dichotomie en brouillant le frontend et le backend ensemble. Le créateur de Phoenix LiveView semble quelque peu corroborer cela dans son article de blog : Phoenix LiveView est quelque chose de complètement différent.


LiveView supprime les couches d'abstraction, car il résout à la fois le client et le serveur en une seule abstraction. HTTP tombe presque entièrement. Plus de REPOS. Plus de JSON. Pas d'API, de contrôleurs, de sérialiseurs ou de résolveurs GraphQL. Vous écrivez simplement des modèles HTML et un processus avec état le synchronise avec le navigateur, le mettant à jour uniquement lorsque cela est nécessaire. Et il n'y a pas de JavaScript à écrire.

-- Origine


Depuis quelques heures, je suis désormais contributeur de ShlinkedIn. Au début, j'ai fait une alerte, mais c'était minable et ne correspondait pas au format d'une erreur similaire. Au lieu de cela, j'ai décidé d'ajouter une nouvelle balise, de la distinguer avec un identifiant et d'écrire une petite quantité de JavaScript pour détecter les sauts de paragraphe et n'ajouter des espaces excessifs que si une condition était atteinte.


Je n'aurais probablement pas dû utiliser "var", mais s'il vous plaît, ne leur dites pas.


Il y a toujours plus à apprendre

Comment fonctionnent Phoenix LiveView et Elixir ? Je pensais que je devrais en apprendre beaucoup plus à leur sujet, mais cela a fini par être juste du JavaScript. Aussi, pourquoi ai-je dû utiliser JavaScript ? Pourquoi le créateur de Phoenix LiveView semble-t-il soutenir que JavaScript n'est pas nécessaire ici ?


Ai-je raison de croire que Phoenix LiveView brouille la frontière entre le frontend et le backend, ou est-ce incorrect ? Beaucoup de gens sur Medium affirment que Phoenix LiveView est extrêmement efficace, mais l'est-il ? Si oui, comment puis-je tester cela?


Réflexions finales

ShlinkedIn est créatif, open source et tire parti des nouveautés et des nouvelles idées. C'est aussi très amusant… il a même sa propre version dans l'univers de The Onion .


Suivez leur Discord et vous pourrez avoir un premier aperçu de l'évolution d'un réseau social. Il y a aussi des discussions moins amusantes qu'ils ont, comme s'il faut modérer un commentaire raciste lorsque l'affiche parodie anonymement une personne célèbre. Sa déclaration est-elle réellement raciste ou parodie-t-elle un commentaire raciste ?


Le projet est nouveau et intéressant, c'est pourquoi je pense qu'il mérite l'attention de HackerNoon.


(Si vous avez aimé ce que vous avez lu, pensez à me suivre sur mon blog )