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

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

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

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

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

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

بعضی وقت‌ها سرعت وب سرور‌ها را به صورت تفننی بررسی می‌کنم. یک مقایسه جالب هم بین 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 رفته و صفحه را رفرش کنید.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


\s+///.*\n

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

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

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

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

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

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

گروه کاربران ایرانی اسکالا

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

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

امیدوارم بتوانیم فعالیت خوبی داشته باشیم و مثل PUG و LUG تهران دارای یک اجتماع واقعی شویم. فعلا اندازه این اجتماع مهم نیست و این کیفیت آن است که اهمیت دارد.

آدرس گروه: https://groups.google.com/forum/#!forum/iran-sug

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

ساکت کردن فن لپ تاپ DELL در اوبونتو ۱۴.۰۴ – قسمت ۲

نصب پیش‌فرض i8k که در قسمت قبل این پست گفتم باعث بالا رفتن حرارت لپ‌تاپم شد. چون تنظیمات پیشفرض آن تا حدود دمای ۷۰ درجه را عادی تلقی می‌کند.

برای تنظیم اینکه فن با چه سرعتی در چه بازه حرارتی کار کند اول باید فایل /etc/i8kmon.conf را ایجاد کنیم:

sudo gedit /etc/i8kmon.conf

و داخل آن می‌توانیم i8k را کانفیگ کنیم که یک کانفیگ نمونه به شکل زیر است:

# Run as daemon, override with --daemon option
set config(daemon)      0

# Automatic fan control, override with --auto option
set config(auto)        1

# Report status on stdout, override with --verbose option
set config(verbose) 1

# Status check timeout (seconds), override with --timeout option
set config(timeout) 20

# Temperature thresholds: {fan_speeds low_ac high_ac low_batt high_batt}
set config(0)   {{-1 0}  -1  40  -1  40}
set config(1)   {{-1 1}  30  60  30  60}
set config(2)   {{-1 2}  53  128  53  128}

# end of file

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

مهمترین قسمت این تنظیمات خطوط ۱۵ تا ۱۷ هستند که به ترتیب زیر عمل می‌کند:

  • در صورتی که دمای CPU زیر ۴۰ درجه باشد فن خاموش می‌شود
  • اگر دما زیر ۶۰ درجه باشد فن با سرعت ۱ به کار می‌افتد
  • اگر دما بالای ۶۰ درجه باشد فن با سرعت ۲ به کار می‌افتد

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

sudo service i8kmon restart

منبع: Ask Ubuntu

۱۶م خرداد ۱۳۹۳ بازدید: 313 دسته بندی: فناوری دیدگاه‌ها: ۵

ساکت کردن فن لپ تاپ DELL در اوبونتو ۱۴.۰۴ – قسمت ۱

کارکرد زیاد فن (Fan) لپ‌تاپ‌ها روی لینوکس یک مشکل شناخته شده است که البته کارهایی هم برای حل آن انجام شده ولی حداقل برای لپ‌تاپ من (Inspiron 5520) این مشکل به صورت پیشفرض حل نشده و نیازمند برخی کارهای اضافه است.

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

اولین کار، لود کردن درایور i8k است که امکان دسترسی به SSM BIOS لپ‌تاپ‌های DELL را می‌دهد. خوشبختانه این درایور از نسخه ۳ به بعد به کرنل لینوکس اضافه شده و فعال کردن آن با دستور زیر به راحتی انجام می‌گیرد:

sudo modprobe -v i8k

با اجرای این دستور باید خروجی شبیه این دریافت شود:

insmod /lib/modules/3.5.0-30-generic/kernel/drivers/char/i8k.ko

بعد از آن باید ابزار i8kutils را با دستور زیر نصب کنیم تا دمای CPU و سرعت فن را مانیتور کند:

sudo apt-get install i8kutils

بر روی اوبونتو ۱۴.۰۴ من خروجی زیر را گرفتم:

* Starting Dell fan/cpu-temperature monitor i8kmon        [ OK ]

که یعنی مانیتورینگ همین الان آغاز شده و البته بلافاصله صدای فن قطع شد.

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

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

به روز رسانی ۱

پس از ریست کردن سیستم، صدای فن دوباره به حالت اول بازگشت با مشاهده log سیستم احتمال می‌دهم مشکل بخاطر به روز رسانی BIOS سیستمم باشد که همین چند وقت پیش انجام دادم و احتمالا i8k به همین دلیل نمی‌تواند امضای DELL را بر روی BIOS تشخصی دهد. در این حالت کافیست i8k را مجبور به این کار کنیم. برای این کار باید سرویس آن ویرایش شود. با دستور زیر می‌توانیم از GEdit برای ویرایش استفاده کنیم.

sudo gedit /etc/init.d/i8kmon

خطی که حاوی دستور زیر است:

modprobe i8k >/dev/null 2>&1 || true

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

modprobe i8k force=1 >/dev/null 2>&1 || true

با اضافه شدن force=1 به i8k اطلاع داده می‌شود که بدون توجه به امضای BIOS کارش را انجام دهد. با ریست کردن و یا اجرای دستور زیر دوباره فن ساکت می‌شود:

sudo service i8kmon start

توجه: حتما قسمت دوم این پست را نیز برای پایین آوردن حرارت دستگاه مطالعه کنید

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

۱۵م خرداد ۱۳۹۳ بازدید: 359 دسته بندی: فناوری دیدگاه‌ها: ۴

تهران لاگ ۱۹۸

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

سعید رسولی توسعه دهنده تقویم استار (starcal) در مورد این تقویم بسیار قوی و جالب ارایه داشت. این نرم‌افزار بدون اغراق یکی از بهترین تقویم‌های دنیاست. امکانات بسیار خوبی دارد و واقعاً روی آن کار شده و البته متن باز است. هر وقت هم که به مشکلی بر خورد کردم سازنده آن در دسترس بود و برای حل آن کمک کرد. اینکه از نزدیک سعید رسولی که یک توسعه دهنده قوی و متواضع است را دیدم باعث خوشحالی و افتخار من شد.

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

بحث آزاد هم جالب بود اما حداقل برای من راه حل جدیدی به وجود نیامد. هر چند باز هم چیزهای جدیدی یاد گرفتم.

یک نکته جالب توجه دیگر این بود که مجری برنامه ۱.۶۱۸ که از شبکه چهار سیما پخش می‌شود هم در جلسه حضور داشت.

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

زبان برنامه نویسی جدید اپل Swift

امروز، اپل زبان برنامه نویسی جدیدی به نام Swift را معرفی کرد که ظاهرا از Objective-C قوی‌تر و راحت‌تر است. برای من شباهت جالبی به اسکالا دارد!

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