Forwarded from 🎄 یک برنامه نویس تنبل (Raymond Dev)
🔶 دوره آموزشی طراحی قالب شرکتی بر پایه وردپرس
1- ایجاد پوشه و فایل ها
2- آپلود پروژه در گیت هاب
3- ایجاد سربرگ و صفحه معرفی
4- خدمات ما
5- نمونه کارها
6- آمار شرکت
7- تیم ما
8- مشتریان ما
9- فوتر
10 - جدا سازی بخش های قالب
11- پویا سازی منوها
12- ایجاد پست تایپ ها
13- پویا سازی خدمات ما با متاباکس
14- پویا سازی تیم ما با متاباکس
15- پویا سازی مشتریان ما با متاباکس
16- پویا سازی آمار شرکت
17- پویا سازی نمونه کار
18- ایجاد متاباکس گالری
19- جاوا اسکریپت برای گالری نمونه کار
20- نمایش گالری عکس در نمونه کارها
21- ایجاد برگه و برگه وبلاگ
22- تک صفحه (Single) برای وبلاگ
23- ابزارک ها
24- ایجاد صفحات ۴۰۴ – دسته بندی – بایگانی – جستجو و برچسب ها
25- نظرات
26- ایجاد تنظیمات سایت با فریم ورک Option Tree و فوتر
https://rayium.ir/?p=1412
#دوره
@TheRaymondDev
1- ایجاد پوشه و فایل ها
2- آپلود پروژه در گیت هاب
3- ایجاد سربرگ و صفحه معرفی
4- خدمات ما
5- نمونه کارها
6- آمار شرکت
7- تیم ما
8- مشتریان ما
9- فوتر
10 - جدا سازی بخش های قالب
11- پویا سازی منوها
12- ایجاد پست تایپ ها
13- پویا سازی خدمات ما با متاباکس
14- پویا سازی تیم ما با متاباکس
15- پویا سازی مشتریان ما با متاباکس
16- پویا سازی آمار شرکت
17- پویا سازی نمونه کار
18- ایجاد متاباکس گالری
19- جاوا اسکریپت برای گالری نمونه کار
20- نمایش گالری عکس در نمونه کارها
21- ایجاد برگه و برگه وبلاگ
22- تک صفحه (Single) برای وبلاگ
23- ابزارک ها
24- ایجاد صفحات ۴۰۴ – دسته بندی – بایگانی – جستجو و برچسب ها
25- نظرات
26- ایجاد تنظیمات سایت با فریم ورک Option Tree و فوتر
قیمت دوره ۱,۰۰۰,۰۰۰ تومان
با تخفیف ۶۰ درصد ۴۰۰,۰۰۰ تومان
https://rayium.ir/?p=1412
#دوره
@TheRaymondDev
🔶 دسترسی مبتنی بر نقش کاربری یا Role Based Access Control که به اختصار RBAC هم نامیده میشود مفهومی است که میگوید کاربران میتوانند نقشهای کاربری مختلفی داشته باشند که هر نقش کاربری، دسترسیهای مختلفی دارد.
https://vrgl.ir/0IWEI
@TheRaymondDev
https://vrgl.ir/0IWEI
@TheRaymondDev
🔶 برادر پاول دورف(صاحب تلگرام) یک ریاضیدان قدر هست. که توی مصاحبه هاش خیلی به این مورد اشاره میکنه. مغز متفکر الگوریتم رمزنگاری اختصاصی تلگرام حتی برادر پاول هست.
خوب یکم نگاه کنیم یک ذهن متفکر ریاضیدان کنار یک مرد عملگرا. نتیجه اش میشه تلگرام.حالا یک پیش بینی کنیم.تلگرام بعد تجربه NOT Coin روی شبکه TON میاد برات Hamster Kombat رو معرفی میکنه. تجربه قبلی به کاربر این حس رو منتقل میکنه که حتما این Coin هم نقد میشه. وقتی بازار همستر داغه میاد ارز درون برنامه ای Stars رو معرفی میکنه!
خوب بیایید این دوتا رو بزاریم کنار هم.
در Air Drop همستر تصور کنید به ازای هر ده میلیون coin به کاربران یک Star داده بشه که داخل تلگرام و برات ها و فروشگاه های داخل تلگرام قابل خرج کردن باشه!
خوب شما صاحب پولی هستید که میتونه کلی صاحبان کسب و کار رو بکشونه داخل تلگرام. یا بات هایی که این Star های شما رو تبدیل به ارز دیگه بکنه.رسما یک جامعه چند میلیونی داخل یک App که کاربرانش واحد پولی دارن که برای به دست آوردنش زحمت کشیدن و حالا فقط داخل خود اون جامعه میتونه داد و ستد بشه.
میتونه ارزشی برای Star محاسبه کنه که اونم Static نباشه و شروطی برای قابل تبدیل شدنش به ارز دیگه.
خیلی جالبه این پازل.
•Shayan•
@TheRaymondDev
خوب یکم نگاه کنیم یک ذهن متفکر ریاضیدان کنار یک مرد عملگرا. نتیجه اش میشه تلگرام.حالا یک پیش بینی کنیم.تلگرام بعد تجربه NOT Coin روی شبکه TON میاد برات Hamster Kombat رو معرفی میکنه. تجربه قبلی به کاربر این حس رو منتقل میکنه که حتما این Coin هم نقد میشه. وقتی بازار همستر داغه میاد ارز درون برنامه ای Stars رو معرفی میکنه!
خوب بیایید این دوتا رو بزاریم کنار هم.
در Air Drop همستر تصور کنید به ازای هر ده میلیون coin به کاربران یک Star داده بشه که داخل تلگرام و برات ها و فروشگاه های داخل تلگرام قابل خرج کردن باشه!
خوب شما صاحب پولی هستید که میتونه کلی صاحبان کسب و کار رو بکشونه داخل تلگرام. یا بات هایی که این Star های شما رو تبدیل به ارز دیگه بکنه.رسما یک جامعه چند میلیونی داخل یک App که کاربرانش واحد پولی دارن که برای به دست آوردنش زحمت کشیدن و حالا فقط داخل خود اون جامعه میتونه داد و ستد بشه.
میتونه ارزشی برای Star محاسبه کنه که اونم Static نباشه و شروطی برای قابل تبدیل شدنش به ارز دیگه.
خیلی جالبه این پازل.
•Shayan•
@TheRaymondDev
👍12
Forwarded from Pavel Durov (Pavel Durov)
But it seems I’ll have to change my phone soon
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
Pavel Durov
🔶 حدود ۴۰ سال یا پایان قرن خاورمیانه ۵ درجه گرمتر میشه و غیر قابل سکونت میشه...
منطقهای که از یونان و مصر در غرب تا لبنان، عراق، کشورهای بحرین، کویت، امارات متحده عربی در خلیج فارس و همچنین ایران در شرق امتداد پیدا میکند را دربرمیگیرد.
این نمونه ای که نشان داده شده به این معنی است که واقعا اتفاق افتاده است.
@TheRaymondDev
منطقهای که از یونان و مصر در غرب تا لبنان، عراق، کشورهای بحرین، کویت، امارات متحده عربی در خلیج فارس و همچنین ایران در شرق امتداد پیدا میکند را دربرمیگیرد.
این نمونه ای که نشان داده شده به این معنی است که واقعا اتفاق افتاده است.
@TheRaymondDev
🔶 مدیر یوز اسکریپت با Violentmonkey
تا حالا شده بخواین هردفعه یه کد js خاصی رو توی سایت خاصی اجرا کنید؟
این اکستنشن همون کارو و قابلیت اجرای اسکریپتارو براتون اماده کرده و نیازی به نصب اکستنشنهای مختلف نیستش و از سایتایی مثل زیر:
https://openuserjs.org/
میتونید اسکریپتی که میخواید رو راحت نصب کنید:
حذف تبلیغات-دانلود یوتیوب-توییتر-اینستا-دانلودر زیرنویس و...
خلاصه دستتون بازه
برای مثال خودم واسه سایت همستر برای اینکه دکمه تاییدش روی اعصابه این تیکه کد رو استفاده میکنم:
https://github.com/violentmonkey/violentmonkey
@TheRaymondDev
تا حالا شده بخواین هردفعه یه کد js خاصی رو توی سایت خاصی اجرا کنید؟
این اکستنشن همون کارو و قابلیت اجرای اسکریپتارو براتون اماده کرده و نیازی به نصب اکستنشنهای مختلف نیستش و از سایتایی مثل زیر:
https://openuserjs.org/
میتونید اسکریپتی که میخواید رو راحت نصب کنید:
حذف تبلیغات-دانلود یوتیوب-توییتر-اینستا-دانلودر زیرنویس و...
خلاصه دستتون بازه
برای مثال خودم واسه سایت همستر برای اینکه دکمه تاییدش روی اعصابه این تیکه کد رو استفاده میکنم:
setInterval(() => {
document.querySelector(".bottom-sheet-button")?.click?.();
}, 500);https://github.com/violentmonkey/violentmonkey
@TheRaymondDev
GitHub
GitHub - violentmonkey/violentmonkey: Violentmonkey provides usernoscripts support for browsers. It works on browsers with WebExtensions…
Violentmonkey provides usernoscripts support for browsers. It works on browsers with WebExtensions support. - violentmonkey/violentmonkey
👍1
🔶 استفاده از GraphQL با Apollo در پروژههای React
استفاده از GraphQL به عنوان یک زبان کوئری مدرن و قدرتمند، همراه با Apollo Client، میتواند به طور چشمگیری به بهبود عملکرد و مدیریت دادهها در پروژههای React کمک کند. در این پست، به بررسی چندین تکنیک پیشرفته برای استفاده از GraphQL با Apollo در پروژههای React میپردازم.
تکنیکهای کلیدی:
🔶 کوئریها و Mutationها:
- کوئریها به ما امکان میدهند دادههای دقیق و مورد نیاز را از سرور درخواست کنیم. این قابلیت باعث میشود که درخواستها بهینهتر و سریعتر باشند، زیرا فقط دادههای مورد نیاز به دست میآیند.
- بخش Mutation ها به ما امکان میدهند عملیات تغیر دادهها مانند ایجاد، بهروزرسانی و حذف را به صورت انعطافپذیر انجام دهیم.
🔶 بهروزرسانیها (Optimistic UI Updates):
با استفاده از بهروزرسانیها میتوان تجربه کاربری را بهبود بخشید. این تکنیک به کاربر اجازه میدهد تغییرات دادهها را بلافاصله ببیند، حتی قبل از اینکه سرور این تغییرات را تأیید کند، که بهبود چشمگیری در تعامل و کاربری اپلیکیشن ایجاد میکند. 🔶Fragmentهای GraphQL:
استفاده از Fragmentها به ما امکان میدهد که داده را باز استفاده کنیم و کوئریهای پیچیدهتری بسازیم. این رویکرد نه تنها نگهداری و توسعه کد را سادهتر میکند، بلکه از تکرار کد جلوگیری میکند.
🔶 مدیریت کش (Cache Management):
مدیریت کش یکی از قابلیتهای قدرتمند Apollo Client است که به بهینهسازی عملکرد و کاهش درخواستهای غیرضروری به سرور کمک میکند. با استفاده از سیاستهای کش مختلف میتوان کنترل دقیقی روی نحوه بازیابی و ذخیره دادهها داشت.
🟢 نتیجهگیری :
استفاده از GraphQL و Apollo Client میتواند به طور چشمگیری عملکرد و مدیریت دادهها را در پروژههای React بهبود بخشد. با تکنیکهای پیشرفتهای مانند بهروزرسانیها، استفاده از Fragmentها و مدیریت موثر کش، میتوان اپلیکیشنهای پیچیده و کارآمدتری ایجاد کرد.
https://www.linkedin.com/posts/sajad-tavousi_graphql-apollo-react-activity-7205946355322728448-breQ
@TheRaymondDev
استفاده از GraphQL به عنوان یک زبان کوئری مدرن و قدرتمند، همراه با Apollo Client، میتواند به طور چشمگیری به بهبود عملکرد و مدیریت دادهها در پروژههای React کمک کند. در این پست، به بررسی چندین تکنیک پیشرفته برای استفاده از GraphQL با Apollo در پروژههای React میپردازم.
تکنیکهای کلیدی:
🔶 کوئریها و Mutationها:
- کوئریها به ما امکان میدهند دادههای دقیق و مورد نیاز را از سرور درخواست کنیم. این قابلیت باعث میشود که درخواستها بهینهتر و سریعتر باشند، زیرا فقط دادههای مورد نیاز به دست میآیند.
- بخش Mutation ها به ما امکان میدهند عملیات تغیر دادهها مانند ایجاد، بهروزرسانی و حذف را به صورت انعطافپذیر انجام دهیم.
🔶 بهروزرسانیها (Optimistic UI Updates):
با استفاده از بهروزرسانیها میتوان تجربه کاربری را بهبود بخشید. این تکنیک به کاربر اجازه میدهد تغییرات دادهها را بلافاصله ببیند، حتی قبل از اینکه سرور این تغییرات را تأیید کند، که بهبود چشمگیری در تعامل و کاربری اپلیکیشن ایجاد میکند. 🔶Fragmentهای GraphQL:
استفاده از Fragmentها به ما امکان میدهد که داده را باز استفاده کنیم و کوئریهای پیچیدهتری بسازیم. این رویکرد نه تنها نگهداری و توسعه کد را سادهتر میکند، بلکه از تکرار کد جلوگیری میکند.
🔶 مدیریت کش (Cache Management):
مدیریت کش یکی از قابلیتهای قدرتمند Apollo Client است که به بهینهسازی عملکرد و کاهش درخواستهای غیرضروری به سرور کمک میکند. با استفاده از سیاستهای کش مختلف میتوان کنترل دقیقی روی نحوه بازیابی و ذخیره دادهها داشت.
🟢 نتیجهگیری :
استفاده از GraphQL و Apollo Client میتواند به طور چشمگیری عملکرد و مدیریت دادهها را در پروژههای React بهبود بخشد. با تکنیکهای پیشرفتهای مانند بهروزرسانیها، استفاده از Fragmentها و مدیریت موثر کش، میتوان اپلیکیشنهای پیچیده و کارآمدتری ایجاد کرد.
https://www.linkedin.com/posts/sajad-tavousi_graphql-apollo-react-activity-7205946355322728448-breQ
@TheRaymondDev
Linkedin
Sajad Tavoosi on LinkedIn: #graphql #apollo #react #datamanagement #webdevelopment #ریکت #برنامه_نویسی
سلام دوستان
📡 استفاده از GraphQL با Apollo در پروژههای React
استفاده از GraphQL به عنوان یک زبان کوئری مدرن و قدرتمند، همراه با Apollo Client، میتواند به…
📡 استفاده از GraphQL با Apollo در پروژههای React
استفاده از GraphQL به عنوان یک زبان کوئری مدرن و قدرتمند، همراه با Apollo Client، میتواند به…
🔶 تبدیل یک Ubuntu تازه نصب شده به یک Modern web development system فقط با یک دستور :
https://github.com/basecamp/omakub
https://omakub.org/
#لینوکس
@TheRaymondDev
wget -qO- https://omakub.org/install | bash
https://github.com/basecamp/omakub
https://omakub.org/
#لینوکس
@TheRaymondDev
GitHub
GitHub - basecamp/omakub: Opinionated Ubuntu Setup
Opinionated Ubuntu Setup. Contribute to basecamp/omakub development by creating an account on GitHub.
❤1
🔶 سی ان ان گزارش داده که طرح اینترنت ارزان در آمریکا (ACP) بخاطر نبود بودجه تعطیل شده است.
این برنامه نزدیک به 60 میلیون آمریکایی رو در تنگنای مالی قرار می دهد و به دهها میلیون آمریکایی از جمله سالمندان، کهنهسربازان و ساکنان مناطق روستایی و شهری کمک میکرد تا به اینترنت وصل شود.
#خبر
@TheRaymondDev
این برنامه نزدیک به 60 میلیون آمریکایی رو در تنگنای مالی قرار می دهد و به دهها میلیون آمریکایی از جمله سالمندان، کهنهسربازان و ساکنان مناطق روستایی و شهری کمک میکرد تا به اینترنت وصل شود.
#خبر
@TheRaymondDev
👎1
Forwarded from Pink Orca ✌️ پینک اورکا
This media is not supported in your browser
VIEW IN TELEGRAM
~> Multi Cursor Modifier in VSCode
❌ یکی از مشکلاتی که برای انتخاب همزمان چند تا کرسر تو خیلی از دسکتاپها هستش اینه که مثل ویندوز و... با Alt + Click سلکت نمیشن(چون معمولا کاربرد دیگهای داره Alt تو دسکتاپهایی مثل Xfce و Mate و...)
😬 راهکار چیه؟
😑 کافیه توی فایل settings.json که در آدرس ~/.config/Code/User/settings.json قرار داره خط زیر رو مثل کاری که تو ویدیو انجام شده استفاده کنید و بعدش با Ctrl + Click میتونید چندتایی سلکت کنید با کرسر.
#ترفند #لینوکس #برنامه_نویسی
~> @PinkOrca🩷
"editor.multiCursorModifier": "ctrlCmd"#ترفند #لینوکس #برنامه_نویسی
~> @PinkOrca
Please open Telegram to view this post
VIEW IN TELEGRAM
😁3
👍5
🎄 یک برنامه نویس تنبل
🔶 کتابخانه مولتی اسلایدر بوت استرپ منتشر شد. 🥳🎉 😎 ویژگی جدیدی که به این کتابخانه اضافه شده است افزودن تاج برای سازگاری با موبایل و تبلت است که با لمس انگشتی اسلایدر را حرکت می دهید. با نسخه های ۴ و ۵ فریم ورک بوت استرپ سازگار است. آدرس گیت هاب : https…
🔶 امروز سه ویژگی جدید برای کتابخانه Sliderable اضافه کردم.
۱. افزودن Autoplay
۲. پس از اتمام Autoplay، به حالت پیش فرض باز می گردد.
۳. افزودن تنظیمات جاوا اسکریپت
آدرس گیت هاب :
https://github.com/Rayiumir/Silderable
پیش نمایش :
https://rayiumir.github.io/Silderable/
نکته : این پروژه از Bootsnipp فورک شده است و تغییراتی و ویژگی جدید اعمال شده است.
⭐️ حمایت و ستاره یادت نره دوستان 🙏
۱. افزودن Autoplay
۲. پس از اتمام Autoplay، به حالت پیش فرض باز می گردد.
۳. افزودن تنظیمات جاوا اسکریپت
var options = {
autoPlay: true, // Or false
autoPlayInterval: 3000, // Autoplay interval in milliseconds
swipeThreshold: 50, // Minimum swipe distance in pixels
};آدرس گیت هاب :
https://github.com/Rayiumir/Silderable
پیش نمایش :
https://rayiumir.github.io/Silderable/
نکته : این پروژه از Bootsnipp فورک شده است و تغییراتی و ویژگی جدید اعمال شده است.
⭐️ حمایت و ستاره یادت نره دوستان 🙏
GitHub
GitHub - Rayiumir/Silderable: Simple and Lightweight Multi Item Carousel for Bootstrap 4, 5
Simple and Lightweight Multi Item Carousel for Bootstrap 4, 5 - Rayiumir/Silderable
🔥3
یه کد کوچیک نوشتم که میتونید #همستر رو روی کامپیوتر اجرا کنید.
لینکی که بهتون میده قابل حمل هست و میتونید وقتی گوشی هم در دسترس نیست تو بروزر اجراش کنید یا حتی روی یه کامپیوتر جدید و تاریخ انقضا نداره یا طولانیه.
البته با مسئولیت خودتونه.
کد اینجاست:
https://gist.github.com/NabiKAZ/10ab0c25c0703d5d3f5b9b4acd500c66
منبع:
https://x.com/NabiKAZ/status/1800262630713802752
پ.ن: اصلا کاری به همستر ندارم مهم خلاقیت اینا نکاتی هستش که بدرد میخوره هرکسی یه روشی برای بالا اوردن روی وب پیشنهاد میده و این نکات واقعا ارزشمندن
@TheRaymondDev
لینکی که بهتون میده قابل حمل هست و میتونید وقتی گوشی هم در دسترس نیست تو بروزر اجراش کنید یا حتی روی یه کامپیوتر جدید و تاریخ انقضا نداره یا طولانیه.
البته با مسئولیت خودتونه.
کد اینجاست:
https://gist.github.com/NabiKAZ/10ab0c25c0703d5d3f5b9b4acd500c66
منبع:
https://x.com/NabiKAZ/status/1800262630713802752
پ.ن: اصلا کاری به همستر ندارم مهم خلاقیت اینا نکاتی هستش که بدرد میخوره هرکسی یه روشی برای بالا اوردن روی وب پیشنهاد میده و این نکات واقعا ارزشمندن
@TheRaymondDev
👍7
Forwarded from Golden Code (@lix)
در لاراول یه هلپر مفید داریم با نام literal که بهمون این امکان رو میده با استفاده از آرگومان های نامگذاری شده، یک آبجکت php بسازیم.
مزایاش ؟؟
افزایش خوانایی کد .
ساده تر شدن نحوه مدیریتشون .( مخصوصا در شرایطی که تعداد آرگومان ها زیاده مدیریت برامون ساده تر میشه با استفاده از هلپر literal ).
به مثالش در تصویر دقت کنین تا بهتر براتون جابیفته.
#Laravel
@GoldenCodeir
(به منبع و مثالش دقت کنید👇🏾)
https://x.com/OussamaMater/status/1800258725078274249?s=19
مزایاش ؟؟
افزایش خوانایی کد .
ساده تر شدن نحوه مدیریتشون .( مخصوصا در شرایطی که تعداد آرگومان ها زیاده مدیریت برامون ساده تر میشه با استفاده از هلپر literal ).
به مثالش در تصویر دقت کنین تا بهتر براتون جابیفته.
#Laravel
@GoldenCodeir
(به منبع و مثالش دقت کنید👇🏾)
https://x.com/OussamaMater/status/1800258725078274249?s=19
X (formerly Twitter)
OussamaMater (@OussamaMater) on X
Laravel Tip💡: The "literal" Helper
Did you know that Laravel ships with a cool helper "literal" that allows you to create a PHP object using named arguments? 🚀
#laravel
Did you know that Laravel ships with a cool helper "literal" that allows you to create a PHP object using named arguments? 🚀
#laravel
❤4👍1🔥1
🔶 بهترین موتورهای جستجو برای هکرها
https://github.com/edoardottt/awesome-hacker-search-engines
@TheRaymondDev
https://github.com/edoardottt/awesome-hacker-search-engines
@TheRaymondDev
GitHub
GitHub - edoardottt/awesome-hacker-search-engines: A curated list of awesome search engines useful during Penetration testing,…
A curated list of awesome search engines useful during Penetration testing, Vulnerability assessments, Red/Blue Team operations, Bug Bounty and more - edoardottt/awesome-hacker-search-engines
Forwarded from طبرستان گنو
keepalivedev
مناسب برای افراد سالمند ، افرادی که تنها زندگی میکنن
اگر در مدت زمان معینی از گوشی خود استفاده نکرده باشید، Keep Alive یک پیام سفارشی از طریق پیامک برای یک یا چند نفر ارسال می کند. در نظر گرفته شده برای استفاده به عنوان یک سیستم ایمنی برای کسانی که به تنهایی زندگی می کنند در صورت بروز حادثه یا سایر موارد اضطراری. پس از پیکربندی تنظیمات، نیازی به تعامل بیشتر نیست.
این برای محافظت از افرادی که به تنهایی زندگی می کنند در صورت حادثه یا اضطراری طراحی شده است.
این برنامه از صفحه قفل دستگاه شما برای تشخیص فعالیت استفاده می کند و از شما می خواهد "آیا آنجا هستید؟" اطلاع رسانی در صورت عدم وجود فعالیت
اگر اعلان تأیید نشود، برنامه یک هشدار را راه اندازی می کند و پیامک ارسال می کند یا با مخاطبین اضطراری تماس می گیرد.
#نرمافزار_آزاد
مناسب برای افراد سالمند ، افرادی که تنها زندگی میکنن
اگر در مدت زمان معینی از گوشی خود استفاده نکرده باشید، Keep Alive یک پیام سفارشی از طریق پیامک برای یک یا چند نفر ارسال می کند. در نظر گرفته شده برای استفاده به عنوان یک سیستم ایمنی برای کسانی که به تنهایی زندگی می کنند در صورت بروز حادثه یا سایر موارد اضطراری. پس از پیکربندی تنظیمات، نیازی به تعامل بیشتر نیست.
این برای محافظت از افرادی که به تنهایی زندگی می کنند در صورت حادثه یا اضطراری طراحی شده است.
این برنامه از صفحه قفل دستگاه شما برای تشخیص فعالیت استفاده می کند و از شما می خواهد "آیا آنجا هستید؟" اطلاع رسانی در صورت عدم وجود فعالیت
اگر اعلان تأیید نشود، برنامه یک هشدار را راه اندازی می کند و پیامک ارسال می کند یا با مخاطبین اضطراری تماس می گیرد.
#نرمافزار_آزاد
GitHub
GitHub - keepalivedev/KeepAlive: Android app to notify others if you haven't used your device in a given period of time.
Android app to notify others if you haven't used your device in a given period of time. - keepalivedev/KeepAlive
👍1🤔1🫡1
Forwarded from Woland's Linux Journal (Woland)
💠ترمینال چیست؟💠
تمام ترمینالهایی که ما بهصورت روزانه استفاده میکنیم، در واقع شبیهساز ترمینال هستند.
ترمینال در گذشته یک دستگاه فیزیکال بوده که به یک سیستمعامل و یک کامپیوتر متصل میشده تا امکان تعامل با آن ماشین را فراهم کند.
پس تمام برنامههای شبیهساز ترمینال، اعم از، ترمینال گنوم، کنسول و ... در واقع شبیهساز آن دستگاهها هستند.
امروزه، بیشتر شبیهسازهای ترمینال(Terminal Emulators) در حقیقت شبیهساز XTerm هستند. XTerm یکی از قدیمیترین و کاملترین شبیهسازهای ترمینال است، بنابراین برای سازگاری و هماهنگی با یک استاندارد، دیگر ترمینالها از آن پیروی میکنند.
صفحه وب XTerm میگوید که ترمینالهای سازگار با DEC VT102 و Tektronix 4014 را شبیهسازی میکند. یعنی XTerm شبیهساز ترمینال VT102 است:
شرکت تجهیزات دیجیتال (Digital Equipment Corporation) که به اختصار DEC نامیده میشود، انواع مختلفی از ترمینالها را ساخته است، اما VT100 ترمینالی بود که در بازار موفق شد و تمام مدلهای بعدی (VT220, VT320, VT420, VT520) با آن سازگار بودند.
از آنجا که VT100 یکی از قدیمیترین و کاملترینِ ترمینالها بود، XTerm تصمیم گرفت که این مدل را شبیهسازی کند.
🔹اجرای شبیهساز ترمینال
اکسترم VT102 و دیگر مدلها را اساسا به یک شکل شبیهسازی میکند: با خواندن مستندات آن ترمینال و اجرای هر ویژگی ذکر شده یک به یک.
برای مثال، مستندات میگوید که وقتی ترمینال دنباله ESC [ 5 A را دریافت میکند، نشانگر ۵ خط به بالا حرکت میکند. بنابراین تا زمانی که اکسترم هم همین کار را انجام دهد، همهچیز درست است.
به عنوان یک برنامهنویس، با فرض شرایط چنین پروژهای و با توجه به لیست طولانی ویژگیهای ترمینال اصلی، میشود انتظار داشت که قطعاً به مواردی برخورد کنیم که ترمینال عملکرد غیرقابلپیشبینی از خود نشان دهد، و احتمالاً به مستندات بیشتر، و یک مجموعه تست دقیق برای اطمینان از سازگاری دو پیادهسازی نیاز خواهیم داشت.
متاسفانه، تا آنجا که من میدانم، هیچ مستندات دقیق یا مجموعه تستی برای ترمینالها و شبیهسازهای ترمینال وجود ندارد و از آنجا که آنها اساساً مرتبط با خروجی بصری هستند، آزمایش صحیح آنها بسیار دشوار است.
درنتیجه آنها به روش دیداری تست میشوند: اجرای برنامهها برای دیدن اینکه آیا چیزی عجیب به نظر میرسد یا نه.
نسل بعدی برنامهها در مقایسه با نسل فعلی شبیهسازهای ترمینال آزمایش میشوند، نسل بعدی شبیهسازهای ترمینال در برابر نسل فعلی برنامهها آزمایش میشوند، و غیره.
این روش تابهحال بهطور شگفتانگیزی خوب عمل کرده است، اما در طول راه مقدار معینی از اطلاعات از دست میرود. به عنوان مثال، VT100 از نمایش متن double width پشتیبانی میکرد و xterm نیز از آن پشتیبانی میکند، اما بسیاری دیگر از شبیهسازهای ترمینال این کار را نمیکنند، بنابراین برنامهها از آن استفاده نمیکنند و شبیهسازهای ترمینال آینده نیز به آن توجه نمیکنند.
خیلی خوب میشد اگر میتوانستیم به جای مقایسه هر شبیهساز ترمینال با شبیهسازهای قبلی ترمینال، شبیهساز ترمینال خود را مستقیماً در برابر یک ترمینال اصلی VTxxx مقایسه کنیم.
اما این ترمینالها بسیار نایاب هستند و حتی اگر هم پیدا بشوند بسیار گران قیمت و شکننده هستند.
اما با استفاده از MAME راهی برای شبیهسازی بهتر VTxxx وجود دارد که در پست بعدی به آن خواهم پرداخت.
~ @volandarkside
#آموزش #لینوکس
تمام ترمینالهایی که ما بهصورت روزانه استفاده میکنیم، در واقع شبیهساز ترمینال هستند.
ترمینال در گذشته یک دستگاه فیزیکال بوده که به یک سیستمعامل و یک کامپیوتر متصل میشده تا امکان تعامل با آن ماشین را فراهم کند.
پس تمام برنامههای شبیهساز ترمینال، اعم از، ترمینال گنوم، کنسول و ... در واقع شبیهساز آن دستگاهها هستند.
امروزه، بیشتر شبیهسازهای ترمینال(Terminal Emulators) در حقیقت شبیهساز XTerm هستند. XTerm یکی از قدیمیترین و کاملترین شبیهسازهای ترمینال است، بنابراین برای سازگاری و هماهنگی با یک استاندارد، دیگر ترمینالها از آن پیروی میکنند.
صفحه وب XTerm میگوید که ترمینالهای سازگار با DEC VT102 و Tektronix 4014 را شبیهسازی میکند. یعنی XTerm شبیهساز ترمینال VT102 است:
شرکت تجهیزات دیجیتال (Digital Equipment Corporation) که به اختصار DEC نامیده میشود، انواع مختلفی از ترمینالها را ساخته است، اما VT100 ترمینالی بود که در بازار موفق شد و تمام مدلهای بعدی (VT220, VT320, VT420, VT520) با آن سازگار بودند.
از آنجا که VT100 یکی از قدیمیترین و کاملترینِ ترمینالها بود، XTerm تصمیم گرفت که این مدل را شبیهسازی کند.
🔹اجرای شبیهساز ترمینال
اکسترم VT102 و دیگر مدلها را اساسا به یک شکل شبیهسازی میکند: با خواندن مستندات آن ترمینال و اجرای هر ویژگی ذکر شده یک به یک.
برای مثال، مستندات میگوید که وقتی ترمینال دنباله ESC [ 5 A را دریافت میکند، نشانگر ۵ خط به بالا حرکت میکند. بنابراین تا زمانی که اکسترم هم همین کار را انجام دهد، همهچیز درست است.
به عنوان یک برنامهنویس، با فرض شرایط چنین پروژهای و با توجه به لیست طولانی ویژگیهای ترمینال اصلی، میشود انتظار داشت که قطعاً به مواردی برخورد کنیم که ترمینال عملکرد غیرقابلپیشبینی از خود نشان دهد، و احتمالاً به مستندات بیشتر، و یک مجموعه تست دقیق برای اطمینان از سازگاری دو پیادهسازی نیاز خواهیم داشت.
متاسفانه، تا آنجا که من میدانم، هیچ مستندات دقیق یا مجموعه تستی برای ترمینالها و شبیهسازهای ترمینال وجود ندارد و از آنجا که آنها اساساً مرتبط با خروجی بصری هستند، آزمایش صحیح آنها بسیار دشوار است.
درنتیجه آنها به روش دیداری تست میشوند: اجرای برنامهها برای دیدن اینکه آیا چیزی عجیب به نظر میرسد یا نه.
نسل بعدی برنامهها در مقایسه با نسل فعلی شبیهسازهای ترمینال آزمایش میشوند، نسل بعدی شبیهسازهای ترمینال در برابر نسل فعلی برنامهها آزمایش میشوند، و غیره.
این روش تابهحال بهطور شگفتانگیزی خوب عمل کرده است، اما در طول راه مقدار معینی از اطلاعات از دست میرود. به عنوان مثال، VT100 از نمایش متن double width پشتیبانی میکرد و xterm نیز از آن پشتیبانی میکند، اما بسیاری دیگر از شبیهسازهای ترمینال این کار را نمیکنند، بنابراین برنامهها از آن استفاده نمیکنند و شبیهسازهای ترمینال آینده نیز به آن توجه نمیکنند.
خیلی خوب میشد اگر میتوانستیم به جای مقایسه هر شبیهساز ترمینال با شبیهسازهای قبلی ترمینال، شبیهساز ترمینال خود را مستقیماً در برابر یک ترمینال اصلی VTxxx مقایسه کنیم.
اما این ترمینالها بسیار نایاب هستند و حتی اگر هم پیدا بشوند بسیار گران قیمت و شکننده هستند.
اما با استفاده از MAME راهی برای شبیهسازی بهتر VTxxx وجود دارد که در پست بعدی به آن خواهم پرداخت.
~ @volandarkside
#آموزش #لینوکس
👍2