یکی از جالبترین پروژههایی که تا به الان وجود داشته و بیخبر بودم ازش، پروژه JA3 هست که در حوزه پروفایلینگ SSL و TLS هست
اگر مدیر سرور هستید، احتمالا شناسایی کاربرانی که IP عوض میکنند یا با تغییر User Agent و پورت و ... سعی در دور زدن سیستم های امنیتیتون دارند، یک معضل همیشگی بوده و هست
یکی از جالبترین راهکار هایی که JA3 در اختیارتون قرار میده، امکان ایجاد Fingerprint از SSL/TLS کاربر هست که با عوض کردن IP و Port و UA هم باز میتونید کاربر مد نظر رو شناسایی کنید
مثلا فینگرپرینت یک کلاینت استاندارد Tor مشابه زیر هست:
e7d705a3286e19ea42f587b344ee6865
💠 اینجا میتونید لیست بیشتری از FingerPrint هایی معروف رو ببینید
⭕️ https://github.com/salesforce/ja3
💡 مقاله کامل این مبحث رو هم میتونید اینجا بخونید
اگر مدیر سرور هستید، احتمالا شناسایی کاربرانی که IP عوض میکنند یا با تغییر User Agent و پورت و ... سعی در دور زدن سیستم های امنیتیتون دارند، یک معضل همیشگی بوده و هست
یکی از جالبترین راهکار هایی که JA3 در اختیارتون قرار میده، امکان ایجاد Fingerprint از SSL/TLS کاربر هست که با عوض کردن IP و Port و UA هم باز میتونید کاربر مد نظر رو شناسایی کنید
مثلا فینگرپرینت یک کلاینت استاندارد Tor مشابه زیر هست:
e7d705a3286e19ea42f587b344ee6865
💠 اینجا میتونید لیست بیشتری از FingerPrint هایی معروف رو ببینید
⭕️ https://github.com/salesforce/ja3
💡 مقاله کامل این مبحث رو هم میتونید اینجا بخونید
GitHub
GitHub - salesforce/ja3: JA3 is a standard for creating SSL client fingerprints in an easy to produce and shareable way.
JA3 is a standard for creating SSL client fingerprints in an easy to produce and shareable way. - salesforce/ja3
🔥4
یکی از بهترین و سریعترین کتابخونههایی که برای Post Processing برای ThreeJS دیدم، این کتابخونه هست
قابلیت های خیلی خوب و جالبی هم داره و فیلترها و افکت های زیبا
البته که "سریع بودن" نسبی هست، اگر از افکتهای سنگینی استفاده کنید طبیعتا فریمریت پایینتر میاد و تعداد Call های بیشتری به WebGL میشه و پرفرمنس پایین میاد
💠 مشاهده دموها
⭕️ https://github.com/pmndrs/postprocessing
قابلیت های خیلی خوب و جالبی هم داره و فیلترها و افکت های زیبا
البته که "سریع بودن" نسبی هست، اگر از افکتهای سنگینی استفاده کنید طبیعتا فریمریت پایینتر میاد و تعداد Call های بیشتری به WebGL میشه و پرفرمنس پایین میاد
💠 مشاهده دموها
⭕️ https://github.com/pmndrs/postprocessing
GitHub
GitHub - pmndrs/postprocessing: A post processing library for three.js.
A post processing library for three.js. Contribute to pmndrs/postprocessing development by creating an account on GitHub.
🔥5
اگر علاقه به نوشتن برنامههای PHP بهصورت Portable تر دارید، توصیه میکنم با پروژه PHP Runtime آشنا بشید
من هم جدیدا آشنا شدم و حرف زیادی ندارم درموردش بزنم، صرفا درمورد کاربردش میتونم بهتون بگم که:
فرض کنید یک وبسایت با PHP نوشتید و تصمیم میگیرید که سایت رو بیارید روی OpenSwoole، مجبور هستید حداقل 20 درصد از کد های پروژه رو بازنویسی کنید تا مشکل متغیر های Global و ساختاریای مثل _GET و _POST و … رو حل کنید
حالا فرض کنید از OpenSwoole خوشتون نیومده و میرید سمت RoadRunner یا ReactPHP یا AMPHP و دوباره مجبور هستید بخش هایی از پروژه که مختص به فریمورک هستند رو بازنویسی کنید
کاربرد PHP Runtime برای حل این مشکل هست و در واقع برنامهتون رو بهشکل BlackBoxed مینویسید که بتونید بدون زحمت تغییر در کد، با یک ساختار واحد، داخل OpenSwoole یا RoadRunner یا ReactPHP و … پروژهتون رو اجرا کنید
https://github.com/php-runtime/runtime
من هم جدیدا آشنا شدم و حرف زیادی ندارم درموردش بزنم، صرفا درمورد کاربردش میتونم بهتون بگم که:
فرض کنید یک وبسایت با PHP نوشتید و تصمیم میگیرید که سایت رو بیارید روی OpenSwoole، مجبور هستید حداقل 20 درصد از کد های پروژه رو بازنویسی کنید تا مشکل متغیر های Global و ساختاریای مثل _GET و _POST و … رو حل کنید
حالا فرض کنید از OpenSwoole خوشتون نیومده و میرید سمت RoadRunner یا ReactPHP یا AMPHP و دوباره مجبور هستید بخش هایی از پروژه که مختص به فریمورک هستند رو بازنویسی کنید
کاربرد PHP Runtime برای حل این مشکل هست و در واقع برنامهتون رو بهشکل BlackBoxed مینویسید که بتونید بدون زحمت تغییر در کد، با یک ساختار واحد، داخل OpenSwoole یا RoadRunner یا ReactPHP و … پروژهتون رو اجرا کنید
https://github.com/php-runtime/runtime
GitHub
GitHub - php-runtime/runtime: A home for runtimes.
A home for runtimes. . Contribute to php-runtime/runtime development by creating an account on GitHub.
🔥3
این زبان عجیب و غریب رو توصیه میکنم ببینید و همین صفحه گیتهابش رو تا انتها بخونید تا با ویژگیهای خندهدارش آشنا باشید
چیزی به اسم حلقه هم نداره چون معتقد هست حلقهها منسوخ هستند!
به جای سمیکالن از ! استفاده میکنه و به جای not از سمیکالن استفاده میکنه
مقدار Boolean اش سه حالت بله و خیر و «شاید» هست
آرایههاش نه از صفر و نه از یک، بلکه از منفی یک شروع میشه
میتونید بگید که 5 مساوی 4 هست و از اون به بعد هرجای برنامه 5 استفاده کنید، مقدار 4 نمایش داده میشه (هر چیزی رو در زبان میتونید مقدار دهی کنید و عوض کنید کاربردش رو)
و کلی قابلیت عجیب و غیرمنتظره دیگه، که بیشتر جنبه فان و شوخی با زبان های برنامهنویسی رو داره
https://github.com/TodePond/C
چیزی به اسم حلقه هم نداره چون معتقد هست حلقهها منسوخ هستند!
به جای سمیکالن از ! استفاده میکنه و به جای not از سمیکالن استفاده میکنه
مقدار Boolean اش سه حالت بله و خیر و «شاید» هست
آرایههاش نه از صفر و نه از یک، بلکه از منفی یک شروع میشه
میتونید بگید که 5 مساوی 4 هست و از اون به بعد هرجای برنامه 5 استفاده کنید، مقدار 4 نمایش داده میشه (هر چیزی رو در زبان میتونید مقدار دهی کنید و عوض کنید کاربردش رو)
و کلی قابلیت عجیب و غیرمنتظره دیگه، که بیشتر جنبه فان و شوخی با زبان های برنامهنویسی رو داره
https://github.com/TodePond/C
🔥9
نسخه r156 کتابخونه ThreeJS هم اخیرا ریلیز شده و تغییراتش رو میتونید از اینجا ببینید و آپدیت کنید به نسخه جدید
https://threejs.org/changelog/?r156
https://threejs.org/changelog/?r156
یکسری توضیحاتی درمورد trade off ها در زبانهای برنامهنویسی دادم که توصیه میکنم این پیام و دنبالهاش رو بخونید
https://news.1rj.ru/str/IRDevelopersGP/1780109
https://news.1rj.ru/str/IRDevelopersGP/1780109
Telegram
Erfan Mola in گفتگوی توسعهدهندگان ایرانی
هیچ چیز در دنیا کامل نیست و هرچیزی trade off هایی داره
باید بشناسید trade off ها ها رو
اینکه چه چیزی رو از دست میدید در قبال اینکه چه چیزی رو به دست میارید
مثل کفه های ترازو میمونه
مثلا وقتی استخدام میشید، روزی ۸ ساعت وقت از دست میدید و در ازاش حقوق…
باید بشناسید trade off ها ها رو
اینکه چه چیزی رو از دست میدید در قبال اینکه چه چیزی رو به دست میارید
مثل کفه های ترازو میمونه
مثلا وقتی استخدام میشید، روزی ۸ ساعت وقت از دست میدید و در ازاش حقوق…
🔥7
| Erfan's Notes |
این عکس تایم تقریبی یکسری عملیاتهای مهم توی سیستمهای کامپیوتری رو نوشته، قابل توجه کسانی هست که پرفرمنس و میلیثانیهها براشون مهمه بهصورت خلاصه عملیاتهای CPU و RAM و نتورک Local خیلی سریع هستند و عملیاتهای Disk و IO و نتورک Remote گلوگاه یا همون…
در ادامه بحث پرفرمنس، این هم نمودار خیلی زیبا در مقایسه ارتباط بین پرفرمنس و انواع روشهای concurrency هست
داغونترین حالت تعلق میگیره به fork کردن پروسس جدید
حالت thread هم یک حد میانی محسوب میشه
حالتهای pre forked و pre threaded و epoll در ابتدا نزدیک هستند ولی با بیشتر شدن concurrency نزولی میشن
در نهایت، مکانیسم epoll لینوکس در صدر میمونه و میتازه (:
نکته اول: این مقایسه برای requests per second یک وبسرور هست و الزاما در هر نوع concurrency اینطور نیست
نکته دوم: اگر علاقهمند به مطالعه درمورد epoll در لینوکس بودید، این صفحه رو ببینید
نکته سوم: در openswoole برای event loop از epoll استفاده میشه
داغونترین حالت تعلق میگیره به fork کردن پروسس جدید
حالت thread هم یک حد میانی محسوب میشه
حالتهای pre forked و pre threaded و epoll در ابتدا نزدیک هستند ولی با بیشتر شدن concurrency نزولی میشن
در نهایت، مکانیسم epoll لینوکس در صدر میمونه و میتازه (:
نکته اول: این مقایسه برای requests per second یک وبسرور هست و الزاما در هر نوع concurrency اینطور نیست
نکته دوم: اگر علاقهمند به مطالعه درمورد epoll در لینوکس بودید، این صفحه رو ببینید
نکته سوم: در openswoole برای event loop از epoll استفاده میشه
🔥6
نسخه v1 رانتایم Bun هم منتشر شد، میتونید دانلود کنید و تست کنید (تا به الان در حالت بتا بود)
طبق ادعا هایی که میکنه، ۵-۶ برابر سریعتر از NodeJS هست، ولی آیا صحت داره؟ من خودم بنچمارک نکردمشون ولی چشمبسته میتونم قبول کنم که واقعیت داره
چون میدونم که ساختار NodeJS واقعا ایدهآل نیست و خیلی نقاط ضعف ساختاری میشه داخلش پیدا کرد
ولی آیا باید به Bun مهاجرت کنیم؟ فکر نمیکنم، چون هنوز اول راه هست و تقریبا هیچ چیز درست و حسابیای که توی NodeJS استفاده میکردیم باهاش سازگاری کامل نداره
https://bun.sh
طبق ادعا هایی که میکنه، ۵-۶ برابر سریعتر از NodeJS هست، ولی آیا صحت داره؟ من خودم بنچمارک نکردمشون ولی چشمبسته میتونم قبول کنم که واقعیت داره
چون میدونم که ساختار NodeJS واقعا ایدهآل نیست و خیلی نقاط ضعف ساختاری میشه داخلش پیدا کرد
ولی آیا باید به Bun مهاجرت کنیم؟ فکر نمیکنم، چون هنوز اول راه هست و تقریبا هیچ چیز درست و حسابیای که توی NodeJS استفاده میکردیم باهاش سازگاری کامل نداره
https://bun.sh
Bun
Bun — A fast all-in-one JavaScript runtime
Bundle, install, and run JavaScript & TypeScript — all in Bun. Bun is a new JavaScript runtime with a native bundler, transpiler, task runner, and npm client built-in.
🔥6
یکی از بهترین جایگزینهایی که میشه برای Postman پیدا کرد، نرمافزار Insomnia هست، اوپنسورس هست و میتونید از این لینک ببینید
ولی خب چرا Postman نه؟ چون سادگیاش رو نسبت به اوایل از دست داده و کمکم فکر مهاجرت ازش فرا رسیده
ولی خب چرا Postman نه؟ چون سادگیاش رو نسبت به اوایل از دست داده و کمکم فکر مهاجرت ازش فرا رسیده
🔥7
این ویدیو از سری ویدیو های ارزشمندی هست که سورسکد Xv6 رو بررسی میکنه
منبع خوبی میتونه باشه برای کسانی که دنبال یادگیری سطوح پایینتر OS و بوتلودر هستند
نکته مهم هم اینه که الزاما قرار نیست هرکسی OS بنویسه با دیدن این سری ویدیوها
منبع خوبی میتونه باشه برای کسانی که دنبال یادگیری سطوح پایینتر OS و بوتلودر هستند
نکته مهم هم اینه که الزاما قرار نیست هرکسی OS بنویسه با دیدن این سری ویدیوها
YouTube
How does an OS boot? //Source Dive// 001
In this installment of //Source Dive//, we're learning about the xv6 Operating System; Specifically the low-level boot code that gets the CPU in the correct state to run the OS!
=[ 🔗 Links 🔗 ]=
🐋 RISC-V Docker Image: https://github.com/francisrstokes/rv…
=[ 🔗 Links 🔗 ]=
🐋 RISC-V Docker Image: https://github.com/francisrstokes/rv…
🔥4
یک جایگزین فوقالعاده قدرتمند و سرعتمند برای SocketIO در محیط های NodeJS و کاملا سازگار با رانتایم Bun:
https://github.com/uNetworking/uWebSockets.js
https://github.com/uNetworking/uWebSockets.js
GitHub
GitHub - uNetworking/uWebSockets.js: μWebSockets for Node.js back-ends :metal:
μWebSockets for Node.js back-ends :metal:. Contribute to uNetworking/uWebSockets.js development by creating an account on GitHub.
🔥4
اگه مثل من طرفدار Tiling Window Manager ها از جمله i3wm هستید و علاقه به KDE هم دارید، احتمالا پروژه i3-and-kde-plasma براتون جالب باشه
من چند سالی میشه که کاربر سفت و سخت i3wm هستم، فارغ از هر سیستمعاملی، کار کردن با چیزی جز i3wm برام غیرممکن هست
مدتی از روی اجبار برای پروژهای مجبور به استفاده از KDE Plasma شده بودم، که با کمک ریپوزیتوری بالا تونستم استفاده از چیزی غیر از i3wm رو امکانپذیرتر کنم
در حالت کلی، ریپوزیتوری بالا بهتون یاد میده که چطوری دسکتاپ KDE رو با استفاده از i3wm بالا بیارید و مدیریت کنید
تجربهاش ایدهآل و بدون نقص نیست، ولی خب برای طرفداران Tiling WM ها قابل قبول هست، در کل یک حد وسط هست، ترکیب سنتی و صنعتی
من چند سالی میشه که کاربر سفت و سخت i3wm هستم، فارغ از هر سیستمعاملی، کار کردن با چیزی جز i3wm برام غیرممکن هست
مدتی از روی اجبار برای پروژهای مجبور به استفاده از KDE Plasma شده بودم، که با کمک ریپوزیتوری بالا تونستم استفاده از چیزی غیر از i3wm رو امکانپذیرتر کنم
در حالت کلی، ریپوزیتوری بالا بهتون یاد میده که چطوری دسکتاپ KDE رو با استفاده از i3wm بالا بیارید و مدیریت کنید
تجربهاش ایدهآل و بدون نقص نیست، ولی خب برای طرفداران Tiling WM ها قابل قبول هست، در کل یک حد وسط هست، ترکیب سنتی و صنعتی
🔥7
اگر فکر میکنید جاوا اسکریپت بلدید، توصیه میکنم این تست رو انجام بدید تا متوجه بشیم که هیچکدوممون JS بلد نیستیم
https://jsisweird.com
https://jsisweird.com
🔥8
Telegram Contests
(extra reward:
به نظر میرسه که توی مسابقه Mini App تلگرام جزو رنک های دوم شدم و خب این احتمالا خبر خوبیه
رباتهایی که باهاشون شرکت کردم @SimpListBot و @DPXWalletBot بودند و سورس و داکیومنتیشن جفتشون هم میتونید ببینید، کاملا هم اوپنسورس هستند و میتونید به هر نحوی دوست داشتید استفاده کنید:
https://erfanmola.github.io/SimpList/
https://erfanmola.github.io/DPXWallet/
یه کیت نسبتا خوبی هم توسعه دادم برای Vue به اسم TeleVue که احتمالا مفید باشه براتون:
https://github.com/erfanmola/TeleVue
پ.ن: البته من برای دوم شدن شرکت نکرده بودم، ولی خب نظر داورها محترمه (:
رباتهایی که باهاشون شرکت کردم @SimpListBot و @DPXWalletBot بودند و سورس و داکیومنتیشن جفتشون هم میتونید ببینید، کاملا هم اوپنسورس هستند و میتونید به هر نحوی دوست داشتید استفاده کنید:
https://erfanmola.github.io/SimpList/
https://erfanmola.github.io/DPXWallet/
یه کیت نسبتا خوبی هم توسعه دادم برای Vue به اسم TeleVue که احتمالا مفید باشه براتون:
https://github.com/erfanmola/TeleVue
پ.ن: البته من برای دوم شدن شرکت نکرده بودم، ولی خب نظر داورها محترمه (:
erfanmola.github.io
SimpList Documentation | SimpList Documentation
Setup guide & documentations of SimpList Telegram WebApp
🔥14
| Erfan's Notes |
اگه مثل من طرفدار Tiling Window Manager ها از جمله i3wm هستید و علاقه به KDE هم دارید، احتمالا پروژه i3-and-kde-plasma براتون جالب باشه من چند سالی میشه که کاربر سفت و سخت i3wm هستم، فارغ از هر سیستمعاملی، کار کردن با چیزی جز i3wm برام غیرممکن هست مدتی…
من برای بهروز بودن و شاید از روی تفریح، بهطور موقت از XOrg به Wayland سوئیچ کردم
و در پی اون، مجبور شدم از i3wm به swaywm سوئیچ کنم
تجربهاش تا اینجا بد نبوده، ولی خب Wayland هست و دردسرهاش و محدودیتهاش و تفاوتهاش
البته من دو سال پیش هم اجبارا روی Wayland و swaywm بودم و تقریبا میتونم بگم که زندان بود برام، ولی خب الان دیگه زندان نیست و خیلی از نواقص رفع شده
در کل، اگر کاربر i3wm هستید توصیه میکنم یه تست با sway بکنید
البته همچنان Nvidia مشکلاتش با Wayland رو داره ولی خب میتونیم امیدوار باشیم که حل میشه تا قرن بعد
پ.ن: اگر علاقهمند بودید میتونم توی پست های آینده درمورد فرق های بین Wayland و XOrg توضیح بدم به صورت ویس یا متنی
و در پی اون، مجبور شدم از i3wm به swaywm سوئیچ کنم
تجربهاش تا اینجا بد نبوده، ولی خب Wayland هست و دردسرهاش و محدودیتهاش و تفاوتهاش
البته من دو سال پیش هم اجبارا روی Wayland و swaywm بودم و تقریبا میتونم بگم که زندان بود برام، ولی خب الان دیگه زندان نیست و خیلی از نواقص رفع شده
در کل، اگر کاربر i3wm هستید توصیه میکنم یه تست با sway بکنید
البته همچنان Nvidia مشکلاتش با Wayland رو داره ولی خب میتونیم امیدوار باشیم که حل میشه تا قرن بعد
پ.ن: اگر علاقهمند بودید میتونم توی پست های آینده درمورد فرق های بین Wayland و XOrg توضیح بدم به صورت ویس یا متنی
i3wm.org
i3 — i3: improved tiling X11 window manager
i3 is a tiling window manager with clean, readable and documented code, featuring extended Xinerama support, usage of libxcb instead of xlib and several improvements over wmii
🔥7
| Erfan's Notes |
من برای بهروز بودن و شاید از روی تفریح، بهطور موقت از XOrg به Wayland سوئیچ کردم و در پی اون، مجبور شدم از i3wm به swaywm سوئیچ کنم تجربهاش تا اینجا بد نبوده، ولی خب Wayland هست و دردسرهاش و محدودیتهاش و تفاوتهاش البته من دو سال پیش هم اجبارا روی…
حدود یک ماه از آخرین پستی که اینجا نوشتم میگذره، دلیلش هم احتمالا درگیری و مشغله بوده، دوباره سعی میکنم هفتگی بنویسم
ولی الان صرفا اومدم بگم که، من دوباره برگشتم روی i3 و XOrg (:
دنیا واقعا هنوز آمادگی استفاده و مهاجرت به Wayland رو نداره، یعنی در اصل، این پروتکل واقعا جای کار و اصلاح داره و فکر نمیکنم عمر ما کفاف بده جایگزین شدنش رو ببینیم، به عبارتی: خیلی از استاندارد ها مشکل دارند
آخه لامصب چرا باید من نتونم از صفحه خودم اسکرین رکورد بگیرم مثل آدم؟ یا چرا نباید یک daemon مستقل برای مدیریت نوتیفیکیشن باشه به شکل درست و حسابی؟ چرا باید drag و drop بین دو اپ آرزو بشه؟
و اینکه مشکل با Nvidia چیه؟ چرا باید Chrome به Software Rendering بیاد و Fallback کنه به جای HW Acceleration
یه باگ عجیبی هم که خوردم این بود که رم بدون استفاده باقی میموند و swap پر میشد و سیستم فریز میشد
خلاصه که دقیقا مثل دو سال پیش، از Wayland ناراضی هستم و تا دو سال دیگه هم سمتش نمیرم باز هم ، شما هم سمتش نرید
ولی الان صرفا اومدم بگم که، من دوباره برگشتم روی i3 و XOrg (:
دنیا واقعا هنوز آمادگی استفاده و مهاجرت به Wayland رو نداره، یعنی در اصل، این پروتکل واقعا جای کار و اصلاح داره و فکر نمیکنم عمر ما کفاف بده جایگزین شدنش رو ببینیم، به عبارتی: خیلی از استاندارد ها مشکل دارند
آخه لامصب چرا باید من نتونم از صفحه خودم اسکرین رکورد بگیرم مثل آدم؟ یا چرا نباید یک daemon مستقل برای مدیریت نوتیفیکیشن باشه به شکل درست و حسابی؟ چرا باید drag و drop بین دو اپ آرزو بشه؟
و اینکه مشکل با Nvidia چیه؟ چرا باید Chrome به Software Rendering بیاد و Fallback کنه به جای HW Acceleration
یه باگ عجیبی هم که خوردم این بود که رم بدون استفاده باقی میموند و swap پر میشد و سیستم فریز میشد
خلاصه که دقیقا مثل دو سال پیش، از Wayland ناراضی هستم و تا دو سال دیگه هم سمتش نمیرم باز هم ، شما هم سمتش نرید
🔥1
این سایت اومده و LLM هایی مثل GPT-3 رو به صورت بصری و سهبعدی به تصویر کشیده، دیدنش رو توصیه میکنم
https://bbycroft.net/llm
https://bbycroft.net/llm
Media is too big
VIEW IN TELEGRAM
با استفاده از این سایت میتونید برای گیتهاب خودتون این ویدیو آمار نسبتا خفن رو بسازید
https://githubunwrapped.com/
البته من با سایت خیلی حال میکردم ولی وقتی فهمیدم تولید ویدیو اش سمت سرور هست، در حالی که میتونست کاملا سمت فرانتاند باشه، دیگه باهاش حال نمیکنم
https://githubunwrapped.com/
البته من با سایت خیلی حال میکردم ولی وقتی فهمیدم تولید ویدیو اش سمت سرور هست، در حالی که میتونست کاملا سمت فرانتاند باشه، دیگه باهاش حال نمیکنم