محیط کار دوست داشتنی من

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

در این بازی هر کسی پنج تا موضوع غیر از موضوعات مالی را که فکر می‌کند کارفرمایش نمی‌داند یا به اهمیت آن واقف نیست و اگر بداند وضعیت بهتری ایجاد خواهد شد را عنوان می‌کند. موضوعات مالی به این دلیل استثناء شده‌اند چون که قاعدتاً همه مدیران و کارفرماها به حساسیت و اهمیت این موضوع واقفند. برای این که نتایج این «بازی» واقعی و قابل استفاده باشد، شرکت کنندگان باید برنامه‌نویس تمام وقت باشند. یعنی تنها کارشان برنامه‌نویسی و توسعه نرم‌افزار باشد نه این که دانشجو یا سرباز باشند یا مثلاً فقط سه روز در هفته کار کنند. علاوه بر این تحت استخدام یک شرکت باشند نه این که Freelance بوده یا به صورت پروژه‌ای کار کنند. در این بازی احترام هیچ کس نباید شکسته شود.

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

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

دوست دارم محمدرضا، مهدی، مصطفی، امید و بهروز هم نظراتشون را بنویسند و من بخونم! :-)

جستجوی امن

گوگل چند وقتی است که سرویس جستجوی امن‌ش را راه‌اندازی کرده برای دسترسی به این سرویس می‌تونید به نشانی https://www.Google.com برید.
هدف از راه‌اندازی این سرویس محافظت از حریم خصوصی افراد بخصوص در شبکه‌های WiFi بدون کدگذاری که بیشتر در مکان‌های عمومی مثل کافی‌شاپ‌ها، کتابخونه‌ها و … استفاده می‌شه عنوان شده است.
با استفاده از این سرویس کلیه ارتباطات شما با گوگل با یک الگوریتم رمزگذاری کد شده و در بین راه کسی نمی‌تونه ببینه که شما در جستجوی چه چیزی هستید.
به نظر من یکی دیگر از دلایل راه‌اندازی این سرویس دسترسی کاربران پشت فیلتر مثل کاربران چین به سرویس جستجوی گوگل با خیال راحت است.
البته این سرویس هنوز در مرحله بتا (آزمایشی) است.

سرعت اینترنت ۱

نتیجه تست با پیشگامان، قرارداد سرعت ۵۱۲/۲۵۶

سرعت اینترنت با پیشگامان

آزمایش پینگ از پیشگامان، یزد

و البته قطعی در هر ۷ تا ۱۵ دقیقه یکبار را اضافه کنید به نتیجه تست‌ها!
جدول زمان اتصال به سرویس adsl‌ پیشگامان

نتیجه تست WiMax ایرانسل:
سرعت اشتراک ۵۱۲ / ۲۵۶ و کیفیت سیگنال حدود ۳۰٪

نتیجه تست سرعت اینترنت WiMax با سرعت ۵۱۲/۲۵۶

اسپم آری یا خیر؟

بدون شرح:
یک اسپم تبیلغاتی که ادعا می‌کند اسپم نیست

پیشرفت محسوس در تشخیص صدا

مدتها  پیش مطلبی خوندم با این موضوع که گوگل داره روی سیستمی کار می‌کنه که subtitle خودکار برای ویدئو‌ها تولید کنه.
دیروز بعد از مدت‌ها یه سر به Youtube زدم و دیدم که گوگل این امکان را فعال کرده است. کافی است که روی نوار ابزار پخش کلیک کنید و بگین زیرنویس ویدئوها را نمایش بده.
حتی شما می‌تونید این امکان را با امکان ترجمه آنلاین فعال کنید. من این امکان را با تکه‌ای از فیلم dead poet society امتحان کردم. زیرنویس‌ها صددرصد درست نبود و ترجمه فارسی از اون هم بدتر اما واقعا کار می‌کرد و خروجیش بخصوص برای زبان انگلیسی قابل قبول بود.
یادمه یه زمانی برنامه‌های تشخیص صدا (speech recognition) به بازار اومده بود و ساعت‌ها باید باهاش حرف می‌زدی تا تم صدات را یاد بگیره و بعد از اون هنوز هم نتایج بدون اشکال نبود.
این قضیه وقتی که میرسه به سیستمی که هر ویدئویی را با صداهای مختلف بتونه تشخیص بده یعنی یه پیشرفت بزرگ.
چیزی که یه زمانی رویا بود الان دم دست به نظر می‌رسه. یه سیستم ارتباطی صوتی تصویری -تو مایه‌های ویدئو کنفرانس- با این تفاوت که مهم نیست به چه زبانی با چه کسی گفتگو می‌کنید! شما با هر زبانی که صحبت کنید مخاطبین شما با صدای شما و به زبان خودشان صدای شما را خواهند شنید و شما هم صدای آن‌ها را به زبان محلی خودتان دریافت خواهید کرد.
یکی دیگر از مرزهای ارتباطی بار دیگر فرو می‌ریزد و دورانی جدید از بشریت آغاز خواهد شد.

کدنویسان در کار، من و ۱۲ سال دیگر

امروز اتفاقی بلاگی دیدم که کتاب Coders at work را معرفی کرده بود. کتاب در نسخه PDF در اینترنت پیدا شد و چند صفجه‌ای از کتاب را خواندم.
کتاب شرح ماجرای زندگی حرفه‌ای تعدادی برنامه‌نویس معروف است که جوان‌ترین آنها، Brad Fitzpatrick، همسن من بود، اما داستان شروع و زندگی‌ام شباهت زیادی با Jamie Zawinski داشت. و اختلاف آن‌ها با یکدیگر می‌تواند نمادی از تفاوت زمانی ۱۲ ساله IT در ایران و آمریکا برایم باشد.
خواندن فصل اول کتاب امید زیاد و خواندن بخش دوم تاسف عمیق در من ایجاد کرد.
خواندن این کتاب را به همه کدنویسان و توسعه‌دهندگان سفارش می‌کنم.

راه‌اندازی سایت پرداخت الکترونیک

با کمک آقا مهدی سایت پرداخت الکترونیک سمپاد یزد راه افتاد. یکی از دوستان از مراحل کار پرسید. و پیشنهاد کرد که در یک پست به صورت عمومی شرح بدم.
اولین قدم اینه که شما باید با یک شرکتی که سرویس دروازه پرداخت ارائه می‌کنه تماس بگیرید و قرارداد امضا کنید. این شرکت‌ها اغلب وابسته به بانک‌ها هستند و با سرویس آن‌ها از همه کسانی که کارت بانکی با قابلیت پرداخت الکترونیک دارند پول دریافت کنید. ما به دلایلی مثل زمان خرابی کم، سرویس شرکت پرداخت الکترونیک سامان وابسته به بانک سامان را انتخاب کردیم.
برای استفاده از سرویس شرکت پرداخت الکترونیک سامان باید شرایطی داشته باشید. مثلا مجموعه شما دارای هویت حقوقی و قانونی باشد یعنی مثلا شرکت یا موسسه ثبت شده باشد یا مثلا مغازه‌ای با جواز کسب از صنف باشید.
علاوه بر این شما باید دارای یک وب سایت فعال باشید (همونجایی که قصد دارید سرویس فروش الکترونیک را راه‌اندازی کنید) توجه داشته باشید که به علت اینکه بخشی از هویت شما وابسته به نشانی ip سرور میزبان وب شما است، اکیدا توصیه می‌شود که از سرویس با IP اختصاصی خودتون استفاده کنید. برای امنیت بیشتر استفاده از VPS یا Dedicated سرور توصیه می‌شود.
قدم بعدی پر کردن فرم‌های قرارداد است. فرم‌ها را می‌توانید از وب‌سایت شرکت پرداخت الکترونیک سامان دریافت کنید.  فرم‌ها را پر کنید.
توی این فرم‌ها جایی داره برای حسابی که قراره پول‌های ناشی از خریدها بره اونجا، پیشنهاد من اینه که یه حساب کوتاه مدت واسه این کار توی نزدیک‌ترین شعبه بانک سامان باز کنید تا سودی که می‌گیرید هزینه‌های پرداخت الکترونیک را جبران کنه. (در سرویسی که ما برای سمپاد یزد گرفتیم دو درصد از مبلغ هر خرید تا سقف ۱٫۵۰۰ تومان به ازای هر تراکنش به عنوان کارمزد پرداخت الکترونیک برداشت می‌شه)
بعد از پر کردن فرم‌ها توی سایتشون چک کنید ببینید توی شهر شما نمایندگی دارند یا نه. اگه دارند که کارتون ساده است کافیه برین این مدارک را بدین دفتر نمایندگی و بعد هر روز پیگیری کنید تا مدارکتون برسه مرکز. اگه مدارکتون برسه ظرف مدت ۴۸ ساعت یه نامه با پست برقی براتون میاد که یه شناسه و یه رمز براتون توش نوشته شده. با این رمز می‌تونید:

  1. لیست خرید‌ها را از سایت بانک سامان نگاه کنید
  2. توی کدهای خودتون تاییدیه یک پرداخت را دریافت کنید
  3. یک خرید یا بخشی از اون را برگشت بزنید.

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

به همین سادگی!

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

چند ساله که داره روی اسم دامنه‌هایی با الفبایی غیرلاتین کار می‌شه. نتیجه کار یه استاندارد هست به نام 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‌ است. در معرفی 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'

خروجی دستور شبیه‌سازی tree

یک خط دستور برای ایجاد خروجی شبیه به خروجی دستور tree در dos


۲. نصب بسته tree برای نصب بسته tree در توزیع‌های debian base‌ مثل ubuntu می‌توانید از این دستور استفاده کنید:

apt-get install tree

خروجی دستور tree در ubuntu


هر دوش به خوبی کار می‌کنه. اما من دومی را به دلیل داشتن کلی امکانات اضافی (مثلا نمایش رنگی، نمایش حجم فایل‌ها و …) ترجیح می‌دم