تایپ ۱۰ انگشتی

keybaord_k120چند وقتی هست که یک کیبورد Logitech K120 گرفته‌ام. تایپ با این کیبورد ساده و خوب، خیلی راحت و سریع بود تا اینکه متوجه شدم من فقط از سه انگست هر دستم برای تایپ استفاده میکنم (مثل لاک پشت‌های نینجا)!!! تایپ کردن را خودم یاد گرفتم و جای تعجب است که بعد از این همه سال هیچوقت تایپ صحیح ۱۰ انگشتی را جدی نگرفته بودم.

سرعت تایپم با همین روش ۶ انگشتی در حدود ۶۰ لغت در دقیقه است که برای برنامه نویسی کفایت میکند، ولی حالا که متوجه شدم از ۴۰ درصد انگشتانم استفاده نمیکنم، مثل یک خوره هر روز مشغول تمرین تایپ ۱۰ انگشتی هستم. با این فکر که «اگر بتوانم سرعت تایپم را به ۸۰ لغت در دقیقه برسانم یعنی ۳۳ درصد سرعت بیشتر در تایپ که قطعا در افزایش سرعت کارها تاثیر گذار است» خودم را گول میزنم و به جای کار بر روی پروژه‌ای که زمان تحویلش نزدیک است، تمرین تایپ میکنم.

یاد گرفتن تایپ ۱۰ انگشتی مشکل نیست بلکه فراموش کردن تایپ ۶ انگشتی مشکل است. بنابر این باید با دقت، روی اینکه با چه انگشتی کدام کلید را میزنم تمرکز کنم تا عادت قبلی از بین برود. به همین دلیل فعلا نمی‌توانم از پروژه به عنوان تمرین تایپ استفاده کنم (اول مغزم باید عادت قبلی را ترک کند).

این پست جف آتوود هم خواندنی ست.

۱م بهمن ۱۳۹۳ بازدید: 198 دسته بندی: فناوری , متفرقه دیدگاه‌ها: ۸

مسابقه برنامه‌نویسی شبیه ساز هرمی جادی

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

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

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

۲۱م دی ۱۳۹۳ بازدید: 162 دسته بندی: فناوری , متفرقه دیدگاه‌ها: ۲

یک سال پس از مهاجرت به لینوکس

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

از سال ۱۳۸۲ به طور حرفه‌ای (برای پول درآوردن) برنامه‌نویسی می‌کنم و بیشتر آن روی تکنولوژی‌های مایکروسافت بوده. اگر نگویم تمام ابزارها، بیشتر ابزارهایی که در این چند سال استفاده کردم محصول مایکروسافت بود؛

  • ویندوز به عنوان سیستم عامل
  • آفیس برای کارهای اداری
  • Outlook برای ایمیل و تقویم و …
  • Internet Explorer به عنوان مرورگر!
  • استفاده بیشتر از Bing نسبت به Google برای جستجو!
  • گوشی هوشمند با سیستم عامل ویندوز فون ۷ (Mozart 7)
  • صفحه کلید (ارگونومیک) و ماوس مایکروسافت!!!
  • استفاده از نرم‌افزارهای متن باز دات نتی (حتی برای وبلاگ به جای ورد پرس)
  • Visual Studio برای تولید نرم‌افزار (از طراحی تا پیاده‌سازی)
  • SQL Server برای بانک اطلاعاتی
  • زبان سی شارپ و سکوی دات نت
  • و …

windows-tattooهر کاری که میخواستم انجام بدهم حس بهتری داشتم که با محصولات مایکروسافت باشد. چون مایکروسافت به توسعه دهنده‌ها اهمیت میداد و زبان سی شارپ هم کار آنهاست و در کل جایگزینی خوبی برای سی شارپ نداشتم! از آنجایی که من برنامه نویس هستم بیشتر عمرم را مشغول صحبت کردن با یک زبان برنامه‌نویسی هستم پس اهمیت این موضوع که با چه زبانی کار کنم و اینکه این زبان چه امکاناتی داشته باشد روشن است.

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

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

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

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

dawn-700x300

ولی افتاد مشکل‌ها! حالا باید از صفر تا صد همه کارها را در دنیایی متفاوت انجام می‌دادم. من هم ابزارهای زیر را برای کارهایم انتخاب کردم:

  • اوبونتو به عنوان سیستم عامل
  • لیبره آفیس به جای آفیس مایکروسافت
  • Thunderbird (و پلاگین‌هایش) به جای Outlook
  • ابتدا Chromium و بعدها (به خاطر مشکلی امنیتی) Firefox به جای IE
  • استفاده بیشتر از محصولات گوگل
  • گوشی ویندوز فون ۷ را هنوز داشتم (و دارم ولی دلم یک گوشی اندرویدی می‌خواهد که بتوانم رویش Firefox OS یا Ubuntu Touch نصب کنم) ولی یک تبلت اندرویدی گرفتم و تازه دنیای اپ‌ها به رویم باز شد
  • صفحه کلید فراسو و ماوس A4tech!!!
  • استفاده از ورد پرس و پرستا شاپ و نرم‌افزارهای غیر دات نتی (که تعدادشان خیلی بیشتر از دات نتی‌ها بود)
  • Scala IDE (همان Eclipse) و IntelliJ IDEA و بقیه برای توسعه نرم‌افزار
  • MongoDB، Postgres و MySQL برای بانک اطلاعاتی
  • زبان اسکالا و بعدا روبی و پایتون (در کنار اسکالا) برای برنامه‌نویسی (هنوز اسکالا را به شدت نسبت به بقیه ترجیح می‌دهم)
  • و …

و مشکلاتی که داشتم؛

  • هنوز یک پروژه بر روی دات نت داشتم و با استفاده از Virtual Box یک نسخه ویندوز ۷ با VS روی آن بالا می‌آوردم و با بدبختی روی آن کار میکردم؛ بسیار کند بود و وقتی دکمه Alt را می‌گرفتم منوی Unity باز می‌شد و وسط نوشتن یک کد حساس یک حال اساسی به اعصابم می‌داد.
  • دلم می‌خواست روی پروژه‌ای با زبان اسکالا کار کنم ولی کسی حتی اسمش را هم نشنیده بود!
  • من عادت کرده بودم زبان صحفه کلید را با دست راست و با Alt+Shift سمت راست تغییر دهم ولی به دلیل وجود باگی در Ubuntu آن زمان فقط امکان استفاده از Alt+Shift سمت چپ وجود داشت و من هم هنوز بلد نبودم سیستم را هک کنم (منظور فقط کمی ور رفتن با سیستم است) و هر کلیدی که دوست دارم انتخاب کنم و تصورش را هم نمی‌کردم این باگ به سرعت رفع شود برای همین به ترکیب سمت چپ عادت کردم و هنوز هم از کلیدهای سمت چپ استفاده می‌کنم!
  •  کارت گرافیکم به سختی نصب می‌شد و فن لپ تاپ همیشه روشن بود، نصفی از مشکل بخاطر درایور کارت گرافیک بود و نصف برای تنظیمات و درایور مخصوص DELL
  • از نظر مالی شدیدا به مشکل خورده بودم، پول لازم بودم و پروژه‌ای هم در کار نبود و شرایط به شدت برایم سخت شده بود در حالی که با مشکلات بالا هم سر و کله می‌زدم و همزمان اسکالا هم یاد می‌گرفتم

البته توانستم کم کم مشکلات را حل کنم:

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

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

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

ubuntu-boot-small

یک سال است که وقتی کامپیوترم را روشن می‌کنم صفحه بوت شدن اوبونتو را می‌بینم (چند وقت هم بوت شدن Mint و بقیه را دیدم) و هر روز از دیدنشان لذت می‌برم (هر وقت خسته شوم می‌توانم با کمترین دردسر به یک توزیع باحال دیگر مهاجرت کنم). با دیدن این صفحات بوت به این فکر می‌کنم که تمام این نرم‌افزارها و ابزارها حاصل تلاش میلیون‌ها نفر است که بخاطر عقایدشان و علاقه‌ای که به آزادی داشتند از هیچ، به اینجا رسیدند و توانستند حریف بزرگترین غول‌های دنیا شوند. از طرفی اینکه چیزهایی مثل Raspberry Pi و Android و خیلی چیزهای دیگر که با نرم‌افزارهای آزاد و لینوکس کار می‌کنند، در کل دنیا معروف و همه‌گیر شدند. اینکه چندتا سیستم خیلی قدیمی را با استفاده از مدرن‌ترین توزیع‌های لینوکس دوباره راه اندازی کردم که بسیار عالی کار می کنند و یک حس نوستالژیک دارند. اینکه اکثر وب سایت‌ها و سرویس‌های بزرگ دنیا بر روی لینوکس و نرم‌افزار آزاد بنا شده‌اند. همه اینها حس بسیار خوبی به من می‌دهد و کمک می‌کند با انرژی بیشتری کار کنم و چیزهای بهتری تولید کنم.

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

۲۹م آذر ۱۳۹۳ بازدید: 924 دسته بندی: فناوری , متفرقه , مدیریت , کسب و کار دیدگاه‌ها: ۲۲

لینوکس برنده شد!

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

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

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

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

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

۲۳م آبان ۱۳۹۳ بازدید: 584 دسته بندی: فناوری , مدیریت دیدگاه‌ها: ۹

ماهنامه شماره ۲ سلام دنیا و اسکالا

شماره ۲ سلام دنیااگر به قسمت بالا و سمت راست جلد شماره دوم از مجله سلام دنیا نگاه کنید قطعه کدی به زبان اسکالا مشاهده می‌کنید :)

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

و یک مورد دیگر اینکه متاسفانه نسخه نهایی مقاله که در مجله منتشر شده مشکلاتی دارد:

  • برای نمایش قطعه کدها از فونت مناسبی استفاده نشده
  • در حالی که زبان برنامه‌نویسی هر قطعه کد در نسخه ارسالی مشخص شده بود (Java / C# / Scala) این اطلاعات از نسخه نهایی حذف شده که احتمالا خواننده را گمراه می کند
  • فضای افقی بسیار کمی برای مقاله در نظر گرفته شده (۳ ستون) که باعث شده کوچکترین قطعه کدها نیز شکسته شود
  • برخی از فاصله‌ها که به خوانایی کد کمک می‌کرد به شکل نا بجایی حذف شده

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

۱۶م آبان ۱۳۹۳ بازدید: 320 دسته بندی: فناوری , مدیریت , کسب و کار دیدگاه‌ها: ۳

مقاله در مورد اسکالا برای مجله سلام دنیا

اینکه شماره صفر ماهنامه سلام دنیا منتشر شده است خبر جدیدی نیست.

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

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

۱۴م شهریور ۱۳۹۳ بازدید: 341 دسته بندی: فناوری , متفرقه دیدگاه‌ها: ۱

بالاترین سرعتی که از یک وب سرور دیدم؛ ۹ میلی ثانیه!

بعضی وقت‌ها سرعت وب سرور‌ها را به صورت تفننی بررسی می‌کنم. یک مقایسه جالب هم بین Django، Rails و Play Framework انجام داده‌ام که در آینده منتشر خواهم کرد. اما این بار یک سرعت باور نکردنی از وب سرور Play Framework دیدم.

این یک برنامه است که با Play Framework 2.3 و زبان Scala نوشته شده، در این صفحه یک رکورد از بانک اطلاعاتی MongoDB دریافت و یک صفحه Html ساده در خروجی رندر می‌شود.

Screenshot from 2014-08-22 16:42:32

همانطور که در تصویر قابل مشاهده است تمام این عملیات تنها در ۹ میلی ثانیه انجام می‌شود. نکته جالب اینجاست که این وب سرور Develop است و در زمان توسعه نیز روی همین وب سرور (Netty) کار می‌کنم. هر چند این صفحه به صورت Local باز شده اما باز هم ۹ میلی ثانیه زمان بسیار کمیست.

این کار را با وب سرور‌هایی که به صورت روزمره با آن‌ها سر و کار دارید انجام دهید، فقط کافیست در کروم یا فایرفاکس دکمه F12 را بزنید و به قسمت Network رفته و صفحه را رفرش کنید.

۳۱م مرداد ۱۳۹۳ بازدید: 1,598 دسته بندی: فناوری دیدگاه‌ها: ۱۷

تجربه کار با لینوکس مینت

لینوکس مینت (میزکار Cinnamon)

بعد از چند وقت کار با اوبونتو، چند روز قبل لینوکس مینت را روی سیستمم نصب کردم.

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

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

اما چند مشکل هم دارد. در برخی موارد خیلی Stable نیست و ظاهر بعضی برنامه‌ها مثل Eclipse و GnuCash کمی مشکل دارد. یک مشکل دیگر نمایش پنجره‌های باز است. در این باره کمی سنتی‌تر عمل شده و هر پنجره به صورت جداگانه در نوار پاینی نمایش داده می‌شود. اینکه در اوبونتو می‌توانستم با Scroll ماوس بین پنجره‌های یک برنامه به راحتی جابجا شوم، جایش به شدت در Cinnamon خالی است. هر چند برنامه‌های جانبی برای اینکار وجود دارد ولی هیچکدام به اندازه‌ی نوار Unity قابل اطمینان نیست.

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

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

۳۰م مرداد ۱۳۹۳ بازدید: 296 دسته بندی: فناوری دیدگاه‌ها: ۱

چرا حس خوبی به لینوکس دارم

امروز روی یک سیستم قدیمی و از کار افتاده با حدود ۳۰۰ مگا بایت RAM و یک CPU بسیار ضعیف، توزیع Lubuntu نصب کردیم. این توزیع یکی از سبک‌ترین‌هاست. بخاطر قدیمی بودن سیستم روند نصب خیلی کند و سخت انجام شد ولی سیستم عامل بالا آمد و سرعتش هم بد نیست.

جدا از اینکه یک سیستم در حال مرگ که ۱۰ سال از عمرش می‌گذشت را نجات دادیم داشتم فکر می‌کردم زمانی که روی پلتفرم ویندوز کار می‌کردم همیشه از این هک‌های نجات سیستم‌های قدیمی، راه اندازی یک سرور کوچک روی آن‌ها یا حتی راه اندازی سیستم روی دستگاه‌هایی مثل RaspberryPi لذت زیادی می‌بردم ولی اینکه نمی‌شد با ویندوز این کارها را انجام داد و مجبور بودم هر روز روی ویندوز کار کنم یک حس بدی داشت. هر آدم گیکی این حس را درک می‌کند!

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

۲۳م مرداد ۱۳۹۳ بازدید: 278 دسته بندی: فناوری دیدگاه‌ها: اولین نفر باشید

با Regular Expression دوست باشیم

برنامه‌نویس‌ها اکثرا میانه خوبی با Regular Expression ندارند ولی این ابزار یکی از بهترین و سریعترین ابزارهای موجود برای برنامه‌نویس‌هاست. تقریبا هر موجودی که می‌توان در آن تایپ کرد، از امکان جستجو و جایگزینی (Replace) بر اساس RegEx پشتیبانی می‌کند.

برای مثال در یک زمانی برای همه خصیصه‌ها در یک پروژه دات نتی XML Comment گذاشتم. اما بعدا متوجه شدم که این کامنت‌ها کمکی به خواننده نمی‌کند چون توضیح خاصی داخلش نیست. اگر می‌خواستم از این به بعد کامنت ننویسم یکپارچکی از بین می‌رفت که برایم خیلی مهم است. اگر می‌خواستم همه کامنت‌ها را پاک کنم، وقت زیادی می‌گرفت!

راه حل ساده، Regular Expression بود. با جایگزینی RegularExpression زیر با یک رشته خالی همه کامنت‌ها پاک شد:


\s+///.*\n

این عبارت هر خطی از کد که؛

  • با تعداد حداقل یک فاصله شروع شده (\s+) و
  • با سه کارکتر «/» ادامه داده شده (///) و
  • با تعدادی کاراکتر که مهم نیست چه باشند (.*)
  • به انتهای خط رسیده است (\n)

را پیدا می‌کند. من این عبارت را با یک رشته خالی جایگزین کردم و نتیجه این شد که دیگر هیچ XML Comment ی در فایل‌ها وجود نداشتند.

از آن به بعد سعی کردم بیشتر با Regular Expression دوست باشم و حالا در لینوکس این دوستی بیشتر شده و استفاده‌ها و صرفه جویی‌های واقعا مفیدی دارد.

نباید فراموش کرد که Regular Expression هم یک زبان برنامه‌نویسی است (هر چند برای یک هدف خاص طراحی شده).

۱۲م تیر ۱۳۹۳ بازدید: 361 دسته بندی: فناوری دیدگاه‌ها: ۱