📚 Agora node [[@vera@ctzn.one/dev]] (empty) ☆
This Agora node is empty. Be the first to 🌱 Write a contribution, 🧭 Wander to a connected node, or 🎮 play a minigame.
📚 Agora node [[agora dev]] (pulled by the Agora)
📜 File agora dev.md by @anagora@matrix.org ☆ 📎
📚 Agora node [[androiddev]] (pulled by the Agora)
📜 File programming/androiddev.md by @karlicoss ☆ 📎

Table of Contents§

related [[android]]§

Android studio plugins [[setup]]§

  • ADB Idea
  • Bash support
  • CheckStyle - IDEA
  • Drawable importer
  • Findbugs - IDEA
  • IdeaVim
  • Lombok
  • Markdown
  • Python support
  • Sqldelight
  • Teamcity

Phone apps§

  • Cheatdroid: shared prefs editor

[2015-11-20] Why asynctasks are bad?§

  1. AsyncTasks are not composable, To run two (or more) dependent asyncTasks you need to run one from another.
  2. Error handling needs boilerplate: To handle error in main thread you need to return null as result (and losing error information in onPostExecute), or wrap your result in some kind of Either, where you provide result or error
  3. AsyncTasks force you to handle result in main thread (even when it’s intermediate result, and should not be handled in main thread yet)
  4. And of course Activity/Fragment lifecycle, but that’s the point why loaders were introduced.

[2016-04-06] running strace on device§

setenforce 0  # In Android 4.3 and later, if SELinux is enabled, strace will fail with "strace: wait: Permission denied"
set `ps | grep zygote` ; strace -p $2 -f -tt -T -s 500 -o /sdcard/strace.txt

debugging with adb [[adb]]§

Wireless adb:§

adb shell netcfg

Clearing the app data§

adb shell pm clear com.google.mail

Start an activity§

adb shell am start PACKAGE_NAME/ACTIVITY_IN_PACKAGE
adb shell am start PACKAGE_NAME/FULLY_QUALIFIED_ACTIVITY

# example
adb shell am start -n com.growingwiththeweb.example/.MainActivity
adb shell am start -n com.growingwiththeweb.example/com.growingwiththeweb.example.MainActivity

Start service§

adb shell am startservice -n "ru.yandex.mail/com.yandex.mail.service.AbookCacheService"

Debug activity/service starts§

logcat -b events | grep "google.mail"

View activity stack:§

adb shell dumpsys activity activities | sed -En -e '/Stack #/p' -e '/Running activities/,/Run #0/p'

Run certain tests:§

adb shell am instrument -w -e class com.yandex.mail.tests.FolderTest,com.yandex.mail.tests.MessageListTest ru.yandex.mail.test/com.yandex.mail.UiTestsRunner

[2019-08-28] I made something to turn any mobile website into an iPhone app… /r/webdev [[android]]§

Why you didn't use the tags?
><meta name="apple-mobile-web-app-capable" content="yes">
><meta name="apple-mobile-web-app-status-bar-style" content="black">
It works amazingly with Chrome: https://developer.chrome.com/multidevice/android/installtohomescreen
You get the App icon on your screen, full screen, etc!

[2019-08-28] What is the difference between PhoneGap and Ionic? /r/learnprogramming [[android]]§

Ionic is just a UI.
Think of all the UI peculiarities when you use your iPhone. Now imagine trying to hand roll all of that in CSS. Doable, but a real PITA. That's why Ionic was developed.
Phone gap is a totally different thing and is what compiles your code into somethin iOS or android understands.

[2019-08-28] Do people use plain Cordova to build apps ? Or do most people use it in a framework like Ionic or PhoneGap /r/javascript [[android]]§

Hello!
Using cordova on it's own has grown out of fashion due to the amount of things you are required to set it up to make it look like a semi decent app. That said, there are those who still do that, but they likely have a suite of things they've developed over time to make use of it.
Phonegap isn't a different framework though, it's the non open source version of Cordova that is marketed by Adobe.
Ionic is the framework you'd most likely be looking, as they do provide a number of useful mobile components, and styles.
You could also look into React Native, as the community is growing at a faster rate than Ionic did. It doesn't use Cordova at all, but rather the JavaScript runtime on iOS & Android to make use of the platforms' native UI components.

[2019-08-28] PhoneGap/Cordova vs Ionic vs React Native /r/webdev§

Ionic is basically Cordova with Angular on top with a convenient CLI. In my experience Cordova apps tend to be laggy in the long run and the debugging process is relatively annoying when trying to debug native plugins (you have to build the app via xcode etc.). You should be aware that Cordova uses the web view to display the app. So it’s kinda like running a web page on your phone and trying to convince the user it’s a native app.
React native on the other hand uses the native components of the OS. So it’s not a web view, which means your app will feel much smoother. The downside of react native is that it uses its own components on top of the native ones which makes it hard to reuse your frontend code to the extent you  could with a Cordova app.
Personal opinion: In my opinion and based on my past experience I would go with react native if I had to choose a framework based on JavaScript.
Hope this helps :)

[2019-08-18] JStumpp/awesome-android: A curated list of awesome Android packages and resources.§

https://github.com/JStumpp/awesome-android#readme

Development Alternatives

[2019-10-11] fastlane/fastlane: 🚀 The easiest way to automate building and releasing your iOS and Android apps [[androiddev]]§

https://github.com/fastlane/fastlane

[2019-06-12] udev - Android adb no permission - Ask Ubuntu [[adb]]§

https://askubuntu.com/questions/680591/android-adb-no-permission

Change the USB mode in your phone to File Transfer. That's what worked for me.

[2019-12-27] How to Debug a Third Party Android App | Lobsters https://lobste.rs/s/vlawsw/how_debug_third_party_android_app§

[2021-01-11] Allow using a different directory than Documents for local storage · Issue 999 · jonasoreland/runnerup [[androiddev]]§

The problem is scooped storage in newer Android versions. An app only has access to its specific directories.
With older Android than 10 it is possible.
This piece of code need to be changed when targeting Android 111 (before next fall) as getExternalStoragePublicDirectory() is not supported then.
📚 Agora node [[codev]] (pulled by the Agora)
📜 File 04 - Documentation technique/codev.md by @communecter ☆ 📎

Outils et bonne pratique§

scripts§

qlqs script pour faciliter la vie de dev au préalable il faut créer un lien symbolique local sur la machine en ligne de commande

cd ~
ln -s ~/path/To/Dev/Folder d7

switch de branche by script§

executer

. ~/d7/pixelhumain/scripts/gitCheckout.sh master
ou 
. ~/d7/pixelhumain/scripts/gitCheckout.sh qa

up tout les repo§

créer un raccourci avec un lien sym

cd ~
ln -s . ~/d7/pixelhumain/scripts/gitPull.sh p

puis quand vous voulez tout up , executer

. p

Communication§

Rocket Chat est notre principale outil de communication directe #codev est le channel de dev , il est privé et interne à OPEN ATLAS On y partage les questions, les problème rencontrés, des histoires. C’est l’espace de discussion commune entre tout les devs actifs sur CO.

Chaque projet a son propre channel en fonction des contextes

Scrum Ecrit§

tout les lundi et jeudi matin , tout le monde ecrit son scrum sur le channel #coscrum. On y partage :

  • ce qui a été fait
  • ce qui sera fait

Test unitaire sont en cours§

Processus de déploiement§

DEV§

QA§

PROD§

📜 File 19 - Team/codev.md by @communecter ☆ 📎

Outils pratiques§

si votreCheminVersCO = /var/www/communecter est le chemin vers le dossier contenant pixelhumain et modules

LIGNES DE COMMANDES§

Créer un racourci de travail§

alors à la racine

cd
ln -s cheminVers d

Vous pourrez alors faire des chose comme§

Mettre tout les repository à jour d’un coup§

./d/pixelhumain/scripts/gitPull.sh

Faire un checkout de tout en une ligne§

pour tout mettre sur DEV 
./d/pixelhumain/scripts/gitCheckout.sh development

ou tout mettre sur QA
./d/pixelhumain/scripts/gitCheckout.sh qa

TRAVAILLER , Rafraichir F5§

dans CO, on utilise du JS et on recharge que la partie active grace au hash de l’url Donc plutot que de tjrs recharger toute la page , dans la console (Ctrl+Shift+C) vous pouvez executer

urlCtrl.loadByHash(location.hash)

Créer un racourci RELOAD§

  • Afficher la Barre des favoris, click droit en haut du nav
  • Afficher barre des favoris
  • dessus click droit ajouter une page
    • nom : RELOAD
    • url : javascript:urlCtrl.loadByHash(location.hash)

Vider le cache§

sudo rm -Rf ~/d/pixelhumain/ph/protected/runtime/cache/*

DEUGGUER§

  • Quand ca marche pas, verifier toujours la CONSOLE et NETWORK
  • suivez les pistes des erreurs
  • vous pourriez aussi verfier dans ~/d/pixelhumain/ph/protected/runtime/application.log
  • vous pourriez aussi verfier dans vos logs apache (chez moi /var/log/apache2/error/log)
📜 File en/15 - Team/codev.md by @communecter ☆ 📎

Outils pratiques§

si votreCheminVersCO = /var/www/communecter est le chemin vers le dossier contenant pixelhumain et modules

LIGNES DE COMMANDES§

Créer un racourci de travail§

alors à la racine

cd
ln -s cheminVers d

Vous pourrez alors faire des chose comme§

Mettre tout les repository à jour d’un coup§

./d/pixelhumain/scripts/gitPull.sh

Faire un checkout de tout en une ligne§

pour tout mettre sur DEV 
./d/pixelhumain/scripts/gitCheckout.sh development

ou tout mettre sur QA
./d/pixelhumain/scripts/gitCheckout.sh qa

TRAVAILLER , Rafraichir F5§

dans CO, on utilise du JS et on recharge que la partie active grace au hash de l’url Donc plutot que de tjrs recharger toute la page , dans la console (Ctrl+Shift+C) vous pouvez executer

urlCtrl.loadByHash(location.hash)

Créer un racourci RELOAD§

  • Afficher la Barre des favoris, click droit en haut du nav
  • Afficher barre des favoris
  • dessus click droit ajouter une page
    • nom : RELOAD
    • url : javascript:urlCtrl.loadByHash(location.hash)

Vider le cache§

sudo rm -Rf ~/d/pixelhumain/ph/protected/runtime/cache/*

DEUGGUER§

  • Quand ca marche pas, verifier toujours la CONSOLE et NETWORK
  • suivez les pistes des erreurs
  • vous pourriez aussi verfier dans ~/d/pixelhumain/ph/protected/runtime/application.log
  • vous pourriez aussi verfier dans vos logs apache (chez moi /var/log/apache2/error/log)
📚 Agora node [[counterdev]] (pulled by the Agora)
📜 File Counterdev.md by @agora@botsin.space ☆ 📎
📚 Agora node [[eddev]] (pulled by the Agora)
📜 File EdDev.md by @agora@botsin.space ☆ 📎
📚 Agora node [[facdev]] (pulled by the Agora)
📜 File FacDev.md by @agora@botsin.space ☆ 📎
📚 Agora node [[fedidev]] (pulled by the Agora)
📜 File fediDev.md by @agora@botsin.space ☆ 📎
📜 File FediDev.md by @agora@botsin.space ☆ 📎
📚 Agora node [[game dev]] (pulled by the Agora)
📜 File pages/game-dev.org by @jakeisnt ☆ 📎

Notes on game development.

Good Reads

on making game engines The Doom black book. https://www.reddit.com/r/madeinhaskell/comments/hzwg2b/mallrl_a_grocery_shopping_roguelike_created_in_7/ a grocery shopping roguelike! dwarf fortress extremeistan | thoughts about computer graphics, game engine programming Guy makes a game engine that works in a very different way - videos LÖVE - Free 2D Game Engine Mary Live Codes A JavaScript Game From Scratch – Mary Rose Cook / Front-Tre https://github.com/schlae/scopetrex https://github.com/OpenDiablo2/OpenDiablo2

strange narrative games, good mono font http://jakofranko.github.io/2019/01/30/Post-Mortem-Part-2.html Cardshifter/Cardshifter: A flexible and highly moddable Trading Card Game How I made my CV, based on Age of Empires game - DEV richardanaya/mochi: A simple game engine using Gtk &amp; Cairo mallRL - a grocery shopping roguelike created in 7 days for the 7drl game j http://gamesfromwithin.com/data-oriented-design http://www.sizecoding.org/wiki/Game_of_Life_32b https://alex-hhh.github.io/2020/03/a-game-of-tetris.html wild independent game designer a327ex/BYTEPATH: A replayable arcade shooter with a focus on build theorycr Bundle for Racial Justice and Equality by itch.io and 1361 others - itch.io Rekka &amp; Devine - itch.io https://marian42.itch.io/wfc

Sprites mods - Hard disk hacking - Hooking up JTAG

A sort-middle architecture for 2D graphics | Raph Levien’s blog reverse engineering a gpa game beginning game programmingC and C++

make a game for game boy ez!

framework for making trading card games

http://www.starseedpilgrim.com/, a game about tending to a garden : ' ) https://nathanwentworth.co/projects/writers-flock/, a game in which all players try to write the best story based on other sentences. all these games are cute! famicom-cookbook: A collection of tools and examples for nesdev

TODOgo game that hides all the messy software

you play go like normal and the software adds additional effects in the background this is the perfect divide: not at all obtrusive, and removing the clunky bits a perfect separation for 'makers'

game recs

if found outer wilds kentucky route zero umurangi generation wide ocean big jacket under a star called sun adventures with anxiety! tetris effect (idk either, but it did ha

📚 Agora node [[gamedev]] (pulled by the Agora)
📜 File gamedev.md by @agora@botsin.space ☆ 📎
📜 File GameDev.md by @an_agora@twitter.com ☆ 📎
📜 File GameDev.md by @j0lms@twitter.com ☆ 📎

RT @djlink@mastodon.gamedev.place This website is amazing, linear algebra with interactive examples. Vectors, matrix, dot product, etc, cool resource for learning. #GameDev #Math https://t.co/m256xwkMAv https://t.co/yVwW9wzF76 https://t.co/RYcXjwLtKf


📚 Agora node [[gitcms dev]] (pulled by the Agora)
📜 File bookmarks/sites/gitcms.dev/gitcms.dev.md by @jaysen ☆ 📎 ️🔗
📚 Agora node [[godev]] (pulled by the Agora)
📜 File godev.md by @agora@botsin.space ☆ 📎
📚 Agora node [[indiegamedev]] (pulled by the Agora)
📜 File IndieGameDev.md by @an_agora@twitter.com ☆ 📎
📚 Agora node [[mastodev]] (pulled by the Agora)
📜 File MastoDev.md by @agora@botsin.space ☆ 📎
📜 File mastoDev.md by @agora@botsin.space ☆ 📎
📜 File agora@social.agor.ai/mastodev.md by @mastodon ☆ 📎
📚 Agora node [[rocktchat dev]] (pulled by the Agora)
📜 File 04 - Documentation technique/Installer Communecter/rocktchat-dev.md by @communecter ☆ 📎

installation en local de rocketchat (dev)§

Attention au préalable il faut avoir une installation fonctionnelle de communecter

installation en local pour dev ou test de rocketchat la version modifié pour communecter

  • installation de meteor
  • clone du repo modifier
  • installation des packages npm

cherché la branch update-* la plus avancé

curl https://install.meteor.com/ | sh
git clone https://gitlab.adullact.net/pixelhumain/Rocket-Chat.git
cd Rocket-Chat
git checkout update-3.6.2
meteor npm install

copier dans un fichier > settings-dev.json

{
  "oceco": {
  	"token": "",
  	"endpoint": ""
  },
  "environment": "production",
  "endpoint": "http://localhost:5080",
  "module": "co2",
  "urlimage": "http://localhost:5080",
  "emailAdmin": ""
}

Démmarer le chat localement par meteor sur le port 3000

meteor run --settings settings-dev.json

sur l’installation de communecter dans code/pixelhumain/ph/protected/paramsconfig.php rajouter ou activer

'rocketchatEnabled' => true,
'rocketchatURL' => 'http://192.168.1.25:3000', //rocketchat url avce l'ip
'rocketAdmin' => '', //email admin
'rocketAdminPwd' => '', //password admin
"adminLoginToken" => "", //token
"adminRocketUserId" => "", //userID admin

pour finir la config il te faudra un compte valide sur ton instance docker de co et te connecter avec sur le chat et que dans le settings-dev.json la emailAdmin tu mette l’email en question et apres faudra faire un appel pour recup le token admin de ce compte sur rocketchat

curl -H "Content-type:application/json" \
      http://localhost:3000/api/v1/login \
      -d '{ "email": "TON_emailAdmin", "password": "TON_PASSWORD" }'

et récupérer userId et authToken dans le retour et renseigner adminLoginToken et adminRocketUserId avec

dans la config admin rocketchat dans > Général > Intégration iframe

  • il faut activer l’envoi
  • envoyer la cible d’origine : *
  • il faut activer la reception
📜 File en/04 - Documentation technique/Installer Communecter/rocktchat-dev.md by @communecter ☆ 📎

installation en local de rocketchat (dev)§

Attention au préalable il faut avoir une installation fonctionnelle de communecter

installation en local pour dev ou test de rocketchat la version modifié pour communecter

  • installation de meteor
  • clone du repo modifier
  • installation des packages npm

cherché la branch update-* la plus avancé

curl https://install.meteor.com/ | sh
git clone https://gitlab.adullact.net/pixelhumain/Rocket-Chat.git
cd Rocket-Chat
git checkout update-3.6.2
meteor npm install

copier dans un fichier > settings-dev.json

{
  "oceco": {
  	"token": "",
  	"endpoint": ""
  },
  "environment": "production",
  "endpoint": "http://localhost:5080",
  "module": "co2",
  "urlimage": "http://localhost:5080",
  "emailAdmin": ""
}

Démmarer le chat localement par meteor sur le port 3000

meteor run --settings settings-dev.json

sur l’installation de communecter dans code/pixelhumain/ph/protected/paramsconfig.php rajouter ou activer

'rocketchatEnabled' => true,
'rocketchatURL' => 'http://192.168.1.25:3000', //rocketchat url avce l'ip
'rocketAdmin' => '', //email admin
'rocketAdminPwd' => '', //password admin
"adminLoginToken" => "", //token
"adminRocketUserId" => "", //userID admin

pour finir la config il te faudra un compte valide sur ton instance docker de co et te connecter avec sur le chat et que dans le settings-dev.json la emailAdmin tu mette l’email en question et apres faudra faire un appel pour recup le token admin de ce compte sur rocketchat

curl -H "Content-type:application/json" \
      http://localhost:3000/api/v1/login \
      -d '{ "email": "TON_emailAdmin", "password": "TON_PASSWORD" }'

et récupérer userId et authToken dans le retour et renseigner adminLoginToken et adminRocketUserId avec

dans la config admin rocketchat dans > Général > Intégration iframe

  • il faut activer l’envoi
  • envoyer la cible d’origine : *
  • il faut activer la reception
📚 Agora node [[wasi dev]] (pulled by the Agora)
📜 File wiki/Computer-Science/Software Dev/WASI.dev.md by @jaysen ☆ 📎 ️🔗

The WebAssembly System Interface (WASI) is a group of standards-track API specifications for software compiled to the W3C WebAssembly (Wasm) standard. WASI is designed to provide a secure standard interface for applications that can be compiled to Wasm from any language, and that may run anywhere, from browsers to clouds to embedded devices.

By standardizing APIs for WebAssembly, WASI provides a way to compose software written in different languages without costly and clunky interface systems like HTTP-based microservices. We believe that every project with a plugin model should be using WASI, and that WASI is ideally suited for projects with SDs for multiple languages, e.g. client libraries.

see WASM

📚 Agora node [[webdev]] (pulled by the Agora)
📜 File programming/webdev.md by @karlicoss ☆ 📎

Table of Contents§

related [[programming]] [[js]] [[css]] [[html]]§

TODO weird. why didn’t this work? #js #css #html etc

CSS [[css]]§

[2019-11-11] A Complete Guide to Flexbox | CSS-Tricks§

https://css-tricks.com/snippets/css/a-guide-to-flexbox

[2019-10-27] <pre> tag respects newlines [[html]]§

[2019-08-28] Managing HTML5 Offline Storage - Google Chrome https://developer.chrome.com/apps/offline_storage#temporary§

Each app can have up to 20% of the shared pool. As an example, if the total available disk space is 60 GB, the shared pool is 20 GB, and the app can have up to 4 GB. This is calculated from 20% (up to 4 GB) of 1/3 (up to 20 GB) of the available disk space (60 GB).

[2020-01-30] microsoft/playwright: Node library to automate Chromium, Firefox and WebKit with a single API [[testing]]§

https://github.com/microsoft/playwright

Puppeteer is a Node library which provides a high-level API to control Chrome or Chromium over the DevTools Protocol. Puppeteer project is active and is maintained by Google.

[2020-01-30] microsoft/playwright: Node library to automate Chromium, Firefox and WebKit with a single API§

https://github.com/microsoft/playwright

[capabilities] With Playwright, we aim at providing a more capable driver, including support for mobile viewports, touch, web & service workers, geolocation, csp, cookie policies, permissions, accessibility, etc.

[2019-07-20] Responsive Design Mode - Firefox Developer Tools | MDN§

https://developer.mozilla.org/en-US/docs/Tools/Responsive_Design_Mode

[2019-08-18] dypsilon/frontend-dev-bookmarks: Manually curated collection of resources for frontend web developers.§

https://github.com/dypsilon/frontend-dev-bookmarks#readme

Workflow
Task automation and asset delivery.

Firefox devtools color vision deficiency§

[2020-08-25] Will It CORS? [[cors]]§

[2020-02-16] (8) 🔎Julia Evans🔍 on Twitter: "CORS https://t.co/uSrLqGIWR0" / Twitter [[cors]]§

<https://twitter.com/b0rk/status/1162392625057583104 >

These include DOM mutation breakpoints and inactive CSS rule indicators in the DevTools, several new CSS text properties, two-value display syntax, and JS numeric separators.§

Firefox 70 — a bountiful release for all – Mozilla Hacks - the Web developer blog
in context

[2019-12-16] What are the pros and cons of using flexbox? - Quora [[css]]§

https://www.quora.com/What-are-the-pros-and-cons-of-using-flexbox

The pros are plentiful.
It makes things like space allocation a lot simpler and far fewer lines of code.
Unfortunately, not all browsers can identify and correctly interpret flexbox. Give it a few more years for (mostly) mobile browsers to catchup.

[2020-04-07] Firefox 75 for developers - Mozilla | MDN§

https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/75

In the inspector, you can now use XPath expressions to locate elements, in addition to locating elements using CSS selectors as before (bug 963933).

[2019-02-28] Is there a CSS selector for elements containing certain text? - Stack Overflow [[css]]§

https://stackoverflow.com/questions/1520429/is-there-a-css-selector-for-elements-containing-certain-text

[2019-03-12] apparently no…§

[2019-11-17] to deal with cors issues (e.g. querying for external scripts for local html page) [[cors]]§

python’s simplehttpserver doesn’t work§

http-server -p 8000 –cors§

also navigate to 127.0.0.1:8000. That’s IMPORTANT! Apparently Cors header is hardcoded and it contains ip address

[2019-11-10] html - Difference between DIV as-is and a SPAN with display:block - Stack Overflow§

https://stackoverflow.com/questions/1142104/difference-between-div-as-is-and-a-span-with-displayblock

A <div> is a block level element that has no specific semantics of its own, beyond defining a discrete block of content. A <span> is an inline element that has no specific semantics of its own, beyond defining a discrete segment of inline content.

[2019-09-30] javascript - CORS request blocked in locally opened html - Stack Overflow [[cors]] [[webdev]]§

https://stackoverflow.com/questions/48362093/cors-request-blocked-in-locally-opened-html

You can tell your browser to allow to connect from localhost to a backend if you change your backend to return the following header:
access-control-allow-origin: https://localhost:8888
And, you also need to tell your localhost server to serve your page in HTTPS instead of HTTP. Once both conditions are met, CORS validations won't fail.

[2019-11-10] localStorage can be used on client side to preserve state (no need to use cookies!) [[webdev]]§

apparently not many people know CSS has variables [[css]]§

[2021-01-24] Incomplete List of Mistakes in the Design of CSS CSS Working Group Wiki [[css]]§

[2020-01-29] Use and Reuse Everything in SVG; Even Animations | Lobsters https://lobste.rs/s/pd1ccu/use_reuse_everything_svg_even_animations§

[2019-07-06] Stop using so many divs! An intro to semantic HTML - DEV Community 👩‍💻👨‍💻§

https://dev.to/kenbellows/stop-using-so-many-divs-an-intro-to-semantic-html-3i9i

[2020-12-12] Periodic table of the web’s APIs [[web]]§

http://wwwperiodictable.surge.sh/?hn5

📜 File webdev.md by @patterning ☆ 📎

linking to [[testing]] because there were no links between nodes

📜 File stoa-test-2/webdev.md by @agora ☆ 📎

linking to [[testing]] because there were no links between nodes

📜 File stoa-test/webdev.md by @agora ☆ 📎

linking to [[testing]] because there were no links between nodes

📜 File webdev.md by @anonymous@doc.anagora.org ☆ 📎 ✍️

linking to [[testing]] because there were no links between nodes

📜 File webdev.md by @agora@botsin.space ☆ 📎
📜 File WebDev.md by @agora@botsin.space ☆ 📎
📜 File webDev.md by @agora@botsin.space ☆ 📎