نابغه‌ای به نام ایلان ماسک

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

چرا هنوز از رابط متنی استفاده می‌کنیم؟

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

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

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

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

 

pip کنسول بازی برای آموزش کدنویسی به بچه‌ها

pip- پایپ کنسول بازی برای آموزش کدنویسی به بچه‌ها
pip- پایپ کنسول بازی برای آموزش کدنویسی به بچه‌ها

بنیاد پی‌آی رزپری پای از سال ۲۰۱۲ به بعد با ارائه کردن کارهای خلاقانه‌ای که توسط میکرو-کامپیوترهای ارزون قیمت انجام می‌شد، موفقیت زیادی به دست آورده. همچنین این بنیاد نسبت به استارتاپ‌های انگلیسی مثل Kano و Pi-Top بسیار خلاقانه عمل کرده، دستگاه‌هایی که در این استارتاپ‌ها استفاده می‌شوند کاملا مبتنی بر پی‌آی هستند.
الان زمونه یه ذره تغییر کرده، پی‌آی یه شرکت دیگه‌ای رو هم پشتیبانی می‌کنه در حقیقت یک استارتاپ دیگه انگلیسی. این ایده منجر به ساخت کنسول بازی به اسم Pip شده که یه تاچ اسکرین، اسپیکر، دکمه‌های کنترلی، پورت‌های مختلف و چیزهای دیگه‌ای رو شامل میشه.
هدف این کنسول بازی آموزش کدنویسی و شیوه فکر کردن به سبک یک برنامه‌نویس به بچه‌هاست، البته جدای از این، از یک پلتفرم آموزشی مبتنی بر مرورگر هم به اسم Curiosity بهره می‌بره. یه ویژگی خوب دیگه‌ش هم اینه که به افرادی که به سخت افزار علاقه دارند، یه سری امکانات داده که می‌تونن باهاش کار کنن، مثلا کارت توسعه‌هایی رو تهیه کنند و دستگاه‌شون رو بهتر کنند یا اینکه یه سری کانکتور بهش وصل کنن و از این اینجور چیزها.
تیم نرم افزاری این پلتفرم میگه که این دستگاه زبون‌های برنامه‌نویسی پایتون، جاوااسکریپت، HTML،CSS و پی‌اچ‌پی رو به خوبی پشتیبانی میکنه. توی این کنسول روند یادگیری قدم به قدم پیاده‌سازی شده یعنی اینکه بچه‌ها می‌تونن با انجام یه سری سرگرمی و قدم به قدم پیش رفتن مثلا یه بازی «مار» درست کنند یا اینکه یه فلش LED باحال رو برنامه‌نویسی کنند.
چیزی که Pip رو از هرچیز دیگه‌ای متفاوت نشون میده قابلیت توسعه اونه. یعنی شما می‌تونی کامپوننت‌های الکتریکی مختلفی رو از بیرون تهیه کنی و به دستگاهت اضافه ش کنی. از طرفی دیگه، قابلیت حمل‌ش آسونه و بودن قابلیتی مثل تاچ، کار با اون رو برای بچه‌ها ساده‌تر میکنه.
از این به بعد میگم پایپ :)) … پایپ از ابزارها و زبون‌های مهم و استانداردی پشتیبانی میکنه اما در آینده هم قراره موارد جدیدتری که منابع یادگیری زیادی دارند به این پلتفرم اضافه بشه.
یکی دیگه از هدف‌های این پلتفرم پر کردن فضای میان ایده و ساختن ایده است. یعنی اینکه شما کافیه ایده‌ای داشته باشید، بعد از اون ساختن‌ش براتون جذاب و باحال و ساده میشه.
سازنده پایپ گفته که در کوتاه مدت هدفمون از این پلتفرم خانواده‌ها و بچه‌ها هستند اما در طولانی مدت قصد داریم که پایپ رو به سمت محیط‌های آموزشی و آکادمیک ببریم تا بچه‌های بیشتری بتونن از این استفاده کنند.

توی آخر این نوشته اگه بخوام چیزی بگم این رو میگم که دستگاه خوش‌فرم و باحالیه. یادگیری رو برای بچه‌ها آسون‌تر می‌کنه، قابلیت ارتقا داره و می‌تونید مدارات مختلفی رو بهش وصل کنید. قابل حمله و شارژ خوبی رو هم نگه می‌داره. چی از این بهتر :))

pip- پایپ کنسول بازی برای آموزش کدنویسی به بچه‌ها با قابلیت ارتقا
pip- پایپ کنسول بازی برای آموزش کدنویسی به بچه‌ها با قابلیت ارتقا

 

باگ‌های سخت‌افزاری Spectre و Meltdown

باگ‌های تراشه سی‌پی‌یو

دو روز پیش بود که مطلب «در مورد باگ های اسپکتر و ملت‌داون مطالب دست اول بخونین» رو توی وبلاگ جادی -همه می‌شناسنش‌ یه آدم باحاله 🙂 – خوندم … یه سری باگ که مربوط میشه به مهمترین قسمت سخت افزاری یک کامپیوتر که اون هم سی‌پی‌یو هستش. توی لینکی که بالا گفتم جادی زحمت کشیده چند تا لینک خوب رو قرار داده.

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

اسم این دو تا باگ جدید Spectre و Meltdown هستش و سعی دارند که از طریق اون بتونن اطلاعات مهم رو از کاربران بدزدن، خب این کار چطوری صورت می‌گیره، برای اینکه این موضوع رو متوجه بشیم باید به یکی از تکنیک های بهینه سازی پردازنده ها اشاره کنیم به اسم Speculative execution … موضوع‌ش تقریبا پیچیده است اما اگه به صورت ساده بگیم، سی‌پی‌یو توی این تکنیک داره سعی می کنه که یکسری فرایند یا وظیفه رو قبل از اینکه فراخونی بشند از طرف کاربر، مستقلا آماده فراخونی‌ش کنه، مثلا میگه آقای ایکس هر روز ساعت ۸ فلان برنامه رو اجرا میکنه، خب من میام ساعت ۷:۵۹ برنامه رو اجرا می‌کنم -تقریبا- و اون رو راس ۸ زمانی که کاربر درخواست کرد سریع بهش میدم … خب حالا به این فکر کنید که اگه یه روز این مسئله ساعت ۸ توسط کاربر فراخونی نشه، خب در اون صورت اطلاعات به بخشی از حافظه توی حال کش شدن قرار می‌گیره، جایی که هیچ لایه امنیتی نداره … خب این موضوع چرا مهمه، از اونجایی این موضوع مهمه که توی این قسمت ممکنه اطلاعات ورود، کارت های اعتباری و… نگه داری بشه و این بدون هیچ امنیتی هستش! خب بازم مهم نیست، چون اون قسمت هیچ راه دسترسی نداره! و اینجاست اشتباه، این باگ‌ها دستگاه های متعددی از موبایل، تبلت، لپ‌تاپ، کامپیوترهای دسکتاپ و حتی کلود… رو در بر می‌گیره، خب این دستگاه ها در طول روز به صورت منابعی اشتراکی در سراسر اینترنت با همدیگه ارتباط برقرار می‌کنن پس یه روش برای دسترسی بهشون هست، این دو تا باگ به نفوذگر این امکان رو میده که بتونه وارد این دستگاه بشه و اطلاعات اون قسمت که کش شده یا بهتر بگیم -فضله یک پروسس انتظاری اشتباه «عجب اسم مزخرفی از خودم درآوردم» – بوده رو دریافت می‌کنه. به همین باحالی و فانی! انتظار میره که این موضوع توی سال ۲۰۱۸ یکی از داغ‌ترین موضوعات باشه برای موضوع دنیای امنیت و … . البته با این مثالی که من گفتم شاید ماجرا به صورت تئوری باشه. این ویدیو و این ویدیو کمی تکنیکی‌تر توضیح می‌دن.

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

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

۲- تعمیر دستگاه های فیزیکی به صورت ریموت معمولا کار خیلی دشوارتری نسب به یک نرم افزار هستش. بعضی وقت ها این حالت کاملا غیر ممکن میشه. برنامه های نرم افزاری که باگ دارن در نهایت دوباره نوشته میشن و توسط توسعه دهنده نسخه جدیدی ازش توی اینترنت منتشر میشه، اما خیلی وقت‌ها برای رفع یک باگ از یک تراشه سی‌پی‌یو نیازمند دوباره طراحی کردن اون هستش. شاید این حالتی باشه که برای رفع مشکل Meltdown و Spectre هم نیاز هستش. اجتناب کردن از خطرِ Meltdown شاید با بروزرسانی پچ سیستم عامل یا اینکه هسته سیستم عامل رو آپدیت کنیم شاید ممکن باشه اما این موضوع هم نمیتونه واقعا مسئله رو به درستی حل کنه.

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

منبع این قسمت آخر economist

 

 

Accessibility رو جدی بگیرید!

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

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

شما تصور کنید انجام یک کار ساده مثل قرار دادن خاصیت alt برای تصاویرتون می‌تونه تاثیر خیلی زیادی روی دسترسی‌پذیری وبسایت‌تون داشته باشه. خیلی موضوع ساده‌ای هستش پس. از این جهت خاصیت alt مهمه که برخی از افراد برای اطلاع از محتوای وبسایت از برنامه هایی مثل Screen Reader استفاده می کنن، چنین برنامه هایی متن‌های داخل یک صفحه رو برای کاربری که نابینا هست، می‌خونه، خب اگه این برنامه به یه تصویر برسه چی؟! میره اسم تصویر رو می‌خونه مثلا 1.jpg که کاملا بی مفهومه… ولی بجای این موضوع می تونید از خاصیت alt استفاده کنید که خیلی بهتر و جذاب‌تره!

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

 

compressor.io یه سرویس باحال 🙃

خیلی وقت‌ها هر روز می‌شنوم که از مشکلات کم بودن سرعت بارگذاری وبسایت بهینه نبودن تصاویر هستش! خب این موضوع به نظر باید تا الان حل می شد ولی خب هنوز حل نشده! برنامه‌های زیادی هستند که تصاویر رو برای استفاده در وب برای شما بهینه می کنند و اون رو کم حجم می کنند، ولی خب من به هیچکدومشون دسترسی نداشتم تا اینکه compressor.io رو پیدا کردم! واقعا سرویس خوبیه! 🤓

با استفاده از این سرویس می تونید به سادگی تصاویرتون رو آپلود کنید و نسخه کم حجم اون بدون افت کیفیت -در دورنما- رو دریافت کنید. البته مطمئنا افت کیفیت وجود خواهد داشت ولی خب در نگاه اول کسی متوجه‌ش نمیشه!

خب چرا همین الان وارد وبسایت compressor.io نمی شید و یه عکس رو آپلود نمی‌کنید؟ 😁

استفاده از فضای خالی در طراحی وبسایت

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

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

ادامه خواندن استفاده از فضای خالی در طراحی وبسایت

استفاده از Redshift

redshift Icon Arastoo.netمیگم، شما هم از اون آدم‌هایی هستید که صبح از خواب بیدار شده و تا شب به صفحه کامپیوترتون/لپ‌تاپ‌تون خیره می‌شید؟ خب اگه از اونایید باید بگم که درکتون می‌کنم. خیلی وقت‌ها لپ‌تاپ‌م بهم میگه داداشی جون هر کی دوست داری دیگه من رو خاموش کن! دارم میمیرم لامصب. خب من واقعا برام مهم نیست این رو ولی، چشمام رو خیلی دوست دارم. نگاه کردن به صفحه نمایش برای مثلا ۱۷ ساعت تو روز واقعا زیاده و سخته. پس چاره کار چیه!؟ خب می‌تونید یه آنتی‌رفلکس بخرید. از اون عینک‌هایی که در مقابل نور صفحه نمایش از چشماتون مراقبت می‌کنه، ولی خب این کافی نیست. یه تکنیک دیگه استفاده کردن از برنامه‌ Redshift هستش. شاید باور نکنید ولی در کل می‌گم واقعا از هر چیز دیگه‌ای بهتره. تکنیک‌های خاصی رو دنبال میکنه که با اون براساس محیط و نوری که در اطرفاتون هست درجه رنگ‌ صفحه‌تون رو تنظیم می‌کنه. خب این یه نکته سریع بود. برای استفاده از اون به این صفحه مراجعه کنید و مراحل نصب و … رو برای سیستم‌ عاملتون دنبال کنید. البته من چون روی گنو/لینوکس‌ی‌ها -UBUNTU- تعصب دارم می‌گم که نرید: دستور زیر رو اجرا کنید نصب میشه:

بعد از اون وارد قسمت اپلیکیشن‌هاتون بشید و Redshift رو انتخاب کنید، چند ثانیه وایسید خودش همه چیز رو درست میکنه. :))