منبع اصلی نوشتار زیر در این لینک قرار دارد

اسکریپت پخش تصادفی فایل‌های تصویری

Shell Script

من آدم تنبلیم، خیلی تنبل. دوباره تنبلی باعث شد که یکی از کارهای تکراری که زحمت زیادی نداشت رو بصورت کامل بی‌زحمتش(اتوماتیک) کنم.

 

سناریو : من یه پوشه دارم که یه سری کلیپ تصویری توشه و روزی یکی دوبار کلیپ‌هایی که دوست دارم رو تماشا می‌کنم. چون دوست دارم یکی دو تا کلیپ رندوم ببینم کاری که تا به امروز می‌کردم این بود که همشون رو توی smplayer ایمپورت می‌کردم و لیست رو بصورت تصادفی پخش می‌کردم.

ادامه مطلب ادامه مطلب

منبع اصلی نوشتار زیر در این لینک قرار دارد

استفاده از متد POST در سیناترا

فرمورک Sinatra یک میکروفرمورک وب است که اکثر کاربران و توسعه دهندگان روبی، با آن آشنایی دارند. برای شروع و ساخت پروژه هایی که زمان زیادی برایشان نداریم، بدون شک این فرمورک یکی از بهترین انتخاب هاست. در اکثر مثالهایی که در اینترنت موجود است، به گفتن متد get بسنده کرده اند. در حالی متد […] ادامه مطلب

منبع اصلی نوشتار زیر در این لینک قرار دارد

برنامه نویسی پیشرفته در روبی – بخش سوم

در آموزش پیشین ، در مورد تبدیل نوع کلاس ها و همچنین ارث بری به قدر کافی صحبت شد. در این آموزش، قصد داریم تا در مورد «سر بارگذاری عملگرها» یا Operator Overloading بحث کنیم. وقتی یک کلاس جدید ایجاد میکنیم، به طور مستقیم نمی توانیم روی متغیرهای instance از عملگرها استفاده کنیم. به همین […] ادامه مطلب

منبع اصلی نوشتار زیر در این لینک قرار دارد

برنامه نویسی پیشرفته در روبی – بخش دوم

در آموزش پیشین، در مورد ساخت کلاس و افزودن متد، بحث کردیم. در این آموزش، میخواهیم کمی آموزش را تعمیم دهیم، و درباره ارث بری صحبت کنیم. در آموزش قبلی، یک کلاس کاربر به این شکل تهیه کردیم : بیایید یک برنامه بزرگ را در نظر بگیریم، مثلا قرار است از کاربرها، عده ای را […] ادامه مطلب

منبع اصلی نوشتار زیر در این لینک قرار دارد

مهاجرت به قالب ماتروسکا

به قصد پاکسازی سیستمم، تصمیم گرفتم تا جای ممکن از قالب‌ها، نرم‌افزارها و مجوزهای آزاد استفاده کنم. در راستای این مهم، ماتروسکا رو برای پرونده‌های تصویری انتخاب کردم. قالب خیلی جالبیه و همه‌جا هم به راحتی قابل پخشه و البته شناخته شده(با پسوند mkv). یکی از مزایایی هم که داره کم‌تر بودن حجمش نسبت به امپگ هست. اسکریپتی برای پاکسازی سیستم از قالب منحوس و شوم(!) MP4 نوشتم که تقریبا هوشمندانه عمل می‌کنه. البته به قول جادی، ما هر چیزی رو که براش if می‌ذاریم بهش می‌گیم هوشمند :)

نحوه‌ی کار به این صورته که find، پرونده‌هایی رو که پسوند MP4 دارند رو داخل پوشه‌ی Videos در پوشه‌ی خانگی کاربر جاری پیدا می‌کنه و با یه حلقه‌ی for مانند (که با while پیاده شده)، تابع convert_to_mkv رو به ازای هر کدوم از این پرونده‌ها صدا می‌زنه. این تابع، موظفه که برنامه‌ی avconv رو اجرا کنه که عمل اصلی تبدیل رو انجام می‌ده. بقیه‌ی کارها هم مختص فرستادن نامه به کاربره که گزارش تبدیل رو به کاربر جاری ایمیل می‌کنه.

#!/bin/sh
# make cron usage easy :)
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# go to the user's videos directory
cd /home/$USER/Videos/

# this function converts given filename
convert_to_mkv() {
  INPUT="$1"
  OUTPUT="$(echo $1 | sed -r -e 's/.w+$/.mkv/')"
  avconv -v info -i "$INPUT" -c:v libx264 -f matroska "$OUTPUT"
}

# find any mp4 and kill it!
find . -type f -name '*.mp4' | while read FULL_PATH; do
  FILE="$(echo "$FULL_PATH" | sed 's/.///')"
  LOGFILE="$(basename "${FILE}" | sed -e 's/ /_/g' -e 's/mp4$/log/')"
  if convert_to_mkv "$FILE" < /dev/null >> "$LOGFILE" 2>&1; then
    echo "$FILE converting successfully finished. see attachment for details." | mail -A "$LOGFILE" -s 'Converting Finished' $USER
    rm "$LOGFILE" "${FILE}"
  else
    echo "$FILE converting faild. see attachment for details." | mail -A "$LOGFILE" -s 'Error While Converting' $USER
  fi
done

در پست‌های بعدی، درباره‌ی مهاجرت به قالب‌های آزاد دیگه (نظیر Vorbis و …) خواهم نوشت.

ادامه مطلب

منبع اصلی نوشتار زیر در این لینک قرار دارد

برنامه نویسی پیشرفته در روبی – بخش اول

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

منبع اصلی نوشتار زیر در این لینک قرار دارد

کار با کلاس File در روبی

در این مطلب، قصد ما اینست که کمی با کلاس File در روبی کار کرده و آشنا شویم، این کلاس برای ایجاد، خواندن و نوشتن، و تغییر در مجوز های فایل ها استفاده میگردد. ابتدا، مروری بر کلیدی ترین ویژگی های این کلاس میکنیم و سپس، با استفاده از آن، یک ویرایشگر متنی بسیار ساده […] ادامه مطلب

منبع اصلی نوشتار زیر در این لینک قرار دارد

مدیریت جم های مورد نیاز با Bundler

معمولا وقتی نیاز باشد از جم های متنوعی در یک برنامه روبی استفاده کنیم، آنها را به این شکل در کد خود فراخوانی میکنیم :   و در فایل راهنما، به کاربر برنامه می گوییم تا جم مورد نیاز را توسط دستور gem نصب نماید. اما، چرا جم ها را مستقل از کل سیستم روبی […] ادامه مطلب

منبع اصلی نوشتار زیر در این لینک قرار دارد

شناسایی سیستم عامل های شبکه با Scapy

سلام دوستان . همان طور که از عنوان مشخص است , در این ارسال در مورد شناسایی سیستم عامل تارگت می پردازیم . ابتدا نکته ای رو برای حل این مسئله گوشزد می کنیم سپس با استفاده از scapy به حل این مسئله می پردازیم . در آخر ابزاری را تولید می کنیم که آدرس آی پی…ادامه مطلب
ادامه مطلب

منبع اصلی نوشتار زیر در این لینک قرار دارد

ساده ترین راه نوشتن اسکریپت آنتی دیفیس

سلام بچه ها چند وقتی هست که فکرم درگیر نوشتن یه سری اسکریپت هوشمند هست که بتونن خیلی از کارهایی که روی سرور باید توسط ادمین به صورت منظم یا نا منظم انجام بشه رو انجام بدن مثلا اینکه اسکریپتی باشه که مدام صفحات وب رو بررسی بکنه و اگر تغییری مبنی بر هک روی…ادامه مطلب
ادامه مطلب