Warning: Undefined array key 0 in /var/www/tgoop/function.php on line 65

Warning: Trying to access array offset on value of type null in /var/www/tgoop/function.php on line 65
2998 - Telegram Web
Telegram Web
زیر کاپوت گیت چه خبره؟
اسلاید های یک ارائه خوب ولی قدیمی از جزییات کارکرد گیت

https://github.com/techgaun/git-internals/blob/master/README.md


این اسلایدها هم هست که جذاب تر و طولانی تره ولی به نظرم بالایی مختصر مفید تر بود
https://www.slideshare.net/slideshow/git-internals-187357386/187357386
9👍4
Forwarded from Lack of leak XD
💡درباره اینکه ویندو منیجر چیه و چیکار میکنه و تفاوتش با دسکتاپ چیه .. این پست رو بخونید

اول از همه اینکه دسکتاپی که شما استفاده میکنید از چیزای خیلی زیادی تشکیل شده که شاید تا بحال اسمشونم نشنیدید .

desktop environment : DE
window manager : WM

اول از همه شما اون پشت یک دیسپلی سرور دارید که بطور کلی داره گرافیک شمارو هندل میکنه تا بتونید بصورت gui با سیستمتون کار کنید . محبوب ترین دیسپلی سرور حال حاضر xorg هست و بعد از اون wayland عه. یادتون نره که برای بالا اومدن هرچیز گرافیکی شما به این نیاز دارید .

بعد از اینکه نه ولی چیزی که بصوت عموم بعد بالا اومدن سیستم عاملتون باهاش در ارتباطین (گرافیکیال استفاده میکنید ) دیسپلی منیجر عه یا بهش لاگین منیجر هم میگن . همون صفحه ای که اول بعد بوت شدن بالا میاد و توش یوزرنیم وپسورد میزنید و بعد سشن مورد نظر رو انتخاب میکنید تا لاگین بشید و برید به دسکتاپ .

دسکتاپ شما در مرحله اول با دیسپلی سرور بالا میاد و بعدا از اون سرویس های مورد نیاز خودش رو ران میکنه تا نیاز های شما رو برطرف کنه .

هر دسکتاپی خودش یک wm داره که بتونه مکان و ویژگی های پنجره هاتون رو تنظیم کنه و به شما هم امکان تنظیم رو بده . مثلا وقتی دارید سایز یک پنجره رو تغییر میدید ، دارید با wm سرو کله میزنید . کل کار ویندو منیجر در حقیقت اینه که پنجره هاتون رو مدیریت کنه .

حالا موضوعی که هست اینه که اگه ویندو منیجر بخشی از دسکتاپه پس این ویندو منیجر هایی که بدون دسکتاپ استفاده میشن چی ان ؟
خب در حقیقت بحث اینه که ما بجز ویندو منیجر های دسکتاپ یسری ویندو منیجر دیگه هم داریم که میتونید بصورت تکی نصب و استفاده کنید . در این صورت شما دسکتاپ و سرویس ها و برنامه های اون رو ندارید و شما صرفا یک ویندو منیجر دارید که خیلی در مقایسه با دسکتاپ سبکتره چون بای دیفالت چیز خاصی نداره

ویندو منیجر ها انواع مختلفی دارن :

floating
tiling
dynamic

توی فلوت مثل دسکتاپ میمونه پنجره ها هر جور که باز میکنید تو دسکتاپ و تغییر اینا داره ، اینجا هم همون هست .

توی تایلینگ که خودش معنی کاشی کاری میده حدودا پنجره هاتون بصورت کاشی کنار هم قرار میگیرن و سایز هاشون با توجه به تعداد پنجره های کناری و layout ای که ویندومنیجر استفاده میکنه تنظیم میشه

توی داینامیک هم شما میتونید راحت بین فلوت و تایل سوییچ کنید و در کنار هم استفاده کنید

برا درک مورد های اخر ببینم فیلمی عکسی پیدا میکنم بزارم درکش راحتتر میشه .

این بنظرم مقدمه ی بدی نبود برای اشنایی با ویندو منیجر . در باره این موضوع بیشتر صحبت خواهم کرد .

@lack_xd
👏13👍31
نوشته‌های ترمینالی
اگه میخواید با کمترین حجم کار یه ide معقول از neovim در بیارید این ویدیو kickstart رو معرفی میکنه که برای همینکاره https://www.youtube.com/watch?v=stqUbv-5u2s
یه بار دیگه جا داره پروژه Kickstart رو معرفی کنم.
اگه میخواید کانفیگ های neovimتون رو مرتب کنید یا از پلاگین منیجر lazy استفاده کنید یا حتی از vim به neovim سوییچ کنید، این پروژه که maintainerش آدم مطرحیه در حوزه neovim، نقطه شروع خیلی خوبیه.

یه چیزی تو مایه های همین رو دیدم یه شرکتی به اسم bettervim به قیمت گزاف می‌فروخت! وقتی رایگان و آزادش هست حداقل آشنا باشیم باهاش.

https://github.com/nvim-lua/kickstart.nvim
4😁1
اگه با زبان کلوژر (clojure) و vscode کار میکنید از این repl داخل ادیتور غافل نشید.

https://calva.io/

کلا هم اگه دنبال یادگیری lisp هستید ولی یه چیزی عملی میخواین بین dialect های مختلفی که داره من racket و clojure رو دوست داشتم.

توسط دوست خوبم دانیال #ارسالی
15😁1
در باب برنامه نویسی فانکشنال، یه مقاله خیلی خوب و البته پایه ای هست که توضیح میده چطوری میشه محاسبات رو در قالب توابع بازگشتی بیان کرد. (در واقع اثبات انجام میده)
اگه به functional programming علاقه دارید ازش میشه چیزای خوبی یاد گرفت.

https://www-formal.stanford.edu/jmc/recursive.pdf

#ارسالی از دوست خوبم دانیال

و یادآوری اینکه مقاله سنگینیه، شاید با کمک سرچ و یوتوب منابعی پیدا کنید که بیشتر توضیح دادن.
2👍1
چی میشه اگه یه مهندس نرم‌افزار (آشنا به گیت و گیتهاب) یه شرکت و متودولوژی توسعه نرم‌افزار طراحی کنه؟
احتمالا برای همه چی از گیت و گیتهاب استفاده می‌کنه. توی plaintext و markdown می‌نویسه و ...

به نظرم ویدیویی جالبی بود.
https://youtu.be/WgV6M1LyfNY?si=Hr9hsBTfmEME7s9A
6👍2
Forwarded from Arsham's Tech Mastery (Arsham)
The devil is in the details
شیطان در جزئیات خفته

طی چند سالی که تو رشته کامپیوتر فعالیت میکردم،
مشکلات بزرگ و کوچیک و تغییرات بزرگ و کوچیک زیادی دیدم،
اما به طور جالبی،
بزرگترین مشکلات ریشه در تغییراتی داشت که ورژن پتچ خورده بودن و اونقدر کوچیک بودن که حتی کد ریویو و تست نشدن چون "کوچیک بودن"
ولی بعدش... فاجعه رخ داد.

اما از دید من، هیچ تغییری بی اهمیت نیست،
یه اسپیس اضافه توی فایل یمل میتونه کلا کانفیگ رو خراب کنه و پاد کلا بالا نیاد.

و کاش ته فاجعه بالا نیومدن یه پاد باشه!
یه سری اشتباهات در همین اندازه کوچیک،
موشک ها منفجر کردن و بیزنس ها به خاک نشوندن!

|-×-×-×-|

نیاز به حساسیت رو یه سری موارد در ظاهر کم ارزش اما باطنا تاثیر گذار، باعث شد که با خیال راحت تری برای ریویو کردن کد ها حساسیت به خرج بدم.

الان اینجوری ام که حتی به تک تک اسپیس ها و فرمتینگ های نامناسب کد هم اشاره میکنم.

ولی خودمونیما، چه دلیلی وجود داره که کد فرمت نشه؟
اونم با وجود کلی ابزار برای اتومات شدن این فرآیند؟
چیزی جز مایندست "بزن بره"؟
و چه تضمینی هست کسی که رو فرمت کردن کدش تنبلی کرده، بقیه جاها مثل ساعت کوارتز، دقیق باشه؟

|-×-×-×-|

برای من کد مثل یه اثر هنری میمونه، که هر چی بیشتر به ظرافت هاش توجه بشه زیباتر میشه.
و تو مهندسی، علاوه بر زیبایی، پارامتر هایی مثل کارایی، بهینگی، قابل اتکایی و... هم تاثیر پذیر از توجه به ظرافت ها و جزئیات هستن.

بنابراین به جزئیات دقت کنید،
تمام کامیت های شما میشن اعتبار آینده شغلی شما،
اعتبار شما پیش کسایی که فعلا شمارو نمیشناسن،
اما اسم و کیفیت کارتون رو خواهد شناخت.

دیر رسیدن، بهتر از رو پروداکشن ترکیدن!

|-×-×-×-|

اخیرا دوستی برای مشکلی تو کدش بهم مراجعه کرد،
نمیتونست دیباگش کنه،
به محض اینکه پیچیدگی غیر ضروری و چند لول شرط های تو در تو رو دیدم، گفتم اول این شرط هارو جدا کن یکم کدت رو تمیز تر کن، بعد مشکل خودش خودشو نشون میده.

اول مقاومت کرد و متوجه ارتباط دغدغه من با مشکلش نشد، ولی بعد که براش توضیح دادم چه اتفاقی تو اون قطعه کد داره میوفته متوجه شد که عملا خیلی از جزئیات رو حذف کرده بوده، جزئیاتی که دقیقا خطا در همونا نهفته بود.
و حتی خطاهایی که میتونست خاموش بمونه و تو یه فلوی جانبی خاص، نرم افزار رو بندازه.

|-×-×-×-|

از این موارد و عدم توجه به جزئیاتی که باعث فاجعه شدن زیاد توی تاریخ دنیای نرم افزار وجود داره،
ولی مایندست "بزن بره" هم همچنان به قوت خودش باقیه 🔥😂

واقعیت اینکه گاهی وقتا یه چیزایی برامون شفاف نشده،
و همین باعث میشه ندونیم چه وقت حساس باشیم و چقدر حساس باشیم.

میخوایم جلوی premature optimisation رو بگیریم،
اشتباها کد باگی میفرستیم رو پروداکشن.
چون مرز بهینگی رو مشخص نکردیم،
چون تعریف باگ رو (برا خودمون) مشخص نکردیم،
چون هیچ فریمورکی برای کد ریویو نداریم و کاملا سلیقه ای انجام میشه.
و...

|-×-×-×-|

نظر شما چیه؟ چه مثال ها و نکاتی رو دوست دارید در مورد مطالب گفته شده مطرح کنید؟
👍21🔥2😍2😁1
اگر دوست داشتید Reverse Shell رو پیگیری کنید. هکر کاری می‌کنه که سیستم قربانی خودش به سمت هکر وصل بشه و می‌تونه کنترل سیستم رو از راه دور به دست بگیره. اینطوری فایروال ها خیلی کمتر جلوش رو میگیرن.

https://www.acunetix.com/blog/web-security-zone/what-is-reverse-shell/

این هم سایت باحالی بود در این زمینه
http://revshells.com

با تشکر از دوست قديميم امیر میرزایی عزیز #ارسالی
7🔥3🆒1
چیزهای عجیبی که موقع استفاده از json در گولنگ باید حواسمون باشه
https://www.alexedwards.net/blog/json-surprises-and-gotchas
👍7🔥2😁1😐1
Forwarded from memealloc
👍11👎1
This media is not supported in your browser
VIEW IN TELEGRAM
این گیف سرعت دسترسی به لایه‌های کش رو در مقایسه با سرعت رم نشون می‌ده:

🆔 @lifeAsAService
👍19🤯4
Forwarded from It's FOSS
Happy 53rd birthday, Unix! 🥳
🍾14😢2
وقتی برنامه‌ها تموم می‌شن یه کدی دارن به اسم exit code
تو این مطلب باهاشون بیشتر آشنا می‌شیم و در مورد اینکه هر کد چه معنی‌ای می‌تونه داشته باشه صحبت می‌کنیم.
https://www.networkworld.com/article/3546937/understanding-exit-codes-on-linux-2.html
👍4
مطالب روزهای گذشته از یک بلاگ بود به اسم یونیکس به عنوان زبان دوم (unix as a second language)
به نظرم آموزش‌های لینوکسی سطح متوسط و کاربردی‌ای داره. از سایت‌های عام که آموزش‌های مقدماتی رو مدام تکرار می‌کنن فاصله گرفته ولی همچنان قابل فهم و زیبا می‌نویسه و موضوعات خوبی هم انتخاب می کنه.

https://www.networkworld.com/blogs/unix-as-a-second-language/
👍6
گیت اخیرا به اسیب پذیری داشت که یه ریپوزیتوری فقط با کلون شدن، میتونست رو سیستم سما دستورات مخرب اجرا کنه.
توضیحات خوب و توضیح کد رو اینجا ببینیم:
https://amalmurali.me/posts/git-rce/
1👍6😨4😁1
اگه براتون زیاد پیش میاد که یه تغییر رو روی چند تا فایل مختلف اعمال کنید اولا که می‌تونید براش ماکرو در ویم بنویسیم.

اما اگه ویم دوست ندارید یا میخواید مشخص تر باشه روند کاری که پیش می‌رید، امکان گرفتن diff (یا با کامند دیف یا با کمک git diff) و بعد اعمال کردنش با دستور patch می‌تونه کمک کننده باشه.


در مورد دستور patch:
https://www.youtube.com/watch?v=r9N-BOWWr-k
اموزش متنی هم قطعا ازش هست ولی ممکنه نامانوس باشه قضیه برای همین این اموزش ویدیویی برای خودم جالب تر بود.
👍3
2025/07/12 17:59:59
Back to Top
HTML Embed Code: