گیک فارسی

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

وداع تلخ برای سومین بار پیاپی در مرحله یک/چهارم نهایی در جام ملت‌های آسیا

نویسنده:
۴ بهمن ۹۳

امروز اصلاً دست و دلم به پُست دادن در رابطه با باخت ایران نمیرفت ولی برای تکمیل روند پُست های مربوط به جام ملت‌ها چند نکته خدمتتون میگم.

تیم ملی باز هم مثل دو دوره قبل که با مربی وطنی همراه بود در نیمه نهایی شکست خورد و با جام وداع کرد. تیم ملی نه تنها در کیفیت بازیش بهبودی حاصل نشده بلکه تبدیل به تدافعی ترین تیم آسیایی شدیم که افتخارش این شده توپ و مالکیت را بده به حریف و با ضد حمله و تک موقعیت بازی را ببره تازه ده نفره هم جلوی تیم درجه ۲ آسیا یعنی عراق به راحتی دروازه اش باز بشه.

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

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

یک بازی نه چندان خوب همراه با برد ایران مقابل امارات در جام ملت‌های آسیا

نویسنده:
۲۹ دی ۹۳

ابتدای بازی امروز که ترکیب تیم ملی را دیدم خیلی خوشحال کننده بود چون شجاعی توی ترکیب نبود و کیروش جرأت کرده بود یکسری بازیکنان جوان تر را میدون بده. در نیمه اول تکلیف اماراتی ها که معلوم بود و همش با حفظ توپ توی نیمه خودشون و پاس های عرضی تکراری سعی در کنترل بازی داشتند و ایران هم یا دفاع میکرد یا هجوم های نافرجامی را انجام میداد.

بازی ایران و امارات جام ملت ها ۲۰۱۵

داستان در نیمه دوم متفاوت بود و اماراتی ها واقعاً بهتر از ایران بازی میکردند و توپ و زمین را در اختیار داشتند که نتونستند از این برتری استفاده کنند و با عقب نشینی در پایان نمیه دوم و بازی بهتر ایران در اواخر بازی به همراه تعویض دژاگه و قوچان نژاد باز هم روی سماجت آندریانیک تیموریان ، قوچان نژاد با فرصت طلبی دروازه امارات را باز کرد.

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

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

به نظر من بهترین بازیکن زمین عمر عبدالرحمان بود. خدایی به این میگن بازیکن بازی ساز ، توی یک صحنه چهار ، پنج بازیکن ایران را توی دفاع به هم ریخت و چندین بار پاس های عمقی خطرناکی داد و کلاً طراح بازی اماراتی ها هستش و اگه نباشه امارات ۵۰ درصد تیمش را نداره.

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

تماشاگران ایراین جام ملت ها ۲۰۱۵

در آخر هم یک تشکر جانانه از هموطنان بسیار خوبم در استرالیا بکنم که تیم ملی را تنها نمیگذارند و تا دقیقه نود حمایت میکنند . اگه بازی توی ایران بود از دقیقه ۷۰ به بعد علیه بازیکنان شعار میدادند و شاید گل آخر بازی هم به ثمر نمی‌رسید.

چرا زبان پایتون (Python) تا این اندازه محبوب شده ؟

نویسنده:
۲۸ دی ۹۳

پایتون یک زبان برنامه نویسی اسکریپتی همه منظوره برای نوشتن برنامه‌ها به صورت مستقل از سکو هست که توسط Guido van Rossum در سال ۱۹۸۹ نوشته شده. اگه در این چند سال اخیر محبوبیت زبان‌های برنامه نویسی را بررسی کنید متوجه محبوبیت روز افزون Python خواهید شد و من در این پُست قصد دارم تا دلایلی را برای این اقبال عمومی برنامه نویسان مطرح کنم:

محبوبیت پایتون

انتخاب مناسب برای شروع برنامه نویسی
اگر شما در رشته نرم‌افزار در دانشگاه‌های ایران درس خونده باشین در اولین درسی که مربوط به واحد برنامه نویسی هست معمولاً زبان C یا ++C و در موارد نادری هم Pascal تدریس میشه و این در حالی هست که در حال حاضر دانشگاه‌های مطرحی مانند MIT و UC Berkeley و به صورت گسترده‌تر ۸ تا از ۱۰ دپارتمان مطرح رشته نرم‌افزار در آمریکا از زبان Python برای یادگیری دانشجویان تازه وارد استفاده میکنند و بر اساس بیانیه ACM یا همون Association For Computer Machinery در حال حاضر پایتون جایگاه Java را در معرفی علوم کامپیوتر و برنامه نویسان در مدرسه‌ها تسخیر کرده است. مهمترین دلیل این اقبال Syntax منظم و تمیز و خوانا در کنار آسان بودن زبان Python است.

پایتون زبان کارآمدی است
در دنیای امروز که اغلب شرکت ها با اطلاعات حجیم یا همون Big Data روبرو هستند پایتون قابلیتی داره که اون را از بقیه زبان‌ها متمایز میکنه و این قابلیت همون Generator ها هستند که امکان استفاده در Function ها و Expression ها را دارند و مثلاً زمانی که در حال بررسی یک لیست در حلقه هستیم با استفاده از این قابلیت در هر لحظه یک مورد از لیست مورد نیاز هست در حالی که در زبان‌های دیگر کل لیست مورد نیاز هست و این قابلیت باعث استفاده بهینه از حافظه و سرعت بالای کل فرآیند خواهد شد.

پایتون پر سرعت است
همونطور که میدونید زبان‌های اسکریپتی که نیاز به مفسر دارند خیلی کند هستند و من قصدم از اینکه میگم پایتون سریع هست در قیاس با زبان‌های کامپایل شده مانند C نیست ولی با توجه به بهینه شدن زبان پایتون در چند سال اخیر برای سرعت بیشتر و پروژه هایی مانند PyPy و Numba قطعاً پایتون گزینه مناسبی برای محاسبات کامپیوتری سنگین است.

پایتون فقط پایتون نیست
خیلی‌ها اعتقاد دارند که پایتون یک زبان نیست بلکه توصیفی از یک زبان هست که در‌ واقع منظور این هست که پایتون در مسیرها و شیوه‌های مختلفی میتونه نقش ایفا کنه مثلاً CPython که به زبان C نوشته شده قابلیت تعامل با کد های نوشته شده با C یا تعامل به صورت Wrapper بر روی کتابخانه‌های نوشته شده با C را داره. یا مثلاً Jython که عمیقاً قابلیت تعامل با کد های جاوا را داره یا Iron Python که قابلیت کار کردن با #C و Net. را داراست. یا حتی PyObjc که امکان نوشتن کد پایتون و استفاده از ابزارهای Objective C را فراهم میکنه یا Pyjs که امکان کامپایل پایتون به Javascript را میده.

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

بازی بسیار بد تیم ملی ایران مقابل قطر در جام ملت‌های آسیا ۲۰۱۵

نویسنده:
۲۵ دی ۹۳

ایران در دومین بازی خودش در جام ملت‌های آسیا ۲۰۱۵ تونست تیم ملی قطر را با نتیجه یک بر صفر شکست بده ولی متأسفانه بازی بسیار بسیار بدی را انجام داد که بیش از پیش من را قانع کرد این تیم و این‌ مربی هیچ آینده خوبی را برای ایران رقم نخواهند زد. شاید تیم ملی ایران بتونه با دفاع مطلق ، زیر توپ زدن و تک گل‌های شانسی به جام جهانی صعود کنه ، در مقابل نیجریه مساوی کنه و از آرژانتین در وقت اضافه گل بخوره یا در همین جام ملت‌ها در مرحله نیمه نهایی یا فینال حاضر بشه اما در نهایت کیفیت بازی ایران خیلی خیلی بد خواهد بود و بازی‌هایی شبیه به بازی بوسنی هم رقم خواهد خورد.

سردار آزمون - گل جام ملت های آسیا

امروز تیم ایران هیچ بازیکن فوق‌العاده‌ای نداشت و بهترین بازیکن به نظر من سردار آزمون بود که با هوش و تکنیک خیلی خوبش گل ایران را به ثمر رسوند. اما اگه بخواهیم به کل تیم ایران و کل بازی نگاه کنیم باید بگیم بسیار بد بودیم. همین تیم قطر اگه جلوی استرالیا یا ژاپن بازی میکرد کمتر از ۴ یا ۵ گل نمیخورد. تیم قطر خیلی آماتور و ضعیف بود اما ما دفاعی بازی کردیم و زیر توپ زدیم.

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

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

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

جواب این سؤال در اندیشه مسخره مربی تیم ملی هست که فکر میکنه بازیکن های خارج از لیگ ایران شرایط بهتری دارند که قطعاً اینطور نیست. قوچان نژاد ، شجاعی ، پولادی و نکونام همه در لیگ های خارجی بازی میکنند و همه اونها نسبت به گذشته و در مقابل بسیاری از بازیکنان لیگ ضعیف‌تر هستند . نفر بعدی که خیلی جای انتقاد داره و بالاخره ازش دیر یا زود ضربه میخوریم دروازه بان تیم ملی یعنی حقیقی هستش.

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

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

آیا امکان شناسایی یک کاربر به صورت یکتا در وب وجود داره ؟

نویسنده:
۲۴ دی ۹۳

یکی از سؤالاتی که خیلی زیاد توی انجمن‌ها برنامه نویسی وب بهش بر خوردم و بار ها جواب تکراری دادم در مورد شناسایی کاربران سایت به صورت یکتا برای مثلاً جلوگیری از ساخت چندین نام کاربری در سایت یا کلاً ردیابی کاربرانی که از سایت استفاده میکنند و دیگر نیاز هایی که حول شناسایی کاربر میگرده هست.

شناسایی کاربر

در یک پاسخ جامع و کلی باید بگم جز یک راه حل خاص که در ادامه بهش اشاره میکنم هیچ راه حلی برای شناسایی کاربر به صورت قطعی و دقیق چه در یک مرورگر و چه در هر مرورگری که کاربر استفاده کنه (به صورت System Wide یا سراسری) وجود نداره.

خیلی از این دوستان به دنبال Mac Address کارت شبکه کاربر یا شماره سریال هارد کاربر هستند که یکتا باشه و بشه از طریق اون ها کاربر را شناسایی کرد. در پاسخ به این دوستان باید گفت که از سمت Client که جاوا اسکریپت را در اختیار داریم امکان هیچ دسترسی به فایل سیستم یا اطلاعات سخت افزاری کاربر وجود نداره مگه اینکه کاربر را مجاب به نصب Com Object یا Java Applet کنیم که با توجه به ریسک های امنیتی که این دو مورد دارند بالای ۹۹ درصد کاربران آن‌ها را نصب نخواهند کرد. در‌ واقع شاید با نصب نرم‌افزار ، گواهی دیجیتال یا افزونه مرورگر بشه کاربر را شناسایی کرد ولی به صورت مطلق و استفاده در پروژه های عمومی وب امکان‌پذیر نیست.

کلاً اطلاعاتی که از طرف کاربر در اختیار ما قرار میگیره یا مثل IP قابل تغییر هست یا مثل کوکی ، E-Tag ،‌ Flash Cookie و … میتونه توسط کاربر حذف بشه. اما اگه هیچ راه حلی وجود نداشت پس نرم‌افزار هایی که برای امور تبلیغاتی کاربرها را ردیابی میکنند از چه تکنیکی استفاده میکنند؟

در پاسخ باید گفت این نرم‌افزار ها معمولاً با جمع آوری اطلاعات مختلف از مرورگر ، پلاگین های نصب شده ،‌فونت های نصب شده و غیره به همراه متد های آماری مانند ‌Bayesian Inference و الگوریتم ها و متد های پیچیده دیگر به شناسایی و ردیابی کاربران می پردازند.

شاید تا الان کلاً قید ردیابی و شناسایی کاربر را زده باشید اما یک راه حل نسبتاً خوب با توجه به امکانات جدید HTML5 از جمله Canvas به نام Browser Fingerprinting یا انگشت نگاری مرورگر وجود داره که دقیقاً بر اساس گرداوری اطلاعات مختلف مرورگر و سیستم کاربر (موارد قابل دسترسی مانند رزولوشن مانیتور و …) یک رشته هش تولید میکنه که تا ۹۴٪ موارد یکتا هست.

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

var fingerprint = new Fingerprint({canvas: true, screen_resolution: true}).get();

برد ایران در اولین بازی دور مقدماتی جام ملت‌های آسیا در مقابل بحرین

نویسنده:
۲۱ دی ۹۳

بالاخره انتظار فوتبال دوستان به پایان رسید و ایران تونست در اولین بازی دور مقدماتی تیم بحرین را در ملبورن با نتیجه ۲ بر ۰ شکست بده. همونطور که همه فوتبال دوستان میدونن کلاً تیم ملی و فدراسیون فوتبال اوقات خوشی ندارند و ما با بدترین وضعیت تدارکاتی ممکن بازی‌ها را شروع میکنیم (حالا کاری با کره شمالی نداریم و امیدوارم کسی ما را با اونها مقایسه نکنه). در مورد بازی ، هم نکات مثب بود و هم نکات منفی که اول به نکات مثبت می‌پردازم.

خوشحالی حاج صفی بعد از گل جام ملت ها

مهمترین نکته مثبت بازی برد در بازی اول با ۲ گل بود که شرایط ما را توی گروه تثبیت میکنه. آمادگی بازیکنانی مثل اشکان دژاگه ، پور علی گنجی ، ووریا غفوری و حسینی بسیار مشهود بود که امید ها را زنده میکنه. استقبال شور انگیز ایرانیان عزیز ساکن استرالیا هم برای تیم ایران در طول این تورنومنت بسیار مؤثر خواهد بود.

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

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

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

اگر قصد مهاجرت به لینوکس را دارین در زمان خرید Laptop (لَپ تاپ) دقت کنید !

نویسنده:
۲۱ دی ۹۳

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

اما مشکل دومی که معمولاً پیش میاد بحث سخت‌افزار و مخصوصاً کارت های گرافیک هست. یک زمانی سخت‌افزار مشکل بسیار حادی در لینوکس بود اما چند سالی هست که واقعاً این مشکلات خیلی خیلی کم شده و لینوکس روی اکثر کامپیوتر های Laptop و Desktop با کمی دنگ و فنگ کار میکنه. توی این مطلب قصد دارم در مورد انتخاب یک Laptop سازگار با لینوکس بنویسم.

انتخاب Laptop

اگر بخواهیم در مورد بهترین انتخاب حرف بزنیم باید به شرکت Dell اشاره کنیم که به نسبت شرکت های دیگر Laptop هاش بیشترین سازگاری را روی لینوکس دارند و معمولاً هم همراه با سیستم عامل لینوکس عرضه میشوند. به طور کلی وقتی یک شرکت Laptop ش را همراه با سیستم عامل لینوکس عرضه میکنه داره اعلام میکنه که توزیع نصب شده (و دیگر توزیع‌های معتبر به احتمال خیلی خیلی زیاد) به خوبی با سخت‌افزار Laptop ش سازگاره و اگه مشکلی هم پیش اومد قطعاً پشتیبانی میشه.

شرکت Dell یک پروژه ای را شروع کرد به نام Project Sputnic تا Dell XPS 13 Ultrabook را برای Developer ها روی Ubuntu 12.04 با سازگاری کامل فراهم کنه. پس خرید Dell XPS 13 Ultranook Developer Edition میتونه یکی از انتخاب ها باشه. دو تا دیگه از شرکت هایی که Laptop ها و Desktop های سازگار با لینوکس تولید میکنند System76 و ZaReason هستند که توی ایران معمولاً گیر نمیاد یا حداقل من جایی ندیدم.

پس با توجه به این انتخاب های محدود و بِرَند هایی که حتی اسمشون را نشنیدیم چه باید کرد ؟ با توجه به اینکه من Ubuntu را به عنوان توزیع لینوکسی حمایت میکنم ، شرکت کئونیکال شروع کرده به گواهینامه دادن به سیستم‌هایی که سخت افزارشون پس از نصب Ubuntu به خوبی کار میکنند و برای استفاده کاربران مناسب هستند. شما میتونید لیست کاملی به تفکیک شرکت های تولید کننده یا نسخه های LTS موجود را ببینید و دست به انتخاب بزنید.

اگر قصد خرید Laptop ی غیر از انتخاب های بالا را دارین مهمترین نکته‌ای که باید بهش توجه کنید موضوع NVIDIA Optimus Graphic-Switching Technology هستش که تا قبل از نسخه ۱۴.۰۴ دردسر های زیادی برای نصب بود و باید از طریق Bumblebee و کلی مکافات نصب میشد که البته گفته میشه نسخه ۱۴.۰۴ این مشکل را حل کرده و Michael Larabel هم در این مقاله کامل بررسیش کرده و توضیح داده.

در آخر توصیه میکنم به جای خرید یک Laptop با گرافیک های خیلی قدرتمند مثل NVIDIA و ATI که عموما برای بازی توسط برنامه نویسان و طراحان وب استفاده میشه از گرافیک های Intel که سازگاری کاملی با لینوکس دارند استفاده کنید و با پولی که صرفه جویی میکنید یک Console بازی بخرین.

اگه شرایط اقتصادی مناسب بود آیا باز هم کپی رایت را رعایت نمیکردید ؟

نویسنده:
۱۸ دی ۹۳

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

راستش به نظرم پست های توییتری عمر کوتاهی دارند و موندگار نیستند و بحث بین چند نفر شروع و تموم میشه. پس موضوع را توی این وبلاگ در قالب این پست از دید خودم مطرح میکنم.

اینجا دو تا بحث داریم ، یکی اینکه آیا مثلاً نرم‌افزار های پر استفاده مثل Photoshop برای اونها هم گرونه و این استدلال که چون قدرت خرید پول کشور خودمون خیلی پایینه من کپی رایت را نمیتونم رعایت کنم قابل قبوله ؟

در جواب به این سؤال مجبوریم حساب و کتاب کنیم. حداقل دستمزد توی ایران در سال جاری ماهی ۶۰۹ هزار تومان معادل ۱۷۴ دلار هست و در آمریکا ساعتی ۷.۲۵ دلار که برای ۸ ساعت کار طی ۲۶ روز (کسر ۴ روز برای روز های یک‌شنبه و تعطیل در ماه) میشه ماهی ۱۵۰۰ دلار ، همینجا اختلاف زیاد بین دو کشور مشهوده اما بیایین مقایسه کنیم.

آمازون - فتوشاپ

Photoshop CS6 توی Amazon داره ۱۵۳۰ دلار فروخته میشه اگر چه توی Ebay و خیلی از سایت‌ها تا ۵۰۰ دلار و حتی ۳۰۰ دلار هم میشه خریدش ،‌ اما حالا ما همون قیمت Amazon را اگه بگیریم برای یک آمریکایی با حقوق یک ماه قابل خریده اما یک ایرانی باید بیش از ۸ ماه حقوقش را جمع کنه تا بتونه این نرم‌افزار را بخره. البته این مثال با همه درآمد یک ماه شخص برای مقایسه زده شده و قطعاً در حالت واقعی نه شخصی همه درآمد یک ماهش را پس انداز میکنه و نه کسانی که در زمینه وب و گرافیک کار میکنند درآمد ۱۵۰۰ دلاری یا ۱۷۴ دلاری دارند و قطعا از این بیشتره اما نسبتش در حالت متعادل همینه.

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

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

به هر حال قوانین در جوامع مترقی محترم هستند و باید رعایتشون کرد وگرنه هرج و مرج میشه و مشکلات جوامع عقب افتاده ریشه پیدا میکنند. خیلی از پیشرفت‌های تکنولوژی و نرم افزاری هم به خاطر همین بحث کپی رایت هست که البته این حرف من مغایرتی با نهضت سورس باز و GPL و غیره نداره و میشه از نرم‌افزار های معادل مثلاً در بحث ما Gimp استفاده کرد که خود من هم همین کار را انجام میدم.

پس اگه مشکل شما موضوع مالی وشرایط کشورتون نیست و کلاً به رعایت حقوق دیگران از جمله حق کپی رایت نرم افزارشون اعتقادی ندارید من با شما بحثی ندارم 😉 و میتونید برین توی تورنت و warez کیف کنین.

امن کردن سرویس SSH در میزبانی(Host) های اختصاصی VPS یا Dedicated

نویسنده:
۱۸ دی ۹۳

پس از خرید میزبانی اختصاصی ، اولین قدم برای مدیریت میزبانی اتصال به آن از طریق SSH یا همون Secure Shell هستش. اولین قدم برای امن کردن میزبانی هم به همین سرویس ssh بر میگرده.

به صورت پیش‌فرض برای ورود به سیستم عامل میزبان از نام کاربری root و کلمه عبورش استفاده میکنیم. اما استفاده از کلمه عبور اون هم در شرایطی که معمولاً همین کلمه های عبور به دلیل ضعفشون باعث هک شدن سرویس ما از طریق Brute Force (حدس زدن کلمه عبور از طریق هکر با استفاده از ربات ها) می‌شوند اصلاً عقلانی نیست.
بهترین راه برای امن کردن ssh استفاده از RSA key Pair هست. برای این کار کافیه روی سیستم خودتون از دستور زیر استفاده کنید :

ssh-keygen -t rsa

پس از زدن این دستور ، دو تا سؤال از شما میپرسه ، یکی اینکه کجا Private Key را ذخیره کنه که به نظر من بهتره توی ssh./~ ذخیره بشه و سوال دوم در مورد Passphrase هست که تعیین کردنش باعث میشه برای استفاده از اون Private Key به Passphrase نیاز باشه که حُسنش اینه کسی اگه فایل Private Key را داشته باشه (البته اهمیت RSA Key Pair اینه که کسی این کلید اختصاصی را نداشته باشه!) نیاز به Passphrase داشته باشه. و بدیش اینه در زمان استفاده در ارتباط با ssh سیستم از شما این Passphrase را میپرسه.

وقتی سؤالات را پاسخ دادین دو تا فایل در پوشه ای که تعیین کردیم ایجاد میشه ، یکی به صورت پیش‌فرض id_rsa و دیگری id_rsa.pub (البته اگه نام دیگری میگذاشتین نامش متفاوت بود). این فایل pub همون کلید عمومی هست که باید روی سِرور شما قرار بگیره. پس با استفاده از دستور زیر این کار را انجام میدیم :

ssh-copy-id root@host-ip-address

ssh از شما کلمه عبور root را میپرسه و بعدش پیامی مبنی بر موفقیت کار نشون میده و از شما میخواد بررسی کنید که همه چیز توی فایل ssh/authorized_keys./~ درسته.حالا بدون استفاده از کلمه عبور میتونیم از طریق ssh وارد سِرور بشیم.

یک قدم دیگه از کار هنوز باقی مونده ، ابتدا باید برای ssh تعیین کنیم که اجازه ورود با کاربر root را از طریق کلمه عبور نده و به طور کلی ورود از طریق کلمه عبور را ببندیم. پس توی فایلetc/ssh/sshd_config/ مقادیر زیر را تغییر میدیم :

PermitRootLogin without-password
PasswordAuthentication no

توجه: یادتون باشه تا مطمئن نشدین ورود از طریق RSA کار میکنه این تغییرات بالا را انجام ندین.

در آخر هم با دستور زیر ssh را restart میکنیم :

sudo service ssh restart

آیا در شغل برنامه نویسی و طراحی وب «همیشه حق با مشتری است» ؟

نویسنده:
۱۴ دی ۹۳

جمله «همیشه حق با مشتری» است اولین بار توسط اشخاصی همچون Harry Gordon Selfridge و John Wanamaker و Marshal Field مطرح شد و تا به امروز از دهان هر فروشنده و بازاریابی در همه جای دنیا از جمله کشور خودمون ایران شنیده میشود. من مدیریت بازاریابی و کسب و کار را در دانشگاه نخوندم اما تجارب و مطالعاتی در زمینه رشته فعالیت خودم یعنی برنامه نویسی و طراحی وب دارم که شاید برای خوانندگان این وبلاگ مفید باشه.

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

برنامه نویسی و طراحی وب به اندازه‌ای که تحت تأثیر پیشرفت‌های تکنولوژی هست و نیاز به مهارت و معلومات کافی از بحث User Interface تا SEO و Database Design و غیره داره اصلاً با دیدگاه سلیقه ای کارفرما مقاربت نداره و دخالت های نادرست کارفرما میتونه باعث لطمه های زیادی به وب سایت بشه که متأسفانه در دید کارفرما منطقی و درسته.

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

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

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

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