در OS X کنترل پنجره برنامهها توسط ابزارهایی مانند xmonad یا i3 امکانپذیر نیست. این باعث شد که به دنبال یک برنامه جایگزین برای مدریت ترمینالهایم باشم. در ادامه توضیح میدهم که من چطور به روشی برای استفاده از tmux (تیماکس) به عنوان یک tiling window manager برای ترمینال رسیدم.
سینا سیادت دوشنبه، 26 بهمن 1394
سازماندهی پروژهها در ترمینال با استفاده از تیماکس
سینا سیادت چهارشنبه، 4 آذر 1394
برنامهی روزانه برای دورکاری
اولین تجربهی دورکاری حرفهای من وقتی بود که دفتر شرکتی که در آن مشغول به کار بودم به خارج از ایران منتقل شد. دوست داشتم به همکاری با آنها از راه دور ادامه بدهم. در آن زمان تجربه و الگویی در این زمینه نداشتم. ترجیح میدادم کار را به خانه نبرم، مثل یک کارمند سادهی بانک که بعد از پایان ساعات اداری دیگر هیچ دغدغهی فکری دربارهی کارش ندارد. میخواستم بعد از ساعات اداری انرژی باقیمانده را صرف پروژههای جانبی و کسب مهارتهای جدید کنم. ولی بعد از انتقال شرکت درست در وضعیتی قرار گرفته بودم که از آن پرهیز میکردم.
سینا سیادت یکشنبه، 12 مهر 1394
چطور با مشکل بروزرسانی میلیونها رکورد در Rails کنار نیامدیم
آیا متد find_each
را میشناسید؟ اگر با Ruby on Rails کار کرده باشید حتماً از این متد استفاده کردهاید. find_each
و متد مشابه آن each
، برای گرفتن رکوردها به صورت تکتک استفاده میشوند. به عنوان مثال:
People.find_each(&:party_all_night!) People.each(&:party_all_night!)
تفاوت بین find_each
و each
در نحوهی پیادهسازی آنهاست. متد each
تمام رکوردها را در یک آرایه ذخیره میکند و یک Enumerator
برای این آرایه خروجی میدهد. حالا فرض کنید تعداد رکوردها چند میلیون باشد. تمام این چند میلیون ActiveRecord
باید در حافظه ذخیره شوند. میزان مصرف حافظه سرسامآور خواهد شد. این میتواند مشکلساز باشد، مخصوصا برای پروسسهایی که عمر طولانی دارند چون که Ruby حافظهی گرفته شده را به سیستم پس نمیدهد (و در عوض در آینده از آن دوباره استفاده میکند).
سینا سیادت یکشنبه، 15 تیر 1393
توپ به عنوان ساز با استفاده از پردازش تصویر
«توپجمعکن» نام پروژهی آخر هفته من بود. هدف از این پروژه استفاده از یک توپ و حرکت آن جلوی دوربین برای ارسال دستورات به برنامههای مختلف است.
این برنامه در مرحله ابتدایی (یا حتی پیش دبستانی) خود است و محدودیتهای زیادی دارد. کاری که این برنامه میکند این است که به دوربین اصلی کامپیوتر وصل میشود، با استفاده از opencv تصاویر را پردازش میکند، از چند فیلتر رد میکند، مختصات یک دایره سبز رنگ را در تصویر تخمین میزند، و در نهایت این مختصات را به صورت بیدرنگ در خروجیاش چاپ میکند. کار این برنامه همین است. هیچ کار دیگری با مختصات بدست آمده نمیکند.