Forwarded from Md Daily (Mahan)
قسمت دوم (پایانی)
بعد از تلاش برای باز تولید مشکل هیچ پیغام خطا یا کرش واضحی وجود نداشته. stack trace مشخصی هم روی صفحه دیده نمیشده. فقط سکوت محض تا لحظه پیدا شدن یه خطای runtime error که از لایههای عمیق اون SDK آپدیتشدهی Apple Pay سرچشمه میگرفت.داشته سعی میکرده از یه method خاص استفاده کنه که توی محیط بعضی از مرورگرهای قدیمیتر اصلاً پشتیبانی نمیشده. نکتش اینجاس که Apple Pay فقط روی سافاری کار میکنه پس این خطا فقط روی نسخه های قدیمی سافاری خودشو نشون میداده. SDK موقع بالا اومدن و مقداردهی اولیه از یه تابع استفاده می کرده که باعث کرش میشده. نه فقط برای خود Apple Pay، بلکه برای همه چی! از همون باگهای موذی که موقع توسعه از زیر دست در میره و دیده نمیشه.
فقط درست کردن باگ مهم نیست؛ بحث سرِ قبول مسئولیت کاره
خب، باگ پیدا و کد هم به نسخه قبل برگردونده شده بود ولی خب کار اینجا تموم نمیشه. چون یه مهندس خوب بودن، فقط به این نیست که مشکل کاربر رو موقتاً حل کنی.مسئولیت اصلی اونجاست که یه قدم میری عقب و از خودت میپرسی:
- این خرابی و قطعی، واقعاً چه معنی و تجربهای برای کاربر داشت؟
- این قطعی چقدر برای کل کسبوکار هزینه برداشت؟
- آیا میشد این مشکل رو زودتر تشخیصش داد؟
- ممکنه دوباره همچین اتفاقی بیفته؟
ما اینجا نیستیم که فقط مثل ربات به آلارمها واکنش نشون بدیم و کدها رو سرسری وصلهپینه کنیم و ما کدنویسهایی نیستیم که بشه مثل ChatGPT بهمون پرامپت داد و انتظار داشت مشکل غیب بشه. اینجاییم که عمیق فکر کنیم، مسئولیت کامل نتایج کارهامون رو به عهده بگیریم و فعالانه جلوی آسیبهای آینده رو بگیریم.
پس برای مستند کردن چه چیز هایی رو میتونیم بنویسیم؟
- چی رو تغییر داده بودیم
- اصلاً چرا تغییرش داده بودیم
- چی و کجا خراب شد
- چطور شد که این مشکل از زیر دست تیم QA در رفت و دیده نشد
- چه چیزهایی توی monitoring ما از قلم افتاده بود که زودتر نفهمیدیم
این کار رو نه به خاطر اینکه کسی خواسته انجام بدیم، بلکه به این دلیل انجام بدیم که شاید خودِ آینده (یا یکی از همتیمیهای آینده) به مشکل مشابهی بر بخوره و اونها بتونن خیلی سریعتر به جواب و راه حل برسن.
این قطعی و اوتایج ها فقط بهمون یاد نمیده که چی اشتباه شده بود یا کجای کار میلنگید. باعث میشه از خودمون بپرسیم: اگه دوباره همچین اتفاقی بیفته، این بار چه کارهایی رو متفاوت انجام میدیم؟
جمعبندی و حرف آخر
راستش هیچکس به آدم نمیگه اولین باری که یه مشکل جدی و یه «آتیشسوزی» تو محیط پروداکشن درست میکنی، دقیقاً چه حسی داره. فوقالعاده پراسترسه و بله، گاهی وقتا هم واقعاً تقصیر کدیه که شما نوشتین.
ولی خب، آدم یاد میگیره.
یاد میگیری که «قبول کردن کامل مسئولیت» واقعاً یعنی چی.
یاد میگیری که چطور یه قدم بری عقبتر و دید وسیعتری پیدا کنی (zoom out کنی)؛ دیگه فقط به این فکر نکنی که «چی خراب شد؟»، بلکه بری سراغ اینکه «این خرابی روی چه کسایی تأثیر گذاشت؟».
یاد میگیری که یه مهندس خوب بودن، به معنی نوشتن کدِ بیعیبونقص و عالی نیست؛ بلکه به اینه که چطور بحران رو مدیریت میکنی، وقتی که اوضاع اصلاً خوب و عالی نیست.
یه چکلیست برای وقتی که این اتفاق برای شما میفته:
- سریع نپرین سراغ دیباگ کردن: اگه مشکل جدیه و روی کاربرها تأثیر مستقیم گذاشته، اولین قدم اینه که کد رو برگردونین به نسخهی قبلی. بعدش با خیال راحتتر برین دنبال دلیل مشکل بگردین.
- زود و شفاف اطلاعرسانی کنین: حتی یه پیام کوتاه مثل «دوستان دارم بررسی میکنم» توی کانالهای ارتباطی خیلی تأثیر مثبتی داره و به آروم شدن فضا کمک میکنه.
- سعی کنین مشکل رو توی محیطهای کنترلشده و ایزوله باز تولید کنین: یعنی دقیقاً با همون شرایطی که مشکل پیش اومده (مثلاً همون مرورگر، همون نسخه و ...).
- لاگها، درخواستهای شبکه، و نحوهی مدیریت خطاها رو با دقت چک کنین: هیچوقت فرض نکنین که اگه مشکلی باشه، حتماً سیستم با سر و صدای زیاد کرش میکنه و سریع متوجه میشین! گاهی مشکلات خیلی بیسر و صدا اتفاق میافتن.
- آستانهی هشدارهای سیستم پایش و مانیتورینگ رو دوباره یه نگاهی بندازین: آیا واقعاً جوری تنظیم شدن که خرابیهای کوچیک، نامحسوس یا تدریجی رو هم زود تشخیص بدن؟
- اتفاقی که افتاده رو با زبون ساده و واضح مستند کنین: این کار رو فقط برای بقیه اعضای تیم انجام ندین، بلکه برای خودتون در آینده هم انجام بدین. حافظه یاری نمیکنه!
- به تأثیر مشکل روی کسبوکار (business impact) فکر کنین: حدوداً چند تا کاربر تحت تأثیر قرار گرفتن؟ و این مشکل برای چه مدت زمانی ادامه داشت؟
- اگه در حین بررسی، به الگوها یا نکتههای کلیدی رسیدین، حتماً یادداشتشون کنین: این نکتهها برای بحران بعدی فوقالعاده ارزشمندن.
—-
💡 مثل همیشه کنجکاو بمونید :)
🆔 @MdDaily
بعد از تلاش برای باز تولید مشکل هیچ پیغام خطا یا کرش واضحی وجود نداشته. stack trace مشخصی هم روی صفحه دیده نمیشده. فقط سکوت محض تا لحظه پیدا شدن یه خطای runtime error که از لایههای عمیق اون SDK آپدیتشدهی Apple Pay سرچشمه میگرفت.داشته سعی میکرده از یه method خاص استفاده کنه که توی محیط بعضی از مرورگرهای قدیمیتر اصلاً پشتیبانی نمیشده. نکتش اینجاس که Apple Pay فقط روی سافاری کار میکنه پس این خطا فقط روی نسخه های قدیمی سافاری خودشو نشون میداده. SDK موقع بالا اومدن و مقداردهی اولیه از یه تابع استفاده می کرده که باعث کرش میشده. نه فقط برای خود Apple Pay، بلکه برای همه چی! از همون باگهای موذی که موقع توسعه از زیر دست در میره و دیده نمیشه.
فقط درست کردن باگ مهم نیست؛ بحث سرِ قبول مسئولیت کاره
خب، باگ پیدا و کد هم به نسخه قبل برگردونده شده بود ولی خب کار اینجا تموم نمیشه. چون یه مهندس خوب بودن، فقط به این نیست که مشکل کاربر رو موقتاً حل کنی.مسئولیت اصلی اونجاست که یه قدم میری عقب و از خودت میپرسی:
- این خرابی و قطعی، واقعاً چه معنی و تجربهای برای کاربر داشت؟
- این قطعی چقدر برای کل کسبوکار هزینه برداشت؟
- آیا میشد این مشکل رو زودتر تشخیصش داد؟
- ممکنه دوباره همچین اتفاقی بیفته؟
ما اینجا نیستیم که فقط مثل ربات به آلارمها واکنش نشون بدیم و کدها رو سرسری وصلهپینه کنیم و ما کدنویسهایی نیستیم که بشه مثل ChatGPT بهمون پرامپت داد و انتظار داشت مشکل غیب بشه. اینجاییم که عمیق فکر کنیم، مسئولیت کامل نتایج کارهامون رو به عهده بگیریم و فعالانه جلوی آسیبهای آینده رو بگیریم.
پس برای مستند کردن چه چیز هایی رو میتونیم بنویسیم؟
- چی رو تغییر داده بودیم
- اصلاً چرا تغییرش داده بودیم
- چی و کجا خراب شد
- چطور شد که این مشکل از زیر دست تیم QA در رفت و دیده نشد
- چه چیزهایی توی monitoring ما از قلم افتاده بود که زودتر نفهمیدیم
این کار رو نه به خاطر اینکه کسی خواسته انجام بدیم، بلکه به این دلیل انجام بدیم که شاید خودِ آینده (یا یکی از همتیمیهای آینده) به مشکل مشابهی بر بخوره و اونها بتونن خیلی سریعتر به جواب و راه حل برسن.
این قطعی و اوتایج ها فقط بهمون یاد نمیده که چی اشتباه شده بود یا کجای کار میلنگید. باعث میشه از خودمون بپرسیم: اگه دوباره همچین اتفاقی بیفته، این بار چه کارهایی رو متفاوت انجام میدیم؟
جمعبندی و حرف آخر
راستش هیچکس به آدم نمیگه اولین باری که یه مشکل جدی و یه «آتیشسوزی» تو محیط پروداکشن درست میکنی، دقیقاً چه حسی داره. فوقالعاده پراسترسه و بله، گاهی وقتا هم واقعاً تقصیر کدیه که شما نوشتین.
ولی خب، آدم یاد میگیره.
یاد میگیری که «قبول کردن کامل مسئولیت» واقعاً یعنی چی.
یاد میگیری که چطور یه قدم بری عقبتر و دید وسیعتری پیدا کنی (zoom out کنی)؛ دیگه فقط به این فکر نکنی که «چی خراب شد؟»، بلکه بری سراغ اینکه «این خرابی روی چه کسایی تأثیر گذاشت؟».
یاد میگیری که یه مهندس خوب بودن، به معنی نوشتن کدِ بیعیبونقص و عالی نیست؛ بلکه به اینه که چطور بحران رو مدیریت میکنی، وقتی که اوضاع اصلاً خوب و عالی نیست.
یه چکلیست برای وقتی که این اتفاق برای شما میفته:
- سریع نپرین سراغ دیباگ کردن: اگه مشکل جدیه و روی کاربرها تأثیر مستقیم گذاشته، اولین قدم اینه که کد رو برگردونین به نسخهی قبلی. بعدش با خیال راحتتر برین دنبال دلیل مشکل بگردین.
- زود و شفاف اطلاعرسانی کنین: حتی یه پیام کوتاه مثل «دوستان دارم بررسی میکنم» توی کانالهای ارتباطی خیلی تأثیر مثبتی داره و به آروم شدن فضا کمک میکنه.
- سعی کنین مشکل رو توی محیطهای کنترلشده و ایزوله باز تولید کنین: یعنی دقیقاً با همون شرایطی که مشکل پیش اومده (مثلاً همون مرورگر، همون نسخه و ...).
- لاگها، درخواستهای شبکه، و نحوهی مدیریت خطاها رو با دقت چک کنین: هیچوقت فرض نکنین که اگه مشکلی باشه، حتماً سیستم با سر و صدای زیاد کرش میکنه و سریع متوجه میشین! گاهی مشکلات خیلی بیسر و صدا اتفاق میافتن.
- آستانهی هشدارهای سیستم پایش و مانیتورینگ رو دوباره یه نگاهی بندازین: آیا واقعاً جوری تنظیم شدن که خرابیهای کوچیک، نامحسوس یا تدریجی رو هم زود تشخیص بدن؟
- اتفاقی که افتاده رو با زبون ساده و واضح مستند کنین: این کار رو فقط برای بقیه اعضای تیم انجام ندین، بلکه برای خودتون در آینده هم انجام بدین. حافظه یاری نمیکنه!
- به تأثیر مشکل روی کسبوکار (business impact) فکر کنین: حدوداً چند تا کاربر تحت تأثیر قرار گرفتن؟ و این مشکل برای چه مدت زمانی ادامه داشت؟
- اگه در حین بررسی، به الگوها یا نکتههای کلیدی رسیدین، حتماً یادداشتشون کنین: این نکتهها برای بحران بعدی فوقالعاده ارزشمندن.
—-
🆔 @MdDaily
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from DevTwitter | توییت برنامه نویسی
آقا من نمیدونستم همچین لیستی وجود داره:
Most active GitHub users in Iran
لینک:
https://committers.top/iran_private
@DevTwitter | <Ario Barzan/>
Most active GitHub users in Iran
لینک:
https://committers.top/iran_private
@DevTwitter | <Ario Barzan/>
Forwarded from متخصص وردپرس | پوینا
وقتی یک ادمین رو میخواید توی وردپرس پاک کنید که نوشته یا محصول داره
باید مشخص کنید مطالب این محصول و نوشته به کدوم از کاربران داده بشه
حالا اگر شما تعداد زیادی کاربر داشته باشید همه کاربران رو در این بخش لود میکنه و هم سرعت کم میشه هم به سختی میتونید پیدا کنید
کافیه این کد رو بزارید توی فاکشن قالب تا پس از پاک کردن یک کاربر یا ادمین فقط لیست ادمین ها رو نشون بده
هم سرعت بیشتر میشه هم فشار به سی پی یو و رم نمیاد
این کلا یه باگ بزرگ وردپرس هست که با این کد حل میشه
این کد رو بزارید توی فاکشن قالب :
add_filter( 'wp_dropdown_users_args', 'limit_users_in_delete_screen' );
function limit_users_in_delete_screen( $args ) {
global $pagenow;
if ( $pagenow === 'users.php' && isset($_GET['action']) && $_GET['action'] === 'delete' ) {
// فقط نقش مدیر کل
$args['role'] = 'administrator';
}
return $args;
}
@poinair پوینا
باید مشخص کنید مطالب این محصول و نوشته به کدوم از کاربران داده بشه
حالا اگر شما تعداد زیادی کاربر داشته باشید همه کاربران رو در این بخش لود میکنه و هم سرعت کم میشه هم به سختی میتونید پیدا کنید
کافیه این کد رو بزارید توی فاکشن قالب تا پس از پاک کردن یک کاربر یا ادمین فقط لیست ادمین ها رو نشون بده
هم سرعت بیشتر میشه هم فشار به سی پی یو و رم نمیاد
این کلا یه باگ بزرگ وردپرس هست که با این کد حل میشه
این کد رو بزارید توی فاکشن قالب :
add_filter( 'wp_dropdown_users_args', 'limit_users_in_delete_screen' );
function limit_users_in_delete_screen( $args ) {
global $pagenow;
if ( $pagenow === 'users.php' && isset($_GET['action']) && $_GET['action'] === 'delete' ) {
// فقط نقش مدیر کل
$args['role'] = 'administrator';
}
return $args;
}
@poinair پوینا
Forwarded from متخصص وردپرس | پوینا
نمایش تعداد سفارشات تکمیل شده و مجموع پرداختی ها در قسمت یوزر ها در ووکامرس
با اضافه کردن این کد انتهای قالبتون شبیه عکس بالا دو ستون اضافه میشه به بخش یوزر هاتون اضافه میشه که تعداد سفارشات تکمیل شده هر یوزر و مجموع پرداختی هاش رو نشون میده
@poinair پوینا
با اضافه کردن این کد انتهای قالبتون شبیه عکس بالا دو ستون اضافه میشه به بخش یوزر هاتون اضافه میشه که تعداد سفارشات تکمیل شده هر یوزر و مجموع پرداختی هاش رو نشون میده
@poinair پوینا
Forwarded from متخصص وردپرس | پوینا
نمایش روش پرداخت در قسمت سفارشات ووکامرس
اگر میخواید در قسمت سفارشات ووکامرس یک ستون اضافه بشه روش پرداخت رو نشون بده
این کد رو بزارید انتهای فاکشن قالبتون
مثلا نشون بده با زرین پال بوده بانک ملی بوده ملت بوده چی بوده
فقط نامش رو فارسی نمینویسه
@poinair پوینا
اگر میخواید در قسمت سفارشات ووکامرس یک ستون اضافه بشه روش پرداخت رو نشون بده
این کد رو بزارید انتهای فاکشن قالبتون
مثلا نشون بده با زرین پال بوده بانک ملی بوده ملت بوده چی بوده
فقط نامش رو فارسی نمینویسه
@poinair پوینا
Forwarded from متخصص وردپرس | پوینا
باگ امنیتی مهم توی وردپرس و ووکامرس
یکی از ایرادهای بزرگ وردپرس اینه که صفحه لاگینش برای همه یکیه یعنی هم ادمین و هم مشتری از یه صفحه وارد سایت میشن این قضیه میتونه امنیت سایتتون رو خیلی راحت به خطر بندازه.
باید کاری کنیم که از طریق صفحههایی مثل my-account دیگه نشه با یوزر ادمین وارد سایت شد و صفحه لاگین مخصوص ادمینها رو هم یه جای مخفی بذاریم.
توی کدی که براتون آماده کردیم، اگه کسی بخواد با یوزر ادمین از طریق my-account وارد بشه، بهش پیغام میده که همچین حسابی وجود نداره!
اگه لینک صفحه my-account سایتتون فرق داره، کافیه توی کد، لینک درست خودتون رو بذارید.
این کار باعث میشه امنیت سایتتون چند برابر بشه و صفحه لاگین ادمینها و مشتریها از هم جدا باشه!
فقط کافیه این کد رو انتهای فایل functions.php قالب سایتتون بذارید.
@poinair پوینا
یکی از ایرادهای بزرگ وردپرس اینه که صفحه لاگینش برای همه یکیه یعنی هم ادمین و هم مشتری از یه صفحه وارد سایت میشن این قضیه میتونه امنیت سایتتون رو خیلی راحت به خطر بندازه.
باید کاری کنیم که از طریق صفحههایی مثل my-account دیگه نشه با یوزر ادمین وارد سایت شد و صفحه لاگین مخصوص ادمینها رو هم یه جای مخفی بذاریم.
توی کدی که براتون آماده کردیم، اگه کسی بخواد با یوزر ادمین از طریق my-account وارد بشه، بهش پیغام میده که همچین حسابی وجود نداره!
اگه لینک صفحه my-account سایتتون فرق داره، کافیه توی کد، لینک درست خودتون رو بذارید.
این کار باعث میشه امنیت سایتتون چند برابر بشه و صفحه لاگین ادمینها و مشتریها از هم جدا باشه!
فقط کافیه این کد رو انتهای فایل functions.php قالب سایتتون بذارید.
@poinair پوینا
Forwarded from Philocode
بیایید بریم استرالیا... اگه عنکبوت سمی نیشمون نزنه و کانگورو شکممون رو پاره نکنه، آب و هواش خیلی خوبه!
Forwarded from Gopher Academy
🔵 عنوان مقاله
Vite Backend Integration for Go
🟢 خلاصه مقاله:
این مقاله به بررسی روشهای ادغام یک فرانتاند مبتنی بر Vite با بکاند مبتنی بر Go میپردازد. Vite به دلیل بازسازی سریع و امکاناتی چون جایگزینی ماژولهای داغ و بستهبندی بهینهشده، تجربه توسعه فرانتاند را بهبود میبخشد. از طرفی، Go برای بکاند به دلیل عملکرد قوی، کارایی بالا و مدیریت بهینه منابع در مدیریت ترافیک شبکه و پردازش داده مناسب است. ترکیب این دو فناوری اغلب از طریق تماسهای API برای برقراری ارتباط بین فرانتاند و بکاند انجام میگیرد، که نتیجه آن ساختاری قابل ارتقا و قابل نگهداری است که به خوبی پاسخگوی نیازهای مدرن تولید نرمافزار میشود.
🟣لینک مقاله:
https://golangweekly.com/link/168171/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Vite Backend Integration for Go
🟢 خلاصه مقاله:
این مقاله به بررسی روشهای ادغام یک فرانتاند مبتنی بر Vite با بکاند مبتنی بر Go میپردازد. Vite به دلیل بازسازی سریع و امکاناتی چون جایگزینی ماژولهای داغ و بستهبندی بهینهشده، تجربه توسعه فرانتاند را بهبود میبخشد. از طرفی، Go برای بکاند به دلیل عملکرد قوی، کارایی بالا و مدیریت بهینه منابع در مدیریت ترافیک شبکه و پردازش داده مناسب است. ترکیب این دو فناوری اغلب از طریق تماسهای API برای برقراری ارتباط بین فرانتاند و بکاند انجام میگیرد، که نتیجه آن ساختاری قابل ارتقا و قابل نگهداری است که به خوبی پاسخگوی نیازهای مدرن تولید نرمافزار میشود.
🟣لینک مقاله:
https://golangweekly.com/link/168171/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - olivere/vite: Vite backend integration for Go
Vite backend integration for Go. Contribute to olivere/vite development by creating an account on GitHub.
Forwarded from DevTwitter | توییت برنامه نویسی
اگه بخوای فقط یه کامیت رو از یه برنچ دیگه بیاری چیکار میکنی؟
تاحالا شده رو یه برنچی یه کامیت بزنی بعد بفهمی اون کامیت رو تو یه برنچ دیگه هم نیاز داری؟
با دستور git cherry-pick میتونی اینکارو بکنی.
فقط یه کامیت رو میخوای بیاری تو برنچ فعلی:
𝗚𝗶𝘁 𝗰𝗵𝗲𝗿𝗿𝘆-𝗽𝗶𝗰𝗸 [𝗰𝗼𝗺𝗺𝗶𝘁𝗜𝗗]
چندتا کامیت پشتسر هم رو میخوای بیاری تو برنچ فعلی:
𝗚𝗶𝘁 𝗰𝗵𝗲𝗿𝗿𝘆-𝗽𝗶𝗰𝗸 [𝘀𝘁𝗮𝗿𝘁𝗖𝗼𝗺𝗺𝗶𝘁𝗜𝗗]..[𝗲𝗻𝗱𝗖𝗼𝗺𝗺𝗶𝘁𝗜𝗗]
کامیت اشتباهی رو آوردی تو برنچ و میخوای برگردونی:
𝗚𝗶𝘁 𝗰𝗵𝗲𝗿𝗿𝘆-𝗽𝗶𝗰𝗸 —𝗮𝗯𝗼𝗿𝘁
فقط حواست باشه اگه وابستگی به کامیتهای قبلی داشته باشه، ممکنه conflict بخوری
@DevTwitter | <Soudabe Heydari/>
تاحالا شده رو یه برنچی یه کامیت بزنی بعد بفهمی اون کامیت رو تو یه برنچ دیگه هم نیاز داری؟
با دستور git cherry-pick میتونی اینکارو بکنی.
فقط یه کامیت رو میخوای بیاری تو برنچ فعلی:
𝗚𝗶𝘁 𝗰𝗵𝗲𝗿𝗿𝘆-𝗽𝗶𝗰𝗸 [𝗰𝗼𝗺𝗺𝗶𝘁𝗜𝗗]
چندتا کامیت پشتسر هم رو میخوای بیاری تو برنچ فعلی:
𝗚𝗶𝘁 𝗰𝗵𝗲𝗿𝗿𝘆-𝗽𝗶𝗰𝗸 [𝘀𝘁𝗮𝗿𝘁𝗖𝗼𝗺𝗺𝗶𝘁𝗜𝗗]..[𝗲𝗻𝗱𝗖𝗼𝗺𝗺𝗶𝘁𝗜𝗗]
کامیت اشتباهی رو آوردی تو برنچ و میخوای برگردونی:
𝗚𝗶𝘁 𝗰𝗵𝗲𝗿𝗿𝘆-𝗽𝗶𝗰𝗸 —𝗮𝗯𝗼𝗿𝘁
فقط حواست باشه اگه وابستگی به کامیتهای قبلی داشته باشه، ممکنه conflict بخوری
@DevTwitter | <Soudabe Heydari/>
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy 🌱)
🔶 دوستان گرامی توی اگهی استخدامتون هر چی میخواید تخصص بزنید مثل قبل
کارجو هم میبینه بررسی میکنه نهایتا چند تخصص رو نداره میره دنبال افزایش دانشش
اما خواهش میکنم توی اگهی ها شرط سنی رو ننویسید این باعث نشر ناامیدی در افرادی میشه که سنشون بالا میره و ممکنه حتی به رها کردن مارکت ختم بشه
جوان n ساله یا شخص n ساله هر دو حق دارن کار کنن و متخصص باشن اما شرط سن یعنی محدود کردن و محروم کردن
یعنی فرار از پرداخت حق تجربه و دانش ادمی که در این تخصص سالها وقتش رو گذاشته
بقیش هم که خودتون میدونید....
با احترام دو شرکت امسال برای معرفی نیرو به من زنگزدن چون شرط سنی داشتن هیچ نیرویی بهشون معرفی نکردم و نخواهم کرد
خواهشا اگهی که شرط سنی داره رو تحریم کنید و براش رزومه ارسال نکنید
#نه_به_فرهنگ_کاری_نادرست
</Akbar Rezaeyan Ghane>
@TheRaymondDev
کارجو هم میبینه بررسی میکنه نهایتا چند تخصص رو نداره میره دنبال افزایش دانشش
اما خواهش میکنم توی اگهی ها شرط سنی رو ننویسید این باعث نشر ناامیدی در افرادی میشه که سنشون بالا میره و ممکنه حتی به رها کردن مارکت ختم بشه
جوان n ساله یا شخص n ساله هر دو حق دارن کار کنن و متخصص باشن اما شرط سن یعنی محدود کردن و محروم کردن
یعنی فرار از پرداخت حق تجربه و دانش ادمی که در این تخصص سالها وقتش رو گذاشته
بقیش هم که خودتون میدونید....
با احترام دو شرکت امسال برای معرفی نیرو به من زنگزدن چون شرط سنی داشتن هیچ نیرویی بهشون معرفی نکردم و نخواهم کرد
خواهشا اگهی که شرط سنی داره رو تحریم کنید و براش رزومه ارسال نکنید
#نه_به_فرهنگ_کاری_نادرست
</Akbar Rezaeyan Ghane>
@TheRaymondDev
Forwarded from Philocode
یکی از دلایل اینکه بچه نمیخوام، اینه که حوصله ندارم سر اینکه کی خوراکیهامو خورده دعوا کنم.
Forwarded from Dev Dastan
➖➖➖➖➖➖
➖➖➖➖➖➖
#systemDesign #softwareEngineering
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from DevTwitter | توییت برنامه نویسی
Forwarded from Geek Alerts
یه ماراتن تو پکن برگزار کردن که توش ۲۱ ربات انساننما با ۱۲ هزار دونده رقابت کردن، هدف این بود نشون بدن رباتها چقدر توی دویدن مسافتهای طولانی پیشرفت کردن.
اوضاع خیلی خوب پیش نرفت، مثلا بیشتر رباتها توی مسیر از کار افتادن یا باتریشون تموم شد و بعضی از رباتها به دلیل جدا شدن سر از بدن خراب شدن. با این حال یکی از رباتها تونست مسیر رو با زمان ۲ ساعت و ۴۰ دقیقه تمام کنه که از زمان تعیین شده برای انسانها بهتر بود.
🔗 interestingengineering
🤓 @geekalerts
اوضاع خیلی خوب پیش نرفت، مثلا بیشتر رباتها توی مسیر از کار افتادن یا باتریشون تموم شد و بعضی از رباتها به دلیل جدا شدن سر از بدن خراب شدن. با این حال یکی از رباتها تونست مسیر رو با زمان ۲ ساعت و ۴۰ دقیقه تمام کنه که از زمان تعیین شده برای انسانها بهتر بود.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Geek Alerts
معاون یوتیوب پیشبینی کرده که تا پنج سال دیگه، هر ویدیویی که تو یوتیوب آپلود بشه، به صورت اتوماتیک به همه زبونهای دنیا دوبله میشه. میگه فقط زبان تغییر میکنه و صدای اون آدم ثابت هست و حتی لبهاش هم جوری حرکت داده میشن که انگار داره به همون زبون صحبت میکنه.
به نظر میاد دوبله خودکار ویدیوها به زبونهای مختلف، مهمترین تغییریه که یوتیوب برای ورود به عصر هوش مصنوعی داره روش کار میکنه.
🔗 bloomberg
🤓 @geekalerts
به نظر میاد دوبله خودکار ویدیوها به زبونهای مختلف، مهمترین تغییریه که یوتیوب برای ورود به عصر هوش مصنوعی داره روش کار میکنه.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Linuxor ?
Forwarded from Codino School (ایمان غفوری)
آیا میدونید Traversable interface در زبان PHP چیه و چه کاربردی داره؟
Anonymous Poll
6%
بله
84%
خیر
10%
حدودی یه چیزایی میدونم
Forwarded from Geek Alerts
معرفی مدلهای Gemma ۳ QAT گوگل
گوگل به تازگی مدلهای جدیدی از سری Gemma ۳ رو با تکنولوژی QAT (Quantization-Aware Training) منتشر کرده. این تکنولوژی باعث میشه حجم مدلها به طرز چشمگیری کم بشه، بدون اینکه کیفیتشون پایین بیاد. مثلا میشه مدلهای قدرتمندی مثل Gemma ۳ ۲۷B رو به صورت لوکال روی کارت گرافیکهای معمولی مثل NVIDIA RTX ۳۰۹۰ اجرا کرد.
در واقع تکنیک QAT یه روش جا افتادهست که توی TensorFlow و PyTorch هم پشتیبانی میشه. گوگل میگه با این روش، حجم مدلها از BF۱۶ به int۴ کاهش پیدا کرده. مثلاً حجم مدل Gemma ۳ ۲۷B از ۵۴ گیگابایت به ۱۴.۱ گیگابایت رسیده. بقیه مدلها هم کاهش حجم مشابهی داشتن.
🔗 simonwillison
🤓 @geekalerts
گوگل به تازگی مدلهای جدیدی از سری Gemma ۳ رو با تکنولوژی QAT (Quantization-Aware Training) منتشر کرده. این تکنولوژی باعث میشه حجم مدلها به طرز چشمگیری کم بشه، بدون اینکه کیفیتشون پایین بیاد. مثلا میشه مدلهای قدرتمندی مثل Gemma ۳ ۲۷B رو به صورت لوکال روی کارت گرافیکهای معمولی مثل NVIDIA RTX ۳۰۹۰ اجرا کرد.
در واقع تکنیک QAT یه روش جا افتادهست که توی TensorFlow و PyTorch هم پشتیبانی میشه. گوگل میگه با این روش، حجم مدلها از BF۱۶ به int۴ کاهش پیدا کرده. مثلاً حجم مدل Gemma ۳ ۲۷B از ۵۴ گیگابایت به ۱۴.۱ گیگابایت رسیده. بقیه مدلها هم کاهش حجم مشابهی داشتن.
Please open Telegram to view this post
VIEW IN TELEGRAM