بایگانی دسته: روزنوشت

قانون هافستاتر

It always takes longer than you expect, even when you take into account Hofstadter’s Law

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

هکتبرفست ۲۰۲۳، دهمین سالگرد هکتبرفست

خب امروز یک اکتبره و این یعنی شروع هکتبرفست.
هکتبرفست در واقع یک رویداد، ایونت، فستیوال یا هر چیز دیگه ای که اسمش رو میذارید هست که توی اون آدم ها سعی می‌کنن به مدت یک ماه (که ماه اکتبر هست) مشارکت بیشتری توی پروژه های اوپن سورس داشته باشن. من قبلا هم در مورد هکتبرفست نوشتم و اگر اطلاعات بیشتری لازم دارید می‌تونید به اون لینک سر بزنید

هکتبرفست امسال نسبت به سال های قبل چنتا فرق داره، مورد اولش این که دهمین سالی هست که این رویداد داره برگزار میشه و خب باحاله و یکی هم اینکه جایزش نسبت به سال های قبل عوض شده.
سال های قبل به هر کسی که چهار pull request / merge request ارسال می‌کرد تیشرت و استیکر میدادن که خیلیا از جمله من خیلی دوستش داشتیم ولی خب ی گیر هایی هم داره از جمله اینکه تهیه و ارسال این تیشرت ها سخت بوده، بعضی ها باید مالیات قابل توجهی میدادن تا تیشرتشون به دستشون میرسید یکسری ها هم که توی بعضی از کشور های خاص زندگی می‌کردند که کلا به دستشون نمیرسید ( حالا اینترنت نداریم یا نمیدن یا … بماند ولی پست که داریم ، لااقل بذارید از پست استفاده کنیم :))
امسال به جای تیشرت دو تا کار دیگه انجام میدن یکی اینکه با اسم شما یک درخت میکارن و یکی دیگه هم اینکه badge های یونیک میدن به کسایی که تونستن چهار تا PR ارسال کنند.

اگر دوست دارید توی این ایونت شرکت کنید می‌تونید به این سایت مراجعه و ثبت نام کنید. توی سایت اصلی توضیحات لازم در مورد اینکه چطوری مشارکت کنید هست، من هم سعی می‌کنم این ماه اگر بتونم در موردش بیشتر بنویسم

ایده هکتبرفست این نیست که پروژه های عجیب رو پیش ببرید یا کار های عجیبی توش انجام بدید، ایده اینه که مشارکت کنید ،چیز یاد بگیرید و خوش بگذرونید. الزاما هم مجبور نیستید کد بنویسید. دیزاین کردن، مستند نوشتن و کلی کار دیگه هست که می‌تونید انجام بدید.

در ستایش مینیمالیسم

من اولین بار از طریق پست های وبلاگ حامد با مینیمالیسم آشنا شدم (احتمالا اگر توی شاخه های مربوط به کامپیوتر فعالیت دارید حامد رو میشناسید و اگر هم نمیشناسید پیشنهاد می‌کنم که دنبال کنید). گوگل تعریف زیر رو از مینمالیسم به من نشون میده :

Minimalism is all about owning only what adds value and meaning to your life (as well as the lives of the people you care about) and removing the rest. It’s about removing the clutter and using your time and energy for the things that remain. We only have a certain amount of energy, time, and space in our lives.

در واقع ایده کلی زندگی بهتر با کمتر هست ، حذف کردن چیز های اضافه و گذاشتن وقت و انرژی روی چیزی هایی که به زندگی شما معنی بیشتری میدن.
من قبل از آشنا شدن با این موضوع هم نشونه های از این تعریف یا این سبک از زندگی رو داخل کار های روزمره ام داشتم اما نمیدونستم که آدم های دیگه‌ای هم هستن که این کار ها رو دنبال کنند. این وبلاگ ظاهرا مرجعی هست برای دنبال کردن مفهوم مینیمالیسم .

عکس ربطی به پست نداره، حس خوبی داشت گفتم بذارمش

من هم تازه شروع کردم به دنبال کردن موضوع و همزمان چیز هایی که در این مورد یاد میگیرم و یا تجربه میکنم رو می‌نویسم. خواستم اینجا معرفی کنم که اگر شما هم تجربه ای دارید به اشتراک بذارید یا شاید هم همزمان با من ماجرا رو دنبال کنید.

معرفی مجموعه ویدیو های آموزش کد تمیز با عمو باب

خب من بالاخره شروع کردم به خوندن کتاب clean code.
با سرعت آهسته ای پیش میره ولی مداوم میخونمش. کتاب رو Robert C. Martin نوشته ولی ظاهرا توی خونه Uncle Bob صداش می‌کنن. 🙂

داخل این لینک یک مجموعه ویدیو هست که عموباب محتوای کتاب Clean Code رو به شکل ویدیویی توضیح میده.من فرصت نکردم ویدیو ها رو ببینم و احتمالا هیچ موقع هم فرصت نکنم (ترجیح خودمم خوندن کتاب هست تا دیدن فیلم ) ولی گفتم لینک رو برای شما بذاریم شاید شما ویدیو رو به کتاب ترجیح بدید.

من از چه ابزار هایی برای کارم استفاده می‌کنم

یکی از جالبترین ایده های اینترنت، وبسایت هایی بودن که آدما داخلشون میگفتن که کی هستن و از چه ابزار هایی برای کارهاشون استفاده می‌کنند. به مرور زمان ایده های این شکلی زیاد شدن و حتی به شکل های جالب تری مثل سایت تو کیفت چی داری تبدیل شدن.
من به شخصه این شکل از سایت ها رو خیلی دوست دارم ولی متأسفانه خیلی کم می‌بینمشون. یکی از خوبی های این سایت ها این هست که نشون میده آدم ها معمولا توی شغلشون چه شکلی کار هاشون رو انجام میدن. خیلی وقت ها چنین چیز هایی باعث میشن شما با ابزار های جدید آشنا بشید که زندگی رو براتون راحت از قبل کنه
توی این پست من سعی می‌کنم وسایلی که ازشون استفاده می‌کنم رو معرفی کنم.

میز کار، کیبورد ، لپ‌تاپ و گوشی

مدل لپ‌تاپ من Rog GL503Ge هست که سال ۹۷ خریدمش، از اون موقع تا الان داره خوب کار می‌کنه و هنوز هم تا چند سال آینده جواب میده.

امسال تابستون یک مانیتور هم گرفتم که لپ تاپ رو بهش وصل می‌کنم، معمولا فقط از مانیتور استفاده می‌کنم و صفحه لپ‌تاپ خاموشه. مدل مانیتور Rog XG32VC هست که بنظرم از نظر ابعاد و کیفیت خوبه، کار کردن باهاش هم راحته فقط باید میز بزرگ داشته باشید که بتونید فاصله چشم تا مانیتوری رو درست تنظیم کنید. برای استفاده معمولی و روزانه ای که من دارم این مانیتور یکم زیاده و می‌تونستم یک مانیتور ساده تر و ارزون تر بخرم اما ترجیحم همیشه این هست که موقع خرید یک چیز خوب بخرم و سعی کنم طولانی مدت ازش نگهداری کنم.

گوشی موبایل هم samsung S8+ دارم که سال ۹۶ خریدمش، اون موقع این گوشی تازه اومده بود و همونطور که گفتم اون روز ترجیح دادم گوشی بهتری بخرم و طولانی مدت نگهش دارم، تا الان که خوب کار کرده و هنوز هم سالمه و قراره کار کنه.

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

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

یک لپ‌تاپ قدیمی مدل DELL E6410 هم دارم که قبل از اینکه این لپ‌تاپ رو بگیرم ازش استفاده می‌کردم که الان هم دارمش، روش ویندوز 7 نصبه و بیشتر برای کار های دانشگاه و … استفاده می‌کنم. پایان نامه‌ رو هم دارم با اون می‌نویسم.

نرم‌افزار ها

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

برای برنامه نویسی هم Intellij IDEA و ترمینال خود لینوکس نرم افزار های اصلی هستن که استفاده می‌کنم. در کنارشون بسته به شرایط چیز های دیگه مثل dbeaver یا anydesk هم استفاده می‌‌کنم.
مرورگر ، فایرفاکس هست و ایمیل ها رو هم با thunderbird میخونم.
داخل ترمینال از ZSH و OhMyZsh و Tmux استفاده می‌کنم که باعث میشن توی ترمینال کار ها راحت تر پیش برن.
روی Intellij IDEA هم پلاگین های sonarlint (برای بررسی کیفیت کد) و code glance (که یک نقشه کوچیک از کل کد های یک فایل رو نشون میده) استفاده می‌کنم.

یکسری نرم افزار دیگه هم هستن که هر وقت سیستم رو روشن می‌کنم به شکل خودکار اجرا میشن مثل xpad که برای یادداشت های کوچیک استفاده می‌کنم، parcelite که کلیپ بورد منیجره و پیشنهاد می‌کنم که حتما امتحانش کنید.
از breaktimer هم استفاده می‌کنم که به شکل خودکار طبق ساعت های مشخصی یادآوری می‌کنه که باید از پشت سیستم بلند بشم و چند دقیقه ای استراحت کنم.
برای دیکشنری هم goldendict استفاده می‌کنم که هم سریعه و هم راحت، کافیه هر موقع معنی یک کلمه رو نمی‌دونم روی اون کلمه کلیک کنم تا معنیش رو همون موقع بهم نشون بده.

نرم افزار هایی که گفتم رو گوشه ی سمت راست تصویر میتونید ببینید

سایت ها

برای تودو لیست از toodledo استفاده می‌کنم به این خاطر که سادس و میتونم خیلی راحت تمام کار های یک روزم رو داخل یک صفحه یکجا ببینم.
اگر بخوام پست یا وبسایتی رو بعدا نگاه کنم یا بخونم از pocket استفاده می‌کنم و برای دنبال کردن وبلاگ ها و خوندن اخبار هم از feedly استفاده می‌کنم. (feedly بعضی وقت ها یکم توی لود کردن پست ها اذیت می‌کنه و نمی‌دونم مشکل از feedly هست یا عیسی پاش رو روی خط اینترنت گذاشته، به هر حال چاره ای نداریم)

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

پلاگین ها

برای هایلایت کردن نوشته های وبسایت ها از Textmarker استفاده می‌کنم و اگر هم بخوام یادداشت کوچیکی روی یک صفحه وب داشته باشم از Sticky Notes استفاده می‌کنم.

پلاگین AdBlocker Ultimate هم برای بلاک کردن تبلیغات وبسایت ها استفاده می‌کنم (دیدن تبلیغ داخل وبسایت ها باعث میشه که صاحب سایت درآمد داشته باشه و وبسایتش زنده بمونه منم خیلی خوش حال می‌شم اگر بتونم به زنده بودن وبسایت ها و صاحب هاشون کمک کنم ولی بعضی سایت ها اینقدر تبلیغ دارن که نمیذارن صفحه اصلی سایت رو ببینیم)

دو تا پلاگین دیگه که پیشنهاد می‌کنم حتما نصب و استفاده کنید، یکی fast tab switcher هست که مثل tab switcher سیستم عامل هست و اجازه میده خیلی راحت بین تب های مرورگرتون جا‌به‌جا بشید. و اون یکی هم Dark Reader هست که اجازه میده با یک کلیک هر سایتی رو که دوست دارید با تم مشکی ببینید که توی محیط های تاریک کمتر اذیت بشید.

من سعی کردم تا حد ممکن ابزار هایی که استفاده می‌کنم و دلایل انتخابشون رو بنویسم. اگر شما هم دوست دارید بدونید آدم های دیگه از چه ابزار هایی توی کارهاشون استفاده می‌کنن بهترین راه این هست که ابزار هایی که خودتون استفاده می‌کند رو معرفی کنید و در موردشون توضیح بدید، به قول گاندی : همیشه بخشی از تغییری باشید که دوست دارید اتفاق بیوفته.

پی‌نوشت یک : ببخشید که طولانی شد و ممنون که تا آخر خوندید
پی‌نوشت دو : اون تیکه کاغذی که روی لپ‌تاپ گذاشتم برای پوشاندن دوربین هست

سرکار استراحت کنید !

من همیشه از نصیحت هایی که آدم ها میکنن یا پیشنهاد هایی که میدن استقبال می‌کنم. نصیحت ها، پیشنهاد ها، راهنمایی ها یا هر چیز دیگه ای که اسمش رو میذارید این امکان رو میدن که تجربه دیگران رو تجربه نکنیم بلکه از نتیجه تجربه اون ها استفاده کنیم.
چند روز پیش توئیت زیر رو داخل توئیتر دیدم :

به خاطر همین تصمیم گرفتم چنتا نکته ای که خودم موقع کار کردن رعایت می‌کنم رو بنویسم

مانیتور و صفحه نمایش

مانیتوری که من استفاده می‌کنم تقریبا مانیتور بزرگی هست حدود ۳۲ اینچ (شاید در آینده در مورد مانیتور و تجربه استفاده ازش نوشتم) در نتیجه فاصله چشم من از مانیتور باید به اندازه ای باشه که به چشمم آسیب نزنه. خیلی وقت پیش مطلبی رو خوندم که نمیدونم چقدر علمی هست یا نه ولی میگفت که فاصله چشم تا مانیتور باید به اندازه طول دست شما باشه و الان فاصله من از مانیتورم به اندازه طول دستم هست.
ارتفاع استاندارد مانیتور رو هم نمیدونم چقدر هست ولی من همیشه جوری تنظیم می‌کنم که وقتی مستقیم به صفحه نگاه می‌کنم وسط مانیتور جلوی چشمم باشه. از طرفی من از یک مانیتور استفاده می‌کنم (در مقابل استفاده از چند مانیتور) چون که استفاده از چند مانیتور باعث میشه شما دائما گردنتون رو جا‌به‌جا کنید. اگر شما از چند مانیتور استفاده می‌کنید ممکنه تا به حال به این موضوع دقت نکرده باشید و اگر خواستید که مطمئن بشید کافیه با گوشیتون به مدت یک ساعت از کارکردنتون فیلم بگیرید و حرکت سر و گردنتون رو ببینید.

کیبورد و ماوس

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

صندلی

من از یک صندلی معمولی استفاده می‌کنم، متاسفانه خیلی وقت ها حواسم به نوع نشستنم نیست و باعث میشه کمر و گردنم درد بگیره ولی دارم سعیم رو میکنم که درست نشستن تبدیل به یک عادت ناخودآگاه بشه.

timer

بعد از خوندن توئیت بالا تصمیم گرفتم از یک break timer استفاده کنم که طبق برنامه مشخصی یادآوری می‌کنه که باید از پشت سیستم بلند بشم و استراحت کنم. من نرم افزار break timer رو انتخاب کردم و برای روز اول که خوب عمل کرد. به شکل خودکار بعد از روشن کردن سیستم اجرا میشه و می‌تونید بر اساس روز کاری و شرایطتون تنظیمش کنید.

این ها مواردی بودن که من سعی می‌کنم رعایتشون کنم. اگر شما هم موردی هست که رعایت می‌کنید یا تجربه ی مشابه ای در این مورد دارید اون رو بنویسید تا آدم های دیکه از اون استفاده کنند.

معرفی پلاگین sonarlint

یکی از چیز هایی که من همیشه دوست داشتم ولی کمتر داخل اینترنت میبینمش این هست که آدم ها ابزار هایی که برای کارشون استفاده می‌کنن یا شکلی که کار میکنن رو به بقیه نشون بدن.
جمله ای هست منسوب به گاندی که میگه “همیشه بخشی از تغییری باشید که دوست دارید اتفاق بیوفته” (نمیدونم واقعا گاندی این رو گفته یا نه ولی من بهش معتقدم) در نتیجه تصمیم گرفتم یک تگ جدید به اسم معرفی ابزار داخل وبلاگم تعریف کنم و از این به بعد ابزار هایی که بنظرم جالب هستند یا من از اون ها استفاده می‌کنم رو در موردشون بنویسم.

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

پلاگین sonarlint پلاگینی هست که من روی intellij idea استفاده می‌کنم. این پلاگین در لحظه ای که شما در حال کد نوشتن هستید کد شما رو چک میکنه و اگر مشکلی وجود داشته باشه اون رو به شما نشون. چیزی که این ابزار رو برای من جالب می‌کنه این هست که علاوه بر این که مشکل کد شمارو مشخص می‌کنه و دلیل مشکل رو مطرح می‌کنه، راه حل رو هم به شما نشون میده. استفاده از چنین ابزاری به شکل مستقیم دو فایده اصلی داره : یکی اینکه مشکلات داخل کدتون رو میشناسید و اون ها رو برطرف می‌کند و دیگه اینکه دلیل مشکل و راه حل مناسب رو به شما میگه و شما می‌تونید ازش نکته های مختلفی رو یادبگیرید.
پلاگین sonarlint برای زبان های C, C++, Java, Go, Java Script, Kotlin و … قابل استفاده است.

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

بینی بایونیک به افرادی که حس بویایی شون رو از دست دادن کمک می‌کنه

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

قبل از شروع کرونا پروژه ای با اسم Bionic Nose وجود داشت که تلاش می‌کرد با استفاده از یکسری سنسور بتونه حس بویایی رو شبیه سازی کنه و با گسترش کرونا این پروژه اهمیت بیشتری پیدا کرد.

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

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

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

استفاده از این وسیله به شکل همه گیر هنوز ممکن نشده و نیاز داره که زمان بیشتری صرف بشه تا همه بتونن ازش استفاده کنن.

منبع