Forwarded from Gopher Academy
🔵 عنوان مقاله
Product for Engineers: A Newsletter Helping Flex Your Product Muscle
🟢 خلاصه مقاله:
مقاله "Product for Engineers" به بررسی مهارتها و استراتژیهای لازم برای مهندسین محصول میپردازد تا آنها در حرفهشان موفق شوند. در این مقاله، اهمیت ترکیب مهارتهای فنی با دانش مدیریت محصول تأکید شده است. مهندسین محصول باید نه تنها در فناوریهای مربوطه مهارت داشته باشند، بلکه باید قادر به درک نیازهای بازار و توسعه راه حلهای متناسب با این نیازها نیز باشند. مقاله همچنین بر اهمیت توانایی کار در تیمهای متقاطع و ارتباط موثر با سایر بخشهای شرکت، از جمله بازاریابی و فروش، تأکید میکند. نویسنده به مهندسین محصول توصیه میکند که برای موفقیت در نقشهای مدیریتی، باید مهارتهای رهبری و تصمیمگیری را نیز توسعه دهند. بهطور خلاصه، هدف اصلی مقاله تقویت درک مهندسین محصول از اصول اساسی مدیریت محصول و توسعه مهارتهای کلیدی مورد نیاز برای پیشرفت در این حرفه است.
🟣لینک مقاله:
https://golangweekly.com/link/160760/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Product for Engineers: A Newsletter Helping Flex Your Product Muscle
🟢 خلاصه مقاله:
مقاله "Product for Engineers" به بررسی مهارتها و استراتژیهای لازم برای مهندسین محصول میپردازد تا آنها در حرفهشان موفق شوند. در این مقاله، اهمیت ترکیب مهارتهای فنی با دانش مدیریت محصول تأکید شده است. مهندسین محصول باید نه تنها در فناوریهای مربوطه مهارت داشته باشند، بلکه باید قادر به درک نیازهای بازار و توسعه راه حلهای متناسب با این نیازها نیز باشند. مقاله همچنین بر اهمیت توانایی کار در تیمهای متقاطع و ارتباط موثر با سایر بخشهای شرکت، از جمله بازاریابی و فروش، تأکید میکند. نویسنده به مهندسین محصول توصیه میکند که برای موفقیت در نقشهای مدیریتی، باید مهارتهای رهبری و تصمیمگیری را نیز توسعه دهند. بهطور خلاصه، هدف اصلی مقاله تقویت درک مهندسین محصول از اصول اساسی مدیریت محصول و توسعه مهارتهای کلیدی مورد نیاز برای پیشرفت در این حرفه است.
🟣لینک مقاله:
https://golangweekly.com/link/160760/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Posthog
Product for Engineers | Substack
Helping engineers and founders flex their product muscles. Click to read Product for Engineers, a Substack publication with tens of thousands of subscribers.
Forwarded from IRCF | اینترنت آزاد برای همه
ابزار دریافت کانفیگ رایگان به تفکیک پروتکل/لوکیشن بروزرسانی شده و علاوهبر اضافهشدن یهسری پروتکل جدید، میتونین کانفیگهارو بر اساس IPv4/IPv6 دریافت کنین. اینابزار درحالحاضر به یک ریپازیتوری جدید متصل شده که اگر از استفادهکنندگان قدیمی هستین، لازمه مجدد لینک ساب رو اسکن کنید.
👉 ircfspace.github.io/tconfig
👉 ircfspace.github.io/location
🔍 ircf.space/tools
@ircfspace
👉 ircfspace.github.io/tconfig
👉 ircfspace.github.io/location
🔍 ircf.space/tools
@ircfspace
Forwarded from Mr Python | مستر پایتون (حسین)
📌سرفصل دروس دوره تست نفوذ وایرلس با پایتون
1️⃣ بخش اول : مفاهیم شبکه (رایگان)
۱ - شرح مدل OSI
۲ - پروتکل ARP
۳ - پروتکل اینترنت (IP)
۴ - پروتکل ICMP
۵ - کارگاه لایه شبکه
۶ - پروتکل UDP
۷ - پروتکل TCP
۸ - کارگاه لایه انتقال
۹ - پروتکل HTTP , HTTPS
۱۰ - کارگاه HTTP , HTTPS
۱۱ - پروتکل DNS
۱۲ - کارگاه DNS
۱۳ - پروتکل Telnet و SSH
۱۴ - کارگاه Telnet و SSH
۱۵ - پروتکل های انتقال فایل
۱۶ - کارگاه انتقال فایل
2️⃣ بخش دوم : مبانی Wi-Fi
۱ - مفهوم موج
۲ - استاندارد 802.11 و نسخه های آن
۳ - توپولوژی های وایرلس
۴ - فریم های 802.11 و ساختار آن ها
۵ - بررسی Mode های مختلف کارت های شبکه وایرلس
۶ - اسکن فعال و غیر فعال محیط
۷ - شنود بسته های 802.11 در وایرشارک
۸ - پروتکل امنیتی WEP
۹ - پروتکل امنیتی WPA
۱۰ - قابلیت WPS
3️⃣ بخش سوم : آموزش Scapy
۱ - آموزش نصب Scapy
۲ - ساخت بسته های شبکه در Scapy
۳ - ارسال و شنود بسته در Scapy
۴ - ساخت ابزار های Ping و Traceroute در Scapy
۵ - فریم های 802.11 در Scapy
4️⃣ بخش چهارم : تست نفوذ و ابزارنویسی
۱ - اسکن محیط با airodump-ng
۲ - ساخت اسکنر وای فای در پایتون
۳ - تشخیص SSID های مخفی در محیط
۴ - تشخیص دستگاه های موجود در محیط
۵ - دور زدن مک فیلترینگ
۶ - اجرای حمله Deauthentication با aireplay-ng
۷ - نوشتن اسکریپت Deauthentication در پایتون
۸ - چگونگی هک پسوورد WEP
۹ - هک پسوورد WEP با aircrack-ng
۱۰ - چگونگی کرک WPA بخش ۱
۱۱ - چگونگی کرک WPA بخش ۲
۱۲ - کرک WPA با استفاده از aircrack-ng
۱۳ - نوشتن اسکریپت شنود WPA Handshake در محیط
۱۴ - نوشتن کرکر WPA
۱۵ - نقاط دسترسی سرکش (Rogue AP)
۱۶ - سوییچ به محیط کالی لینوکس
۱۷ - انجام سناریو WPA AP-LESS Cracking
۱۸ - معرفی wifiphisher , wifipumpkin3
۱۹ - رمزگشایی بسته های محیط با airdecap-ng
۲۰ - نوشتن اسکریپت استخراج رمز وای فای های ذخیره شده
🆔 : @MrPythonBlog | BOOST
1️⃣ بخش اول : مفاهیم شبکه (رایگان)
۱ - شرح مدل OSI
۲ - پروتکل ARP
۳ - پروتکل اینترنت (IP)
۴ - پروتکل ICMP
۵ - کارگاه لایه شبکه
۶ - پروتکل UDP
۷ - پروتکل TCP
۸ - کارگاه لایه انتقال
۹ - پروتکل HTTP , HTTPS
۱۰ - کارگاه HTTP , HTTPS
۱۱ - پروتکل DNS
۱۲ - کارگاه DNS
۱۳ - پروتکل Telnet و SSH
۱۴ - کارگاه Telnet و SSH
۱۵ - پروتکل های انتقال فایل
۱۶ - کارگاه انتقال فایل
2️⃣ بخش دوم : مبانی Wi-Fi
۱ - مفهوم موج
۲ - استاندارد 802.11 و نسخه های آن
۳ - توپولوژی های وایرلس
۴ - فریم های 802.11 و ساختار آن ها
۵ - بررسی Mode های مختلف کارت های شبکه وایرلس
۶ - اسکن فعال و غیر فعال محیط
۷ - شنود بسته های 802.11 در وایرشارک
۸ - پروتکل امنیتی WEP
۹ - پروتکل امنیتی WPA
۱۰ - قابلیت WPS
3️⃣ بخش سوم : آموزش Scapy
۱ - آموزش نصب Scapy
۲ - ساخت بسته های شبکه در Scapy
۳ - ارسال و شنود بسته در Scapy
۴ - ساخت ابزار های Ping و Traceroute در Scapy
۵ - فریم های 802.11 در Scapy
4️⃣ بخش چهارم : تست نفوذ و ابزارنویسی
۱ - اسکن محیط با airodump-ng
۲ - ساخت اسکنر وای فای در پایتون
۳ - تشخیص SSID های مخفی در محیط
۴ - تشخیص دستگاه های موجود در محیط
۵ - دور زدن مک فیلترینگ
۶ - اجرای حمله Deauthentication با aireplay-ng
۷ - نوشتن اسکریپت Deauthentication در پایتون
۸ - چگونگی هک پسوورد WEP
۹ - هک پسوورد WEP با aircrack-ng
۱۰ - چگونگی کرک WPA بخش ۱
۱۱ - چگونگی کرک WPA بخش ۲
۱۲ - کرک WPA با استفاده از aircrack-ng
۱۳ - نوشتن اسکریپت شنود WPA Handshake در محیط
۱۴ - نوشتن کرکر WPA
۱۵ - نقاط دسترسی سرکش (Rogue AP)
۱۶ - سوییچ به محیط کالی لینوکس
۱۷ - انجام سناریو WPA AP-LESS Cracking
۱۸ - معرفی wifiphisher , wifipumpkin3
۱۹ - رمزگشایی بسته های محیط با airdecap-ng
۲۰ - نوشتن اسکریپت استخراج رمز وای فای های ذخیره شده
🆔 : @MrPythonBlog | BOOST
Forwarded from جادی | Jadi
langlang.webm
2.2 MB
قطعه جدیدی از شوپن
چند وقت قبل رابینسون مککلن در حال مرتب کردن بخشی از آرشیو موزه کتابخانه مورگان در منهتن بود که یه دستنوشته قدیمی کوچیک که گوشهاش اسم شوپن نوشته بود توجهاش رو جلب کرد.
اون از دستنوشته عکس گرفت و برای جفری کالبرگ که متخصص شوپن است فرستاد و ... و حالا جفری کالبرگ به تایمز گفته «فکم افتاد! هرگز این رو ندیده بودم».
حالا بعد از بررسی دقیق کاغذ، جوهر، دستخط و سبک موسیقی، کارشناسان معتقد هستن که این یکی از آثار گمشده شوپن است. این والتز احتمالا وقتی شوپن در دهه سوم زندگیش بوده نوشته شده و اینجا لنگ لنگ نوازنده چینی اجراش کرده و منم اینجا می ذارم که یه دقیقه آرامش بخش بشه برامون.
#هنر
چند وقت قبل رابینسون مککلن در حال مرتب کردن بخشی از آرشیو موزه کتابخانه مورگان در منهتن بود که یه دستنوشته قدیمی کوچیک که گوشهاش اسم شوپن نوشته بود توجهاش رو جلب کرد.
اون از دستنوشته عکس گرفت و برای جفری کالبرگ که متخصص شوپن است فرستاد و ... و حالا جفری کالبرگ به تایمز گفته «فکم افتاد! هرگز این رو ندیده بودم».
حالا بعد از بررسی دقیق کاغذ، جوهر، دستخط و سبک موسیقی، کارشناسان معتقد هستن که این یکی از آثار گمشده شوپن است. این والتز احتمالا وقتی شوپن در دهه سوم زندگیش بوده نوشته شده و اینجا لنگ لنگ نوازنده چینی اجراش کرده و منم اینجا می ذارم که یه دقیقه آرامش بخش بشه برامون.
#هنر
Forwarded from Syntax | سینتکس (Daimon)
این آقا خیلی تو لینکدین فارسی سروصدا به پا کرده و تو کتابخونه tensorflow کانتریبیوت کرده.
چند روز پیش تو یه کانال دیگم اشاره کرده بودن اما اینبار تو لینکدین خودمم پستشو دیدم.
هزارو خورده ای ری اکشن با کلی کامنت
اما قسمت دارک ماجرا زمانیه که محتویات کانتریبیوتش رو میبینیم که کلا یدونه کلمه از کامنت رو تغییر داده
واقعا لینکدین خیلی عجیبه
#fun
@Syntax_fa
چند روز پیش تو یه کانال دیگم اشاره کرده بودن اما اینبار تو لینکدین خودمم پستشو دیدم.
هزارو خورده ای ری اکشن با کلی کامنت
اما قسمت دارک ماجرا زمانیه که محتویات کانتریبیوتش رو میبینیم که کلا یدونه کلمه از کامنت رو تغییر داده
واقعا لینکدین خیلی عجیبه
#fun
@Syntax_fa
Forwarded from جادی | Jadi
This media is not supported in your browser
VIEW IN TELEGRAM
قطعه جدیدی از شوپن
چند وقت قبل رابینسون مککلن در حال مرتب کردن بخشی از آرشیو موزه کتابخانه مورگان در منهتن بود که یه دستنوشته قدیمی کوچیک که گوشهاش اسم شوپن نوشته بود توجهاش رو جلب کرد.
اون از دستنوشته عکس گرفت و برای جفری کالبرگ که متخصص شوپن است فرستاد و ... و حالا جفری کالبرگ به تایمز گفته «فکم افتاد! هرگز این رو ندیده بودم».
حالا بعد از بررسی دقیق کاغذ، جوهر، دستخط و سبک موسیقی، کارشناسان معتقد هستن که این یکی از آثار گمشده شوپن است. این والتز احتمالا وقتی شوپن در دهه سوم زندگیش بوده نوشته شده و اینجا لنگ لنگ نوازنده چینی اجراش کرده و منم اینجا می ذارم که یه دقیقه آرامش بخش بشه برامون.
#هنر
پ.ن. ظاهرا به خاطر فرمت در گوشیها درست پخش نمیشد؛ دوباره گذاشتم
چند وقت قبل رابینسون مککلن در حال مرتب کردن بخشی از آرشیو موزه کتابخانه مورگان در منهتن بود که یه دستنوشته قدیمی کوچیک که گوشهاش اسم شوپن نوشته بود توجهاش رو جلب کرد.
اون از دستنوشته عکس گرفت و برای جفری کالبرگ که متخصص شوپن است فرستاد و ... و حالا جفری کالبرگ به تایمز گفته «فکم افتاد! هرگز این رو ندیده بودم».
حالا بعد از بررسی دقیق کاغذ، جوهر، دستخط و سبک موسیقی، کارشناسان معتقد هستن که این یکی از آثار گمشده شوپن است. این والتز احتمالا وقتی شوپن در دهه سوم زندگیش بوده نوشته شده و اینجا لنگ لنگ نوازنده چینی اجراش کرده و منم اینجا می ذارم که یه دقیقه آرامش بخش بشه برامون.
#هنر
پ.ن. ظاهرا به خاطر فرمت در گوشیها درست پخش نمیشد؛ دوباره گذاشتم
Forwarded from Linuxor ?
در نهایت هرچیزی بسازین مردم عادی اونو با front و ظاهرش قضاوتش میکنن؛
این ریپو کلی کامپوننت UI رایگان رو جمع آوری کرده و میتونید توی Web App هاتون استفاده کنید :
https://github.com/karthikmudunuri/eldoraui
🐧 @Linuxor
این ریپو کلی کامپوننت UI رایگان رو جمع آوری کرده و میتونید توی Web App هاتون استفاده کنید :
https://github.com/karthikmudunuri/eldoraui
🐧 @Linuxor
Forwarded from Go Casts 🚀
آپدیت تیمسازی + فیدبک یکی از دوستان نسبت به دوره
این هفته ها با بچه های تیمسازی ۳ بیشتر مشغول solution design و آماده کردن code structure برای پروژه ای هستیم که یه پلتفرم برای رستوران و کافه ها باشه، و سعی کردیم با جدا کردن domain های بیزینسی یه سری microservice رو توسعه بدیم.
هر چند که به شخصه دغدغه ای بابت monolith یا microservice بودن ندارم و دلایلم رو در دوره روی کد گفتم که چرا این سوال اون قدرها هم سوال مهمی نیست، هر چند که microserivce بودن overheadهای خودشو داره.
تخفیف پاییز «دوره +تیمسازی» در آبان ماه هم پابرجاست
دوره + تیمسازی بکند و گولنگ Go Casts
لینک خرید دوره + تیمسازی با ۵۰ درصد تخفیف به مبلغ ۴ میلیون و ۵۰۰ هزار تومان
https://survey.porsline.ir/s/PISsWn7f
همه چیز در مورد دوره و تیمسازی در این پست توضیح داده شده
https://t.iss.one/gocasts/434
تو این پست هم میتونید فیدبک های دوره و تیمسازی و استخدام بچه هارو بخونید
https://t.iss.one/gocasts/441
دوستانی که در خرید دوره تردید دارند میتونن برای مشاوره کوتاه تلفنی، فرم زیر رو پر کنند که باهاشون تماس بگیرم
https://survey.porsline.ir/s/ATeQL4b4
@gocasts
این هفته ها با بچه های تیمسازی ۳ بیشتر مشغول solution design و آماده کردن code structure برای پروژه ای هستیم که یه پلتفرم برای رستوران و کافه ها باشه، و سعی کردیم با جدا کردن domain های بیزینسی یه سری microservice رو توسعه بدیم.
هر چند که به شخصه دغدغه ای بابت monolith یا microservice بودن ندارم و دلایلم رو در دوره روی کد گفتم که چرا این سوال اون قدرها هم سوال مهمی نیست، هر چند که microserivce بودن overheadهای خودشو داره.
تخفیف پاییز «دوره +تیمسازی» در آبان ماه هم پابرجاست
دوره + تیمسازی بکند و گولنگ Go Casts
لینک خرید دوره + تیمسازی با ۵۰ درصد تخفیف به مبلغ ۴ میلیون و ۵۰۰ هزار تومان
https://survey.porsline.ir/s/PISsWn7f
همه چیز در مورد دوره و تیمسازی در این پست توضیح داده شده
https://t.iss.one/gocasts/434
تو این پست هم میتونید فیدبک های دوره و تیمسازی و استخدام بچه هارو بخونید
https://t.iss.one/gocasts/441
دوستانی که در خرید دوره تردید دارند میتونن برای مشاوره کوتاه تلفنی، فرم زیر رو پر کنند که باهاشون تماس بگیرم
https://survey.porsline.ir/s/ATeQL4b4
@gocasts
Forwarded from DevTwitter | توییت برنامه نویسی
خواهشا ردیس را به عنوان Primary Database استفاده نکنید!
یکی از جذابترین ریفکتور هایی که در اکالا انجام دادم، به ریلیز کردن ۴۰ گیگابایت رم ردیس برای استفاده در سبد خرید و سفارشها مربوط میشه. در این فرآیند، موفق شدم تنها از ۴۰۰ مگابایت رم استفاده کنم!
در شروع کار، به این فکر میکردم که چگونه میتوانم ۴۰ گیگابایت رم را آزاد کنم. اولین راهحلی که به ذهنم رسید، فشردهسازی دادهها بود. اما هیچ کامپرسوری نمیتوانست به اندازه کافی این حجم داده را فشرده کند، و هزینهی Decompress کردن آن بخاطر لود بالای سیستم، بسیار بالا بود.
هر کلید ما حاوی حدود ۱-۲ کیلوبایت JSON بود و مجبور بودیم که هر محصول را بدون TTL در Redis نگه داریم، زیرا Round Trip ما به Redis در لحظه به حدود ۳۰K میرسید و Redis ۴۰ گیگابایتی را مصرف میکرد. هیچ اپلیکیشنی نمیتوانست این حجم Request را با منابع پایین و زمان پاسخدهی ۱۰ میلیثانیه انجام دهد!
در ادامه، وقتی وارد فضای حل مسئله شدم:
پاکسازی دادههای اضافی: اولین قدم ما حذف کلی دادههای غیرضروری بود که هر کلید را به حدوداً ۵۰۰ بایت تبدیل کرد.
استفاده از Protobuf: به این فکر کردم که چرا از JSON استفاده کنیم؟ با استفاده از deserializer و serializer قدرتمندی مثل Protobuf، میتوانستیم حجم دادهها را به طور چشمگیری کاهش دهیم. با تبدیل دادهها به باینری و ذخیره آن، حجم هر کلید به حدود ۳۰۰ بایت کاهش یافت، که به معنای کاهش ۸۰ درصدی مصرف رم بود. با این حال، کیفیت و سرعت بالا در اکالا برای ما بسیار مهم بود.
شکستن کلیدها: کلیدها را به دو بخش تقسیم کردم:
اطلاعات محصول (شامل نام، بارکد، آدرس عکس و...) در یک کلید با حجم تقریباً ۲۰۰ بایت.
موجودی هر محصول در فروشگاهها در کلیدی دیگر با حجم حدود ۱۰۰ بایت.
در روش قبلی، اگر یک میلیون کالا داشتیم، مصرف حدود ۲۸۶ مگابایت بود. اما در روش جدید، فرض کنیم از یک میلیون تا 2000 محصول داریم و برای یک میلیون کالا موجودی در استور های مختلف، حدود ۹۵ مگابایت مصرف میشد!
کش کردن محصولات: همچنین، کالاهای اضافهشده به سبد خرید مشتریان را به مدت ۴ روز کش کردم. به جای استفاده از Redis به عنوان Primary Database و بدون TTL، هرگاه دادهای نداشتیم، از منبع اصلی اطلاعات را میگرفتیم و دوباره به مدت ۴ روز کش میکردیم. اگر کاربری همان کالا را دوباره به سبد خرید اضافه میکرد، TTL آن به صورت Sliding افزایش مییافت.
در نهایت، با همین ۴۰۰ مگابایت، همه چیز به خوبی به هم رسید و ما توانستیم پرفورمنس و سرعت را بدون هیچ افت کیفیتی حفظ کنیم!
@DevTwitter | <Hassan Arab borzo/>
یکی از جذابترین ریفکتور هایی که در اکالا انجام دادم، به ریلیز کردن ۴۰ گیگابایت رم ردیس برای استفاده در سبد خرید و سفارشها مربوط میشه. در این فرآیند، موفق شدم تنها از ۴۰۰ مگابایت رم استفاده کنم!
در شروع کار، به این فکر میکردم که چگونه میتوانم ۴۰ گیگابایت رم را آزاد کنم. اولین راهحلی که به ذهنم رسید، فشردهسازی دادهها بود. اما هیچ کامپرسوری نمیتوانست به اندازه کافی این حجم داده را فشرده کند، و هزینهی Decompress کردن آن بخاطر لود بالای سیستم، بسیار بالا بود.
هر کلید ما حاوی حدود ۱-۲ کیلوبایت JSON بود و مجبور بودیم که هر محصول را بدون TTL در Redis نگه داریم، زیرا Round Trip ما به Redis در لحظه به حدود ۳۰K میرسید و Redis ۴۰ گیگابایتی را مصرف میکرد. هیچ اپلیکیشنی نمیتوانست این حجم Request را با منابع پایین و زمان پاسخدهی ۱۰ میلیثانیه انجام دهد!
در ادامه، وقتی وارد فضای حل مسئله شدم:
پاکسازی دادههای اضافی: اولین قدم ما حذف کلی دادههای غیرضروری بود که هر کلید را به حدوداً ۵۰۰ بایت تبدیل کرد.
استفاده از Protobuf: به این فکر کردم که چرا از JSON استفاده کنیم؟ با استفاده از deserializer و serializer قدرتمندی مثل Protobuf، میتوانستیم حجم دادهها را به طور چشمگیری کاهش دهیم. با تبدیل دادهها به باینری و ذخیره آن، حجم هر کلید به حدود ۳۰۰ بایت کاهش یافت، که به معنای کاهش ۸۰ درصدی مصرف رم بود. با این حال، کیفیت و سرعت بالا در اکالا برای ما بسیار مهم بود.
شکستن کلیدها: کلیدها را به دو بخش تقسیم کردم:
اطلاعات محصول (شامل نام، بارکد، آدرس عکس و...) در یک کلید با حجم تقریباً ۲۰۰ بایت.
موجودی هر محصول در فروشگاهها در کلیدی دیگر با حجم حدود ۱۰۰ بایت.
در روش قبلی، اگر یک میلیون کالا داشتیم، مصرف حدود ۲۸۶ مگابایت بود. اما در روش جدید، فرض کنیم از یک میلیون تا 2000 محصول داریم و برای یک میلیون کالا موجودی در استور های مختلف، حدود ۹۵ مگابایت مصرف میشد!
کش کردن محصولات: همچنین، کالاهای اضافهشده به سبد خرید مشتریان را به مدت ۴ روز کش کردم. به جای استفاده از Redis به عنوان Primary Database و بدون TTL، هرگاه دادهای نداشتیم، از منبع اصلی اطلاعات را میگرفتیم و دوباره به مدت ۴ روز کش میکردیم. اگر کاربری همان کالا را دوباره به سبد خرید اضافه میکرد، TTL آن به صورت Sliding افزایش مییافت.
در نهایت، با همین ۴۰۰ مگابایت، همه چیز به خوبی به هم رسید و ما توانستیم پرفورمنس و سرعت را بدون هیچ افت کیفیتی حفظ کنیم!
@DevTwitter | <Hassan Arab borzo/>
Forwarded from Code Module | کد ماژول (𔓙)
درود ماژولیتیای گل💙
دوستان گروه از چنل بنا به یک سری دلایل جدا شده. دلیل اصلیش هم نظم دادن به گروه بود و الان با داشتن تاپیکهای لازم، دیگه سوال کسی این وسط گم نمیشه و دسترسیتون به پیام ها خیلی راحت تر خواهد بود.
در صورت داشتن هر گونه سوال، انتقاد و ... میتونید توی گروهمون جوین باشید👇🏻
@CodeModuleGap
دوستان گروه از چنل بنا به یک سری دلایل جدا شده. دلیل اصلیش هم نظم دادن به گروه بود و الان با داشتن تاپیکهای لازم، دیگه سوال کسی این وسط گم نمیشه و دسترسیتون به پیام ها خیلی راحت تر خواهد بود.
در صورت داشتن هر گونه سوال، انتقاد و ... میتونید توی گروهمون جوین باشید👇🏻
@CodeModuleGap
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
🔰خبری از گنوم جدید:
نسخه جدید محیط دسکتاپ GNOME 48 "بنگالورو" قرار است در تاریخ ۱۹ مارس ۲۰۲۵ منتشر شود. این نسخه شامل برنامه زمانبندی انتشار است که تاریخ انتشار آن تعیین شده است. در اینجا میتوانید ببینید چه چیزهایی از این نسخه انتظار میرود!
🔹برنامه زمانبندی انتشار گنوم 48
- گنوم 48 Alpha ژانویه ۲۰۲۵
- گنوم 48 Beta – فوریه ۲۰۲۵
- نامزد انتشار – ۱ مارس ۲۰۲۵
- انتشار نهایی – ۱۹ مارس ۲۰۲۵
🔹یک ویژگی که میدانم در GNOME 48 وجود خواهد داشت، یک برنامه نمایشگر تصاویر Loupe بهبود یافته است که ویژگیهای هیجانانگیزی مانند کنترلهای زوم را شامل میشود. این ویژگیها اجازه میدهد کاربران درصد زوم خاصی را وارد کنند،
یک بارگذار برای فرمتهای تصویر RAW و ویژگیهای اولیه ویرایش تصویر مانند برش تصاویر خواهد داشت.
توسعهدهندگان GNOME قصد دارند بهروزرسانیهای بیشتری برای آخرین نسخه GNOME 47 منتشر کنند که نسخه بعدی آن GNOME 47.2 خواهد بود و برای اواخر نوامبر یا اوایل دسامبر ۲۰۲۴ برنامهریزی شده است.
نویسنده: حسین سیلانی
منبع : کانال لینوکسی: لینوکس تی ان تی
@linuxtnt
حمایت از کانال-donate
https://zarinp.al/learninghive.ir
نسخه جدید محیط دسکتاپ GNOME 48 "بنگالورو" قرار است در تاریخ ۱۹ مارس ۲۰۲۵ منتشر شود. این نسخه شامل برنامه زمانبندی انتشار است که تاریخ انتشار آن تعیین شده است. در اینجا میتوانید ببینید چه چیزهایی از این نسخه انتظار میرود!
🔹برنامه زمانبندی انتشار گنوم 48
- گنوم 48 Alpha ژانویه ۲۰۲۵
- گنوم 48 Beta – فوریه ۲۰۲۵
- نامزد انتشار – ۱ مارس ۲۰۲۵
- انتشار نهایی – ۱۹ مارس ۲۰۲۵
🔹یک ویژگی که میدانم در GNOME 48 وجود خواهد داشت، یک برنامه نمایشگر تصاویر Loupe بهبود یافته است که ویژگیهای هیجانانگیزی مانند کنترلهای زوم را شامل میشود. این ویژگیها اجازه میدهد کاربران درصد زوم خاصی را وارد کنند،
یک بارگذار برای فرمتهای تصویر RAW و ویژگیهای اولیه ویرایش تصویر مانند برش تصاویر خواهد داشت.
توسعهدهندگان GNOME قصد دارند بهروزرسانیهای بیشتری برای آخرین نسخه GNOME 47 منتشر کنند که نسخه بعدی آن GNOME 47.2 خواهد بود و برای اواخر نوامبر یا اوایل دسامبر ۲۰۲۴ برنامهریزی شده است.
نویسنده: حسین سیلانی
منبع : کانال لینوکسی: لینوکس تی ان تی
@linuxtnt
حمایت از کانال-donate
https://zarinp.al/learninghive.ir
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy 🌱 Raymond)
🔶 لینوس توروالدز : هوش مصنوعی ۹۰ درصد تبلیغات و ۱۰ درصد واقعیت است
هرچند هوش مصنوعی قابلیت تغییر جهان را دارد، درحالحاضر بهدلیل تمرکز بیشازحد بر تبلیغات، نمیتوان بهطور کامل به آن اعتماد کرد. وی به این نکته نیز اشاره کرد که بسیاری از کاربردهای فعلی هوش مصنوعی، مانند تولید محتوا با ChatGPT، بیشتر جنبه نمایشی دارند.
https://www.youtube.com/watch?v=s4wlrxFf2lM
#AI
@TheRaymondDev
هرچند هوش مصنوعی قابلیت تغییر جهان را دارد، درحالحاضر بهدلیل تمرکز بیشازحد بر تبلیغات، نمیتوان بهطور کامل به آن اعتماد کرد. وی به این نکته نیز اشاره کرد که بسیاری از کاربردهای فعلی هوش مصنوعی، مانند تولید محتوا با ChatGPT، بیشتر جنبه نمایشی دارند.
https://www.youtube.com/watch?v=s4wlrxFf2lM
#AI
@TheRaymondDev
Forwarded from Galaxy Ai (♪ Ayhan)
Password Generator in Bash
From time to time, you need to change your passwords. Everyone knows that a good password should include uppercase and lowercase Latin letters, numbers, and special characters. Additionally, they should not be too short. Coming up with new passwords each time is becoming increasingly difficult, especially if you use different passwords for different services. You can use programs like pwgen or the generator built into KeepassX for this purpose. Alternatively, you can write a simple password generator in Bash.
Characters Used
We will use the following characters: Uppercase and lowercase letters of the Latin alphabet (A-Z and a-z), numbers (0-9), and the symbols "!@#$%^*()?/|~]{}-+_=<>.,". This combination ensures maximum security.
Password Length
The password length will be 16 characters. If you need a shorter password, you can specify a smaller length in the script or add a command-line option.
Bash Password Generator Script
The first thing we need is a variable containing all the characters we will use. We also need a variable for the password length and a variable to store the password itself.
That's it. This is the entire script. With it, we can generate a password that meets all common security requirements. The only remaining problem is remembering it.
From time to time, you need to change your passwords. Everyone knows that a good password should include uppercase and lowercase Latin letters, numbers, and special characters. Additionally, they should not be too short. Coming up with new passwords each time is becoming increasingly difficult, especially if you use different passwords for different services. You can use programs like pwgen or the generator built into KeepassX for this purpose. Alternatively, you can write a simple password generator in Bash.
Characters Used
We will use the following characters: Uppercase and lowercase letters of the Latin alphabet (A-Z and a-z), numbers (0-9), and the symbols "!@#$%^*()?/|~]{}-+_=<>.,". This combination ensures maximum security.
Password Length
The password length will be 16 characters. If you need a shorter password, you can specify a smaller length in the script or add a command-line option.
Bash Password Generator Script
The first thing we need is a variable containing all the characters we will use. We also need a variable for the password length and a variable to store the password itself.
bash
SYMBOLS=""
for symbol in {A..Z} {a..z} {0..9}; do SYMBOLS=$SYMBOLS$symbol; done
SYMBOLS=$SYMBOLS'!@#$%&*()?/[]{}-+_=<>.,'
# The string with all characters has been created.
# Now we need to loop with the number of iterations equal to the password length
# and randomly select one character to add to the password string.
PWD_LENGTH=16 # password length
PASSWORD="" # variable for storing the password
RANDOM=256 # initialize random number generator
for i in seq 1 $PWD_LENGTH
do
PASSWORD=$PASSWORD${SYMBOLS:$(expr $RANDOM % ${#SYMBOLS}):1}
done
echo $PASSWORD
That's it. This is the entire script. With it, we can generate a password that meets all common security requirements. The only remaining problem is remembering it.
Forwarded from Gopher Academy
🔵 عنوان مقاله
Go Gets High-Resolution Timers on Windows
🟢 خلاصه مقاله:
در این مقاله به بررسی پشتیبانی افزوده شده برای تایمرهای با وضوح بالا در نسخه 1.23 زبان برنامهنویسی Go بر روی سیستمعامل ویندوز پرداخته شده است. در نسخههای پیشین، وضوح تایمرها در حدود 15.6 میلیثانیه بود، اما با بهروزرسانیهای جدید، این وضوح به تقریباً 0.5 میلیثانیه افزایش یافته است. این بهبود قابل توجه، امکان دقت بیشتری را در زمانبندی عملیات و به خصوص در برنامههایی که نیازمند پردازش زمانی دقیق هستند، فراهم میکند. این تغییر میتواند تاثیرات مهمی در بهبود عملکرد کلی برنامههای نوشته شده به زبان Go داشته باشد، به ویژه در محیطهایی که پاسخگویی سریع الزامی است.
🟣لینک مقاله:
https://golangweekly.com/link/160756/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Go Gets High-Resolution Timers on Windows
🟢 خلاصه مقاله:
در این مقاله به بررسی پشتیبانی افزوده شده برای تایمرهای با وضوح بالا در نسخه 1.23 زبان برنامهنویسی Go بر روی سیستمعامل ویندوز پرداخته شده است. در نسخههای پیشین، وضوح تایمرها در حدود 15.6 میلیثانیه بود، اما با بهروزرسانیهای جدید، این وضوح به تقریباً 0.5 میلیثانیه افزایش یافته است. این بهبود قابل توجه، امکان دقت بیشتری را در زمانبندی عملیات و به خصوص در برنامههایی که نیازمند پردازش زمانی دقیق هستند، فراهم میکند. این تغییر میتواند تاثیرات مهمی در بهبود عملکرد کلی برنامههای نوشته شده به زبان Go داشته باشد، به ویژه در محیطهایی که پاسخگویی سریع الزامی است.
🟣لینک مقاله:
https://golangweekly.com/link/160756/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Microsoft News
High-Resolution Timers on Windows
The Go Windows port added support for high-resolution timers in Go 1.23, boosting the resolution of time.Sleep from ~15.6ms to ~0.5ms.
Forwarded from DevTwitter | توییت برنامه نویسی
بعد از تجربه چندین پروژه در طراحی پنل و سایت اصلی، چه به صورت فردی و چه در قالب کارهای گروهی، اکنون در فریمورک Vue.js همراه با فریم ورک لارول پیش میبرم . در این مسیر، با Vuex به عنوان ابزار مدیریت وضعیت اصلی Vue 2 و Vue 3 کار کردهام. اما با توجه به اینکه در Vue 3، ابزار Pinia به عنوان ابزار رسمی و توصیهشده برای مدیریت وضعیت معرفی شده،
,ولی بازم vuex در ویو ۳ کاربرد داره ولی خب ... تصمیم گرفتم به تدریج از Vuex جدا شم و به Pinia مهاجرت کنم. اما چرا؟؟
در Vue.js روشهای مختلفی برای مدیریت وضعیت (State Management) وجود دارد که انتخاب هر روش به نیاز و پیچیدگی پروژه بستگی دارد. در زیر، برخی از ابزارها و روشهای پرکاربرد برای مدیریت وضعیت در Vue را بررسی میکنیم:
استفاده از props و events
این روش ابتداییترین روش مدیریت وضعیت است. از props برای ارسال داده از کامپوننت والد به فرزندان و از events برای انتقال دادهها به سمت بالا استفاده میشود. این روش در پروژههای کوچک و ساده مؤثر است اما برای پروژههای بزرگ کافی نیست.
استفاده از provide و inject
provide و inject به اشتراکگذاری وضعیت بین کامپوننتها بدون نیاز به props کمک میکنند. این روش در شرایطی که چندین کامپوننت نیاز به داده مشترک دارند مناسب است اما در پروژههای بزرگ محدودیت دارد.
ابزار Pinia، ابزار رسمی و توصیهشده برای Vue 3، با API ساده و روانی که دارد، تجربه توسعهدهنده را بهبود داده و از ویژگیهای Vue 3 مانند Composition API و سیستم واکنشپذیری پیشرفته بهره میبرد. این ابزار جایگزین Vuex در Vue 3 شده و برای پروژههای بزرگ گزینهای بهینه است.
ابزار Vuex ابزار اصلی مدیریت وضعیت در Vue 2 است و ساختاری متمرکز برای مدیریت دادهها ارائه میدهد. Vuex از state، mutations، actions و getters برای مدیریت وضعیت استفاده میکند. با وجود امکان استفاده از Vuex در Vue 3، تیم Vue اکنون Pinia را به عنوان جایگزین رسمی برای Vue 3 معرفی کرده است.
استفاده از Composition API و reactive
در Vue 3، Composition API و reactive به توسعهدهندگان امکان میدهند که وضعیتهای محلی را با سادگی بیشتری مدیریت کنند. این روش برای پروژههای متوسط و کوچک کارآمد است.
کتابخانههای خارجی (مانند Redux یا Zustand)
برخی از پروژههای پیچیده نیاز به ابزارهای دیگری مانند Redux دارند، هرچند این کتابخانهها مخصوص Vue نیستند و بیشتر در پروژههای چندپلتفرمی کاربرد دارند.
تجربه ای داشتم این بود که اگر بخواین با nuxt مخصوصا ورژن ۳ کارکنید pinia بهترین هست این جمله من دلیل نمیشه vuex بد باشه نه منظوم این نیست :)
منظورم این که راحتر دیپلوی میشه در ناکست ۳ و همین ...
@DevTwitter | <amirreza raadi/>
,ولی بازم vuex در ویو ۳ کاربرد داره ولی خب ... تصمیم گرفتم به تدریج از Vuex جدا شم و به Pinia مهاجرت کنم. اما چرا؟؟
در Vue.js روشهای مختلفی برای مدیریت وضعیت (State Management) وجود دارد که انتخاب هر روش به نیاز و پیچیدگی پروژه بستگی دارد. در زیر، برخی از ابزارها و روشهای پرکاربرد برای مدیریت وضعیت در Vue را بررسی میکنیم:
استفاده از props و events
این روش ابتداییترین روش مدیریت وضعیت است. از props برای ارسال داده از کامپوننت والد به فرزندان و از events برای انتقال دادهها به سمت بالا استفاده میشود. این روش در پروژههای کوچک و ساده مؤثر است اما برای پروژههای بزرگ کافی نیست.
استفاده از provide و inject
provide و inject به اشتراکگذاری وضعیت بین کامپوننتها بدون نیاز به props کمک میکنند. این روش در شرایطی که چندین کامپوننت نیاز به داده مشترک دارند مناسب است اما در پروژههای بزرگ محدودیت دارد.
ابزار Pinia، ابزار رسمی و توصیهشده برای Vue 3، با API ساده و روانی که دارد، تجربه توسعهدهنده را بهبود داده و از ویژگیهای Vue 3 مانند Composition API و سیستم واکنشپذیری پیشرفته بهره میبرد. این ابزار جایگزین Vuex در Vue 3 شده و برای پروژههای بزرگ گزینهای بهینه است.
ابزار Vuex ابزار اصلی مدیریت وضعیت در Vue 2 است و ساختاری متمرکز برای مدیریت دادهها ارائه میدهد. Vuex از state، mutations، actions و getters برای مدیریت وضعیت استفاده میکند. با وجود امکان استفاده از Vuex در Vue 3، تیم Vue اکنون Pinia را به عنوان جایگزین رسمی برای Vue 3 معرفی کرده است.
استفاده از Composition API و reactive
در Vue 3، Composition API و reactive به توسعهدهندگان امکان میدهند که وضعیتهای محلی را با سادگی بیشتری مدیریت کنند. این روش برای پروژههای متوسط و کوچک کارآمد است.
کتابخانههای خارجی (مانند Redux یا Zustand)
برخی از پروژههای پیچیده نیاز به ابزارهای دیگری مانند Redux دارند، هرچند این کتابخانهها مخصوص Vue نیستند و بیشتر در پروژههای چندپلتفرمی کاربرد دارند.
تجربه ای داشتم این بود که اگر بخواین با nuxt مخصوصا ورژن ۳ کارکنید pinia بهترین هست این جمله من دلیل نمیشه vuex بد باشه نه منظوم این نیست :)
منظورم این که راحتر دیپلوی میشه در ناکست ۳ و همین ...
@DevTwitter | <amirreza raadi/>
Forwarded from Linuxor ?
مدل های زبانی بزرگ، چطوری زبان انسان رو درک میکنن و بهش پاسخ میدن؟
توی این مقاله با فرض اینکه شما فقط ضرب و تقسیم بلدید آقای Rohit بهتون میگه چطوری LLM ها کار میکنن، البته کوتاه نیست و خوندنش حدود یک ساعت زمان میبره ولی خیلی رَون توضیح داده:
https://towardsdatascience.com/understanding-llms-from-scratch-using-middle-school-math-e602d27ec876
🐧 @Linuxor
توی این مقاله با فرض اینکه شما فقط ضرب و تقسیم بلدید آقای Rohit بهتون میگه چطوری LLM ها کار میکنن، البته کوتاه نیست و خوندنش حدود یک ساعت زمان میبره ولی خیلی رَون توضیح داده:
https://towardsdatascience.com/understanding-llms-from-scratch-using-middle-school-math-e602d27ec876
🐧 @Linuxor
Forwarded from Gopher Academy
✍️Farshad AkbariFarshad Akbari
💡 آشنایی با کتابخانه sync در Go و کاربردهای آن برای مدیریت همزمانی
در برنامهنویسی Go، وقتی چند گوروتین همزمان اجرا میشوند، مدیریت همزمانی و دسترسی به منابع مشترک اهمیت زیادی پیدا میکند. کتابخانه sync در Go ابزارهایی فراهم میکند که به توسعهدهندگان کمک میکند تا این مدیریت را به سادگی و بدون بروز خطا انجام دهند. در ادامه به سه ابزار اصلی این کتابخانه اشاره میکنم:
1️⃣ Mutex (قفل متقابل)
Mutex برای جلوگیری از دسترسی همزمان گوروتینها به یک منبع مشترک استفاده میشود. مثلا اگر چند گوروتین بخواهند به طور همزمان یک متغیر را تغییر دهند، با استفاده از Mutex میتوانیم قفل دسترسی به این منبع را به یک گوروتین محدود کنیم.
2️⃣ WaitGroup (انتظار برای پایان گوروتینها)
وقتی چند گوروتین همزمان اجرا میشوند و میخواهیم تا پایان کار همهی آنها صبر کنیم، WaitGroup کاربرد دارد. این ابزار به ما اجازه میدهد که منتظر بمانیم تا همه گوروتینها کارشان را تمام کنند.
3️⃣ Once (اجرا فقط یکبار)
با استفاده از Once، میتوانیم اطمینان حاصل کنیم که یک تابع فقط یک بار اجرا شود، حتی اگر چند گوروتین به طور همزمان آن را صدا بزنند. این ابزار برای مواردی مثل مقداردهی اولیه بسیار کاربردی است.
🔍 جمعبندی
کتابخانه sync به توسعهدهندگان Go کمک میکند تا همزمانی را به خوبی مدیریت کنند و از بروز مشکلاتی مثل شرایط رقابتی جلوگیری کنند. استفاده درست از این ابزارها باعث افزایش کارایی و ایمنی برنامههای چندوظیفهای میشود.
➖➖➖➖➖➖➖➖
👑 @gopher_academy
💡 آشنایی با کتابخانه sync در Go و کاربردهای آن برای مدیریت همزمانی
در برنامهنویسی Go، وقتی چند گوروتین همزمان اجرا میشوند، مدیریت همزمانی و دسترسی به منابع مشترک اهمیت زیادی پیدا میکند. کتابخانه sync در Go ابزارهایی فراهم میکند که به توسعهدهندگان کمک میکند تا این مدیریت را به سادگی و بدون بروز خطا انجام دهند. در ادامه به سه ابزار اصلی این کتابخانه اشاره میکنم:
1️⃣ Mutex (قفل متقابل)
Mutex برای جلوگیری از دسترسی همزمان گوروتینها به یک منبع مشترک استفاده میشود. مثلا اگر چند گوروتین بخواهند به طور همزمان یک متغیر را تغییر دهند، با استفاده از Mutex میتوانیم قفل دسترسی به این منبع را به یک گوروتین محدود کنیم.
2️⃣ WaitGroup (انتظار برای پایان گوروتینها)
وقتی چند گوروتین همزمان اجرا میشوند و میخواهیم تا پایان کار همهی آنها صبر کنیم، WaitGroup کاربرد دارد. این ابزار به ما اجازه میدهد که منتظر بمانیم تا همه گوروتینها کارشان را تمام کنند.
3️⃣ Once (اجرا فقط یکبار)
با استفاده از Once، میتوانیم اطمینان حاصل کنیم که یک تابع فقط یک بار اجرا شود، حتی اگر چند گوروتین به طور همزمان آن را صدا بزنند. این ابزار برای مواردی مثل مقداردهی اولیه بسیار کاربردی است.
🔍 جمعبندی
کتابخانه sync به توسعهدهندگان Go کمک میکند تا همزمانی را به خوبی مدیریت کنند و از بروز مشکلاتی مثل شرایط رقابتی جلوگیری کنند. استفاده درست از این ابزارها باعث افزایش کارایی و ایمنی برنامههای چندوظیفهای میشود.
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Forwarded from Laravel News
Sprout Multitenancy Package for Laravel https://laravel-news.com/sprout-laravel-multitenancy-package
Laravel News
Sprout Multitenancy Package for Laravel - Laravel News
Sprout is a multitenancy package for Laravel under active development. It hasn't hit a v1.0 release, but we decided to share it with those who want to try it out early and follow along with the development.
Forwarded from ASafaeirad
Today I Learned:
a super handy way to search through commit history to find exactly where a specific line or snippet was added or removed.
Read the article
#git #til
git log -Sa super handy way to search through commit history to find exactly where a specific line or snippet was added or removed.
Read the article
#git #til
Alexharri
Searching for and navigating Git commits
Exploring Git’s built-in tools for searching through and analyzing Git commit logs and diffs.