Forwarded from DevTwitter | توییت برنامه نویسی
یک فرمت جدید برای مصرف کمتر توکن ورودی LLM ها : TOON
روش کارش اینه که به جای Json که توکن بیشتری روی دیتا مصرف میکنه، میاد با ترکیبی از csv و yaml یه نسخه خیلی جمع و جور تر درست میکنه که ۳۰ تا ۶۰ درصد توکن ورودی کمتری مصرف میکنه.
روش جالبیه، اوپن سورسه
https://github.com/toon-format/toon
@DevTwitter | <Mani/>
روش کارش اینه که به جای Json که توکن بیشتری روی دیتا مصرف میکنه، میاد با ترکیبی از csv و yaml یه نسخه خیلی جمع و جور تر درست میکنه که ۳۰ تا ۶۰ درصد توکن ورودی کمتری مصرف میکنه.
روش جالبیه، اوپن سورسه
https://github.com/toon-format/toon
@DevTwitter | <Mani/>
Forwarded from Golden Code (علی 🇨🇴)
گاهی یک رشته داریم که عناصرش با "," یا ";" جدا شدن. با استفاده از split() و یک Regex ساده میتونیم هر دو رو همزمان جدا کنیم.
مثال:
الگوی بالا میگه هرجا ", " یا ";" دیدی جداسازی انجام بده برامون
#Javanoscript #جاوا_اسکریپت
#جاوااسکریپت
@GoldenCodeir 🔥
(بهمنبع و مثالش دقت کنید 👇🏾)
https://x.com/Shefali__J/status/1988564436559249609?t=3KBELet8DL6rU_-xqTFCDA&s=35
مثال:
let text = "apple,banana;orange,grape;melon";
let parts = text.split(/[,;]/);
console.log(parts);
// ["apple", "banana", "orange", "grape", "melon"]
الگوی بالا میگه هرجا ", " یا ";" دیدی جداسازی انجام بده برامون
#Javanoscript #جاوا_اسکریپت
#جاوااسکریپت
@GoldenCodeir 🔥
(بهمنبع و مثالش دقت کنید 👇🏾)
https://x.com/Shefali__J/status/1988564436559249609?t=3KBELet8DL6rU_-xqTFCDA&s=35
X (formerly Twitter)
Shefali (@Shefali__J) on X
JavaScript Tip💡
You can split a string at both commas and semicolons and create an array of individual elements.
You can split a string at both commas and semicolons and create an array of individual elements.
Forwarded from کانال مهرداد لینوکس
جایگزین پیشرفته برای cron
⚡️لینک آموزش cron در همین کانال
✨آموزش کرون جاب (Cron Job)
✨ آموزش با برگه راهنما
🔥ویژگیها
🔹پیشرفتهتر از cron
🔹یکپارچگی با systemd
🔹قابلیتهای نظارت و گزارشگیری (systemctl)
🔹دقت بیشتر در زمانبندی
🔹عدم نیاز به محیط کاربر
✅مثال:
یک تایمر systemd، دو فایل نیازه:
Unit file (اجرا چه چیزی)
Timer file (زمانبندی اجرا )
1. فایل سرویس (/etc/systemd/system/mynoscript.service):
2. فایل تایمر (/etc/systemd/system/mynoscript.timer):
توضیح:
تایمر OnCalendar=*-*-* 14:00:00 : اسکریپت هر روز ساعت ۱۴:۰۰ اجرا شود.
در بخش [Service]، دستور اجرای اسکریپت
برای فعالسازی تایمر:
@MehrdadLinuxchannel
⚡️لینک آموزش cron در همین کانال
✨آموزش کرون جاب (Cron Job)
✨ آموزش با برگه راهنما
توزیع لینوکسی شما systemd دارد ؟ پس systemd timers برای شماست
🔥ویژگیها
🔹پیشرفتهتر از cron
🔹یکپارچگی با systemd
🔹قابلیتهای نظارت و گزارشگیری (systemctl)
🔹دقت بیشتر در زمانبندی
🔹عدم نیاز به محیط کاربر
✅مثال:
یک تایمر systemd، دو فایل نیازه:
Unit file (اجرا چه چیزی)
Timer file (زمانبندی اجرا )
1. فایل سرویس (/etc/systemd/system/mynoscript.service):
[Unit]
Denoscription=mehrdadlinux noscript
[Service]
ExecStart=/path/to/noscript.sh
2. فایل تایمر (/etc/systemd/system/mynoscript.timer):
[Unit]
Denoscription=every day at 2pm
[Timer]
OnCalendar=*-*-* 14:00:00
Unit=mynoscript.service
[Install]
WantedBy=timers.target
توضیح:
تایمر OnCalendar=*-*-* 14:00:00 : اسکریپت هر روز ساعت ۱۴:۰۰ اجرا شود.
در بخش [Service]، دستور اجرای اسکریپت
برای فعالسازی تایمر:
sudo systemctl daemon-reload # بارگذاری مجدد
sudo systemctl enable mynoscript.timer # فعالسازی
sudo systemctl start mynoscript.timer # شروع
@MehrdadLinuxchannel
Forwarded from RandRng
فکر نمیکردم یک نوتیف انقدر خوشحالم کنم :
واقعاً ج.ا همه چیزمون رو گرفت.
Rain possibility after 5 pm, please prepare in advance.
واقعاً ج.ا همه چیزمون رو گرفت.
Forwarded from Ditty | دیتی
یک رزومهٔ کاری خوب حداکثر باید چند صفحه باشه؟
Anonymous Quiz
44%
۱ صفحه
48%
۲ صفحه
5%
۳ صفحه
3%
۵ صفحه
Forwarded from Ditty | دیتی
زبان برنامهنویسی ایرانی «آقای هاشمی»! 🥸
یکی که به تازگی برای اسپانیاییزبانها یه کامپایلر برای جاوااسکریپت منتشر کرده که میشه جاوااسکریپت رو به اسپانیایی نوشت، من رو یاد این انداخت که خیلی وقته که یه زبان برنامهنویسی بومی داریم به اسم «زبان آقای هاشمی»:
→ https://mr-hashemi.github.io/mr-hashemi
یکی که به تازگی برای اسپانیاییزبانها یه کامپایلر برای جاوااسکریپت منتشر کرده که میشه جاوااسکریپت رو به اسپانیایی نوشت، من رو یاد این انداخت که خیلی وقته که یه زبان برنامهنویسی بومی داریم به اسم «زبان آقای هاشمی»:
→ https://mr-hashemi.github.io/mr-hashemi
Forwarded from Gopher Academy
🔵 عنوان مقاله
Canvas: Vector Graphics Drawing Library
🟢 خلاصه مقاله:
Canvas یک کتابخانه عمومی مبتنی بر canvas برای ترسیم گرافیک برداری است که با یک API یکدست میتواند خروجیهایی مانند SVG، PDF و تصاویر raster تولید کند و از طریق WebAssembly روی وب نیز اجرا شود. این پروژه مجموعهای بزرگ از نمونهبرنامهها دارد که استفاده عملی از API و قابلیتهای کلیدی آن را نشان میدهند و شروع کار و اقتباس الگوهای رایج را ساده میکنند. مزیت اصلی Canvas ثبات مدل ترسیم در همه اهداف خروجی است؛ بنابراین میتوانید یک بار منطق رسم را بنویسید و همان کد را برای تولید SVG، PDF یا raster به کار ببرید و حتی همان تجربه را در مرورگر با WebAssembly داشته باشید.
#VectorGraphics #Canvas #SVG #PDF #WebAssembly #GraphicsLibrary #CrossPlatform #APIExamples
🟣لینک مقاله:
https://golangweekly.com/link/176906/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Canvas: Vector Graphics Drawing Library
🟢 خلاصه مقاله:
Canvas یک کتابخانه عمومی مبتنی بر canvas برای ترسیم گرافیک برداری است که با یک API یکدست میتواند خروجیهایی مانند SVG، PDF و تصاویر raster تولید کند و از طریق WebAssembly روی وب نیز اجرا شود. این پروژه مجموعهای بزرگ از نمونهبرنامهها دارد که استفاده عملی از API و قابلیتهای کلیدی آن را نشان میدهند و شروع کار و اقتباس الگوهای رایج را ساده میکنند. مزیت اصلی Canvas ثبات مدل ترسیم در همه اهداف خروجی است؛ بنابراین میتوانید یک بار منطق رسم را بنویسید و همان کد را برای تولید SVG، PDF یا raster به کار ببرید و حتی همان تجربه را در مرورگر با WebAssembly داشته باشید.
#VectorGraphics #Canvas #SVG #PDF #WebAssembly #GraphicsLibrary #CrossPlatform #APIExamples
🟣لینک مقاله:
https://golangweekly.com/link/176906/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - tdewolff/canvas: Vector graphics in Go
Vector graphics in Go. Contribute to tdewolff/canvas development by creating an account on GitHub.
Forwarded from DevTwitter | توییت برنامه نویسی
اگر با وردپرس کار میکنید، Abilities API در نسخه 6.9 مهمترین خبری است که باید بدانید
به عنوان کسی که سالها با وردپرس کار میکنه، معمولاً آپدیت ها برام قابل پیش بینی هستند؛ اما نسخه 6.9 یک چیز متفاوت داره: Abilities API. تغییری کوچک در ظاهر، اما بسیار بزرگ در پشت صحنه.
سال هاست هر پلاگین سازوکار خودش را داشته؛
یکی AJAX، یکی REST، یکی هم با هوک های سفارشی کار را جلو میبرد. نتیجه؟ پراکندگی، پیچیدگی و عدم هماهنگی بین ابزارها.
اما Abilities API یک نگاه جدید به وردپرس آورده.
حالا هر قابلیت با ورودی ها، خروجی ها، سطح دسترسی و منطق اجرای مشخص «ثبت» میشود و وردپرس خودش به صورت استاندارد و خودکار از آن REST API می سازد.
این یعنی:
1- امنیت و دسترسی ها منطقی تر و یکپارچه تر میشوند
2- تعامل بین پلاگین ها بسیار ساده تر میشود
3- توسعه برای ما دولوپرها تمیزتر، قابل پیش بینی تر و حرفه ای تر میشود
و از همه مهمتر: وردپرس عملاً دارد خودش را برای نسل جدید ابزارهای هوش مصنوعی و اتوماسیون آماده میکند.
برای من، WordPress 6.9 فقط یک نسخه جدید نیست؛
یک زیرساخت تازه است که مسیر آینده وردپرس را مشخص میکند.
@DevTwitter | <Yaghoub Tayebi/>
به عنوان کسی که سالها با وردپرس کار میکنه، معمولاً آپدیت ها برام قابل پیش بینی هستند؛ اما نسخه 6.9 یک چیز متفاوت داره: Abilities API. تغییری کوچک در ظاهر، اما بسیار بزرگ در پشت صحنه.
سال هاست هر پلاگین سازوکار خودش را داشته؛
یکی AJAX، یکی REST، یکی هم با هوک های سفارشی کار را جلو میبرد. نتیجه؟ پراکندگی، پیچیدگی و عدم هماهنگی بین ابزارها.
اما Abilities API یک نگاه جدید به وردپرس آورده.
حالا هر قابلیت با ورودی ها، خروجی ها، سطح دسترسی و منطق اجرای مشخص «ثبت» میشود و وردپرس خودش به صورت استاندارد و خودکار از آن REST API می سازد.
این یعنی:
1- امنیت و دسترسی ها منطقی تر و یکپارچه تر میشوند
2- تعامل بین پلاگین ها بسیار ساده تر میشود
3- توسعه برای ما دولوپرها تمیزتر، قابل پیش بینی تر و حرفه ای تر میشود
و از همه مهمتر: وردپرس عملاً دارد خودش را برای نسل جدید ابزارهای هوش مصنوعی و اتوماسیون آماده میکند.
برای من، WordPress 6.9 فقط یک نسخه جدید نیست؛
یک زیرساخت تازه است که مسیر آینده وردپرس را مشخص میکند.
@DevTwitter | <Yaghoub Tayebi/>
Forwarded from محتوای آزاد سهراب (Sohrab)
یک سری بحث و درگیری حول محور گروههای توزیع اوبونتو توی تلگرام پیش اومده که نیاز میشه چند نکته رو شفاف کنم.
یک سری گروههایی که تاسیس میشن، تماماً غیررسمی هستند، مثل گروه های فارسی اوبونتو داخل تلگرام که توسط چندکاربر تشکیل شده.
کار بدی نیست، اما اوبونتو توزیعی هستش که پشتیبانی رسمی اون داخل فرومش انجام میشه، برای همین درگیری سر اینکه کدوم گروه باشه کدوم نه اهمیتی نداره و بهتره ذکر بشه که این گروه غیررسمی هستش.
یک سری گروه ها هم توسط اعضای یک پروژهای تشکیل میشن و از قبل وجود داشتن، مثل کیدیای فارسی که درمورد اون برحسب اعتبار باید تصمیم گرفت.
درکل خودتون رو زیاد درگیر نکنید، ذات گروه داخل تلگرام برای بحث و گفتگو هستش و نه پشتیبانی.
https://blogfa.sohrabbehdani.ir/why-not-telegram/
@SohrabContents
یک سری گروههایی که تاسیس میشن، تماماً غیررسمی هستند، مثل گروه های فارسی اوبونتو داخل تلگرام که توسط چندکاربر تشکیل شده.
کار بدی نیست، اما اوبونتو توزیعی هستش که پشتیبانی رسمی اون داخل فرومش انجام میشه، برای همین درگیری سر اینکه کدوم گروه باشه کدوم نه اهمیتی نداره و بهتره ذکر بشه که این گروه غیررسمی هستش.
یک سری گروه ها هم توسط اعضای یک پروژهای تشکیل میشن و از قبل وجود داشتن، مثل کیدیای فارسی که درمورد اون برحسب اعتبار باید تصمیم گرفت.
درکل خودتون رو زیاد درگیر نکنید، ذات گروه داخل تلگرام برای بحث و گفتگو هستش و نه پشتیبانی.
https://blogfa.sohrabbehdani.ir/why-not-telegram/
@SohrabContents
blogfa.sohrabbehdani.ir
محتوای آزاد سهراب
تجربه من از پارچ در تلگرام
Forwarded from DevTwitter | توییت برنامه نویسی
This media is not supported in your browser
VIEW IN TELEGRAM
خیلی ها هنوز تصورشون از Cloudflare فقط CDN برای سایت است!...
میخوام دعوتتون کنم به ابزار
http://Build.cloudflare.dev
یکمحیط رایگان برای تبدیل ایده هاتون به سایت ! با قابلیت دپلوی رایگان روی کلاد فلر!
به سادگی فقط بهش بگید چی میخواهید و بزارید کار رو براتون انجام بده!
ویدئو یک پرامت ساده است که دادم بهش !
@DevTwitter | <POURYA/>
میخوام دعوتتون کنم به ابزار
http://Build.cloudflare.dev
یکمحیط رایگان برای تبدیل ایده هاتون به سایت ! با قابلیت دپلوی رایگان روی کلاد فلر!
به سادگی فقط بهش بگید چی میخواهید و بزارید کار رو براتون انجام بده!
ویدئو یک پرامت ساده است که دادم بهش !
@DevTwitter | <POURYA/>
Forwarded from امین رشیدبیگی | مهندسی نرمافزار
توی این سه تا پست از چند شیوه برای آماده شدن در برابر مشکلات پیشبینینشدهی زیرساخت یا لودهای ناگهانی نوشتم:
⛳ ارائه سرویس در سطوح مختلف با کمک Feature Flagها
⬇️ تعریف سطوح کاهش سرویس (Degradation Levels)
🔗 جلوگیری از اثر زنجیرهای در سرویسها (Cascading Effect)
این اقدامات فقط مختص به شرایط بحرانیِ غیرمنتظره نیستن و در زمانهای فشار پیشبینیپذیر هم کاملاً کاربرد دارن.
مثلاً همین چند هفتهٔ دیگه بلکفرایدی رو پیش داریم و اپلیکیشنهایی که انتظار لود بالا دارن، با استفاده از همین روشها میتونن احتمال داون شدن کامل سرویسشون رو کم کنن.
در ضمن برای بلکفرایدی امسال میتونین بیشتر در مورد وبسایتهای پربازدید کنجکاو باشین و ببینین وقتی تحت فشارن، آیا فیچرهای غیرحیاتیشون رو میتونن بالا نگه دارن یا توی این بازه خاموششون میکنن 🙂
@aminrbg
⛳ ارائه سرویس در سطوح مختلف با کمک Feature Flagها
⬇️ تعریف سطوح کاهش سرویس (Degradation Levels)
🔗 جلوگیری از اثر زنجیرهای در سرویسها (Cascading Effect)
این اقدامات فقط مختص به شرایط بحرانیِ غیرمنتظره نیستن و در زمانهای فشار پیشبینیپذیر هم کاملاً کاربرد دارن.
مثلاً همین چند هفتهٔ دیگه بلکفرایدی رو پیش داریم و اپلیکیشنهایی که انتظار لود بالا دارن، با استفاده از همین روشها میتونن احتمال داون شدن کامل سرویسشون رو کم کنن.
در ضمن برای بلکفرایدی امسال میتونین بیشتر در مورد وبسایتهای پربازدید کنجکاو باشین و ببینین وقتی تحت فشارن، آیا فیچرهای غیرحیاتیشون رو میتونن بالا نگه دارن یا توی این بازه خاموششون میکنن 🙂
@aminrbg
Forwarded from RandRng
فکر میکنید داشتن یک ویترین خوب روی گیتهاب چقدر مهمه ؟
با یکی از دوستان صحبت میکردم؛ یک ابزار مشاهده وضعیت و رهگیری و ... زده برای هواپیماها مثل همهی ابزارهای موجود.
هیستوریهاشون رو نگه میداره؛ اطلاعات خلبان و ... رو میگیره
و داشبورد و آنالیز ارائه میده.
بعد راجب این تمرینش پست گذاشته؛ یکی از شرکتهای این زمینه استخدامش کرده چون دقیقاً همین کار رو داشته میکرده!
کدهاش پابلیک نیست دیگه.
وقتی صحبت میکردیم، گفت از خبر اون پسره که ایلان ماسک بهش گفت بهت پول میدم انقدر اطلاعات پروازای من رو توییت نکن ازونجا شروع شد و میخواسته آدما و محمولهها و ... رو دنبال کنه!
که خب هی فیچر بهش اضافه کرده.
نکته مهم:
قطعاً برای همه این اتفاق نخواهد افتاد که بخاطر یک تمرینی که زدید، یک شرکت غول با حقوق عالی بهتون پیشنهاد همکاری بده
اما
قطعاً داشتن چنین پروژهای باعث میشه؛ شرکتها و آدمها با ریسک کمتر و خیال راحتتر شمارو استخدام کنند.
حتی اگر خودتونباشید، رزومه بنویسید یا توی مصاحبه خوب صحبت کنید.
با یکی از دوستان صحبت میکردم؛ یک ابزار مشاهده وضعیت و رهگیری و ... زده برای هواپیماها مثل همهی ابزارهای موجود.
هیستوریهاشون رو نگه میداره؛ اطلاعات خلبان و ... رو میگیره
و داشبورد و آنالیز ارائه میده.
بعد راجب این تمرینش پست گذاشته؛ یکی از شرکتهای این زمینه استخدامش کرده چون دقیقاً همین کار رو داشته میکرده!
کدهاش پابلیک نیست دیگه.
وقتی صحبت میکردیم، گفت از خبر اون پسره که ایلان ماسک بهش گفت بهت پول میدم انقدر اطلاعات پروازای من رو توییت نکن ازونجا شروع شد و میخواسته آدما و محمولهها و ... رو دنبال کنه!
که خب هی فیچر بهش اضافه کرده.
نکته مهم:
قطعاً برای همه این اتفاق نخواهد افتاد که بخاطر یک تمرینی که زدید، یک شرکت غول با حقوق عالی بهتون پیشنهاد همکاری بده
اما
قطعاً داشتن چنین پروژهای باعث میشه؛ شرکتها و آدمها با ریسک کمتر و خیال راحتتر شمارو استخدام کنند.
حتی اگر خودتونباشید، رزومه بنویسید یا توی مصاحبه خوب صحبت کنید.
Forwarded from DevTwitter | توییت برنامه نویسی
دیتابیس Drift چیه و چرا اینقد طرفدار پیدا کرده ؟
راستش رو بخواین، هر کسی که با Flutter کار کرده باشه میدونه مدیریت دیتابیس همیشه یکی از اون بخشهاییه که میتونه یا خیلی جذاب باشه… یا خیلی اعصابخوردکن!
من خودم چند وقتیه با Drift کار میکنم (همون Moor سابق) و واقعاً باید بگم یه سروگردن از بقیه بالاتره
در واقع Drift چی کار میکنه؟
به زبون خیلی ساده میاد SQLite رو برات اونقدر خوشگل و تر و تمیز میکنه که هم دلت بخواد باهاش کار کنی، هم خیالت راحت باشه چیزی از قلم نمیافته
چند تا چیز که تو کار با Drift خیلی حال داد :
- قابلیت Type-safe بودنش واقعاً عالیه؛ کمتر پیش میاد اشتباه ریز و درشت بزنی
- میتونی هم با Dart Query کار کنی هم با SQL خالص. هر جوری حال میکنی و راحتتری
- قابلیت Stream میده، یعنی دیتابیس آپدیت بشه، UI خودش اتومات رفرش میشه
- فایلها و مدلها رو خودش اتومات جنریت میکنه و روی موبایل، دسکتاپ و حتی وب هم جواب میده
خلاصه که اگه دنبال یه دیتابیس مطمئن و باحال برای پروژههای فلاتری هستین، Drift رو جدی بگیرین
بهنظر من واقعاً ارزشش رو داره
@DevTwitter | <Armin Mehraein/>
راستش رو بخواین، هر کسی که با Flutter کار کرده باشه میدونه مدیریت دیتابیس همیشه یکی از اون بخشهاییه که میتونه یا خیلی جذاب باشه… یا خیلی اعصابخوردکن!
من خودم چند وقتیه با Drift کار میکنم (همون Moor سابق) و واقعاً باید بگم یه سروگردن از بقیه بالاتره
در واقع Drift چی کار میکنه؟
به زبون خیلی ساده میاد SQLite رو برات اونقدر خوشگل و تر و تمیز میکنه که هم دلت بخواد باهاش کار کنی، هم خیالت راحت باشه چیزی از قلم نمیافته
چند تا چیز که تو کار با Drift خیلی حال داد :
- قابلیت Type-safe بودنش واقعاً عالیه؛ کمتر پیش میاد اشتباه ریز و درشت بزنی
- میتونی هم با Dart Query کار کنی هم با SQL خالص. هر جوری حال میکنی و راحتتری
- قابلیت Stream میده، یعنی دیتابیس آپدیت بشه، UI خودش اتومات رفرش میشه
- فایلها و مدلها رو خودش اتومات جنریت میکنه و روی موبایل، دسکتاپ و حتی وب هم جواب میده
خلاصه که اگه دنبال یه دیتابیس مطمئن و باحال برای پروژههای فلاتری هستین، Drift رو جدی بگیرین
بهنظر من واقعاً ارزشش رو داره
@DevTwitter | <Armin Mehraein/>
Forwarded from محتوای آزاد سهراب (Sohrab)
Forwarded from Reza Jafari
امیدوارم این حبابِ هوش مصنوعی هرچه زودتر برای مردم بترکه، تا دوباره برگردیم به ساختن چیزهای واقعاً ارزشمند و حل کردنِ مسائل واقعی با کمک هوش مصنوعی، نه ساخت پروتوتایپهای گرون قیمت بی ارزش.
@reza_jafari_ai
@reza_jafari_ai
Forwarded from DevTwitter | توییت برنامه نویسی
چطور سرعت Build داکر رو چند برابر کردم؟ تجربهای که واقعاً زندگیم رو راحتتر کرد!
چند وقت پیش مجبور بودم برای یک پروژه چندین بار پشتسرهم Docker Image بسازم. هر بار ۳–۴ دقیقه منتظر موندن… واقعاً کلافهکننده بود.
فکر کردم شاید مشکل از زیرساخت باشه. اما نه — مشکل از Dockerfile خودم بود!
بعد از چند روز آزمونوخطا، به چند نکته ساده اما معجزهگر رسیدم که سرعت build رو بهطور جدی بالا برد. شاید برای شما هم مفید باشه:
1) لایهبندی درست Dockerfile = کاهش زمان تا ۷۰٪
اگر اول dependencyها رو نصب کنید و بعد سورسکد رو اضافه کنید، Docker مجبور نمیشه هر بار از صفر بسازه.
این نکته رو که فهمیدم، انگار turbo رو روشن کردم!
2) Multi-Stage Build: هم سریعتر، هم سبکتر
کد compile یه جا
run یه جا
نتیجه؟
یک ایمیج سریعتر، تمیزتر، امنتر و چند برابر کوچکتر.
3) فعالسازی BuildKit: یک جهش واقعی
BuildKit رو که فعال کردم، انگار داکر از خواب بیدار شد!
بعضی buildها تا ۲ برابر سریعتر شدن.
هم caching بهتر، هم parallel steps.
4) .dockerignore نجاتدهنده واقعی
صادقانه بگم: نصف کندی من بخاطر این بود که چیزهای عجیبوغریب داشت وارد context میشد!
Logها، tempها، node_modules، target…
وقتی .dockerignore رو درست کردم، همهچیز سریعتر شد.
خروجی این تغییرات؟
بدون حتی یک ریال هزینه سختافزاری:
- سرعت build چند برابر
- حجم ایمیجها کمتر
- اعصاب راحتتر
- زمان بیشتر برای کارهای مهمتر
اگر پروژههاتون به داکر وابستهست، پیشنهاد میکنم همین امروز ۱۰ دقیقه وقت بذارید و Dockerfileتون رو بازنویسی کنید.
نتیجهش بیشتر از چیزی که فکر میکنید ارزش داره.
@DevTwitter | <Amir Zangiabadi/>
چند وقت پیش مجبور بودم برای یک پروژه چندین بار پشتسرهم Docker Image بسازم. هر بار ۳–۴ دقیقه منتظر موندن… واقعاً کلافهکننده بود.
فکر کردم شاید مشکل از زیرساخت باشه. اما نه — مشکل از Dockerfile خودم بود!
بعد از چند روز آزمونوخطا، به چند نکته ساده اما معجزهگر رسیدم که سرعت build رو بهطور جدی بالا برد. شاید برای شما هم مفید باشه:
1) لایهبندی درست Dockerfile = کاهش زمان تا ۷۰٪
اگر اول dependencyها رو نصب کنید و بعد سورسکد رو اضافه کنید، Docker مجبور نمیشه هر بار از صفر بسازه.
این نکته رو که فهمیدم، انگار turbo رو روشن کردم!
2) Multi-Stage Build: هم سریعتر، هم سبکتر
کد compile یه جا
run یه جا
نتیجه؟
یک ایمیج سریعتر، تمیزتر، امنتر و چند برابر کوچکتر.
3) فعالسازی BuildKit: یک جهش واقعی
BuildKit رو که فعال کردم، انگار داکر از خواب بیدار شد!
بعضی buildها تا ۲ برابر سریعتر شدن.
هم caching بهتر، هم parallel steps.
4) .dockerignore نجاتدهنده واقعی
صادقانه بگم: نصف کندی من بخاطر این بود که چیزهای عجیبوغریب داشت وارد context میشد!
Logها، tempها، node_modules، target…
وقتی .dockerignore رو درست کردم، همهچیز سریعتر شد.
خروجی این تغییرات؟
بدون حتی یک ریال هزینه سختافزاری:
- سرعت build چند برابر
- حجم ایمیجها کمتر
- اعصاب راحتتر
- زمان بیشتر برای کارهای مهمتر
اگر پروژههاتون به داکر وابستهست، پیشنهاد میکنم همین امروز ۱۰ دقیقه وقت بذارید و Dockerfileتون رو بازنویسی کنید.
نتیجهش بیشتر از چیزی که فکر میکنید ارزش داره.
@DevTwitter | <Amir Zangiabadi/>
Forwarded from Mr05; Medical'& (Mr.Bv)
Medical and Medical Table of Contents Academic Table of Contents #PART_15
#BPE
#BMECH
#MI
#RP
#BioMEMS
#NBioTech
#NanoMed
#BME
#RM
#SCE
#SynBio
#MBE
#BPEng
#ME
#MicroE
#CNS
#NE
#BMI
#PATH
#MPATH
#ClinGen
#ClinPharm
#CancerBio
#CancerGen
#RT
#PK
#PD
#PGx
#NanoDD
#ADMET
#ToxGen
#BioSurv
#DisModel
#NEH
#OneHealth
#MEng
#RepEng
#AUE
#ROE
#RepGen
#DNAEng
#GE
#GEng
#AME
- t.r: BV0
- sup @MrBasayev
#BPE
#BMECH
#MI
#RP
#BioMEMS
#NBioTech
#NanoMed
#BME
#RM
#SCE
#SynBio
#MBE
#BPEng
#ME
#MicroE
#CNS
#NE
#BMI
#PATH
#MPATH
#ClinGen
#ClinPharm
#CancerBio
#CancerGen
#RT
#PK
#PD
#PGx
#NanoDD
#ADMET
#ToxGen
#BioSurv
#DisModel
#NEH
#OneHealth
#MEng
#RepEng
#AUE
#ROE
#RepGen
#DNAEng
#GE
#GEng
#AME
- t.r: BV0
- sup @MrBasayev