اولین کامپیوتر تجاری کاملاً کاربردی در جهان- Z4

اولین کامپیوتر تجاری کاملاً کاربردی در جهان- Z4

Konrad Zuse هر چند از پیشینه مهندسی عمران تأثیر بسزایی در معماری رایانه بر جای گذاشت

کنراد زوس مسخره کننده رایانه مدرن است. منبع-https: //web.archive.org/web/20020327194021/http: //epemag.com /zuse/Images/fig107b.jpg

سال 1938 است ، یک آپارتمان در برلین از سر و صدای مکانیکی در حال وزوز بود. سر و صدا ناشی از اختراع مبتکرانه توسط یک پسر 23 ساله است. کانکس محل تولد اولین…

بود

طنز

طنز

یک حقیقت از رایانه مک من: آلت تناسلی شما از بین نمی رود

و سایر افشاگری های جالب حمام

عکس هایکو هیسبرگ در Unsplash

"چرا او همچنان خود را لمس می کند؟"

نوه نه ساله ام این سوال را از من پرسید در حالی که ما برادر شش ماهه اش را حمام می کردیم.

رایانه BASIC مبتنی بر آردوینو خود را تنها با چند دلار بسازید

رایانه BASIC مبتنی بر آردوینو خود را تنها با چند دلار بسازید

زبان برنامه نویسی BASIC (کد دستورالعمل نمادین همه کاره مبتدی) اکنون بیش از 50 سال عمر دارد. اگر از رایانه خانگی دهه 70 یا 80 استفاده کرده اید ، مطمئناً در معرض آن قرار گرفته اید ، زیرا اکثر رایانه های آن دوران با مترجم BASIC نصب شده بودند. محبوبیت آن در دهه 90 کاهش یافت ، اما این بدان معنا نیست که شما نمی توانید رایانه اصلی خود را بسازید تا امروز لذت های زبان را تجربه کنید.

Rob Cai یک آموزش فوق العاده در مورد چگونگی ساخت رایانه BASIC مبتنی بر آردوینو به اشتراک گذاشته است و فقط برای شما هزینه دارد چند دلار تنها چیزی که نیاز دارید یک جفت آردوینو ، یک درگاه PS2 برای صفحه کلید و یک درگاه VGA برای خروجی ویدئو به یک مانیتور است. شما به آردوینوهایی نیاز دارید که از میکروکنترلر ATmega328 استفاده می کنند ، اما خوشبختانه این دستگاه هم در Uno در همه جا و هم در نانو کوچک و ارزان وجود دارد.

دو آردوینو مورد نیاز است ، زیرا یکی به عنوان رایانه خود TinyBASIC Plus را اجرا می کند ، در حالی که دیگری وظیفه فشرده تولید خروجی ویدئوی VGA را بر عهده دارد. این خروجی ویدئو رنگی است ، که ارتقاء خوبی از پیاده سازی های رایج سیاه و سفید است. تنها کاری که باید انجام دهید این است که یک مانیتور و صفحه کلید را وصل کنید ، و می توانید مستقیماً در مترجم BASIC بوت کنید و برنامه نویسی را شروع کنید!

معرفی Motoko Playground ، یک محیط توسعه آنلاین برای رایانه اینترنتی

معرفی Motoko Playground ، یک محیط توسعه آنلاین برای رایانه اینترنتی

زمین بازی Motoko به کاربران امکان می دهد قراردادهای هوشمند Canister را مستقیماً در یک مرورگر وب ایجاد و مستقر کنند.

توسط یان چن ، مهندس ارشد نرم افزار | DFINITY

برای ساده سازی تجربه توسعه دهندگان با استفاده از رایانه اینترنتی ، تیم زبان بنیاد DFINITY انتشار منبع باز Motoko Playground ، یک محیط توسعه یکپارچه (IDE) را که بر روی بلاک چین رایانه اینترنتی اجرا می شود ، اعلام می کند.

استفاده از Motoko ، یک زبان برنامه نویسی Motoko Playground که برای پشتیبانی یکپارچه از مدل برنامه نویسی رایانه اینترنتی طراحی شده است ، به کاربران اجازه می دهد بدون نیاز به بارگیری SDK DFINITY Canister یا راه اندازی کیف پول ، قراردادهای هوشمند Canister را مستقیماً در مرورگر وب ایجاد و مستقر کنند. از آنجا که توسعه دهندگان نیازی به ایجاد محیط توسعه خود ندارند ، این تجربه کامل در مرورگر به همه این امکان را می دهد که هنگام آزمایش برنامه نویسی در رایانه اینترنتی از هر کجا ، Motoko را کاوش و یاد بگیرند.

شروع به کار با Motoko زمین بازی

پس از ورود به dapp ، می توانید انتخاب کنید که می خواهید با چه پروژه ای کار کنید و در رایانه اینترنتی مستقر شوید. در زیر نمونه کار استفاده از زمین بازی Motoko آمده است.

مرحله شماره 1: یک پروژه نمونه را انتخاب کنید.

برای کمک به شروع سریع توسعه دهندگان جدید ، چندین پروژه Motoko از پیش نمایش نمونه های DFINITY از جمله پیشخوان ، دفترچه تلفن ، پیچ و خم تصادفی و ناشر از قبل انتخاب شده اند. /خدمات مشترکین همچنین می توانید هر کد Motoko را از Github وارد کنید.

بیایید می گویند که مثال Counter از لیست بالا انتخاب شده است. در پیوند "Main.mo" در ناوبری ، می توانید کد را مشاهده کنید.

مرحله دوم: پس از انتخاب پروژه ، روی دکمه "استقرار" در گوشه سمت راست بالا کلیک کنید تا برنامه ایجاد و استقرار شود. قوطی در رایانه اینترنتی.

پس از کلیک روی "استقرار ، ”نام قوطی را که می خواهید مستقر کنید ، مشخص کنید. در این مورد ، نام قوطی ای که مایل به استقرار آن هستید "اصلی" است. استقرار چندین ثانیه طول می کشد ، زیرا باید یک شناسه Canister رایگان از رایانه اینترنتی دریافت کرده و ماژول کامپایل شده WebAssembly (Wasm) را نصب کنید.

مرحله 3: پس از استقرار Canister ، رابط کاربری Candid در سمت راست می توان برای آزمایش کد استفاده کرد.

با استفاده از رابط کاربری Candid ، می توانید از طریق مرورگر با Canister ارتباط برقرار کنید - می توانید مقدار اولیه را پرس و جو کنید ، شمارنده را افزایش دهید و غیره. (در صورت تمایل ، می توانید از ابزارهای رابط خط فرمان ، مانند dfx یا ic-repl ، برای تعامل با قوطی استفاده کنید.)

مرحله 4: اگر می خواهید تغییراتی در کد را می توانید در ویرایشگر انجام دهید. به عنوان مثال ، در زیر ما روش را به get2 () تغییر داده ایم.

مرحله 5: برای استقرار مجدد ، دوباره دکمه "استقرار" را فشار دهید. از آنجا که سیستم قبلاً می داند که شما یک قوطی به نام "Main" دارید ، باید مشخص کنید که آیا می خواهید قوطی موجود را ارتقا دهید یا یک قوطی جدید را به طور کامل نصب کنید. با مثال زیر ، قوطی موجود را ارتقا می دهیم.

مرحله 6: از آنجا که شمارنده در حافظه پایدار است ، پس از ارتقا ، هنگامی که روش جدید get2 را فرا می گیرید ، شمارنده را برمی گردانداز آخرین بار (به جای 0) به عنوان مقدار اولیه.

< مرحله 7: زمین بازی Motoko از آرگومان های نصب پشتیبانی می کند. در مثال زیر ، می توانید یک کلاس بازیگر برای شمارنده اضافه کنید.

< /img>

مرحله 8: هنگامی که می خواهید قوطی خود را مستقر کنید ، سیستم می داند که یک آرگومان نصب وجود دارد و مقدار شروع شمارنده را درخواست می کند. در مثال ، مقدار شروع در حال حاضر 42 است و می توانید قوطی را دوباره نصب کنید.

مرحله 9: اکنون ، هنگامی که مقدار اولیه را درخواست می کنید ، شمارنده مقدار 42 را باز می گرداند ، همانطور که در هنگام استقرار مشخص کرده بودید.

برای پروژه های بزرگ ، توسعه دهندگان معمولاً باید از کتابخانه های Motoko شخص ثالث استفاده کنند. زمین بازی Motoko از مجموعه بسته کشتی ، که مجموعه ای از کتابخانه های Motoko است که از جامعه نگهداری می شود ، پشتیبانی می کند. شما می توانید این کتابخانه ها ، مانند تجزیه ، SHA256 و کتابخانه های مختلف ساختار داده را با کلیک روی دکمه "+" در بخش بسته ها در ستون سمت چپ وارد کنید.

Motoko Playground از ویژگی های مشابه شما پشتیبانی می کند. محیط توسعه محلی ، مانند فراخوان های بین کانتری ، ارتقاء کانیستر ، نصب کلاس بازیگر با آرگومان های راه اندازی اولیه و کتابخانه های شخص ثالث. به عنوان یک تمرین جالب ، توسعه دهندگان تشویق می شوند که مخزن CanCan را وارد کنند ، کتابخانه "sequence" را از قسمت بسته اضافه کنند و قوطی پشتی را در زمین بازی Motoko در داخل یک مرورگر وب بسازند.

علاوه بر این نسخه مستقل Motoko Playground ، یک نسخه تعبیه شده نیز وجود دارد که در دفترچه راهنمای زبان Motoko استفاده می شود. این یک نسخه سبک از Motoko Playground است که در آن کاربران می توانند به صورت تعاملی کد موجود در اسناد را تغییر داده و بدون نیاز به نصب کد در رایانه اینترنتی ، کد را فوراً در مرورگر اجرا (تفسیر) کنند.

چگونه زمین بازی Motoko

همه کد منبع بازی Motoko اکنون عمومی است. توسعه دهنده ای که کد را مرور می کند ، یک برنامه وب کامل با یک جاوا اسکریپت جلویی و یک قوطی پشتی پیدا می کند که چرخه های رایگان را که در Motoko و Rust نوشته شده است مدیریت می کند.

برخلاف اکثر موارد آنلاین IDE ها ، کامپایلر Motoko به لطف کامپایلر js-of-ocaml در قسمت جلویی میزبانی می شود. این به طور خودکار نگرانی های امنیتی و مقیاس پذیری را برطرف می کند ، زیرا کامپایلر به جای سرور از راه دور در مرورگر کاربر اجرا می شود. به طور خاص ، قسمت جلویی از اجزای زیر تشکیل شده است: برجسته سازی و اعتبار سنجی نحو Motoko. یک مدیر بسته کشتی که کتابخانه های شخص ثالث را از مجموعه بسته کشتی بارگیری می کند. یک ماژول استقرار که نصب/ارتقاء Canister ، کلاس بازیگر و رابط کاربری واضح. ماژول وارد کردن کد که اجازه وارد کردن هر کد Motoko از Github را می دهد.

چرخه های رایگان و قسمت پشتی

برای پشتیبانی از پذیرش برنامه نویس ، DFINITY تهیه چرخه های رایگان برای قوطی های مستقر در زمین بازی Motoko ، به طوری که کاربران جدید مجبور نباشند یک کیف پول چرخه برای کاوش Motoko و رایانه اینترنتی تنظیم کنند.

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

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

برای اطمینان از انصاف منابع ، می خواهیم از انتقال تعداد زیادی چرخه به کاربران جلوگیری کنیم. قوطی های مخصوص خودشان به عنوان مثال ، می توانید به راحتی با فراخوانی روش depos_cycles در قوطی مدیریتی ، همه چرخه های موجود در قوطی بازی مستقر در زمین بازی را به قوطی مورد نظر منتقل کنید. برای جلوگیری از این حمله ، ما تمام ماژول های ارائه شده Wasm را بازرسی کرده و دستورالعمل های انتقال چرخه را در سطح Wasm حذف می کنیم. از آنجا که Motoko در حال حاضر کتابخانه تجزیه و تحلیل Wasm ندارد ، برای دستیابی به این هدف از قوطی Rust استفاده می شود. هر بار که Motoko درخواست نصب دریافت می کند ، ماژول Wasm را برای بازرسی به Rust Rust ارسال می کند. این در واقع الگوی جالبی است که از پشتیبانی FFI در Motoko تقلید می کند.

در آینده ، وقتی کاربران کیف پول خود را برای استقرار تهیه کنند ، که موارد استفاده پیشرفته تری را امکان پذیر می کند ، این محدودیت ها کاهش می یابد.

< p> ما قصد داریم بسیاری از ویژگی های دیگر را اضافه کنیم تا Motoko Playground را به عنوان یک IDE وب کامل برای رایانه اینترنتی تبدیل کنیم. از مشارکت های جامعه استقبال زیادی می شود!

در همین حال ، امیدواریم از جستجوی راحت Motoko ، زبان مادری رایانه اینترنتی ، مستقیماً در مرورگر وب ، بدون بارگیری SDK لذت ببرید. توسعه دهندگان علاقه مند همچنین تشویق می شوند تا کد منبع باز Motoko Playground را مرور کنند. ____ شروع به ساختن در sdk.dfinity.org کنید و به انجمن توسعه دهندگان ما در forum.dfinity.org بپیوندید.