Bu’uura beekumsaa Koodii
Sareevee (server) irratti koodii fiigsuu
Yeroo koodiin dandeettii meeshaa keetii ol barbaadu — afaan biraa, paakajiiwwan interneetii irraa dhufan, yeroo dabalataa — Nymbot koodicha saayivariira mataa isaa irratti, koonteenarrii qophaa'eef qofa ta'e keessatti hojiirra oolchuu danda'a.
Fuulli kun akka mijatutti maashiniin kan hiikamedha. Orijinaalli Ingiliffaa kan ilaallatudha.
Serveriin maali?
Serverii tokko tokko kontayinerersa haaraa jalqaba, koodii kee keessatti kaa'a, hojiirra kenna, waan isaan print godhan deebisee erga, achiis kontayinerersa sana balleessa. Hojii sana jalqabuun dura gatii inni kaffaluu danda'u guddaa argatta, fi [kan] keetiin kaffalta. Baasii Pro yeroo dhugumaatiin tajaajileef.
Karaawwan lama kan seenan: Sareeerii irratti fiigi koodii blokii irratti, fi serverri sun hojjechuuf Nymbot gaafatu keessa hojjetu kuusaa.
Python ykn JavaScript saffisa qabu kan wanta tokko internetii irraa hin barbaadneef, kan bilisaa sandbox meeshaa meeshaa kee irratti yeroo baay'ee ga'aa dha.
Koodii blokii hojjechuu
Kutaa koodii Python, JavaScript, TypeScript, shell, Go, Rust, Java fi Dart deebii keessatti qabu... Sareeerii irratti fiigi yeroo serverii hojjetu hundi batiiniin (button) ni argama. Innis waraqaa (sheet) kan armaan gadii agarsiisu bana:
- da fakkii koodiin irratti hojjeta,
- yeroo murteessuuf: daqiiqaa 1, 5 ykn 15,
- gatiin hordoffii sun hunda caalu, kirediitii Pro-tiin, yeroo murtaa'aa sanaaf,
- akkasumas, yoo chat-iin faayilaataa qabaate, bakka isaan itti dabalaman. Isaan deeman yoo ati mallatteessite qofa.
Tuqi Fiigadhu akkiis dhufe koodii jalaan dhangala'aa (stream) ta'ee dhufe: maaliif dhiyeeffame, koodii ba'ii (exit code), hammam yoo ture ture, faayiloota barreeffaman (kamiyyuu kan...) Olkaachiisi button), fi maallaqa kam akka kaffaltan.
Dhaabi yeroo kamiyyuu fiigichaa dhaaba. Serveriin battaluma sana cufama, ati immoo yeroo fiigee qofa kaffalta. Serveriin hin eegaluin dura yoo dhaabame, kaffaltiin hin jiru.
Tokko keessatti Moodii Anonymoosii Chat: hojiin kaffaltii kreditii Pro kii'ii yeroo gabaabaaf fayyadamnuu irraan kaffalama, fiiloonni wal qabsiifamanis yoomiyyuu hin dabalaman.
Afaanota fi fakkiiwwan
Afaan kumni imaajii (image) tokko irratti hojjeta, kunis sirna meeshaalee afaan sun barbaaduun qophaa'e dha. Imaajin gurguddoon serveerii gurguddoo irratti hojjeta, minitaatti ammoo kaffaltiin isaa baay'ee guddaadha.
| Fakkii | Kanuuf tajaajila | Maal qaba? | Siriivara |
|---|---|---|---|
| Piison | Piison | Python 3.12 pip, venv, meeshaalee ijaarsaa fi git waliin; numpy, pandas fi pytest duraan dursee fe'amaniiru | 0.5 CPU, 4 GB yaadannoo |
| Node.js | JavaScript, TypeScript | Node.js 22 wajjin npm, pnpm fi yarn, dabalataan Python 3, make fi C++ compiler | 0.5 CPU, 4 GB yaadannoo |
| Afaanota hedduu dubbattu | Shell, Go, Rust, Java | bash, meeshaalee ijaarsaa C fi C++, Python 3, Node.js, Go, Rust waliin cargo, fi Java 17 | 1 CPU, 6 GB maamilaa |
| Flutter | Dart | Flutter 3.32 fi Dart | 2 CPU, 8 GB maashinii |
Gatiin isaa meeqa?
Yeroon serveerii kaffaltii sekondii 10ffaa irratti hundaa'uun, serveerii gaafachuu irraa eegalee dhaabuu isaatti tilmaamama, sagantaan tokko sekondii 10a caalaa hin kaffalu. Gatii isaa immoo gatiin serveerii guddina sanaa Nymbot, dabalata (margin) qabu, gatii Bitcoin ammaa irratti hundaa'uun Pro creditsitti jijjiirame dha.
- Gatiin duratti akka gatii guddaa ta'etti ni mul'ata. Yeroon guutuun sagantaa sana irratti hundaa'a. Kaffaltiin kee yoomiyyuu kan dabalataa hin ta'u, fi deema yeroo xiqqaan xumuramu immoo kaffaltiin isaa xiqqaa dha.
- Yeroo hordoffiin deemu, hamma guddaan ni qabama. Yeroo itti xumuramu, kaffaltiin dhugaa fudhatama, kaan isaa immoo siif dhiifama.
- Hojiin jalqabuu dadhabe bilisa dha.
- Limitii baasii hojiirra oola. Imala dubbii tokkoo ol deemuu danda'u daangaa baasii dursa gaafata, akka deebii kanaanis.
Sababa gatiin Bitcoin hordofamuuf, yeroo ati arguufi yeroo ati 'Run' tuqu gidduutti jijjiiramuu danda'a. Yoo ol ka'e, waan tokkoyyuu hin hojjetu: sheetii gatii haaraa qabuun deebisee siif banama akka ati mirkaneeffattuuf.
Server-ichi repoositorii keessatti hojjeta
Mariidhaan [nama] tokko waliin kuusaa walitti hidhame, kan Serverii hojjeta Chip'n Nymbot akka koodii kee irratti ajajoonni akka hojjetaman gaafachuu dandeessisu, kan akka dependencies fe'uu fi jijjiiramni booda testii gaggeessuu. Akka dubbiitti, hanga ati on goottu cufama.
Yeroo hunda moodeelli tokko waan tokko hojiirra oolchuu barbaadu, deebiin ni dhaabbata, kaardii fakkii qabu, ajaja guutuu, yeroo dhuunfatuu fi gatii guddaa inni kaffaluu danda'u agarsiisa, akkasumas waltajjii (repository) chatichaan baay'ee yoo jiraatu agarsiisa. Hojiin tokkoyyuu deebii ati kennutti hin eegalu:
- Yeroo tokko hayyamu komandii sana tokko hojiirra kenna. Komandichi kutaalee (repository) deebiin (reply) hanga ammaatti jijjiirame irratti hojiirra kennamee jira, modelichi immoo koodii xumuraa (exit code), xumura bu'aa (output) fi tarree fakkileewwan komandichi jijjiire sana argata. Sana booda, deebiin itti fufa.
- Dhiisi waan tokko hin hojjetu fi waan tokko hin kaffaltu. Deebiin isaa malee itti fufa.
Imalli hunda gaaffii gaafatu. Hundi isaanii deebii irraa addatti kaffalamu, deebiin immoo imallawwan raawwataman fi kaffaltii isaan tokkoon tokkoonitti meeqa akka ta'an tarreessa. Yoo imalli tokko wacaichaa keessa... daangaa baasii, gaaffii si gaafatin dura ni fudhatama.
Faayiloota ajaja (command) serwerii irratti jijjiiran sana achiitti hafu, konteenerii waliin immoo gadi dhiisamu. Isaan repoositirii keessan irratti hin barreeffaman. Jijjiiramni repoositirii irratti ta’u kan dhufu immoo editiingii (edits) repoositirii ofii irraayuu qofa.
Maaltu addaan citame?
- Yeroo hundaaf kuusaa haaraa. Wanti tokkollee immoo deebii biroo ykn nama biraaf hin qoodamu, akkasumas konteeenerri yeroo deebii sun xumuramu, milkaa'uu isaa ykn dadhabuu isaa irratti hundaa'uun diigama.
- Lakkii interneetii dabalata registreetiin paakkajii malee. Konteenerri bakka paakkajiiwwan itti dhufan irraa buufachuu danda'a: PyPI, npm fi yarn, pub.dev fi kuusaa Google kan Flutter fi Dart tiif, Go module proxy, crates.io, Maven Central, fi GitHub kan dependencies git fi bu'aa (release) buusuufi. Inni buufachuu qofa danda'a. Isaanitti waan tokko erguu ykn gara teessuma biraatti deemuu hin danda'u.
- Kan ati filatte qofa keessa gala. Koodii, faayilloota ati dabaltan, yookaan faayilloota repoositirii. Kiiidiiwwan keessan, tookenii git keessan fi haasawa keessan yoomiyyuu konteenara keessa hin seenan.
- Bu'aan akka waan amanamaa hin taaneetti ilaalama. Bakka kuusaa (repository) keessatti, waan run tokko maxxansu sun moodeela irratti akka dataa alaatti mallatteeffamee agarsiifama, akkasumas itti himama akka xumurraan itti hin hordofne.
Daangaa
- Bakka tokkoaf (key) yeroo tokkoo server tokko qofa hojjata. Kan jalqabaa yeroo hojjetu kan lammaffaa jalqabuu dhorkama.
- Kutaan koodii tokkoof daqiiqaa 1, 5 ykn 15 murtaa'edha. Hojiin repoositorii daqiiqaa 15 hanga gaafachuu danda'a, fakkii (image) Flutter irratti immoo daqiiqaa 20.
- Koodii hanga 1 MB, fi fayiloota walitti qabaman hanga 200 walii gallee hanga 20 MB.
- Kuusaa hamma 60 MB ta'u, kan qophaa'e.
- Hamma 256 KB qofa. Sana caala'u hundi gadi dhihaata, fi ergaan immoo akkas jedha.
- Faayila hanga 200, walumaagala 8 MB, kuusuuf deebisanii kennamu.
Hojiwwan serveerii fooyya'iinsaaf guutummaatti yookaan fakkii tokko tokkoon dhaamfuu danda'u. Yeroo isaan dhaabbatan, ... Sareeerii irratti fiigi Batoonii fi chippiin hin mul'atan.
Marsaa Hojiiwwan
Chatii kuusaa keessatti, badhan'iin liistii-mirkaneessaa chatichaa olitti argamu ishee... Hojiiwwan pane. Inni wantoota adeemsi tokko tokko raawwate tarreessee dhiyeessa, kan haaraa jalqaba: fayiilota inni dubbise fi sirreese, commits, jijjiiramaalee qorannaa keetiif qophaa'an, fi adeemsi serverii hundi ajaja (command), fakkii (image), yeroo, gatii fi haala xumuraa (exit status) isaanii waliin. Adeemsi serverii hayyama kee eeggatu pane keessaa ykn kaardii isaatiin kan fudhatamu ykn kan didamu ta'uu danda'a, deebiin adeemsa jiru immoo achumatti dhaabamuu danda'a. Gabaasni (outline) hojiin xumuramee booda chat waliin hafa.