۱۳۹۴-۰۴-۰۴

گفتگو با دل

به تو میگم که نشو دیوونه ای دل
به تو میگم که نگیر بهونه ای دل
من دیگه بچه نمیشم آه
دیگه بازیچه نمیشم

به تو میگم عاشقی ثمر نداره
واسه تو جز غم و درد سر نداره
من دیگه بچه نمیشم آه
دیگه بازیچه نمیشم

عقلم و زیر پا گذاشتی رفتی
تو منو مبتلا گذاشتی رفتی
به غم زمونه ای دل
منو واگذاشتی ای دل

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

می دونم تو دیگه عاقل نمی شی
تو دیگه برای من دل نمیشی

من دیگه بچه نمیشم آه
دیگه بازیچه نمیشم

۱۳۹۴-۰۳-۲۶

بازنشر چند پست برای یادآوری گذشته !!!

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

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

۱۳۹۴-۰۳-۱۸

نقش دروغین

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

 نزار قبانی
برگردان از عربی: آرش افشار

۱۳۹۴-۰۳-۱۷

رفع فوبیای کمبود رم با حضور ۲۴ گیگابایت رم و رو شدن فوبیای جدید!

من همیشه فوبیای performance داشتم، که یکی از مهمترین آنها مقدار رم باقی مانده سیستمی بوده که با آن کد می زدم. از اونجایی که جاوا نیز یک ابزار رم خوار است، از زمان کار با JBuilder با ۲۵۶ مگابایت رم (یادش بخیر) تا همین چند ماه پیش که لپ تاپم ۸ گیگابایت رم داشت همیشه علاقه فراوانی به چک کردن میزان رم مصرفی و باقیمانده سیستم داشتم. چه زمانی که در ویندوز بودم با  Process Explorer که میزاشتمش تو system tray و هر ساعت ۳ یا ۴ بار چکش می کردم و چه وقتی که اومدم رو لینوکس و با اپلت مشهور System load monitor (گنوم ۲) همین کارو می کردم. تو لینوکس یه تفریح دیگه هم داشتم که چک می کردم که سیستم عامل از swap داره استفاده می کنه یا نه!

اما الان که لپ تاپم ۲۴ گیگابایت رم داره، فوبیای کمبود رم تموم شده و جاشو داده به یه فوبیای دیگه!

الان System Load Indicator را روی اوبونتو نصب کردم و هی چکش می کنم تا ببینم کی میشه کل ۲۴ گیگابایت رم استفاده بشه!!! 

تا حالا به بلطف کروم، android studio، intellij idea، genymotion فقط تونستم ۱۳ گیگابایت از رم رو استفاده کنم!

شاد باشید.

۱۳۹۴-۰۳-۱۵

پا گذاشتن روی ارزش های شخصی

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

۱۳۹۴-۰۳-۱۳

اگر مرا دوست نمی‌ داری

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

رسول یونان

۱۳۹۴-۰۳-۰۸

هم صحبت و همراه

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

۱۳۹۴-۰۲-۲۷

اهمیت وجود مکانیزم اطلاع رسانی خطا در سمت سرور در توسعه back end

در برنامه نویسی کلاینت سرور که امروز با نام front end و back end نیز شناخته می شود، حتما باید در سمت سرور مکانیزمی برای اطلاع رسانی خطا های احتمالی در سمت سرور به کلاینت باشد. چون معمولا در این مدل تولید سیستم، توسعه دهندگان سمت سرور جدا از توسعه دهندگان سمت کلاینت کار می کنند و حتی در بسیاری از موارد در دو سازمان یا شرکت مختلف هستند و یا معمولا توسعه back end زودتر از توسعه کلاینت ها آغاز می شود و ...
حال فرض کنید توسعه دهندگان back end هیچ گونه مکانیزم اطلاع رسانی خطا طراحی نکرده باشند، یعنی وقتی به هر دلیلی یک در خواست کلاینت در سمت back end منجر به خطا می شود، هیچ عکس العملی یا پاسخی از سمت سرور به کلاینت ارسال نشود. حالا بیچاره توسعه دهندگان کلاینت که باید با کلی تماس و ارتباط برقرار کردن با توسعه دهندگان back end و در بعضی از مواقع گشتن در لاگ های back end متوجه بشوند که مشکل کجاست.
در ساده ترین حالت ارسال یکسری error code برای مثال در قالب JSON می تواند خیلی مشکلات را حل کند و در بالاترین سطح ارائه یک مستند کامل که در آن تمام error code ها و دلیل بوجود آمدن آنها توضیح داده شده است خیلی خوب است.
اینکه توسعه دهنده back end بتواند تمام حالات خطا را تحت کنترل داشته باشد و برای آنها error code های مناسب تولید کند نیز کار دشواری است و نیاز به دقت زیادی در زمان برنامه نویسی قسمت های مختلف back end دارد، رعایت نکات ساده ای مثل مدیریت exception ها و کد نویسی safe برای رسیدن به همچین سطحی در توسعه back end بسیار مناسب است.


پ.ن. آخیش چه کیفی میده محدودیت ۱۴۰ کاراکتریه توییتر وجود نداره. من توییتر باز خوبی نخواهم شد.

۱۳۹۴-۰۲-۲۱

من و ThinkPad W530 و اوبونتو 14.04

بالاخره تصمیم نهاییم رو گرفتم و وزن، عمر باتری، پایداری سیستم عامل و ... (مک بوک و OS X) رو فدای قدرت بالای پردازش و آزادی (ThinkPad W530 و اوبونتو 14.04) کردم!
اولین کاری که کردم هارد SSD با ظرفیت 256 گیگابایت براش خریدم و در قدم بعد هم دو تا ماژول رم 8 گیگابایت براش خریدم تا مجموع رم بشه 24 گیگابایت.
Intel® Core™ i7-3740QM خیلی قویه و در بنچمارک ها نمره خوبی گرفته. یه کارت گرافیکی Quadro K1000M هم روش بود که قدرش زیاد نیست (به نسبت کارت گرافیکی های شاخ بازار) ولی برای من همش شده دردسر تو اوبونتو.

اما از نصب اوبونتو بگم که بصورت عجیبی همه چیز (بغیر کارت گرافیکی) بعد از نصب ابونتو کار می کرد، حتی وبکم! یا function key ها و ... کارت گرافیکی هم با استفاده از ابزار Additionals Driver اوبونتو نصب شد و کار افتاد.
دو مشکل اساسی با کارت گرافیکی داشتم یکی اینکه بعد از آپدیت کرنل، بصورت خودکار درایور کارت گرافیکی nvidia از کار می افته و اوبونتو از کارت گرافیکی CPU استفاده می کنه دیگری اینکه چون این کارت گرافیکی Quadro K1000M از تکنولوژی Nvidia Optimus استفاده می کنه در زمان اتصال ویدئو پروژکتور به پورت VGA کلا هیج اتفاق خاصی نمی افته !!! و ویدئو پروژکتور شناخته نمیشه. البته در حقیقت مشکل از اوبونتو که در این حالت از کارت گرافیکی CPU به nvidia سوویچ نمی کنه.

فعلا برای حل این دو مشکل اول اینکه درایور رسمی nvidia رو نصب کردم (بجای نصب از ریپوزیتوری های اوبونتو) و کرنل هم آپدیت نمی کنم (البته فعلا) و دوم اینکه ThinkPad W530 در BIOS قابلیتی داره که میشه گفت کلا تکنولوژی Nvidia Optimus غیر فعال بشه (Discrete Graphics) و سیستم فقط از کارت گرافیکی nvidia استفاده کنه.

شاد باشید.

۱۳۹۴-۰۲-۰۱

اپرا برنده جنگ مرورگر ها در لپ تاپ من

در جنگ مرورگر ها بر روی لپ تاپ من، ناگهان اپرای شکست خورده پیروز شد! 
اپرا تقریبا تمام امکانات کروم رو داره و حتی تمام پلاگین های کروم بر روی اپرا نصب میشه.
اپرا برای من یه چیزی بین کروم و فایرفاکس و خوبی های این دو تا رو برای من یکجا داره. الان فقط مشکلم پلاگین  DownThemAll فایرفاکس که واقعا محشره و اپرا ندارتش.
با اپرا چند ماهیه مشکل باتری خوره تو OS X رو ندارم و همچنین سرعت سریع رندر صفحات کروم رو دارم!

۱۳۹۴-۰۱-۱۸

توشتن متن های کوتاه (Tweet) در توییتر

حدود ۹ ساله اینجا تو بلاگر پست می زنم اما جدیدا علاقه پیدا کردم  متن های کوتاه (Tweet) در توییتر میزارم. با خودم فکر می کردم نکنه به مرور پست زدن تو بلاگر بره تو حاشیه ولی بعید می دونم چون وبلاگ عزیزم هنوز برای متن های بلند بالا (یا حداقل بیشتر از ۱۴۰ کاراکتر) جاش محفوظه ولی توییتر هم دنیای خودشو داره و نوشتن  متن های کوتاه (Tweet) خیلی برام لذت بخشه.

۱۳۹۴-۰۱-۱۶

اولین تجربه اندروید ۵

بالاخره نوبت ایران شد و سونی آپدیت اندروید ۵ برای xperia z3 compact رو داد.
بهبود سرعت و روانتر شدن کار با گوشی بخاطر ART کاملا محسوسه و کمی هم user friendly تر شده.

۱۳۹۴-۰۱-۱۳

اینستاگرام، تفریح جدید با عکاسی

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

۱۳۹۴-۰۱-۱۰

نگذار ظاهر زندگی کسی بر روی باطن زندگی تو تاثیر بگذارد

عجب جمله ایه این جمله:
نگذار ظاهر زندگی دیگران بر روی باطن زندگی تو تاثیر بگذارد.

۱۳۹۴-۰۱-۰۱

یک سال جدید

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

شاد باشید.

۱۳۹۳-۱۲-۲۴

ممنون ایرانسل

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

۱۳۹۳-۱۲-۲۳

وقتی می خواهی به هر قیمتی رتبه سایتت را بالا ببری

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

۱۳۹۳-۱۲-۱۵

وقتی فکر تموم شدن باتری موبایل از ذهنت خارج میشه

آخرین باری که دغدغه باتری موبایل نداشتم بر میگرده به زمانی که smart phone نداشتم. اما xperia z3 compact دوباره منو به همون روزا برده. با وجود استفاده از اینترنت lte و wifi, عکاسی فراوان، خواندن کتاب و ... این کوچولوی کم مصرف ۳ تا ۵ روز باتری نگه می داره که برای یک گوشی هوشمند عالیه.

۱۳۹۳-۱۲-۰۲

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

اولین بار سال ۸۵ بود که در جلسه انجمن کاربران جاوا ایران شرکت کردم. یادش بخیر خانه هنرمندان برگزار می شد و وقتی رسیدم انقدر شلوغ بود و جا نبود که مجبور شدم ته سالن ایستاده سمینارو ببینم. یه ورقه گرفته بودم دستم و عنوان های نا آشنایی که سخنرانان به زبان می آوردند رو پشت سر هم می نوشتم (aspect oriented , portlet و ...) و همونا بعدا می شد خوراک مطالعاتیم.
جلسه اسفند ماه انجمن کاربران جاوا ایران پس فردا برگزار میشه و من افتخار دارم برای دومین بار سخنران باشم. مطمئنم با حضور علاقه مندان و سخنرانان خوب، جلسه خوبی خواهیم داشت.

۱۳۹۳-۱۱-۲۵

گزینه های گوگل برای مدرن سازی برنامه نوسی اندروید

با توجه به موقعیت شغلیم، چند وقتیه درگیر برنامه نوسی برای سیستم عامل iOS شدم. کاری که با وجود داشتن MacBook همیشه ازش ترس داشتم. دلیل اصلی این ترس زبان برنامه نوسی objective-c بود که با سینتکس وحشتناکش همیشه منو از این کار منصرف می کرد.
مثل اینکه شرکت اپل ترس من امثال منو درک کرد و پس از مدت ها یک زبان برنامه نویسی رسمی جایگزین برای برنامه نویسی سیستم عامل iOS عرضه کرد. اپل اعلام کرده، Swift یک زبان برنامه نویسی مدرن است که برنامه نوسی رو راحت تر می کنه. Swift یک زبان برنامه نویسی استاتیک و hybrid است (functional و Object oriented) که بسیاری از قابلیت های خودشو از Scala ارث برده و از نظر سینتکس خیلی به Scala شبیه است.
اما رقیب اصلی اپل در دنیای موبایل یعنی گوگل خیلی زودتر از این‌ها در این فکر بوده و از همان ابتدای کار زبان برنامه نویسی جاوا که بسیار مدرن تر و فراگیرتر از objective-c بود را انتخاب کردحالا پس از این تصمیم اپل که با استقبال توسعه دهندگان هم روبرو شده، به نظر میرسه گوگل هم باید به فکر مدرن سازی بیشتر برنامه نویسی اندروید باشه. درسته که زبان برنامه نویسی جاوا به نسبت objective-c خیلی مدرن تره ولی به اندازه Swift مدرن نیست. مطالب و پست های زیادی تو وب وجود دارن که از جاوا بخاطر طول و دراز بودن سینتکسش (verbose) و یا پشتیبانی نکردن از قابلیت‌های Functional (تا قبل از جاوا 8) و ... انتفاد می کنند. به نظر من و با توجه به هزینه معرفی یک زبان جدید و همچنین استقبال توسعه دهندگان، گوگل گزینه های زیر رو پیشرو داره:



1- جاوا 8: با توجه به اینکه سینتکس جاوا استفاده شده در اندروید در حال حاضر جاوا 6 رو پشتیبانی می‌کند و جاوا تا قبل از عرضه نسخه 8 یک زبان برنامه نویسی Object Oriented بود. بروزرسانی سینتکس جاوا استفاده شده در اندروید از 6 به 8، علاوه بر اینکه قابلیت‌های Functional به پلتفرم اندروید اضاقه می کند، این مزیت رو برای گوگل داره که نیازی نیست زبان برنامه نویسی جدیدی را ترویج کند و همچنین از نظر پیاده‌سازی هم فقط باید سینتکس جدید را به ابزار های خود اضافه کند که به نسبت معرفی یک زبان برنامه نویسی جدید کار بسیار ساده‌تری است.

2- Groovy: در گذشته گوگل با انتخاب gradle بعنوان اتوماسیون build جدید اندروید (جایگزین apache ant) نشان داده که به groovy اعتماد دارد. از طرف دیگر در حال حاضر امکان تولید برنامه اندروید با groovy وجود دارد و تیم groovy هم اعلام کرده از نسخه 2.4 (نسخه در حال توسعه بعدی) بصورت رسمی این امکان در Groovy SDK اضافه می شود. Groovy یک زبان برنامه نویسی داینامیک و اسکریپتی است و بسیاری از قابلیت‌های خود را از Python و Ruby به ارث برده است و integration خوبی با جاوا و JVM دارد. این موارد groovy رو به محتمل ترین و کم هزینه ترین گزینه بعد از جاوا 8 تبدیل می‌کند ولی شاید داینامیک بودن این زبان در انتخاب نشدنش تأثیر داشته باشد.

3- اسکالا: اسکالا یک زبان برنامه نویسی استاتیک ( static type system) و Hybrid مثل Swift است. در حال حاضر بصورت غیر رسمی امکان برنامه نویسی برای اندروید با اسکالا با استفاده از پروژه Scaloid وجود دارد و با در نظر گرفتن اینکه این زبان برنامه نویسی برای برنامه نویسی بر روی JVM است و سازگاری خوبی با جاوا و JVM دارد می‌تواند گزینه مناسبی برای گوگل می باشد.

4- Dart: این زبان برنامه نویسی برای برنامه نویسی وب و با هدف جایگزینی آن با جاوااسکریپت توسط شرکت گوگل عرضه شده است با توجه به سرمایه‌گذاری گوگل بر روی این زبان برنامه نویسی، این زبان هم می‌تواند گزینه خوبی برای جایگزینی با جاوا در اندروید باشد ولی ریسک تازه کار بودن این زبان و همچنین وفق دادن آن با اکوسیستم جاوا می‌تواند قابل توچه باشد.

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