<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های امیرمهدی</title>
        <link>https://virgool.io/feed/@amirmahdi_tafreshi</link>
        <description>برنامه‌نویس ساده، دانشجوی ریاضی، دوست‌دار واستفاده‌کننده نرم‌افزار آزاد :) خیلی علاقمند به یادگیری و یاد دادن :)
«نه به سانسور»
ایمیل من: a.tafreshi440@gmail.com</description>
        <language>fa</language>
        <pubDate>2026-06-16 19:23:15</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/70569/avatar/h9e8lY.jpeg?height=120&amp;width=120</url>
            <title>امیرمهدی</title>
            <link>https://virgool.io/@amirmahdi_tafreshi</link>
        </image>

                    <item>
                <title>آمار بازدید پست‌های من در سال ۹۹</title>
                <link>https://virgool.io/@amirmahdi_tafreshi/%D8%A2%D9%85%D8%A7%D8%B1-%D8%A8%D8%A7%D8%B2%D8%AF%DB%8C%D8%AF-%D9%BE%D8%B3%D8%AA-%D9%87%D8%A7%DB%8C-%D9%85%D9%86-%D8%AF%D8%B1-%D8%B3%D8%A7%D9%84-%DB%B9%DB%B9-kfyvcr5flimz</link>
                <description>در طول تاریخ از اعداد استفاده کردیم تا اغلب داد و ستد کنیم و آن‌چیزی که شمردنی است را بشماریم. برای هر عدد واحد درست کردیم تا عددهای زندگی قاطی نشوند و از اعداد، شفاف‌تر استفاده کنیم؛ مثلا وقتی می‌گوییم ده هزار تومان به پول اشاره داریم و وقتی می‌گوییم ده هزار بلیط به بلیط!روز به روز که در زندگی جلو‌تر رفتیم عددها فرقی نکردند ولی این واحدها بودند که زیاد شدند. واحد کریپتو، واحد اصله درخت، واحد فاصله و …«واحد» یک توافق عمومی است برای شمردن؛ تا همانطور که گفتم شمردن‌ها قاطی نشود. مشاهده افراد دارای ثروت (اجتماعی یا مالی) به من ثابت کرده اینکه چه چیزی را بشماریم از اینکه چطور بشماریم مهم‌تر است. هرکس با واحد خاصی مسائل زندگی را می‌شمارد. اینطور به نظرم آمده که مشخص کردن واحد یعنی مشخص کردن اینکه من در زندگی برای چه چیزهایی ارزش قائلم و می‌خواهم چه چیزهایی را در زندگی بشمارم. https://cdn.virgool.io/annual-report/1399/uo50mvop5ziu-q70Ro.mp4 اعدادی که بدون واحد ثبت کردمبه ویدیویی که ویرگول برایم ساخته که نگاه می‌کنم میبینم که در سال ۹۹، من در مجموع ۱,۰۰۹ کلمه در ویرگول نوشتم و منتشر کردم و مخاطبین، پست‌های من را ۸۷ مرتبه پسندیدند و  ۱۷ بار هم نظر خود را روی پست‌های من به اشتراک گذاشتند. در سال ۹۹، ۴۲ نفر در ویرگول من را دنبال کردند تا پست‌های بعدیم را بخوانند. این اعداد نشان میدهند من کاری کرده‌ام. هرکدام به واحدی وصل هستند. از خودم می‌پرسم من کدام واحد را شمارش کرده‌ام؟ کدامیک از واحدهای بالا از همه برای من مهم‌تر است؟ ادامه ویدیو را می‌بینم.آمار از اثر بیرونی می‌گویندطبق آمار پست‌های من ۲,۰۱۱ بار خوانده شدند و ۲۰۲,۱۱۴ ثانیه صرف مطالعه آنها شده است، که با توجه به جمعیتی که در ایران به اینترنت دسترسی دارند، ویرگول به من می‌گوید که توانستم  ۰/۰۰۲۷۷۰۹۶۲ ثانیه، سرانه مطالعه دیجیتال کشور را بالا ببرم.از طرف دیگر ویرگول به من می‌گوید که اگر قرار بود پست‌هایم را چاپ و به دست تک تک خوانندگان برسانم باید ۵,۰۹۶ کاغذ مصرف می‌کردم.آن عددهای کوچک ابتدای ویدیو حالا تبدیل شده‌اند به عددهای بزرگ به اینکه من جلوی مصرف این تعداد کاغذ را گرفتم یا به اینکه من  ۰/۰۰۲۷۷۰۹۶۲ ثانیه، سرانه مطالعه دیجیتال کشور را جابه جا کرده‌ام. واحد این عددها برای من ملموس‌تر است.واحد نوشتن چیست؟همه عددهای بالا و همینطور اثر بیرونی که روی خوانندگان و همینطور در مقیاس بزرگتر طبیعت و جامعه اطرافم گذاشتم اعدادی هستند که من دوستشان دارم و به آنها افتخار می‌کنم. اگر چنین ویدیویی دست شما نیز رسید به شما بابت تک تک اعداد تبریک می‌گویم.اثر هر نوشته تا حدودی معلوم است، اگر بنویسید جلوی قطع درخت را می‌گیرید، به سرانه مطالعه کشور اضافه می‌کنید و خوانندگانی جذب می‌کنید که شما را از طریق نوشته‌هایتان می‌شناسند و …به نظرم می‌رسد که نوشته‌های من و شما واحد ندارند ولی اثر بیرونی دارند.</description>
                <category>امیرمهدی</category>
                <author>امیرمهدی</author>
                <pubDate>Mon, 22 Mar 2021 15:51:20 +0430</pubDate>
            </item>
                    <item>
                <title>کوبرنتیز یا k8s چیه؟</title>
                <link>https://virgool.io/paasino/%DA%A9%D9%88%D8%A8%D8%B1%D9%86%DB%8C%D8%AA%DB%8C%D8%B2-%DB%8C%D8%A7-k8s-%DA%86%DB%8C%D8%B3%D8%AA-turdg5deh0ju</link>
                <description>سلام در این نوشته کوبرنتیز رو خیلی ساده معرفی می کنم.کوبرنتیز (Kubernetes‎) نرم افزاری متن باز برای ارکستراسیون برنامه های کانتینربیس هست. به زبان go نوشته شده و ۶ ژوئن ۲۰۱۴؛ ۶ سال پیش با لایسنس آپاچی ۲ منتشر شده. وب سایتش این جا : https://kubernetes.io/   و گیت هابش(گیتهاب تقریبا محلی برای اشتراک گذاری کد شماست) اینجاست : https://github.com/kubernetes/kubernetes   معنی کوبرنتیز به به یونانی معنی سکاندار، خلبان، راننده و ... هست.ارکستراسیون یعنی چی؟یعنی کانفیگ اتوماتیک، هماهنگی و مدیریت، نرم افزار ها. حالا ارکستراسیون توی کوبرنتیز چیه؟ بخش  کانفیگ اتوماتیک، هماهنگی و مدیریت کانتینر ها میشه همین اورکستراسیون. یعنی کوبرنتیز به شما توی کانفیگ و مدیریت و هماهنگی کانتینتر هاتون کمک میکنه.کانتینر و ایمیج یعنی چی؟ایمیج و کانتینر یک لایه زیر کوبرنتیز هستند. من سعی خودم رو کردم که بخوام توضیح بدم ولی به نظرم اومد که نمی تونم منظورم رو برسونم رو در نتیجه منبع معرفی می کنم.اول از همه توضیحات دوستم خوبم علی اکبر همتی(به زبان فارسی - اگر خواستید داکر رو یاد بگیرید پیشنهاد میشه) : https://virgool.io/paasino/docker-introduction-ilv558mnuisa این جا داکر توضیحاتی راجع به کانتینر داده(به زبان انگلیسی) : https://www.docker.com/resources/what-container چرا بهش میگن k8s ؟لوگوی کوبرنتیزخب ممکنه فکر کنید تعداد دسته های سکان لوگوش ۸ تاست :) ولی باید بهتون بگم که اون دسته ها ۷ تا هستن حالا اونا چرا ۷ تان ؟ چون زمانی که توی گوکل داشت توسعه پیدا می کرد اسمش Project 7 بود.  k8s یک نوع numeronym هست. یعنی لغتی که از حرف و عدد تشکیل شده که یک روش متداول نامگذاری برای برنامه نویسان دهه 80 بوده که استفاده از حرف اول و آخر لغت و درج تعداد حروف بین آن بصورت عددی بوده. برای این که بیشتر معلوم باشه، کامل توضیحش میدم :k = k8 = ubernetes = sk + 8 + s = k + ubernete + s  = Kubernetesاگر فکر می کنید توضیحات من کافی نبود، این جا با جزییات بیشتری گفته شده.کوبرنتیز، کجا ها استفاده میشه ؟اکثر شرکت هایی که از معماری microservice استفاده میکنن، احتمالا از کوبرنتیز هم استفاده میکنن. بیشتر جا هایی که از کانتینر و داکر خبری هست، احتمالا k8s هم اون جا حضور داره :))ممنون که وقت با ارزشتون رو گذاشتید و این نوشته رو خوندین</description>
                <category>امیرمهدی</category>
                <author>امیرمهدی</author>
                <pubDate>Sat, 22 Aug 2020 13:39:58 +0430</pubDate>
            </item>
                    <item>
                <title>آمار بازدید مطالب من در سال ۹۸</title>
                <link>https://virgool.io/@amirmahdi_tafreshi/%D8%A2%D9%85%D8%A7%D8%B1-%D8%A8%D8%A7%D8%B2%D8%AF%DB%8C%D8%AF-%D9%85%D8%B7%D8%A7%D9%84%D8%A8-%D9%85%D9%86-%D8%AF%D8%B1-%D8%B3%D8%A7%D9%84-%DB%B9%DB%B8-xh7kbgruedjh</link>
                <description>اگر دستاوردی را نتوانم اندازه بگیرم، چیزی در دست ندارم.اشتباه نشود، این به معنای تمایل به بهترین بودن  و یا میل به اثبات چیزی نیست، اما تنها چیزی که می‌تواند برای بهتر شدن به من کمک کند یک نقشه راه است، از مسیری که طی کرده‌ام، تا بدانم چه اثری از خود به جا گذاشته‌ام. یک تصویر کلی که بتواند خیلی ساده نشانم دهد تلاش من چه اثری بر جامعه‌ام گذاشته است.ویدیوی آمار مخاطبین من را ببینید: https://cdn.virgool.io/annual-report/1398/uo50mvop5ziu-9zWuu.mp4 دستاوردهای من در سال ۹۸در سال ۹۸، من در مجموع ۱۳ پست در ویرگول منتشر کردم و پست‌های من ۱۹۳ مرتبه لایک شدند و افراد ۶۳ بار نظرات خود را روی پست‌های من به اشتراک گذاشتند. امسال ۵۰ نفر در ویرگول من را دنبال کردند تا پست‌های بعدیم را بخوانند. اما چیزی که این دستاورد را ارزشمندتر می‌کند اثری است که این پست‌ها از خود به جا گذاشتند.اثر پروانه‌ای منطبق آمار ۱,۴۲۱ بار پست‌های من خوانده شدند و زمانی حدود ۱۲۷,۷۰۷ ثانیه صرف مطالعه آنها شده است، که با توجه به جمعیت ۷۲٬۹۴۰٬۰۰۰ نفری که در ایران به اینترنت دسترسی دارند، من توانستم حدود ۰/۰۰۱۷۵۱ ثانیه، سرانه مطالعه دیجیتال کشور را بالا ببرم. عددی که با تمام کوچک بودنش، اثر بزرگ و ارزشمندی است.اما این عددها فقط توضیحی است از آنچه که برای مخاطبانم به ارمغان آورده‌ام، اثر ارزشمند‌تری که با نوشتن در ویرگول از خود به جا گذاشته‌ام، تلاش پنهانی بوده که برای حفظ محیط زیست کرده‌ام. من با انتشار پست‌های خودم در فضای ویرگول توانستم در مصرف کاغذ صرفه جویی کنم؛ یعنی اگر قرار بود پست‌هایم را چاپ  و به دست تک تک خوانندگان برسانم باید ۳,۳۸۶ کاغذ مصرف می‌شد.</description>
                <category>امیرمهدی</category>
                <author>امیرمهدی</author>
                <pubDate>Thu, 26 Mar 2020 00:21:17 +0430</pubDate>
            </item>
                    <item>
                <title>نصب سرور گیت شخصی روی centos7</title>
                <link>https://virgool.io/@amirmahdi_tafreshi/%D9%86%D8%B5%D8%A8-%D8%B3%D8%B1%D9%88%D8%B1-%DA%AF%DB%8C%D8%AA-%D8%B4%D8%AE%D8%B5%DB%8C-%D8%B1%D9%88%DB%8C-centos7-sbmfsnsntbtl</link>
                <description>عکس صفحه ی اول گیتیسلام طبق معمول امیرمهدی هستم :)من می خواستم پروژم رو با گیت مدیریت کنم روی چند تا دستگاه داشته باشم و روی هر دستگاه کامیت می کنم رو اون یکی هم بیاد . چاره ی کار یک گیت سرور بود . باید پروژم رو میذاشم تو گیت هاب ولی پروژم خصوصی بود و نمی خواستم کسی سورسش رو ببینه و خب خصوصیش هم تحریم و پولی بود  :) گیت لب هم که تحریمیم :) . خب باید یک گیت سرور شخصی روی یک سرور روی لوکال یا رو یک vps نصب می کردم که من رو vps نصب کردم :) دو تا گزینه برای گیت سرور شخصی داشتم :گیت لب(gitlab)گیتی(gitea) خب من اول گیت لب رو نصب کردم چون باحال و دهن پر کن بود :) ولی خب خیلی منابعم رو اشغال کرد و من که از اون vps هم برای میزبانی ۶ تا سایت و هم کلی سرویس دیگه استفاده می کردم ، مناسبم نبود :)پس به ناچار میریم سراغ گزینه ی دوم گیتی اول قبلش بگم که حالا که گیتی دارم می تونم بگم کاش از اول گیتی نصب می کردم . مزایای گیتی :سریع و چالاکسبکاستفاده از منابع کم با کلی قابلیت خوب در هین سادگینصب آسونحتی می تونید روی یک رزبری پای هم اجراش کنید.خب بریم سراغ نصب گیتی (gitea) :پیش نیاز ها : (ما هرچی نیازه رو خودمون انجام میدیم صرفا ببینید)یوزر روت ،  یا  اگر یوزر روت نیست و دسترسی اجرای sudo رو داشته باشهگیتماریا دی بی (مای اس کیو ال )نصب گیت :sudo yum updatesudo yum -y install gitنصب سرور و کانفیگ دیتابیس ماریا دی بی :گیتی از دیتابیس های زیر هم پشتیبانی میکنه :MariaDB/MySQLPostgreSQLSQLiteTiDBولی ما توی این این آموزش از mariadb(mysql) استفاده می کنیم :)sudo yum -y install mariadb-serverبعد از این که تموم شد ماریا دی بی رو فعال و استارت می کنیم تا بعد از بوت هم کار کنه :systemctl enable mariadb.service
systemctl start mariadb.serviceبعد از اجرای دستورات بالا ، میریم تا mariadb(mysql) رو کانفیگ کنیم و برای روتش پسورد بزاریم و نزاریم کسی به صورت ریموت بهش کانکت بشه :)sudo mysql_secure_installationوقتی دستور بالا رو زدید سوالات رو طبق زیر پر کنید :
Enter current password for root (enter for none): فقط ایننتر رو بزنید
Set root password? [Y/n]: Y
New password: پسورد انتخابی برای روت مای اسکیوالتون رو بزنید
Re-enter new password: پسورد رو مجددا بزنید
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]:  Y
Reload privilege tables now? [Y/n]:  Yحالا مای اسکیو ال رو ری استارت می کنیم :sudo systemctl restart mariadb.serviceبا روت مای اسکیوال لاگین می کنیم :sudo mysql -u root -pبعد از زدن دستور بالا پسوردی که برای روت مای اسکیوالتون انتخاب کردید رو بزنید و بعد با پیغام خوش آمد رو به رو میشید. با دستور زیر یک دیتابیس برای گیتی می سازیم :CREATE DATABASE gitea;خب حالا یک یوزر با نام giteauser برای دیتابیس می سازیم:CREATE USER &#039;giteauser&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;پسورد برای یوزر&#039;;حالا تمامی دسترسی ها رو به giteauser روی دیتابیس gitea میدیم :GRANT ALL ON gitea.* TO &#039;giteauser&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;user_password_here&#039; WITH GRANT OPTION;راه انداختن  محیط گیتی :با دستور زیر یک یوزر میسازیم برای این که گیتی رو اجرا کنه :sudo adduser --system --shell /bin/bash --comment &#039;Git Version Control&#039; --user-group --home-dir /home/git -m gitو ساخت دایرکتوری های مورد نیاز :sudo mkdir -p /var/lib/gitea/{custom,data,indexers,public,log}
sudo chown git:git /var/lib/gitea/{data,indexers,log}
sudo chmod 750 /var/lib/gitea/{data,indexers,log}
sudo mkdir /etc/gitea
sudo chown root:git /etc/gitea
sudo chmod 770 /etc/giteaنصب گیتی :با دستور زیر گیتی رو دانلود می کنیم و و بهش دسترسی اجرا شدن میدیم :)در صورت این که خیلی از زمان انتشار این نوشته میگذره، شما می توتیند از این لینک ، لینک دانلود جدید رو با لینک دانلود قدیمی پایین جایگذین کنید :) sudo wget -O gitea https://dl.gitea.io/gitea/1.6.1/gitea-1.6.1-linux-amd64 
sudo chmod +x giteaانتقال فایل اجرایی gitea توی path تا بشه با یک دستور اجراش کرد و ...sudo cp gitea /usr/local/bin/giteaساخت یک سرویس فایل برای گیتی برای این که اتوماتیک اجرا بشه (بعد از ریبوت و ...) :خب با دستور زیر ، یک سرویس فایل برای گیتی می سازیم :sudo touch /etc/systemd/system/gitea.serviceو با یک ادیتور مانند vi یا nano اطلاعات زیر رو توش میریزیم :[Unit]
Description=Gitea (Git with a cup of tea)
After=network.target
After=mariadb.service

[Service]
# Modify these two values and uncomment them if you have
# repos with lots of files and get an HTTP error 500 because
# of that
###
#LimitMEMLOCK=infinity
#LimitNOFILE=65535
RestartSec=2s
Type=simple
User=git
Group=git
WorkingDirectory=/var/lib/gitea/
ExecStart=/usr/local/bin/gitea web -c /etc/gitea/app.ini
Restart=always
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea
# If you want to bind Gitea to a port below 1024 uncomment
# the two values below
###
#CapabilityBoundingSet=CAP_NET_BIND_SERVICE
#AmbientCapabilities=CAP_NET_BIND_SERVICE

[Install]
WantedBy=multi-user.target با دستورات زیر گیتی رو فعال و استارت می کنیم تا بعد از بوت هم کار کنه :sudo systemctl daemon-reload
sudo systemctl enable gitea
sudo systemctl start giteaکانفیگ کردن فایروال برای گیتی :با دستورات زیر پورت ۳۰۰۰ رو که گیتی به صورت دیفالت ازش استفاده می کنه رو تو فایروال باز می کنیم و فایروال رو ریستارت می کنیم :)sudo firewall-cmd --add-port 3000/tcp --permanent
sudo firewall-cmd --reloadکانفیگ نهایی توی وب :خب و همه چیز تموم شد :)مرورگرتون رو باز کنید و بزنید :http://YOUR_SERVER_IP:3000/install  و تمام فیلد ها رو پر کنید و از سرور گیت شخصیتون استفاده کنید و حالش رو ببرید :)ترجمه شده به صورت بهتر و  با جمله بندی بهتر و کلا بهتر (با راهنمایی بیشتر)‌ از   VULTR خوش و خندون باشید :)</description>
                <category>امیرمهدی</category>
                <author>امیرمهدی</author>
                <pubDate>Mon, 09 Mar 2020 23:28:05 +0330</pubDate>
            </item>
                    <item>
                <title>واقعا فقط فریمورک بزرگ تر ها خوبن؟!</title>
                <link>https://virgool.io/pythonisho/%D9%81%D9%84%D8%B3%DA%A9-%D8%A8%D9%87-%D8%AF%D8%B1%D8%AF-%D9%86%D9%85%DB%8C-%D8%AE%D9%88%D8%B1%D9%87-%D9%81%D9%82%D8%B7-%D8%AC%D9%86%DA%AF%D9%88-%D9%85%D8%AE%D8%A7%D9%84%D9%81%D9%85-yxx6hkmd1nb6</link>
                <description>Flask vs Djangoسلام طبق معمول امیرمهدی هستم :)خب شاید براتون پیش اومده باشه بخواید برای اولین بار یک کاری بکنید و دنبال این باشید که باید چه چیزی برای این کار باید یاد بگیرید این جاست که میرید سرچ کنید. اگر برای نوشتن بک-اند با پایتون سرچ کنید ممکنه دچار مشکل بشید :)داستان اینه که یه بنده خدایی می خواست با پایتون بک-اند بزنه. به من گفت می خواد دقیقا چیکار کنه و من بهش فلسک رو پیشنهاد کردم. با پیشنهادم تعجب کرد. و اون بنده ی خدا گفت من خوندم جنگو بهتر از فلسکه :)) و این باعث شد تا این جا راجع بهش بنویسم :)خود من اولین بار که می خواستم با پایتون بک-اند بزنم،.سرچ کردم، مثل همه با دو گزینه ی معروف فلسک و جنگو بر خوردم :)(چیزای دیگه ای هم هستن که الان سرشون حرفی ندارم) چیزی که بین همشون مشترک بود، گفتن این که جنگو بهتر از فلسکه - فلسک خیلی کوچیکه ... .  بدون استدلال و نمونه بود. یعنی اون بنده خدایی که این حرفو زده بود، نگفته بود تو چه مقیاسی و ... در حدی افکار منو خراب کرده بودن که حتی با یکسری پروژه خفن طور با فلسک رو به رو شدم ولی اصلا تحویلشون نگرفتم(البته این کار من هم غیر حرفه ایی درون خودش داشت) :)خب بدیهی بود که با این وجود برم سراغ جنگو . شروع کردم یاد گرفتن . چند تا پروژه انجام دادم براش و خیلی خوب بود. تا این که خواستم یک پروژه دیگه برای خودم انجام بدم :)‌شرح پروژه :خب من میخوام با یک API کار کنم :) این API از یک crm هست :) ما هیچ دیتابیسی نداریم و باید یک وب اپ داشته باشیم که یوزرنیم و پسورد و رو از کاربر بگیره ، بفرستش برای اون api ، api یک توکن بر می گردونه و از این به بعد با دادن توکن به api می تونیم مشخصات کاربر رو بگیریم و کار های مختلفی انجام بدیم مثلا براش سرویس دیگه ای بگیریم و ...(خیلی شبیه به فرانت ولی با این تفاوت که به دلایلی نمی شد با ری اکت و ویو زد) خب این کار ها رو با جنگو نمی شد انجام داد . بذارید چیز اشتباهی نگم در اصل می شد ولی خیلی بد می شد :کلی فایل اضافهچیزی مثل model که ما نیاز نداریمچیزی مثل admin که ما نیاز نداریمو خیلی از چیزای دیگه که اگر بخوام لیست کنم حوصلتون سر میرهسرعت پایین تر نسبت به فلسکمیدونید، به نظر من کلا جنگو برای کار های از یه حدی بزرگ تر یا پیچیده تر خوبه. توی جنگو شما همه چیو داری، ادمین و فلان و یسری چیزا هم حتی اضافه داری.  ولی خب توی فلسک از اول با هزار تا روش مختلف می تونی اون همه چیو بسازی و چیزی که می خوایو بیاری بالا. وقتیم که نیازش نداشته باشی نداری و چیزی نمیشه :) یعنی به نظر من فلسک هم انعطاف‌پذیرتره.  البته برای اون راه هایی وجود داشت ولی در کل خیلی کثیف کاری می شد و من هم ترجیح میدم یا کاری رو نکنم یا اگر می کنم درست و تمیز بکنم. خب من مونده بودم چیکار کنم تا این که یک جایی دوباره با فلسک بر خوردم :) حقیقتا این دفعه خودم واقعا رفتم تحقیق کردم و دیدم چی به چیه و خیلی ازش خوشم اومد. شروع کردم با فلسک نوشتنش :) و خب کارمم راحت تر شد.مزایا ی فلسک :سبک بودنسریع بودنسادگی سرعت توسعه ی بالاوجود داکیومنت های زیاداز هر چیزی که بخوای استفاده کنی فقط نیازه که ایمپورتش کنی و فایل های اضافه نخواهی داشتدیپلوی آسونو اگر الان از من بپرسن توی یک پروژه ی بدون دیتابیس یا ساده، جنگو یا فلسک؟ ۹۰ درصد جواب من فلسک هست :) این نوشته به معنی این نیست که فلسک خیلی بهتر از جنگو هست، یا من همیشه ترجیحش می دم. موضوع اینه که هر پروژه ای با هر اسکیلی و مشخصاتی یک فریم ورک مناسب براش باید انتخاب بشه و من معتقدم همیشه جنگو بهترین نیست :)در صورت این که خیلی ها خیلی مستقیم به شما میگن فقط جنگو که توی همین ایران خودمون کم نیستن.در کل این نوشته برای این نبود، که بگم چی کجا خوبه، جنگو بده فلسک خوبه یا کلا این جور چیزا. من فقط به شما توصیه می کنم که تصورات خودتونو بریزید دور و یه بار بدون گارد چیزایی هم که ازش استفاده نمی کنید رو ببینید. این طوریه که موقع انجام کاری که می خواید، با دست بازتر و حتی بهتر انتخاب می کنید. پیشنهاد می کنم اگر تا حالا بک-اند با پایتون کار نکردید، اول فلسک رو یاد بگیرید بعد جنگو. باز هم میگم جنگو هم یسری جا ها از فلسک قوی تره ولی توی همچی یک نیست، هر چیزی، جای خودش.ممنونم که تا این جا خوندید، موفق باشید :)</description>
                <category>امیرمهدی</category>
                <author>امیرمهدی</author>
                <pubDate>Mon, 09 Mar 2020 13:20:32 +0330</pubDate>
            </item>
                    <item>
                <title>استراتژی مارکتینگ، خطای فنی، یا نگه داشتن مشتری به هر قیمتی؟</title>
                <link>https://virgool.io/@amirmahdi_tafreshi/%D8%A7%D8%B3%D9%86%D9%BE-%D9%81%D8%B1%D8%B4%D8%AA%D9%87-%D8%A7%DB%8C-%D8%A8%D8%A7-%D8%A8%D8%BA-%D8%A8%D8%A7%D8%B2-%DB%8C%D8%A7-%D8%BA%D9%88%D9%84-%D8%A8%DB%8C-%D8%B4%D8%A7%D8%AE-%D9%88-%D8%AF%D9%85-i6jvepqrgai2</link>
                <description>صرفا جهت کاور :) سلام. طبق معمول امیرمهدی هستم :)اول از همه بگم که قصد این نوشته بد گفتن از اسنپ یا ... نیست. صرفا برای اینه که شما با کاربرتون بهتر رفتار کنید :)مشکلات زیادی برای کسب و کار های ایرانی و اپ های ایرانی پیش اومده. چیزی که الان خیلی چالش شده براشون، حذف شدن اپ ها از اپ استور و در نتیجه وجود نداشتن امکان نصب اپ هاشون روی گوشی های با سیستم عامل ios هست(البته که راه در رو داره و منم اشاره می کنم).۲ تا راه حل دارن. اول این که اپ هاشون رو خارج از اپ استور منتشر کنن با استفاده از اکانت سازمانی اپل. هر دفعه یه پول زیادی رو بدن بابت اکانت های سازمانی اپل، و اپ هاشون رو از اون جا قابل نصب کنن، اما خب با توجه به این که اپل هم بعد از یه مدت کوتاهی اکانتو میبنده، براشون نمی صرفه. نکته ی دوم اینه که این روش تغییر کرده و اپل دیگه مثل قبل فقط با اکانت سازمانی قابلیت نصب نمیده. هر گوشی که بخواد با اون اکانت روش اپ نصب بشه باید براش پول پرداخت بشه. در نتیجه جلوی این موارد تا حد زیادی گرفته شده. راه حل دومم استفاده از pwa و اپ های تحت وبه که الان رفتن سمتش. بدون شک سر این که اپشون از اپ استور قابل نصب نیست، ریزش مشتری رو خواهند داشت. ولی برای نگه داشتن مشتری، دروغ خوب نیست.خب این تیتیر و توضیحات تا این جا حالا داره به چی اسنپ اشاره می کنه؟برای همین تحریم های اپل، اسنپ هر دفعه اپش رو به صورت قابلیت انتشار سازمانی اپل انتشار میده و اپل هی بلاک میکنه و اسنپ میگه pwa استفاده کنید تا دوباره قابلیت نصب فراهم بشه(برن اکانت سازمانی بگیرن و ...). حالا این وسط برای این که مشتری از دست ندن(که رقیب هم کم ندارن:) )، هر دفعه اس ام اس میزنه که اپلیکیشنت رو عوض کن و از نسخه ی وب استفاده کن یا از نسخه ی نصبی جدید استفاده کن.خب تا این جاش که مشکلی نداره، ولی این خطای منفی، استراتژی مارکتیگ یا نگه داشتن مشتری به هر قیمتی داره چی رو میگه؟موضوع اصلی اینه که هر دفعه برای این که کاربر بمونه و اپ رو عوض کنه و ایجاد انگیزه و این داستانا، میان یه کد تخفیف هم توی smsشون میذارن که کد تخفیفه واقعا کار نمی کنه. یعنی مشتری میاد به انگیزه ی این موضوع اپ رو دوباره نصب می کنه یا از نسخه ی دیگش استفاده می کنه، بعد میبینه که هیچ :) خب این موضوع برای من یکی که باعث شده که دیگه بهشون اعتماد نکنم. حالا این موارد می تونه یه استراتژی مارکتینگ ناموفق، یه خطای فنی یا نگه داشتن مشتری به قیمت دروغ و بی اعتمادی باشه.و این هم آخرین کد تخفیف ارسال شده : IOS-T8نکته دیگه اینه که یک دفعه هم که اپو پاک کردم تا دوباره نصب کنم، حساببم پاک شده بود:) حال چرا، کسی نمیدونه. شاید تیبل رو دراپ کرده بودن :)))</description>
                <category>امیرمهدی</category>
                <author>امیرمهدی</author>
                <pubDate>Thu, 30 Jan 2020 01:01:52 +0330</pubDate>
            </item>
                    <item>
                <title>کشف آسیب پذیری HTML Injection در ویرگول</title>
                <link>https://virgool.io/@amirmahdi_tafreshi/%D8%AF%DB%8C%D8%AF%DB%8C%D8%AF-%D8%AC%D8%AF%DB%8C-%D9%86%DA%AF%D8%B1%D9%81%D8%AA%DB%8C%D8%AF-%D9%88%DB%8C%D8%B1%DA%AF%D9%88%D9%84-%D8%A8%D8%A7%DA%AF-%D8%AF%D8%A7%D8%B4%D8%AA-qwm02ihvxmyw</link>
                <description> سلام طبق معمول امیرمهدی هستم :)آسیب پذیری HTML Injection در ویرگول پیدا کردم که به ۴۰۰ هزار تومن باگ بانتی رسید :)اول از همه بگم آسیب پذیری بر طرف شده و من با اجازه ی تیم ویرگول این مطلب رو منتشر می کنم.خب داستان این طوریه که من داشتم به ویرگول ور می رفتم و می دیدم چی به چیه که یه جایی دیدم اسما توی بخش نوتیفیکیشن ساده قرار گرفتن و چکم نمیشن :) ایده ی این که چه اتفاقی می تونه بیفته به ذهنم رسید و اکانت دیگه ساختم، و تستش کردم :) و بله تونستم html دلخواهم رو توی صفحه ی کاربر بنویسم :)خب بزارید مرحله به مرحله ریپورتم رو پیش بریم. ۱۶ تا ایمیل. اول من به hi@virgool.io ایمیل زدم و مشکل رو گزارش دادم.همه ی ایمیل ها رو این جا گذاشتم : سابجکت : گزارش مشکل امنیتی xss در ویرگولسلام. یک آسیب پذیری XSS در ویرگول کشف کردم و قصد گزارشش رو دارمجزئیات :در قسمت نوتیفیکیشن کاربران ویرگول -&gt; پس از لایک پست کاربر توسط کاربری دیگر، یک نوتیفیکشن برای کاربری که پستش لایک شده ارسال میشه. داخل این نوتیفیکیشن پیامی حاوی پست شما لایک شد وجود داره به اضافه ی اسم کسی که پست رو لایک کرده. در صورت این که این اسم html باشه، موقع دیدن بخش نوتیفیکیشن ها، کد  html که همون اسم کاربر دوم هست به کاربر نمایش داده میشه. یعنی کسی می تونه در بخش نامش کد html بنویسه و پست بقیه رو لایک کنه تا کدش به بقیه نمایش داده بشه :). ممنون میشم پس از رفع این مشکل اجازه بدید که جزئیات  آسیب پذیری را در خود ویرگول بنویسم. همچنین در صورت داشتن بانتی هم خوشحال میشم :)جواب ویرگول :سلام امیر مهدی جانوقت بخیربا تشکر از شما بابت گزارش این موضوع، این موضوع را به تیم امنیت ویرگول اعلام کردیم و آن را بررسی کردند. دوستان هیچ خطایی در این بخش پیدا نکرده‌اند. تمام اسم‌های کاربران به شکلی در صفحه رندر می‌شود که کد XSS در آن اجرا نمی‌شود.از شما می‌خواهیم یک ویدیو از این باگ برای ما ضبط کنید و برای ما ارسال کنید.همچنین لازم به توضیح است که باگ‌های امنیتی که توسط کاربران به ویرگول گزارش می‌شود همگی شامل باگ بانتی هستند و شما با اعلام آن می‌توانید از جایزه‌ی آن بهره‌مند شوید.باز هم از شما بابت بهتر شدنِ ویرگول ممنونیم.با تشکرتیم ویرگولمن :ممنونم. بله ارسال خواهم کردمن ۴۵ دقیقه بعد:سلام ویدیو رو ضبط کردم و توی فایل زیپ پیوست شده است. توی ویدیو آسیب پذیری نمایش داده شده. لطفا بعد از تایید آسیب پذیری من رو مطلع کنید. ممنونم.ویدیو( آپدیت : ویدیو در دوران جاهلیت و بچگی ضبط شده :) نخندید :) https://www.aparat.com/v/uEl78 ویرگول :سلام امیر جانوقت بخیربا تشکر از شما. این ویدیو برای تیم فنی ارسال شده و در حال بررسی است.در طی روزهای آینده با شما مجددا در ارتباط خواهیم بود.با تشکرتیم ویرگولمن :ممنونم. منتظرمهفته ی بعد من :سلام. آسیب پذیری مورد تایید قرار گرفت و آیا بر طرف شد؟ گفته بودید اطلاع میدید. متاسفانه من تا الان ایمیلی دریافت نکردم.ویرگول :سلام امیرمهدی جانوقت بخیرهمانطور که شما فرمودید، در بخش نوتیفیکیشن‌ها امکان لینک دادنِ دستی به سایت ویرگول یا سایر سایت‌ها فراهم بود اما خوشبختانه به دلیل زیرساختِ ورودِ اطلاعات ویرگول که در تمامِ فرم‌ها مکانیزم چک کردنِ XSS پیاده‌سازی شده است، امکان اجرای اسکریپت در این بخش وجود نداشته است.باز هم با تشکر از شما؛ موضوع اعلام شده به صورت موقت برطرف گردیده است اما در آپدیتِ انتهای هفته به صورتِ کامل فیکس خواهد شد.از شما درخواست می‌کنیم در روز شنبه یک مرتبه دیگر این مشکل را بررسی کنید و اگر باز هم مشکلی وجود داشت به ما اعلام کنید.همچنین شماره شبای حساب بانکی خود را نیز برای ما ارسال کنید.با تشکرتیم ویرگولمن js رو تست نکردم. و این جا بود که تیم ویرگول به من گفت آسیب پذیری XSS نیست و گویا html injection هست.من :سلام. بله چک خواهم کرد. در مورد بانتی لطفا مبلغ رو بفرمایید.ویرگول :سلام وقت بخیر مبلغ پرداختی، فردا و پس از هماهنگی با تیم فنی ویرگول مشخص می‌شود. با تشکرتیم ویرگولمن :سلام. لطفا وقتی مشخص شد اطلاع بدیدپنج روز بعد : منسلام. قرار بود ۴ روز پیش مبلغ بانتی رو اعلام کنید. فکر می کنم فراموش کردید :). اگر بفرمایید ممنون میشم.ویرگول :سلام امیر جانوقت بخیرلطفا شماره شبای حساب خود را به ما اعلام کنید. مبلغی که به عنوانِ بانتی برای شما واریز خواهد شد مبلغ ۴۰۰,۰۰۰ تومان می‌باشد.با تشکرتیم ویرگولمن :سلام ممنونم. IR-۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰من :لطفا بعد از پرداخت اطلاع بدید. ممنون.من ۵ روز بعد : سلام. من ایمیلی راجع به واریز از سمت شما دریافت نکردم. مبلغ واریز شده؟ویرگول :سلام امیر مهدی جانوقت بخیرهزینه‌ی اعلام شده در روز شنبه، ۵ بهمن به حساب اعلام شده واریز گردیده استیک فایل پی دی اف هم اینجا بود که فاکتور بود :)با تشکرتیم ویرگولفیلم اضافه شدممنون که تا این جا خوندید و امیدوارم ریپورت آسیب پذیری و دریافت بانتی به سبک یک نوب در امنیت رو دیده باشید :))</description>
                <category>امیرمهدی</category>
                <author>امیرمهدی</author>
                <pubDate>Wed, 29 Jan 2020 01:05:28 +0330</pubDate>
            </item>
                    <item>
                <title>یه کوچولو وب اسکرپینگ با پایتون‌:) (۳)</title>
                <link>https://virgool.io/pythonisho/%D9%88%D8%A8-%D8%A7%D8%B3%DA%A9%D8%B1%D9%BE%DB%8C%D9%86%DA%AF-%D9%85%D8%A7-%D8%A8%D8%A7-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-%D8%A7%D9%88%D9%85%D8%AF%DB%8C%D9%85-%DB%B3-pynx8brsd2cf</link>
                <description>وب اسکرپینگ (ببخشید قسمت ها روش نمی نویسم)سلام طبق معمول امیرمهدی هستم :)به خاطر تاخیر عذر خواهی می کنمخب تا جایی پیش رفتیم که به سایت request بزنیم و محتواش رو ‌ذخیره کنیم. ولی خب از این جا به بعد می خوایم محتوا ی سایت رو بخونیم و باهاش کار کنیم. برای این کار از لایبری bs4 (BeautifulSoup 4) استفاده می کنیم برای استفاده کردن از کتابخونه با خط زیر ایمپورتش می کنیم :from bs4 import BeautifulSoupحالا ما می خوایم عناصر صفحه رو تجزیه کنیم. یا به اصطلاح پارسش کنیم.  مثلا یک مثالش در دنیای واقعای و باحال گونش اینه که ما یک سوپ داریم میدیمش به bs4  میگیم تمام هویجاش رو به ما بده :)) پیازش رو به ما بده:) ما توی خط کد زیر دیتای requestمون رو به bs4 میدیم تا بعدن بتونیم دیتامون رو پارس کینم یا مثالش این هست که بهش بگیم تمام تگ های A سایت رو بهمون بده. این خط کد رو به بقیه ی کد هامون اضافه می کنیم تا بتونیم بعدن دیتامون رو پارس کنیم ! :soup = BeautifulSoup(site.text, &#039;html.parser&#039;)حالا چجوری می تونیم بخونیم چیزای مختلفو ازش بخونیم؟ این جا یه مثال داریم، که می خوایم توش تمام تگ های a  رو که href دارن رو در بیاریم :)(همه ی لینک ها)for link in soup.find_all(&amp;quota&amp;quot, href=True):
    print(link[&#039;&#039;href&#039;])تا این جا ما الان یاد گرفتیم که چجوری تگ ها رو جدا کنیم و بخونیم. یعنی شما می تونید ریکوءست بزنید و حالا به صورت مقدماتی تگ ها رو فیلتر کنین و دیتا رو بخونین :)</description>
                <category>امیرمهدی</category>
                <author>امیرمهدی</author>
                <pubDate>Tue, 21 Jan 2020 17:33:01 +0330</pubDate>
            </item>
                    <item>
                <title>غیرمتمرکز شدن - ویرگولم می تونه غیرمتمرکز بشه؟</title>
                <link>https://virgool.io/@amirmahdi_tafreshi/%D9%88%D9%82%D8%AA%D8%B4-%D8%B1%D8%B3%DB%8C%D8%AF%D9%87-%D8%A7%D8%B3%D8%AA-%D9%88%DB%8C%D8%B1%DA%AF%D9%88%D9%84-%D9%BE%DB%8C%D8%B4%D9%86%D9%87%D8%A7%D8%AF-%D8%A8%D8%B1%D8%A7%DB%8C-%D9%88%DB%8C%D8%B1%DA%AF%D9%88%D9%84-takmrpxaqxtr</link>
                <description>ویرگولسلام طبق معمول امیرمهدی هستم :)خب من کلا غیرمتمرکز شدن رو دوست دارم.(منظور از غیرمتمرکز Decentralized هست) طرفدارشم هستم با کلی دلیل ولی فکر می کنم مهم ترین دلیلم اینه چون سانسور رو سخت می کنهنمونه هایی دیدیم که الان دنیا داره میره تو فاز این که نا متمرکز ها رو بیشتر کنه. مثلا همین توییتر که سرمایه ی زیادی رو توی پروژه ی bluesky برای این که توییتر و نامتمرکز کنه وارد کرده(نوشته ی جادی می تونه بیشتر توضیحش بده.) یا  مثلا بیت کوین و ... و ماستودون چیزی که من اینجا ازش می نویسم، ایده ی اوپن سورس شدن ویرگول و نامتمرکز شدنش هستخیلیا از شما هایی که دارید این نوشته رو می خونید احتمالا یه اسمی از وردپرس شنیدین. وردپرس اوپن سورسه.از خوبی های اوپن سورس اون قدر زیادن که من نمی تونم همشو بگم :) حالا ویرگول همین سورسش رو میتونه توی گیت هاب منتشر کنه با لایسنسی که مثلا استفاده ی تجاری و غیره ازش مجاز نباشه. حتی اگر لایسنس خاصی هم منتشر نشه در هر حال ویرگول سر جاشه و ما هم توش می نویسم و فقط باعث میشه که ما خیالمون با اوپن سورس بودنش راحت تر باشه:)ایده ی اول:همین طور که توضیح دادم اوپن سورس بشه. ایده ی دوم :اوپن سورس شدن و نامترکز شدن. اما چطور؟ بیاید ماستودون رو ببینیم. چطوریه؟ این طوری که هر کی توی هر سروی می تونه یه اکانت داشته باشه و حالا افراد فید های همو از سرور های مختلف دنبال کنن و بخونن.حالا ویرگول هم می تونه همین طور بشه. یعنی چی؟ مثلا فکر کنید سرور های مختلف ویرگول بیاد که حالا هر کسی توی یه سرور بنویسه و منتشر کنه و حالا این سرور ها از هم بگیرن و بخونن. یعنی تقریبا مثل ماستودون شما مثل ماستودون بتونید بخونید. حالا مثلا اون جا توت هست، این جا بشه در حد بلاگ پست این مسءله پیاده سازی بشه. مثلا خود virgool.io یه سرور باشه. و بعد شما توش بنویسد، بتونید از یه سرور دیگه بخونید و خب کلا جالب میشه. </description>
                <category>امیرمهدی</category>
                <author>امیرمهدی</author>
                <pubDate>Tue, 31 Dec 2019 10:34:17 +0330</pubDate>
            </item>
                    <item>
                <title>یه کوچولو وب اسکرپینگ با پایتون‌:) (۲)</title>
                <link>https://virgool.io/pythonisho/%D9%88%D8%A8-%D8%A7%D8%B3%DA%A9%D8%B1%D9%BE%DB%8C%D9%86%DA%AF-%D9%85%D8%A7-%D8%A8%D8%A7-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-%D8%A7%D9%88%D9%85%D8%AF%DB%8C%D9%85-%DB%B2-dcvvuigyhlac</link>
                <description>سلام طبق معمول امیرمهدی هستم :)بریم شروع کنیم.وب اسکرپینگ اقلب ۲ بخشه. یسری وقتا برای اتومیشن و ... و یسری وقتا برای جمع آوری داده و این جور چیزا :) برای اتومیشن، معمولا از سلنیوم استفاده می کنن چون باهاش تعامل با سایت راحت تره. ولی برای کار های ساده تر و کراول و اینا معمولا reauests و bs4. البته که از سلنیوم برای این کار ها هم میشه استفاده کرد.فعلا ما هم می خوایم ساده شروع کنیم و قسمت دلار در بیاریم :). برنامه ای که می خوایم روش کار کنیم برنامه ای هست که بره و از این سایت قیمت دلار رو برای ما بگیره و بیاره و مثال هامون رو فعلا روی این برنامه پیش میریم.خب اول از همه ما برای پردازش و استخراج داده باید به سایت  ریکوئست بزنیم برای این کار از لایبری requets استفاده می کنیم پس خط زیر رو به برنامتون اضافه کنید :import requetsبعد متغییری به نام url تعریف می کنیم و url مون رو میزاریم توش :url = &amp;quothttp://www.tgju.org/dollar-chart&amp;quotلایبری requests بخشی داره به نام session که برای ریکوئست زدن استفاده میشه اما خب دقیقا مثل یک سیسن هست :)‌ یعنی مثلا اگر ما با این سیسن توی جایی لاگین کنیم، لاگین می مونیم :) برای کار ما get خالص کافیه ولی خب مثال سیزن میشه این طوری :session = requests.session()site = session.get(url)و با get :site = requests.get(url)کوتاه بود ولی تا این جا با ۴ تا خط کد تونستیم محتوای سایت رو بگیریم و در قسمت بعدی با bs4 روش کار انجام میدیم :)</description>
                <category>امیرمهدی</category>
                <author>امیرمهدی</author>
                <pubDate>Thu, 12 Dec 2019 15:00:50 +0330</pubDate>
            </item>
                    <item>
                <title>یه کوچولو وب اسکرپینگ با پایتون‌:) (۱)</title>
                <link>https://virgool.io/pythonisho/%D9%88%D8%A8-%D8%A7%D8%B3%DA%A9%D8%B1%D9%BE%DB%8C%D9%86%DA%AF-%D9%85%D8%A7-%D8%A8%D8%A7-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-%D8%A7%D9%88%D9%85%D8%AF%DB%8C%D9%85-%DB%B1-aseohqxrahq4</link>
                <description>سلام طبق معمول امیرمهدی هستم‌ :)یسری نکاتو اول بگم‌ :شاید یکم زیادی بیسیک باشهیه آشنایی اولیه میده و بقیش با خودتونه. سرچ و سرچ :) اگر به نظرتون جایی نیاز به ویرایش داشت حتما در جریان بذاریدپایه ی این مجموعه آموزش با پایتون(۳.۷) هست و قبلش نیاز داردید که تا حدی پایتون کار کرده باشیدسعی می کنم بیشتر سوالاتو جواب بدم.من این آموزش رو روی لینوکس پیش میرم ولی جای نگرانی نیست شما هم می تونید یا نصب کنید یا روی سیستم عاملی که دارید انجام بدید :)خب بریم شروع کنیم اول از همه پیش نیاز هامون رو نصب می کنیم و بعد ادامه میدیم :)پیش نیاز ها :اول از همه برای شروع به پایتون ۳ نیاز داریم. اگر ویندوزی هستید از سایت پایتون این نسخه رو دانلود کنید و نصبش کنید. اگر هم روی لینوکس هستید با کامند های پایین می تونید نصبش کنید (۹۹ ٪ خودش نصبه)برای debian base : sudo apt-get install python3یاsudo apt install python3برای Redhat و fedora :sudo yum install python3بچه های آرچم خودشون زحمتشو بکن :)لایبری(کتابخونه) هایی روکه برای این دوره نیاز داریم :requestsbs4wgetبرای نصبشون کافیه دستور زیر رو در termial یا cmd  کنید برای لینوکس :pip3 install requests bs4 wgetبرای ویندوز :pip install requests bs4 wgetمن خودم از vscode یا vim استفاده می کنم و به شما هم پیشنهاد میدم. </description>
                <category>امیرمهدی</category>
                <author>امیرمهدی</author>
                <pubDate>Wed, 11 Dec 2019 17:11:23 +0330</pubDate>
            </item>
                    <item>
                <title>سلام دنیا!</title>
                <link>https://virgool.io/pythonisho/%D8%B3%D9%84%D8%A7%D9%85-%D8%AF%D9%86%DB%8C%D8%A7-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86%DB%8C-%D8%B4%D9%88-%D8%B4%D8%B1%D9%88%D8%B9-%DA%A9%D8%B1%D8%AF-njrdbeky95af</link>
                <description>پایتونی زیبا :)سلام دنیا!طبق رسم همیشگی با سلام دنیا شروع می‌کنیم :) پایتونیشو این جاست :)اگر نمی‌دونید «سلام دنیا» چیه، باید بگم معمولا پست اول بلاگ ها و اولین برنامه هایی که هر برنامه‌نویس موقع یادگیری زبانی می‌نویسه سلام دنیاست :) و یه جورایی حالت سنته. اگر خواستید بیشتر بخونید من ویکی‌پدیاش رو به شما معرفی می‌کنم: https://fa.wikipedia.org/wiki/%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87_%C2%AB%D8%B3%D9%84%D8%A7%D9%85%D8%8C_%D8%AF%D9%86%DB%8C%D8%A7!%C2%BB </description>
                <category>امیرمهدی</category>
                <author>امیرمهدی</author>
                <pubDate>Sun, 15 Sep 2019 09:33:59 +0430</pubDate>
            </item>
                    <item>
                <title>من کیم؟ یک برنامه نویس</title>
                <link>https://virgool.io/@amirmahdi_tafreshi/%D9%85%D9%86-%DA%A9%DB%8C-%D8%A8%D9%88%D8%AF%D9%85-%D9%88-%DA%86%DB%8C-%D9%87%D8%B3%D8%AA%D9%85-skfl18y7dyut</link>
                <description>سلام من امیرمهدی هستم :)این پست اولین پستم توی ویرگول هست و موقع نوشتن این نوشته ۱۲ سالمه و شاید همین باعث بشه همین الان صفحه رو ببندید :)گفتم شاید بد نباشه قبل شروع نوشتن یکم از خودم بنویسم :) لینوکس یوزرم و کلا همدمم هم لینوکسه :)).در حال حاضر از اوبونتو به خاطر بدون دردسر بودنش استفاده می کنم ولی به زودی ازش میرم چون دوست دارم توزیع های مختلف رو بیشتر امتحان کنم، همین طور اوبونتو یکم زیادی سنگین شده :) از وقتی به لینوکس مهاجرت کردم رابطه ی خوبی با ویندوز ندارم. منطقا از ویندوز هم استفاده می کنم ولی نه برای کار های روزمره. بیش تر پای سیستم فامیل و یا کار هایی که واقعا نیاز به ویندوز دارن(مثل فتوشاپ یا ...). پایتون و گو(golang) کار می کنم [ گوکارم D: ] و کلا سمت بک-اندم.کار های دواپس رو بیش از اندازه دوست دارم(ولی تخصصم دواپس نیست). از داکر و کوبرنتیز گرفته تا مدیریت سرور و وب سرور و ...به باگ هانتیگم علاقه دارم و بعضی وقتا تفریحی انجام میدم :)باید ذکر کرد تا الان اصلا آبم با کار های فرانت توی یک جوب نمیره و در حدی نیازم استفاده می کنم و ازش دوری میکنم :)</description>
                <category>امیرمهدی</category>
                <author>امیرمهدی</author>
                <pubDate>Wed, 11 Sep 2019 14:10:17 +0430</pubDate>
            </item>
            </channel>
</rss>