بایگانی برچسب: s

چرا گنو/لینوکس رو دوست دارم: اضافه کردن اسم فایل به تبلچرهای گیتار

دوستم یک مشکل داره و می دونه شکل مشکل چیزی است از یک کار تکراری که احتمالا در دنیای قشنگ لینوکس می شه براش راه حل های جالب پیدا کرد. صورت مساله اینه:

من تعداد زیادی فایل تبلچر (شیوه اجرای آهنگ) گیتار دارم که اسم خواننده بالاشون نوشته نشده. در نتیجه من نمی تونم سریع توی ذهنم بیارم که آهنگ چه شکلی است. مثلا وقتی بالای آهنگ نوشته شده «عسل» کمک بسیار بزرگی است اگر Ebi رو هم بالاش ببینم. این Ebi اسم فایل است پس من یکسری فایل عکس دارم که می خوام اسم فایل رو روی عکس فایل اضافه کنم

بله! لینوکس که ترکیبی از ابزارهای قدرتمند است، راه حلی عالی داره. اما یک برنامه نویس خوب همیشه اول مسائل رو در ساده ترین حالت حل می کنه و بعد مساله رو پیچیده می کنه. فرض کنیم اصولا فقط یک عکس داریم که می خوایم روش بنویسیم My Happy Text. اسم فایل هم هست Bijan Mortazavi 006. اگر بتونیم این مساله رو حل کنیم، یک قدم جلو افتادیم. در اصل من دارم مساله رو به سه بخش تقسیم می کنم:

1- اضافه کردن یک متن دلخواه به یک عکس
2- در آوردن اسم یک فایل
3- ترکیب کردن دو قدم قبلی برای هر چند تا فایل که داشتیم

قدم اول: نوشتن روی فایل

ساده است. بسته Image Magick ابزاری داره به اسم convert که می تونه تقریبا هر کاری با یک تصویر بکنه! مثلا این تصویر:

Ebi 005

با دستور

$ convert Ebi\ 005.JPG -pointsize 43 -background Khaki label:'My Happy Text' +swap -gravity Center -append out.jpg

تبدیل می شه به:

out

جذاب نیست؟ بخصوص که روی تصویر چیزی ننوشتیم بلکه بالاش کمی تصویر اضافه کردیم! حالا می ریم سراغ قدم دوم.

قدم دوم: درآوردن فهرست فایلها

من احتیاج دارم اسم فایل ها رو بگیرم. اولش که ساده است؛ به لینوکس می گم همه فایل هایی که تهشون JPG هست رو بهم بده:

$ find . -name "*JPG" 
./Bijan Mortazavi 005.JPG
./Ebi 015.JPG
./Ebi 018.JPG
./Ebi 016.JPG
./Darush 007.JPG

بعد کافیه بگم اون /. اول رو حذف کنه:

a$ find . -name "*JPG" | sed "s/\.\///"
Bijan Mortazavi 005.JPG
Ebi 015.JPG
Ebi 018.JPG
Ebi 016.JPG
Darush 007.JPG

و چیز دیگه که بهش احتیاج نداریم اون JPG. آخر است:

$ find . -name "*JPG" | sed "s/\.\///" | sed "s/\.JPG//"
Bijan Mortazavi 005
Ebi 015
Ebi 018
Ebi 016
Darush 007

و قدم دوم هم تموم می شه!

قدم سوم: چسبوندن قدم های قبلی

اینجا گزینه ها خیلی زیادن. بریم جلو ببینیم چی می شه. مثلا من می تونم با دستور xargs ورودی قدم دوم رو استفاده کنم. اصل صفرم برنامه نویسی جادی رو یادتونه دیگه؟ «برنامه پیچیده ای که کار می کنه، برنامه ساده ای بوده که کار می کرده» پس بذارین در ساده ترین حالت، هر کدوم از خطوط ورودی رو بدیم به یک دستور اکو:

$ find . -name "*JPG" | sed "s/\.\///" | sed "s/\.JPG//" \
    | xargs -L1 -I THIS echo my command will work on \"THIS\" happily 
my command will work on Bijan Mortazavi 005 happily
my command will work on Ebi 015 happily
my command will work on Ebi 018 happily
my command will work on Ebi 016 happily
my command will work on Darush 007 happily

عالی! ما قهرمانیم. الان ورودی قدم دوم رو خط به خط دادیم به دستور اکو. (سوییچ I می گه این خط ورودی باید کجای دستور قرار بگیره). بذارین یک ضرب سعی کنیم اصل برنامه رو اجرا کنیم و خروجی رو بریزیم توی دایرکتوری out و البته قبلش طبق همون اصل اول برنامه نویسی جادی، با گذاشتن یک echo جلوی دستوری که ساختیم یک تست هم می گیریم:

$ find . -name "*JPG" | sed "s/\.\///" | sed "s/\.JPG//" | xargs -L1 -I THIS echo convert \"THIS.JPG\" -pointsize 43 -background Khaki label:\'THIS\' +swap -gravity Center -append \"out/THIS.jpg\"
convert "Bijan Mortazavi 005.JPG" -pointsize 43 -background Khaki label:'Bijan Mortazavi 005' +swap -gravity Center -append "out/Bijan Mortazavi 005.jpg"
convert "Ebi 015.JPG" -pointsize 43 -background Khaki label:'Ebi 015' +swap -gravity Center -append "out/Ebi 015.jpg"
convert "Ebi 018.JPG" -pointsize 43 -background Khaki label:'Ebi 018' +swap -gravity Center -append "out/Ebi 018.jpg"
convert "Ebi 016.JPG" -pointsize 43 -background Khaki label:'Ebi 016' +swap -gravity Center -append "out/Ebi 016.jpg"
convert "Darush 007.JPG" -pointsize 43 -background Khaki label:'Darush 007' +swap -gravity Center -append "out/Darush 007.jpg"

بله ظاهرا که همه چیز عالیه. بزن بریم! اکو رو حذف می کنم ولی با اینکه دستورهای بالا درست هستن، به دلیلی که نمی دونم چیه دستورات درست اجرا نمی شن. پس کارم رو راحت می کنم:

$ find . -name "*JPG" | sed "s/\.\///" | sed "s/\.JPG//" | xargs -L1 -I THIS echo convert \"THIS.JPG\" -pointsize 43 -background Khaki label:\'THIS\' +swap -gravity Center -append \"out/THIS.jpg\" > commands.sh
$ sh commands.sh 
$ ls out/
Bijan Mortazavi 001.jpg  Bijan Mortazavi 005.jpg  Darush 003.jpg  Darush 007.jpg  Darush 011.jpg   Delkash 003.jpg  Ebi 004.jpg  Ebi 008.jpg  Ebi 012.jpg  Ebi 016.jpg
Bijan Mortazavi 002.jpg  Bijan Mortazavi 006.jpg  Darush 004.jpg  Darush 008.jpg  Darush 012.jpg   Ebi 001.jpg      Ebi 005.jpg  Ebi 009.jpg  Ebi 013.jpg  Ebi 017.jpg
Bijan Mortazavi 003.jpg  Darush 001.jpg           Darush 005.jpg  Darush 009.jpg  Delkash 001.jpg  Ebi 002.jpg      Ebi 006.jpg  Ebi 010.jpg  Ebi 014.jpg  Ebi 018.jpg
Bijan Mortazavi 004.jpg  Darush 002.jpg           Darush 006.jpg  Darush 010.jpg  Delkash 002.jpg  Ebi 003.jpg      Ebi 007.jpg  Ebi 011.jpg  Ebi 015.jpg  Ebi 019.jpg

بله. دستوراتی که درست کرده بودم رو می ریزم توی یک فایل و بعد فایل رو اجرا می کنم و می بینیم که دایرکتوری out پر شده از فایل هایی که لازم بود این بلا سرشون بیاد. مثلا:

www.guitarestan.com

حالا می تونیم این کدها رو بدیم به دوستمون که روی سیستم خودش روی چند صد تبلچر دیگه اجرا کنه و این می شه یک فعالیت شاد و خوشحال که هم باعث می شه مهارتهای لینوکسی مون بالا بره، هم بهمون خوش بگذره هم مشکل یک دوستمون حل بشه.

مرتضی پاشایی و جامعه ای که می خواد عضوی از جهان باشه

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

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

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

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

آهنگ های هشت بیتی – از بابا کرم تا خوب بد زشت تا مایکل جکسون

مارتین شمعون‌پور(؟) در ساوند کلاود کانال جالبی داره که توش نسخه های هشت بیتی آهنگ ها رو می ذاره و خوشبختانه از اونجایی که احتمالا ایرانی است، از سلطان قلب ها تا باباکرم هم داره (:‌

امیدوارم هم از آهنگ ها لذت ببرین هم از تامبنیل های بانمکی که احتمالا خودش درست می کنه و براش یکی دو خط بنویسین که ادامه بده که کارش به نظرم باحاله.

هنر گیکی – اسباب‌بازی‌ها زیر اشعه ایکس

xray

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

انسان ویترووین (vitruvian man)

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

vit

انسان ویترووین نام خود را از معمار رومی، ویتروویوس (Vitruvius) گرفته است. ویتروویوس معمار،‌ مهندس و نویسنده رومی بود که رساله معروف “درباره معماری” را نوشته که برای مدت های مدید، راهنمای معماران رومی محسوب می شد. ویتروویوس با پیروی از هندسه مقدسی که پیتاگوراس (Pythagoras، فیلسوف یونانی قرن ششم قبل از میلاد مسیح) وضع کرده بود،‌ این تصویر را توضیح داده، معابد رومی را بر اساس نسبت های بدن انسان ها می ساخت. این تناسب به گفته ویتروویوس به خاطر این واقعیت بود که بدن یک انسان که دست و پای خود را مستقیم امتداد داده باشد هم در دایره قابل محیط شدن است و هم در مربع. به یاد داشته باشید که بنا بر سنت پیتاگوراس، دایره نشان دهنده حقیقت روحانی است و مربع نشان دهنده هستی مادی، پس بدن انسان محصول اتحاد موفق جسم و روح است که این تصویر به خوبی آن را به تصویر می‌کشد.

لئوناردو داوینچی یکی از موفق ترین نقاشانی است که تلاش کرده اتحاد جسم و روح در بدن انسان را با استفاده از تصویر انسان ویترووین نمایش دهد و امروزه نتیجه کار او – با دقت بالایی که در نمایش ابعاد بدن دارد – یکی از مشهورترین تصاویر جهان است.

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

vit_f_cesariano_1

هنر گیکی: تابلویی از چهره‌های نهفته در ابرها

از قدیم عادت بشر بوده تو ابرها دنبال تصاویر آشنا بگرده. مثلا اگر یک دوربین از هزاران ابر عکس بگیره احتمالا این عکس هم توش دیده می شه:

cloud_detail5

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

اثر نهایی می شه این تابلوی هنری اثر هنرمند کره‌ای به اسم کیمیونگهون.

cloudface_installation1

فیلم سینمایی خط ویژه؛ یک هک خوب

exclusive_path

هفته گذشته خط ویژه رو دیدم و مشعوف شدم! بالاخره یک فیلم که تونسته بود هک رو در حد قابل قبولی نشون بده که هم حرفه‌ها خوشحال باشن هم آماتورها.

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

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

اما به نظر من امیدوار کننده ترین جای داستان، صحنه‌های خوب هک بود. اولا که هکر خیلی واقعی درست شده بود. نه لازم بود دوربین دورش بچرخه و نه حرفهای عجیب غریب بزنه. یک پسر دور از کلیشه‌های رایج هکرهای هالیوودی (موبلند و خیلی چاق یا خیلی لاغر) خیلی معقول و سربزیر هکش رو می کرد و می رفت پی کارش (: ابزارهای کارش هم خیلی واقعی و جذاب بودن: اوبونتو، دامپ کردن فایل‌هایی به اسم bnksniff و نگاه کردن بسته‌های کپچر شده با وایرشارک! این رو مقایسه کنین با حماقت اون دوستمون که توی سریال نمی دونم چی چی سعی می کرد با ساختن نیوفولدر ویندوز و عوض کردن تم قاچاقچی ردیابی کنه و خوشحال باشیم که کاگردان خط ویژه‌ مشاور خوبی در امور هک داشته. البته ظاهرا مشاور بانکی چندان جذاب نبوده یا من درک خوبی از سیستم بانکی ندارم؛ از نظر من چرخوندن یک پول در صد تا حساب اصلا نباید باعث بشه که پیدا کردن اون پول سخت بشه و منطقا اگر هکر از راه دور می تونه اینکار رو بکنه، نیازی نداره یکی از توی بانک بهش در مورد «پول تو حساب است، منتقلش کن» خبر بده. حالا یا من اشتباه می کنم یا مشاور هک بهتر از مشاور بانکی بوده.

در نهایت این فیلم به خاطر صحنه‌های هک قابل قبول، باعث خوشحالی است و به خاطر داستان نسبتا خوب، قابل پیشنهاد. امیدوارم ببینین و لذت ببرین و نظراتتون رو به منم بگین.