یک باگ عجیب که فکر میکردیم از Backend است!
یک long در Java تولید میشد، اما وقتی به Frontend میرسید، چند رقم آخرش تغییر میکرد!
بعد از ساعتها بررسی فهمیدیم نه Java مشکل داشت، نه دیتابیس...
مقصر فقط JavaScript بود!
دلیلش هم این است که Java long یک عدد صحیح ۶۴ بیتی است، اما JavaScript Number فقط تا 2^53 - 1 را بدون از دست دادن دقت نگه میدارد. بنابراین اعداد بزرگتر دچار Precision Loss میشوند و ممکن است مقدارشان تغییر کند.
گاهی سختترین باگها، اصلاً در جایی که دنبالشان میگردیم نیستند.
@DevTwitter | <Vahid Heydari/>
یک long در Java تولید میشد، اما وقتی به Frontend میرسید، چند رقم آخرش تغییر میکرد!
بعد از ساعتها بررسی فهمیدیم نه Java مشکل داشت، نه دیتابیس...
مقصر فقط JavaScript بود!
دلیلش هم این است که Java long یک عدد صحیح ۶۴ بیتی است، اما JavaScript Number فقط تا 2^53 - 1 را بدون از دست دادن دقت نگه میدارد. بنابراین اعداد بزرگتر دچار Precision Loss میشوند و ممکن است مقدارشان تغییر کند.
گاهی سختترین باگها، اصلاً در جایی که دنبالشان میگردیم نیستند.
@DevTwitter | <Vahid Heydari/>
1❤74👎18🍌13
درود بر فریلنسرهای عزیز!
اگه توی سایتهای فریلنسری فعالیت میکنین، حتماً میدونی که پیدا کردن پروژه و جمعآوری اطلاعات کارفرما چقدر وقت میگیره. Xelector یه اکستنشن کروم اوپنسورس و کمحجمه که این کار رو برات ساده تر میکنه.
- استخراج خودکار مشخصات کارفرما، نیازمندیها و… با CSS Selectorهای دلخواه
- خروجی Markdown، JSON یا متن ساده – مستقیم توی کلیپبورد
- ترکیب دادهها با قالب پروپوزال و ارسال سریعتر
- پروفایلهای قابل ذخیره، ایمپورت/اکسپورت و اشتراکگذاری
برای دریافت آخرین نسخه میتونید از این لینک مستقیم اقدام کنید:
https://github.com/Tariux/Xelector
@DevTwitter | <MADMAN/>
اگه توی سایتهای فریلنسری فعالیت میکنین، حتماً میدونی که پیدا کردن پروژه و جمعآوری اطلاعات کارفرما چقدر وقت میگیره. Xelector یه اکستنشن کروم اوپنسورس و کمحجمه که این کار رو برات ساده تر میکنه.
- استخراج خودکار مشخصات کارفرما، نیازمندیها و… با CSS Selectorهای دلخواه
- خروجی Markdown، JSON یا متن ساده – مستقیم توی کلیپبورد
- ترکیب دادهها با قالب پروپوزال و ارسال سریعتر
- پروفایلهای قابل ذخیره، ایمپورت/اکسپورت و اشتراکگذاری
برای دریافت آخرین نسخه میتونید از این لینک مستقیم اقدام کنید:
https://github.com/Tariux/Xelector
@DevTwitter | <MADMAN/>
❤16👍4👎3
چند ماه پیش یه زبان برنامهنویسی جدید اومده بود به اسم داریکس، اوایل تازه داشتن روش کار میکردن ولی الان دیگه خیلی جالبتر شده،
سینتکس این زبان شبیه جاوا اسکریپت و پایتونه، در عین حال که ساده هست خیلی قدرتمند و سریعه!
میشه گفت این زبان از خیلی از زبان های مفسری مثل پایتون و PHP و... سریعتره
https://github.com/shayanheidari01/DariX
بهنظرم این پروژه، پروژهی جالبیه چند وقتیه که دارم دنبالش میکنم چون میتونه آینده خوبی داشته باشه.
@DevTwitter | <Person/>
سینتکس این زبان شبیه جاوا اسکریپت و پایتونه، در عین حال که ساده هست خیلی قدرتمند و سریعه!
میشه گفت این زبان از خیلی از زبان های مفسری مثل پایتون و PHP و... سریعتره
https://github.com/shayanheidari01/DariX
بهنظرم این پروژه، پروژهی جالبیه چند وقتیه که دارم دنبالش میکنم چون میتونه آینده خوبی داشته باشه.
@DevTwitter | <Person/>
👎71👍15❤10
متا یه پروژه برای طراحی UI که طی هشت سال در شرکتش رشد کرده رو اوپن سورس کرد.
https://github.com/facebook/astryx
بیش از ۱۵۰ قطعه آماده طراحی
همچنین برای هوش مصنوعیها بهینه شده.
@DevTwitter | <Afshin Karimi/>
https://github.com/facebook/astryx
بیش از ۱۵۰ قطعه آماده طراحی
همچنین برای هوش مصنوعیها بهینه شده.
@DevTwitter | <Afshin Karimi/>
🍌24👍19👎1
اگر ZCode رو نصب کنید(با Zed Code فرق میکنه) میتونید روزانه 3 میلیون توکن رایگان GLM-5.2 و دو میلیون توکن GLM-5 Turbo بگیرید با یه محیط کدنویسی تمیز شبیه به Codex
اینم لینک نصبش: https://zcode.z.ai/en/docs/install
@DevTwitter | <Matin SenPai/>
اینم لینک نصبش: https://zcode.z.ai/en/docs/install
@DevTwitter | <Matin SenPai/>
❤49👎28🔥3
با این روش میتونید بی نهایت آدرس ایمیل با استفاده از کلودفلر داشته باشید
https://youtu.be/Z069VNFAgAc
فقط کافیه تنظیمات ایمیل رو توی کلودفلر تغییر بدید
نیازی به کد یا اسکریپت خاصی هم نیست
@DevTwitter | <Rasoul Mousavian/>
https://youtu.be/Z069VNFAgAc
فقط کافیه تنظیمات ایمیل رو توی کلودفلر تغییر بدید
نیازی به کد یا اسکریپت خاصی هم نیست
@DevTwitter | <Rasoul Mousavian/>
❤18👍8👎3
اپ دسکتاپ گوگل واقعا چیز به درد بخوریه.
یا یه شورتکات سریع میاد بالا. گوگل لنز، ترجمه و شیراسکرین هم داره. آدم رو از باز کردن تب های جدید و کپی/پیست های اضافه خلاص میکنه. با ai هم سرچ میکنه و پاسخ میده.
یکی از کلید های ماکرو کیبوردم رو اختصاص دادم بهش و تقریبا همه سرچ ها و سوالای سادهم با این انجام میدم.
خاک بر سرت مایکروسافت
https://search.google/google-app/desktop/
@DevTwitter | <Simple Developer/>
یا یه شورتکات سریع میاد بالا. گوگل لنز، ترجمه و شیراسکرین هم داره. آدم رو از باز کردن تب های جدید و کپی/پیست های اضافه خلاص میکنه. با ai هم سرچ میکنه و پاسخ میده.
یکی از کلید های ماکرو کیبوردم رو اختصاص دادم بهش و تقریبا همه سرچ ها و سوالای سادهم با این انجام میدم.
خاک بر سرت مایکروسافت
https://search.google/google-app/desktop/
@DevTwitter | <Simple Developer/>
👎63👍37🍌7
آیا برای شما هم پیش اومده که در جلسه یا کلاسی باشید و در انتهای جلسه انبوهی از صفحات در مرورگرتون باز کرده باشید برای بررسی در آینده؟
افزونه Tab Catalog اینجاست تا لیست کامل تبهای مرورگر شما رو ذخیره کنه و با استایلی زیبا در فرمت HTML بهتون نمایش بده.
https://github.com/SDR7904/tab-catalog-browser-extention
@DevTwitter | <Sadra/>
افزونه Tab Catalog اینجاست تا لیست کامل تبهای مرورگر شما رو ذخیره کنه و با استایلی زیبا در فرمت HTML بهتون نمایش بده.
https://github.com/SDR7904/tab-catalog-browser-extention
@DevTwitter | <Sadra/>
❤39🍌4👍2
دیدی بعد یه مدتی که شما با یک LLM چت میکنی میبینی که هی داره خنگ تر میشه و کلا اون زرنگی اول رو نداره.
این دلیلش بخاطر context window هست و هرچقدر شما توکن بیشتری در حلق LLM فرو کنی، اون LLM دچار بحران هویت میشه و شعورشو از دست میده و پرتو پلا تحویلت میده.
https://aromatic-infinity-1b2.notion.site/Context-Window-LLM-3911255a69d480e0ac28ea81f9f53c54
@DevTwitter | <Yazdan Fathali/>
این دلیلش بخاطر context window هست و هرچقدر شما توکن بیشتری در حلق LLM فرو کنی، اون LLM دچار بحران هویت میشه و شعورشو از دست میده و پرتو پلا تحویلت میده.
https://aromatic-infinity-1b2.notion.site/Context-Window-LLM-3911255a69d480e0ac28ea81f9f53c54
@DevTwitter | <Yazdan Fathali/>
❤58🍌12👎2
یکی از بهترین api های رایگان ai
روزانه ۷ میلیون توکن رایگان میدهد بدون اینکه نیاز به کارت بانکی داشته باشید و به مدلهایی مثل Claude Sonnet 4.5 و glm5.2 و.... دسترسی میتوانید داشته باشید
http://router.bynara.id
@DevTwitter | <Davinci/>
روزانه ۷ میلیون توکن رایگان میدهد بدون اینکه نیاز به کارت بانکی داشته باشید و به مدلهایی مثل Claude Sonnet 4.5 و glm5.2 و.... دسترسی میتوانید داشته باشید
http://router.bynara.id
@DevTwitter | <Davinci/>
🔥51👎15❤6
ابزار Stealth-Kit منتشر شد.
یک toolkit دفاعی برای Linux security audit، گزارشگیری و hardening سیستمهای Debian / Kali با رویکرد audit-first و قابلبرگشت تا حد امکان.
GitHub:
http://github.com/v74all/Stealth-Kit
@DevTwitter | <Aiden/>
یک toolkit دفاعی برای Linux security audit، گزارشگیری و hardening سیستمهای Debian / Kali با رویکرد audit-first و قابلبرگشت تا حد امکان.
GitHub:
http://github.com/v74all/Stealth-Kit
@DevTwitter | <Aiden/>
👍9🍌2❤1
This media is not supported in your browser
VIEW IN TELEGRAM
همیشه کامیونیتی کلاد آدم رو سورپرایز میکنه!
یکی اومده برای مدل های کلاد ی شیفتر دنده نوشته ک با عوض کردن دنده ها، مدل عوض میشه.
جالب بود بقول انگلیسی ها vroom vrooom
فکر کن از Fable 5 معکوس بکشی بری sonnet :))
https://www.shiftcc.app/
@DevTwitter | <Kaveh/>
یکی اومده برای مدل های کلاد ی شیفتر دنده نوشته ک با عوض کردن دنده ها، مدل عوض میشه.
جالب بود بقول انگلیسی ها vroom vrooom
فکر کن از Fable 5 معکوس بکشی بری sonnet :))
https://www.shiftcc.app/
@DevTwitter | <Kaveh/>
🍌69🔥38👎4
پرچمدار کدنویسی سنتی، رسما Vibe Coding رو بغل کرد. لینوس توروالدز هم رفت سمت Vibe Coding
طبق چیزی که منتشر شده، Linus Torvalds در یک پروژه شخصی، از AI برای اصلاح اسکریپت پایتون استفاده کرده، خروجی رو بررسی و گفته نتیجه از زمانی که خودش دستی انجام میداد بهتر بوده.
دیگه حتی یکی از نمادهای برنامهنویسی کلاسیک، مردی که لینوکس و گیت (Git) رو خلق کرده، کسی که به وسواس شدید روی جزییات کد و مخالفتهای سرسختانهاش معروفه حاضر نیست فقط به خاطر تعصب، از ابزاری که بهرهوری رو بالا میبره چشمپوشی کنه.
اما در همین حال، برنامهنویسای کلاسیک گارد گرفتن و جنگ همیشگی شروع شد...
این مقاومت من رو یاد داستان تلخ سقوط امپراتوری کداک (Kodak) میندازه.
پایان این غول 133 ساله و پادشاه بیچونوچرای عکاسی جهان یکی از بزرگترین تراژدیهای دنیای تجارته...
سال 1975، یکی از مهندسان خود کداک به نام استیو ساسون، اولین دوربین دیجیتال جهان رو اختراع کرد. واکنش مدیران کداک چی بود؟ عکس دیجیتال؟ چرته! حس لمس کاغذ عکاسی و فرآیند چاپ رو نداره. این عکاسی واقعی نیست!
کداک اونقدر روی فرآیند قدیمیش تعصب داشت که عقب موند و نهایتا در سال 2012 اعلام ورشکستگی کرد، در حالی که اینستاگرام با چند ده کارمند میلیارد دلاری میشد.
امروز مخالفت با Vibe Coding دقیقا همون اشتباه کداکه. ارزش یک مهندس نرمافزار، مسلط بودن به سینتکس پیچیده فریمورکها یا کلنجار رفتن با باگ و غیره نیست. ارزش ما در حل مسئله، تفکر سیستمی، معماری و خلق ارزشه.
هوش مصنوعی نیومده تا برنامهنویسا رو حذف کنه؛ اومده تا ما رو از شر کارهای تکراری خلاص کنه که بتونیم مثل یک رهبر ارکستر، کدها رو هدایت کنیم.
آینده متعلق به کسایی نیست که بهترین کد دستی رو مینویسن؛ متعلق به کسایی هست که یاد میگیرن چطور با بالاترین سرعت و بهترین کیفیت، ابزارهای هوش مصنوعی رو برای حل مسائل بزرگ هدایت کنن.
@DevTwitter | <Ehsan Rezaei/>
طبق چیزی که منتشر شده، Linus Torvalds در یک پروژه شخصی، از AI برای اصلاح اسکریپت پایتون استفاده کرده، خروجی رو بررسی و گفته نتیجه از زمانی که خودش دستی انجام میداد بهتر بوده.
دیگه حتی یکی از نمادهای برنامهنویسی کلاسیک، مردی که لینوکس و گیت (Git) رو خلق کرده، کسی که به وسواس شدید روی جزییات کد و مخالفتهای سرسختانهاش معروفه حاضر نیست فقط به خاطر تعصب، از ابزاری که بهرهوری رو بالا میبره چشمپوشی کنه.
اما در همین حال، برنامهنویسای کلاسیک گارد گرفتن و جنگ همیشگی شروع شد...
این مقاومت من رو یاد داستان تلخ سقوط امپراتوری کداک (Kodak) میندازه.
پایان این غول 133 ساله و پادشاه بیچونوچرای عکاسی جهان یکی از بزرگترین تراژدیهای دنیای تجارته...
سال 1975، یکی از مهندسان خود کداک به نام استیو ساسون، اولین دوربین دیجیتال جهان رو اختراع کرد. واکنش مدیران کداک چی بود؟ عکس دیجیتال؟ چرته! حس لمس کاغذ عکاسی و فرآیند چاپ رو نداره. این عکاسی واقعی نیست!
کداک اونقدر روی فرآیند قدیمیش تعصب داشت که عقب موند و نهایتا در سال 2012 اعلام ورشکستگی کرد، در حالی که اینستاگرام با چند ده کارمند میلیارد دلاری میشد.
امروز مخالفت با Vibe Coding دقیقا همون اشتباه کداکه. ارزش یک مهندس نرمافزار، مسلط بودن به سینتکس پیچیده فریمورکها یا کلنجار رفتن با باگ و غیره نیست. ارزش ما در حل مسئله، تفکر سیستمی، معماری و خلق ارزشه.
هوش مصنوعی نیومده تا برنامهنویسا رو حذف کنه؛ اومده تا ما رو از شر کارهای تکراری خلاص کنه که بتونیم مثل یک رهبر ارکستر، کدها رو هدایت کنیم.
آینده متعلق به کسایی نیست که بهترین کد دستی رو مینویسن؛ متعلق به کسایی هست که یاد میگیرن چطور با بالاترین سرعت و بهترین کیفیت، ابزارهای هوش مصنوعی رو برای حل مسائل بزرگ هدایت کنن.
@DevTwitter | <Ehsan Rezaei/>
👍189👎47❤21
یکی یه پروژه ساخته که با فشرده کردن توکن ورودی و تبدیلش به عکس تا ۱۰ برابر تو هزینه استفاده از fable و مدلهای دیگه صرفهجویی میکنه :)
اصل ایده هم از مقالهای میاد که Deepseek سال پیش منتشر کرده بود و حتی این ایده مطرح شده بود که کانتکس جدید رو به صورت high-fidelity نگهداری کنیم و هر چی که دیتا قدیمیتر میشه به جای compress کردنش، اون قسمت عکس رو تار تَر کنیم دقیقا مدلی که خاطرات تو مغز ما یادآوری میشه!
لینک پروژه: https://github.com/teamchong/pxpipe…
لینک مقاله: https://github.com/deepseek-ai/DeepSeek-OCR/blob/main/DeepSeek_OCR_paper.pdf
@DevTwitter | <Amir/>
اصل ایده هم از مقالهای میاد که Deepseek سال پیش منتشر کرده بود و حتی این ایده مطرح شده بود که کانتکس جدید رو به صورت high-fidelity نگهداری کنیم و هر چی که دیتا قدیمیتر میشه به جای compress کردنش، اون قسمت عکس رو تار تَر کنیم دقیقا مدلی که خاطرات تو مغز ما یادآوری میشه!
لینک پروژه: https://github.com/teamchong/pxpipe…
لینک مقاله: https://github.com/deepseek-ai/DeepSeek-OCR/blob/main/DeepSeek_OCR_paper.pdf
@DevTwitter | <Amir/>
🔥82👍12👎3
اگه Vibe Coder هستید و خروجی فرانتاندی که از Claude تحویل میگیرید همش تکراریه و AI Slope میشه، مشکل از مدل نیست؛ مشکل اینه که دارید بدون Design Direction و Skills، بهش پرامپت میدید.
مدل بهصورت پیشفرض میره سمت امنترین انتخابها: Inter، کارتهای گرد، Heroهای تکراری، Layoutهای قابل پیشبینی و CTAهای کلیشهای.
چند تا کار ساده (جدا از اضافه کردن Skills و Plugins) که واقعاً تفاوت ایجاد میکنن:
1. از Cookbook خود Anthropic استفاده کنید:
https://platform.claude.com/cookbook/coding-prompting-for-frontend-aesthetics
مثلاً این رو به System Prompt اضافه کنید:
<frontend_aesthetics>
Avoid generic AI aesthetics. Choose distinctive fonts instead of Inter, Roboto or system fonts. Commit to one clear aesthetic direction. Use dominant colors with sharp accents. Avoid predictable layouts and clichéd patterns like purple gradients. Make unexpected but deliberate choices.
</frontend_aesthetics>
2. سعی کنید Design Tokens بدید، نه توصیف کلی.
بهجای اینکه بگید یه سایت مینیمال و ... برای فلان بساز، اینا رو مشخص کنید:
- Spacing Scale
- Border Radius
- Typography Scale
- Color Palette
- Shadow Rules
وقتی Token داشته باشه، کمتر تصمیمهای پیشفرض خودش رو اعمال میکنه.
3. برای فونت تصمیم بگیرید.
مثلاً:
Use Satoshi for UI, Clash Display for headings and IBM Plex Mono for code. Never use Inter.
4. رفرنس تصویری بدید.
دو سه تا اسکرینشات از سایتهایی که دوست دارید آپلود کنید و بگید:
Borrow the visual language, not the layout.
این خیلی بهتر از اینه که فقط بگید «مثل Apple» یا «مینیمال».
5. همه موارد رو توی یک پرامپت نفرستید، چند مرحلهای Iterate کنید.
اول Skeleton و Layout، بعد Typography، بعد Spacing، بعد Motion و Micro-interactions. انتظار نداشته باشید همهچیز با یه Prompt عالی بشه.
6. ازش بخواید از انتخابهاش دفاع کنه.
مثلاً:
Explain every typography, spacing and color decision before generating the code.
اینم باعث میشه کمتر سراغ انتخابهای کلیشهای بره.
همین چند تا تغییر ساده باعث میشه خروجی خیلی کمتر حس «AI-generated» داشته باشه.
@DevTwitter | <گیکزهرا/>
مدل بهصورت پیشفرض میره سمت امنترین انتخابها: Inter، کارتهای گرد، Heroهای تکراری، Layoutهای قابل پیشبینی و CTAهای کلیشهای.
چند تا کار ساده (جدا از اضافه کردن Skills و Plugins) که واقعاً تفاوت ایجاد میکنن:
1. از Cookbook خود Anthropic استفاده کنید:
https://platform.claude.com/cookbook/coding-prompting-for-frontend-aesthetics
مثلاً این رو به System Prompt اضافه کنید:
<frontend_aesthetics>
Avoid generic AI aesthetics. Choose distinctive fonts instead of Inter, Roboto or system fonts. Commit to one clear aesthetic direction. Use dominant colors with sharp accents. Avoid predictable layouts and clichéd patterns like purple gradients. Make unexpected but deliberate choices.
</frontend_aesthetics>
2. سعی کنید Design Tokens بدید، نه توصیف کلی.
بهجای اینکه بگید یه سایت مینیمال و ... برای فلان بساز، اینا رو مشخص کنید:
- Spacing Scale
- Border Radius
- Typography Scale
- Color Palette
- Shadow Rules
وقتی Token داشته باشه، کمتر تصمیمهای پیشفرض خودش رو اعمال میکنه.
3. برای فونت تصمیم بگیرید.
مثلاً:
Use Satoshi for UI, Clash Display for headings and IBM Plex Mono for code. Never use Inter.
4. رفرنس تصویری بدید.
دو سه تا اسکرینشات از سایتهایی که دوست دارید آپلود کنید و بگید:
Borrow the visual language, not the layout.
این خیلی بهتر از اینه که فقط بگید «مثل Apple» یا «مینیمال».
5. همه موارد رو توی یک پرامپت نفرستید، چند مرحلهای Iterate کنید.
اول Skeleton و Layout، بعد Typography، بعد Spacing، بعد Motion و Micro-interactions. انتظار نداشته باشید همهچیز با یه Prompt عالی بشه.
6. ازش بخواید از انتخابهاش دفاع کنه.
مثلاً:
Explain every typography, spacing and color decision before generating the code.
اینم باعث میشه کمتر سراغ انتخابهای کلیشهای بره.
همین چند تا تغییر ساده باعث میشه خروجی خیلی کمتر حس «AI-generated» داشته باشه.
@DevTwitter | <گیکزهرا/>
❤54🍌23👍10
نسخه جدید دانلود منجر Firelink منتشر شد:
- برای مک (arm)٬ ویندوز و لینوکس ۶۴ بیتی (Rust +Tauri)
- اکستنشن فایرفاکس
- دانلود پرسرعت با aria2
- دانلود از یوتیوب٬ توییتر٬ اینستاگرم و غیره با yt-dlp (و استفاده از Deno و FFmpeg)
https://github.com/nimbold/Firelink
@DevTwitter | <Nima/>
- برای مک (arm)٬ ویندوز و لینوکس ۶۴ بیتی (Rust +Tauri)
- اکستنشن فایرفاکس
- دانلود پرسرعت با aria2
- دانلود از یوتیوب٬ توییتر٬ اینستاگرم و غیره با yt-dlp (و استفاده از Deno و FFmpeg)
https://github.com/nimbold/Firelink
@DevTwitter | <Nima/>
🔥35❤7🍌2
چند روزه میبینم همه دارن در مورد whisper حرف میزنن. خواستم بگم یه ساله برای تبدیل گفتار به متن از Handy استفاده میکنم و واقعاً بیرقیبه.
کاملاً آفلاین با پشتیبانی دقیق از فارسی. حرف زدن با کامپیوترو خیلی ساده میکنه.
https://github.com/cjpais/handy
فقط کافیه شورتکات رو نگه دارید، صحبت کنید و رها کنید تا براتون تایپ کنه.
اگر دنبال یه ابزار STT بیدردسر و رایگان برای لینوکس، مک یا ویندوز هستید، حتماً تستش کنید.
@DevTwitter | <Bloody Crow of Painhurts/>
کاملاً آفلاین با پشتیبانی دقیق از فارسی. حرف زدن با کامپیوترو خیلی ساده میکنه.
https://github.com/cjpais/handy
فقط کافیه شورتکات رو نگه دارید، صحبت کنید و رها کنید تا براتون تایپ کنه.
اگر دنبال یه ابزار STT بیدردسر و رایگان برای لینوکس، مک یا ویندوز هستید، حتماً تستش کنید.
@DevTwitter | <Bloody Crow of Painhurts/>
👍49❤15🔥4
میدانید Mermaid چیه؟
اگه تا حالا خواستی یه فلوچارت، دیاگرام کلاس، یا sequence diagram رسم کنی — Mermaid دقیقاً برای اینه. بهجای کشیدن با ماوس، چند خط متن ساده مینویسی و یه دیاگرام زیبا میگیری. میتونی همین الان توی مرورگر امتحانش کنی: mermaid.live
دو پکیج پایتونی برای رندر Mermaid — بدون نیاز به مرورگر
معمولاً برای رندر Mermaid باید Node.js، npm و یه مرورگر headless روی سیستمت نصب باشه.
این دو پکیج این مشکل رو حل میکنن:
1. پکیج mmdc — همون Mermaid اصلی، بدون Node.js
این پکیج از همون mermaid.min.js رسمی استفاده میکنه — یعنی خروجی با mermaid.live یکسانه. زیر هود از phasma استفاده میکنه که یه PhantomJS سبک رو بدون نیاز به نصب هیچ چیزی روی سیستم اجرا میکنه. فقط pip install mmdc — تمام.
2. پکیج mmdr — بازنویسی mermaidjs به Rust، که ۱۰۰–۱۴۰۰ برابر سریعتر
این پکیج یه پیادهسازی native از Mermaid توی Rust هست. نه JS، نه مرورگر، نه هیچی — مستقیم کامپایلشده. دو backend داره، خروجی SVG، PNG، NumPy array میده و با pip install خالی نصب میشه.
اگه میخوای خروجی مطابق با Mermaid رسمی باشه → mmdc اگه سرعت و سبکی مهمه و دیاگرامهات رایجن → mmdr
لینک های گیت هاب:
https://github.com/mohammadraziei/mmdc
https://github.com/mohammadraziei/mmdr
https://github.com/mohammadraziei/phasma
@DevTwitter | <Mohammad Raziei/>
اگه تا حالا خواستی یه فلوچارت، دیاگرام کلاس، یا sequence diagram رسم کنی — Mermaid دقیقاً برای اینه. بهجای کشیدن با ماوس، چند خط متن ساده مینویسی و یه دیاگرام زیبا میگیری. میتونی همین الان توی مرورگر امتحانش کنی: mermaid.live
دو پکیج پایتونی برای رندر Mermaid — بدون نیاز به مرورگر
معمولاً برای رندر Mermaid باید Node.js، npm و یه مرورگر headless روی سیستمت نصب باشه.
این دو پکیج این مشکل رو حل میکنن:
1. پکیج mmdc — همون Mermaid اصلی، بدون Node.js
این پکیج از همون mermaid.min.js رسمی استفاده میکنه — یعنی خروجی با mermaid.live یکسانه. زیر هود از phasma استفاده میکنه که یه PhantomJS سبک رو بدون نیاز به نصب هیچ چیزی روی سیستم اجرا میکنه. فقط pip install mmdc — تمام.
pip install mmdc
mmdc -i diagram.mmd -o output.svg
2. پکیج mmdr — بازنویسی mermaidjs به Rust، که ۱۰۰–۱۴۰۰ برابر سریعتر
این پکیج یه پیادهسازی native از Mermaid توی Rust هست. نه JS، نه مرورگر، نه هیچی — مستقیم کامپایلشده. دو backend داره، خروجی SVG، PNG، NumPy array میده و با pip install خالی نصب میشه.
pip install mmdr
mmdr -i diagram.mmd -o output.svg
اگه میخوای خروجی مطابق با Mermaid رسمی باشه → mmdc اگه سرعت و سبکی مهمه و دیاگرامهات رایجن → mmdr
لینک های گیت هاب:
https://github.com/mohammadraziei/mmdc
https://github.com/mohammadraziei/mmdr
https://github.com/mohammadraziei/phasma
@DevTwitter | <Mohammad Raziei/>
❤17🔥2👎1
اگه تو این شرایط اقتصادی دنبال راهکارهای کمهزینه یا حتی بدون هزینه برای کار با AI میگردین، 9Router میتونه شدیداً کمکتون کنه.
داستانش اینه: وقتی با ابزارهایی مثل Cursor، Claude Code، Codex یا Cline کار میکنین، معمولاً باید بین مدلها، API Keyها، محدودیتها و هزینهها هی جابهجا بشین.
9Router میاد وسط و مثل یه مسیردهنده هوشمند عمل میکنه؛ درخواستتون رو میگیره و خودش میفرسته سمت بهترین گزینه. اگه یه سرویس محدود شد، خطا داد یا گرون بود، میتونه بره سراغ گزینههای ارزونتر یا رایگان.
یعنی بهجای اینکه دستی بین چند مدل بچرخین، یه لایه میذارین وسط که مصرف، هزینه و محدودیتها رو بهتر مدیریت کنه.
برای کسایی که زیاد با AI کد میزنن، واقعاً کاربردیه.
سایت:
https://9router.com
GitHub:
https://github.com/decolua/9router
@DevTwitter | <Pedram/>
داستانش اینه: وقتی با ابزارهایی مثل Cursor، Claude Code، Codex یا Cline کار میکنین، معمولاً باید بین مدلها، API Keyها، محدودیتها و هزینهها هی جابهجا بشین.
9Router میاد وسط و مثل یه مسیردهنده هوشمند عمل میکنه؛ درخواستتون رو میگیره و خودش میفرسته سمت بهترین گزینه. اگه یه سرویس محدود شد، خطا داد یا گرون بود، میتونه بره سراغ گزینههای ارزونتر یا رایگان.
یعنی بهجای اینکه دستی بین چند مدل بچرخین، یه لایه میذارین وسط که مصرف، هزینه و محدودیتها رو بهتر مدیریت کنه.
برای کسایی که زیاد با AI کد میزنن، واقعاً کاربردیه.
سایت:
https://9router.com
GitHub:
https://github.com/decolua/9router
@DevTwitter | <Pedram/>
👍23👎16❤8