Forwarded from Linux Labdon
لینوس توروالدز: کد مهندس گوگل «آشغال محض» بود!
▪️همه فکر میکنن مهندسای گوگل در قله کیفیت هستن، اما خالق لینوکس یه شوک اساسی داد! لینوس توروالدز بدون هیچ تعارف، کد یکی از برنامهنویسای گوگل رو «به درد نخور» خطاب کرد و اون رو با خاک یکسان کرد.
▪️ماجرا از یه Pull Request مربوط به پشتیبانی RISC-V در لینوکس 6.17 شروع شد. پالمر دابلت از تیم اندروید، تغییرات رو فرستاد، ولی:
1. کیفیت کدنویسی افتضاح!
2. ارسال دیرهنگام در «پنجره ادغام»!
▪️همه فکر میکنن مهندسای گوگل در قله کیفیت هستن، اما خالق لینوکس یه شوک اساسی داد! لینوس توروالدز بدون هیچ تعارف، کد یکی از برنامهنویسای گوگل رو «به درد نخور» خطاب کرد و اون رو با خاک یکسان کرد.
▪️ماجرا از یه Pull Request مربوط به پشتیبانی RISC-V در لینوکس 6.17 شروع شد. پالمر دابلت از تیم اندروید، تغییرات رو فرستاد، ولی:
1. کیفیت کدنویسی افتضاح!
2. ارسال دیرهنگام در «پنجره ادغام»!
Forwarded from Python Hints
اینو میخواستم توی یک کانال دیگری بذارم ولی دیدم بحث انتخاب اشتباه دیتابیس اینجا بوده اینجا میذارم!
۵-۶ ماه پیش، یکی سوال پرسیده بود آقا من پستگرسم هی به مشکل میخوره روی پروژهام!
من هی میومدم کمک کنم، هر سوالی میپرسیدم یا جواب نمیداد (انگار داشت ناسا رو هک میکرد) یا نمیدونست.
چندبار بهش گفتم تا مشکل رو پیدا نکنم نمیشه به راهکار رسید
ولی
آخر عصبی شدم؛ گفتم برو
الان پیام داد، تشکر کرد بابت پیشنهاد
بعد توی همین صحبت فعلی متوجه شدم؛ دیتابیس برای کار ایشون واقعاً در همین حد
برای بکاپ هم بهش گفتم بذار برای خودت ایمیل کنه هر ۶ ساعت؛ واقعاً رفت اینم پیادهسازی کنه! 😂
خلاصه که تا ی چیزی توی ویدئو آموزشی میبینید نپرید سراغش؛ یک مقدار تحقیق بد هم نیست!
تجربه جالبی هم بود برای خودم!
۵-۶ ماه پیش، یکی سوال پرسیده بود آقا من پستگرسم هی به مشکل میخوره روی پروژهام!
من هی میومدم کمک کنم، هر سوالی میپرسیدم یا جواب نمیداد (انگار داشت ناسا رو هک میکرد) یا نمیدونست.
چندبار بهش گفتم تا مشکل رو پیدا نکنم نمیشه به راهکار رسید
ولی
آخر عصبی شدم؛ گفتم برو
sqlite بزن! واقعاً منظورم این نبود که اینکارو بکنه میخواستم بفهمه که اینجوری نمیشه راهنمایی کرد و البته دیگه پیام نده.الان پیام داد، تشکر کرد بابت پیشنهاد
sqlite (صحبت کردم باهاش اجازه گرفتم این پست رو بذارم) منم توضیحات بالا رو دادم بهش .... بعد توی همین صحبت فعلی متوجه شدم؛ دیتابیس برای کار ایشون واقعاً در همین حد
sqlite زیادم بوده؛ کل دیتابیساش بعد از ۶ ماه کار به کمی کمتر از ۱۰۰ مگ رسیده (البته ازینجا به بعد سرعت رشدش کمتر میشه شاید سالی ۲۰-۳۰ مگ) برای بکاپ هم بهش گفتم بذار برای خودت ایمیل کنه هر ۶ ساعت؛ واقعاً رفت اینم پیادهسازی کنه! 😂
خلاصه که تا ی چیزی توی ویدئو آموزشی میبینید نپرید سراغش؛ یک مقدار تحقیق بد هم نیست!
تجربه جالبی هم بود برای خودم!
Forwarded from Linuxor ?
شیش تا قانون برای نوشتن یه REST API خوب، برید توی این سایت خیلی ساده با مثال توضیح داده، اگه تازه کارید این اشتباها ممکنه بعدا کارتون رو سخت کنه، این قوانین API رو قبل پیاده سازیتون بخونید
restfulapi.net
@Linuxor
restfulapi.net
@Linuxor
Forwarded from Linuxor ?
اگه حوصله کتاب خوندن برای یادگیری ++C مدرن داری، این کتاب الکترونیک خیلی کم حجم و خوبه نسخه اصلیش به زبان چینیه ولی این ترجمش به انگلیسیه :)
changkun.de/modern-cpp/en-us/00-preface
@Linuxor
changkun.de/modern-cpp/en-us/00-preface
@Linuxor
Forwarded from 🎄 یک برنامه نویس تنبل (Lazy 🌱)
🔶 آقای Thomas Dohmke، مدیرعامل GitHub، اعلام کرده که از سمتش کناره گیری می کند و گیت هاب زیر نظر بخش CoreAI مایکروسافت، که برای این شرکت و مشتریان اون راهکارهای هوش مصنوعی ارائه می دهد را قرار می گیرد و پس از نزدیک به چهار سال مدیریت، گیتهاب را ترک میکند تا «دوباره به یک بنیانگذار استارتاپ تبدیل شود» و به دنبال فرصتهای جدید خارج از مایکروسافت و گیتهاب برود.
#خبر
@TheRaymondDev
#خبر
@TheRaymondDev
The Verge
GitHub just got less independent at Microsoft after CEO resignation
GitHub will be part of Microsoft’s AI engineering team
Forwarded from Linuxor ?
میدونستین VS Code با اینکه اوپن سورسه ولی مایکروسافت برای استفاده دقیقا اون ورژن اوپن رو منتشر نمیکنه و یه سری تغییرات مثل ردیابی (telemetry) یا جمعآوری دادههای استفاده کاربر روش اعمال میکنه بعد اونو منتشر می کنه؟
حالا یه عده اومدن خودشون VS Code رو بدون اون اضافات بیلد کردن میتونید از اینجا دانلودش کنید :
vscodium.com
@Linuxor
حالا یه عده اومدن خودشون VS Code رو بدون اون اضافات بیلد کردن میتونید از اینجا دانلودش کنید :
vscodium.com
@Linuxor
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
ویرایش سوم کتاب 1001 دستور لینوکس
⭕️به جای خواندن چندین کتاب لینوکسی، این کتاب را چند مرتبه بخوان
بعد از گذشت 2 سال وقت و تلاش در ایجاد یک منبع فارسی جامع،از دستورات لینوکسی سرانجام ویرایش سوم کتاب با ویژگیهای زیر آماده شد:
🔹تنهای منبع فارسی کامل برای دستورات لینوکسی با پوشش کامل دستورات موجود در دوره های:
Linux Essentials
Linux +
LPIC-1 101-500 and 102-500
LPIC-2 201-450 and 202-450
LPIC-3 Mixed 300-300
LPIC-3 Security 303-300
🔹850صفحه با چینش جدید، در قالب 28 فصل با قسمت های :
🔻شرح دستور
🔻ساختار دستور
🔻گزینه های دستور
🔻مثال های کامل از دستور
🔹سه فصل ابتدایی، دارای مفاهیم،مبانی و ساختار لینوکس،ترمینال ومیزهای لینوکسی
🔹مناسب: کاربرهای ادمین سیستم،امنیت شبکه،برنامه نویسان
نشر کیان دانش
نویسنده: حسین سیلانی
⭕️ قیمت نسخه چاپی سیاه و سفید: 550.000 هزارتومان
⭕️ قیمت فایلpdf رنگی: 330.000 هزارتومان
🛑به منظور تهیه کتاب فیش واریزی و آدرس پستی دقیق به ایدی تلگرامی من بفرستید و کتاب را از طریق پست را دریافت کنید.
هزینه پست به عهده من می باشد.
⭕️به جای خواندن چندین کتاب لینوکسی، این کتاب را چند مرتبه بخوان
بعد از گذشت 2 سال وقت و تلاش در ایجاد یک منبع فارسی جامع،از دستورات لینوکسی سرانجام ویرایش سوم کتاب با ویژگیهای زیر آماده شد:
🔹تنهای منبع فارسی کامل برای دستورات لینوکسی با پوشش کامل دستورات موجود در دوره های:
Linux Essentials
Linux +
LPIC-1 101-500 and 102-500
LPIC-2 201-450 and 202-450
LPIC-3 Mixed 300-300
LPIC-3 Security 303-300
🔹850صفحه با چینش جدید، در قالب 28 فصل با قسمت های :
🔻شرح دستور
🔻ساختار دستور
🔻گزینه های دستور
🔻مثال های کامل از دستور
🔹سه فصل ابتدایی، دارای مفاهیم،مبانی و ساختار لینوکس،ترمینال ومیزهای لینوکسی
🔹مناسب: کاربرهای ادمین سیستم،امنیت شبکه،برنامه نویسان
نشر کیان دانش
نویسنده: حسین سیلانی
⭕️ قیمت نسخه چاپی سیاه و سفید: 550.000 هزارتومان
⭕️ قیمت فایلpdf رنگی: 330.000 هزارتومان
🛑به منظور تهیه کتاب فیش واریزی و آدرس پستی دقیق به ایدی تلگرامی من بفرستید و کتاب را از طریق پست را دریافت کنید.
هزینه پست به عهده من می باشد.
Forwarded from Codino School (ایمان غفوری)
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from Curious Geek ⚡️
چرا مهاجرت نکنیم؟ ؛)
ابتدا فکر میکردم مملکت وزیر دانا میخواهد، بعد فکر کردم شاه دانا میخواهد، اما اکنون میفهمم که مملکت، ملت دانا میخواهد - امیرکبیر
🆔 @Hiradsajde
ابتدا فکر میکردم مملکت وزیر دانا میخواهد، بعد فکر کردم شاه دانا میخواهد، اما اکنون میفهمم که مملکت، ملت دانا میخواهد - امیرکبیر
🆔 @Hiradsajde
Forwarded from Philocode
گرفتن content type از محتوای فایل امنتر از گرفتنش از هدر content-type خواهد بود. چرا؟ چون هدر رو میشه راحت تغییر داد.
Forwarded from Codino School (ایمان غفوری)
🔅 نسخه جدید laravel-microscope منتشر شد:
- اضافه شدن دستور جدید check:fqcn (به همراه قابلیت cache)
- اضافه شدن cache برای دستور check:view
@codino
- اضافه شدن دستور جدید check:fqcn (به همراه قابلیت cache)
- اضافه شدن cache برای دستور check:view
v1.0.400@codino
Forwarded from Go Casts 🚀
نکاتی در مورد code review
مواردی که اشاره میکنه صرفا نکات فنی نیست و به نظرم نکات غیرفنی ای که بهش اشاره میکنه خیلی موثر هست در ایجاد یک فضای مناسب و پایدار برای داشتن فرهنگ Code Review در تیم.
این مقاله نکات ساده و مهمی رو اشاره میکنه که خوبه مطالعه بشه
https://endler.dev/2025/how-to-review-code/
@gocasts
مواردی که اشاره میکنه صرفا نکات فنی نیست و به نظرم نکات غیرفنی ای که بهش اشاره میکنه خیلی موثر هست در ایجاد یک فضای مناسب و پایدار برای داشتن فرهنگ Code Review در تیم.
این مقاله نکات ساده و مهمی رو اشاره میکنه که خوبه مطالعه بشه
https://endler.dev/2025/how-to-review-code/
@gocasts
Forwarded from Geek Alerts
چتبات کلود از آنتروپیک حافظه پیدا کرده، یعنی چیزهایی که بهش میگید رو دیگه یادش میمونه، اما تفاوتهایی با بقیه چتباتها داره، مثلا اینکه واقعا یه حافظه که یه سری دیتارو اونجا ذخیره کنه در کار نیست.
فقط زمانی که شما ازش بخواید میتونه تو بقیه چتهاتون بگرده. مثلا بهش بگیید یادته در مورد فلان موضوع صحبت کردم که اینجا میره و اون موضوع رو از داخل چتهای دیگهای که صحبت کردید پیدا میکنه.
برای فعال کردنش هم میتونید به Settings برید بعد Profile و زیربخش Search and reference chats رو روشن کنید. [L]
🤓 @geekalerts
فقط زمانی که شما ازش بخواید میتونه تو بقیه چتهاتون بگرده. مثلا بهش بگیید یادته در مورد فلان موضوع صحبت کردم که اینجا میره و اون موضوع رو از داخل چتهای دیگهای که صحبت کردید پیدا میکنه.
برای فعال کردنش هم میتونید به Settings برید بعد Profile و زیربخش Search and reference chats رو روشن کنید. [L]
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from DevTwitter | توییت برنامه نویسی
تا الان، بهترین خروجی برای جستجو تو وردپرس و ووکامرس، با استفاده از algolia بوده.
ما راضی و مشتری خیلی راضی :))
https://www.algolia.com/
@DevTwitter | <Morteza Geransayeh/>
ما راضی و مشتری خیلی راضی :))
https://www.algolia.com/
@DevTwitter | <Morteza Geransayeh/>
Forwarded from Linuxor ?
بازی خواستید بسازید این ریپو رو توی مروگرتون بوکمارک کنید مثل اکبر بیکار هر روز برید اینجا چند تا از سورس کداشو ببینید یه مجموعه خیلی خوب از سورس کد بازی ها، تازه بعضیاش رو روی مرورگر با تکنولوژی WASM میتونید تست هم کنید خیلی حال میده.
github.com/leereilly/games
@Linuxor
github.com/leereilly/games
@Linuxor
Forwarded from Linuxor ?
این عکسو ببینید این برنامه ها با چند صد خط کد پایتونی با لایبری textual نوشته شدن هم توی ترمینال ران میشن هم توی مروگر، کافیه ریپو رو کلون کنید و برید توی دارکتوری examples بدون خوندن چیز اضافه ای میفهمید چی به چیه انقدر سادس :)
textual.textualize.io
@Linuxor
textual.textualize.io
@Linuxor
Forwarded from Python BackendHub (Mani)
از کانال های مختلف دیدم پست میذارن که بله تایپینگ کد شما رو بیشتر میکنه کثیف تر میکنه اگه میخواستیم تایپ بزنیم که میرفتیم سمت C و این حرفا. اولا که C تایپ سیستم قوی نداره. تایپ سیستم بسیار ساده ای داره. پس statically typed بودن یا نبودن یک زبون رو خوب/بد بودن تایپ سیستمش تاثیری نمیذاره. پس اگه انتخابتون C هست برای اینکه تایپ سیستم قوی داشته باشین انتخاب درستی نیست!
ثانیا تایپینگ خودش یک داکیومنته. مثلا شما فکر کنید من یک سیستم نوشتم که ۱۰ تاسیستم مختلف رو integrate میکنه و یک API واحد میده برای هر ۱۰ تاشون. من یا میتونم ۱۰ صفحه داکیومنت بنویسم که اگه خواستیم یک سیستم جدید اضافه کنیم چه دپندسی هایی وجود داره یا اینکه میتونم یک Enum داشته باشم به اسم
مثالش, من اینجا فقط یک سرویس Digikala دارم. و برای دیجی کالا یک رفتاری رو تعریف کردم و چک کردم سرویسی نباشه که این رفتار براش تعریف نشده باشه (`assert_never`)
وقتی من یک سرویس جدید اضافه کنم به Enum ام اگه من کد رو کمپایل کنم یا تایپ چکر رو کد ران کنم و کدم کمپایل شه, کلی ارور تایپینگ میبینم که میگه شما این دپندنسی رو تعریف نکردی. مثل همین فانکشن. اون موقع به محض اینکه من تمام ایرادات تایپینگ رو برطرف کنم PRام تموم شده.
کد خواناییشو از دست میده؟ نه واقعا!شما اگه خوانایی کد رو به تعداد خط ملاک قرار میدین, پس کد ننویسید که خیلی خوانا و تمیز باشه. کد خوانا یعنی من کدی رو بخونم و بفهمم چیکار میکنه و constraint های اون کد چیه و تو موقع استفاده ازش اشتباه نکنم.
یک مثال دیگه بازم تو پست بعدی میزنم
@PyBackendHub
ثانیا تایپینگ خودش یک داکیومنته. مثلا شما فکر کنید من یک سیستم نوشتم که ۱۰ تاسیستم مختلف رو integrate میکنه و یک API واحد میده برای هر ۱۰ تاشون. من یا میتونم ۱۰ صفحه داکیومنت بنویسم که اگه خواستیم یک سیستم جدید اضافه کنیم چه دپندسی هایی وجود داره یا اینکه میتونم یک Enum داشته باشم به اسم
Service و همه جا با اون Enum بیام exhaustive check انجام بدم.مثالش, من اینجا فقط یک سرویس Digikala دارم. و برای دیجی کالا یک رفتاری رو تعریف کردم و چک کردم سرویسی نباشه که این رفتار براش تعریف نشده باشه (`assert_never`)
def do_foo(service: Service):
match service:
case Service.DIGI_KALA: ...
case _: assert_never(service)
وقتی من یک سرویس جدید اضافه کنم به Enum ام اگه من کد رو کمپایل کنم یا تایپ چکر رو کد ران کنم و کدم کمپایل شه, کلی ارور تایپینگ میبینم که میگه شما این دپندنسی رو تعریف نکردی. مثل همین فانکشن. اون موقع به محض اینکه من تمام ایرادات تایپینگ رو برطرف کنم PRام تموم شده.
کد خواناییشو از دست میده؟ نه واقعا!شما اگه خوانایی کد رو به تعداد خط ملاک قرار میدین, پس کد ننویسید که خیلی خوانا و تمیز باشه. کد خوانا یعنی من کدی رو بخونم و بفهمم چیکار میکنه و constraint های اون کد چیه و تو موقع استفاده ازش اشتباه نکنم.
یک مثال دیگه بازم تو پست بعدی میزنم
@PyBackendHub
Forwarded from Python BackendHub (Mani)
یک مثال دیگه میزنم براتون. بین Better way و shitty way کدوم خوانا تره؟ کدوم تعداد خطوط کمتری داری؟ حالا تو پست بعدی طرز استفادشونو ببینید!
@PyBackendHub
@PyBackendHub
Forwarded from Python BackendHub (Mani)
حالا طرز استفاده رو ببینید... بله تعداد خطوط
بعضی کد ها اینقدر بد از تایپینگ استفاده کردن که شما وقتی کد رو میخونی باید رمزگشایی کنی ببینی هدف طرف چی بوده. اینکه صرفا شما میگی این variable تایپش string عه دلیل نمیشه کدتون تایپینگ خوبی داره!
@PyBackendHub
FooComponent خیلی کمتره. ولی در عوض هم شکننده تره هم ناخوانا تر. چرا شکننده تره؟چون اگه هم loading=true باشه هم data داشته باشه تو فرانت Loading Data... رو نشون میده دیتا هم میاد زیرش 😁 حالا باید بیای این کیس رو هندل بکنی! بعضی کد ها اینقدر بد از تایپینگ استفاده کردن که شما وقتی کد رو میخونی باید رمزگشایی کنی ببینی هدف طرف چی بوده. اینکه صرفا شما میگی این variable تایپش string عه دلیل نمیشه کدتون تایپینگ خوبی داره!
@PyBackendHub