<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های احمد بیرانوند</title>
        <link>https://virgool.io/feed/@beyranvand</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-06-16 09:29:24</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/73827/avatar/ash5Bp.jpeg?height=120&amp;width=120</url>
            <title>احمد بیرانوند</title>
            <link>https://virgool.io/@beyranvand</link>
        </image>

                    <item>
                <title>اجرا و نصب پروژه‌ی Next.js با ابزار Bun</title>
                <link>https://virgool.io/@beyranvand/%D8%A7%D8%AC%D8%B1%D8%A7-%D9%88-%D9%86%D8%B5%D8%A8-%D9%BE%D8%B1%D9%88%DA%98%D9%87-%DB%8C-nextjs-%D8%A8%D8%A7-%D8%A7%D8%A8%D8%B2%D8%A7%D8%B1-bun-q2dkplcdugwv</link>
                <description>شاهکاری هنری از استاد احمد بیرانونداگه کلا نمیدونید bun چیه و چرا به وجود امده، یا اینکه فکر میکنید یه چیزی شبیه به yarn یا پکیج منیجر دیگه‌س، باید بگم که تقریبا دارید اشتباه میکنید. البته bun  کار اون‌ها رو هم انجام میده، ولی اون نیست!ابزار bun  چیه؟طبق تعریف رسمی خودشون، bun یک پکیج منیجر، باندل کننده، ران‌تایم، اجراکننده تست و در یک کلام ابزار همه‌کاره (all-in-one) برای زبان جاوااسکریپت هست و قراره جایگزین ابزار‌های ساده‌تری مثل node و npm بشه. اگه وقت کردم یه مقاله جداگانه در این مورد می‌نویسم و کامل شما رو با این ابزار جادویی آشنا میکنم. ( اگه نرسیدم خودتون برید بخونید :) )بریم سر اصل مطلبمیدونید که سرعت اجرای bun  به طرز شگفت‌انگیزی از node بالاتره و پروژه‌های react و next.js هم که الی ماشالله از منابع استفاده میکنند و نیازه که منابع بیشتری در اختیارش بگذاریم؛ وقتشه که این دو ابزار رو با هم ترکیب کنیم!دستور پختدستورات نصب bun شبیه به yarn هستش؛ با این تفاوت که سرعت بالاتر و UI زیباتری رو تجربه میکنیدbun create next-appترمینال روز به روز داره خوشگل‌تر میشهبعد از این‌که مراحل نصب تموم شدش۷ میرسه به مرحله اجرای پروژه، که با این دستور میشه اجراش کرد و از سرعت کار لذت برد:bun --bun run devالبته میشه با دستورهای زیر هم میشه :bun run devیاbun devولی توی دو روش آخر از طریق node.js اجرا میشه و سرعتش همون سرعت قدیمیه، فقط رابط کاربری عوض میشه؛ پس حواستون جمع جمع باشه که از دستور اول استفاده کنید</description>
                <category>احمد بیرانوند</category>
                <author>احمد بیرانوند</author>
                <pubDate>Thu, 02 Nov 2023 14:00:09 +0330</pubDate>
            </item>
                    <item>
                <title>رفع مشکل a start job running for /dev-disk...</title>
                <link>https://virgool.io/@beyranvand/%D8%B1%D9%81%D8%B9-%D9%85%D8%B4%DA%A9%D9%84-a-start-job-running-for-dev-disk-wperjdbxweiw</link>
                <description>سلام علیکماگر بعد از نصب هارد دیسک جدید یا نصب ویندوز در کنار لینوکس‌تون و یا هر تغییری دیگه در ساختار هارد دیسک‌تون، سرعت لود لینوکس‌تون کم شده، مهم‌ترین عاملش میتونه پیامی با عنوان زیر باشه:A start job is running for dev-disk-by\.... (Limit)
اگر بوت شدن سیستم‌تون گرافیکیه و پیامی نمی‌بینید، کلید &#x60;ESC&#x60;  را بزنید تا لاگ لود شدن رو ببینید؛ دست بر قضا اگر به همچین پیامی برخورد کردید، مراحل زیر رو به ترتیب انجام بدید تا مشکل رفع بشهنصب GPartedاول برنامه‌ی Gparted رو توی ترمینال نصب کنیدsudo apt install gpartedکپی UUIDبرنامه‌ی GParted رو اجرا کنید. اگه مثل من چند تا هارد روی سیستم نصب کردید، از لیست هاردها اون رو انتخاب کنید.حالا روی درایو swap راست کلیک کنید و گزینه‌ی Information رو انتخاب کنید.در این قسمت کل UUID رو کپی کنید.بروزکردن فایل fstabخب برای بازکردن فایل fstab دستور زیر رو وارد کنید sudo gedit /etc/fstabقاعدتا باید همچین پنجره‌ای برای شما باز بشه. حواستون باشه که فایل خیلی حساسه و دست‌کاری کردن این فایل میتونه براتون گرون تموم شه! حالا UUIDی که از برنامه GParted کپی کردید رو به جای UUID سابق (اونی که انتخابش کردم) جایگذاری کنید.امید آن‌است بعد از ریبوت سیستم مشکلتون حل شده باشه.اگرم حل نشد که مشکل از جای دیگس که من نمیدونم!یاعلی</description>
                <category>احمد بیرانوند</category>
                <author>احمد بیرانوند</author>
                <pubDate>Sat, 16 Apr 2022 15:14:57 +0430</pubDate>
            </item>
                    <item>
                <title>چطور فایرفاکس توسعه‌دهندگان ( Firefox Developer ) رو روی لینوکس نصب کنیم؟</title>
                <link>https://virgool.io/@beyranvand/%DA%86%D8%B7%D9%88%D8%B1-%D9%81%D8%A7%DB%8C%D8%B1%D9%81%D8%A7%DA%A9%D8%B3-%D8%AA%D9%88%D8%B3%D8%B9%D9%87-%D8%AF%D9%87%D9%86%D8%AF%DA%AF%D8%A7%D9%86-firefox-developer-%D8%B1%D9%88-%D8%B1%D9%88%DB%8C-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D9%86%D8%B5%D8%A8-%DA%A9%D9%86%DB%8C%D9%85-nlbeby736rk6</link>
                <description>سلامی دوباره خدمت دوستان لینوکسی عزیز. با یه مطلب آموزشی دیگه در خدمت شما هستم. امروز میخوام براتون توضیح بدم چطور Firefox developer رو روی Ubuntu  و به طور کلی لینوکس های برپایه Debian نصب کنیم. با من همراه باشید Firefox developer برای لینوکسهمونطور که میدونید نسخه‌ی توسعه‌دهندگان ( Developer ) مرورگر محبوب فایرفاکس توی هیچ‌کدوم از مخازن package manager اوبونتو موجود نیست ( البته تا این تاریخ که من دارم این مطلب رو می‌نویسم ) و برای نصب اون باید دستی اقدام کنید. نگران نباشید، خیلی سخت نیست. کافیه مراحل زیر رو به ترتیب و درستی انجام بدید:۱- دانلود فایل فشرده شدهبرای دانلود برنامه از این لینک استفاده کنید.۲- پوشه‌ای که فایل رو در اون دانلود کردید، باز کنید.۳- با راست کلیک کردن روی فضای خالی پوشه و انتخاب گزینه‌ی Open in terminal، ترمینال خودتون رو باز کنید۴- با دستور زیر فایل رو به پوشه /opt انتقال بدینsudo cp -rp firefox*.tar.bz2 /opt۵- فایل رو از اینجا پاک کنید. به این شکل:sudo rm -rf firefox*.tar.bz2  ۶- خب بریم توی مسیر /opt:cd /opt۷- حالا با استفاده از دستور زیر فایل رو توی همین مسیر استخراج کنید:sudo tar xjf firefox*.tar.bz2۸- طبیعتا بعد از استخراج نیازی به اون فایل فشرده نیست. پس پاکش می‌کنیم:sudo rm -rf firefox*.tar.bz2۹- اگه تا حالا نمیدونستید، پوشه‌ی opt تحت مالکیت مدیران سیستم یا اصصلاحاً sudoers هست. با این دستور مالکیت این پوشه رو به کاربر جاری بدین.sudo chown -R $USER /opt/firefoxتا اینجای کار، فایرفاکس نصب شده و قابلیت اجرا رو داره ولی شما اون رو توی Activityتون نمی بینید. برای دسترسی آسون‌تر به اون شما باید اون رو به لیست برنامه‌ها اضافه کنید که کار سختی نیست. کافیه این دستور رو وارد کنید:nano ~/.local/share/applications/firefox_dev.desktopتوی محیط ویرایشگری که براتون باز شده این چند خط رو وارد کنید. (اطلاع دارید که این‌جا با ctrl+shift+v پیست میکنن!)[Desktop Entry]
Name=Firefox Developer 
GenericName=Firefox Developer Edition
Exec=/opt/firefox/firefox %u
Terminal=false
Icon=/opt/firefox/browser/chrome/icons/default/default128.png
Type=Application
Categories=Application;Network;X-Developer;
Comment=Firefox Developer Edition Web Browser.
StartupWMClass=Firefox Developer Editionو در نهایت فایل میانبری که ساخته شد رو اجرایی میکنیم:chmod +x ~/.local/share/applications/firefox_dev.desktopنتیجه باید همچین شکلی داشته باشهامیدوارم این آموزش هم مفید واقع شده باشه براتون.یاعلی</description>
                <category>احمد بیرانوند</category>
                <author>احمد بیرانوند</author>
                <pubDate>Sat, 09 Apr 2022 12:08:18 +0430</pubDate>
            </item>
                    <item>
                <title>با برنامه‌های هنگ کرده لینوکس چه کنیم؟ (قسمت اول)</title>
                <link>https://virgool.io/fboard/%D8%A8%D8%A7-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7%DB%8C-%D9%87%D9%86%DA%AF-%DA%A9%D8%B1%D8%AF%D9%87-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%D9%87-%DA%A9%D9%86%DB%8C%D9%85-%D9%82%D8%B3%D9%85%D8%AA-%D8%A7%D9%88%D9%84-lwit1cnb06bc</link>
                <description>توی لینوکس مثل هر سیستم‌عاملی امکان این وجود داره که برنامه‌هاتون (یا به اصطلاح جامع‌تر پروسه‌هاتون) هنگ کنن و نیاز باشه که یه آستینی بالا بزنید و سیستمتون رو نجات بدینthis window is not responding! یک دروغ بزرگ!یک دروغ نانوشته وجود داره با این مضمون که لینوکس Task Manager نداره ( البته خب اگه منظورتون یه چیزی دقیقا کپیِ Windows Task Manager هست، تقریبا حق باشماست ? )تند نرید! اگه با همین فرمون برید جلو باید بهتون بگم ته این مسیر به این نتیجه میرسید که لینوکس هیچی نداره الّا یه ترمینال که فقط هکرا ازش سردرمیارن!اگه یه مقدار با خانواده قدرتمند لینوکس کار کرده باشید، می‌دونید که این سیستم‌عامل یه هسته قدرتمند رو در اختیار ما میذاره و به ما اجازه میده با استفاده از خط فرمان (به قول ما ترمینال) از قابلیت‌هاش استفاده کنیم؛ ولی اگه به محیط خط فرمان علاقه‌ای ندارید میتونید با استفاده از برنامه‌های ثالث ( منظورم برنامه‌هایی هست که دیگران تولید کردند و به طور پیش‌فرض روی سیستم عامل نصب نیست) کاراتون رو پیش ببرید. در ادامه هر دو روش رو بررسی و مقایسه می‌کنیم.روش خط فرمانتوی این روش بر خلاف اسم ترسناکش، روش کار خیلی آسونه. البته کلا کار توی این محیط به علت قاعده‌مند بودن، از محیط گرافیکی راحت‌تره؛ لااقلاً برای من.خب بریم سراغ کار عملی. شما برای بستن پروسه‌ی مشکل‌دار دو مرحله دارید:۱- پیدا کردن پروسه و ID آن: با دستور زیر پروسه‌ی مد نظرتون رو پیدا کنید:ps -aux | grep APP_NAMEکه به جای APP_NAME اسم برنامه‌تون رو بنویسید. اگه اسم کامل برنامه موردنظر رو نمی‌دونید نگران نباشید. همون مقدار از اسمشو میدونید وارد کنید؛ دلیلشو بعداً براتون میگم. البته مستحضرید که لینوکس به بزرگی و کوچیکی حروف حساسه. (اونجا حواستون جمع باشه)شاید بپرسید این کد چی بود.  - دستور ps -aux : تمام پروسه‌های در حال اجرا رو بهمون میده ( به همراه خیلی جزئیات دیگه) - قسمت | grep APP_NAME : خروجی دستور قبلی رو با کلمه‌ی APP_NAME فیلتر میکنه.خروجی دستور یه چیزی شبیه اینهuser1      23405  0.1  0.8 1034472 53096 ?       Ssl  20:43   0:03 /usr/bin/APP_NAME
user1      23882  0.0  0.0  12160  2664 pts/1    S+   21:16   0:00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn --exclude-dir=.idea --exclude-dir=.tox APP_NAMEخط دوم رو فراموش کنید. بریم سراغ خط اول. قسمت دوم یه عدده که ID برنامه رو نشون میده (همونه که بولد نشونش دادم). اونو به خاطر بسپارید.۲- پایان دادن به پروسه‌ی ناموفق: دستور زیر را وارد کنید:kill 23405که صد البته به جای این عدد باید آی دی برنامه مورد نظر رو وارد کنید.با یه دونه مثال کار راحت‌تر میشه. فرض کنید یه کار گرافیکی سنگین داشتید و الآن برنامه‌ی inkscapeتون هنگ کرده. مرحله اول - یافتن آی دی برنامه inkscapeمرحله دوم - خاتمه دادن به پروسه‌ی مزاحمفکر میکنم همه چیز از روی عکس‌ها مشخص باشه و نیاز به توضیح دادن نباشه.روش دوم، روش محبوب کسانیه که تازه از ویندوز مهاجرت کردن یا علاقه به محیط‌های گرافیکی دارند هستش که در مقاله بعدی مفصلاً بهش می‌پردازیم.منتظر پستای بعدی باشید.  یاعلی</description>
                <category>احمد بیرانوند</category>
                <author>احمد بیرانوند</author>
                <pubDate>Thu, 09 Dec 2021 23:11:03 +0330</pubDate>
            </item>
                    <item>
                <title>بهترین رابط‌های گرافیکی MySQL برای لینوکس اوبونتو</title>
                <link>https://virgool.io/@beyranvand/%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D8%B1%D8%A7%D8%A8%D8%B7%D9%87%D8%A7%DB%8C-%DA%AF%D8%B1%D8%A7%D9%81%DB%8C%DA%A9%DB%8C-mysql-%D8%A8%D8%B1%D8%A7%DB%8C-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D8%A7%D9%88%D8%A8%D9%88%D9%86%D8%AA%D9%88-ojthftw1xsvi</link>
                <description>همونطور که میدونید MySQL یکی از قویترین سیستم‌های مدیریت دیتابیس‌های رابطه‌ای و شاید محبوب‌ترین موتور SQL برای کاربران GNU/Linux!یکی از انتقاداتی که همیشه به MySQL وارد بوده و در برابر Microsoft SQL Server نقطه‌ی ضعفش محسوب میشه، نداشتن رابط گرافیکی رسمی برای اونه که البته تا چندی پیش با MySQL Workbench تونسته بود موفقیت‌هایی کسب کنه ولی بازهم مشکلات زیادی داشت؛ از جمله مهم‌ترین مشکلات این رابط نداشتن UI و UX خوب در برابر رقبای خودش بود. در این راستا شرکت‌های مختلفی سعی در تولید رابط‌های گرافیکی برای موتور MySQL کردند و تا حدودی تونستن کاربران رو راضی نگه دارن. در این پست قصد دارم چندتا رابط گرافیکی مناسب برای کاربران GNU/Linux (البته به طور خاص debian-based ها) براتون معرفی کنم۱.  DataGripJetBrains DataGrip در حال اجرا بر روی Ubuntu 19.10DataGrip یک محصول مولتی پلتفرم از شرکت معروف jetBrains هستش که مانند بقیه‌ی محصولات این شرکت به خوبی توسعه داده شده. این نرم‌افزار رابط کاربری و تجربه‌کاربری خیلی خوبی داره و به خاطر داشتن رابط معروف IntelliJ IDEA عموم برنامه‌نویسا میتونن ارتباط خوبی باهاش برقرار کنن.نکته‌ی جالب توجه این برنامه قدرتش در کار با انواع موتور‌های دیتابیسیه. به طوری که علاوه بر MySQL میتونید ازین برنامه برای مدیریت Microsoft SQL Server ، Azure SQL Database ، Apache Hive و Amazon Redshift هم استفاده کردبرای نصب این برنامه در محیط Ubuntu از دستور زیر استفاده کنید:sudo snap install datagrip --classic۲. phpMyAdminphpMyAdminمحال ممکنه که با MySQL کار کرده باشید و حداقل یک‌بار از محیط جذاب این نرم‌افزار استفاده نکرده باشید. در واقع phpMyAdmin یکی از پراستفاده‌ترین نرم‌افزارهای مدیریت دیتابیس‌های MySQL محسوب میشه و این محبوبیت بی‌علت نیست. مهم‌ترین مزایای phpMyAdmin رو شاید بشه در موارد زیر خلاصه کرد:حجم کمرابط کاربری بسیار آساناجرا بر روی انواع مرورگر‌هاویژگی خاصی که این برنامه رو از سایر رقباش متممایز میکنه، تحت وب بودنشه و همین قابلیت به ما این امکان رو میده که فارغ از نوع سیستم‌عامل و توزیع، اون رو اجرا کنیم؛ قابلیتی که شاید برای کاربران لینوکسی خیلی مهم باشه!برای نصب phpMyAdmin در محیط Ubuntu از دستور زیر استفاده کنید:sudo apt-get install  -y  phpmyadmin۳. DBeaverدر حقیقت DBeaver یک کلاینت cross-platform برای SQL و ابزاری برای مدیریت دیتابیس هستش که توسط جمعی متشکل از جامعه توسعه‌دهندگان متن‌باز، برنامه‌نویسان SQL و آنالیزورهای دیتابیس توسعه داده شده که البته تاکنون موفقیت‌های چشم‌گیری رو کسب کرده.این برنامه، علاوه بر MySQL، از ابزارهای مدیریت پایگاه داده محبوب دیگری از جمله Oracle، Firebird، PostgreSQL و SQLite هم به خوبی پشتیبانی می‌کنه و همچنین دارای یک رابط کاربری ساده اما جذابه که استفاده ازش خیلی آسونه.از ویژگی‌های خوب دیگه‌ی این برنامه میشه موارد پایین رو هم اضافه کرد:ساخت پرس‌و‌جو بدون کد (Visual Query Builder)ویرایشگر قدرتمند SQLترسیم نمودارهای ERبرای دانلود برنامه DBeaver میتونید از لینک زیر استفاده کنید:https://dbeaver.io/download/۴. Emmaایما () یک نرم‌افزار سبک، کم‌حجم، ساده و در عین حال قدرتمند برای مدیریت SQL و رابطی مناسب برای MySQL و MariaDB هستش که اختصاصا برای لینوکس و انواع توزیع‌هاش از جمله Ubuntu تولید شده. این رابط برای تازه کاران و کسانی که خوششون از شلوغی بیش از حد موقع کار نمیاد، به شدت توصیه میشه.Emmaمحیط کاری Emma بدون پیرایه و متمرکز بر روی قابلیت‌های پایه‌ای مای اسکیو اله و این سادگی میتونه در کار با دیتابیس‌های حجیم، خودش رو نشون بده. از قابلیت‌های این نرم‌افزار میشه به Syntax Highlighting در محیط ادیتور و خروجی csv اشاره کرد.شما میتونید نظرات و یا تجربه‌ی خودتون رو از این نرم‌افزار ها با ما در میون بگذاریدامیدوارم این پست براتون مفید واقع شده باشه!</description>
                <category>احمد بیرانوند</category>
                <author>احمد بیرانوند</author>
                <pubDate>Sun, 26 Jul 2020 15:35:19 +0430</pubDate>
            </item>
            </channel>
</rss>