ماجراهای تکنولوژیک خانه من: برنامه بروزرسانی بعد از دو سال

اینم یه تجربه پراکنده دیگه!

همینطور که قبلا نوشته بودم(لینک، لینک، لینک) من تقریبا دوسال میشه که یه سیستم تمام وقت روشن توی خونه دارم که باهاش کارهای بسیاری میکنم که لیست اون کارها از این قراره:

  1. یه ماشین مجازی کوچک دارم و pfsense مسئولیت مسیریابی خونه رو به عهده داره
  2. روش minidlna دارم  که مسئولیت تفریحات فیلمی خونه رو برعهده داره
  3. روش یه samba server دارم که مسئولیت اشتراک فایل رو برعهده داره
  4. روش یه seafile سرور دارم که مسئولیت بک آپ اتوماتیک از تصاویر تلفن‌ها و اطلاعات مهم لپ تاپ‌ها رو برعهده داره.
  5. روش یه deluge دارم که شبها تورنتها رو دانلود و آپلود میکنه
  6. روش یه سرور taskwarior دارم که نقط بک آپ مدیریت لیست کارهایی هست که در هفته انجام میدم

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

  1. سی پی یو: AMD sempron 3000+ AM2
  2. رم : ابتدا ۱ گیگ و سپس ارتقا به ۲٫۵ گیگ
  3. هارد: ۵۰۰ گیگ
  4. سیستم عامل: اوایل ubuntu server و mint

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

اما این سیستم بعد از دوسال نیاز به بروزرسانی داره و من میخوام به دلایل زیر این سیستم رو از نظر سخت افزاری و نرم افزاری ارتقا بدم

  1. پرشدن هارد بر اثر دانلود زیاد
  2. نیاز به راه‌اندازی یک NAS به دلیل نزدیک شدن به پایان عمر مفید هارد دیسک‌های اکسترنال(حدودا سال ۸۷ خریداری شده اند)
  3. یادگیری تکنولوژی‌های جدید
  4. بهینه سازی سیستم فعلی

اما طرح من برای بهینه کردن این سیستم از این قراره که:

  1. علی الحساب میخوام سه تا هارد دو ترا به سیستم اضافه کنم که یکیش بک آپ اون دوتای دیگه باشه. همچنین نمیخوام از کارت raid استفاده کنم و ترجیحم اینه که از سیستم فایل zfs استفاده کنم.
  2. میخوام بتونم روی این سیستم از مجازی سازی سبک یا همون container های استفاده کنم که این استفاده هم کلی چیز جدید به من یاد میده
  3. میخوام سیستم عامل رو سبک کنم و میزان مصرف منابع کاهش بدم. برای این کار به نظر میرسه باید از لینوکس به یه سیستم عامل دیگه مهاجرت کنم که این مهاجرت کلی مطالب جدید به من یاد میده
  4. در صورتی که پولم برسه میخوام یه ssd بخرم و اون رو به عنوان cache به zfs اضافه کنم,

چالشهای پیش روم هم ایناست:

  1. zfs یک سیستم فایل بسیار قوی هست اما من فکر نمیکنم که هنوز به اندازه کافی اون رو بلدم که بخوام بهش اعتماد کنم و کل هاردهام رو به اون بسپارم
  2. zfs روی سیستم عامل freebsd و illumos و حتی linux وجود داره اما من نمیدونم کدوم پیاده‌سازی بهتر و با ثبات تره. البته باید بگم که پیاده‌سازی‌های موجود روی این سیستم‌ها قدیمی و با ثبات هستن
  3. تکنولوژی مجازی سازی سبک یا container‌ ها همنطور که اینجا هم بررسی کردم روی لینوکس freebsd و illumos با هم متفاوته من هیچ دید عملیاتی ندارم که کدوم بهتره.
  4. هر کدوم از این سیستم‌های یه سری کارها رو راحت کردن مثلا freebsd با freenas و nas4free کار رو برای پیاده‌سازی آسون zfs راحت کرده و شیر کردن و تورنت بازی این چیزا خیلی ساده شده. همچنین illumos با یه محصول به نام smartos مجازی سازی و مجازی سازی سبک و مدیریت اونها رو بسیار ساده کرده. که این انتخاب رو سخت میکنه

حالا با توجه به اینکه انتخاب‌های من کم نیستن بایستی یکم بیشتر بررسی کنم و انتخاب کنم.

همین!

ماجراهای تکنولوژیک من و خانه‌ام: انواع دستگاه‌های DLNA

خب اینم یه تجربه پراکنده دیگه!

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

به همین خاطر من یه سرچی کردم و دیدم که دستگاه‌هایی که از DLNA پشتیبانی میکنن چهار نوع هستن که لیستشون در پایین اومده:

  • Digital media servers (DMS):  این نوع مسئول پخش فایل‌هاست. این همون سروری هست که من توی خونه با استفاده minidlna راه انداختم.
  • Digital media renderers (DMR): همون دستگاه پخش کننده است که تلوزیون من مسئول پخش این بخش است. نکته قابل توجه توی این قسمت اینه که فایل‌های چندرسانه‌ای به این دستگاه فرستاده میشه!
  • Digital media controllers (DMC): این دستگاه مسئول کنترل پخش به جلو یا عقب بردنه که موبایل این آشنای ما این امکان رو داشت.
  • Digital media players (DMP): این دستگاه هم پخش کننده است با این تفاوت که خودش میره و فایل‌ها رو از سرور میگیره و پخش میکنه. باز هم این قسمت رو تلوزیون من برعهده داره.

بعد از یکم کمک گرفتن از گوگل من برنامه‌ای رو پیدا کردم میتونم که این کار رو کنن. برنامه ای که من روی لینوکسم برای اینکار پیدا کردم gUPnP بود که کارهای زیادی انجام میده اما یکی از اونا کنترل DLNA هست. واسه موبایل هم من BubbleUPnP رو پیدا کردم که علاوه بر اینکه میتونه سرور باشه، نقش کنترل کننده رو هم بازی میکنه.

همین!

منبع: اینجا

لذت یادگیری: استارت آپ بعد از start up engineering

اینم یه تجربه پراکنده دیگه

گفته بودم که در مورد درسهایی که در coursera  میبینم و نه میگذرونم یکم مینویسم. دلیل اینکه میگم میبینم اینه که واقعا من در جریان درس نیستم و تنها فیلم‌ها رو میبینم و اسلایدها و فایل‌های مرتبط رو یه نگاهی میندازم.

یکی از جذاب ترین درس‌هایی که گذرونم start up engineering‌ هست. این درس کلا به این اختصاص داره که اگه خواستید یه کسب و کار جدید راه‌بندازید آیا اصلا به اون میشه گفت استارت آپ یا نه؟ و اگه میشه بهتره چه روندی رو برای برپا کردنش از نقطه نظر تکنولوژی طی کنید.

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

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

نکته مهم دیگه‌ی این درس اینه که تا حدی هم در مورد تکنولوژی‌های مورد استفاده به شما راهنمایی میده یعنی پیشنهاد میکنه مثلا برای واسط کاربری از bootstrap استفاده کنید یا برای سمت سروی از Node.js استفاده کنید که حداقل من رو با تکنولوژی‌های بسیار خوبی آشنا کرد که احتمالا در آینده از اون‌ها استفاده خواهم کرد.

یه بخش دیگه از درس هم اختصاص داره به اینکه از نظر مدیریتی و کسب و کار شما بایستی چطوری یه کسب کار رو راه‌اندازی و مدیریت کنید. و اینکه از نظر تئوری استارت‌آپ یعنی چی. نکته‌ای هم که از این بخش تو ذهنم مونده که به نظرم مهمتر هم هست اینه که شما بایستی برای اینکه یه استارت‌آپ راه بندازیند بایستی یه آدم همه کاره باشید یعنی بتونید خودتون به عنوان مدیر استارت‌آپ باحفظ سمت نظافت‌چی، بازاریاب و برنامه‌نویس شرکت خودتون هم باشید.

امیدوارم این نوشته به درد کسی بخوره.

فعلا همین!

استفاده از نرم افزارهای متن باز در محیط تجاری

این یه شکایته تا یه تجربه!

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

الان توی یه سایت به نام stat7.com دیدم که از نرم افزار متن باز piwik برای ارائه خدمات تحلیل وب استفاده میکنن. البته دوستان تلاش کردن و واسط کاربری این نرم افزار به زبان فارسی رو بهبود دادن اما چیزی که من رو شاکی کرد این بود که چرا اسمی از نرم افزار اصلی نبردن. و این یه عیبه من رو شاکی کرده بود این بود که فکر میکردم اسمی از نرم افزار اصلی نبردن اما بعد از یه بررسی مجدد بصورت خیلی کوچیکی اسمی از piwik بردن که همین هم خوبه.

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

همین!

python logo

لذت برنامه نویسی یا پایتون چیست و چرا؟

اینم یه تجربه پراکنده دیگه

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

اما برم سراغ اصل مطلب که همون پایتون باشه! من تجربم با پایتون بسیار تجربه لذت بخشی بوده. یعنی اینکه بسیار زبون شیرین و تو دل برو ای هست. ساختار زبان تا اونجایی که من میدونم به گونه‌ای ساده شده که سرعت توسعه توش زیاد باشه. چارچوب‌ها و کتابخانه‌های بسیاری خوبی بالاخص برای طراحی وب داره(django, flask, …) که باعث میشه شما بتونید به راحتی خیلی از کارهای سختی که قبلا انجام میدادید رو تنها با چند خط کد انجام بدید.

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

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

امیدوارم این تجربه هم به درد کسی بخوره.

نحوه نصب سرور Firefox sync

خب این یه تجربه پراکنده دیگه!

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

بزرگترین مشکل استفاده از گروها تب‌ها اینه که اگه خدای نکرده فایرفاکس crash کنه و بسته بشه و شما در نوبت بعد به اشتباه تب ها دوباره باز نشه همه چیز از دست رفته و مثلا من خودم شاید نزدی به ۱۰۰ تب رو از دست دادم و خب این برام خیلی دردناک بود.

حالا یه راهی که برای حل این مشکل پیدا کردم اینه که از ویژگی sync تو فایرفاکس استفاده کنم. بعدش دیدم که حتی میشه یه سرور محلی برای این کار داشت. این خیلی خوب بود چون هم میشد یه کار گیکی کرد هم اطلاعات من حفظ میشد.

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

این بود یه تجربه پراکنده دیگه

نسخه جدید pfSense منتشر شد

خب اینم که تجربه پراکنده دیگه.

همونطور که گفته بودم من توی خونه از pfSense به عنوان روتر خونم استفاده میکنم. بعد از بیش از یک سال نسخه جدید این سیستم عامل متن باز منتشر شده و من از تغییرات ایجاد شده خوشحالم. تغییرات زیادی توی این نسخه ایجاد شده که لیست کاملش اینجا هست. اما به نظر من مهمترین تغییرات از این قرارن:

  • بروزرسانی نسخه freebsd به نسخه ۸.۳
  • پشتیبانی از نسخه ۶ پروتکل IP
  • بهبود واسط کاربری وب

ماجرای تکنولوژیک من و خانه ام : من و تلوزیون هوشمندم

با یه تجربه پراکنده دیگه برگشتم

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

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

کار که من کردم ساده بود. اول کلی گشتم ببینم این allShare چیه؟ وقتی پیداش کردم که همون سرور dlna هست گشتم و یه پیاده سازی لینوکسی از این سرور رو روی همون کامپیوتری که توی پست «ماجراهای تکنولوژیک من و خانه ام» گفتم نصب کردم و حالا اون کامپیوتر قدیمی من کار پخش فیلم رو هم برعهده گرفته. تنها کاری که من میکنم اینه که فیلما رو توی یه فولدر اون کامپیوتر قرار میدم و کار تمومه.

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

  • سرور allshare که یه سرور تحت ویندوزه که بصورت مجانی توسط خود سامسونگ ارائه میشه
  • سرور serviio که یه سرور اپن سورسه که لایسنس پولی هم داره. بخاطر جاوایی بودنش تمام سیستم عامل‌ها رو پشتیبانی میکنه و از تغییراتی که شرکت‌های پیاده ساز این تکنولوژی در راستای محصول سازی رو استاندارد دادن بخوبی پشتیبانی میکنه
  • سرور minidlna که سرور محبوب منه چون به رم و سی پی یو کمی نیاز داره و روی کامپیوتر من که کلی چیز دیگه هم روش داره ران میشه
  • نسخه‌های جدید xbmc که یه برنامه به عنوان media center هست هم این امکان رو فراهم میکنه.

لیست بیشتر این سرورها رو میتونید توی این آدرس پیدا کنید.