باز دنبال یک حس نابم

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

اما بحث این نیست وزارت فراوانی در کتاب 1984 با هدف تولید بیهوده حفظ فقر دائمی، ایجاد کمبود مالی اما یک بخش بسیار مهمی از وزارت فراوانی قرعه کشی های دولتی درست میکنه و مردم با هدف برنده شدن این ها رو خریداری میکنند
و وزارت حقیقت در کلاه برداری شریک میشه و هر هفته نام کلی برنده رو اعلام میکنه که اصلا وجود خارجی هم ندارند (اره دقیقا وزارت حقیقت اینکارو میکنه)

گاهی اوقات در اوج یک نابسامانی اقتصادی و در عمق اعتراضات فقط کافیه یک کار بامزه بکنی تا وزارت ارتباطات رو ایجاد کنی (وزارتی که هدفش قطع کردن ارتباطات هست)

این وزارت خونه کافیه ادعا کنه داره ارتباطات رو بهبود میده و فقط کافیه یک کمیسیون مثل مجلس بر خلاف این وزارت خونه (که در واقع هیچ کاری نکرده عمل کنه)

اگه به مردم بگی قراره تلفن قطع بشه یهویی یادشون میره که برق و آب هم داره قطع میشه

قطع کردن چیز های اعتیاد آور برای مردم نیاز های اساسیشون رو از یاد میبره

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

دکتر فلفل تابستان 1400

“من از آن نسل مردم که در زمان در به در گمم و از رسم زمان سیرم “

تولدت مبارک

خاطرات زیادی رو باهم گذروندیم و مدتیه که میگذره

از روزی که اولین بار دیدمت و دیدیم و یک لبخند ملیح زدیم

و تو ای زیبای زندگی من ارزو میکنم روز تولدت مثل طعم بندری و نوشابه باشه 🙂
شایدم مثل یک کیک خامه ای و شیرینییی

اصلا همه این ها رو بیخیال تو باغچه ی قلب منی و لپ های تو گیلاس و چشمانت تو … آه چشمان تو مثل شکوفه های گیلاسند شایدممم به قول حسین پناهی گل افتاب گردانند

مانلی دختری از نسل z

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

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

شاید تو یک مهندس نابغه باشی و شاید یک خلبان سفینه فضایی

شاید دیگه کشور ها وجود نداشته باشن و شاید همه جا یک کشور باشه اما …. کی به اینا اهمیت میده تو وقتی بزرگ شدی اینا رو میخونی

و اون موقع ببین فلفل چقدر حدس درستی داشت و چقدر غلط بود در اون زمان تو ای دختر من رو قضاوت کن و ببین من آدم خوبی بودم یا آدم بدی

اما من کیم ؟ من همکار و یکی از دوست های بابات هستم و اون مثل داداش بزرگه ی من میمونه و من امروز خیلی خوشحال هستم که تو متولد شدی

من به عنوان یک نویسنده رویداد های تو رو ضبط میکنم و بزرگ شدنت رو یاد داشت میکنم (البته اونقدر دقیق نمی نویسم که وقتی بزرگ شدی ناراحت بشی )

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

 

من شاید الان نتونم خیلی احساسی بنویسم

اما چشمان تو مثل ستاره های کهکشانند و تو همچون گل زیبایی در زمستانی 🙂

 

DRFELFEL

وای چقدر گذشت

تقریبا میشه گفت پنج سال باهم دیگس داریم کار میکنیم و ایده های خاص و بدنه اصلی فنی شرکت هم تو این 5 سال شکل گرفت روز هایی که درگیر بادام بودیم و شب هایی که تا 12 شب نشستیم تا بادام رو تموم کنیم 🙂

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

و یه روز های عجیبی بود که من بچه تر بودم – نوجوون تر بودم و تنها تر و مداوم ناراحت میشدم و همه این روز ها به لطف تو گذشت داداش بزرگه 🙂

و من شاید یکمی بزرگ شدم و تغییر کردم و یاد گرفتم تو هر چیزی احساسی عمل نکنم و یاد گرفتم همه چیز برای یک چیز و یاد گرفتم یک روح در دو بدن و شاید خیلیییی بد یاد گرفتم این مسئله رو اماااا در نهایت حتی در خوشی های من هم تو سهیم بودی و در یک شب یلدا این تو بودی که وسایل یلدا بهم دادی :))

 

امروز تولدته و من نمیدونم چطور باید تولدت رو تبریک بگم و آیا حتما باید جشن بگیرم ؟ اما فعلا فقط بلدم یک جمله بگم

 

*تولدت مبارک*

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

جاوا اسکریپت برای نوجوانان ترم چهار

سلام بچه ها این یک جزوه هست که میخوام مطالعش کنید

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

و متوجه بشیم دقیقا ریاضیات و برنامه نویسی به چه درد ما میخورن

تو ترم های پیش با چند مفهوم کلی اشنا شدیم :

  • شرط ها
  • حلقه های تکرار
  • متغیر ها
  • آرایه ها

و این ترم قراره با استفاده از این ابزار ها یک مسئله رو حل کنیم اما … واقعا روند حل یک مسئله چطور هست ؟

ما اول باید مسئله رو به کوچیک ترین قطعات ممکن در بیاریم که به راحتی قابل فهم باشه و با این کار مسئله رو به چند تا مسئله کوچولو تر تبدیل میکنیم

بعدش باید کلی روش فکر کنیم و راه حل براش بدیم و چطور باید راه حل بدیم ؟ با منطقی فکر کردن اگه به یک مسئله نگاه کنیم و شناخت کافی بهش داشته باشیم اون مسئله به یک سری بدیهیات تبدیل میشه که حلش برای ما سادس یعنی چی حالا این بدیهیااااات ؟

 

بدیهیات در واقع چیز هایی هستند که به خاطر سادگی ما خیلی سریع اون ها رو پذیرفتیم مثل :

۲+۲ = ۴ این یک فرمول بدیهی هست و ما اینو تو انگشت هامون دیدیم

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

مثلا ابزار ضرب که در واقع همون تکرار جمع هست هست

5 *5 در واقع یعنی پنج بار 5 رو با 5 جمع کنیم

یا 5 * 3 یعنی پنج بار ۳ رو با ۳ جمع کنیم ۳+۳+۳+۳+۳

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

 

حالا این مسئله رو شما حل کنید و برای حلش خلاق باشید

جمع اعداد ۱ تا ۱۰۰۰ چقدر است ؟

پروژه باتلاقی فریلنسری چیست ؟

شاید اولین کار فریلنسری من به سیستم آواتار چت برگرده که نمونه فارسی شدش هم شهرک رایگان من بود

اما چرا بهشون میگم باتلاقی

در پروژه های فریلنسری هیچ نظم و چینش منظمی برای تولید یک پروژه وجود ندارد بر خلاف شرکت ها که به شکل کامل و مدیریت شده در یک تیم اسکرام و بالغ بر چندین متخصص یک پروژه رو انجام میدن در کار های فریلنسری اینطوری نیست

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

در برنامه نویسی فریلنسری هم همین شکلی هست یعنی ممکنه وسط کار امکان جدیدی ازتون خواسته بشه و هیچ پولیم بهتون داده نشه (شما بر اساس تخمین اولیتون یک هزینه کلی اعلام کردید و مجبورید خودتون همه چیزو در نظر بگیرید)

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

مگر اینکه در ایران باشید و پول خارجی بگیرید که باز از دردسرش کم نمیکنه ولی حداقل پول بدی نداره

اما چرا من بهش میگم باتلاقی

پروژه میدون یکی از پروژه هایی بود که من و یکی از دوستان باهم دیگه داریم انجامش میدیم و بازه تغییرات توی این پروژه به حدی زیاد هست که هیچ صرفه اقتصادی نداره

پروژه های فریلنسری درد سر های قانونی زیادی هم دارن مثل سفته و … در ایران اما در مقابل آزادی کار بهتون میدن که به نظر من این هم جالب نیست

برای همین تصمیم گرفتم پروژه میدون اخرین کار فریلنسری باشه که قبولش کردم (مگر یک نمونه خارجی خوب پیدا کنم که پول خوبی هم توش باشه )

نه به فریلنسری در ایران

لزوم به توسعه پروتکل بر مبنای پروتکل دیگر

وقتی در مورد رای کانکت حرف میزنم نه تنها در مورد یک پروتکل و فریم ورک بلکه به عنوان یک پروتکل سطح بالا صحبت میکنم

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

اساس اولیه پروتکل رای کانکت فقط و فقط در 8 ساعت اتفاق افتاد (یاد سریال ریک و مورتی افتادم اونم اسکریپت و حتی قسمت اولش رو تو 6 ساعت نوشتن)

و بعد از اون 8 ساعت کلی اصلاح صورت گرفت تا سیستم اولیه آدرس – متد و اسکوپ بهش اضافه بشه

رای کانکت یک پروتکل سطح بالا هست که توانایی اجرا بر روی هر رابط استریم دیتایی رو داره (یعنی اساسا رای کانکت به مفاهیمی همچون ip و … هیچ گونه وابستگی ای نداره)

حالا چرا باید رای کانکت توانایی اجرا بر روی mqtt رو داشته باشه ؟

توی این مقاله در مورد پروتکل باحال MQTT توضیح نمیدم و همچنین قصد هم ندارم مشکلات کنترل دسترسی / امنیتی و … اش رو بررسی کنم

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

اجرای پروتکل رای کانکت بر روی mqtt کمک میکنه رای کانکت هر چه بیشتر قابل گسترش باشه و در دیواس های iot هم بتونه مورد استفاده قرار بگیره

همچنین اضافه شدن امکاناتی همچون clustering و توزیع عملیات در مقیاس بالا با معرفی mqtt broker رای کانکت ساپورت کردن از کلود استوریج – زنجیره تغییرات – امکان ارتباط از طریق socket.io با mqtt و همچنین ارسال تغییرات از طریق http دسترسی به فایل سیستم توزیع شده از مزیت های اصلی معرفی این بروکر / گیت وی میباشد

اما دقیقا چرا ؟

1 – بسیاری از فایروال ها در سطح شبکه ارتباط با پورت های خاص را محدود کرده و همچنین عملیات tcp خام را محدود میکنند

http با پروکسی کردن ip در هدر و همچنین به عنوان یک پروتکل استاندارد توسط فایروال ها شناخته میشود و پکت های آن بلاک نمیشود

اما در مورد mqtt در اتصالات به یک شبکه خارجی جدای از تنظیمات اساسی ip و شبکه امکان از دست رفتن دیتا در فایروال های قدیمی تر وجود دارد

2 – در بسیاری از وب های قدیمی mqtt ساپورت نمیشود و ارتباط گرفتن mqtt با مرورگر های قدیمی تر مشکل اساسی است (80 درصد کاربران عمومی در ایران مرورگر خود را اپدیت نمیکنند و امکان اپدیت اتوماتیک ندارند و از ویندوز و سیستم عامل های قدیمی استفاده میکنند)

3 – mqtt کنترل دسترسی خوبی ارائه نمیدهد : احراز هویت در mqtt بسیار ابتدایی است اما به کمک رای کانکت این مفهوم به وسیله توکن (با یک عملیات خیلی ساده گسترش میابد)

4 – mqtt سریع و کم مصرف است >> در نهایت ما mqtt را ساپورت میکنیم و به عنوان یک بروکر رایگان با امکانات سفارشی شده آن را ارائه میدهیم چون

سریع – کم مصرف و سازگار است و به عنوان یک گیت وی برای رای کانکت ضروری است

سوییچینگ بحرانی در صورت عدم تامین نیرو چیست و چطوری انجامش میدم ؟

حقیقیت این یکی از اختراعات خودم به عنوان یک مدیر هست ولی خیلیم بدیهی هست

در واقع در انجام یک پروژه همواره به یک تیم نیازه تا بخش های مختلف پروژه پیش بره اما شرایطی پیش میاد که یکی از نیرو ها ممکنه توانایی کار کردن نداشته باشه

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

برای مثال :

۱ – قسمت های عقب افتاده

۲ – اطلاحات قسمت های مختلف

۳ – اضافه کردن چیز هایی که قرار بوده در پایان پروژه انجام بشه

۴ – حل مشکلات قسمت خودم و پیاده سازی سمت خودم با فرض کردن پیاده سازی شدن سمت مقابل

(برای مثال اگر در ساید بک اند باشم سعی میکنم حدس بزنم فرانت اند چه کار میکند و در سایت فرانت اند برعکس )

۵ – ساده نگه دار احمق (با ساده نگه داشتن دیتا – توابع و پیاده سازی توابعم بدون وابستگی به دیتا سعی میکنم تغییر سریع رو فراهم کنم)

۶ – یاد بگیر طرف مقابلت چیکار میکنه باهوش خان ! : سعی میکنم از عادت های طرف مقابل استفاده کنم و حدس بزنم نوع دیتا و بقیه چیزاش چطوریه

کلیت این کار میشه سوییچینگ بحرانی در صورت عدم تامین نیرو 🙂 که بهتره هر نیرویی در یک شرکت بلدش باشه

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

انجین ایو

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

وقتی میگیم ترنسپورت منظورم تکنیک های مختلف انتقال داده هست

شما وقتی تصمیم میگیرید انتقال داده دو طرفه داشته باشید یا باید از وب سوکت استفاده کنید یا از flash یا با تکنیک های http و از تکنیک long polling استفاده کنید

اما انجین ایو خودش تشخیص میده که بهترین چی هست و با بهترین ترنسپورت دیتای شما رو انتقال میده یعنی اگه دیوایس از websocket پشتیبانی کنه و مشکلی وجود نداشته باشه انجین ایو تصمیم میگیره

که وب سوکت بهترین انتخابه در غیر این صورت به لانگ پولینگ بر میگرده

انجین ایو تشکیل شده از دو بخش

سرور:

اگر چه انجین ایو یک پروتکل هست ولی در پیاده سازیش از معماری کلاینت سرور استفاده شده

و بخش سرور انجین ایو یک سرور تمام کمال رو با نود براتون پیاده سازی میکنه که از ترنسپورت های وب سوکت و http پشتیبانی میکنه

کلاینت :

کلاینت های بیشتری برای ارتباط با انجین ایو وجود دارند از جمله کلاینت های js / golang / python / java و اگه حوصله دارید میتونید با خوندن قواعد این پروتکل کلاینتش رو پیاده سازی کنید

این پروتکل چقدر شانس زنده موندن داره ؟

پروتکل انجین ایو صرفا برای حل مشکلات سازگاری وب سوکت و مرورگر خلق شد و به وجود اومد اما امروزه با اضافه شدن ابزار های مختلف به این کتابخونه

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

۱ – فایروال ها مانع انتقال بشن

۲ – شما مجبور بشید برخی چیز های زیر ساختی مثل mqtt رو ترنسپورت کنید

۳ – نیاز به پیاده سازی heartbeat و reconnecting منظم داشته باشید

۴ – انتقال داده ها براتون خیلی مهم باشن

۵ – بخواید یک پروتکل سطح بالاتر طراحی کنید

واکا

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

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

شاد باشید

https://www.namlik.me/article/%D9%88%D8%A7%DA%A9%D8%A7