Php dasturlash tilida real hodisalarga asoslangan o'yin yaratish:
https://www.youtube.com/watch?v=JaGFFu-flS0
https://diary.manu.uz/guides/php-dasturlash-tilida-oyin-yaratish
https://www.youtube.com/watch?v=JaGFFu-flS0
https://diary.manu.uz/guides/php-dasturlash-tilida-oyin-yaratish
🔥4👍1
Linux foydalanuvchilari ko'p duch keladigan muammolardan biri bu wifi orqali ulanishda nostabilliklar kuzatilishi. Ya'ni ba'zan tarmoqdan uzilib qolishadi, boshqa holatda esa internet haddan tashqari sekin ishlaydi.
Ho'sh yechim qanday?
Bunday vaziyatda odatda ko'pchilik power management usulidan foydalanadi. Ya'ni
Lekin hammamiz ham e'tibor qaratmaydigan yana bir yechim bor, bu
Aynan shu faylning kontentida hostlar (tarmoq manzillari) uchun quyidagicha konfiguratsiya mavjud:
Multicast DNS kichik lokal tarmoqlarda host nomlarini ip manzillarga almashtirish vazifasini bajaradi. Aynan shu qism operatsion tizim bilan birgalikda oldindan kelgani sababli biz biror bir host nomi(domen)ga murojaat qilganimizda dns so'rovlar ikki marotaba tekshiriladi, bu esa o'z navbatida ulanishlarda kechikishga olib keladi.
@uzinfocom_oss
Ho'sh yechim qanday?
Bunday vaziyatda odatda ko'pchilik power management usulidan foydalanadi. Ya'ni
/etc/NetworkManager/conf.d/default-wifi-powersave-on.conf faylidan wifi.powersave = 3 bandini = 2 ga o'zgartiradi. Lekin hammamiz ham e'tibor qaratmaydigan yana bir yechim bor, bu
/etc/nsswitch.conf (Name Service Switch) konfiguratsion fayli. Ushbu fayl GNU tizimida provayderlar o'rtasida qanday va qay tarzda ma'lumot almashish kerakligini ko'rsatadi. Ushbu fayldan xost nomini, parolni qidirish va hokazolar uchun qaysi xizmatlardan foydalanish kerakligini sozlashda foydalanish mumkin.Aynan shu faylning kontentida hostlar (tarmoq manzillari) uchun quyidagicha konfiguratsiya mavjud:
hosts: files mdns4_minimal [NOTFOUND=return] dnsBizdan talab etiladigani ushbu qismdan mdns4_minimal blokini olib tashlash hisoblanadi. Shunda qatorni quyidagi ko'rinishda saqlaymiz:
hosts: files dns"mdns4_minimal" qismi qanday vazifani bajaradi?
Multicast DNS kichik lokal tarmoqlarda host nomlarini ip manzillarga almashtirish vazifasini bajaradi. Aynan shu qism operatsion tizim bilan birgalikda oldindan kelgani sababli biz biror bir host nomi(domen)ga murojaat qilganimizda dns so'rovlar ikki marotaba tekshiriladi, bu esa o'z navbatida ulanishlarda kechikishga olib keladi.
@uzinfocom_oss
👍5
Turli formatdagi sanalarni validatsiya qilish uchun regexlar. 30 va 31 kunlik oylarni ham tekshira olish xususiyatida ega. Shuningdek fevral oyi uchun kabisa yillar ham inobatga olingan.
https://gist.github.com/yetimdasturchi/b74e1e5e421f9156279b8220d1179fc7
@uzinfocom_oss
https://gist.github.com/yetimdasturchi/b74e1e5e421f9156279b8220d1179fc7
@uzinfocom_oss
👍9
Nginxda ichki redireksiya yoxud katta stream servisda havolalarni tekshirish qanday amalga oshirilgan edi?
👉 https://diary.manu.uz/blog/nginxda-ichki-redireksiya-yoxud-katta-stream-servisda-havolalarni-tekshirish-qanday-amalga-oshirilgan-edi.htm
P.S: Juda ko'plab dasturchilar dinamika orqali fayllarni uzatishda yo'l tutadigan xatolikka yechim izlaymiz
@uzinfocom_oss
👉 https://diary.manu.uz/blog/nginxda-ichki-redireksiya-yoxud-katta-stream-servisda-havolalarni-tekshirish-qanday-amalga-oshirilgan-edi.htm
P.S: Juda ko'plab dasturchilar dinamika orqali fayllarni uzatishda yo'l tutadigan xatolikka yechim izlaymiz
@uzinfocom_oss
👍2
Mysqlga juniorcha va seniorcha so'rovlar
https://diary.manu.uz/blog/mysqlga-juniorcha-va-seniorcha-sorovlar.htm
@uzinfocom_oss
https://diary.manu.uz/blog/mysqlga-juniorcha-va-seniorcha-sorovlar.htm
@uzinfocom_oss
😁15👍1
Miner - hozirda ko'pchilik duch kelyapti serverlarda. Bu asosan turli paketlar orqali kelayotgan zararli dastur hisoblanadi. Uning asosiy vazifasi server resurslaridan foydalangan holda kriptovalyuta ishlab chiqish.
Aniqlash: odatiy top yoki htop orqali tasklarni ko'rganingizda kswapd0 ning cpu resurslaridan foydalanayotganini ko'rishingiz mumkin. Uni haqqiy swapdan ajratish yo'li oson. Agarda sizda ram va swapda yetarlicha joy bo'lsa demak bu virus.
Yechim:
kswapd0 fayli diskdan qidiraladi.
Qidiruv taxminan quyidagicha natija berishi kerak:
Demak aniq miner bor. Keyingi jarayonda kswapd0 qaysi userdan ishga tushayotganini aniqlab shu userdagi tasklarni o'chirish kerak:
Keyin virusni o'zini:
Virus qaytalanmasligi uchun ssh kalitlarni yoki parollarni yangilang. O'rnatilgan paketlarni tozalang. Bu asosan ngrok yoki ssh orqali ulanishi mumkib bo'lgan turli linux paketlardan keladi.
Aniqlash: odatiy top yoki htop orqali tasklarni ko'rganingizda kswapd0 ning cpu resurslaridan foydalanayotganini ko'rishingiz mumkin. Uni haqqiy swapdan ajratish yo'li oson. Agarda sizda ram va swapda yetarlicha joy bo'lsa demak bu virus.
Yechim:
kswapd0 fayli diskdan qidiraladi.
sudo find / -f kswapd0
Qidiruv taxminan quyidagicha natija berishi kerak:
/var/www/html/.configrc5/a/kswapd0
Demak aniq miner bor. Keyingi jarayonda kswapd0 qaysi userdan ishga tushayotganini aniqlab shu userdagi tasklarni o'chirish kerak:
sudo killall -u user
Keyin virusni o'zini:
sudo rm -rf /var/www/html/.configrc5
Virus qaytalanmasligi uchun ssh kalitlarni yoki parollarni yangilang. O'rnatilgan paketlarni tozalang. Bu asosan ngrok yoki ssh orqali ulanishi mumkib bo'lgan turli linux paketlardan keladi.
👍12❤1
Fonetik algoritmlardan biri bo'lgan metaphonening c versiyasi.
Metaphone asosan soundex analogi sifatida tovushlarni aniqlash uchun foydalaniladi.
https://github.com/yetimdasturchi/c-metaphone/
@uzinfocom_oss
Metaphone asosan soundex analogi sifatida tovushlarni aniqlash uchun foydalaniladi.
https://github.com/yetimdasturchi/c-metaphone/
@uzinfocom_oss
👍3❤1
Vaqt o’tar, suvlar oqar…
Ha do’stlar, mana qariyb oxirgi marta sizlar bilan biron ma’lumot bo’lishganimizga anchagina vaqtlar o’tibdi, naxt 1 yil-u, 4 oylar chamasi. Shu vaqt davomida juda-juda ko’p narsalar o’zgarib ketdi, safimizga kimlardir qo’shildi, kimlarnidir yo’qotdik. Loyihalarimiz ko’paydi, ba’zilarini esa tinchgina bildirmay yopib ko’mvordik. Ushbu kanal bir necha guruhlar qo’lidan qo’liga o’tiblar keldi, bir necha odamlar qo’lidan qo’liga uzatildi. Ushbu maqolamiz yozishimizdan asosiy maqsad, bu bizning 3 yillik kurashlarimiz tamom bo’lgani, va bundan narog’iga o'zimiz xohlaganimizday, intilganimizday, rasmiy tarzda Uzinfocom kompaniyasi nomidan Open Source departamenti sifatida faoliyat yuritish boshlaganimiz e’lon qilishdir. Hozirda, jamoa yaqin orada yig’ilgani va boshlang’ich bosqichda bo’lganligimiz sabab, juda ko’plab o’zgarishlar kiritilmoqda, va hamda, shu jumladan tiklanishlar ham olib borilmoqda, ham ruxan, ham jismonan. Tez kunda sizlar bilan o’z izlanish va bilimlarimiz, qilgan barcha dasturchilar uchun foydali va qiziq loyihalarimiz bilan ulashish damlarimizni intiqib kutmoqdamiz va har kuni shu maqsad sari qadam qo’ymoqdamiz.
Biz endi boshlamoqdamiz do’stlar, hammasi oldinda, faqat bizlarga ishonch ila qo’llab quvvatlasangiz bo’lgani!
Ha do’stlar, mana qariyb oxirgi marta sizlar bilan biron ma’lumot bo’lishganimizga anchagina vaqtlar o’tibdi, naxt 1 yil-u, 4 oylar chamasi. Shu vaqt davomida juda-juda ko’p narsalar o’zgarib ketdi, safimizga kimlardir qo’shildi, kimlarnidir yo’qotdik. Loyihalarimiz ko’paydi, ba’zilarini esa tinchgina bildirmay yopib ko’mvordik. Ushbu kanal bir necha guruhlar qo’lidan qo’liga o’tiblar keldi, bir necha odamlar qo’lidan qo’liga uzatildi. Ushbu maqolamiz yozishimizdan asosiy maqsad, bu bizning 3 yillik kurashlarimiz tamom bo’lgani, va bundan narog’iga o'zimiz xohlaganimizday, intilganimizday, rasmiy tarzda Uzinfocom kompaniyasi nomidan Open Source departamenti sifatida faoliyat yuritish boshlaganimiz e’lon qilishdir. Hozirda, jamoa yaqin orada yig’ilgani va boshlang’ich bosqichda bo’lganligimiz sabab, juda ko’plab o’zgarishlar kiritilmoqda, va hamda, shu jumladan tiklanishlar ham olib borilmoqda, ham ruxan, ham jismonan. Tez kunda sizlar bilan o’z izlanish va bilimlarimiz, qilgan barcha dasturchilar uchun foydali va qiziq loyihalarimiz bilan ulashish damlarimizni intiqib kutmoqdamiz va har kuni shu maqsad sari qadam qo’ymoqdamiz.
Biz endi boshlamoqdamiz do’stlar, hammasi oldinda, faqat bizlarga ishonch ila qo’llab quvvatlasangiz bo’lgani!
👏16🔥10🍾4❤2👍2
Uzinfocom Open Source pinned «Vaqt o’tar, suvlar oqar… Ha do’stlar, mana qariyb oxirgi marta sizlar bilan biron ma’lumot bo’lishganimizga anchagina vaqtlar o’tibdi, naxt 1 yil-u, 4 oylar chamasi. Shu vaqt davomida juda-juda ko’p narsalar o’zgarib ketdi, safimizga kimlardir qo’shildi,…»
Bizning tanlovimiz!
Va'da qilganimizday, bizning jamoamiz qilgan tanlovlar haqida ba'tafsil va texnik tushuntirilgan maqola o'z shaxsiy sahifamizda chop etdik. Yaqin orada yanada ko'proq maqolalar chop etish niyatida hozirda ko'plab mavzular borasida yozib bormoqdamiz. Ko'proq material va maqolalar uchun bizni kuzatib boring!
https://oss.uzinfocom.uz/blog/bizning-tanlovimiz
Va'da qilganimizday, bizning jamoamiz qilgan tanlovlar haqida ba'tafsil va texnik tushuntirilgan maqola o'z shaxsiy sahifamizda chop etdik. Yaqin orada yanada ko'proq maqolalar chop etish niyatida hozirda ko'plab mavzular borasida yozib bormoqdamiz. Ko'proq material va maqolalar uchun bizni kuzatib boring!
https://oss.uzinfocom.uz/blog/bizning-tanlovimiz
🔥6👍2⚡1
Odatda VS Code, Zed yoki boshqa foydalanuvchilarga yoʻnaltirilgan dasturlar sozlamalari json, toml, yoki yaml formatlarida boʻladi. Agar biz bu sozlamalarni Nix tilida deklarativ tarzda yozmoqchi boʻlsak, u holda ushbu formatdagi maʼlumotlarni Nix sintaksisiga moslab yozishimizga toʻgʻri keladi.
Masalan, VS Code sozlamalarini NixOS orqali deklarativ ko‘rinishda yozmoqchi bo‘lsak, kerakli parametrlar va kengaytmalarni nixos-options va home-manager saytidan topamiz va quyidagidek yozamiz:
Ammo bu sozlamalar sizda allaqachon settings.json faylida mavjud bo‘lsa, ularni Nix formatiga qo‘lda o‘girish biroz vaqt talab qilishi mumkin. Masalan:
bu ko‘rinishni Nix formatiga quyidagicha o‘zgartirish kerak bo‘ladi:
Yaʼni
Shu kabi holatlar uchun biz maxsus asbob ishlab chiqdik va sizlar uni xinux.uz/utils orqali ishlatishingiz mumkin. Ayniqsa, settings.json faylini Nix formatiga avtomatik aylantirib beruvchi qulay konvertor bu jarayonni ancha tezlashtiradi.
Masalan, VS Code sozlamalarini NixOS orqali deklarativ ko‘rinishda yozmoqchi bo‘lsak, kerakli parametrlar va kengaytmalarni nixos-options va home-manager saytidan topamiz va quyidagidek yozamiz:
programs.vscode = {
enable = true;
profiles.default = {
extensions = with pkgs.vscode-extensions; [
dracula-theme.theme-dracula
yzhang.markdown-all-in-one
];
userSettings = {
"files.autoSave" = "afterDelay";
"[nix]"."editor.tabSize" = 2;
};
};
};
Ammo bu sozlamalar sizda allaqachon settings.json faylida mavjud bo‘lsa, ularni Nix formatiga qo‘lda o‘girish biroz vaqt talab qilishi mumkin. Masalan:
"files.autoSave": "afterDelay"
bu ko‘rinishni Nix formatiga quyidagicha o‘zgartirish kerak bo‘ladi:
"files.autoSave" = "afterDelay";
Yaʼni
: belgisi o‘rniga = qo‘yiladi va qator oxiriga ; belgisi qo‘shiladi. Bu oddiydek tuyulsa-da, agar sozlamalar juda ko‘p bo‘lsa, qo‘lda o‘girish ancha vaqt oladi.Shu kabi holatlar uchun biz maxsus asbob ishlab chiqdik va sizlar uni xinux.uz/utils orqali ishlatishingiz mumkin. Ayniqsa, settings.json faylini Nix formatiga avtomatik aylantirib beruvchi qulay konvertor bu jarayonni ancha tezlashtiradi.
🔥11😁4❤1💔1🆒1
Uzinfocom Open Source departamenti ochiq manba loyihalarni rivojlantirib, o‘zbek dasturchilar jamiyatiga hissa qo‘shib kelmoqda.
Endilikda biz Floss O‘zbekiston hamjamiyatiga qo‘shildik — bu orqali standartlashuv jarayonlarida faol ishtirok etamiz va kuchlarni birlashtiramiz.
Ichki siyosat va tuzilma GitHub sahifamizda ochiqladik: .github-private → .github repozitoriyga CI orqali yangilanadi.
Maqsad: ochiq texnologiyalarni rivojlantirish va jamiyat bilan shaffof hamkorlik.
Ba'tafsil bizning maqolamizda o'qishingiz mumkin:
https://oss.uzinfocom.uz/blog/biz-va-dasturchilar-jamiyati
Endilikda biz Floss O‘zbekiston hamjamiyatiga qo‘shildik — bu orqali standartlashuv jarayonlarida faol ishtirok etamiz va kuchlarni birlashtiramiz.
Ichki siyosat va tuzilma GitHub sahifamizda ochiqladik: .github-private → .github repozitoriyga CI orqali yangilanadi.
Maqsad: ochiq texnologiyalarni rivojlantirish va jamiyat bilan shaffof hamkorlik.
Ba'tafsil bizning maqolamizda o'qishingiz mumkin:
https://oss.uzinfocom.uz/blog/biz-va-dasturchilar-jamiyati
🔥8❤1👍1
E-IMZO Manager — bu E-IMZO raqamli imzo servisidagi shaxsiy kalitlaringizni boshqaruvchi qulay dastur.
E-IMZO Manager orqali siz:
• .pfx kengaytmadagi kalitlarni qo‘shish va o‘chirish,
• Imzo amal qilish muddatini ko‘rish,
• Fonda ishlaydigan E-IMZO servisini kerakli vaqtda yoqib/o‘chirish,
• Raqamli imzo orqali ro‘yxatdan o‘tish mumkin bo‘lgan barcha veb-saytlar ro‘yxatini ko‘rish imkoniyatiga ega bo‘lasiz.
Dastur ochiq manbali bo‘lib, GitHub sahifasida joylashgan va Uzinfocom OSS dasturchilari ishlab chiqqan.
Xinux operatsion tizimi o‘rnatilganda E-IMZO Manager avtomatik tarzda standart dastur bo‘lib keladi.
Agar siz NixOS foydalanuvchisi bo‘lsangiz, konfiguratsiyangizga quyidagilarni qo‘shishingiz kifoya:
Foydali va ochiq dastur — raqamli imzoni boshqarish endi yanada oson!
#EIMZO #Xinux #OpenSource #NixOS
E-IMZO Manager orqali siz:
• .pfx kengaytmadagi kalitlarni qo‘shish va o‘chirish,
• Imzo amal qilish muddatini ko‘rish,
• Fonda ishlaydigan E-IMZO servisini kerakli vaqtda yoqib/o‘chirish,
• Raqamli imzo orqali ro‘yxatdan o‘tish mumkin bo‘lgan barcha veb-saytlar ro‘yxatini ko‘rish imkoniyatiga ega bo‘lasiz.
Dastur ochiq manbali bo‘lib, GitHub sahifasida joylashgan va Uzinfocom OSS dasturchilari ishlab chiqqan.
Xinux operatsion tizimi o‘rnatilganda E-IMZO Manager avtomatik tarzda standart dastur bo‘lib keladi.
Agar siz NixOS foydalanuvchisi bo‘lsangiz, konfiguratsiyangizga quyidagilarni qo‘shishingiz kifoya:
environment = {
systemPackages = with pkgs; [
e-imzo-manager
];
};service.e-imzo.enable = true;
Foydali va ochiq dastur — raqamli imzoni boshqarish endi yanada oson!
#EIMZO #Xinux #OpenSource #NixOS
🔥12❤4👍1
E-IMZO servisining nixpkgs’dagi muammolari bartaraf etildi!
yt.uz tomonidan ishlab chiqilgan va orqa fonda ishlovchi E-IMZO servisi har doim quyidagi havola orqali yuklab olinadi:
https://dls.yt.uz/E-IMZO-v4.71.tar.gz
Ammo muammo shundaki, yangi versiya chiqqach (masalan, v4.73), eski v4.71 havolasi yo‘qoladi — bu esa GitHub CI/CD tizimlarining ishdan chiqishiga va ayniqsa, har 6 oyda chiqadigan NixOS’ning nixpkgs kolleksiyasida muammolarga sabab bo‘ladi. Chunki kerakli fayl topilmaydi va paket qurilishi to‘xtaydi.
Bu muammoni hal qilish uchun Xinux jamoasi nomidan barcha E-IMZO relizlarini shaxsiy CDN serverimizda doimiy ochiq tarzda joylashtirishni boshladik.
Endi foydalanuvchilar NixOS yoki Xinux’da har safar yangi versiya chiqishini kutmasdan, mavjud relizlar bilan barqaror ishlashda davom etishlari mumkin. Har 6 oyda chiqadigan yangi versiyalar (masalan, 25.11) uchun ham nixpkgs dagi paketlar Xinux jamoasi tomonidan o‘z vaqtida yangilanib boriladi.
Shuningdek, yangilanishlar paytida yuzaga kelgan texnik xatoliklar ham to‘liq bartaraf etildi.
E-IMZO servisini .jar formatida yuklab olish (v4.73):
https://cdn.xinux.uz/e-imzo/
nixpkgs orqali yuklab olish (v4.73): https://search.nixos.org/packages?channel=25.05&show=e-imzo&query=e-imzo
yt.uz tomonidan ishlab chiqilgan va orqa fonda ishlovchi E-IMZO servisi har doim quyidagi havola orqali yuklab olinadi:
https://dls.yt.uz/E-IMZO-v4.71.tar.gz
Ammo muammo shundaki, yangi versiya chiqqach (masalan, v4.73), eski v4.71 havolasi yo‘qoladi — bu esa GitHub CI/CD tizimlarining ishdan chiqishiga va ayniqsa, har 6 oyda chiqadigan NixOS’ning nixpkgs kolleksiyasida muammolarga sabab bo‘ladi. Chunki kerakli fayl topilmaydi va paket qurilishi to‘xtaydi.
Bu muammoni hal qilish uchun Xinux jamoasi nomidan barcha E-IMZO relizlarini shaxsiy CDN serverimizda doimiy ochiq tarzda joylashtirishni boshladik.
Endi foydalanuvchilar NixOS yoki Xinux’da har safar yangi versiya chiqishini kutmasdan, mavjud relizlar bilan barqaror ishlashda davom etishlari mumkin. Har 6 oyda chiqadigan yangi versiyalar (masalan, 25.11) uchun ham nixpkgs dagi paketlar Xinux jamoasi tomonidan o‘z vaqtida yangilanib boriladi.
Shuningdek, yangilanishlar paytida yuzaga kelgan texnik xatoliklar ham to‘liq bartaraf etildi.
E-IMZO servisini .jar formatida yuklab olish (v4.73):
https://cdn.xinux.uz/e-imzo/
nixpkgs orqali yuklab olish (v4.73): https://search.nixos.org/packages?channel=25.05&show=e-imzo&query=e-imzo
🔥4👍3
Ma'lumki, barcha FLOSS ekotizimidagi xizmatlarimiz Kolymadagi serverlarda joylashgan bo‘lib, ularning manbalari GitHub’da ochiq holda mavjud. Matrix, Mastodon, Email va boshqa servislar uzoq vaqtdan beri 24/7 rejimda barqaror ishlashni davom ettirmoqda.
Ertadan boshlab yangi serverlarga ko‘chirish jarayoni boshlanadi va bu bir kun davom etadi. Shu sababli, yuqorida tilga olingan xizmatlarga vaqtincha kirish imkoni bo‘lmaydi.
Jarayon tugagach, barcha xizmatlar qayta ishga tushiriladi va foydalanuvchilar o'z hisoblarida hech qanday o‘zgarishni sezmaydi — hammasi odatdagidek ishlashda davom etadi.
Noqulayliklar uchun uzr so‘raymiz va tushunishingiz uchun rahmat!
Ertadan boshlab yangi serverlarga ko‘chirish jarayoni boshlanadi va bu bir kun davom etadi. Shu sababli, yuqorida tilga olingan xizmatlarga vaqtincha kirish imkoni bo‘lmaydi.
Jarayon tugagach, barcha xizmatlar qayta ishga tushiriladi va foydalanuvchilar o'z hisoblarida hech qanday o‘zgarishni sezmaydi — hammasi odatdagidek ishlashda davom etadi.
Noqulayliklar uchun uzr so‘raymiz va tushunishingiz uchun rahmat!
❤2👍1
