سایت دولتی مالیات بر ارزش افزوده از شما می خواد از مرورگرهای قدیمی استفاده کنین

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

evat

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

مرتبط
ساخت سایت های دولتی در چه پروسه‌ای به کدوم شرکت‌ها داده می‌شه؟
موتورهای جستجوی ملی و کشوری ویران به اسم ایران
سایتی برای پیش‌شماره‌های استان‌های ایران
از شرمندگی‌های سیستم آموزشی ایران: سیستم جامع گلستان
– …

برنامه‌نویس‌ها در نقاشی‌های نقاشان کلاسیک

تامبلر نقاشی‌های کلاسیک از برنامه‌نویسان ایده جالبی داره که مطمئنا می تونه برای اکثر مخاطب‌های من بامزه باشه: تفسیر مرتبط با دنیای امروز برنامه نویسان نقاشی های کلاسیک. مثلا اینها:

ruby

«کارگران برنامه نویس در حال نگهداری اپلیکیشن مبتنی بر روبی آن ریلز»
– ارو یارنفلت. رنگ روغن روی بوم. ۱۸۹۳

return

«مدیر بخش مهندسی از جلسه بودجه باز می‌گردد»
– ایلیا رپین. رنگ روغن روی بوم. ۱۸۸۸

emacs

«ایمکس علیه ویم»
– گویا. ۱۸۲۰ تا ۱۸۲۳

javautil

«java.util.Date»
– سالوادور دالی. رنگ روغن روی بوم. ۱۹۳۱

root

«مدیر سیستم به یکی از توسعه دهندگان وب بر روی سرور پروداکشن دسترسی سودو می‌دهد»
– آندرآ دل وروچیو و لئوناردو داوینچی. رنگ روغن روی بوم. ۱۴۲۵ تا ۱۴۷۵

scala
«بازنمایی تصویری زبان برنامه نویسی اسکالا»
– هیرونیموس بش. رنگ روغن روی چوب بلوط. ۱۴۹۰ تا ۱۵۱۰
(پنل سمت چپ نمایشگر قابلیت‌های فانکشنال زبان، پنل اصلی سیستم تایپ و پنل سمت راست اجزای شئی گرای زبان را نشان می‌دهند)

توصیه می کنم بقیه تامبلر برنامه نویس ها در نقاشی های کلاسیک رو هم نگاه کنین. هم برای دیدن نقاشی های معروف خوبه هم برای لبخند زدن و یک لحظه گفتن «آره واقعا اینطوریه!».

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

return

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

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

یادتون نره که از نقاشی ها و شوخی های تامبلر برنامه نویس ها در نقاشی های کلاسیک لذت ببرین (:

نمایش کد با امکان اجرا در خروجی جستجوهای برنامه نویسی بینگ

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

python_dict_bing

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

تقسیم بر صفر در یک ماشین حساب مکانیکی

mechanicalzero

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

توی برنامه نویسی این برای ما یک ارور (یا نتیجه غیر عددی) است و توی ریاضیات چیزی خارج از حوزه اعداد اما اگر از یک ماشین حساب مکانیکی با چرخ دنده و غیره استفاده کنیم ماجرا چطوری می شه؟ این ویدئو نتیجه اینکاره

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

نتایج تجمیعی نظرسنجی گسترده وضعیت زندگی، شغلی، حقوقی و علاقمندی‌های برنامه‌نویسان ایران

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

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

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

در نظر سنجی گسترده وضعیت برنامه نویس ها و سیستم ادمین های ایران شرکت کنین

survey

چند سالی است که نمی دونم چرا هر بار آخر سال فکر می کنم باید یک نظرسنجی گسترده درست کنم تا از برنامه نویس ها در مورد خیلی چیزها سوال کنیم، ولی اینکار رو نمی کنم و بعد می گم «سال بعد». اما امسال بالاخره دست به عمل زدم و با همکاری و نظر یکسری از دوستان، یک پرسشنامه طراحی کردیم. ایده این پرسشنامه اینه که در مورد زندگی و شرایط کار برنامه نویس ها، توسعه دهنده ها و مدیر سیستم ها سوال بپرسه و بعد نتایج رو به شکل آزاد به همه بده. سوال ها در بخش های مختلفی (دموگرافیک، زندگی و کار) هستن. بزرگترین فایده اش این دو تا است:

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

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

البته برای پخش کردن می تونین فقط از لینک نظر سنجی استفاده کنین ولی توضیح اینکه چرا مهمه رو خوبه همراهش بنویسین: http://j.mp/itstatus1394

به روز رسانی: نتایج نهایی نظر سنجی بزرگ از برنامه نویسان و مدیر سیستم های ایران ۱۳۹۴ اینجا منتشر شدن

اکثر چیزها در مورد باگ نافرم جی لیب سی

glibc-exploit

یک باگ جدید و جدی توی glibc دیده شده. یک باگ خیلی جدی. کتابخونه سی گنو یا همون glibc یکی از بخش‌های بسیار مهم اکثر توزیع های لینوکس است. حالا یک باگ توی این کتابخونه هزاران برنامه لینوکس رو تهدید می کنه. این باگ نسبتا شبیه باگ سال گذشته GHOST است (CVE-2015-0235) که اجازه می داد از راه دور کدهایی روی ماشین اجرا بشه.

باگ فعلی (CVE-2015-7547) یک باگ سرریز استک (stack based buffer overflow)‌ است در بخش کلاینت دی ان اس glibc که وظیفه تبدیل کردن آدرس های قابل فهم برای آدم ها (مثلا jadi.net) به آی پی رو داره.

کلیت ماجرا

این مشکل وقتی دیده می شه که یک دستگاه دارای باگ سعی کنه به یک DNS سرور بدطینت ریکوئست بزنه و نتایج رو توی حافظه بذاره (تابع getaddrinfo). چیزی که دی ان اس سرور بدخواه بدجنس بر می گردونه ممکنه حاوی کدی باشه که کار مخربی می کنه و نشستنش توی حافظه – در سطرح تئوری – باعث اجراش خواهد شد. البته در عمل این اتفاق تقریبا غیر ممکنه چون انواع مکانیزمهای امنیتی جلوی اونو خواهند گرفت (شامل ASLR). حالت بعدی اینه که حمله کننده به شکل مرد میانی درخواست های دی ان اس رو خودش بر می گردونه و بینشون کدهای نامناسب درج می کنه.

چه کسانی مبتلا هستن

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

مشکل دقیقا کجاست

محققین گوگل می گن که بخشی از glibc که به دی ان اس ریکوئست می زنه مشکل داره. این مساله به جی لیب سی تذکر داده شده و اصلاح شده و همه باید آپدیت کنیم… حداقل در طول هفته آینده دائما آپدیت کنیم. مهندسین گوگل می گن:

جی لیب سی ۲۰۴۸ بایت برای استک الوک می کنه تا جواب دی ان اس از _nss_dns_gethostbyname4_r رو توش ذخیره کنه. جلوتر در تابع send_dg و send_vc اگر جواب بزرگتر از ۲۰۴۸ بایت باشه، بافر جدیدی درست می شه و پوینترها آپدیت می‌شن. در شرایط خاص ناهماهنگی بین بافر استک و تخصیص دهی جدید هیپ پیش می یاد و نتیجه این می شه که بافر استک برای ذخیره کردن جواب دی ان اس استفاده می شه، حتی در مواقعی که جواب بزرگتر از اندازه این بافر باشه. این مساله موجب اورفلوی بافر استک می شه.

(فارسی گفتن اینها عجیب می شه. متن اصلی اینجاست).

اثبات شده

سه شنبه مهندس گوگل فرمین سرنا یک اکسپلویت برای اثبات این مساله منتشر کرد. با استفاده از این اثبات مفهوم می شه چک کرد که آیا برنامه های ما در مقابل این مشکل صدمه پذیر هستن یا نه (هستن!).

اصلاح

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

آیا من و شما در خطریم؟

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

نکته باقیمانده

به سادگی در کامنت ها مطرح کنین و سعی می کنم در سطح سواد و وقت جواب بدم و بقیه رو هم می سپریم به دوستان باسوادتر در کامنت ها (: