ادوارد اسنودن فراموش کرد که ایمیلهای توییتر را خاموش کند و ۴۷ گیگابایت اعلان دریافت کرد.
«ادوارد اسنودن» (Edward Snowden)، هکری که اسناد محرمانهی آژانس ملی امنیت آمریکا را افشا کرد، چند روز پیش به توییتر ملحق شد و حساب کاربری ترک گفتهاش Snowden@ را پس گرفت. هنوز چیزی از بازگشت این مرد خبرساز نگذشته که او در این مدت ۴۷ گیگابایت ایمیل اعلان دریافت کرده است. اسنودن فراموش کرده بود که دریافت ایمیلهای اعلان را غیرفعال کند.

همانطور که انتظار میرفت ادوارد اسنودن بلافاصله تحت آماج دنبال کنندگان، پاسخها، علاقهمندیها، ریتوییتها و پیامهای مستقیم قرار گرفت. در کمتر از یک ساعت او بیش از ۸۰ هزار دنبالکننده داشت. اعلان تک تک این موارد هم به حساب ایمیل او فرستاده شد. اسنودن در حال حاضر ۱٫۲۶ میلیون دنبالکننده دارد که همینطور رو به افزایش است. اولین توییت او ۱۱۰ هزار بار محبوب و ۱۲۰ هزار بار ریتوییت شده است. خوشبختانه گوشی او در حالت بیصدا قرار داشت.
او در توییتر خود پست کرد:
“من فراموش کردم که دریافت اعلانها را خاموش کنم. توییتر برای هر دنبالکننده، محبوب، ریتوییت و پیام مستقیم ۴۷ گیگابایت ایمیل فرستاده است. #lessonlearned”
منبع: Twitter

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

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

DNA ابزار بسیار مفید و خارقالعادهای برای ذخیرهسازی اطلاعات به حساب میآید و اگر بتوانیم از آن به عنوان درایو ذخیرهی داده استفاده کنیم، انقلابی در صنعت ذخیرهسازی به وجود میآید. چرا که مقدار کوچکی از این مادهی بیولوژیکی میتواند حجم بسیار عظیمی از داده را در خود نگه دارد و علاوه بر آن طول عمر بسیار زیادی هم دارد. سه هفته پیش، گروهی از متخصصان و کارشناسان در ویرجینیا گرد هم آمدند و دربارهی امکان و شرایط استفاده از DNA به عنوان درایو ذخیرهسازی اطلاعات به گفت و گو نشستند. به مرور زمان نیاز به ذخیرهسازی اطلاعات به خصوص در حوزهی زیستپزشکی، بیشتر میشود و دی ان ای مخزن نویدبخشی برای ذخیرهی دادهها به نظر میرسد.
در جریان این نشست، حضار به این نتیجه رسیدند که هدف بلندپروازانهی ساخت نمونهی اولیه برای دستگاه ذخیرهسازی از نوع DNA طی پنج تا هفت سال آینده ممکن میشود. حالا به نظر میرسد که این افراد کمی محافظهکارانه تصمیم گرفتهاند. روز گذشته، محققان مایکروسافت و دانشگاه واشنگتن اعلام کردند که در میزان ذخیرهی داده در رشتههای مصنوعی DNA رکورد جدیدی به ثبت رساندند.
این تیم تحقیقاتی در حجم بسیار کوچکی از DNA (کوچکتر از نوک یک مداد) ۲۰۰ مگابایت داده ذخیره کردند. این حجم از داده ۱۰۰۰ برابر ظرفیت ذخیرهسازی DNA در سال گذشته است. مایکروسافت در بیانیهای مطبوعاتی گفت: «تصور کنید که کل دادههای یک پایگاه دادهی بزرگ در چند حبه قند فشرده شود یا اینکه تمام دادههای روی اینترنت برای عموم قابل دسترسی هستند، درون یک جعبهی کفش جا شوند.

پیشتر در مقالهای به معرفی مهمترین زبانهای برنامهنویسی پرداختیم و اشاره کردیم که از هرکدام در چه قسمتی میتوان استفاده کرد. نکتهای که لازم است در ابتدای این مقاله به آن اشاره کنیم این است که هدف ما تنها کمک به علاقهمندان برای انتخاب یک زبان برنامهنویسی مناسب با توجه به انتظارات، اهداف و علاقهمندیها است. بنابراین هیچگاه به این نکته نخواهیم پرداخت که کدام زبان بهتر از دیگری است. هنگامیکه بخواهید یک زبان برنامهنویسی را بهصورت جدی ادامه دهید، برنامهنویسی تمام زندگی شما خواهد شد. بنابراین برای انتخاب یک زبان برنامهنویسی باید از ابعاد مختلف آن را برسی کنید. در این مقاله ما زبانهای برنامهنویسی را در سه زمینهی فرصتهای شغلی، جامعهی استفادهکنندگان و آیندهی آن زبان برنامهنویسی با هم مقایسه میکنیم تا شما بتوانید بهترین انتخاب را برای خود داشته باشید. در ادامه با دیجیکالا مگ همراه باشید.
فرصتهای شغلی یکی از فاکتورهای مهم برای انتخاب و ادامهی کار روی یک زبان برنامهنویسی هستند. نمودار زیر نشاندهندهی میانگین دستمزد برنامهنویسان هر زبان برنامهنویسی در سال ۲۰۱۶ است.

این نمودار نشان میدهد که برنامه نویسان «سوییفت» (Swift) بیشترین درآمد را در مقایسه با سایر برنامه نویسان دارند. همچنین برنامهنویسان C++/C ،Python ،Ruby و JAVA از لحاظ میزان درآمد در مقامهای بعدی قرار میگیرند. طبق این نمودار اگر میزان درآمد برای شما اهمیت بالایی دارد، احتمالا زبانهایی مثل #C، جاوا اسکریپت، PHP و SQL انتخاب خوبی برایتان نخواهند بود. البته همواره باید بازار کار کشوری که در آن مشغول بهکارید را در نظر بگیرید.
میانگین حقوق تحت تاثیر مواردی مانند میزان تقاضا (تعداد شغلهای مورد نیاز)، میزان عرضه (تعداد برنامهنویسانی که توانایی کدنویسی با آن زبان را دارند) و میزان تجربه (قاعدتا یک برنامهنویس تازهکار میزان درآمد کمتری در مقایسه با یک برنامهنویس حرفهای خواهد داشت) است. بنابراین این ایدهی خوبی است که قبل از تصمیمگیری عجولانه در انتخاب یک زبان برنامهنویسی، کمی عمیقتر به این مورد بپردازیم.
نمودار زیر میزان تقاضا برای مشاغل برنامهنویسی است. همانطور که میبینید زبانهای برنامهنویسی C ،SQL ،Java و جاوا اسکریپت معمولا در آگهیهای استخدام بیشترین میزان تقاضا را از جانب کارفرماها دارند.
اگر هدفتان از یادگیری برنامهنویسی کار در یک استارتاپ است، احتمالا اطلاعات ارایهشده از طرف سایت indeed.com برایتان مناسب نخواهد بود؛ زیرا این وبسایت آگهیهای استخدام در سازمانهای غیر استارتاپی را ارایه میکند. برای مقایسهی صحیح در این مورد به سراغ وبسایت angel.co رفتیم که جزو بزرگترین وبسایتها برای استارتاپها به شمار میرود.

همانطور که مشاهده میکنید جاوا اسکریپت در بین استارتاپها هم طرفداران زیادی دارد. اما در مورد سایر زبانها اوضاع کمی متفاوت است. برخلاف نمودار قبلی که از سایت indeed.com استخراج شده بود، در این نمودار زبانهای Python و Ruby از سایر زبانها میزان تقاضای بیشتری دارند.
هماکنون شما ایدهای در مورد میزان عرضه و تقاضا برای زبانهای برنامهنویسی دارید. اجازه دهید که میزان دریافتی برای هر کدام از زبانهای برنامهنویسی را بررسی کنیم. این اطلاعات از وبسایت Gooroo.io استخراج شدهاند.
به نظر میرسد که بیشترین میزان دستمزد، به برنامهنویسان جاوا اسکریپت اختصاص دارد. اما باید به این نکته اشاره کنیم که جاوا اسکریپت یک نمونهی خاص به شما میرود که در ادامه به آن خواهیم پرداخت. با کمی دقت در این نمودار به این نتیجه خواهید رسید که زبانهای C++ ،Python و Ruby در مقایسه با سایر زبانها حقوق بیشتری دارند. از طرفی هم زبانهای Python ،Ruby و Objective-C / Swift بیشترین پتانسیل برای دریافت دستمزد را دارا هستند.
اما ذکر یک نکته دربارهی جاوا اسکریپت بسیار با اهمیت است؛ جاوا اسکریپت، یک نمونهی خاص در تمامی مقایسهها به شمار میرود. مقایسهی جاوا اسکریپت با سایر زبانها دربارهی میزان درآمد نادرست است. جاوا اسکریپت یک دستهی بزرگ از تکنولوژیها را شامل میشود. تعداد زیادی از فریمورکها برای آسان کردن توسعهی رابط کاربری بهوسیلهی جاوا اسکریپت ارایه شدهاند. بنابراین اگر شما فقط جاوا اسکریپت و جیکوئری (jQuery) را بدانید احتمالا درآمد کمتری در مقایسه با توسعهدهندگانی که یک فریمورک جاوا اسکریپتی را میدانند، خواهید داشت.
نمودار بالا میانگین میزان درآمد توسعهدهندگان فریمورکهای مختلف جاوا اسکریپتی را نشان میدهد.
داشتن منابع خوب که بتوانند پشتیبانی خوبی ارایه کنند، در یادگیری برنامهنویسی بسیار مهم است. وجود یک جامعهی پشتیبان زندگی در این دنیا را برای شما آسانتر خواهد کرد.
وبسایت StackOverflow شامل یک جامعهی فعال و بزرگ از توسعهدهندگانی از سراسر جهان است. در اینجا توسعهدهندگان اگر جواب سوالی را بدانند به آن پاسخ میدهند و اگر سوالی داشته باشند بهراحتی میپرسند تا دیگران به آن پاسخ دهند.
محبوبیت زبان: با توجه به دنبال کنندگان تگها در StackOverflow میتوانیم میزان محبوبیت یک زبان در این وبسایت را متوجه شویم.

از قبل میدانستیم که تقاضاها برای زبانهای جاوا و جاوا اسکریپت بیشتر از سایر زبانها است. بنابراین آمار ارایهشده از طرف StackOverflow که نشاندهندهی بالاترین میزان محبوبیت در این دو زبان است، باعث تعجب ما نخواهد شد. زبانهای SQL ،Ruby و Swift هم کمترین تعداد دنبالکنندگان تگ را در این سایت دارند.
میزان پاسخهای ارسالشده در StackOverflow: همانطور که در نمودار زیر دیدید، با وجود اینکه تعداد کمی از کاربران سایت StackOverflow زبانهای C ،SQL و ++C را دنبال میکنند، اما بیش از ۶۰ درصد سوالهای پرسیدهشده در بخش مربوط به این زبانها پاسخ داده شدهاند.

البته باید به این نکته توجه شود که زبانهای C و ++C جزو زبانهای پیشرفته هستند و برنامهنویسان آنها افرادی هستند که تجربهی بالایی در برنامهنویسی دارند.
در معرفی مهمترین زبانهای برنامهنویسی به شما پیشنهاد کردیم که از وبسایت «گیت هاب» (GitHub) برای مشارکت در پروژههای دیگران استفاده کنید. در زیر اطلاعاتی از وبسایت گیت هاب استخراج شده است که نشاندهندهی میزان محبوبیت زبانهای برنامهنویسی با توجه به پروژههای ایجاد شده در این سایت است.
همانطور که از نمودار بالا برمیآید جاوا اسکریپت بیشترین میزان محبوبیت در لیست پروژههای بزرگ (بالای هزار ستاره در گیت هاب) را دارد. این چیز عجیبی نیست زیرا از جاوا اسکریپت در بسیاری از زبانهای دیگر مانند PHP، جاوا، پایتون، روبی و غیره استفاده میشود.
آیندهی یک زبان برنامهنویسی به عواملی مانند تعداد افراد در جامعهی استفادهکننده از آن، میزان جذابیت آن برای تازهکارها و قدرت آن زبان برنامهنویسی در مقایسه با سایر زبانها بستگی دارد. نمودار زیر میزان جستوجوی کاربران طی سالهای ۲۰۱۴ و ۲۰۱۵ درباره هرکدام از زبانهای برنامهنویسی در موتور جستوجوی گوگل را نمایش میدهد.

همانطور که مشاهده میشود زبانهای پایتون، جاوا اسکریپت، سی شارپ و سوییفت بیشترین میزان رشد را داشتهاند.