رادیو گیک شماره ۵۲ – پر پرواز

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


آر اس اس رادیو گیک

اپلیکیشن اندروید رادیو گیک

رادیو گیک در آیتونز

رادیو گیک در ساوند کلاود

اپلیکیشن iOS

اخبار

دوران خوب برای دانشمندان داده
صحبت در مورد دانشمندی داده و بیگ دیتا

بیگ دیتا

گارتنر توی گزارش چرخه های هایپ،‌ می گه که شغل های مرتبط داده‌های بزرگ در حال از دست دادن هایپ هستن [توضیح خودم] ولی با وجودی که دیگه مد داغ روز نیستن، تعداد شغل ها داره بیشتر می شه و حقوق هم داره بالاتر می ره و بالاترین جایزه ها رو هم دارن. حقوق یک تازه وارد حدود ۹۱هزار دلار تخمین زده می شه و یک آدم حرفه ای حدود ۲۵۰هزار دلار در سال می گیره.

دعوا سر دامین دات ساکس

sucks

خب این یک جور فحش سبک است در انگلیسی. چیزی شبیه به *یده. مثلا می گن why linux sucks یعنی چرا لینوکس گند زده و مثلا می گن چون ممکنه بعد از آپدیت دیگه بالا نیاد (: درست غلطش با خودشون. یا ما می گیم why windows sucks و می گیم چون ابزارهای گنو مثل grep و غیره رو نداره. حالا شرکتی به اسم vox populi در یک ایده جنجالی و طبق قانون جدید ICANN که می تونیم به جای دات کام و دات نت و .. پول زیادی بدیم و دات فلان رو بخریم و بعد زیرش دامین تعریف کنیم (مثلا یک شرکت دات نینجا رو خریده و من می تونم برم ازش جادی دات نتینجا رو بخرم) رفته دامین اصلی sucks. رو خریده
و روش دامین می فروشه. حالا دعوا چیه؟ قیمت گذاری! این شرکت گفته دامین های دات ساکس رو از قیمتی به ارزونی ۲۰۲۴ دلار تا گرونی نزدیک چهار میلیون دلار خواهد فروخت. معلومه که مثلا مایکروسافت باید بره چهار میلیون دلار بده دامین رو بخره که یکی دیگه نخره یا اپل یا بقیه شرکت ها و عملا این ایده داره از هر شرکت بزرگ باج گیری می کنه که چهار میلیون دلار بدن که فلان دات ساکس در اینترنت دست مخالفان نباشه. یک نامه از طرف ICANN اعلام کرده اینکار درست نیست و خلاف قوانین است و از اونطرف CEO این شرکت نوشته که هیچ قانونی رو نقض نکردن و اتفاقا خیلی هم دوست دارن اینترنت جای خوبی باشه. دعوا داره و گفتم خبر دار باشین اگر لازمه و چند میلیونی اضافه دارین، دامین دات ساکس خودتون رو بخرین که دست دشمن ها نیافته ( آهنگ دشمن)

ویندوز ده آخرین شماره ویندوز است؟

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

مبلغ دولوپرها

پیام صادری عزیز توجمهون رو جلب کرده به اصطلاحی تحت عنوان Developer Evangelist

داشتم توی سایت دیجیتال اوشن میگشتم و افرادی که در اونجا کار می‌کنن رو بررسی می‌کردم. بر خوردم به خانمی به اسم Erika Heidi برخودم با عنوان شغلی بسیار جالب Developer Evangelist.
برام جالب بود و عنوانش رو توی اینترنت سرچ کردم و رسیدم به این سایت که یک جوری کتاب راهنما هست برای این شغل. http://developer-evangelism.com/
که من اسمش رو اگر همین جوری ترجمه کنیم میشه چیزی توی مایه‌های «مُبلغ توسعه دهنده»
اما بر اساس کاری که انجام میده من میگم «وکیل مدافع توسعه دهندگان».
در کل برام جالب بود و میخواستم در مورد این شغل و کمبودش توی ایران توی بلاگم بنویسم و اینکه الان همه توسعه دهندگان دنبال راه اندازی «کسب و کار» خودشون هستن و شرکت‌ها هم رفتار درستی با توسعه دهندگان ندارن و کمبود توسعه دهنده و این حرفا
گقتم اگر صلاح دونستی در موردش در رادیوگیک بگی :) و این عنوان شغلی و سایتش رو معرفی کنی
راستی فکر کنم الان خودت تقریبا یک Developer Evangelist هستی :دی
A developer evangelist is a spokesperson, mediator and translator between a company and both its technical staff and outside developers.
If your product targets developers this can not be achieved with marketing or PR. We’ve managed to remove the developer world from the commercial part of IT companies so far over the last few years that developers are very cynical about anything that does not relate to technology first and brand second – and neither marketing nor PR can deliver that.
Developers however are very happy to listen to what other developers say – if these developers are very good, have their respect and deliver the message in the right way.
The trick is to allow people in your company to play with your products and advertise why they are excited about them – after all the people in your company are consumers, too.

تکنولوزی فرمول یک توی تانک ها

tank

این خبر هم جالبه از این نظر که می شه ربطش داد به نظریه توروالدز [توضیح بقا – اقتصاد – فان]. ظاهرا تکنولوزی که قبلا فقط در خدمت جنگ بود حالا توی یکسری حوزه ها (به طور خاص صنعت سرگرمی) داره سریعتر پیش می ره. انگلستان اعلام کرده که برای تانک های CV90 از یک سیستم تعلیق فعال استفاده خواهد که قبلا برای ماشین های فرمول یک درست شده بود ولی به خاطر تغییر خیلی محسوسی که توی وضعیت ماشین می ذاشت ممنوع شد. ایده این بود که در مسابقه ماشین رانی باید قابلیت راننده ها فاکتور اصلی باشه نه چنین سیستم هایی که باعث می شه حداکثر چسبندگی لاستیک به جاده حفظ بشه و ترمز و گاز خیلی خیلی بهتر عمل کنه. این تکنولوژی در تست ها و ویدئوی یوتیوبی که منتشر شده تونسته حدود ۴۰ درصد عملکرد تانک ها در سرعتی حدود ۶۵ کیلومتر رو بهبود بده و در حدود سرعت های ۱۰۰ کیلومتر در ساعت تانک هم که دیگه کارش شبیه معجزه است. معلومه که شرکت کانترکتور نظامی انگلستانی نگفته که دقیقا تکنولوژی چیه ولی از Active Damping نام برده شده که احتمالا کنترل سیستم تعلیق توسط موتورهای کنترل شونده با کامپیوتر است. این سیستم سه برابر بهتر از تعلیق پسیو می تونه فشار وارده رو کنترل کنه و در نتیجه تانک خیلی بهتر به وظیهف اصلی اش که حرکت روی سطوح ناهماور است برسه. این سیستم همچنین برای نفربرها هم فوق العاده است. جالیبش برای ما اما به جز حضور کامپیوتر این مساله است که جنگ داره از یکی ای چیزهایی استفاده می کنه که اصولا برای صنعت سرگرمی ساخته شده بوده و مویدی است بر نظریه توروالدز که می گه در جایی تلاش ما برای بقا کمتر از تلاش ما برای سرگرم شدن خواهد بود – که البته نظریه خیلی جدی ای هم نیست و وقتی بیان شده که ناشر خواسته نویسنده کرنل لینوکس برای کتاب زندگی اش یک چیز خفن بنویسه (: اگر علاقمند هستین بخونینش مراجعه کنین به linuxstory.ir .

در اعماق

کشف شبکه خودکفای بات‌نت‌ها روی روترهای غیرامن خونگی

router

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

فایرفاکس جدید ریلیز شده، با DRM

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

firefox

زبان های برنامه نویسی احتمالی

face

این روزها یکهو هوش مصنوعی شکوفا شده (توضیح قدیم) و این شکوفایی به طور خاص مدیون الگوریتم های یادگیری ماشینی است. یکهو گوشی ها می تونن ترافیک رو پیش بینی کنن، گفتار رو بفهمن، گوگل او سی آر فارسی راه می ندازه و کلی چیز دیگه. این سیستم ها دارن با انواع الگوریتم های ماشینی مبتنی بر داده‌های بزرگ کار می کنن اما نوشتن و پیاده سازی این الگوریتم ها طولانی هست. حالا داریم سراغ چیزی می ریم که چندان حرفی ازش لازم نشده و در نتیجه یک شنونده رادیو گیک لازمه در موردش شنیده باشه: زبان های برنامه نویسی احتمالی. یعنی Probabilistic programming langs. اینجا ریاضیات و الگوریتم های شناخته شده یادگیری ترکیب می شن. زبان ها در سال ۲۰۱۳ توی darpa زاده شدن و نکته هم اینه که در جون امسال محققان MIT به همگان نشونشون می دن. گفته می شه اکثر سوال های حوزه بینایی (مثلا تشخیص چهره) که با زبان های سنتی صدها خط برنامه می شد رو با این زبان ها می شه توی ۵۰ خط یا کمتر پیاده سازی کرد. تمرکزتون رو حفظ کنین که انگار قراره یک چیز جدید به دنیا بیاد! فعلا می دونیم که شیوه کار این زبان ها یک هسته الگوریتیم است که سعی می کنه دائما اطلاعات جدید رو با الگوریتم های مختلف با چزهایی که پیش از این یاد گرفته شدن سازگار نگه داره، در اصل این زبان می تونه یادبگیره که یاد بگیره. این هسته براساس نیاز تغییر می کنه و در نتیجه در نهایت برنامه می تونه در شرایط مختلف از نظر برنامه نویسش نسبتا راحت وظایف مختلف رو یاد بگیره.

اینترنت چیزها و بمب امنیتی

اینترنت چیزها

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

تبریک و تقبیح

به این فکر کنین که آیا خودروهای واقعا خود رو یعنی خود رانندگی کننده آینده قراره پنجره داشته باشن؟

۱۱۸ هم پولی شد که مطمئن باشیم با مغز داریم می ریم سراغ سرمایه داری ناقص که نه خوبی های سرمایه داری رو داره نه .. هیچچی نداره برای ما ): حداقل اینترنت رو پس بدین!

و خجالت برای به اصطلاح روزنامه نگارهایی که خودشون رو برای دور دنیا می فروشن و شغلشون رو می کنن فحش دادن به شریفترین آدم ها

و تبریک به هر کسی که در این دنیای داغون تلاش می کنه شاد باشه (: شاد باشین که بهترین چیزه. نامه و بخش آخر نداریم !

بخش آخر

Screenshot from 2015-05-18 11-05-39

موسیقی

آهنگ چشمات چه مهربونه از الهه به درخواست مهدی برای خانواده اش و به طور خاص از طرف میلاد برای پریا… شجاع باشین دنیا دو روزه!

الگوریتم‌های ژنتیک برای طراحی برج‌های بدون سایه

لندن شهر شلوغی است. لندن شهری بدون آفتاب است. این دو تا رو که کنار هم بذارین می‌فهمین چرا برای مهندس های NBBJ مهم بوده که برج‌های دوقلویی که دارن می‌سازن،‌ «سایه نداشته باشه».

map

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

Animation

گفته می شه این الگوریتم تونسته ۶۰ درصد آفتاب بیشتری روی زمین بندازه و جالبتر اینه که توی متغیرها چیزهایی مثل میزان دید به رود تیمز هم در نظر گرفته شده.

no_shadow_tower

  • (فیلم دو دقیقه‌ای تبلیغاتی برج های بدون سایه](https://vimeo.com/121813688)

من هم در همایش پی اچ پی حرف می زنم، خوشحال می شم شرکت کنین

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

دوستای من تو لینکدین چیکاره هستن؟ بازنمایی اطلاعات با R

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

در این مجموعه، امروز با الهام از کار مشابه در این فروم (که متاسفانه دیدنش نیازمند ساخت اکانت است با R و بسته تازه منتشر شده ای به اسم Rlinkedin که می تونه این زبون عددی / آماری رو به سایت لیندکین که شبکه اجتماعی بازار کار تخصصی است وصل کنه و به این برسه که دوستان من اکثرا چنین عناوین شغلی ای دارن:

title

اما چطوری؟ برای شروع باید اول بسته Rlinkedin رو نصب کنیم که با توجه به بسته devtools کار راحتی است:

require(devtools)
install_github("mpiccirilli/Rlinkedin")
require(Rlinkedin)

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

in.auth <- inOAuth()

این دستور یک لینک بهم می ده که کافیه تو براوزر بازش کنم و توی لیندکین لاگین کنم. حالا بسته Rlinkedin به لیندکین وصل شده و کار راحته.

در قدم اول همه کانتکت‌هایی که دارم رو توی یک ساختار ذخیره می کنم:

my.connections <- getMyConnections(in.auth)

و حالا مثلا بخش عناوین شغلی این ساختار رو به شکل متنی در یک متغیر می ریزم:

text <- toString(my.connections$title)

و با استفاده از بسته wordcloud و بعد از کمی تمیز کاری (حذف کاما، کوچیک کردن کل حروف و ...) و شمردن تکرار کلمات، ابر کلمات رو می کشم. در ابر کلمات اندازه فونت هر کلمه مرتبط با تعداد تکرار اون کلمه است و در نتیجه مثلا می بینیم که بیشتر دوست‌های من Developer هستن که نکته مثبتی است:

title

و البته معلومه که حالا که اینجا هستیم با خطی مثل

text <- toString(my.connections$industry)

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

industries

اگر خوشتون اومد و روی لینکدین هستین و معقول می دونین، خوشحال می شم پروفایل من روی لینکدین رو روی BIG DATA یا Hadoop یا R یا Data Science یا NewSQL یا هر چیزی که دوست دارین من رو Endorse کنین که البته نمی دونم دقیقا به چه دردم خواهد خورد ولی حداقلش اینه که هی روی MySQL و PHP‌ و شبکه و لینوکس ایندورس نمی شم! خوش[بین] باشین و خندون و از اطلاعات و قشنگی‌شون لذت ببرین.

«من می خوام برنامه نویس کرنل بشم، چیکار باید بکنم؟»

آرمان پرسیده:

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

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

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

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

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

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

ببینم دوستان.. کسی رو داریم به کرنل لینوکس چیزی اضافه کرده باشه؟ احتمالا خیلی ها نظرات دقیقتری از من دارن که خوشحال می شم به اشتراک بذارن.

در سوتی جدید بانک مقصر کیه؟‌ نگاهی به نقش‌های مرتبط

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

variz

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

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

مشاور پروژه

در قدم اول باید مشاور پروژه می تونست در دقیقه دوم تست این برنامه، بگه که این برنامه این مشکل عظیم رو داره. شاید واقعا این پروژه مشاور نداشته و اگر مشاوری داشته که اینجا رو دیده ولی از روش رد شده، منطقا فقط یک آدمی است که شغلش حقوق گرفتن برای پر کردن عنوان «مشاور» است. این آدم اگر پروژه رو دیده و اوکی کرده، نباید مشاور باشه.

مشاور فنی بانک

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

مدیر پروژه

در مورد مدیرپروژه همیشه به سختی می شه نظر داد. آدمی است که از بالاتر بهش می گن باید محصول فلان رو در تاریخ فلان تحویل بدی و منابعش هم مشخصه. اگر الان شغل من تحویل یک سکوی نفتی در تاریخ ۲۹ اسفند ۱۳۹۶ باشه و یک تیم هم داشته باشم که کار رو درست بلد نباشن، ممکنه هر سوتی ای از من در بیاد (: در سطحی بالاتر می شه گفت که باید استعفا بدم ولی خب چند نفر داریم که بتونن راحت از شغلشون استعفا بدن. به نظر من مدیر پروژه اگر دفاع خوبی داشته باشه، تقصیر چندانی نداره.

تیم/شرکتی که کار رو قبول کرده

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

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

گروهی که کار رو به این گروه دادن

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

سیستم نرم افزاری کشور

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

حالا چیکار کنیم؟

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

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

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

مهملترین کاری که ممکنه این هفته با پایتون، پردازش تصویر، آر و آمار استنباطی انجام بدین: بررسی کبریت‌های توکلی

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

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

ایده خبیثانه جالبیه ولی چرا اصولا از اول کبریت های کمتری توی جعبه نذاریم؟ اصولا اگر می شه اینجوری پول درآورد مطمئنا کشور ما جای بسیار مناسبی براشه.

من به کبریت مشکوکم

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

بسته ده تایی کبریت

و بعد می ریم سراغ ده تا جعبه کبریتی که خریدیم و پشتشون مدعی است که تعداد متوسط کبریت‌های هر جعبه چهل تا است:

کبریت توکلی

هر جعبه کبریت رو جدا جدا روی قسمت اتو شده و صاف خالی کرده، عکس می گیریم:

تصویر اولیه کبریت ها

اینکار رو برای هر ده تا جعبه کبریت انجام می دیم و اتاق پر از کبریت رو به قصد نشستن پشت کامپیوتر ترک میکنیم.

جعبه های کبریت

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

kebrit = scipy.misc.imread(fileName, 1) # gray-scale image

و خروجی چیز شبیه این است:

تصویر کبریت قبل از پردازش تصویر

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

kebrit_smooth = ndimage.gaussian_filter(kebrit, 6)

حالا متغیر kebrit_smooth یک تصویر نرم شده از تصویر اصلی است:

تصویر با فیلتر گاوسی پردازش تصویر

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

tresh = 120
labeled, objectsNum = ndimage.label(kebrit_smooth < tresh)

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

tresh = 120
removeOnes = np.ones((3,3), dtype="bool8")
labeled, objectsNum = ndimage.label(kebrit_smooth < tresh, structure=removeOnes)

دقت کنین که اون استراکچر در اصل می گه حداقل تصویر قابل تشخیص من باید این باشه:

array([[ True,  True,  True],
       [ True,  True,  True],
       [ True,  True,  True]], dtype=bool)

و نتیجه اش این می شه که نقطه های منفرد دیگه شمرده نشن. البته انتظارم اینه که با اسموت کردن مرحله قبل این نقطه ها به حداقل رسیده باشن. نتیجه این ترکیب چنین تصویری است:

پردازش تصویر نهایی نوک کبریت ها

و خب چنین خروجی متنی ای:

10boxes/IMG_2608.JPG , 29

حالا کافیه یک اسکریپت ساده، همه ده تا فایل رو به اون برنامه بده:

#!/bin/bash

for f in *JPG
do
    ../count.py $f
done

و به خروجی زیر برسیم:

$ ./doall.sh 
IMG_2606.JPG , 35
IMG_2607.JPG , 30
IMG_2608.JPG , 29
IMG_2609.JPG , 32
IMG_2610.JPG , 29
IMG_2611.JPG , 33
IMG_2612.JPG , 36
IMG_2613.JPG , 38
IMG_2614.JPG , 37
IMG_2615.JPG , 38

وقتشه سراغ زبون مورد علاقمون R بریم. یک زبان تخصصی برای کارهای آماری و وررفتن با اعداد و ماتریس ها و رفیق رفقاشون. فایل رو می خونیم و بخش مورد نظر رو جدا می کنیم:

> tavakoli <- read.csv(file="results.csv",head=FALSE,sep=",")
> matches <- tavakoli[2]$V2

حالا اطلاعات هر جعبه کبریت رو دارم. بذارین یک نگاه سریع بهش بندازیم:

> summary (matches)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  29.00   30.50   34.00   33.70   36.75   38.00 

بعله. می بینیم که میزان متوسط پایینتر از ۳۴ است. یعنی تعداد متوسط این ده قوطی کبریت ۶ تا کمتر از چیزی است که ادعا شده یا به بیان صحیح‌تر ۱۵٪ کمتر به ما جنس فروختن. جالبیش اینه حتی یک جعبه از این ده جعبه هم به چیزی که ادعا می شد میانگین است نرسیده. بذارین جلوتر بریم:

> hist(matches, xlim=c(28,42), ylim=c(0,4), main="هیستوگرام تعداد کبریت های توکلی در هر جعبه", sub="www.jadi.net", breaks=8)
> curve(dnorm(x, mean=mean(matches), sd=sd(matches))*10, add=TRUE, col="red", lwd=2) 

و روی این نمودار با کمی آمار احتمالات می تونیم احتمال اینکه در یک جعبه کبریت اتفاقی توکلی که خریده‌ایم و مدعی داشتن ۴۰ کبریت است، چهل یا بیشتر کبریت وجود داشته باشد را حساب کنیم:

> 1-pnorm(40, mean=mean(matches), sd=sd(matches)) #یک منهای سمت چپ نمودار نرمال در نقطه ۴۰ کبریت
[1] 0.03970968

بله. با اینکه کبریت توکلی مدعی است در هر جعبه اش تقریبا ۴۰ کبریت وجود داره، برنامه پردازش تصویر و نمودارهای نرمال ما نشون می دن که احتمال اینکه واقعا در یک جعبه کبریت توکلی چهل یا بیشتر کبریت باشه، سه صدم درصد بیشتر نیست

آمار شیرین است

نتیجه‌ها

۰- موسسه استاندارد و حقوق مصرف کننده خاصی نداریم یا هنوز این مساله رو ندیدن
۱- راکفلر باید بیاد پیش تولید کننده‌های ما لنگ بندازه
۲- آمار شیرین و فان است
۳- می تونیم با کارهای علمی بامزه هم تفریح کنیم هم چیز یاد بگیریم

مرتبط

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

اسپمری که اشتباهی سورس اسپم رو فرستاد

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

{
{I have|I've} been {surfing|browsing} online more than {three|3|2|4} hours today, yet I 
never found any interesting article like yours.
{It's|It is} pretty worth enough for me.
{In my opinion|Personally|In my view}, if all {webmasters|site owners|website owners|web owners} and bloggers made good content as you did, the {internet|net|web} will be {much more|a 
lot more} useful than ever before.|
I {couldn't|could not} {resist|refrain from} commenting. {Very well|Perfectly|Well|Exceptionally well} written!|
{I will|I'll} {right away|immediately} {take hold of|grab|clutch|grasp|seize|snatch} your {rss|rss feed} as I {can not|can't} {in finding|find|to 
find} your {email|e-mail} subscription {link|hyperlink} or {newsletter|e-newsletter} service.
Do {you have|you've} any? {Please|Kindly} {allow|permit|let} 
me {realize|recognize|understand|recognise|know} {so that|in order that} I {may just|may|could} subscribe.
Thanks.|
{It is|It's} {appropriate|perfect|the best} time to 
make some plans for the future and {it is|it's} time to 
be happy. {I have|I've} read this post and if I could 
I {want to|wish to|desire to} suggest you {few|some} interesting things or {advice|suggestions|tips}.
{Perhaps|Maybe} you {could|can} write next articles referring to this article.
I {want to|wish to|desire to} read {more|even more} things about it!|
{It is|It's} {appropriate|perfect|the best} time to make {a 
few|some} plans for {the future|the longer term|the long run} and {it is|it's} time to be 
happy. {I have|I've} {read|learn} this {post|submit|publish|put 
up} and if I {may just|may|could} I {want to|wish to|desire to} 
{suggest|recommend|counsel} you {few|some} {interesting|fascinating|attention-grabbing} {things|issues} or {advice|suggestions|tips}.
{Perhaps|Maybe} you {could|can} write {next|subsequent} articles {relating to|referring to|regarding} this 
article. I {want to|wish to|desire to} {read|learn} {more|even more} {things|issues} {approximately|about} it!|
{I have|I've} been {surfing|browsing} {online|on-line} {more than|greater than} {three|3} hours {these days|nowadays|today|lately|as of late}, 
{yet|but} I {never|by no means} {found|discovered} any 
{interesting|fascinating|attention-grabbing} article like yours.

{It's|It is} {lovely|pretty|beautiful} {worth|value|price} {enough|sufficient} for me.
{In my opinion|Personally|In my view}, if all {webmasters|site 
owners|website owners|web owners} and bloggers made 
{just right|good|excellent} {content|content material} as {you did|you probably did}, the {internet|net|web} {will be|shall be|might be|will probably be|can be|will likely be} {much more|a lot 
more} {useful|helpful} than ever before.|
Ahaa, its {nice|pleasant|good|fastidious} {discussion|conversation|dialogue} {regarding|concerning|about|on the topic of} this {article|post|piece 
of writing|paragraph} {here|at this place} at this {blog|weblog|webpage|website|web site}, I have read all that, so {now|at this time} me also commenting {here|at this 
place}.|
I am sure this {article|post|piece of writing|paragraph} has touched 
all the internet {users|people|viewers|visitors}, its 
really really {nice|pleasant|good|fastidious} {article|post|piece of 
writing|paragraph} on building up new {blog|weblog|webpage|website|web site}.|
Wow, this {article|post|piece of writing|paragraph} is {nice|pleasant|good|fastidious}, my 
{sister|younger sister} is analyzing {such|these|these kinds of} 
things, {so|thus|therefore} I am going to {tell|inform|let know|convey} her.|
{Saved as a favorite|bookmarked!!}, {I really like|I like|I 
love} {your blog|your site|your web site|your website}!|
Way cool! Some {very|extremely} valid points!
I appreciate you {writing this|penning this} 
{article|post|write-up} {and the|and also the|plus the} rest of the {site 
is|website is} {also very|extremely|very|also really|really} good.|
Hi, {I do believe|I do think} {this is an excellent|this is a great} {blog|website|web site|site}.
I stumbledupon it ;) {I will|I am going to|I'm going 
to|I may} {come back|return|revisit} {once again|yet again} {since I|since i have} {bookmarked|book marked|book-marked|saved as a favorite} it.
Money and freedom {is the best|is the greatest} way to change,
may you be rich and continue to {help|guide} {other people|others}.|
Woah! I'm really {loving|enjoying|digging} the template/theme of this {site|website|blog}.

It's simple, yet effective. A lot of times it's {very hard|very difficult|challenging|tough|difficult|hard} to get that "perfect balance" 
between {superb usability|user friendliness|usability} and {visual appearance|visual appeal|appearance}.
I must say {that you've|you have|you've} done a {awesome|amazing|very good|superb|fantastic|excellent|great} 
job with this. {In addition|Additionally|Also}, the blog loads {very|extremely|super} {fast|quick} for me on {Safari|Internet explorer|Chrome|Opera|Firefox}.
{Superb|Exceptional|Outstanding|Excellent} Blog!|
These are {really|actually|in fact|truly|genuinely} {great|enormous|impressive|wonderful|fantastic} ideas in {regarding|concerning|about|on the topic of} 
blogging. You have touched some {nice|pleasant|good|fastidious} {points|factors|things} here.
Any way keep up wrinting.|
{I love|I really like|I enjoy|I like|Everyone loves} what you guys {are|are usually|tend 
to be} up too. {This sort of|This type of|Such|This 
kind of} clever work and {exposure|coverage|reporting}!
Keep up the {superb|terrific|very good|great|good|awesome|fantastic|excellent|amazing|wonderful} works guys 
I've {incorporated||added|included} you guys to 
{|my|our||my personal|my own} blogroll.|
{Howdy|Hi there|Hey there|Hi|Hello|Hey}! Someone in my {Myspace|Facebook} group 
shared this {site|website} with us so I came to {give 
it a look|look it over|take a look|check it out}. I'm definitely {enjoying|loving} the 
information. I'm {book-marking|bookmarking} and will be tweeting this to my followers!
{Terrific|Wonderful|Great|Fantastic|Outstanding|Exceptional|Superb|Excellent} 
blog and {wonderful|terrific|brilliant|amazing|great|excellent|fantastic|outstanding|superb} {style and 
design|design and style|design}.|
{I love|I really like|I enjoy|I like|Everyone loves} what you guys {are|are usually|tend to be} up too.
{This sort of|This type of|Such|This kind of} clever work and {exposure|coverage|reporting}!
Keep up the {superb|terrific|very good|great|good|awesome|fantastic|excellent|amazing|wonderful} works guys 
I've {incorporated|added|included} you guys to {|my|our|my personal|my own} blogroll.|
{Howdy|Hi there|Hey there|Hi|Hello|Hey} would you mind {stating|sharing} 
which blog platform you're {working with|using}?
I'm {looking|planning|going} to start my own blog {in the near 
future|soon} but I'm having a {tough|difficult|hard} time {making a decision|selecting|choosing|deciding} between BlogEngine/Wordpress/B2evolution and Drupal.
The reason I ask is because your {design and style|design|layout} seems different then most blogs and I'm 
looking for something {completely unique|unique}.                  P.S {My 
apologies|Apologies|Sorry} for {getting|being} off-topic but I 
had to ask!|
{Howdy|Hi there|Hi|Hey there|Hello|Hey} would you mind letting me know which 
{webhost|hosting company|web host} you're {utilizing|working with|using}?

I've loaded your blog in 3 {completely different|different} {internet 
browsers|web browsers|browsers} and I must say this blog 
loads a lot {quicker|faster} then most. Can you {suggest|recommend} a good {internet hosting|web 
hosting|hosting} provider at a {honest|reasonable|fair} 
price? {Thanks a lot|Kudos|Cheers|Thank you|Many thanks|Thanks}, I appreciate it!|
{I love|I really like|I like|Everyone loves} it {when people|when individuals|when folks|whenever people} {come together|get together} and share {opinions|thoughts|views|ideas}.
Great {blog|website|site}, {keep it up|continue the good work|stick with it}!|
Thank you for the {auspicious|good} writeup.
It in fact was a amusement account it. Look advanced to {far|more} added agreeable from you!
{By the way|However}, how {can|could} we communicate?|
{Howdy|Hi there|Hey there|Hello|Hey} just wanted to give 
you a quick heads up. The {text|words} in your {content|post|article} seem to be running off the screen in {Ie|Internet 
explorer|Chrome|Firefox|Safari|Opera}. I'm not sure 
if this is a {format|formatting} issue or something to do with {web browser|internet browser|browser} compatibility but I {thought|figured} I'd post to let you know.
The {style and design|design and style|layout|design} look great though!
Hope you get the {problem|issue} {solved|resolved|fixed} soon. 
{Kudos|Cheers|Many thanks|Thanks}|
This is a topic {that is|that's|which is} {close to|near to} my heart...
{Cheers|Many thanks|Best wishes|Take care|Thank you}! {Where|Exactly where} are your contact details though?|
It's very {easy|simple|trouble-free|straightforward|effortless} to find out any {topic|matter} on {net|web} as compared to {books|textbooks}, as I found 
this {article|post|piece of writing|paragraph} at this {website|web site|site|web page}.|
Does your {site|website|blog} have a contact page?
I'm having {a tough time|problems|trouble} locating it but,
I'd like to {send|shoot} you an {e-mail|email}. I've got some {creative ideas|recommendations|suggestions|ideas} for your blog you might be interested in hearing.
Either way, great {site|website|blog} and I look forward to seeing it {develop|improve|expand|grow} over time.|
{Hola|Hey there|Hi|Hello|Greetings}! I've been {following|reading} your {site|web site|website|weblog|blog} for {a long time|a while|some time} now and 
finally got the {bravery|courage} to go ahead and give you 
a shout out from  {New Caney|Kingwood|Huffman|Porter|Houston|Dallas|Austin|Lubbock|Humble|Atascocita} {Tx|Texas}!
Just wanted to {tell you|mention|say} keep up 
the {fantastic|excellent|great|good} {job|work}!|
Greetings from {Idaho|Carolina|Ohio|Colorado|Florida|Los angeles|California}!
I'm {bored to tears|bored to death|bored} at work so I 
decided to {check out|browse} your {site|website|blog} on my 
iphone during lunch break. I {enjoy|really like|love} the 
{knowledge|info|information} you {present|provide} here and can't wait to take a look when I 
get home. I'm {shocked|amazed|surprised} at how {quick|fast} 
your blog loaded on my {mobile|cell phone|phone} .. I'm not even using WIFI, 
just 3G .. {Anyhow|Anyways}, {awesome|amazing|very good|superb|good|wonderful|fantastic|excellent|great} {site|blog}!|
Its {like you|such as you} {read|learn} my {mind|thoughts}!
You {seem|appear} {to understand|to know|to grasp} 
{so much|a lot} {approximately|about} this, {like you|such as you} wrote the {book|e-book|guide|ebook|e 
book} in it or something. {I think|I feel|I believe} {that you|that you simply|that 
you just} {could|can} do with {some|a few} {%|p.c.|percent} to {force|pressure|drive|power} the message {house|home} {a bit|a little bit}, {however|but} {other 
than|instead of} that, {this is|that is} {great|wonderful|fantastic|magnificent|excellent} blog.
{A great|An excellent|A fantastic} read. {I'll|I will} 
{definitely|certainly} be back.|
I visited {multiple|many|several|various} {websites|sites|web sites|web pages|blogs} {but|except|however} the audio {quality|feature} for audio songs {current|present|existing} at this 
{website|web site|site|web page} is {really|actually|in fact|truly|genuinely} {marvelous|wonderful|excellent|fabulous|superb}.|
{Howdy|Hi there|Hi|Hello}, i read your blog {occasionally|from time to time} and i own a 
similar one and i was just {wondering|curious} 
if you get a lot of spam {comments|responses|feedback|remarks}?
If so how do you {prevent|reduce|stop|protect against} it, any plugin or anything you 
can {advise|suggest|recommend}? I get so much lately it's driving me {mad|insane|crazy} so any {assistance|help|support} 
is very much appreciated.|
Greetings! {Very helpful|Very useful} advice {within this|in this particular} {article|post}!
{It is the|It's the} little changes {that make|which will make|that produce|that will make} {the biggest|the largest|the 
greatest|the most important|the most significant} 
changes. {Thanks a lot|Thanks|Many thanks} for sharing!|
{I really|I truly|I seriously|I absolutely} love {your blog|your site|your website}..
{Very nice|Excellent|Pleasant|Great} colors & theme.
Did you {create|develop|make|build} {this website|this 
site|this web site|this amazing site} yourself? Please reply back 
as I'm {looking to|trying to|planning to|wanting to|hoping to|attempting to} create {my 
own|my very own|my own personal} {blog|website|site} and {would like 
to|want to|would love to} {know|learn|find out} where you got this from or {what the|exactly 
what the|just what the} theme {is called|is named}. {Thanks|Many thanks|Thank you|Cheers|Appreciate it|Kudos}!|
{Hi there|Hello there|Howdy}! This {post|article|blog post} {couldn't|could not} be written {any better|much better}!
{Reading through|Looking at|Going through|Looking through} this 
{post|article} reminds me of my previous roommate! He 
{always|constantly|continually} kept {talking about|preaching about} this.
{I will|I'll|I am going to|I most certainly will} 
{forward|send} {this article|this information|this post} to him.
{Pretty sure|Fairly certain} {he will|he'll|he's going to} 
{have a good|have a very good|have a great} read.
{Thank you for|Thanks for|Many thanks for|I appreciate you for} sharing!|
{Wow|Whoa|Incredible|Amazing}! This blog looks {exactly|just} like my old one!
It's on a {completely|entirely|totally} different 
{topic|subject} but it has pretty much the same {layout|page layout} and 
design. {Excellent|Wonderful|Great|Outstanding|Superb} choice of colors!|
{There is|There's} {definately|certainly} {a 
lot to|a great deal to} {know about|learn about|find out about} this {subject|topic|issue}.
{I like|I love|I really like} {all the|all of the} points {you made|you've made|you have made}.|
{You made|You've made|You have made} some {decent|good|really 
good} points there. I {looked|checked} {on the internet|on the 
web|on the net} {for more info|for more information|to find out more|to learn more|for additional information} about the 
issue and found {most individuals|most people} 
will go along with your views on {this website|this site|this web site}.|
{Hi|Hello|Hi there|What's up}, I {log on to|check|read} your {new stuff|blogs|blog} 
{regularly|like every week|daily|on a regular basis}.

Your {story-telling|writing|humoristic} style is {awesome|witty}, keep {doing what 
you're doing|up the good work|it up}!|
I {simply|just} {could not|couldn't} {leave|depart|go away} your {site|web site|website} {prior to|before} suggesting that I {really|extremely|actually} {enjoyed|loved} {the standard|the usual} {information|info} {a person|an individual} {supply|provide} {for your|on your|in your|to your} {visitors|guests}?
Is {going to|gonna} be {back|again} {frequently|regularly|incessantly|steadily|ceaselessly|often|continuously} {in order to|to} {check 
up on|check out|inspect|investigate cross-check} new posts|
{I wanted|I needed|I want to|I need to} to thank you for this {great|excellent|fantastic|wonderful|good|very good} read!!
I {definitely|certainly|absolutely} {enjoyed|loved} every {little bit of|bit of} it.
{I have|I've got|I have got} you {bookmarked|book marked|book-marked|saved as 
a favorite} {to check out|to look at} new {stuff you|things you} post…|
{Hi|Hello|Hi there|What's up}, just wanted to {mention|say|tell you}, I {enjoyed|liked|loved} this 
{article|post|blog post}. It was {inspiring|funny|practical|helpful}.
Keep on posting!|
{Hi there|Hello}, I enjoy reading {all of|through} your {article|post|article post}.

I {like|wanted} to write a little comment to support you.|
I {always|constantly|every time} spent my half an hour to read this {blog|weblog|webpage|website|web site}'s {articles|posts|articles or 
reviews|content} {everyday|daily|every day|all the time} along with a {cup|mug} of coffee.|
I {always|for all time|all the time|constantly|every time} emailed this {blog|weblog|webpage|website|web site} post page to all my {friends|associates|contacts}, 
{because|since|as|for the reason that} if like to read it {then|after that|next|afterward} my {friends|links|contacts} will too.|
My {coder|programmer|developer} is trying to {persuade|convince} me to move to .net from PHP.
I have always disliked the idea because of the {expenses|costs}.
But he's tryiong none the less. I've been using {Movable-type|WordPress} on {a number of|a 
variety of|numerous|several|various} websites for about a year and am {nervous|anxious|worried|concerned} about switching to another platform.
I have heard {fantastic|very good|excellent|great|good} things about blogengine.net.
Is there a way I can {transfer|import} all 
my wordpress {content|posts} into it? {Any kind of|Any} help would be 
{really|greatly} appreciated!|
{Hello|Hi|Hello there|Hi there|Howdy|Good day}!
I could have sworn I've {been to|visited} {this blog|this 
web site|this website|this site|your blog} before but after {browsing 
through|going through|looking at} {some of the|a few of the|many of the} {posts|articles} I realized it's new 
to me. {Anyways|Anyhow|Nonetheless|Regardless}, 
I'm {definitely|certainly} {happy|pleased|delighted} {I found|I discovered|I came 
across|I stumbled upon} it and I'll be {bookmarking|book-marking} 
it and checking back {frequently|regularly|often}!|
{Terrific|Great|Wonderful} {article|work}!

{This is|That is} {the type of|the kind of} {information|info} {that are meant to|that 
are supposed to|that should} be shared {around the|across the} {web|internet|net}.
{Disgrace|Shame} on {the {seek|search} engines|Google} for {now not|not|no longer} positioning this {post|submit|publish|put up} {upper|higher}!
Come on over and {talk over with|discuss with|seek advice 
from|visit|consult with} my {site|web site|website} .

{Thank you|Thanks} =)|
Heya {i'm|i am} for the first time here. I {came across|found} 
this board and I find It {truly|really} useful & it helped me out {a lot|much}.
I hope to give something back and {help|aid} others like you {helped|aided} me.|
{Hi|Hello|Hi there|Hello there|Howdy|Greetings}, {I 
think|I believe|I do believe|I do think|There's no doubt that} {your site|your website|your web site|your blog} 
{might be|may be|could be|could possibly be} having {browser|internet browser|web browser} compatibility {issues|problems}.
{When I|Whenever I} {look at your|take a look at your} {website|web site|site|blog} in Safari, it looks fine {but when|however when|however, 
if|however, when} opening in {Internet Explorer|IE|I.E.}, {it 
has|it's got} some overlapping issues. {I just|I simply|I merely} wanted to {give you a|provide you with a} quick heads up!
{Other than that|Apart from that|Besides that|Aside from 
that}, {fantastic|wonderful|great|excellent} {blog|website|site}!|
{A person|Someone|Somebody} {necessarily|essentially} 
{lend a hand|help|assist} to make {seriously|critically|significantly|severely} {articles|posts} {I 
would|I might|I'd} state. {This is|That is} the {first|very first} time I frequented your 
{web page|website page} and {to this point|so far|thus 
far|up to now}? I {amazed|surprised} with the {research|analysis} you 
made to {create|make} {this actual|this particular} 
{post|submit|publish|put up} {incredible|amazing|extraordinary}.
{Great|Wonderful|Fantastic|Magnificent|Excellent} {task|process|activity|job}!|
Heya {i'm|i am} for {the primary|the first} time here. 
I {came across|found} this board and I {in finding|find|to find} It {truly|really} {useful|helpful} & it 
helped me out {a lot|much}. {I am hoping|I hope|I'm hoping} {to give|to offer|to provide|to present} {something|one thing} {back|again} and 
{help|aid} others {like you|such as you} {helped|aided} me.|
{Hello|Hi|Hello there|Hi there|Howdy|Good day|Hey there}! {I just|I simply} {would like to|want to|wish to} {give you a|offer you a} {huge|big} thumbs up {for 
the|for your} {great|excellent} {info|information} {you have|you've 
got|you have got} {here|right here} on this post.
{I will be|I'll be|I am} {coming back to|returning to} {your blog|your site|your website|your web site} for more soon.|
I {always|all the time|every time} used to {read|study} {article|post|piece of writing|paragraph} in news papers but 
now as I am a user of {internet|web|net} {so|thus|therefore} from 
now I am using net for {articles|posts|articles or reviews|content}, thanks to web.|
Your {way|method|means|mode} of {describing|explaining|telling} {everything|all|the 
whole thing} in this {article|post|piece of writing|paragraph} is {really|actually|in fact|truly|genuinely} {nice|pleasant|good|fastidious}, 
{all|every one} {can|be able to|be capable of} {easily|without difficulty|effortlessly|simply} {understand|know|be aware of} 
it, Thanks a lot.|
{Hi|Hello} there, {I found|I discovered} your {blog|website|web site|site} 
{by means of|via|by the use of|by way of} Google {at the same time 
as|whilst|even as|while} {searching for|looking for} a {similar|comparable|related} {topic|matter|subject}, 
your {site|web site|website} {got here|came} up, it {looks|appears|seems|seems to 
be|appears to be like} {good|great}. {I have|I've} bookmarked it in my google bookmarks.

{Hello|Hi} there, {simply|just} {turned into|became|was|become|changed into} {aware of|alert to} your {blog|weblog} {thru|through|via} Google, {and found|and 
located} that {it is|it's} {really|truly} informative.
{I'm|I am} {gonna|going to} {watch out|be careful} for brussels.

{I will|I'll} {appreciate|be grateful} {if you|should you|when you|in the event you|in case you|for those who|if you happen to} {continue|proceed} this {in future}.
{A lot of|Lots of|Many|Numerous} {other folks|folks|other people|people} 
{will be|shall be|might be|will probably be|can be|will likely 
be} benefited {from your|out of your} writing. Cheers!|
{I am|I'm} curious to find out what blog {system|platform} {you have been|you happen to be|you are|you're} {working 
with|utilizing|using}? I'm {experiencing|having} some {minor|small} security {problems|issues} with my latest {site|website|blog} and {I would|I'd} like to find something more {safe|risk-free|safeguarded|secure}.
Do you have any {solutions|suggestions|recommendations}?|
{I am|I'm} {extremely|really} impressed with your writing skills {and also|as well as} with the layout on your {blog|weblog}.
Is this a paid theme or did you {customize|modify} it 
yourself? {Either way|Anyway} keep up the {nice|excellent} quality writing, 
{it's|it is} rare to see a {nice|great} blog like this one {these days|nowadays|today}.|
{I am|I'm} {extremely|really} {inspired|impressed} {with your|together with your|along with 
your} writing {talents|skills|abilities} {and also|as {smartly|well|neatly} as} with the {layout|format|structure} {for your|on your|in your|to your} {blog|weblog}.
{Is this|Is that this} a paid {subject|topic|subject matter|theme} or did you 
{customize|modify} it {yourself|your self}? {Either way|Anyway} 
{stay|keep} up the {nice|excellent} {quality|high quality} writing, {it's|it is} {rare|uncommon} {to peer|to 
see|to look} a {nice|great} {blog|weblog} like this one {these 
days|nowadays|today}..|
{Hi|Hello}, Neat post. {There is|There's} {a problem|an issue} {with your|together with 
your|along with your} {site|web site|website} in {internet|web} explorer, 
{may|might|could|would} {check|test} this? IE {still|nonetheless} is 
the {marketplace|market} {leader|chief} and {a large|a good|a 
big|a huge} {part of|section of|component to|portion of|component of|element of} {other folks|folks|other people|people} will {leave out|omit|miss|pass over} your {great|wonderful|fantastic|magnificent|excellent} writing {due to|because of} this problem.|
{I'm|I am} not sure where {you are|you're} getting 
your {info|information}, but {good|great} topic.

توضیح: این متن یک اسپم است. احتمالا یک برنامه کامپیوتری می تونی بین {} ها نگاه کنه و یکی از گزینه ها رو انتخاب کنه و یکسری ایمیل متفاوت ازشون بسازه که ما فکر کنیم آدم اونها رو نوشته. چون این ایمیل ها با هم متفاوت هستن، خیلی طول می کشه تا گوگل یا هر کسدیگه کشف کنه که اینها یک متن هستن و اونها رو اسپم تشخیص بده. اگر براتون سوال بود که چرا با وجود فشار دادن دگمه report spam هنوزم اسپم می گیریم، احتمالا یکی از دلیل هاش اینه.