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

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

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

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

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

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

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

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

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

در اینجا من یکم در مورد مزایا و معایب این سیستم‌ها میگم و یه معرفی کوتاه سرنخ وار از این سیستم‌ها میدم و امیدوارم به درد کسی بخوره:

بزرگترین مزیت این سیستم اینه که صفحات ایستا به شدت با سرعت خوبی نشون داده شده و سربار اضافی روی سرور ندارن. از این مزیت که بگذریم یکی دیگه از بهترین نکات اینه که صفحات بصورت فایل‌هایی ذخیره میشن که می‌تونن ورژن گذاری بشن و نحوه تغییراتشون با استفاده از نرم‌افزارهای مانند GIT و Subversion و … ثبت بشن و تمامی نسخه‌هاشون در دسترس باشه.

اما بزرگترین ایرادشون هم اینه که کارهایی که نیاز به محاسبه زمان اجرا داره، مثل گذاشتن کامنت، یا پیاده‌سازی یک سایت خرید آنلاین و از این دست کارها رو نمیشه به راحتی و خوبی انجام داد. که معمولا این سیستم‌ها راه‌حل‌هایی برای حل برخی از این مشکلات دارن اما معمولا این راه‌حل‌ها وابسته به سرویس‌هایی هستن که سایت‌های دیگه ارائه میدن هست.

خب حالا نوبت به اسم این سیستم ها میرسه:

  • Jekyll/Octopress: یک سیستم نوشته شده با استفاده از زبان ruby که الان صفحات مربوط به پروژه های سایت گیت هاب با استفاده از این تکنولوژی تولید و نگهداری می‌شن. یکی از خوبی‌های این سیستم اینه که میشه کامنت‌ها رو بصورت ایستا مدیریت کرد.
  • Pelican: سیستمی است که تو سایت کرنل لینوکس مورد استفاده قرار گرفته و به زبان python نوشته شده. این سیستم امکانات بسیاری داره و طرفداران زیادی رو برای خودش جمع کرده.
  • Blosxom: یکی دیگه از این سیستم ها که به زبان Perl نوشته شده و یکی از خوبیاش اینه که همه جا قابل اجراست. یکی از ویژگی‌های خوب این سیستم قدرت زیاد برای نوشتن افزونه‌ها برای بهبود کارایی سیستم فعلی است.
  • Second Crack با استفاده از زبان PHP نوشته شده و جوری طراحی شده که صفحات با استفاده از dropbox قابل میزبانی باشه.
  • Blacksmith یکی از جدید ترین سیستم‌های موجود هست که با استفاده از Node.js استفاده کرده

منبع این نوشته اینجاست.

 

توی پست قبلم در مورد جایگزین های سرویس ذخیره سازی فایل در فضای ابری (Cloud) مثل Dropbox یه مطلب نوشتم. حالا یکی از خواننده‌ها بسیار معدود این بلاگ گفته بود اگه با bittorrent sync کار کردم تجربم رو بنویسم. من هم که عمرا بتونم به یه چنین درخواستی جواب نه بدم به همین خاطر الان دارم مینویسم

کل راه اندازی خیلی خیلی ساده بود. تست من روی لپ تاپم با سیستم فدورا ۱۸ نسخه ۶۴ بیتی و یه پی سی قدیمی که کار فایل سرور خونه رو انجام میده با سیستم عامل اوبونتو ۱۲٫۰۴ نسخه ۶۴ بیتی تست کرد. تنها کاری که کردم از سایت اصلی فایل مربوطه رو دانلود کردم و اجرا کردم. تنها نکته قابل اشاره اینه که شاید توی لینوکس این فایل‌(btsync) دسترسی اجرایی نداشته باشن که شما باید این دسترسی رو براشون ایجاد کنید.

با انجام این کار روی آدرس http://my_ip_adress:8888/gui سرویس btsync اجرا شده و آماده است.

صفحه اصلی btsync

صفحه اصلی btsync

پس از اینکار حالا باید یه فولدر رو انتخاب کنید و براش یه secret بسازید. برای این کار کافیه رو دکمه generate کلیک کنید.

انتخاب فولدر btsync

انتخاب فولدر btsync

خب حالا کافیه همین کار رو در سمت دیگه (کامپیوتر دومتون) انجام بدید و این دفعه بجای زدن دکمه generate کافیه که secret که در کامپیوتر اول درست کردید رو اینجا هم وارد کنید. و کار تمامه

البته شما سطوح دسترسی هم دارید که میتونید اون رو بصورت که تو شکل زیر میبینید کنترل کنید. که شامل نحوه بروزرسانی و امکان دسترسی فقط خواندنی به فولدر یا حتی تغییر secret فعلی به منظور حذف دسترسی افرادی که الان دسترسی دارن به این فولد هست.

تنظیمات اولیه btsync

تنظیمات اولیه btsync

Selection_004

تنظیمات پشرفته btsync

 

من دوباره برگشتم با یه موضوع پراکنده دیگه!

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

اما یه راه حل دیگه است که من بیشتر ازش خوشم اومد. اونم یه راه حل مبیتی بر معماری p2p هست. شرکت (یا بنیاد) bittorrent لطف کرده مبتنی بر پروتکل torrent یه سیستم غیر متمرکز اشتراک گذاری فایل و sync کردن فایلها بین دستگاه‌های مختلف شما ایجاد کرده بدون اینکه نیازی به سرور متمرکزی باشه. تنها نیازه که برنامه bittorrent sync رو روی کامپیوترتون نصب کنید و فولدری که میخواید رو مشخص کنید و با یه مشخصه تصادفی که برای اون فولدر تولید میشه میتونید بین تمام کامپیوترهاتون فایل رو به اشتراک بگذارید.

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

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