برو به محتوای اصلی

سالار کابلی
سالار کابلی
۱٬۶۱۸
برنامه‌نویس.

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

آیا از سالار کابلی سوال دارید؟

همین الآن عضو شو و به صورت ناشناس یا عمومی سوالتو از سالار کابلی بپرس!

سالار کابلی
سالار کابلی ،برنامه‌نویس.

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

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

سالار کابلی
سالار کابلی ،برنامه‌نویس.

معمولا با این گوشی‌ها می‌تونید با پذیرش هتل یا اورژانس تماس بگیرید. ممکنه دستمال توالت تمام شده باشه یا برای سلامتی شما مشکلی پیش بیاد و نیاز به کمک داشته باشید.

سالار کابلی
سالار کابلی ،برنامه‌نویس.

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

سالار کابلی
سالار کابلی ،برنامه‌نویس.

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

شاید دانشگاه کمک کنه که برنامه‌نویس بهتری بشید یا بهتر فکر کنید، ولی از نظر من دانشگاه به تنهایی نمی‌تونه شما رو برنامه‌نویس خوبی کنه.

سالار کابلی
سالار کابلی ،برنامه‌نویس.

ساعت ۹ میرم سر کار روزانه‌ام تا ساعت ۵. بعدش برمیگردم خونه و شروع می‌کنم به کار روی پروژه‌های شرکت خودم. بعدش با همسرم شام می‌خوریم و ۱-۲ قسمت سریال می‌بینیم و بعد شروع می‌کنم به کار روی پروژه‌های اوپن‌سورس تا حدود ساعت ۱۱:۳۰ شب. از ۱۱:۳۰ تا ۱۲:۳۰ کتاب صوتی گوش می‌دم و می‌خوابم. 

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

خرید رو هم معمولا سر راه وقتی دارم برمی‌گردم خونه انجام می‌دم.

سالار کابلی
سالار کابلی ،برنامه‌نویس.

سه تا از کتاب‌هایی که من خیلی دوست داشتم و پیشنهاد می‌کنم بخونید اینا هستن:

  1. Sapiens: a brief history of humankind
  2. Homo Deus
  3. The subtle art of not giving a f*ck
سالار کابلی
سالار کابلی ،برنامه‌نویس.

من که بیرون ایران زندگی می‌کنم، از لحاظ قانونی امکان استفاده از نرم‌افزار کرک شده رو ندارم. چون ممکنه ISP خبردار بشه و برام دردسر زیادی درست بشه.

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

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

سالار کابلی
سالار کابلی ،برنامه‌نویس.

قانون حفاظت از اطلاعات (General Data Protection Regulation) یا GDPR قانون جدیدی است که اتحادیه اروپا سال ۲۰۱۶ تصویب کرد و روز ۲۵ مه ۲۰۱۸ اجرایی می‌شه، و شرکت‌های دنیا تا اون تاریخ باید امکانات لازم برای اجرای این قانون رو داشته باشند.

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

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

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

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

اطلاعات کامل در مورد GDPR۲۱۱

سالار کابلی
سالار کابلی ،برنامه‌نویس.

صاحب شرکت گوگل شرکت Alphabet است. شرکت Alphabet بعد از تغییر ساختار سازمانی گوگل به وجود اومد. موسسین آلفابت، لَری پیج (Larry Page) و سرگی برین (Sergey Brin) هستند.

سالار کابلی
سالار کابلی ،برنامه‌نویس.

مای (My) اسم دختر Michael "Monty" Widenius بنیان‌گذار MySQL است. و SQL هم که به معنی Structured Query Language است.

شرکت جدید مانتی، MariaDB است و ماریا اسم دختر دیگر مانتیه. مانتی یه پروژه دیگه هم در سوئد داشت به اسم MaxDB که در اون هم مکس اسم پسرشه.

سالار کابلی
سالار کابلی ،برنامه‌نویس.

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

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

مسترکارت و ویزا، کارت‌های Debit و کارت‌های Credit دارن. در زمینه دبیت (پولی که در حساب شما هست) هر دو یکسان هستن و تقریبا هیچ تفاوتی با همدیگه ندارن. چون شما وقتی پرداختی انجام می‌دید مسترکارت و ویزا اون رو از حساب نقدیتون کم می‌کنن. ولی در زمینه کردیت (پولی که شما ندارید و در واقع از بانک قرض می‌گیرید) مسترکارت و ویزا تفاوت‌هایی باهم دارن. مثلا نوع گارانتی‌ها و بیمه‌هایی که این دو دارن در کشورهای مختلف با هم فرق می‌کنه. مثلا ممکنه مسترکارت در بیشتر کشورهای اروپایی بیمه کامل سفر به شما بده ولی ویزا اینکارو نکنه یا برعکس. و یا مسترکارت با بعضی از فروشنده‌ها قرارداد ببنده و اگر کسی از اون فروشنده‌ها با کردیت‌کارت مسترکارت خرید کرد ۲۰٪ تخفیف بگیره و... 

سالار کابلی
سالار کابلی ،برنامه‌نویس.

نُدجی‌اس یک ماشین مجازی (vm) برای کامپایل و اجرای جاواسکریپت است. جاواسکریپت به صورت پیش‌فرض برای اجرا در محیط مرورگرها که خودشون در واقع یک ماشین مجازی هستن طراحی شده بود و در محیط سرور نمی‌شد از جاواسکریپت استفاده کرد. سال ۲۰۰۹ پروژه نُدجی‌اس کلید خورد که در اون پروژه امکان اجرای جاواسکریپت در محیط سرور هم فراهم شد. این امکان الان وجود داره که شما یک کد واحد رو هم در سمت کاربر در مرورگر اجرا کنید و هم در سمت سرور روی ماشین مجازی نُد.

اینکه چرا ما میخوایم از نُد استفاده کنیم دلایل متعددی داره:

  • برخلاف پی‌اچ‌پی و زبان‌های تفسیری دیگه که مفسر از بالا به پایین در کد حرکت می‌کنه و اون رو اجرا می‌کنه، کد جاواسکریپت به صورت کلی تفسیر می‌شه و بعد در حالت اجرا می‌مونه. این به شما اجازه میده که کدی بنویسید که به اتفاقات خارجی واکنش نشون بده. مثلا به درخواست‌های شبکه گوش بده یا با استفاده از یک تایمر، یک قطعه کد رو اجرا کنه در بازه‌های زمانی مشخص. کد جاواسکریپت می‌تونه همیشه در حال اجرا بمونه تا زمانی که ازش بخواید که به کار خودش پایان بده. در مورد Event Loop نُد بیشتر بخونید۳۲.
  • برخلاف زبان‌هایی مثل جاوا و پی‌اچ‌پی و پایتون و... کد جاواسکریپت با وجود نُد می‌تونه یک بار نوشته بشه و هم در سمت مرورگر و هم سمت سرور عینا اجرا بشه و طبق شرایط محیطی که در اون اجرا میشه خودش رو تغییر بده و بهینه‌تر کنه.
  • یادگیری و برنامه‌نویسی با جاواسکریپت به مراتب آسان‌تر از زبان‌هایی مثل جاوا است و اگر شما جاواسکریپت بلد باشید می‌تونید به عنوان یک برنامه‌نویس Fullstack فعالیت کنید. در حالی اگر فقط جاوا یا فقط پی‌اچ‌پی بلد باشید، فقط می‌تونید سمت سرور برنامه‌نویسی کنید.
سالار کابلی
سالار کابلی ،برنامه‌نویس.

موثرترین و سالم‌ترین راه جلوگیری از بارداری، استفاده از کاندوم است. با اینکه کاندوم ۱۰۰٪ جلوی بارداری ناخواسته رو نمی‌گیره، ولی این روزها میزان پیشگیری کاندوم در حد ۹۹٪ است (اگر برندهای معتبر خریداری بشود). کاندوم علاوه بر اینکه بی‌خطر و ارزان است، از بروز بیماری‌های مقاربتی هم جلوگیری می‌کند.

سالار کابلی
سالار کابلی ،برنامه‌نویس.

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

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

سالار کابلی
سالار کابلی ،برنامه‌نویس.

بله. احتمال انقراض نوع بشر هست.

دو دلیل داره این نظر من:

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

شما قبل از اینکه بخواید سمت اسمبلی برید، باید علوم کامپیوتر رو به صورت پایه‌ای یاد بگیرید. باید بفهمید که کامپیوترها چطور محاسبه می‌کنن و چطور برنامه‌هایی که ما می‌نویسیم رو می‌فهمن. برای یاد گرفتنش، کتاب The Imposter's Handbook۳۲ رو پیشنهاد می‌کنم که اکثر مفاهیم اصلی رو خیلی ساده و عالی توضیح داده.