مدتها پیش مطلبی خوندم با این موضوع که گوگل داره روی سیستمی کار میکنه که subtitle خودکار برای ویدئوها تولید کنه.
دیروز بعد از مدتها یه سر به Youtube زدم و دیدم که گوگل این امکان را فعال کرده است. کافی است که روی نوار ابزار پخش کلیک کنید و بگین زیرنویس ویدئوها را نمایش بده.
حتی شما میتونید این امکان را با امکان ترجمه آنلاین فعال کنید. من این امکان را با تکهای از فیلم dead poet society امتحان کردم. زیرنویسها صددرصد درست نبود و ترجمه فارسی از اون هم بدتر اما واقعا کار میکرد و خروجیش بخصوص برای زبان انگلیسی قابل قبول بود.
یادمه یه زمانی برنامههای تشخیص صدا (speech recognition) به بازار اومده بود و ساعتها باید باهاش حرف میزدی تا تم صدات را یاد بگیره و بعد از اون هنوز هم نتایج بدون اشکال نبود.
این قضیه وقتی که میرسه به سیستمی که هر ویدئویی را با صداهای مختلف بتونه تشخیص بده یعنی یه پیشرفت بزرگ.
چیزی که یه زمانی رویا بود الان دم دست به نظر میرسه. یه سیستم ارتباطی صوتی تصویری -تو مایههای ویدئو کنفرانس- با این تفاوت که مهم نیست به چه زبانی با چه کسی گفتگو میکنید! شما با هر زبانی که صحبت کنید مخاطبین شما با صدای شما و به زبان خودشان صدای شما را خواهند شنید و شما هم صدای آنها را به زبان محلی خودتان دریافت خواهید کرد.
یکی دیگر از مرزهای ارتباطی بار دیگر فرو میریزد و دورانی جدید از بشریت آغاز خواهد شد.
امروز اتفاقی بلاگی دیدم که کتاب Coders at work را معرفی کرده بود. کتاب در نسخه PDF در اینترنت پیدا شد و چند صفجهای از کتاب را خواندم.
کتاب شرح ماجرای زندگی حرفهای تعدادی برنامهنویس معروف است که جوانترین آنها، Brad Fitzpatrick، همسن من بود، اما داستان شروع و زندگیام شباهت زیادی با Jamie Zawinski داشت. و اختلاف آنها با یکدیگر میتواند نمادی از تفاوت زمانی ۱۲ ساله IT در ایران و آمریکا برایم باشد.
خواندن فصل اول کتاب امید زیاد و خواندن بخش دوم تاسف عمیق در من ایجاد کرد.
خواندن این کتاب را به همه کدنویسان و توسعهدهندگان سفارش میکنم.
با کمک آقا مهدی سایت پرداخت الکترونیک سمپاد یزد راه افتاد. یکی از دوستان از مراحل کار پرسید. و پیشنهاد کرد که در یک پست به صورت عمومی شرح بدم.
اولین قدم اینه که شما باید با یک شرکتی که سرویس دروازه پرداخت ارائه میکنه تماس بگیرید و قرارداد امضا کنید. این شرکتها اغلب وابسته به بانکها هستند و با سرویس آنها از همه کسانی که کارت بانکی با قابلیت پرداخت الکترونیک دارند پول دریافت کنید. ما به دلایلی مثل زمان خرابی کم، سرویس شرکت پرداخت الکترونیک سامان وابسته به بانک سامان را انتخاب کردیم.
برای استفاده از سرویس شرکت پرداخت الکترونیک سامان باید شرایطی داشته باشید. مثلا مجموعه شما دارای هویت حقوقی و قانونی باشد یعنی مثلا شرکت یا موسسه ثبت شده باشد یا مثلا مغازهای با جواز کسب از صنف باشید.
علاوه بر این شما باید دارای یک وب سایت فعال باشید (همونجایی که قصد دارید سرویس فروش الکترونیک را راهاندازی کنید) توجه داشته باشید که به علت اینکه بخشی از هویت شما وابسته به نشانی ip سرور میزبان وب شما است، اکیدا توصیه میشود که از سرویس با IP اختصاصی خودتون استفاده کنید. برای امنیت بیشتر استفاده از VPS یا Dedicated سرور توصیه میشود.
قدم بعدی پر کردن فرمهای قرارداد است. فرمها را میتوانید از وبسایت شرکت پرداخت الکترونیک سامان دریافت کنید. فرمها را پر کنید.
توی این فرمها جایی داره برای حسابی که قراره پولهای ناشی از خریدها بره اونجا، پیشنهاد من اینه که یه حساب کوتاه مدت واسه این کار توی نزدیکترین شعبه بانک سامان باز کنید تا سودی که میگیرید هزینههای پرداخت الکترونیک را جبران کنه. (در سرویسی که ما برای سمپاد یزد گرفتیم دو درصد از مبلغ هر خرید تا سقف ۱٫۵۰۰ تومان به ازای هر تراکنش به عنوان کارمزد پرداخت الکترونیک برداشت میشه)
بعد از پر کردن فرمها توی سایتشون چک کنید ببینید توی شهر شما نمایندگی دارند یا نه. اگه دارند که کارتون ساده است کافیه برین این مدارک را بدین دفتر نمایندگی و بعد هر روز پیگیری کنید تا مدارکتون برسه مرکز. اگه مدارکتون برسه ظرف مدت ۴۸ ساعت یه نامه با پست برقی براتون میاد که یه شناسه و یه رمز براتون توش نوشته شده. با این رمز میتونید:
همراه اون شناسه یه عالمه کد رو توضحیات وجود داره که با استفاده از اون میتونید یه سیستم پرداخت برای خودتون ایجاد کنید! بخش عمده این مستندات را از قبل هم میتونید از سایت شرکت پرداخت الکترونیک دریافت کنید تا زودتر بتونید سیستم پرداختتون را راه بندازید.
به همین سادگی!
چند ساله که داره روی اسم دامنههایی با الفبایی غیرلاتین کار میشه. نتیجه کار یه استاندارد هست به نام IDN که خلاصه International Domain Name است. در این استاندارد نام از یه رشته غیرلاتین به کد Punycode تبدیل میشود.
برای دامنههای ایران IRNIC مسوول ثبت و نگهداری و مدیریت است. این مجموعه برای ایجاد یک دامنه فارسی به نام .ایران فعالیت کردند و الان این دامنه قابل استفاده است. مثلا اگه شما روی نشانی http://یزدانپرست.ایران.ir کلیک کنید، وارد وبلاگ خودخودمان میشوید. یا نشانی http://سمپاد.ایران.ir شما را به وبسایت انجمن دانشآموختگان استعدادهای درخشان میبره.
در هر این نامها هنوز مشکلی دارند و اون اینکه هنوز لازمه که .ir به نام دامنه ,ایران اضافه بشه که به نظر جالب نمییاد.
اگه شما مسوول یه isp باشید یا روی سرورهای سازمانی که توش کار میکنید نظارت داشته باشید میتونید این مشکل را با یه حقه دور بزنید.
برای اینکار لازمه که اول از همه BIND9 که معروفترین DNS Server دنیا است را روی سرور اینترنت نصب کنید. بعد دو تا زون برای .ایران و .ایران اضافه کنید. (اشتباه نکنید یکیش با ی فارسی است و دیگری ی عربی! چون punnycodeها برای اونها فرق میکنه)
بعد به BIND9 بگین که درخواست برای تبدیل نام به آیپی برای این Zoneها را به سرور ns.nic.ir ارسال کنه.
توی Ubuntu برای اینکار کافیه یه فایل با این محتویات بسازید:
zone "xn--mgba3a4fra" {
type forward;
forwarders {194.225.70.89; 137.189.6.21; 198.6.1.162;};
};
zone "xn--mgba3a4f16a" {
type forward;
forwarders {194.225.70.89; 137.189.6.21; 198.6.1.162;};
};
و بعد داخل فایل named.conf این خط را اضافه کنید
فراموش نشه که بعد از راهاندازی مجدد BIND کلاینتها را جوری تنظیم کنید که از این سرور به عنوان DNS سرور استفاده کنند.
برای امتحان میتونید به نشانی http://صادق.ایران بروید. اگه باز شد، شما کار را درست انجام دادین! فراموش نکنید حتما از فایرفاکس یا مرورگری که از IDN پشتیبانی میکنه برای تست استفاده کنید!
گنو/لینوکس مجموعهای از ابزارهای خیلی کوچولو اما بسیار پرقدرت است. این ابزارها به سادگی با هم ترکیب میشوند و نتیجهاش این میشه که کارهای خیلی پیچیده را میشه به سادگی انجام داد.
یکی از این ابزاهای خیلی خوب curl است. در معرفی curl آمده: ابزاری است برای ارسال داده «از» یا «به» سرور با پروتکلهایی که پشتیبانی میکنه (مثلا http, https, ftp, telnet و …) این ابزار به نحوی طراحی شده است که بدون نیاز به ارتباط با کاربر وظیفهش را انجام بده.
یک مثال:
سایتی به نام identi.ca که یک پیادهسازی از ابزار StatusNet برای Microbloggin (مشابه توییتر) است به شما این اجازه را میده که با استفاده از API پست خودتون را ارسال/دریافت کنید.
روش ارسال به این نحو است که باید محتوی توییت خودتون را به نشانی http://identi.ca/api/statuses/update.xml پست کنید. البته شناسه کاربری و کلمه عبور باید از طریق http authentication به سرور اعلام کنید.
برای این کار یک دستور curl کافیه:
curl http://identi.ca/api/statuses/update.xml -u USERNAME:PASSWORD -d "status=This is a test Dent from Shell"
به همین سادگی.
اگه دوست داشته باشید میتونید مثلا این دستور را با یه دستور دیگه قاطی کنید که نتیجه اون دستور را dent کنه. مثلا من یه اعلام ساعت با استفاده از دستور date درست کردم که با استفاده از cron سر هر ساعت گذشت زمان را به من یادآوری میکنه:
curl http://identi.ca/api/statuses/update.xml -u USERNAME:PASSWORD -d "status=Now: `date +\"%Y-%m-%d %H:%M\"`"
خوبه نه؟
کسایی که از سیستم عامل DOS استفاده کردن میدونند که یه دستور داشت به نام tree. کار این دستور این بود که لیست فایلها و فولدرها را به صورت درختی نمایش می داد. توی لینوکس برای درست کردن اینجور چیزی دو راه وجود داره:
۱. استفاده از این دستور:
find . -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'
apt-get install tree
وقتی سرور samba داشته باشی و کلاینتها توی ویندوز باشند یه مشکلی پیش میاد گاهی! اگه یه کاربر با نام کاربریش وارد بشه نمیشه با کاربر دیگهای که به منابع دیگه دسترسی داره وارد بشه. البته این مشکل فقط توی محیط گرافیکی ویندوز وجود داره.
راه حل استفاده از دستور net use است در ویندوز
مثلا من با کاربر sadeq به سرور وارد میشم. به همین دلیل به فایلهای خانگی خودم که توی فولدر \\server\sadeq است دسترسی دارم. بعد یه کاری پیش میاد یکی از دوستان که از نام کاربری elec استفاده میکنه میخواهد از روی کامپیوتر من یه فایل روی سرور بریزه. وقتی میزنه \\server\elec پیام خطا میگیره که دسترسی نداره.
راه حل مشکل اینه که این دستور اجرا بشه:
net use \\server\elec *
با این دستور، رمز کاربر مالک elec پرسیده میشه و اگه درست باشه اتصال به سرور برای این منبع ایجاد میشه و من میتونم با زدن نشونی \\server\elec به فایلهای کاربر elec دسترسی پیدا کنم.
ما یه سرور توی شرکت داریم که سیستم عاملش لینوکس است. چاپگر شرکت به این سیستم وصله و همه وقتی درخواست چاپ دارند باید دستور چاپ را به این چاپگر بفرستند.
تا چند روز قبل برای اینکه کلاینتهای ویندوزی بتونند از چاپگر استفاده کنند از ترکیب samba و cups استفاده میکردیم. بعد از اومدن ویندوز هفت! مشکلی پیش اومده بود. با این ویندوز نمیشد به چاپگر وصل شد.
سه شنبه همین هفته بود که محمدرضا راه حل را پیدا کرد. به سادگی به جای استفاده از سمبا از پروتکل ipp (چاپ اینترنتی) میشه استفاده کرد. ipp به صورت توکار در cups پشتیبانی میشه به چه خوبی!
در قسمت add printer نوع چاپگر را network printer انتخاب میکنیم، و بعد گزینه connect to a printer on Internet or on home or office network را انتخاب میکنیم. بعد توی قسمت url اینطوری مینویسیم:
http://server:631/PrinterName
فکر کنم واضح باشه که به جای server باید اسم سرور خودتون را بنویسد و به جای PrinterName هم اسم چاپگرتون در cups.
بعد نوع چاپگر را انتخاب میکنید. بعد از نصب درایورها، چاپگر آماده استفاده است!
به همین سادگی به همین خوشمزگی!
اگه خواسته باشید که با یوزر/پسورد خاصی به چاپگر وصل بشین که امکانات خاص بهتون داده بشه، لازمه که توی properties چاپگر در برگه Ports کلید ٰConfigure Ports را انتخاب کنید و اونجا یوزر/پسورد مورد نظر را وارد کنید.
برای مدیران سیستم:
راهنمای راهاندازی و تنظیم و استفاده از ipp روی linux و windows را از اینجا میتونید بخونید، این راهنما ۳ صفحه است. در صفحه اول سرویسدهنده cups را تنظیم میکنید. در صفحه دوم یک چاپگر (در راهنما hp laserjet 1020) را به cups معرفی میکنید و در صفحه سوم روی کلاینت window xp از چاپگر استفاده میکنید. مراحل نصب در windows vista و windows 7 هم نباید خیلی متفاوت باشه. در شرکت چاپگر را برای xp و ویندوز ۷ به سادگی نصب شد.
یک راهنمای خوب هم اینجا ست. خلاصه و مفید.