قرعه کشی کتاب «مصائب من در حباب استارتاپ»

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

➜  /tmp wc -l book.csv 
115 book.csv

خب ۱۱۵ نفر شرکت کننده‌داریم پس نیازمند یه عدد رندم بین ۱ تا ۱۱۵ هستیم. چیزی که خیلی‌ها توش بش بهش برنخوردن، متغیر RANDOM$ است که به شما یه عدد رندم بین ۰ تا ۳۲۷۶۷ می‌ده. ما عددی بین ۱ تا ۱۱۵ نیاز داریم پس کافیه باقیمونده‌اش به ۱۱۵ رو بگیریم (که می شه عددی بین صفر تا ۱۱۴) و بعد یکی بهش اضافه کنیم. سه بار اجراش می‌کنم و سومین عدد رو برنده اعلام می‌کنم. اینطوری تا حدی مطمئن‌تر هستم که درست کار می‌کنه:


➜ /tmp echo $((1 + $RANDOM % 115))
89
➜ /tmp echo $((1 + $RANDOM % 115))
1
➜ /tmp echo $((1 + $RANDOM % 115))
73

نفر ۷۳ برنده است. اما کیه؟ خط ۷۳ فایل رو می‌بینیم:

➜  /tmp sed -n '73p' book.csv
11/21/2020 22:19:01,y,y,y,y
➜  /tmp sed -n '1p' book.csv
11/21/2020 13:03:55,وحید,vahid*****@gmail.com,8,در یوتیوب - Vahid ****

هاه نفر ۷۳ اطلاعات الکی پر کرده بود… نفر قبل رو چک کردم و برنده کتاب مصائب من در حباب استارتاپ، وحید است (: مبارک باشه. باهات تماس می‌گیرم برای آدرس.

خوندن پسورد با پایتون

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

getpass.getpass('password:')

صداش بزنین، می‌نویسه passwrod و منتظر می‌مونه ورودی بدین. بعد بدون اینکه رو صفحه چیزی نشون بده، بعد از زدن انتر ورودی رو برمی‌گردونه. نسبتا بی‌مزه ولی کارا. برای بامزه‌تر کردنش، کتابخونه stdiomask رو داریم:

import stdiomask

stdiomask.getpass(prompt = 'Password: ')

که خب می‌پرسه پسورد و به جای چیزهایی که شما وارد می کنین، * می‌ذاره یا می‌تونین با پارامتر mask بهش بگین چی‌بذاره.

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

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

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

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

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

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

دوره من که خب هیچ چیز غیرمجازی توش نیست. اگر هم بحث اینه که با این ابزارها می شه کار غیرمجاز هم کرد که خب چرندی در حد اینه که چاقو ممنوعه چون می شه باهاش آدم کشت (: اما…

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

رادیوگیک – ۱۱۲ – بی‌خبری، خوش خبری

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

با این لینک‌ها مشترک رادیوگیک بشین

و البته ایده جدید که اگر توشون سابسکرایب کنین / مشترک بشین یا هر چی بهش میگن، خوشحال می شم (:

اخبار

اعماق

رادیوگیک – شماره ۱۱۱ – آرمتو بیار جلو

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

با این لینک‌ها مشترک رادیوگیک بشین

و البته ایده جدید که اگر توشون سابسکرایب کنین / مشترک بشین یا هر چی بهش میگن، خوشحال می شم (:

اخبار

در اعماق

لینک‌های شاد دوشنبه اخر ماه – آبان ۹۹؛ پر و پیمون

خب ماه گذشته یادم رفت بنویسم و این ماه خیلی پر و پیمون شد. این شما و این هم سهم این ماه تریبون من و تلاشش برای پربارتر کردن مطالب وب فارسی و دنیای برنامه نویسی اطرافمون و بهتر کردن جامعه (: با پیگیری و نشون دادن کارهای خوب، می تونیم بهشون لابلای اینهمه مهمل امید بدیم (:

کد

داده

  • رضا شرفی هم از روی آگهی های کار، تحلیلی کرده روی نیازمندی های بازار کار کامپیوتر در ایران. مثل اینکه چی پر درخواست تره و چی پردرآمدتر. احتمالن دیدنش می تونه براتون جالب باشه
  • امیر هم دیتاست کلمات بد فارسی اش رو گذاشته روی گیت‌هاب. کار خیلی مفیدی است چون تو کلی پروژه ممکنه به درد بخوره. اگر فحش مناسب دیگه ای هم بلدین براش بنویسین (:

محتوا

سایت

رادیوگیک – شماره ۱۱۰ – بزرگترین سرقت بانک تاریخ، لازاروس علیه بانک مرکزی بنگلادش

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

و البته این هفته که برگشتم رو لینوکس، می تونن با تغییر پسوند نسخه ogg رو هم دانلود کنین (:

با این لینک‌ها مشترک رادیوگیک بشین

و البته ایده جدید که اگر توشون سابسکرایب کنین / مشترک بشین یا هر چی بهش میگن، خوشحال می شم (:

منابع

  • https://www.justice.gov/opa/pr/north-korean-regime-backed-programmer-charged-conspiracy-conduct-multiple-cyber-attacks-and
  • https://news.abs-cbn.com/business/01/10/19/ex-rcbc-manager-deguito-found-guilty-of-money-laundering
  • https://nsarchive2.gwu.edu/dc.html?doc=5736655-National-Security-Archive-Bangladesh-Bank-vs
  • https://www.bloomberg.com/news/features/2017-08-03/a-baccarat-binge-helped-launder-the-world-s-biggest-cyberheist
  • https://darknetdiaries.com/episode/72/

جمعه‌های نرم افزار آزاد و بازمتن؛ شما هم می‌تونین بخشی از این دنیای حرفه‌ای باشین

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

اما از کجا شروع کنیم؟ از فردا؟ احتمالا خیلی‌هامون ماه‌ها یا حتی سال ها است که قراره از فردا اینکار رو شروع کنیم. اما یه ایده بهتر هم هست: از همین جمعه شروع کنیم! از امروز مثلا (: یا مثلا از پنجشنبه. توی دنیا برنامه‌ای هست به اسم جمعه‌ها با اوپن سورس که تشویق می‌کنه آدم‌ها بخشی از روز جمعه که می‌شه آخرین روز کاری‌شون رو به کمک به نرم‌افزارهای آزاد اختصاص بدن. پیشنهاد اینه که برین سراغ پروژه‌هایی که براتون جالبه و سورسشون رو روی گیت‌هاب پیدا کنین و اونها رو فالو کنین. ایشوها رو ببینین و اگر چیزی به نظرتون جالبه سعی کنین برای خودتون حلش کنین. اگر تا حدی موفق بودین می تونین زیر ایشو بگین دارین چیکار می کنین و پیش برین. معلومه که اصل اول اینه که پرمدعا و اسپم نباشیم. واقعا دنبال یاد گرفتن باشیم و همکاری کردن و لذت بردن ازش. من اگر بخوام رو چیزی کار کنم اول سعی می کنم مساله رو حل کنم .. مثلا تا ۷۰٪ و بعد تازه بگم که علاقمند به کار روی این ایشو هستم و اگر موافقت شد نشون بدم که دارم چیکار می‌کنم.

برای شروع می‌تونین سراغ باگ‌های ساده‌تر برین. مثلا توی ایشوها دنبال چیزهایی مثل good for beginners بگردین یا حتی با استفاده از سایت‌هایی مثل Up for Grab (میوه آماده چیدن) ایشوها و باگ‌ها و مشارکت‌های مناسب برای تازه کارها رو پیدا کنین. اگر هم دنبال پروژه‌های حرفه‌ای تر هستین یک ایده خوب اینه که کامیت‌ها رو نگاه کنین و ببینین مشکلات قبلی رو آدم‌های حرفه‌ای تر چطوری حل می کنن. اینطوری هم با پروژه و کدش آشناتر می‌شین و هم شیوه کار بقیه رو می‌بینین و کم کم پترن‌ها براتون آشناتر می‌شه.

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

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