معرفی کوتاه: به دست آوردن تشابه بین کد منبع دو برنامه

موردی پیش اومد که باید چک می‌کردم که آیا پروژه‌ای که یکی از دوستان کار کرده بود از یه پروژه منبع باز مشهور کپی شده یا نه؟ با یه جستجوی کوتاه به MOSS رسیدم. MOSS مخفف Measure of Software Similarity (سنجه تشابه نرم‌افزار) در واقع یه وب سرویسه که تو دانش‌گاه استنفورد توسعه داده شده تا بتونه به اساتید اونجا کمک کنه تا بفهمن آیا دانشجوها برنامه‌هاشون رو از رو دست هم کپ زدن یا نه.

برای استفاده از MOSS اول باید ثبت نام کرد. برای این کار باید یه ایمیل به moss@moss.stanford.edu فرستاد که دقیقا این متن توش درج شده باشه:

registeruser
mail username@domain

جای username@domain.com ایمیل خودمون رو جایگزین کنیم. در جواب یه ایمیل دریافت می‌کنیم که یه اسکریپت پرل برای کار با MOSS توشه. البته می‌شه از اون اسکریپت استفاده نکرد. خود سایت اسکریپت‌های دیگه‌ای هم داره. برای کار با اسکریپت‌های دیگه کافیه کد کاربری که داخل اسکریپت فرستاده شده همراه با ایمیل هست رو استفاده کرد. البته به نظر من که اسکریپت اصلی به اندازه کافی خوبه.

بعد از ذخیره اسکریپت تو یه فایل مثلا به اسم moss و دادن مجوز اجرایی به اون فایل، مثلا برای مقایسه سورس کدی به زبان ‪C++‬ بین دو تا فولدر aaa و bbb می‌شه از دستور زیر استفاده کرد:
[bash]
./moss -l cc aaa/* bbb/*
[/bash]
پارامترها اونقده سرراستن که نیازی به توضیح نیست. در جواب MOSS یه URL بر می‌گردونه که نتیجه تحلیل توشه. تجربه من این بود که حتما باید نتایج رو شخصا بررسی کرد. چون بعضی جاها نرم‌افزار شباهت‌ها رو اشتباه تشخیص می‌ده.

پی‌نوشت: در مورد دوستم خوش‌بختانه کم‌تر از نیم درصد بین دو تا پروژه شباهت داشت. تا سیه‌روی شود کسی که وقتی نمی‌تونه برنامه‌ای رو بنویسه، تهمت می‌زنه.

معرفی کوتاه: مدیا بر روی شبکه

برای این که فایل‌هایی که توی راسپبریم دارم رو بتونم راحت روی کامپیوترهای مختلف و یا حتی تلویزیون هوشمند استریم کنم کافیه minidlna رو نصب کنم. تمام تنظیمات لازم هم توی ‪/etc/minidlna.conf‬ قرار داره. ساختار فایل تنظیمات طوریه که به راحتی قابل درکه. و البته بعد از تغییر تنظیمات باید سرویس رو راه‌اندازی مجدد کنیم.

معرفی کوتاه: رابط وب خوب برای گیت

اگر چه گیت خودش با webgit میاد، اما رابط webgit‌ خیلی جذاب نیست. در عوض gitlist خیلی جذاب و خوش‌دسته و به راحتی هم نصب می‌شه.
من برای نصبش رو سیستم دبیانی که داشتم از این لینک استفاده کردم.

معرفی: راه‌اندازی سرور openVPN با چند کلید

از vpn می‌شه برای اهداف مختلفی استفاده کرد. تو کشور ما که یه کاربرد مرسوم داره که همه می‌دونن. علاوه بر اون، وقتی داریم از شبکه‌های عمومی استفاده می‌کنیم (مثل شبکه تو یه کافی‌شاپ یا شبکه دانشگاه یا محل کار) اطلاعاتی که تبادل می‌کنیم خیلی راحت ممکنه شنود بشه. برای جلوگیری از این شنود یکی از راه‌های خوب استفاده از vpn اه.
خود vpn ها انواع مختلف دارن. روش pptp علاوه بر اینکه روی شبکه مخابراتی کشور وصل نمی‌شه، حفره امنیتی هم داره. راه حل جایگزین می‌تونه استفاده از openVPN باشه: هم به شدت امنه، هم برای پلتفرم‌های مختلف کلاینت داره.
اگر احیانا VPS داشتید یا مثلا خواستید روی راسپبریتون سرور این نوع vpn رو راه بندازید، باید تنظیمات زیادی انجام بدید. خوشبختانه به جای همه این تنظیمات حوصله-سربر می‌شه از یه اسکریپت ساده آماده استفاده کرد. کافیه اسکریپت دانلود و اجرا بشه. بعد از اجر خودش کانکشن آماده رو به شکل یه فایل برمی‌گردونه تا کلاینتی که داریم استفاده می‌کنیم درون‌ریزی (import) بشه.

لینک اسکریپت

معرفی کوتاه: transmission به عنوان سرویس

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

برای دانلود torrentها برنامه‌های مختلفی هست. به عنوان مثال تو اوبونتو کلاینت پیش‌فرض برای این کار transmissionه. این کلاینت خوش‌دسته و تا حد خیلی خوبی قابل تنظیمه. داشتم دنبال می‌گشتم که چطور می‌شه کلاینتی برای torrent تو خط فرمان داشت که متوجه شدم همین کلاینت transmission رو می‌شه به شکل daemon هم اجرا کرد. بعد هم می‌شه با استفاده از رابط وب یا نرم‌افزار خط فرمان transmission-remote یا transmission-remote-cli اون رو کنترل کرد. توضیح روش نصب و باقی قضایا هم تو لینک‌های پایین صفحه هست. غرض فقط معرفی بود.

لینک
لینک