Forwarded from ذهن زیبا - A beautiful Mind
با توجه به میزان عدم رضایت کاربران از سرویسهای تاکسی اینترنتی مانند اسنپ یا تپسی، فرم زیر طراحی شده تا نتایج آن در بهبود تجربه سفرهای شما توسط استارتاپ Mann-E Cars استفاده شود.
لازم به ذکر است که این فرم، کاملا ناشناس بوده و هیچ اطلاعات هویتی از شما دریافت نمیشود.
لینک فرم:
https://survey.porsline.ir/s/fOfjhG2
با شرکت در این نظرسنجی، میتوانید کمک بسزایی در استفاده از #هوش_مصنوعی در بهبود تجربه سفرهای خود با کمک پلتفرمهای تاکسی اینترنتی داشته باشید.
@haghiri75_blog
لازم به ذکر است که این فرم، کاملا ناشناس بوده و هیچ اطلاعات هویتی از شما دریافت نمیشود.
لینک فرم:
https://survey.porsline.ir/s/fOfjhG2
با شرکت در این نظرسنجی، میتوانید کمک بسزایی در استفاده از #هوش_مصنوعی در بهبود تجربه سفرهای خود با کمک پلتفرمهای تاکسی اینترنتی داشته باشید.
@haghiri75_blog
Porsline
نظرسنجی پیرامون میزان رضایت از تاکسیهای اینترنتی
با پُرسلاین به راحتی پرسشنامه خود را طراحی و ارسال کنید و با گزارشهای لحظهای آن به سرعت تصمیم بگیرید.
Forwarded from Woland's Linux Journal (Woland)
حالا که صحبت از گیت کردیم، بذارید چندتا از بهترین افزونههای ویم برای گیت رو بهتون معرفی کنم.
افزونهی vim-fugitive که توسط tpope نوشته شده، یک اینترفیس برای گیت از داخل گیت هست که میتونه به اجرای دستورهای گیت از داخل ویم خیلی کمک کنه.
افزونهی gitgutter نشانههایی برای نمایش تغییرات شاخه به نسبت شاخه اصلی توی ویم اضافه میکنه.
افزونهی flog که برای من پرکاربردترین در میان این افزونههاست، یک کاوشگر شاخه برای گیت هست که تغییرات شاخه رو بهصورت یک diff توی ویم نمایش میده. این افزونه بهعنوان یک interface برای fugitive کار میکنه.
افزونهی vimagit هم افزونهایه که به تقلید از magit که برای ایمکس هست ساخته شده،اما من خودم ازش خیلی استفاده نکردم.
#git #vim
#ویم #گیت #آموزش
Plug 'tpope/vim-fugitive'
Plug 'airblade/vim-gitgutter'
Plug 'rbong/vim-flog'
Plug 'jreybert/vimagit'
افزونهی vim-fugitive که توسط tpope نوشته شده، یک اینترفیس برای گیت از داخل گیت هست که میتونه به اجرای دستورهای گیت از داخل ویم خیلی کمک کنه.
افزونهی gitgutter نشانههایی برای نمایش تغییرات شاخه به نسبت شاخه اصلی توی ویم اضافه میکنه.
افزونهی flog که برای من پرکاربردترین در میان این افزونههاست، یک کاوشگر شاخه برای گیت هست که تغییرات شاخه رو بهصورت یک diff توی ویم نمایش میده. این افزونه بهعنوان یک interface برای fugitive کار میکنه.
افزونهی vimagit هم افزونهایه که به تقلید از magit که برای ایمکس هست ساخته شده،
#git #vim
#ویم #گیت #آموزش
Forwarded from 🎄 یک برنامه نویس تنبل (Lazy 🌱)
🔶 با تصویب نهایی لایحه حذف چهار صفر از پول ملی، واحد رسمی کشور «تومان» و واحد خردتر «قران» تعیین شد.
#خبر
@TheRaymondDev
#خبر
@TheRaymondDev
Forwarded from Gopher Academy
🔵 عنوان مقاله
Slice Tails Don't Grow Forever
🟢 خلاصه مقاله:
** این مطلب از Golang Weekly توضیح میدهد که در Go، وقتی از یک slice یک “tail” مثل s[i:] میسازیم، رشد آن به capacity وابسته است و پایدار و بینهایت نیست. تا وقتی capacity اجازه دهد، append روی همان آرایهی پشتی انجام میشود؛ اما بهمحض عبور از capacity، runtime آرایهی جدیدی میسازد و دادهها را کپی میکند، در نتیجه اشتراک حافظه با sliceهای قبلی از بین میرود. این رفتار هم میتواند باعث شگفتی در منطق اشتراکگذاری دادهها شود و هم روی کارایی و مصرف حافظه اثر بگذارد (مثلاً نگهداشتن یک زیر-slice کوچک میتواند یک آرایهی بزرگ را در حافظه زنده نگه دارد). نتیجهٔ عملی: روی رشد بینهایت tail حساب نکنید، خروجی append را یک slice بالقوه با آرایهی پشتی جدید در نظر بگیرید، برای آزادسازی حافظه از copy استفاده کنید، در صورت نیاز capacity مناسب را از قبل با make در نظر بگیرید و حتماً با benchmark تصمیم بگیرید.
#Go #Golang #Slices #Append #MemoryManagement #Performance #GolangWeekly
🟣لینک مقاله:
https://golangweekly.com/link/175065/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Slice Tails Don't Grow Forever
🟢 خلاصه مقاله:
** این مطلب از Golang Weekly توضیح میدهد که در Go، وقتی از یک slice یک “tail” مثل s[i:] میسازیم، رشد آن به capacity وابسته است و پایدار و بینهایت نیست. تا وقتی capacity اجازه دهد، append روی همان آرایهی پشتی انجام میشود؛ اما بهمحض عبور از capacity، runtime آرایهی جدیدی میسازد و دادهها را کپی میکند، در نتیجه اشتراک حافظه با sliceهای قبلی از بین میرود. این رفتار هم میتواند باعث شگفتی در منطق اشتراکگذاری دادهها شود و هم روی کارایی و مصرف حافظه اثر بگذارد (مثلاً نگهداشتن یک زیر-slice کوچک میتواند یک آرایهی بزرگ را در حافظه زنده نگه دارد). نتیجهٔ عملی: روی رشد بینهایت tail حساب نکنید، خروجی append را یک slice بالقوه با آرایهی پشتی جدید در نظر بگیرید، برای آزادسازی حافظه از copy استفاده کنید، در صورت نیاز capacity مناسب را از قبل با make در نظر بگیرید و حتماً با benchmark تصمیم بگیرید.
#Go #Golang #Slices #Append #MemoryManagement #Performance #GolangWeekly
🟣لینک مقاله:
https://golangweekly.com/link/175065/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Forwarded from Geek Alerts
اولین پیوند موفق کلیهی انسانی، که از نوع خونی A به O تبدیل شده بود، انجام شد. محققان دانشگاه بریتیش کلمبیا، با استفاده از آنزیمهایی که توسعه دادن، از ناسازگاری و پس زدن این عضو پس از پیوند جلوگیری کردن.
در این آزمایش انسانی، کلیهی تبدیلشده به یک بیمار مرگمغزی پیوند زده شد تا پژوهشگران بتونن واکنش ایمنی بدن رو بررسی کنن. بهمدت دو روز، کلیه بدون نشانهای از پسزدگی فوقحاد کار کرد. روز سوم، بدن واکنش خفیفی نشون داده، اما آسیب در مقایسه با موارد معمول ناچیز بوده و نشونههایی از سازگاری بدن با کلیه دیده شده.
آنتیژنهای نوع خون مثل برچسبنام روی سلولها و رگهای خونی اندامها عمل میکنن و اگه مشابه نباشن، توسط سیستم ایمنی بدن به اونها حمله میشه. تیم UBC در سال ۲۰۱۹ دو آنزیم کشف کرد که با حذف قند تعیینکنندهی نوع A، اون رو به نوع O تبدیل میکنن. این آنزیمها مانند قیچی، برچسب آنتیژن را میبرن و نوع O رو نشون میدن. [L]
🤓 abolfazl @geekalerts
در این آزمایش انسانی، کلیهی تبدیلشده به یک بیمار مرگمغزی پیوند زده شد تا پژوهشگران بتونن واکنش ایمنی بدن رو بررسی کنن. بهمدت دو روز، کلیه بدون نشانهای از پسزدگی فوقحاد کار کرد. روز سوم، بدن واکنش خفیفی نشون داده، اما آسیب در مقایسه با موارد معمول ناچیز بوده و نشونههایی از سازگاری بدن با کلیه دیده شده.
آنتیژنهای نوع خون مثل برچسبنام روی سلولها و رگهای خونی اندامها عمل میکنن و اگه مشابه نباشن، توسط سیستم ایمنی بدن به اونها حمله میشه. تیم UBC در سال ۲۰۱۹ دو آنزیم کشف کرد که با حذف قند تعیینکنندهی نوع A، اون رو به نوع O تبدیل میکنن. این آنزیمها مانند قیچی، برچسب آنتیژن را میبرن و نوع O رو نشون میدن. [L]
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from DevTwitter | توییت برنامه نویسی
داشتم با N8N کار میکردم که دیدم یه سری چیزا نداره. با کامیونیتی نود هاش آشنا شدم. دیدم بازم یه چیزی کمه. گفتم بزنیم چرا که نه!
این شد که احتمالا جامع ترین پکیج ایسنتا رو زدم.
https://github.com/Msameim181/n8n-nodes-instagram-integrations
https://npmjs.com/package/n8n-nodes-instagram-integrations
@DevTwitter | <Mohammad Mahdi Samei/>
این شد که احتمالا جامع ترین پکیج ایسنتا رو زدم.
https://github.com/Msameim181/n8n-nodes-instagram-integrations
https://npmjs.com/package/n8n-nodes-instagram-integrations
@DevTwitter | <Mohammad Mahdi Samei/>
Forwarded from Codino School (ایمان غفوری)
Forwarded from Codino School (ایمان غفوری)
This media is not supported in your browser
VIEW IN TELEGRAM
Do you know how to split commits in git history?
آیا میدانید که چطور یک کامیت در تاریخچه گیت رو به چند کامیت کوچکتر تقسیم کنید؟
پاسخ ویدئویی در قسمت نظرات 👇👇👇
@codino
آیا میدانید که چطور یک کامیت در تاریخچه گیت رو به چند کامیت کوچکتر تقسیم کنید؟
پاسخ ویدئویی در قسمت نظرات 👇👇👇
@codino
Forwarded from کانال مهرداد لینوکس
📄 دستور less در لینوکس
✅ دستور less برای مرور فایلهای متنی بزرگ استفاده میشه، بدون اینکه کل فایل یکباره توی حافظه بارگذاری بشه. (برخلاف cat)
📌 کاربردهای پایه:
🔥 کلیدهای پرکاربرد داخل less
🔹 حرکت:
j → یک خط پایین⬇️ یا
k → یک خط بالا⬆️ یا
Space → یک صفحه جلو
b → یک صفحه عقب
g → رفتن به ابتدای فایل
G → رفتن به انتهای فایل
🔹 جستجو:
/pattern → جستجو به جلو
?pattern → جستجو به عقب
n → تکرار جستجو (بعدی)
N → تکرار جستجو (قبلی)
🔹ویرایش:
v → ورود به محیط ویرایشگر
🔹 خروج:
q → خروج از less
🔥 ترفندهای ترکیبی و خلاقانه
🔹 باز کردن چند فایل با هم:
:n # فایل بعدی
:p # فایل قبلی
🔹 نمایش رنگ در خروجی (مثلاً برای کدها):
#دیوار_لینوکس
@MehrdadLinuxchannel
#Linux #لینوکس
#linux_command
✅ دستور less برای مرور فایلهای متنی بزرگ استفاده میشه، بدون اینکه کل فایل یکباره توی حافظه بارگذاری بشه. (برخلاف cat)
📌 کاربردهای پایه:
less file.txt # باز کردن فایل
less +100 file.txt # شروع از خط 100
less -N file.txt # نمایش شماره خطها
🔥 کلیدهای پرکاربرد داخل less
🔹 حرکت:
j → یک خط پایین⬇️ یا
k → یک خط بالا⬆️ یا
Space → یک صفحه جلو
b → یک صفحه عقب
g → رفتن به ابتدای فایل
G → رفتن به انتهای فایل
🔹 جستجو:
/pattern → جستجو به جلو
?pattern → جستجو به عقب
n → تکرار جستجو (بعدی)
N → تکرار جستجو (قبلی)
🔹ویرایش:
v → ورود به محیط ویرایشگر
🔹 خروج:
q → خروج از less
🔥 ترفندهای ترکیبی و خلاقانه
dmesg | less # مرور لاگ کرنل
less +F logfile.log # حالت Follow مثل tail -f
ps aux | less -S # بدون شکست خطوط طولانی
🔹 باز کردن چند فایل با هم:
less file1.txt file2.txt
:n # فایل بعدی
:p # فایل قبلی
🔹 نمایش رنگ در خروجی (مثلاً برای کدها):
less -R colored.txt
#دیوار_لینوکس
@MehrdadLinuxchannel
#Linux #لینوکس
#linux_command
Forwarded from GitHub Trending Daily
🔥 New GitHub Trending Repositories 🔥
Found 9 new trending repositories:
1. zapret-discord-youtube by Flowseal
📝 No description available
💻 Batchfile | ⭐ 16,588 | 🌟 Today: 65
🔗 Link
2. ComfyUI by comfyanonymous
📝 The most powerful and modular diffusion model GUI, api and backend with a graph/nodes interface.
💻 Python | ⭐ 90,029 | 🌟 Today: 51
🔗 Link
3. firmware by meshtastic
📝 The official firmware for Meshtastic, an open-source, off-grid mesh communication system.
💻 C++ | ⭐ 5,738 | 🌟 Today: 22
🔗 Link
4. niri by YaLTeR
📝 A scrollable-tiling Wayland compositor.
💻 Rust | ⭐ 12,576 | 🌟 Today: 477
🔗 Link
5. audacity by audacity
📝 Audio Editor
💻 C++ | ⭐ 14,573 | 🌟 Today: 200
🔗 Link
6. gpt4free by xtekky
📝 The official gpt4free repository | various collection of powerful language models | o4, o3 and deeps...
💻 Python | ⭐ 65,187 | 🌟 Today: 15
🔗 Link
7. evcc by evcc-io
📝 solar charging ☀️🚘
💻 Go | ⭐ 5,375 | 🌟 Today: 11
🔗 Link
8. ytDownloader by aandrew-me
📝 Desktop App for downloading Videos and Audios from hundreds of sites
💻 JavaScript | ⭐ 2,042 | 🌟 Today: 239
🔗 Link
9. express by expressjs
📝 Fast, unopinionated, minimalist web framework for node.
💻 JavaScript | ⭐ 67,812 | 🌟 Today: 11
🔗 Link
🔘 @github_trending_daily
Found 9 new trending repositories:
1. zapret-discord-youtube by Flowseal
📝 No description available
💻 Batchfile | ⭐ 16,588 | 🌟 Today: 65
🔗 Link
2. ComfyUI by comfyanonymous
📝 The most powerful and modular diffusion model GUI, api and backend with a graph/nodes interface.
💻 Python | ⭐ 90,029 | 🌟 Today: 51
🔗 Link
3. firmware by meshtastic
📝 The official firmware for Meshtastic, an open-source, off-grid mesh communication system.
💻 C++ | ⭐ 5,738 | 🌟 Today: 22
🔗 Link
4. niri by YaLTeR
📝 A scrollable-tiling Wayland compositor.
💻 Rust | ⭐ 12,576 | 🌟 Today: 477
🔗 Link
5. audacity by audacity
📝 Audio Editor
💻 C++ | ⭐ 14,573 | 🌟 Today: 200
🔗 Link
6. gpt4free by xtekky
📝 The official gpt4free repository | various collection of powerful language models | o4, o3 and deeps...
💻 Python | ⭐ 65,187 | 🌟 Today: 15
🔗 Link
7. evcc by evcc-io
📝 solar charging ☀️🚘
💻 Go | ⭐ 5,375 | 🌟 Today: 11
🔗 Link
8. ytDownloader by aandrew-me
📝 Desktop App for downloading Videos and Audios from hundreds of sites
💻 JavaScript | ⭐ 2,042 | 🌟 Today: 239
🔗 Link
9. express by expressjs
📝 Fast, unopinionated, minimalist web framework for node.
💻 JavaScript | ⭐ 67,812 | 🌟 Today: 11
🔗 Link
🔘 @github_trending_daily
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
پیرو نظرسنجی دوستان
کتاب دوره lpic3 303
آماده انتشار شد.
این دوره براساس سرفصلهای موسسه lpi.org و البته با جزییات بیشتر است
Lpic3 security. version: 3.0 (Exam code 303-300)
کتاب سخت و سنگینی بود ولی به همت بچه های تیم کار آماده شد.
انشالله فردا روی سایت قرار میگیره..
کتاب دوره lpic3 303
آماده انتشار شد.
این دوره براساس سرفصلهای موسسه lpi.org و البته با جزییات بیشتر است
Lpic3 security. version: 3.0 (Exam code 303-300)
کتاب سخت و سنگینی بود ولی به همت بچه های تیم کار آماده شد.
انشالله فردا روی سایت قرار میگیره..
Forwarded from Ninja Learn | نینجا لرن (Mohammad)
OSRM ماشین مسیریابی متنباز برای دنیای واقعی 🌍
اگه تو حوزه توسعه اپلیکیشنهای نقشه، مسیریابی یا لجستیک کار میکنین، حتماً اسم
OSRM (Open Source Routing Machine) رو شنیدین. این ابزار یه موتور مسیریابی قدرتمند و متنبازه که بر اساس دادههای OpenStreetMap کار میکنه و میتونه مسیریابی سریع و دقیق رو برای اپهای موبایل، وب یا حتی سیستمهای بزرگ فراهم کنه.(به تازگی توی یکی از پروژه هام استفادش کردم و عالی بود)
تو این پست قراره یه نگاه تقریباً کامل به OSRM بندازیم.
🧠 اول از همه OSRM چیه؟
OSRM مخفف Open Source Routing Machine، یه موتور مسیریابی متنبازه که با
C++ نوشته شده و برای محاسبه کوتاهترین مسیرها تو شبکههای جادهای طراحی شده. این ابزار از دادههای OpenStreetMap (OSM) استفاده میکنه – یه نقشه متنباز جهانی که توسط جامعه ساخته میشه – و میتونه مسیریابی برای ماشین، دوچرخه، پیاده یا حتی وسایل نقلیه خاص رو انجام بده.
پروژه OSRM از سال ۲۰۱۰ توسط Dennis Luxen شروع شد و حالا توسط جامعهای از توسعهدهندهها (از جمله تیم Mapbox) نگهداری میشه. هدف اصلیش؟ ارائه مسیریابی سریع، دقیق و قابل سفارشیسازی بدون وابستگی به سرویسهای تجاری مثل Google Maps.
OSRM نهتنها مسیریابی ساده انجام میده، بلکه قابلیتهایی مثل map matching (مطابقت مسیر با جاده) و حل مسئله TSP رو هم داره.
📚 چطور کار میکنه؟
OSRM دو بخش اصلی داره:
پیشپردازش (Preprocessing) و سرویسدهی (Serving).
1⃣ پیشپردازش:
آمادهسازی دادهها 🛠️
دادههای OSM (فایلهای .osm.pbf) رو میگیره و به یه گراف بهینهشده تبدیل میکنه.
از الگوریتمهای پیشرفتهای مثل Contraction Hierarchies (CH) یا Multi-Level Dijkstra (MLD) استفاده میکنه. CH برای ماتریسهای فاصله بزرگ عالیه، و MLD (پیشنهادی برای بیشتر موارد) تعادل خوبی بین سرعت و دقت برقرار میکنه.
مراحل پیشپردازش:
Extract:
دادههای OSM رو به گراف خام تبدیل میکنه.
Partition/Customize:
گراف رو بهینه میکنه (مثل ساخت ایندکسها برای سرعت).
Contract:
برای CH، گراف رو فشرده میکنه تا جستجو سریعتر بشه.
2⃣ سرویسدهی محاسبه مسیر 🗺️
سرور HTTP/JSON ارائه میده که میتونین ازش برای محاسبه مسیر، تخمین زمان، یا حتی تولید tileهای نقشه با metadata مسیریابی استفاده کنین.
🚀 ویژگیهای کلیدی OSRM
1⃣ الگوریتمهای مسیریابی پیشرفته 🧮
Contraction Hierarchies (CH):
برای ماتریسهای فاصله بزرگ (مثل محاسبه فاصله بین ۱۰۰۰ نقطه) عالیه. سرعت محاسبه رو به میلیثانیه میرسونه.
Multi-Level Dijkstra (MLD):
تعادل خوبی بین دقت و سرعت داره و برای مسیریابی روزمره پیشنهاد میشه.
Map Matching:
مسیرهای GPS نویزی (مثل دادههای موبایل) رو با جادههای واقعی مطابقت میده – عالی برای اپهای ناوبری.
2⃣ پروفایلهای سفارشی 🚗🚲
میتونین پروفایلهای مختلف بسازین:
car (ماشین)، bike (دوچرخه)، foot (پیاده) یا حتی وسایل نقلیه سنگین.
هر پروفایل قوانین خاص خودش رو داره (مثل اجتناب از بزرگراهها برای دوچرخه).
3⃣ تولید Tileهای نقشه 🏗️
OSRM میتونه Mapbox Vector Tiles با metadata مسیریابی تولید کنه، که برای اپهای موبایل (مثل Mapbox GL) عالیه.
4⃣ حل مسئله فروشنده دورهگرد (TSP) 🛒
برای محاسبه بهینه مسیر بازدید از چند نقطه (مثل تحویل کالا) استفاده میشه.
مثال: محاسبه ماتریس فاصله بین ۱۰ انبار.
5⃣ ادغام آسون با Docker و API 🐳
Docker images آماده برای سریع راهاندازی (ghcr.io/project-osrm/osrm-backend).
API ساده JSON/HTTP که با هر زبانی (پایتون، JS، Go) کار میکنه.
✍ جمعبندی
OSRM یه موتور مسیریابی متنباز قدرتمنده که با الگوریتمهای پیشرفته مثل MLD و CH، مسیریابی سریع و دقیق رو برای اپهای واقعی فراهم میکنه. از محاسبه مسیرهای ساده گرفته تا map matching و تولید tileها، این ابزار برای توسعهدهندههای نقشه و لجستیک یه گنجینهست.
➖➖➖➖➖➖➖➖➖➖
اگه تو حوزه توسعه اپلیکیشنهای نقشه، مسیریابی یا لجستیک کار میکنین، حتماً اسم
OSRM (Open Source Routing Machine) رو شنیدین. این ابزار یه موتور مسیریابی قدرتمند و متنبازه که بر اساس دادههای OpenStreetMap کار میکنه و میتونه مسیریابی سریع و دقیق رو برای اپهای موبایل، وب یا حتی سیستمهای بزرگ فراهم کنه.(به تازگی توی یکی از پروژه هام استفادش کردم و عالی بود)
تو این پست قراره یه نگاه تقریباً کامل به OSRM بندازیم.
🧠 اول از همه OSRM چیه؟
OSRM مخفف Open Source Routing Machine، یه موتور مسیریابی متنبازه که با
C++ نوشته شده و برای محاسبه کوتاهترین مسیرها تو شبکههای جادهای طراحی شده. این ابزار از دادههای OpenStreetMap (OSM) استفاده میکنه – یه نقشه متنباز جهانی که توسط جامعه ساخته میشه – و میتونه مسیریابی برای ماشین، دوچرخه، پیاده یا حتی وسایل نقلیه خاص رو انجام بده.
پروژه OSRM از سال ۲۰۱۰ توسط Dennis Luxen شروع شد و حالا توسط جامعهای از توسعهدهندهها (از جمله تیم Mapbox) نگهداری میشه. هدف اصلیش؟ ارائه مسیریابی سریع، دقیق و قابل سفارشیسازی بدون وابستگی به سرویسهای تجاری مثل Google Maps.
OSRM نهتنها مسیریابی ساده انجام میده، بلکه قابلیتهایی مثل map matching (مطابقت مسیر با جاده) و حل مسئله TSP رو هم داره.
📚 چطور کار میکنه؟
OSRM دو بخش اصلی داره:
پیشپردازش (Preprocessing) و سرویسدهی (Serving).
1⃣ پیشپردازش:
آمادهسازی دادهها 🛠️
دادههای OSM (فایلهای .osm.pbf) رو میگیره و به یه گراف بهینهشده تبدیل میکنه.
از الگوریتمهای پیشرفتهای مثل Contraction Hierarchies (CH) یا Multi-Level Dijkstra (MLD) استفاده میکنه. CH برای ماتریسهای فاصله بزرگ عالیه، و MLD (پیشنهادی برای بیشتر موارد) تعادل خوبی بین سرعت و دقت برقرار میکنه.
مراحل پیشپردازش:
Extract:
دادههای OSM رو به گراف خام تبدیل میکنه.
Partition/Customize:
گراف رو بهینه میکنه (مثل ساخت ایندکسها برای سرعت).
Contract:
برای CH، گراف رو فشرده میکنه تا جستجو سریعتر بشه.
2⃣ سرویسدهی محاسبه مسیر 🗺️
سرور HTTP/JSON ارائه میده که میتونین ازش برای محاسبه مسیر، تخمین زمان، یا حتی تولید tileهای نقشه با metadata مسیریابی استفاده کنین.
🚀 ویژگیهای کلیدی OSRM
1⃣ الگوریتمهای مسیریابی پیشرفته 🧮
Contraction Hierarchies (CH):
برای ماتریسهای فاصله بزرگ (مثل محاسبه فاصله بین ۱۰۰۰ نقطه) عالیه. سرعت محاسبه رو به میلیثانیه میرسونه.
Multi-Level Dijkstra (MLD):
تعادل خوبی بین دقت و سرعت داره و برای مسیریابی روزمره پیشنهاد میشه.
Map Matching:
مسیرهای GPS نویزی (مثل دادههای موبایل) رو با جادههای واقعی مطابقت میده – عالی برای اپهای ناوبری.
2⃣ پروفایلهای سفارشی 🚗🚲
میتونین پروفایلهای مختلف بسازین:
car (ماشین)، bike (دوچرخه)، foot (پیاده) یا حتی وسایل نقلیه سنگین.
هر پروفایل قوانین خاص خودش رو داره (مثل اجتناب از بزرگراهها برای دوچرخه).
3⃣ تولید Tileهای نقشه 🏗️
OSRM میتونه Mapbox Vector Tiles با metadata مسیریابی تولید کنه، که برای اپهای موبایل (مثل Mapbox GL) عالیه.
4⃣ حل مسئله فروشنده دورهگرد (TSP) 🛒
برای محاسبه بهینه مسیر بازدید از چند نقطه (مثل تحویل کالا) استفاده میشه.
مثال: محاسبه ماتریس فاصله بین ۱۰ انبار.
5⃣ ادغام آسون با Docker و API 🐳
Docker images آماده برای سریع راهاندازی (ghcr.io/project-osrm/osrm-backend).
API ساده JSON/HTTP که با هر زبانی (پایتون، JS، Go) کار میکنه.
✍ جمعبندی
OSRM یه موتور مسیریابی متنباز قدرتمنده که با الگوریتمهای پیشرفته مثل MLD و CH، مسیریابی سریع و دقیق رو برای اپهای واقعی فراهم میکنه. از محاسبه مسیرهای ساده گرفته تا map matching و تولید tileها، این ابزار برای توسعهدهندههای نقشه و لجستیک یه گنجینهست.
#️⃣ #geo #programming #osrm
➖➖➖➖➖➖➖➖➖➖
🥷🏻 CHANNEL | GROUP
Forwarded from 🎄 یک برنامه نویس تنبل (Lazy 🌱)
Forwarded from DevTwitter | توییت برنامه نویسی
مدت ها از notion استفاده کردم ولی حدود یک سال که کوچ کردم به obsidian
از خیلی جهت ها از notion بهتره امکاناتش خیلی بیشتر ، سریع تره و دردسر های تحریم نداره و افلاین هم کار میکنه
چون متن بازه پلاگین های خیلی زیادی داره و حتی خودتون هم میتونید براش بنویسید
https://github.com/obsidianmd
@DevTwitter | <white wolf/>
از خیلی جهت ها از notion بهتره امکاناتش خیلی بیشتر ، سریع تره و دردسر های تحریم نداره و افلاین هم کار میکنه
چون متن بازه پلاگین های خیلی زیادی داره و حتی خودتون هم میتونید براش بنویسید
https://github.com/obsidianmd
@DevTwitter | <white wolf/>
Forwarded from Rust for Python developers
Screencast from 2025-10-05 17-16-29.webm
726.1 KB
امروز فرصت کردم و وقت گذاشتم روی آپدیت آموزش Json Editor مربوط به
قرار نبود و نیست یک چیز خفن درست کنیم؛ قراره فقط فیچرهای مهم رو یک رفرنس برای رجوع بهشون داشته باشیم.
خروجیش شد این ویدئو؛ که هم
بعد از رکورد ویدئو متوجه شدم بهتر بود برای نمایش
توی اولین فرصت در روزهای آینده این مورد رو هم اضافه خواهم کرد و سورس کد رو باهاتون به اشتراک میذارم!
Ratatui هم یک مقدار استاندارد سازیش کردم هم فیچرهایی که خیلی کاربردی هستند رو بهش اضافه کردم؛ چیزایی که وقتی TUI توسعه میدید بهش نیاز خواهید داشت.قرار نبود و نیست یک چیز خفن درست کنیم؛ قراره فقط فیچرهای مهم رو یک رفرنس برای رجوع بهشون داشته باشیم.
خروجیش شد این ویدئو؛ که هم
async هست هم notification رو داره هم ذخیره در فایل و ... بعد از رکورد ویدئو متوجه شدم بهتر بود برای نمایش
key, value ها برم سراغ قابلیت اسکرول کردن بخصوص اینکه روی پروژه خودم زمان گرفت ازم تا تونستم درست کانفیگش کنم.توی اولین فرصت در روزهای آینده این مورد رو هم اضافه خواهم کرد و سورس کد رو باهاتون به اشتراک میذارم!
Forwarded from Rust for Python developers
This media is not supported in your browser
VIEW IN TELEGRAM
امروز فرصت کردم و وقت گذاشتم روی آپدیت آموزش Json Editor مربوط به Ratatui هم یک مقدار استاندارد سازیش کردم هم فیچرهایی که خیلی کاربردی هستند رو بهش اضافه کردم؛ چیزایی که وقتی TUI توسعه میدید بهش نیاز خواهید داشت.
قرار نبود و نیست یک چیز خفن درست کنیم؛ قراره فقط فیچرهای مهم رو یک رفرنس برای رجوع بهشون داشته باشیم.
خروجیش شد این ویدئو؛ که هم async هست هم notification رو داره هم ذخیره در فایل و ...
بعد از رکورد ویدئو متوجه شدم بهتر بود برای نمایش key, value ها برم سراغ قابلیت اسکرول کردن بخصوص اینکه روی پروژه خودم زمان گرفت ازم تا تونستم درست کانفیگش کنم.
توی اولین فرصت در روزهای آینده این مورد رو هم اضافه خواهم کرد و سورس کد رو باهاتون به اشتراک میذارم!
قرار نبود و نیست یک چیز خفن درست کنیم؛ قراره فقط فیچرهای مهم رو یک رفرنس برای رجوع بهشون داشته باشیم.
خروجیش شد این ویدئو؛ که هم async هست هم notification رو داره هم ذخیره در فایل و ...
بعد از رکورد ویدئو متوجه شدم بهتر بود برای نمایش key, value ها برم سراغ قابلیت اسکرول کردن بخصوص اینکه روی پروژه خودم زمان گرفت ازم تا تونستم درست کانفیگش کنم.
توی اولین فرصت در روزهای آینده این مورد رو هم اضافه خواهم کرد و سورس کد رو باهاتون به اشتراک میذارم!
Forwarded from Rust for Python developers
This media is not supported in your browser
VIEW IN TELEGRAM
امروز فرصت کردم و وقت گذاشتم روی آپدیت آموزش Json Editor مربوط به
قرار نبود و نیست یک چیز خفن درست کنیم؛ قراره فقط فیچرهای مهم رو یک رفرنس برای رجوع بهشون داشته باشیم.
خروجیش شد این ویدئو؛ که هم
بعد از رکورد ویدئو متوجه شدم بهتر بود برای نمایش key, value ها برم سراغ قابلیت اسکرول کردن بخصوص اینکه روی پروژه خودم زمان گرفت ازم تا تونستم درست کانفیگش کنم.
توی اولین فرصت در روزهای آینده این مورد رو هم اضافه خواهم کرد و سورس کد رو باهاتون به اشتراک میذارم!
Ratatui هم یک مقدار استاندارد سازیش کردم هم فیچرهایی که خیلی کاربردی هستند رو بهش اضافه کردم؛ چیزایی که وقتی TUI توسعه میدید بهش نیاز خواهید داشت.قرار نبود و نیست یک چیز خفن درست کنیم؛ قراره فقط فیچرهای مهم رو یک رفرنس برای رجوع بهشون داشته باشیم.
خروجیش شد این ویدئو؛ که هم
async هست هم notification رو داره هم ذخیره در فایل و paste کردن و ... بعد از رکورد ویدئو متوجه شدم بهتر بود برای نمایش key, value ها برم سراغ قابلیت اسکرول کردن بخصوص اینکه روی پروژه خودم زمان گرفت ازم تا تونستم درست کانفیگش کنم.
توی اولین فرصت در روزهای آینده این مورد رو هم اضافه خواهم کرد و سورس کد رو باهاتون به اشتراک میذارم!
Forwarded from 🎄 یک برنامه نویس تنبل (Lazy 🌱)