سفر خاک

یادداشت های غلامحسین توسلی

سفر خاک

یادداشت های غلامحسین توسلی

جز غبار از سفر خاک چه حاصل کردیم؟ / سفر آن بود که ما در قدم دل کردیم

۹ مطلب با موضوع «ابزار» ثبت شده است

یه بررسی میدانی روی تلویزیون های هوشمند (جدید) اقوام و آشنایان انجام دادم و به این نتیجه رسیدم بهنرین رابط کاربری از دیدگاه تجربه کاربر (UX) رو سامسونگ ارائه داده؛ یعنی همین تلویزون ما! بی ایراد نیست ولی انصافاً خیلی کم تونستم تو طراحی بهش گیر بدم. این تلویزیون امکان اتصال به شبکه رو داره (هوشمنده دیگه) هم با کابل و هم به صورت بیسیم. حالا ما یه روز خواستیم از روی لپ تاپ یه ویدیو رو روی تلویزیون پخش کنیم. چند راه وجود داشت. یکی این که کابل HDMI رو بزنم به لپ تاپ و خلاص. متاسفانه کابل HDMI تو خونه نداشتیم. یه راه دیگه هم اینه که ویدیو رو روی فلش کپی کنم بعد بزنم به پورت USB تلویزیون. یه راه دیگه هم هست و اونم اینه که از جام تکون نخورم و از شبکه بیسیم خونه استفاده کنم!  امان از تنبلی...

سامسونگ ابزاری داره به نام AllShare که اگه شما یکی دیگه از محصولات سامسونگ مثل تلفن هوشمند و یا دوربین و ... رو داشته باشید، این مسئله حل شده است. البته الان از AllShare خبری نیست و بجای اون نرم افزار Samsung Link رو ارائه داده. اما لپ تاپم Dell هست. یه استانداری هست به نام DLNA برای ارتباط بین دستگاه‌های دیجیتال با مصرف خانگی روی بستر شبکه‌های تحت آی پی.

  • غلامحسین توسلی

نتیجه رو همین اول به گم؛ بعد از مدت‌ها بررسی به این نتیجه رسیدم که در حال حاضر Genymotion از هر نظر بهترین شبیه‌ساز اندروییده. چرا؟ خوب حالا بررسی می‌کنیم. در این پست سه شبیه‌ساز Genymotion، Bluestacks و شبیه‌ساز اصلی اندروید (AVD) رو به طور نه‌چندان رسمی مورد بررسی قرار می‌دم.
به نظر من مهم‌ترین مسئله در مورد شبیه‌سازهای اندروید سرعت اجرا شبیه‌ساز هست. شبیه‌ساز اصلی خود اندروید که همراه SDK عرضه میشه افتضاح‌ترین از این جهته. البته هزینه این کندی بر میگرده به این‌که
  • غلامحسین توسلی

چهار لینک کوتاه

۱۶
ارديبهشت

  • Snabb Switch: جعبه ابزاری متن باز برای پردازش شبکه - مناسب برای استفاده در ISP ها
    از ویژگی‌های این جعبه ابزار می توان به پردازش میلیون ها بسته اترنت در ثانیه اشاره کرد. این نرم افزار قادر است تا به صورت بومی (native) با سخت افزار اترنت، Hypervisors و هسته لینوکس ارتباط برقرار کند. این پروژه کاملا متن باز بوده و بر روی سیستم عامل لینوکس در فضای کاربر (userspace) قابل اجراست. جالبه بدونید
  • غلامحسین توسلی

برای یک برنامه کاربردی که با زبان ++C نوشتم نیاز به ارتباط رمزنگاری شده با برنامه‌ای دیگه پیدا کردم که منجر شد به  استفاده از کتابخانه ++Crypto. ممکنه بپرسید چرا ++C. خوب یه دلیل بیشتر نداره! واسه نوشتن برنامه Desktop چارچوب Qt رو به زبان هایی مثل Net. و جاوا ترجیح میدم! ++Crypto یک کتابخانه رمزنگاری رایگان به زبان ++C است. یه ریزه کامپایلش تو ویندوز کار داره. بعد از معرفی اجمالی نحوه کامپایل این کتابخانه رو تو ویندوز توضیح میدم.

  • غلامحسین توسلی

BitTorrent Sync

۱۰
فروردين

مشکل بزرگ من تو به اشتراک گذاشتن فایل این سیستم اشتراک فایل در ویندوز هفت! باعث شد دنبال یه ابزار خوب واسه این کار بگردم. تا رسیدم به BitTorrent Sync واسه به اشتراک‌گذاری فایل‌ها در یک شبکه محلی. این ابزار بر روی سیستم عامل‌های ویندوز، لینوکس، Mac، اندورید، iOS، Windows Phone و ... کار می‌کنه. یعنی شما می‌تونید روی PC، لپ‌تاپ، گوشی همراه و یا حتی سیستم های تعبیه شده1 اون رو داشته باشید.

  • غلامحسین توسلی

چهار لینک کوتاه

۱۰
فروردين

به حول و قوه الهی از این به بعد پست‌هایی با عنوان چهار لینک کوتاه رو منتشر خواهم کرد. (با الهام از چهار لینک کوتاه O'Reilly) این پست‌ها شامل چهار لینک با توضیحی کوتاه راجع به آن‌هاست. برای شروع:

  • غلامحسین توسلی

iptables در پروژه Netfilter توسعه داده شده و از لینوکس 2.4 به بعد (سال 2001) به عنوان بخشی از هسته لینوکس در دسترس کاربران قرار داده شده است. در این سری پست‌ها قصد آموزش iptables رو ندارم. به اندازه کافی منابع خوب واسش هست. (مثلا این واسه شروع خوبه) قصد دارم اینجا تنها تجارب شخصی خودم رو منتشر کنم.
اغلب کاربران میان دو اصطلاح iptables و netfilter دچار سردرگمی می‌شوند. حداقل من که این مشکل رو داشتم! Netfilter نام پروژه رسمی برای تمامی امکانات فیلتر کردن بسته‌های شبکه در لینوکسه. همچنین Netfilter چارچوبی رو در درون هسته لینوکس مهیا کرده که برنامه‌های دیگه می‌تونن از توابع تعریف شده در این چارچوب برای گیرانداختن! بسته‌ها در پشته شبکه استفاده کنن. شما با استفاده از این ابزار می توانید نرم افزاری بنویسید که به کلیه بسته های شبکه نظارت داشته و در صورت لزوم میتونه از ورود بسته های ناخواسته به سیستم جلوگیری کنه.
  • غلامحسین توسلی

در مورد پایگاه داده یکی از مسایل مهم کارایی پایگاه داده است؛ به خصوص زمانی که تو پروژه شما مسئله مهم ثبت رکورد با سرعت بسیار بالا باشد. البته فارغ از خود پایگاه داده طراحی سیستم نیز مسئله بسیار مهمی است. برای انجام کاریی نیاز به این کارایی بالا در سطح پایگاه داده پیدا کردم. دامنه انتخابم هم محدود میشد به MySQL و PostgreSQL. شاید یه وقت دیگه این دو رو با هم مقایسه کردم. به دلایلی مجبور به استفاده از MySQL شدم. همونطور که پیش از این هم گفتم یک سطح از بهینه سازی بر می گرده به خود پایگاه داده یه بخش خیلی مهمی از اون هم بر می گرده به طراحی سیستم و جداول و ارتباطات اون ها باهم. در این پست رویکردم کارایی خود پایگاه داده است. برای بهینه سازی و افزایش کارایی سامانه دست به یک سری بهینه سازی ها در طراحی سامانه و خود پایگاه داده زدم. تا این که به اینجا رسیدم.

  • غلامحسین توسلی
LevelDB یک موتور پایگاه داده کلید-مقدار سریعه که توسط گوگل به زبان ++C به نگارش دراومده. در حقیقت سازندگان Google MapReduce و BigTable این کتابخانه را با تاکید بر روی دسترسی تصادفی کارا مبتنی بر هارد دیسک بوجود آوردند. این موتور به صورت متن باز عرضه شده. این پایگاه داده نگاشتی از کلیدهای رشته ای به مقادیر رشته ای فراهم می کنه. سوال اول اینه که تفاوت این پایگاه داده با پایگاه داده ای مثل MySQL چیه؟ خوب هر دو از هارد دیسک برای ذخیره سازی داده استفاده می کنند. هر دو یک پایگاه داده ماندگار (persistent) ایجاد می کنن؛ به این معنی که داده ها پس از ذخیره سازی و پایان برنامه بر روی هارد دیسک باقی می مونن.


فرق اصلی که بین این دو پایگاه داده وجود داره اینه که پایگاه داده MySQL یک پایگاه داده رابطه ایست که در آن شما می تونید با استفاده از Queryهای SQL با داده ها در پایگاه داده کار کنید؛ در حالی که LevelDB به شما یک پایگاه داده رابطه ای نمیده بلکه فقط یک پایگاه داده کلید - مقداره که داده ها را به صورت مرتب شده بر اساس کلید نگهداری می کنه. ...
  • غلامحسین توسلی