Yetim dasturchi kundaligi


Гео и язык канала: Узбекистан, Узбекский
Категория: Технологии


Murakkablik - avvalgisidan unchalik yaxshi bo'lmagan voqeligingizni qabul qilishingizdir.
https://manu.uz/
https://diary.manu.uz/
Bog'lanish uchun: @yetim_robot

Связанные каналы  |  Похожие каналы

Гео и язык канала
Узбекистан, Узбекский
Категория
Технологии
Статистика
Фильтр публикаций


Bunday mayda chuydalar bilan olishib yozishning o'ziga yarasha natijalar ham bo'ladi odatda. Masalan 300 ming qatordan ortiq kodning kompiliyatsiya qilinganda 2Mb ga yaqin bo'lishi va keyinchalik arzimagan resurslar ishlatishi.


Masalan bitlarga daxldor yana bir qiziq eksperiment, judayam samarali usul emas ammo ma'lum holatlarda ayniqsa qurilmalar orasida aniqligi past bo'lgan ma'lumotlarni almashishga yordam beradi:


#include
#include
#include

int to_int(float x) {
uint32_t bits;
memcpy(&bits, &x, sizeof(x));
return (int)bits;
}

float to_float(int x) {
float result;
memcpy(&result, &x, sizeof(x));
return result;
}

int main() {
float input = 10.5;
int i = to_int( input );

printf("Input: %f\n", input);
printf("Integer: %d\n", i);
printf("Float: %f\n", to_float(i));

return 0;
}


Agar sizda o'rgaruvchi qiymatini bir necha boshqa qiymatlarga ega ekanligini tekshirishga ehtiyot bo'lsa odatda hight level tillarda massiv ichidan tekshirish mumkin buni (Bu ancha oson usul). Masalan phpda in_array($value, [0,1,2,3,4]) bo'lsa javascriptda [0,1,2,3,4].indexOf(value).

Lekin quyi tillarda bu prinsiplar boshqacharoq bo'lishi mumkin. Masalan c dasturlash tilida massiv o'lchamini olib keyin uni iteratsiya qilishga to'g'ri keladi. Ammo bu ishni sizda shift operatorlari orqali qilish imkoni ham mavjud (yuqori darajali tillardayam). Bu ancha tezkor va samaraliroq usul hisoblanadi (Kodni boshqalar uchun tushunarsiz bo'lishi hisobga olmasa).

Demak bu uchun left shifting operatori bizga ish beradi. Bu operator chap operandidagi har bir bitni o'ng operand tomonidan ko'rsatilgan pozitsiyalar soni bo'yicha chapga siljitadi.

Misol:


x = 2;
n = 1;
result = n


Репост из: dev_b.log
supporting new generation:

https://t.me/azamjonbro_news/37

my suggestions for him:

if you doing static html development, better stick with tech trends:
- vite (vanilla js option with github.com/alexlafroscia/vite-plugin-handlebars for splitting your components into chunks)
- tailwindcss (if you can)
- bem.info + scss (if you can't)

in the end you do npm run build and get almost the same output


RFC-821 standarti bo'yicha emaillar mavjudligini tekshiruvchi eskiroq kod.

https://github.com/yetimdasturchi/mail-validator


Serverda postfix uchun maqil queue oshib ketishi doim ham yaxshilikka olib kelmaydi. Bu odatda kattaroq mail serverlarga yuboriladigan xabarlar ketma ketligida spamga tushish ehtimolini oshiradi. Shu sababli doimiy keraksiz mail xabarlarni tozlab turish lozim.

Xabarlar odatda ketmay qolishi userlar email manzillarini xato kiritishi sababli kelib chiqadi. Albatta RFC-821 standarti bo'yicha bu muammoni oldini olish mumkin. Ammo doim ham ish beradigan metod emas bu. Oson yo'li esa ota bobomiz kabi tozalovchi bash script yozish.

https://gist.github.com/yetimdasturchi/1ebc4dc4ff1edb817827bf56c81a5748

@yetimdasturchi

7k 0 2 12 11

Hozircha hisobga olinmagani battery uchun azoblash xizmati ekan. Hattoki ARM emulating uchunam.


1. Quyosh botishini kutasan
2. So'ngra hammayoq osoyishta bo'lishini.
3. Aaliyah -Try Again musiqasini naushnikda bor ovozicha bosasan
4. Qolgan fokusni keyin ishga qaratasan.

P.S: Tabga ko'ra nootropil qo'shish mumkin)

9.5k 1 15 20 30

Google keyboard 🫤

10.9k 0 16 86 272

Vanihoyat virtualbox 7 macbook arm platforlaridayam stabil ishlashni boshladi. Paralles Desktopga yillik litsenziya olib qo'ygab @orzklv uchun bir daqiqa sukut saqlaymiz)

Virtualizatsiya arm va x86_64 arxitekturalari uchun muammosiz ishlamoqda, shuningdek network va tashqi qurilmalardayam muammo kuzatilmadi. Yagona muammo yangi VM ochgandan so'ng sizda EFI manager kerakli startup faylni topolmasligi hisoblanadi. Ammo muammoga yechim bor.

Virtual mashina ishga tushirilganda birinchi filesystemdan startup.nsh faylini topa olmaganini va shu asosida EFI shellga o'tishni so'raydi. Aynan shu qismda FS# (# bu faylsystem identifikatori, ko'p holatda 0) fayl tizimiga o'tib kerakli faylni yaratish lozim.

EFI Shell terminalda quyidagi buyruqlarni kiritamiz:

$: FS0:

LS, CD buyruqlari orqali kerakli papkalar bilan manipulatsiya qilsangiz bo'ladi. Ushbu manipulatsiyadan asosiy maqsad boot.efi faylini topish va uni ishga tushirish hisoblanadi. Tez-tez foydalanadigan operatsion tizimlarga ko'ra ular quyidagilardan biri bo'lishi mumkin:

Macos: \System\Library\CoreServices\boot.efi
Windows: \EFI\boot\bootx64.efi
Linux: \EFI\debian\grubx64.efi

Linuxda agarda bootloader grub asosida bo'lsa arxitekturaga qarab grubaa64.efi fayli ham bo'lishi mumkin. Agarda yuqoridagilardan birortasi sizga mos kelmasa kerakli fayli yuqoridagi manipulatsiya buyruqlari orqali aniqlash imkoningiz bor. Fayl aniqlagach esa terminalga shunchaki fayl nomini o'zini kiritish kifoya. Masalan:

$: grubaa64.efi

Virtual mashina har safar o'chib yonganda bu ishni takrorlamaslik uchun faylsystemga o'tgach edit startup.nsh buyrug'i orqali yangi fayl yaratish va uni ichiga kerakli efi fayl joylashuvini ko'rsatishingiz mumkin.

Misol:

$: FS0:
$: edit startup.sh

Fayl kontentiga:

\EFI\debian\grubaa64.efi

ctrl+s faylni saqlash, ctrl+q dan esa tahrirlash oynasidan chiqish uchun foydalansangiz bo'ladi. Shundan so'ng shunchaki reset buyrug'ini kiritasiz va virtual machina ichidagi os normal holatda ishga tushishni boshlaydi.

@yetimdasturchi


Intersec 2025 ko'rgazmasidan lavhalar.

Faqat ko'rgazmada xitoyliklar Pokiston emas O'zbekistonlik ekanimizni tushuntirib berolmadik)). Bunday davlat borligidan bexabar ekan ular.







Показано 14 последних публикаций.