mnr tech – Telegram
mnr tech
108 subscribers
24 photos
4 videos
7 files
53 links
توی این کانال لینک ویدیو های آموزشی کانالم در یوتیوب قرار میگیره.
آدرس سایت : https://mnrtech.ir
همچنین ممکنه نکته های آموزشی برنامه نویسی و شاید اخبار و همچنین معرفی پروژه های خودم هم قرار بگیره.
ارتباط با ما : @mnr73
Download Telegram
استفاده از regex در کوئری Mysql.

احتمالا خیلی از شما می‌دونید که میشه از regex توی Mysql استفاده کرد ولی تفاوت هایی در استفاده از regex توی Mysql‌ با استفاده از آن در زبان های برنامه نویسی وجود داره. برای مثال توی زبان PHP استفاده از \s به معنی هر کارکتر فاصله است. مثل اسپیس و نیم اسپیس و ... اما توی Mysql باید از [:space:] استفاده بشه.

حالا یک مثال کاربردی از این رجکس می‌زنم. فرض کنید شما قصد دارید در یک جدول که مربوط به شهر ها است جستجو کنید. و قصد دارید جستجو به این صورت باشه که کلیدواژه جستجو حتما اول یک شهر باشه یا قبلش حتما یک فاصله باشه. مثلا زمانی که تک حرف "ا" رو جستجو می‌کنید شهر اصفهان رو در نتیجه جستجو ببینید ولی کرمان رو نه. در این صورت میتونید به این صورت کوئری رو بنویسید.

SELECT * FROM `cities` WHERE name REGEXP '^(.*[:space:])?ا';


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

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

City::where('name', 'REGEXP', "^(.*[:space:])?$searchKey")->get()


از همین REGEXP میشه در order by نیز استفاده کرد.

لیست کامل راهنمای regex در mysql در لینک زیر
https://www.geeksforgeeks.org/mysql-regular-expressions-regexp/

لینک همین پست توی لینکدین
https://www.linkedin.com/posts/mnrmilad_mnr-tech-activity-7131377596109316097-KWRU?utm_source=share&utm_medium=member_desktop
👍5🙏1
بلیط ایکس، لذت خرید بلیط

https://blitx.ir
این یک سایت واقعی نیست و فقط برای نمونه کار ساخته شده
قابلیت های این سایت

بکند و دواپس:
- پروژه داکرایز شده
- استفاده از دیزاین‌پترن و طراحی مناسب جدول ها برای قابلیت چند پروایدری
- یک سرویس ماک جدا برای شبیه سازی پروایدر ها
- کش کردن داده ها برای درخواست کمتر به پروایدر
- سیستم ریجن یکپارچه برای سرویس های مختلف مثل هواپیما و اتوبوس
- امکان خرید بلیط رفت و برگشت از پروایدر های مختلف

فرانت:
- رسپانسیو تا 320 پیکسل
- ساخت اینپوت های سفارشی
- امکان دانلود برنامه به صورت pwa

برای فرانت این پروژه از vue و برای بکند از لاراول استفاده شده.

متاسفانه به دلایلی این سایت رو مجبور شدم غیر فعال کنم و بیارم پایین🥲
👍5🔥21
فرق api تلگرام با cli یا کلاینت چیه؟

⁧ api چیه؟

هر سرویسی میتونه روی بستر http یک سری api ارائه بده که بر اساس درخواست ها یا همون request ها یک سری عملیات رو توی اون سرویس برای ما انجام بده. api های مختلفی وجود داره که میتونن پولی یا بعضا رایگان باشن. مثل api قیمت ارز و طلا، api صرافی های ارز دیجیتال برای انجام معاملات خودکار و ...

شبکه های اجتماعی و پیام رسان‌ها هم در چند سال اخیر api هایی ارائه میدن که برنامه نویسها به کمک اون api ها بتونن یک سری کارهارو در بستر اون شبکه اجتماعی انجام بدن و برنامه های جانبی بسازن که به کاربران اون شبکه اجتماعی یا پیام رسان کمک کنه یا قابلیت های متنوعی برای تعامل بیشتر ایجاد کنه. از این موارد میشه به توییتر، واتس‌آپ و ... اشاره کرد.

اما یکی از قویترین عملکردها رو در این زمینه تلگرام ارائه داد که با کمک api بشه ربات هایی ساخت که بسیار پرکاربرد باشن و تجربه کاربری رو در این پیامرسان افزایش بده. هممنون با ربات های تلگرامی با کاربرد های متنوع آشنا هستید. از نمونه های اونها می‌تونم به ربات مدیریت گروه و ربات مدیریت کانال خودم اشاره کنم.
@mnrg1bot
@mnrcbot

اما قبل از اومدن ربات های api به تلگرام بعضا شما ربات هایی دیده بودید که ربات نبودن شبیه یک کاربر بودن ولی عملکردشون شبیه به ربات بود. به اونها میگن ربات های cli یا client bot. اگر توی گیتهاب سرچ کنید کلاینت بات ها هم برای برنامه هایی مثل اینستاگرام هم وجود دارن.

تول تلگرام هم از اونجایی که open source هست و TDLIB رو در اختیار همه گذاشته که پایه و اساس همون تلگرام های غیر رسمی هست در نتیجه با همین کتابخونه میشه بات های cli ساخت.

مزیتی که میتونه نسبت به ربات های api داشته باشه این هست که در بعضی موارد ربات های api محدودیت هایی دارند که بسته به سیاست های شرکت اضافه نشدند به api. برای مثال دیدن مقدار بازدید از یک پست رو نمیشه با ربات api انجام داد. یا پاکسازی کامل یک گروه و کانل رو نمیشه با ربات api انجام داد. ولی با ربات cli میشه این موارد رو انجام داد.

یکی از ریپوهایی که به زبان php هم نوشته شده برای ساخت ربات cli ریپو MadelineProto هست. ولی کار باهاش یه کم عذاب آور و پردردسر هست. به همین جهت تو فکر این بودم که یک سرویس بسازم که با استفاده از همین ریپو کار کنه ولی بشه به صورت api باهاش کار کرد وقتی امشب داشتم این کار رو شروع میکردم دیدم که مدتی قبل افراد دیگری زحمتشو کشیدن. TelegramApiServer که به کمک همین کتابخونه اومده و به صورت داکرایز شده یک سرویس api ساخته که به راحتی میتونید ازش استفاده کنید.

لینک ها
https://github.com/danog/MadelineProto
https://github.com/xtrime-ru/TelegramApiServer
https://core.telegram.org/tdlib/docs/
https://core.telegram.org/bots/api
👍41🥰1🌚1
آماده سازی محیط ویندوز برای برنامه نویسی

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

00:00 شروع
03:15 نصب wsl
11:20 نصب گیت روی اوبونتو (wsl)
13:25 نصب php
17:25 نصب کامپوزر
19:03 نصب node و npm
22:18 نصب پاورشل 7.4 روی ویندوز
25:55 نصب vscode
28:24 سفارشی سازی windos terminal
31:40 نصب فونت fira code روی ویندوز
34:08 نصب vscode روی wsl ویندوز
34:15 نصب powertoys روی ویندوز
41:55 نصب داکر روی ویندوز
44:40 پایان

https://youtu.be/12f6Guf5L3U
👍81👌1
به ریپو ساختم برای ران کردن لاراول با داکر اگر نمیخواین از sail استفاده کنید می‌تونید از این ریپو استفاده کنید

https://github.com/mnr73/laravel-docker-compose
👍2👏1🙏1
توی انتخاب شغل آیندمون رفتار گله‌ای نداشته باشیم

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

خیلی از آدم‌ها نمی‌دونن که به چی علاقه دارن یا اصلا میخوان در آینده چکار کنن. هیچ برنامه‌ای ندارند و فقط دنبال یک راهی برای پول در آوردن می‌گردن که البته حق هم دارن و درک میکنم که شرایط اقتصادی و وضعیت کار توی این کشور چطوریه. ولی نباید کورکورانه دنبال پول باشیم.

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

یک مثال خیلی واضح برای این موضوع شغل کاشت ناخن یا ناخن کار هست. چند سال پیش توی صفحه های اینستاگرم استوری هایی گذاشته می‌شد که مثلا من ناخن کار هستم و ماهی 200 میلیون یا حتی مبالغ خیلی بیشتر درآمد دارم. که خوب احتمالا بعضی از این مبالغ هم نادرست نبوده. ولی خیلی از افراد با دیدن اینها رفتن سراغ آموزش ناخن کاری بدون اینکه اصلا علاقه ای به این کار داشته باشن.

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

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

دقیقا همین رفتار گله ای رو ما توی سایر حوزه ها و حوزه برنامه نویسی هم داریم یعنی یه عده فقط به خاطر درآمد و پول وارد این حوزه می‌شن و وقت و انرژی خودشون رو هدر می‌دن.

مارک زاکربرگ میگه برای اینکه توی کاری موفق باشی یا باید اولین باشی یا بهترین باشی.

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

اگر یه ناخن کاری علاقه نداشته باشی نمیتونی بهترین ناخن کار بشی.
اگر به برنامه‌نویسی علاقه نداشته باشی نمیتونی بهترین برنامه‌نویس بشی.
و همینطور تا ادامه.

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

و مولانا چه زیبا میگه:
مر مرا تقلیدشان بر باد داد
که دو صد لعنت بر آن تقلید باد
👍5❤‍🔥11
اگر شما هم از Docker روی WSL ویندوز استفاده می‌کنید حتما به این مورد بر خوردید که بعضی وقت ها خطا میده که این پورت ها بسته هست

Error response from daemon: Ports are not available: exposing port TCP ...

ولی شما از اون پورت ها استفاده نمیکنید. برای حل این مشکل لازم نیست ویندوز رو ری‌استارت کنید 😭 . کافیه PowerShell رو به صورت Administrator باز کنید و دستورهای زیر رو به ترتیب بزنید.

net stop winnat

net start winnat


همچنین با دستور زیر میتونید رنج پورت هایی که محروم شدن رو ببینید 🥳

netsh int ipv4 show excludedportrange protocol=tcp


#داکر #wsl #docker
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥2👍2🔥1
چند روز پیش به طور اتفاقی متوجه شدم وقتی توی صفحه مرورگر از تاچ پد لپتاپ برای zoom کردن استفاده میکنم رفتارش با zoom کردن معمولی که با ctrl+scroll wheel موس انجام میدیم متفاوته. یعنی zoop مرورگر افزایش پیدا نمیکنه و خود اون قسمت زوم میشه.

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

به نظرم این قابلیت خیلی مفیده برای وقت هایی که میخوای توی یه سایتی یه چیزی رو بزرگتر ببینی مثلا عکس پروفایل.
یا مثلا اگر برنامه نویس فرانت هستی و میخوای جزئیات بیشتری رو ببینی میتونی از این اکستنشن استفاده کنی.

😜 بعد از نصب باید مرورگر رو از اول باز کنی

https://chromewebstore.google.com/detail/mouse-pinch-to-zoom/pffiadlahfhoniddbipeiiohjnlongfi
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤‍🔥21
mnr tech
اگر شما هم از Docker روی WSL ویندوز استفاده می‌کنید حتما به این مورد بر خوردید که بعضی وقت ها خطا میده که این پورت ها بسته هست Error response from daemon: Ports are not available: exposing port TCP ... ولی شما از اون پورت ها استفاده نمیکنید. برای حل این…
از این روش اگر استفاده کنید داکر درست میشه ولی git push و git pull کار نمیده دیگه. گفتم در جریان باشید تا سر فرصت بررسی کنم ببینم چطور باید این مشکل رو حل کرد.
👍2
📣 اختلال سراسری به دلیل Iran Access

🟡 پذیرندگان گرامی زرین‌پال

به اطلاع می‌رساند با توجه به اعلام شاپرک و نهادهای امنیتی، تا اطلاع بعدی تمام پرداخت‌های حضوری و غیر حضوری شبکه بانکی و مالی کشور، فقط با IP ایران و از داخل کشور قابل دسترس است. در غیر این صورت ممکن است پرداخت‌ها با اختلال همراه باشد.

با تشکر از همراهی و همدلی شما

💛 @zarinpal
🤬1
زرین‎پال | ZarinPal
📣 اختلال سراسری به دلیل Iran Access 🟡 پذیرندگان گرامی زرین‌پال به اطلاع می‌رساند با توجه به اعلام شاپرک و نهادهای امنیتی، تا اطلاع بعدی تمام پرداخت‌های حضوری و غیر حضوری شبکه بانکی و مالی کشور، فقط با IP ایران و از داخل کشور قابل دسترس است. در غیر این صورت…
تمام درگاه ها ایران اکسس شده و اگر هاست یا سروری دارین با ip‌ خارج پرداخت های کاربران به مشکل می‌خوره. امیدوارم این اتفاق موقت باشه و به زودی حل بشه. در غیر این صورت این یک گام بزرگ به سمت محدودیت اینترنت و اینترنت ملی هست.
👍1
پلتفرم پایش و کنترل شیواامواج

نمونه اولیه این پلتفرم در کمتر از یک ما برای دمو در بیست و چهارمین نمایشگاه بین‌المللی تهران آماده شد و در حال حاظر با موفقیت در غرفه شیواامواج در نمایشگاه قرار دارد.
در حال حاظر این پلترفم برای پایش ترانس های برق کاربرد دارد ولی به زودی محصولات دیگری در زیمنه IOT به این سامانه اضافه می‌شود.
برای وبسایت این محصول از vue.js و Laravel و برای ارتباط با دستگاه از پروتکل MQTT استفاده شده که که ارتباط لحظه ای را فراهم می‌کند، همچنین برای بخش سخت افزاری از ماژول Quectel EC200U استفاده شده که برنامه نویسی آن را همکارم به عهده داشت.
خوشحالم که افتخار این رو داشتم و شرکت شیواامواج این فرصت رو بهم داد که در طراحی سیستم و تعریف این پروژه نقش پررنگی داشته باشم و همچنین مواردی مانند طراحی بکند، فرانت سامانه، ui/ux و پیاده سازی زیرساخت‌ها را انجام دهم و همچنین داشتن ارتباط نزدیک با همکارم که بخش الکترونیکی آن را به عهده داشت موجب موفقیت اولیه در این پروژه شد.
البته این فقط نسخه اولیه و شروع کار است و در روزهای پیش رو این پروژه هر روز کامل‌تر می‌شود.

پست در لینکدین
🔥5
اگر از wsl روی ویندوز استفاده می‌کنید حتما شده که فایلی رو از ویندوز به wsl کپی کنید یا انتقال بدید. وقتی این کار رو میکنید یه فایل به همون اسم با پسوند :Zone.Identifier ساخته میشه.

فایل‌های Zone.Identifier فایل‌های متاداده‌ای هستند که توسط ویندوز ایجاد می‌شوند تا اطلاعات مربوط به منطقه امنیتی فایل‌ها (security zone) را ذخیره کنند. این اطلاعات مشخص می‌کنند که یک فایل از چه منبعی آمده است (مثلاً اینترنت، شبکه محلی، یا سیستم محلی) و به ویندوز کمک می‌کنند تصمیم بگیرد که آیا فایل باید با احتیاط بیشتری باز شود یا نه.

آیا حذف این فایل‌ها مشکلی ایجاد می‌کند؟
حذف فایل‌های Zone.Identifier معمولاً مشکلی ایجاد نمی‌کند و باعث نمی‌شود فایل اصلی تحت تأثیر قرار بگیرد، زیرا این فایل‌ها تنها اطلاعات متاداده هستند. با این حال، با حذف آن‌ها ممکن است برخی ویژگی‌های امنیتی ویندوز از کار بیفتند (مثلاً هشدار درباره باز کردن فایل‌های دانلود شده).

نکنه اول اینکه حتما این فایل هارو به .gitignore اضافه کنید تا الکی توی پروژه هاتون پوش نشن.
*.Identifier
// یا این
*:Zone.Identifier


بعد اگر فایل ها رو اعصابتونن و الکی ریپویی که روش کار می‌کنید رو شلوغ کردن دو راه دارین یا برین توی روت پروژه و دستور زیر رو بزنید تا همه فایل ها کلا حذف بشن
find . -type f -name "*:Zone.Identifier" -exec rm -f {} +


یا اینکه ولشون کنین و بذارین به زندگی خودشون ادامه بدن (سازمان حمایت از حقوق فایل های Zone.Identifier 😂) ولی یه کاری کنید که توی vsCode نشون داده نشن برای این کار کافیه کانفیگ زیر رو به فایل setting.json اضافه کنید
"files.exclude": {
"**/*:Zone.Identifier": true
}


محتوای این پست با کمک chat GPT درست شده
👍21
امروز با همکارم احسان توی سمینار 900 نفری Sisoog که در مورد IOT و سیستم های امبدد بود شرکت کردیم و مطالب جالبی یاد گرفتیم.

برای اولین بار جادی رو از نزدیک دیدم که در مورد RTOS صحبت کرد و بسیار لذت بردم و استفاده کردم. همچنین سخنرانی محسن طهماسبی در مورد امنیت در IOT که دید خیلی خوبی بهم داد تا در پروژه های پیش رو استفاده کنم. و همچنین محمد مزارعی که در مورد ECU ماشین ها اطلاعات ارزشمندی رو با شرکت کنندگان به اشتراک گذاشت.

در آخر ممنونم از تیم سیسوگ و دانشگاه صنعتی اصفهان که سمیناری با این تعداد افراد را با مدیریت خوب برگذار کردن و امیدوارد در آینده شاهد برگذاری سمینار های بیشتری در این حوزه در اصفهان باشیم.
5