شکن – نسخه ویندوز (غیررسمی)

اگر مقداری درگیر فعالیت های کامپیوتری شده باشید (غیر از بازی کردن! 😂) نیازی به گفتن نیست که بسیاری از سرویس های مطرح اینترنتی و یا وبسایت های آنها اجازه ی ورود به ما نمی دهند و به اصطلاح تحریممان کرده اند! بعضی سایت ها مانند اوراکل یا ادوبی که حتی زحمت نکشیده اند صفحه ی اعلام عدم اجازه عبور درست کنند و کلا صفحه ی سفید نشانمان می دهند!
خلاصه، برای دور زدن تحریم ها هر کسی کاری می کند؛ یکی سرور خارجی می خرد، یکی چیز پی ان(!)، یکی قند-#شکن! و…
اما جدیدا با سرویسی آشنا شده ام که علاوه بر رایگان بودن، سرعت بسیار بالایی هم دارد انگار که اصلا دور زدنی در کار نیست!


شکن، نام این سرویس جالب ایرانی است که تنها با تنظیم دو آدرس DNS در تمامی دستگاه ها فعال شده و در آدرس های خاصی که از پیش گزارش شده اند تحریم را مثل آب خوردن دور می زند! نکته مثبت آن این است که غیر از تنظیم DNS احتیاج به تنظیم پرا-کسی در نرم افزار های همان سرویس های تحریم کننده ندارد (مثل نرم افزار مدیریت اس دی کی اندروید)…

چند وقتی بود که دنبال ساخت نرم افزاری برای تنظیم و پاک کردن DNS های شکن بودم. هرچند تنظیم DNS کار ساده ایست اما هربار تنظیم و برداشتن آن زمان‌بر است؛ خصوصا که مسیر بسیار بد دستی هم دارد (😁) و میانبری هم با جستجو در استارتِ ویندوز۱۰ بالا نمی‌آید. به همین خاطر دست به کار شدم تا نرم افزاری بسازم که با استفاده از C# و رابط کاربری WPF امکان تغییر DNS را به کاربر بدهد.

در این نرم افزار که به رایگان در گیت هاب منتشر شده است (و می‌تواند برای افرادی که به دنبال کد های تغییر dns در ویندوز به وسیله C# wpf هستند بسیار مفید باشد)، می‌توانید با فشردن یک کلید DNS ویندوز خود را بر روی آدرس های شکن قرار داده با با فشردن دوباره همان کلید آنها را پاک کرده و به حالت اول برگردانید.

دریافت نرم افزار از گیت هاب

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

صفحه ی برنامه در آزمایشگاه ابر

روبی ویتا – برنامه نویسی برای کودکان

روبی ویتا

یادم می آید از زمانی که روی ربات روبی کار می‌کردم به فکر ساخت نسخه ای کودکانه برای آن بودم؛ شایدم هم نه، از قبل تر! زمانی که آقای نیرومند به من گفت:

…خلاصه، می‌خوام بگم اون زحمتی که می‌خوای بکشی شاید کاربرد زیادی نداشته باشه.

اما چیزی که پیشنهاد می‌کنم انجام بدی، طراحی Robi هست که در مطلب اخیر صحبت کردم.

اگر بتونی اون رو در حد یک روبات ۱۰ سانتی متری کوچیکش کنی و چیزی شبیه به عروسک نمادِ آندروید کنی، عالی می‌شه.

به خصوص اگر بتونی حداقل در مراحل بعد یک ماژول Wi-Fi هم روش بذاری که بتونه بی‌سیم دستور بگیره، دیگه فوق‌العاده می‌شه.

ما می‌خواهیم Robi روباتی باشه که از یک خط فرمان، دستوراتی رو که ضمیمه کردم (و منتشرش نکن) دریافت و اجرا کنه.

می‌تونی این پروژه رو پیگیری کنی؟

و من در جوابش فرستاده ام:

برای روبی هم، راستش من خودم برای خودم داشتم روی یه برد ایرانی آردوینویی کار میکردم با یه محیط برنامه نویسی شبیه اسکرچ به نام ماجراجو؛ ولی روبی هم چیز خوبیه و میتونم روش کار کنم.

چند وقتی بود که در فکر ساخت یک محیط برنامه نویسی ساده شده بودم؛ شبیه اسکرچ کودکان؛ با الهام از خط زمانِ برنامه های تدوین فیلم که تکه ها در یک خطر قرار می گیرند و به ترتیب اجرا می شوند. نمونه ی اولیه خیلی افتضاح بود 😀 به قدری که هنوز خط زمان را تکمیل نکرده پاکش کردم!

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

این طرحی بود که ۳۰ شهریور ۹۶ (یک روز مانده به محرم) موقع تحویل روبی به آقای نیرومند نشان دادم و خوششان آمد:

بعد از اتمام روبی بتا کار روی ساخت نسخه کودکان آن شروع شد؛ برآورد اولیه این بود که بازی تا بهمن ماه به انتشار برسد. طراحی نوار زمانی که چینه ها را روی آن بتوان چید کار سختی بود که تابحال انجام نداده بودم و چالش من در طراحی بازی بود…

ادامه ی مطلب

جلسه کاری!

جلسه کاری امشب؛ در مورد فلسفه آزمایشگاه ابر حرف زدیم و حرف زدیم و حرف زدیم!

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

و در ادامه جلسه با صرف یکی و نصفی ساندویچ به پایان رسید. این اون نصفیشه 😁☝️.

امید هست…

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

عجب روضه ای داریم ما! عجب ذکر مصیبتی! عجب همه به همین خاطر اومدن!
اما با این حال به همین روضه ها امید دارم…

پ.ن۱: تجربه م میگه یک روضه ی بد، بهتر از روضه نگرفتن است…
پ.ن۲: وسط نوشتن این یکی میگه فکر کنم همه ثواب روضه برای منه چون من این دو تا شیطنت رو اینجا نشوندم ساکت کردم (اشاره به بازی دسته جمعی انواع بازی های اندرویدی!)
احتمالا آن یکی و آن یکی و این یکی و من هم همین فکر رو میکنم😐. اون یکی هم که کلا شوته.
پ.ن۳: شنیدید کودک شیعه ی عربستانی رو در مدینه سر بریدن؟

چگونه با دو رله موتور را به صورت چپگرد و راستگرد کنترل کنیم؟ (ساخت پل H با رله)

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

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

بعد از کمی جستجو برای یافتن مداری که بتوان با دو کلید موتور را راستگرد و چپگرد کرد، با پل H یا H-Bridge آشنا شدم:

ساختار پل H ( به شکل H مانند آن دقت کنید )

در این مدار می توان به راحتی با تغییر وضعیت کلید های ۱ و ۴ و همچنین کلید های ۲ و ۳، بدون هیچ زحمتی جهت موتور را تغییر داد. با الهام از طرح بالا، به طرح زیر برای استفاده در دو رله می رسیم:

تصویر بسیار گویاست؛ با تغییر وضعیت رله ها، نوع قطب دو سر موتور تعیین می شود. برای خاموش کردن موتور هم می توان همزمان هر دو رله را در وضعیت A یا B قرار داد.

امشب، نشست صمیمی با آقای سرشار در مدرسه ی اسلامی هنر (تصویر اول) و دنیای کتاب (تصویر دوم)؛ تغییر را احساس کنید!

از آقای سرشار پرسیدم که قبلا گفته بودید تنظیم تبلیغات شبکه ی کودک دست شما نیست، تایید کردن؛ میخواستم بگم زنگ بزنیم ۱۶۲؟ که خودشون گفتن. ایده هایی هست به امید خدا…

قم، عُشِّ آل محمد

برای ثبت در تاریخ:
عُش در لغتنامه ی دهخدا به معنای آشیانه است؛ عُش آل محمد یعنی آشیانه ی اهل بیت (=قم).

امروز دو نفر از زائرین این رو پرسیدند، بلد نبودم؛ بقیه هم ظاهرا بلد نبودند. کاش زودتر در اینترنت میگشتمش! 🙂

 

پنجرا – اجرای یک برنامه در برنامه ی دیگر!

برای پیش تولید یکی از پروژه ها، نیاز به کدی بود که با آن بتوانیم یک نرم افزار را داخل یکی دیگر و بدون نوار عنوان اجرا کنیم! ابتدا از شنیدن همچین چیزی شاخ در اوردم و می گفتم اصلا مگر همچین چیزی امکان دارد؟! اما بعد از مقداری جستجو به فناوری OLE رسیدم که مخفف Object Linking & Embedding است و از سال ۱۹۹۰ در حال توسعه است و در حال مرگ هم هست! 😐

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

شما می توانید پنجرا را از اینجا دریافت کرده و امتحان کنید.

درایور نوار LED RGB با مادون قرمز و بلوتوث

اگر تا بحال قصد نور دهی به یک LED یا LED RGB (RGB سرواژه سه رنگ اصلی یعنی قرمز و سبز و آبی ست) را با یک پردازنده داشته باشید، حتما در جریان هستید که مقدار جریانی که از هر پایه آن می توانید بکشید بیشتر از ۱۰ میلی آمپر نمی تواند باشد زیرا پردازنده ها موجودات ظریفی هستند! 🙂
همچنین ولتاژ مورد نیاز یک نوار LED RGB چیزی در حدود ۱۲ ولت است، نه ۵ ولت اتمگا (و نه ۳٫۳ ولت پردازنده های ARM)

اما چاره چیست؟

یکی از معمول ترین راه ها استفاده از ترانزیستور های ماسفت است؛ با استفاده از یک ماسفت می توانید ولتاژ و جریان زیادی را به کمک ولتاژ و جریانی کم به راحتی هرچه تمام تر کنترل کنید.

طی جستجو های من، ماسفت TIP120 یا TIP122 برای این کار مناسب به نظر می آمد. با توجه به اینکه نوار ال ای دی مورد نظر من آند مشترک و سه پایه برای کنترل داشت، سه ماسفت TIP122 را به قیمت دانه ای ۵ هزار تومان خریدم و در مدار استفاده کردم اما در هنگام استفاده آیسی ها بسیار داغ می کردند و این اصلا خوب نبود؛ به خصوص که نوار فعلی تنها ۵ ال ای دی داشت اما پروژه باید توانایی کنترل نوار های چند متری را هم میداشت (یعنی بیش از ۳ آمپر در حالی که جریان فعلی به نیم آمپر هم نمی رسید!). پس دوباره جستجو کردم و اینبار به ماسفت ST13007 رسیدم که توانایی کار تا ۵۰ ولت و ۳۰ آمپر را داشت و آفتاب رایانه آن را تنها ۱۹۰۰ تومان میفروخت! بعدا که از یکی از مغازه های پاساژ بهشتی پرسیدم، متوجه شدم که قیمت TIP122 هم ۱۹۰۰ تومان بوده اما دنیای الکترونیک با کمال وقاحت آن را ۵ هزار تومان فروخته!

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

ولتاژ ۱۲ ولت از پایه ۳ وارد می شود؛ به وسیله ی پایه ۱ کنترل می شود و به پایه ۲ می ریزد که به یکی از پایه های نوار LED RGB متصل است.

دستگاه از طریق کنترل مادون قرمز و فرامین بلوتوث دستور می گیرد؛ دستوراتی مانند تنظیم قرمز و سبز و آبی، تنظیم دو حالته روشنایی، چهار حالت رقص نور و…