Forwarded from کدنویس یکروزه
This media is not supported in your browser
VIEW IN TELEGRAM
از چند وقت پیش که در حال ساخت مدل زبانی بودم، ساختار شبکهی عصبی اونها منو کاملاً بهم ریخت. چون متوجه شدم که هر جوری اونو بسازم نمیتونم دقیقاً جوابهای اونو حدس بزنم! یعنی هر چی دامنهی لغات و یادگیری بالا بره، احتمالات تودرتو در انتخاب کلمات اونقدر متنوع میشن که عملاً دیگه اون مدل صاحب آگاهی میشه و از یک روبات دقیق با کارهای تعریف شده فاصله میگیرن! برای همین متوقف شدم! دیدم حتا تصورش هم ترسناکه که برنامهی تو موبایلم در مورد خودم نظر داشته باشه!
حالا با اینکه شبکه های عصبی رو دنبال نمیکنم باز متعجب میشم چون فقط یک امکان جمله سازی آزاد که بهش دادم باعث شد اونو تبدیل به یک شاعر شوریده کنه! چون جملات جدیدی که حتا به کمک جملات انتخابی و دقیق و آموزش داده شده می سازه هم باز فلسفی و تکان دهنده میشن!
بزرگترین درس در این مسیر برای خودم این بود که پس ما هم جز روبات یا ماشین های تنظیم شده نیستیم! اون برداشتی هم که نسبت به احساسات خودمون داریم توهماتی بیش نیستن. بله خود ما روبات های کربنی و کاملاً (تأکید میکنم) کاملاً برنامه ریزی شده هستیم! دغدغهی این روزهام حالا گاهی هک کردن خودمه! یعنی عملکردی فارغ از روتین بگیرم!
حالا با اینکه شبکه های عصبی رو دنبال نمیکنم باز متعجب میشم چون فقط یک امکان جمله سازی آزاد که بهش دادم باعث شد اونو تبدیل به یک شاعر شوریده کنه! چون جملات جدیدی که حتا به کمک جملات انتخابی و دقیق و آموزش داده شده می سازه هم باز فلسفی و تکان دهنده میشن!
بزرگترین درس در این مسیر برای خودم این بود که پس ما هم جز روبات یا ماشین های تنظیم شده نیستیم! اون برداشتی هم که نسبت به احساسات خودمون داریم توهماتی بیش نیستن. بله خود ما روبات های کربنی و کاملاً (تأکید میکنم) کاملاً برنامه ریزی شده هستیم! دغدغهی این روزهام حالا گاهی هک کردن خودمه! یعنی عملکردی فارغ از روتین بگیرم!
Forwarded from TorhamDev | تورهام 😳
تاحالا شده دلتون بخواد built-in های پایتون تبدیل به async بشن؟
اگه آره ابزار gevent این کار میکنه!.
با استفاده از geven و ایموپرت کردن و صدا زدن مانکیپچ میتونید اینکار انجام بدید.
import gevent
gevent.monky_patch()
با این کار اونها تبدیل میشن به async. اما باید توجه کنید کنه مانکیپچ ابزارهایی 3rd پارتی و کتابخونههاتون رو نمیتونه async کنه. برای مثال روی requests بخوایید همچین کاری کنید این اتفاق نخواهد افتاد. ابزارها باید مانکیپچینگ رو ساپورت کنن تا این اتفاق بیوفته. اما اگه بخوایید requests رو async ران کنید چی؟
اسم gevent از greenlet میاد. یک ابزار pesudo-thread هستش. یعنی چی؟
ما ۲ مدل مولتی تردینگ داریم، یک مدلش که یک مدلهست که خود os هندل میکنه. داخل اون کانتکس سوییچ توسط os انجام میشه و بسیار سختگیر هستش!
برای مثال هر ترد ۵ ثانیه زمان اجرا داره و برای os مهم نیست که اون ترد کجای کار هستش. اون رو متوقف میکنه و بقیه رو اجرا میکنه.
کانتکس سوییچ چیه؟ همین که گفتم :). همین جابجا شدن رو میگن کانتکس سوییچ.
یک مدل ترد داریم که بهشون cooperative threading میگن. ابزارهایی مثل greenlet از این سبک استفاده میکنن. این ابزار یک ایونت لوپ برای خودش داره که از ایونت لوپ asyncio و بقیه چیزا جدا هستش. و وقتی چندتا ترد رو spawn میکنه این تردها باهم همکاری میکنن ولی یعنی چی؟
یعنی اگر ترد اول یک ریکوئست http زده و نیاز داره صبر کنه خودش میگه من رو متوقف کن تا دیتایی که لازم دارم بیاد و بقیه رو ران کن.
حالا تمام اینا گفتم که بگم شما میتونید با استفاده از ساختن gevent و درنهایت spawn کردن یا همون ران کردنش اونا اجرا کنید.
با این ابزار میشه parallel هم چیز میزا رو ران کرد. که بعدا اگه خوشتون اومد مینویسم.
در نهایت باید توجه داشته باشید که این ابزار برای اینکه GIL اذیتش نکنه صرفا رو یک ترد اجرا میشه و ایونت لوم خودش داره.
نکته بعدی که هست این ابزار برای تسکهای I/O bound خوبه و اگ میخوایید cpu bound کار کنید احتمالا همون ترد عادی بهتر خواهد بود
آره خلاصه :)
@TorhamDevCH
اگه آره ابزار gevent این کار میکنه!.
با استفاده از geven و ایموپرت کردن و صدا زدن مانکیپچ میتونید اینکار انجام بدید.
import gevent
gevent.monky_patch()
با این کار اونها تبدیل میشن به async. اما باید توجه کنید کنه مانکیپچ ابزارهایی 3rd پارتی و کتابخونههاتون رو نمیتونه async کنه. برای مثال روی requests بخوایید همچین کاری کنید این اتفاق نخواهد افتاد. ابزارها باید مانکیپچینگ رو ساپورت کنن تا این اتفاق بیوفته. اما اگه بخوایید requests رو async ران کنید چی؟
اسم gevent از greenlet میاد. یک ابزار pesudo-thread هستش. یعنی چی؟
ما ۲ مدل مولتی تردینگ داریم، یک مدلش که یک مدلهست که خود os هندل میکنه. داخل اون کانتکس سوییچ توسط os انجام میشه و بسیار سختگیر هستش!
برای مثال هر ترد ۵ ثانیه زمان اجرا داره و برای os مهم نیست که اون ترد کجای کار هستش. اون رو متوقف میکنه و بقیه رو اجرا میکنه.
کانتکس سوییچ چیه؟ همین که گفتم :). همین جابجا شدن رو میگن کانتکس سوییچ.
یک مدل ترد داریم که بهشون cooperative threading میگن. ابزارهایی مثل greenlet از این سبک استفاده میکنن. این ابزار یک ایونت لوپ برای خودش داره که از ایونت لوپ asyncio و بقیه چیزا جدا هستش. و وقتی چندتا ترد رو spawn میکنه این تردها باهم همکاری میکنن ولی یعنی چی؟
یعنی اگر ترد اول یک ریکوئست http زده و نیاز داره صبر کنه خودش میگه من رو متوقف کن تا دیتایی که لازم دارم بیاد و بقیه رو ران کن.
حالا تمام اینا گفتم که بگم شما میتونید با استفاده از ساختن gevent و درنهایت spawn کردن یا همون ران کردنش اونا اجرا کنید.
با این ابزار میشه parallel هم چیز میزا رو ران کرد. که بعدا اگه خوشتون اومد مینویسم.
در نهایت باید توجه داشته باشید که این ابزار برای اینکه GIL اذیتش نکنه صرفا رو یک ترد اجرا میشه و ایونت لوم خودش داره.
نکته بعدی که هست این ابزار برای تسکهای I/O bound خوبه و اگ میخوایید cpu bound کار کنید احتمالا همون ترد عادی بهتر خواهد بود
آره خلاصه :)
@TorhamDevCH
Forwarded from TorhamDev | تورهام 😳
TorhamDev | تورهام 😳
تاحالا شده دلتون بخواد built-in های پایتون تبدیل به async بشن؟ اگه آره ابزار gevent این کار میکنه!. با استفاده از geven و ایموپرت کردن و صدا زدن مانکیپچ میتونید اینکار انجام بدید. import gevent gevent.monky_patch() با این کار اونها تبدیل میشن به async.…
parallel with gevent
تو پست قبلی گفتم که gevent چی هست و چطور خوبه ازش استفاده و به چه دردی میخوره. یکی از کارهایی دیگه که باهاش میتونید انجام بدید true parallelism هستش. یعنی چندین تسک رو به صورت همزمان اجرا کنید. برای این کار باید از تکنیکی استفاده کنید به اسم prefork (پریفورک).
اما prefork چی هست؟
پریفورک به شکل ساده میشه زمانی که یک ترد میخاد اجرا بشه و قبل از اجرا شدنش چندین ترد دیگه رو هم اجرا میکنه و این ترد خودش به عنوان ترد master عمل میکنه و بقیه تردها رو کنترل میکنه.
برای مثال ابزار گونیکورن که خیلیهاتو باهاش آشنا هستید و داخل پروژه های جنگو و ... ازش استفاده میکنید دقیقا همچین کاری میکنه. زمانی که شما یک پروژه جنگو رو با استفاده از گونیکورن اجرا میکنید به استفاده از کانفیگهای شما و کانفیگهای پیشفرض و دیفالتش چندتا به اصطلاح خودش worker اجرا میکنه. این ورکرها داخل تردهای مختلف هستند اما همشون به یک پورت گوش میدن و اگر شما گونیکورن رو متوقف کنید اونها هم متوقف میشن و به شکل کلی گونیکورن master اون ورکرها محصوب میشه.
حالا اینارو گفتم که بگم شما میتونید داخل کد همچین کاری رو با فانکشنهاتون و ... انجام بدید!
به این شکل چندین wsgi سرور توسط خود یکی از ماژولهای gevent به اسم pywsgi که از خود gevent ایمپورت میشه انجام بدید و درنهایت تسکهای ساخته شده رو با استفاده از کتابخونه multiprocessing یک پروسس کنید و به هم جوین کنید.
اما شما نه تنها میتونید این کار کنید بلکه میتونید فانکشنا معمولی رو هم به این سبک ران کنید. اما به این کار دیگه true parallelism نمیگن و بهش میگن concurrent I/O و برای مثال اگر بخواییم ۵ تا ریکوئست همزمان با استفاده از requests بزنیم میتونید همچین کاری کنیم:
فزض کنید فانکشنی به اسم fetch داریم که ورودی یک url میگیره و با requests درخواست http میده و urls هم لیست تمام urlهایی که میخواییم درخواست بزنیم.
آره خلاصه ابزار خوبیه gevent :)
@TorhamDevCH
تو پست قبلی گفتم که gevent چی هست و چطور خوبه ازش استفاده و به چه دردی میخوره. یکی از کارهایی دیگه که باهاش میتونید انجام بدید true parallelism هستش. یعنی چندین تسک رو به صورت همزمان اجرا کنید. برای این کار باید از تکنیکی استفاده کنید به اسم prefork (پریفورک).
اما prefork چی هست؟
پریفورک به شکل ساده میشه زمانی که یک ترد میخاد اجرا بشه و قبل از اجرا شدنش چندین ترد دیگه رو هم اجرا میکنه و این ترد خودش به عنوان ترد master عمل میکنه و بقیه تردها رو کنترل میکنه.
برای مثال ابزار گونیکورن که خیلیهاتو باهاش آشنا هستید و داخل پروژه های جنگو و ... ازش استفاده میکنید دقیقا همچین کاری میکنه. زمانی که شما یک پروژه جنگو رو با استفاده از گونیکورن اجرا میکنید به استفاده از کانفیگهای شما و کانفیگهای پیشفرض و دیفالتش چندتا به اصطلاح خودش worker اجرا میکنه. این ورکرها داخل تردهای مختلف هستند اما همشون به یک پورت گوش میدن و اگر شما گونیکورن رو متوقف کنید اونها هم متوقف میشن و به شکل کلی گونیکورن master اون ورکرها محصوب میشه.
حالا اینارو گفتم که بگم شما میتونید داخل کد همچین کاری رو با فانکشنهاتون و ... انجام بدید!
به این شکل چندین wsgi سرور توسط خود یکی از ماژولهای gevent به اسم pywsgi که از خود gevent ایمپورت میشه انجام بدید و درنهایت تسکهای ساخته شده رو با استفاده از کتابخونه multiprocessing یک پروسس کنید و به هم جوین کنید.
اما شما نه تنها میتونید این کار کنید بلکه میتونید فانکشنا معمولی رو هم به این سبک ران کنید. اما به این کار دیگه true parallelism نمیگن و بهش میگن concurrent I/O و برای مثال اگر بخواییم ۵ تا ریکوئست همزمان با استفاده از requests بزنیم میتونید همچین کاری کنیم:
jobs = [gevent.spawn(fetch, url) for url in urls]
gevent.joinall(jobs)
فزض کنید فانکشنی به اسم fetch داریم که ورودی یک url میگیره و با requests درخواست http میده و urls هم لیست تمام urlهایی که میخواییم درخواست بزنیم.
آره خلاصه ابزار خوبیه gevent :)
@TorhamDevCH
Forwarded from Bardiaism
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy 🌱)
🔶 لینوکس اوبونتو با میزکار Deepin
https://ubuntudde.com/
پ.ن : توصیه نمی کنم نصب کنید.
#لینوکس
@TheRaymondDev
https://ubuntudde.com/
پ.ن : توصیه نمی کنم نصب کنید.
#لینوکس
@TheRaymondDev
UbuntuDDE
UbuntuDDE - Your Beautiful Ubuntu Linux Distribution
UbuntuDDE is a flavor of Ubuntu system with Deepin Desktop Environment. UbuntuDDE is a linux distro based on Ubuntu with the most beautiful desktop environment.
Forwarded from DevTwitter | توییت برنامه نویسی
Forwarded from Geek Alerts
شرکت OpenAI مدل o3-pro، قویترین مدل استدلالی خودش رو برای کاربران اشتراک Pro عرضه کرد. [L] همچنین این شرکت نسخه بروزرسانی شده حافظه رو که قبلا برای کاربران اشتراکی عرضه کرده بود برای کاربران رایگان هم عرضه کرد و دیگه لازم نیست بهش بگید چه چیزی رو به خاطر بسپاره، در لحظه به همه چتهای قبلی دسترسی داره. [L] و درنهایت Codex که ایجنت توسعهدهنده نرمافزارشون بود رو هم برای اشتراک Plus(نسخه ارزونتر اشتراک Pro) عرضه کردند و حالا Codex به اینترنت هم دسترسی داره. [L]
گوگل برای NotebookLM ویژگی اشتراکگذاری نوتبوکها رو اضافه کرده و حالا میتونید یک نوتبوک رو با رفرنسهایی که اضافه کردید به اشتراک بگذارید. [L]
شرکت MistralAI هم از یک agent رونمایی کرده برای IDE و ادیتورهای مختلف که به عنوان اکستنشن میتونید نصبش کنید و ازش استفاده کنید، مشابه Github Copilot ولی برای مدلهای خودش. [L]
🤓 hadi @geekalerts
گوگل برای NotebookLM ویژگی اشتراکگذاری نوتبوکها رو اضافه کرده و حالا میتونید یک نوتبوک رو با رفرنسهایی که اضافه کردید به اشتراک بگذارید. [L]
شرکت MistralAI هم از یک agent رونمایی کرده برای IDE و ادیتورهای مختلف که به عنوان اکستنشن میتونید نصبش کنید و ازش استفاده کنید، مشابه Github Copilot ولی برای مدلهای خودش. [L]
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from DevTwitter | توییت برنامه نویسی
از این آدرس میتونید تمام پروژههای AI گوکل رو ببینید:
labs.google/experiments
@DevTwitter | <Reza Ghanaat/>
labs.google/experiments
@DevTwitter | <Reza Ghanaat/>
Forwarded from DevTwitter | توییت برنامه نویسی
من یک کتابخونه پایتونی نوشتم که میتونه هرکدی رو به ایجنت AI تبدیل کنه:
https://github.com/prp-e/serverless-agents
ممنون میشم استفاده کنید، مشارکت کنید، استار بدید
@DevTwitter | <Mohammedreza Haghiri/>
https://github.com/prp-e/serverless-agents
ممنون میشم استفاده کنید، مشارکت کنید، استار بدید
@DevTwitter | <Mohammedreza Haghiri/>
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy 🌱)
🔶 آیا یه برنامه نویس تازه کار به هوش مصنوعی روی بیاورد؟
استفاده از هوش مصنوعی (مثل ChatGPT، Copilot، Deepseek, Claude و...) بهعنوان یک برنامهنویس تازهکار میتواند هم مفید باشد و هم خطرناک، بسته به نحوه استفاده شما دارد.
مزایا :
۱- یادگیری سریعتر مفاهیم:
— توضیح کدها به زبان ساده و ارائه مثالهای کاربردی.
— پاسخ به سوالات پایهای (مثل «جاوااسکریپت چیه؟» یا «API چطور کار میکنه؟»
۲- رفع خطاها (Debugging):
— تشخیص سریع خطاهای سینتکسی و منطقی در کد شما.
— پیشنهاد راهحل برای خطاهای رایج (مثل مشکلات npm، خطاهای مرورگر و...)
۳- تولید کد اولیه:
— ساخت اسکلت پروژه (مثل یک فرم لاگین ساده یا رابط REST API).
— جلوگیری از «سندروم صفحه خالی» با ارائه نقطه شروع.
۴- افزایش بهرهوری:
— خودکارسازی کارهای تکراری (مثل نوشتن توابع تست، مستندسازی).
— تمرکز بیشتر روی حل مسئله به جای جستجوی طولانی در گوگل.
۵- دستیار شخصیسازی شده:
— پاسخهای متناسب با سطح دانش شما (میتوانید بگویید: «مثل یک مبتدی توضیح بده»).
— در دسترس بودن 24 ساعته.
معایب:
۱- وابستگی بیش از حد:
— اگر همیشه جواب را مستقیماً از هوش مصنوعی بگیرید، مهارت حل مسئله و تفکر انتقادی شما رشد نمیکند.
— خطر تبدیل شدن به «تایپیست کد» به جای «فهمیدن کد».
۲- خطاهای پنهان:
— هوش مصنوعی گاهی کد نادرست یا ناامن تولید میکند (مخصوصاً در مباحث پیچیده مثل امنیت یا معماری).
— تشخیص این خطاها برای تازهکارها سخت است.
۳- فقدان درک عمیق:
— کپیکردن کد بدون فهمیدن «چرایی» آن باعث میشود پایههای یادگیری شما سست بماند.
— در مصاحبههای شغلی یا پروژههای واقعی دچار مشکل خواهید شد.
۴- منسوخ شدن اطلاعات:
— برخی مدلها (مثل ChatGPT 3.5) اطلاعات قدیمی دارند و ممکن است تکنولوژیهای جدید را پوشش ندهند.
۵- کاهش خلاقیت:
— اتکا به هوش مصنوعی ممکن است مانع تجربه کردن راهحلهای شخصی و یادگیری از اشتباهات شود.
#هوش_مصنوعی
@TheRaymondDev
استفاده از هوش مصنوعی (مثل ChatGPT، Copilot، Deepseek, Claude و...) بهعنوان یک برنامهنویس تازهکار میتواند هم مفید باشد و هم خطرناک، بسته به نحوه استفاده شما دارد.
مزایا :
۱- یادگیری سریعتر مفاهیم:
— توضیح کدها به زبان ساده و ارائه مثالهای کاربردی.
— پاسخ به سوالات پایهای (مثل «جاوااسکریپت چیه؟» یا «API چطور کار میکنه؟»
۲- رفع خطاها (Debugging):
— تشخیص سریع خطاهای سینتکسی و منطقی در کد شما.
— پیشنهاد راهحل برای خطاهای رایج (مثل مشکلات npm، خطاهای مرورگر و...)
۳- تولید کد اولیه:
— ساخت اسکلت پروژه (مثل یک فرم لاگین ساده یا رابط REST API).
— جلوگیری از «سندروم صفحه خالی» با ارائه نقطه شروع.
۴- افزایش بهرهوری:
— خودکارسازی کارهای تکراری (مثل نوشتن توابع تست، مستندسازی).
— تمرکز بیشتر روی حل مسئله به جای جستجوی طولانی در گوگل.
۵- دستیار شخصیسازی شده:
— پاسخهای متناسب با سطح دانش شما (میتوانید بگویید: «مثل یک مبتدی توضیح بده»).
— در دسترس بودن 24 ساعته.
معایب:
۱- وابستگی بیش از حد:
— اگر همیشه جواب را مستقیماً از هوش مصنوعی بگیرید، مهارت حل مسئله و تفکر انتقادی شما رشد نمیکند.
— خطر تبدیل شدن به «تایپیست کد» به جای «فهمیدن کد».
۲- خطاهای پنهان:
— هوش مصنوعی گاهی کد نادرست یا ناامن تولید میکند (مخصوصاً در مباحث پیچیده مثل امنیت یا معماری).
— تشخیص این خطاها برای تازهکارها سخت است.
۳- فقدان درک عمیق:
— کپیکردن کد بدون فهمیدن «چرایی» آن باعث میشود پایههای یادگیری شما سست بماند.
— در مصاحبههای شغلی یا پروژههای واقعی دچار مشکل خواهید شد.
۴- منسوخ شدن اطلاعات:
— برخی مدلها (مثل ChatGPT 3.5) اطلاعات قدیمی دارند و ممکن است تکنولوژیهای جدید را پوشش ندهند.
۵- کاهش خلاقیت:
— اتکا به هوش مصنوعی ممکن است مانع تجربه کردن راهحلهای شخصی و یادگیری از اشتباهات شود.
#هوش_مصنوعی
@TheRaymondDev
Forwarded from a pessimistic researcher (Kc)
امروز فهمیدم که خط ۱۴ مترو پاریس هم توسط ایشون با استفاده از زبان Event-B و ابزار Rodin وریفای شده
https://www.clearsy.com/wp-content/uploads/2020/03/Formal-methods-for-Railways-brochure-mai-2020.pdf
https://www.clearsy.com/wp-content/uploads/2020/03/Formal-methods-for-Railways-brochure-mai-2020.pdf
Forwarded from a pessimistic researcher (Kc)
a pessimistic researcher
امروز فهمیدم که خط ۱۴ مترو پاریس هم توسط ایشون با استفاده از زبان Event-B و ابزار Rodin وریفای شده https://www.clearsy.com/wp-content/uploads/2020/03/Formal-methods-for-Railways-brochure-mai-2020.pdf
خب من یکم اینو بیشتر کندوکاو کنم. توی پاریس یکی از چیزای عجیبی که دیدم این بود که برخی از خطوط متروشون مثل خط ۱ و ۴ و ۱۴ بدون راننده بود و کاملا autonomous کار میکرد. حتی شما میتونستی بری انتها یا ابتدای مترو بشینی و از پنجره جلو بیرون رو ببینی. هیچ خبری از اتاق کنترل یا راننده نبود.
برای اینکه بشه به یک چنین سیستمی دستیافت باید بخشهای مربوط به خطوط راهآهن مثل Zone Controller و Interlocking و همچنین بخشهای مربوط به خود قطار مثل automatic train pilot رو طوری ساخت که بتونه driverless train رو ساپورت کنه. برای اینکه سمت نرمافزاری این بخشهایی که گفتم با هم ارتباط داشته باشند و بتونن کار کنن یک تکنولوژی ای استفاده میشه به اسم Communications-Based Train Control یا CBTC. نکتهای که وجود داره اینه که پیادهسازی بخش software این مباحث به شکلی که bug-free باشه کار راحتی نیست. و خب حتی اگر چنین سیستمی نوشته بشه باید اثبات بشه درستیش که خب این یعنی Formal Verification.
سال ۱۹۹۸ برای اولین بار چنین سیستمی طراحی میشه و خط ۱۴ متروی پاریس رو برای این سیستم در نظر میگیرن. این سیستم توسط آقای Jean-Raymond Abrial با استفاده از زبان B اثبات و پیادهسازی میشه. به این صورت که اول کل specification سیستم رو از زبان طبیعی با استفاده از زبان B به شکل فرمال توصیف میکنن و با استفاده از تکنیک Refinement کامپایل میکنن به کد C و Ada. بدین شکل پیادهسازی سیستم کاملا بر spec منطبقه و اثبات میشه که هیچ باگی نداره و میشه Deploy کرد.
تکیه بر چنین framework محکمی، امروزه چندین خط مترو در دنیا داریم که کاملا automated کار میکنن که نقشهای این متروها رو میتونید توی document ای که توی پست قبلی گذاشتم ببینید.
https://www.event-b.org/index.html
برای اینکه بشه به یک چنین سیستمی دستیافت باید بخشهای مربوط به خطوط راهآهن مثل Zone Controller و Interlocking و همچنین بخشهای مربوط به خود قطار مثل automatic train pilot رو طوری ساخت که بتونه driverless train رو ساپورت کنه. برای اینکه سمت نرمافزاری این بخشهایی که گفتم با هم ارتباط داشته باشند و بتونن کار کنن یک تکنولوژی ای استفاده میشه به اسم Communications-Based Train Control یا CBTC. نکتهای که وجود داره اینه که پیادهسازی بخش software این مباحث به شکلی که bug-free باشه کار راحتی نیست. و خب حتی اگر چنین سیستمی نوشته بشه باید اثبات بشه درستیش که خب این یعنی Formal Verification.
سال ۱۹۹۸ برای اولین بار چنین سیستمی طراحی میشه و خط ۱۴ متروی پاریس رو برای این سیستم در نظر میگیرن. این سیستم توسط آقای Jean-Raymond Abrial با استفاده از زبان B اثبات و پیادهسازی میشه. به این صورت که اول کل specification سیستم رو از زبان طبیعی با استفاده از زبان B به شکل فرمال توصیف میکنن و با استفاده از تکنیک Refinement کامپایل میکنن به کد C و Ada. بدین شکل پیادهسازی سیستم کاملا بر spec منطبقه و اثبات میشه که هیچ باگی نداره و میشه Deploy کرد.
تکیه بر چنین framework محکمی، امروزه چندین خط مترو در دنیا داریم که کاملا automated کار میکنن که نقشهای این متروها رو میتونید توی document ای که توی پست قبلی گذاشتم ببینید.
https://www.event-b.org/index.html
www.event-b.org
Event-B.org
The home of Event-B and the Rodin Platform
Forwarded from DevTwitter | توییت برنامه نویسی
از این آدرس میتونید تمام پروژههای AI گوکل رو ببینید:
labs.google/experiments
@DevTwitter | <Reza Ghanaat/>
labs.google/experiments
@DevTwitter | <Reza Ghanaat/>
Forwarded from Database Labdon
🔵 عنوان مقاله
📊 PG Exporter 1.0: Advanced Postgres + Pgbouncer Metrics Exporter for Prometheus
🟢 خلاصه مقاله:
مقالهای که مورد بررسی قرار گرفته، به معرفی یک اکسپورتر جدید برای پایگاه دادهی PostgreSQL میپردازد که بیش از 600 معیار از اجزای اصلی و افزونههای محبوب را افشا میکند. این ابزار در نسخهی 1.0 خود، پشتیبانیهای اولیهای از PostgreSQL 18 را ارائه میدهد. از خصوصیات برجستهی این اکسپورتر قابلیت شخصیسازی کامل آن میباشد، که به کاربران امکان میدهد تا دادههای مورد نیاز خود را به طور دقیق ترکیب و نمایش دهند. به طور خلاصه، این ابزار جدید فرصتهای وسیعی را برای مدیریت دقیقتر و کارآمدتر پایگاههای داده فراهم میآورد، و با پشتیبانی از نسخه جدید PostgreSQL، قابلیتهای گستردهتری را در اختیار مدیران سیستم قرار میدهد.
🟣لینک مقاله:
https://postgresweekly.com/link/169840/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
📊 PG Exporter 1.0: Advanced Postgres + Pgbouncer Metrics Exporter for Prometheus
🟢 خلاصه مقاله:
مقالهای که مورد بررسی قرار گرفته، به معرفی یک اکسپورتر جدید برای پایگاه دادهی PostgreSQL میپردازد که بیش از 600 معیار از اجزای اصلی و افزونههای محبوب را افشا میکند. این ابزار در نسخهی 1.0 خود، پشتیبانیهای اولیهای از PostgreSQL 18 را ارائه میدهد. از خصوصیات برجستهی این اکسپورتر قابلیت شخصیسازی کامل آن میباشد، که به کاربران امکان میدهد تا دادههای مورد نیاز خود را به طور دقیق ترکیب و نمایش دهند. به طور خلاصه، این ابزار جدید فرصتهای وسیعی را برای مدیریت دقیقتر و کارآمدتر پایگاههای داده فراهم میآورد، و با پشتیبانی از نسخه جدید PostgreSQL، قابلیتهای گستردهتری را در اختیار مدیران سیستم قرار میدهد.
🟣لینک مقاله:
https://postgresweekly.com/link/169840/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
GitHub
GitHub - pgsty/pg_exporter: Advanced PostgreSQL & Pgbouncer Metrics Exporter for Prometheus
Advanced PostgreSQL & Pgbouncer Metrics Exporter for Prometheus - pgsty/pg_exporter
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy 🌱)
🔶 آیا یه برنامه نویس تازه کار به هوش مصنوعی روی بیاورد؟
استفاده از هوش مصنوعی (مثل ChatGPT، Copilot، Deepseek, Claude و...) بهعنوان یک برنامهنویس تازهکار میتواند هم مفید باشد و هم خطرناک، بسته به نحوه استفاده شما دارد.
مزایا :
۱- یادگیری سریعتر مفاهیم:
— توضیح کدها به زبان ساده و ارائه مثالهای کاربردی.
— پاسخ به سوالات پایهای (مثل «جاوااسکریپت چیه؟» یا «API چطور کار میکنه؟»
۲- رفع خطاها (Debugging):
— تشخیص سریع خطاهای سینتکسی و منطقی در کد شما.
— پیشنهاد راهحل برای خطاهای رایج (مثل مشکلات npm، خطاهای مرورگر و...)
۳- تولید کد اولیه:
— ساخت اسکلت پروژه (مثل یک فرم لاگین ساده یا رابط REST API).
— جلوگیری از «سندروم صفحه خالی» با ارائه نقطه شروع.
۴- افزایش بهرهوری:
— خودکارسازی کارهای تکراری (مثل نوشتن توابع تست، مستندسازی).
— تمرکز بیشتر روی حل مسئله به جای جستجوی طولانی در گوگل.
۵- دستیار شخصیسازی شده:
— پاسخهای متناسب با سطح دانش شما (میتوانید بگویید: «مثل یک مبتدی توضیح بده»).
— در دسترس بودن 24 ساعته.
معایب:
۱- وابستگی بیش از حد:
— اگر همیشه جواب را مستقیماً از هوش مصنوعی بگیرید، مهارت حل مسئله و تفکر انتقادی شما رشد نمیکند.
— خطر تبدیل شدن به «تایپیست کد» به جای «فهمیدن کد».
۲- خطاهای پنهان:
— هوش مصنوعی گاهی کد نادرست یا ناامن تولید میکند (مخصوصاً در مباحث پیچیده مثل امنیت یا معماری).
— تشخیص این خطاها برای تازهکارها سخت است.
۳- فقدان درک عمیق:
— کپیکردن کد بدون فهمیدن «چرایی» آن باعث میشود پایههای یادگیری شما سست بماند.
— در مصاحبههای شغلی یا پروژههای واقعی دچار مشکل خواهید شد.
۴- منسوخ شدن اطلاعات:
— برخی مدلها (مثل ChatGPT 3.5) اطلاعات قدیمی دارند و ممکن است تکنولوژیهای جدید را پوشش ندهند.
۵- کاهش خلاقیت:
— اتکا به هوش مصنوعی ممکن است مانع تجربه کردن راهحلهای شخصی و یادگیری از اشتباهات شود.
#هوش_مصنوعی
@TheRaymondDev
استفاده از هوش مصنوعی (مثل ChatGPT، Copilot، Deepseek, Claude و...) بهعنوان یک برنامهنویس تازهکار میتواند هم مفید باشد و هم خطرناک، بسته به نحوه استفاده شما دارد.
مزایا :
۱- یادگیری سریعتر مفاهیم:
— توضیح کدها به زبان ساده و ارائه مثالهای کاربردی.
— پاسخ به سوالات پایهای (مثل «جاوااسکریپت چیه؟» یا «API چطور کار میکنه؟»
۲- رفع خطاها (Debugging):
— تشخیص سریع خطاهای سینتکسی و منطقی در کد شما.
— پیشنهاد راهحل برای خطاهای رایج (مثل مشکلات npm، خطاهای مرورگر و...)
۳- تولید کد اولیه:
— ساخت اسکلت پروژه (مثل یک فرم لاگین ساده یا رابط REST API).
— جلوگیری از «سندروم صفحه خالی» با ارائه نقطه شروع.
۴- افزایش بهرهوری:
— خودکارسازی کارهای تکراری (مثل نوشتن توابع تست، مستندسازی).
— تمرکز بیشتر روی حل مسئله به جای جستجوی طولانی در گوگل.
۵- دستیار شخصیسازی شده:
— پاسخهای متناسب با سطح دانش شما (میتوانید بگویید: «مثل یک مبتدی توضیح بده»).
— در دسترس بودن 24 ساعته.
معایب:
۱- وابستگی بیش از حد:
— اگر همیشه جواب را مستقیماً از هوش مصنوعی بگیرید، مهارت حل مسئله و تفکر انتقادی شما رشد نمیکند.
— خطر تبدیل شدن به «تایپیست کد» به جای «فهمیدن کد».
۲- خطاهای پنهان:
— هوش مصنوعی گاهی کد نادرست یا ناامن تولید میکند (مخصوصاً در مباحث پیچیده مثل امنیت یا معماری).
— تشخیص این خطاها برای تازهکارها سخت است.
۳- فقدان درک عمیق:
— کپیکردن کد بدون فهمیدن «چرایی» آن باعث میشود پایههای یادگیری شما سست بماند.
— در مصاحبههای شغلی یا پروژههای واقعی دچار مشکل خواهید شد.
۴- منسوخ شدن اطلاعات:
— برخی مدلها (مثل ChatGPT 3.5) اطلاعات قدیمی دارند و ممکن است تکنولوژیهای جدید را پوشش ندهند.
۵- کاهش خلاقیت:
— اتکا به هوش مصنوعی ممکن است مانع تجربه کردن راهحلهای شخصی و یادگیری از اشتباهات شود.
#هوش_مصنوعی
@TheRaymondDev
Forwarded from GptGate Support
📱 توسعهدهندگان موبایل (iOS/Android)
🖥️ دانشجویان رشتههای کامپیوتر و IT
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from 🎄 یک برنامه نویس تنبل ( MΞ)
❓یه سوال از الفبای کامپیوتر
مهندس ها بفرمایند که، در کامپیوتر چه زمانی جمع دو تا عدد مثبت، منفی میشه ؟
@TheRaymondDev
مهندس ها بفرمایند که، در کامپیوتر چه زمانی جمع دو تا عدد مثبت، منفی میشه ؟
@TheRaymondDev
Forwarded from abolfazl
This media is not supported in your browser
VIEW IN TELEGRAM
ابزار طراحی رابط کاربری Figma قراره با کمک MCP، پروژههارو رو به ابزارهای کدنویسی ایجنت محور مثل Copilot توی VS Code یا Cursor وصل کنه.
این کار باعث میشه به جای توصیف کردن یک طرح برای هوش مصنوعی، اون رو مستقیما به پروژه فیگما وصل کرد و با اسکرین شات و پرامپت نویسی کد رو تغییر داد. تو این حالت هوش مصنوعی درک بهتری از ساختار محیط گرافیکی داره و اون رو توسعه میده.
این ابزار فعلا به صورت بتا برای کاربران با دسترسی کامل فیگما عرضه شده.
🔗 Figma
🤓 abolfazl @geekalerts
این کار باعث میشه به جای توصیف کردن یک طرح برای هوش مصنوعی، اون رو مستقیما به پروژه فیگما وصل کرد و با اسکرین شات و پرامپت نویسی کد رو تغییر داد. تو این حالت هوش مصنوعی درک بهتری از ساختار محیط گرافیکی داره و اون رو توسعه میده.
این ابزار فعلا به صورت بتا برای کاربران با دسترسی کامل فیگما عرضه شده.
Please open Telegram to view this post
VIEW IN TELEGRAM