<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های علیرضا آهنی</title>
        <link>https://virgool.io/feed/@biname</link>
        <description>‌‌</description>
        <language>fa</language>
        <pubDate>2026-04-15 04:34:08</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/17211/avatar/WpP4o1.png?height=120&amp;width=120</url>
            <title>علیرضا آهنی</title>
            <link>https://virgool.io/@biname</link>
        </image>

                    <item>
                <title>چرا استفاده از توابع eval ، system و ... در برنامه نویسی کار نادرستی است</title>
                <link>https://virgool.io/@biname/%DA%86%D8%B1%D8%A7-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-%D8%AA%D9%88%D8%A7%D8%A8%D8%B9-eval-system-%D9%88-%D8%AF%D8%B1-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%DA%A9%D8%A7%D8%B1-%D9%86%D8%A7%D8%AF%D8%B1%D8%B3%D8%AA%DB%8C-%D8%A7%D8%B3%D8%AA-z45m8gldqco9</link>
                <description>قبل از آشنایی با دلیل اشتباه بودن این کار باید با کار این توابع آشنا بشیم. در این مطلب از پایتون و C++ استفاده میشه اما این موارد تقریبا در بیشتر زبان های برنامه نویسی درسته.تابع eval در پایتوناین تابع کد پایتون ورودی را اجرا میکنه و خروجی آن را به خروجی تابع میده. مثال:&gt;&gt;&gt; eval&#40;&#039;print(&amp;quotrunning in eval&amp;quot&#41;&#039;)
running in eval
&gt;&gt;&gt; eval&#40;&amp;quot10+20&amp;quot&#41;
30یکی از استفاده های بسیار زیاد از این تابع در ماشین حساب ها هست. زیرا همینطور که در بالا می‌بینید این تابع خروجی عددی عبارت های ریاضی رو به خروجی میده. مثال:&gt;&gt;&gt; print(f&amp;quotans:{eval&#40;input(&#039;:&#039;&#41;)}&amp;quot)
:10**20
ans:100000000000000000000اما با همون آشنایی اول با این تابع متوجه میشیم که یک مشکل امنیتی بسیار بزرگی در برنامه ایجاد میکنه ،‌ اگر کاربر کد مخرب پایتون به ورودی بده برنامه اون کد رو اجرا میکنه! مثل لیست فایل های روی سیستم رو بگیره ، مقدار متغییر هارو تغییر بده و ... مثال:&gt;&gt;&gt; password = &amp;quotsecret password&amp;quot
&gt;&gt;&gt; print(f&amp;quotans:{eval&#40;input(&#41;)}&amp;quot)
password
ans:secret passwordشاید بگید که به کاربر اجازه ورود چیزی بجز اعداد علامت ها نمی‌دیدید. اما در این صورت هم کاربر میتونه اعداد بسیار بزرگی بزنه و...برای همین استفاده از تابع eval کار درستی نیست.تابع systemاین تابع کامند یا فایل ورودی رو در shell سیستم عامل اجرا میکنه. برای دیدن محل فایل یک کامند میتونید از برنامه which یا whereis در ترمینال استفاده کنید:alireza@fedora ~&gt; which cat
/usr/bin/catاین برنامه ( و بیشتر برنامه ها ) از ENV variable استفاده میکنن تا بدونن توی کجا باید دنبال برنامه باشن. ENV variables مقدار هایی هستن که سیستم عامل به هربرنامه ای که اجرا میشه ارسال میکنه. یکی از این مقادیر PATH نام داره. هر برنامه ای که بخواد کامندی رو اجرا کنه داخل دایرکتوری های متغییر PATH جست‌وجو میکنه و اگر پیدا نشد دیگه ادامه نمیده.متغییر PATH رو میشه به شکل زیر از ترمینال مشاهده کرد:alireza@fedora ~&gt; echo $PATH
/usr/local/bin /usr/local/sbin /usr/bin /usr/sbinحالا چرا از تابع system استفاده نکنیم؟برنامه زیر رو در نظر بگیرید:#include &lt;iostream&gt;
int main()
{
  system&#40;&amp;quotdate&amp;quot&#41;;
}که با دستور زیر کامپایل شده:g++ main.cpp -o mainبرنامه کامپایل شده این خروجی میده:Sun May 16 12:03:40 PM +0430 2021حالا فرض کنید میخواید یک دستور دیگه بجز date اجرا کنید ( مثلا یک دستور مخرب ) اما دسترسی به ویرایش خود باینری برنامه ندارید.چطور میشه این مسئله رو حل کرد؟یک برنامه جدید به اسم date کامپایل میکنیم:#include &lt;iostream&gt;
int main()
{
    std::cout &lt;&lt; &amp;quotMy evil program!!&amp;quot &lt;&lt; std::endl;	
}و متغییر PATH رو به محل برنامه تغییر میدیم و برنامه رو اجرا میکنیم:&gt; export PATH=.
&gt; echo $PATH
.
&gt; ./main
My evil program!!و از این بدتر ، اگر برنامه رو فقط بتونیم بخونیم و برنامه برای کاربر root باشه ،‌ میتونیم دسترسی به shell کاربر root هم داشته باشیم!برای همین استفاده از این دو تابع درست نیست و جزو توابع خطرناکه.</description>
                <category>علیرضا آهنی</category>
                <author>علیرضا آهنی</author>
                <pubDate>Sun, 16 May 2021 12:19:24 +0430</pubDate>
            </item>
                    <item>
                <title>معرفی ساده و کوتاه CherryPy</title>
                <link>https://virgool.io/@biname/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%D8%B3%D8%A7%D8%AF%D9%87-%D9%88-%DA%A9%D9%88%D8%AA%D8%A7%D9%87-cherrypy-k3qmdj7qlmpq</link>
                <description>چری پای یک فرم ورک پایتون برای طراحی و ساخت وبسایت های داینامیک هست یعنی سایت هایی مثل همین ویرگول (:در اصل چری پای یک فرم ورک خیلی پر از امکانات اضافی نیست و یک فرم ورک مینیمالیست هست.خوبی چری پای به نظر منخوبی چری پای اینکه سعی میکنه تاجایی که میشه از امکانات داخل پایتون استفاده کنه و به همین دلیل یادگیری چری پای تقریبا آسونه .درضمن چری پای یک فرم ورک بسیار پدر مادر ( یعنی اینکه معلوم شده فریم ورک کاملی هست ) هست که بیشتر از ۱۰ ساله داره آپدیت میشه .امکانات چری پاییک وب سرور امن با HTTP 1.1 و سازگار با WSGI ( یعنی میتونید به راحتی توی همه هاست های پایتونی ازش استفاده کنید )راحتی در اجرای چندین برنامه وب در یک زمان و همچنین بهم نریختنشون بهم (:قابلیت کانفیگ از سیر تا پیاز اپلیکیشن و انجیل و ...قابل اجرا در تمامی پلتفرم هایی که از پایتون پشتیبانی میکنن ( و بله از پایتون ۲.۷ هم پشتیبانی میکنه )انعطاف پذیر در نصب پلاگین و اضافه کردن چیزای بیشتر دارا بودن تمامی امکانات مورد نیاز برای راه اندازی یک وبسایت با قابلیت لاگین و ...نمونه کد helloworld در چری پای:همونطور که همتون میدونید یکی از برنامه هایی که اولین بار مینویسیم برای تست برنامه سلام دنیاست و خوب اینم یه نمونه با چری پای (:import cherrypy

class HelloWorld(object):
    @cherrypy.expose
    def index(self):
        return &amp;quotHello World!&amp;quot

cherrypy.quickstart(HelloWorld())منابع یادگیریبهترین منبع یادگیری همون سایت چری پای هست اما کلی دوره ویدیویی توی یوتویب هست که میتونید برید نگاه کنید و یاد بگیرید . اگه شما منبع یادگیری خاصی میشناسید به من معرفی کنید تا به مطلب اضافه کنم .درضمن من خودم دارم برای اولین بار یک وبسایت ساده با چری پای و دیتابیس SQLITE میسازم و توی گیت هاب هم کدش هست ،‌خوشحال میشم بهش یه سر بزنید و اگه مشکلی دیدید بهم خبر بدید یا حتی پول ریکوست بزنید (: https://github.com/alirezaahani/cherrypy-site امیدوارم موفق باشید و برنامه هاتون بدون باگ باشن (:+ یادم بمونه اینو یک هفته قبل آزمون مدارس استعداد درخشان مینویسم .</description>
                <category>علیرضا آهنی</category>
                <author>علیرضا آهنی</author>
                <pubDate>Thu, 09 Jul 2020 13:49:01 +0430</pubDate>
            </item>
                    <item>
                <title>کنترل کامپیوتر با آردوینو ! (بدون کد و راهنمایی خط به خط)</title>
                <link>https://virgool.io/@biname/%DA%A9%D9%86%D8%AA%D8%B1%D9%84-%DA%A9%D8%A7%D9%85%D9%BE%DB%8C%D9%88%D8%AA%D8%B1-%D8%A8%D8%A7-%D8%A2%D8%B1%D8%AF%D9%88%DB%8C%D9%86%D9%88-%D8%A8%D8%AF%D9%88%D9%86-%DA%A9%D8%AF-%D9%88-%D8%B1%D8%A7%D9%87%D9%86%D9%85%D8%A7%DB%8C%DB%8C-%D8%AE%D8%B7-%D8%A8%D9%87-%D8%AE%D8%B7-wjwiqlp0ybok</link>
                <description>سلام . من چند وقتی بود که بار آردوینو کار نمیکردم . ولی یک ایده ای از همون روزی که آردوینو رو خریدم توی ذهنم بود . این بود که بشه ماژول ها و سنسور رو به آدوینو وصل کنم و بتونم باهاش با کامپیتور قدیمیم بهتر کار کنم.برای اینکار من نیاز داشتم که برای خود سنسور ها برنامه توی آردوینو بنویسم ( که البته با کمک سایت های ایرانی و دیتاشیت های ساده شده کاری نداره ) .مشکل اصلی من این بود که نمیتونستم به راحتی آردوینو رو به کامپیوترم ارتباط بدم .راه های زیادی هست ولی راحتترین راه اینکه با همون سریال آردوینو کارمون رو انجام بدیم . من توی سایت های ایرانی زیاد چیزی ندیدم ، پس تصمیم گرفتم این مطلب رو بنویسم .سیستم عاملی که من توی این مطلب استفاده میکنم ، اوبونتو ۲۰.۰۴ هست .به احتمال زیاد این چیزایی که میگم توی مک هم قابل اجرا باشه .خب خب (: برای ارتباط سریال میشد از gnu screen و minicom هم استفاده کرد ، ولی متاسفانه من هرکاری کردم نتوستم خروجی این دو برنامه رو به برنامه دیگه ای بدم ( مثلا توی کانفینگ کانکی ازش استفاده کنم )خوشبخانه آدم های باهوش همیشه این چیزا به ذهنشون میرسه و توی سایت های مختلف ( مثل stackoverflow ) میپرسن وما هم استفاده میکنیم .من راحتترین راهی که دیدم رو اجرا کردم. اول با دستور زیر میبینیم که آردوینو به چه پورتی وصله  :ls -la /dev/ttyAC*بعد از اون میایم و دستور زیر رو میزنیم تا چیزی که آردوینو میفرسته رو ببینیم :cat /dev/ttyACM0به جای ACM0 پورتی که از دستور قبل گرفتید رو بنویسید. تموم ! حالا میتونید توی همه برنامه ها استفاده کنید یا حتی توی زبان های برنامه نویسی اون فایل رو بخونید ( نگران نباشید اون فایل فقط خوندنی هست پس نمیتونید خرابش کنید ) این مطلب بیشتر جنبه یادداشت داشت که بعدا خودم بیام و بخونمشون .موفق باشید .+ادیتور ویرگول چقدر خوب شده (:منابع :How to compile, upload and monitor via the Linux command line?Image from wikipedia</description>
                <category>علیرضا آهنی</category>
                <author>علیرضا آهنی</author>
                <pubDate>Thu, 18 Jun 2020 18:50:06 +0430</pubDate>
            </item>
                    <item>
                <title>نصب بازی ماین کرفت در لینوکس مینت</title>
                <link>https://virgool.io/@biname/%D9%86%D8%B5%D8%A8-%D8%A8%D8%A7%D8%B2%DB%8C-%D9%85%D8%A7%DB%8C%D9%86-%DA%A9%D8%B1%D9%81%D8%AA-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D9%85%DB%8C%D9%86%D8%AA-gqajgytvd3wi</link>
                <description>سلام.امروز میخوایم روش نصب بازی ماین کرفت رو توی لینوکس مینت به شما بیننده عزیز یاد بدیم . این روش برای کسانی هست که اکانت ماین کرفت ندارن و میخوان بازی رو به صورت کرکی بازی کنن . اگه اکانت ماین کرفت دارید میتونید به راحتی از آموزش های درون اینترنت استفاده کنید .برای نصب بازی ما به ورژن 8 جاوا نیاز داریم . پس با دستور زیر اون رو نصب میکنیم.(با اوپن جاوا هم بازی باز میشه ).sudo apt install openjdk-8-jreحالا بعد از نصب کافیه از سایت Tlancher فایل لانچر رو دریافت کنید : https://tlauncher.org/en/ حالا بعد از دانلود شدن به محلی که فایل ها ذخیره شدن برید فایل رو از حالت zip خارج کنید .بعد از اون باید تی لانچر رو با کد زیر اجرا کنید :java TLauncher-2.68.jarحالا صبر کنید تا فایل های لایبرری دانلود بشه و بعد از اون اسمتون رو بنویسید و ورژنتون رو انتخاب کنید و روی Install کلیک کنید تا نصب بشه و حالا میتونید بازی کنید (:درضمن برای اجرای دوباره ی تی لانچر باید با دستوری که گفتم اجراش کنید که میتونید ازش یه Shortcut بسازید (:همین (:خداحافظ .</description>
                <category>علیرضا آهنی</category>
                <author>علیرضا آهنی</author>
                <pubDate>Thu, 26 Dec 2019 17:47:18 +0330</pubDate>
            </item>
                    <item>
                <title>داستان خراب شدن تبلت و خرید یک گوشی جدید ! ( قسمت 2 )</title>
                <link>https://virgool.io/@biname/%D8%AF%D8%A7%D8%B3%D8%AA%D8%A7%D9%86-%D8%AE%D8%B1%D8%A7%D8%A8-%D8%B4%D8%AF%D9%86-%D8%AA%D8%A8%D9%84%D8%AA-%D9%88-%D8%AE%D8%B1%DB%8C%D8%AF-%DB%8C%DA%A9-%DA%AF%D9%88%D8%B4%DB%8C-%D8%AC%D8%AF%DB%8C%D8%AF-%D9%82%D8%B3%D9%85%D8%AA-2-iyvsvkqspicf</link>
                <description>به نام خداخوب گوشی من بالاخره اومدش و من راحت شدم !خوشبتانه ریجیسترم بودش ( لعنت به پدر طراحش ! ) بعد از اینکه با سیم کارت رایتلم ریجسترش کردم یادم اومد که من میخواستم سیم کارت همراه اول بگیرم !! ولی نشد.بعد از ریجیستری با توجه به مطلب زیر که قبلا خونده بودم گوشیم رو شارژ اولیه نکردم : http://www.elmefarda.com/%D8%B4%D8%A7%D8%B1%DA%98-%D8%A7%D9%88%D9%84%DB%8C%D9%87-%DA%AF%D9%88%D8%B4%DB%8C/ بعد از اینکه رفتیم گلسش رو انداختیم روشن کردیم و دیدیم همین طوری 50 درصد حافظه استفاده شده :|+ فکر کنم باید یه Sd card بگیرم !این داستان ادامه دارد :|++ نتیجه اخلاقی تا الان :بر پدر طراح ریجیستری لعنت (:</description>
                <category>علیرضا آهنی</category>
                <author>علیرضا آهنی</author>
                <pubDate>Fri, 31 May 2019 14:02:31 +0430</pubDate>
            </item>
                    <item>
                <title>داستان خراب شدن تبلت و خرید یک گوشی جدید ! ( قسمت 1 )</title>
                <link>https://virgool.io/@biname/%D8%AF%D8%A7%D8%B3%D8%AA%D8%A7%D9%86-%D8%AE%D8%B1%D8%A7%D8%A8-%D8%B4%D8%AF%D9%86-%D8%AA%D8%A8%D9%84%D8%AA-%D9%88-%D8%AE%D8%B1%DB%8C%D8%AF-%DB%8C%DA%A9-%DA%AF%D9%88%D8%B4%DB%8C-%D8%AC%D8%AF%DB%8C%D8%AF-%D9%82%D8%B3%D9%85%D8%AA-1-wc6ouoslyjo2</link>
                <description>به نام خدا.خوب من حدود 1 ماه پیش توی یک جمعه شوم ! بلاخره تونستم فایل Super SU و کاستوم ریکاوری رو گیر بیارم ! ) تبلت عزیز من یه Lenovo Tab3 8 هست که با اون صفحه بزرگش میشه کلی کار جالب کرد . بعد از اینکه با کاستوم ریکاوری بالا اومدم خواستم برگردم به صفحه اصلی ، پس گزینه Reboot -&gt; System رو زدم و ای داد بیداد ! هاردش پوکید . بردیمش تعمیرکار تبلت ( توی بازار علاءالدین ) گفتش که هاردش پوکیده و نمی ارزه درستش کنی ! خوب من تا 2 روز های های شروع کردم گریه کردن و لعنت گفتن خودم :|بعد از اون من تا 20 روز توی torob ( خدا پدرش رو بیامرزه ) تونستم یک گوشی با پولی که 2 سال بود جمع کرده بودم پیدا کنم . ولی میترسیدم که ریجستر نباشه ( بر پدر سازنده این طرح لعنت ) .پس من شروع کردم گشتن توی دیجی کالا ( قبلا از دیجی کالا خرید داشتیم و کیفیتش خوب بود و دایی ام هم توی دیجی کالا کار میکنه (پیکه) گفتش که این گوشیا ریجیستر هستن و میشه تا 7 روز برشون گردوند )بعد یه گوشی نسبتا قوی تر از تبلت رو پیدا کردم : https://www.digikala.com/product/dkp-809328/%DA%AF%D9%88%D8%B4%DB%8C-%D9%85%D9%88%D8%A8%D8%A7%DB%8C%D9%84-%D9%87%D9%88%D8%A2%D9%88%DB%8C-%D9%85%D8%AF%D9%84-y5-prime-2018-dra-lx2-%D8%AF%D9%88-%D8%B3%DB%8C%D9%85-%DA%A9%D8%A7%D8%B1%D8%AA-%D8%B8%D8%B1%D9%81%DB%8C%D8%AA-16-%DA%AF%DB%8C%DA%AF%D8%A7%D8%A8%D8%A7%DB%8C%D8%AA خوب سفارشش دادم و پنج شنبه این هفته به دستم میرسه .تا قسمت بعدی خداحافظ</description>
                <category>علیرضا آهنی</category>
                <author>علیرضا آهنی</author>
                <pubDate>Tue, 28 May 2019 12:55:39 +0430</pubDate>
            </item>
                    <item>
                <title>کتاب قصه های بهرنگ</title>
                <link>https://virgool.io/@biname/%DA%A9%D8%AA%D8%A7%D8%A8-%D9%82%D8%B5%D9%87-%D9%87%D8%A7%DB%8C-%D8%A8%D9%87%D8%B1%D9%86%DA%AF-hebcmlr4bvki</link>
                <description>سلام . چند روز پیش پدرم یه کتاب آورد برام و گفت که بخونمش ، کتابی که آورد کتاب &quot; قصه ای بهرنگ &quot; بود .نویسنده این کتاب آقای صمد بهرنگی هست .من این کتاب رو از &quot;نشر سرایش&quot; گرفتم .این کتاب تقریبا 500 صفحه هست .یه بخشی از کتاب هم اینه : مرد تاجر به حرف هاى دخترانش گوش داد و به دل سپرد. اما بیهوده انتظار کشید که تلخون، دختر هفتمى، هم چیزى بگوید. او تنها نگاه مى‌کرد. شاید نگاه هم نمى‌کرد و تنها به نظر مى‌رسید که نگاه مى‌کند. دست آخر تاجر نتوانست صبر کند و گفت: دخترم، تو هم چیزى از من بخواه که برایت بخرم. دختر رویش را برگرداند. مرد تاجر گفت: هر چه دلت مى‌خواهد بگو برایت مى‌خرم. تلخون چشم هایش درخشید این حالت سابقه نداشت و با تندى گفت: هر چه بخواهم مى‌خرى؟ مرد تاجر که فکر نمى‌کرد نتواند چیزى را نخرد، با اطمینان گفت: هر چه بخواهى. همانطور که خواهرات گفتند. دختر صبر کرد تا همه چشم به دهان او دوختند. نخستین بار بود که تلخون تقاضایى مى‌کرد. آن‌گاه زیر لب، گویى که پریان افسانه‌ها براى خوشبختى کسى زیر لب دعا و زمزمه مى‌کنند گفت: یک دل و جگر! این کتاب 23 تا قصه داره که خیلی جالب هستن . ( این کتاب به دلیل اینکه نویسنده اش تبریزی هست یه شعر های ترکی داره و اسم بعضی افراد ( مثل اولدوز ) ترکی هست )شما هم میتونید این کتاب رو بخرید و هم pdf اش رو دریافت کنید ( اگه زیاد کتاب خون نیستید همون pdf رو دانلود کنید و بخونید )و یکی از شعر های کتاب :گئتمک گرگ بیر ئوزگه دیاره بوملکدنکیم گون به گون زیاده گلیر ماجراسسیموجی خدادن ایسته.بو بحر ایچره بیر نجاتگردابه دوشسه کشتی نئلر ناخداسسی ؟+ من اولین باره درباره ی یه کتاب می نویسم پس زیاد سخت نگیرید ?</description>
                <category>علیرضا آهنی</category>
                <author>علیرضا آهنی</author>
                <pubDate>Tue, 21 May 2019 11:33:47 +0430</pubDate>
            </item>
                    <item>
                <title>نصب آردوینو در لینوکس مینت</title>
                <link>https://virgool.io/industry-4/%D9%86%D8%B5%D8%A8-%D8%A2%D8%B1%D8%AF%D9%88%DB%8C%D9%86%D9%88-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D9%85%DB%8C%D9%86%D8%AA-lwo3c4fgwkme</link>
                <description>سلام .شاید شما هم مثل من به برد های الکترونیکی ساده علاقمند باشید . امروز من میخوام به شما بگم که چطور این برد رو در لینوکس مینت راه اندازی کنید .اول باید نرم افزار آردوینو رو نصب کنیم :sudo apt install arduinoبعد باید کاربر خودمون رو به گروه dialout اضافه کنیم . پس کد زیر رو میزنیم :sudo usermod -a -G dialout alirezaahaniالبته شما به جای اسم من اسم یوز خودتون رو وارد کنید .بعد از اون باید چک کنید که جاوا روی سیستم شما نصب باشه . جاوایی که فعلا خوب کار میکنه اوپن جاوا 8 هستش . اگه نصبش نکردید با این کد نصبش کنید :sudo apt install openjdk-8-jreحالا با کد زیر جاوا 8 رو انتخاب کنید . تمام !sudo update-alternatives --config javaحالا نرم افزار آردوینو رو باز کنید ، برد رو متصل کنید و بعد از انتخاب پورت برنامه نویسی کنید (:درضمن من همه این هارو یه اسکریپت کردم ، اگه میخواید از لینک زیر دسترسی پیدا کنید : https://github.com/alirezaahani/arduino-installler-for-ubuntu </description>
                <category>علیرضا آهنی</category>
                <author>علیرضا آهنی</author>
                <pubDate>Sun, 05 May 2019 10:54:02 +0430</pubDate>
            </item>
                    <item>
                <title>سال نو مبارک (:</title>
                <link>https://virgool.io/@biname/%D8%B3%D8%A7%D9%84-%D9%86%D9%88-%D9%85%D8%A8%D8%A7%D8%B1%DA%A9-rgsrpkzaujiu</link>
                <description>سال نو ی همه مبارک (:( دلیل اینکه اینقدر دیر شد عیده )امیدوارم سالی پر برکت ، بدون حاشیه و شادی رو همراه با خانواده تون داشته باشید .در ضمن این هم لینک مشاهده آمار منه . اگه دوست داشتید نگاه کنید .</description>
                <category>علیرضا آهنی</category>
                <author>علیرضا آهنی</author>
                <pubDate>Fri, 29 Mar 2019 14:23:45 +0430</pubDate>
            </item>
                    <item>
                <title>طراحی یک تخم مرغ با Gimp</title>
                <link>https://virgool.io/gimp-graphic/%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%DB%8C%DA%A9-%D8%AA%D8%AE%D9%85-%D9%85%D8%B1%D8%BA-%D8%A8%D8%A7-gimp-zxijlypocjj8</link>
                <description>به نام خداامروز به ذهنم رسید که چطور میشه با Gimp یه تخم مرغ ساده درست کرد ؟ یکم توی اینترنت گشتم و راه حل رو پیدا کردم !اول یه پرونده عکس ایجاد کنیدخوب حالا از منوی Filters -&gt; Map -&gt; Map Object ... این پنجره رو میاریم و اینطوری تنظیم میکنیم :بعد از اون کنار گوشه سمت چپ تنظیمات رو از :به :
ااحالا از منویی که مشخص کردم رو انتخاب کنید :و اینطوری تنظیمش کنید :ب
بو تمام (:پ.ن :اینقدر ویرایشگر ویرگول مشکل داره من دارم برای 8 مین بار این مطلب رو مینویسم :|</description>
                <category>علیرضا آهنی</category>
                <author>علیرضا آهنی</author>
                <pubDate>Fri, 01 Feb 2019 13:04:41 +0330</pubDate>
            </item>
                    <item>
                <title>تست سرعت پایتون (:</title>
                <link>https://virgool.io/coderlife/%D8%AA%D8%B3%D8%AA-%D8%B3%D8%B1%D8%B9%D8%AA-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-ukoe3tmy1xzu</link>
                <description>به نام خداامروز میخواستم یه تست کنم ببینم که پایتون که تازه شروع کردم توی محاسبات خفن چقدر زمان طی میکنه ؟البته این مقایسه از نظر تولید اعداد رندم هست.برنامه که می خواستم بنویسم این بود .برنامه ای بنویسید که ۱۰ میلیون بار پرتاب سکه را به صورت تصادفی حساب کند و مدت زمان طول کشیدن عملیات را در خروجی چاپ کندخوب اینم کد ها :Python (3) :import time
import random
a = time.time()
i = 10000000
print(&amp;quotwait ...&amp;quot)
while i &gt;= 0:
    n = random.randint(1, 2)
    i-=1
d = time.time()
c = d - a
print(&amp;quottime left&amp;quot,c)
if n == 1:
    print(&amp;quotup&amp;quot)
if n == 2:
    print(&amp;quotdown&amp;quot)و اون رو اجرا میکنیم ( فرض میکنیم که شما از گنو/لینوکس استفاده میکنید و اسم فایلمون test-speed.py هست ) . python3 test-speed.pyو خروجی ( cpu ۴ هسته ای و رم ۴ گیگ در دبیان ۹ تستینگ با میزکار xfce ) : wait ...
time left 14.401490211486816
upحالا چطوره این کارو با ۱۶ میلیون بار انجام بدیم ؟wait ...
time left 24.84433341026306
upو حالا بهتره با زبان C تست کنیم ( البته با پرتاب یک میلیارد بار ! )#include &lt;stdio.h&gt;
#include &lt;time.h&gt;
#include &lt;stdlib.h&gt;
 int i,n;
 int main(void)
 {
 time_t rawtime;
 struct tm * timeinfo;
 time ( &amp;rawtime );
 timeinfo = localtime ( &amp;rawtime );
 printf ( &amp;quottime start: %s&amp;quot, asctime (timeinfo) );
 for(i=0;i&lt;1000000000;i++){
 n=1+rand()%2;
 }
 time ( &amp;rawtime );
 timeinfo = localtime ( &amp;rawtime );
 printf ( &amp;quottime end: %s&amp;quot, asctime (timeinfo) );
  }و نتیجه :time start: Thu Dec 20 11:10:10 2018
time end: Thu Dec 20 11:10:18 2018+ البته اینکه پایتون در سادگی و امکانات تفاوت بسیار زیادی با c داره قابل انکار نیست و همچنین زبان c یک زبان کامپایلری هست ولی پایتون یک زبان مفسری ، درضمن من وقتی این کد رو نوشتم اصلا بهینه نبود وگرنه میشه از توابع سریعتر از randint استفاده کرد که سرعت رو بالاتر برد.</description>
                <category>علیرضا آهنی</category>
                <author>علیرضا آهنی</author>
                <pubDate>Thu, 20 Dec 2018 10:52:36 +0330</pubDate>
            </item>
                    <item>
                <title>فارسی سازی دستورات بش (Bash)</title>
                <link>https://virgool.io/@biname/%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%B3%D8%A7%D8%B2%DB%8C-%D8%AF%D8%B3%D8%AA%D9%88%D8%B1%D8%A7%D8%AA-%D8%B4%D9%84-shell-ajoho2a2l9lf</link>
                <description>امروز داشتم توی ویرگول میگشتم که یه مقاله ی جالب پیدا کردم : https://virgool.io/fsf-linux/%D8%A8%D8%A7-alias-%D8%B3%D8%B1%DB%8C%D8%B9%D8%AA%D8%B1-%DA%A9%D8%AF-%D8%A8%D8%B2%D9%86%DB%8C%D8%AF-dxfys8enofv3 یهو یه فکری به سرم زد ! چطوره دستورات ترمینال رو برای فان هم که شده فارسی کنیم ؟ ایده جالبی بود ولی چند تا مشکل داشت :فقط می شد از نرم افزار konsole استفاده کرد ( به دلیل فارسی نویسی )فارسی نویسی توی ترمینال بی نهایت سخته ! باید حرف ها راست به چپ باشن .دستورات لینوکس خیلیییییییییییییییییییییییییییییییییییییییییییییییییییییییییییییییییییییییی زیاده :|بزرگ ترین مشکل مشکل 2 بود :( البته من تستش کردم و چند تا دستور رو توش به کار بردم ، برای استفاده از اون عبارات زیر رو به فایل .bashrc اضافه کنید ! alias نمایش=&quot;ls&quot;
alias کات=&quot;mv&quot;
alias فایل=&quot;file&quot;
alias روت=&quot;sudo&quot;
alias بسته=&quot;apt&quot;البته تعدادش خیلی کمه ولی میشه بیشترش کرد ، الان با وارد کردن عبارات : نمایش ، کات ، فایل‌ ، روت و بسته تستش کنید (((:درضمن ، یه اسکریپت ساده پایون نوشتم ، برای نصب اتومات برنامه ها ، اگه خواستید یه نگاهی کنید (: https://alirezaahani.github.io/ </description>
                <category>علیرضا آهنی</category>
                <author>علیرضا آهنی</author>
                <pubDate>Tue, 27 Nov 2018 21:42:56 +0330</pubDate>
            </item>
                    <item>
                <title>پیشنهاداتی برای ویرگول</title>
                <link>https://virgool.io/@biname/%D9%BE%DB%8C%D8%B4%D9%86%D9%87%D8%A7%D8%AF%D8%A7%D8%AA%DB%8C-%D8%A8%D8%B1%D8%A7%DB%8C-%D9%88%DB%8C%D8%B1%DA%AF%D9%88%D9%84-qv0veexepgnj</link>
                <description>سلام (: امروز میخوام چند تا پیشنهاد برای بهتر کردن ویرگول بدم که اگه اجرا بشه خیلی بهتره (:نوشتن مطلب در نسخه گوشی و تبلت انصافا خیلی بده که امکان نوشتن مطلب توی خود اپ موجود نباشه !امکان حذف وبلاگشاید یکی بخواد وبلاگش رو حذف کنه ! چیکار کنه ؟تغییر آدرسشاید یکی دلش خواست آدرسش رو تغییر بده ، چیکار کنه ؟پر کردن فضااگه به نمای صفحه ی اصلی ویرگول نگاه کنید . یه صفحه میبینید که یه بخش بالایی داره و یه بخش پایینی ، بخش پایینی هم از دوتا dir تشکیل شده که یکیش  290px عرض داره و یکیش حداکثر  650px عرض داره . اگه ویرگول رو توی یه نمایشگر بزرگ باز کنید متوجه منظورم میشید .سرعت بارگزاری کم !میدونم که این مربوط به سرعت منه ، ولی من حتی با سرعت 8MB هم تست کردم خیلییییییییییییییییییییییی کمه !اشکال در نوشتن متن برای عکس !من وقتی وقتی عکس رو میزارم و بعدش براش نوشته مینویسم به یه اینتر میزنم که بره توی مطلب اصلی ، میره به مطلب اصلی ولی بازم برمیگرده سرجاش !این فقط چند تا پیشنهاد بود . امیدوارم این موارد درست شه (:</description>
                <category>علیرضا آهنی</category>
                <author>علیرضا آهنی</author>
                <pubDate>Wed, 14 Nov 2018 16:40:00 +0330</pubDate>
            </item>
                    <item>
                <title>سلام elementary ، خداحافظ اوبونتو !</title>
                <link>https://virgool.io/@biname/%D8%B3%D9%84%D8%A7%D9%85-elementary-%D8%AE%D8%AF%D8%A7%D8%AD%D8%A7%D9%81%D8%B8-%D8%A7%D9%88%D8%A8%D9%88%D9%86%D8%AA%D9%88-jqxqstaoswwf</link>
                <description>سلام . یه مشکلی که من توی گنوم داشتم این بود که خیلی کرش میکرد ( گنوم یه باگی داره ،‌ اگه برنامه ای باز بشه یه حافظه ای به اون داده میشه ولی حتی اگه اون برنامه بستشه اون حافظه به سیستم بر نمیگرده ! ) برای همین من خیلی داشتم می رنجیدم ( بین خودمون باشه میخواستم کلا بزنم پاک کنم :| ) ولی الان یه جایگزین قشنگ تر و راحت تر از اوبونتو و گنوم پیدا کردم . اون جایگزین چیزی نیست جز elementary ! ولی این توزیع مشکلاتی داره که من الان میگم .سرعت کم در حالت live :اکثر توزیع ها توی حالت زنده ( فارس بالایی هست ) سرعت کم تری دارن ولی المنتری دیگه رکورد زده (: وقتی بالا آوردمش منو applications رو زدم یهو کرش کرد و حتی دسترسی به tty نداشتم ! ( همین الان اگه توی لینوکس هستید کلید ctrl + alt + f1 بزنید و لاگین کنید )فروشگاه اپ خیلی کوچک !فروشگاه اپی که توی المنتری وجود داره خیلی خیلی ضعیف هست . البته توی همه ی توزیع ها اینطوریه ولی نه در این حد !ظاهر شبیه مک این مورد هم اشکاله و هم نیست ! ( چی گفتم ! ) خلاصه اگه خواستید یه مکی رو به لینوکس بیارید این توزیع رو بهش نشون ندید چون به شما میگه که المنتری کپی مک هست .شخصی سازی کم المنتری متاسفانه مثل گنوم شخصی سازی خوبی نداره ): البته میشه یه کارایی کردولی در آخر خیلی از تیم المنتری ممنونم که همچین سیستم عامل زیبایی رو درست کردن (:+ یه مشکلی توی گذاشتن عکس هست که اگه برای عکس عنوان بزاریم و بعد اینتر بزنیم میره خط بعد ولی بازم برمیگرد سر جاش !</description>
                <category>علیرضا آهنی</category>
                <author>علیرضا آهنی</author>
                <pubDate>Fri, 09 Nov 2018 08:57:57 +0330</pubDate>
            </item>
                    <item>
                <title>روز دانش آموز مبارک (:</title>
                <link>https://virgool.io/@biname/%D8%B1%D9%88%D8%B2-%D8%AF%D8%A7%D9%86%D8%B4-%D8%A2%D9%85%D9%88%D8%B2-%D9%85%D8%A8%D8%A7%D8%B1%DA%A9-nxpoe5jshol9</link>
                <description>روز دانش آموز رو به همه ی دانش آموزان ویرگولی تبریک میگم (:یکمی هم از ویکی پدیا درباره روز دانش آموز بخونیم ( البته معلومه که همه بلدیم ) : روز دانش‌آموز در ایران مصادف است با ۱۳ آبان هر سال. علت نامگذاری این روز، واقعه کشتار جمعی دانش‌آموزان تهرانی است که به نشانه اعتراض به حکومت پهلوی در صبح روز ۱۳ آبان ۱۳۵۷ در محوطه دانشگاه تهران جمع شده بودند.در این اعتراض که با همیاری قشرهای دیگری از مردم نیز همراه بود، با شروع شلیک گاز اشک‌آور و سپس گلوله، ۵۶ نفر از تجمع‌کنندگان کشته شدند و صدها تن دیگر مجروح شدند. دوشنبه ۱۶ بهمن ۱۳۵۷ جمعی از دانش آموزان مدارس پایتخت طی بیانیه‌ای اعلام کردندکه ما دانش آموزان ایرانی روز شنبه سیزدهم آبان ۱۳۵۷ را به عنوان روز دانش آموز اعلام نموده و قصد داریم هر ساله با یاد شهیدان جنبش دانش آموزی در این روز بر وحدت و یکپارچگی خود بیفزاییم.[۶][۷]به منظور گرامی‌داشت این روز، ۱۳ آبان در تقویم جمهوری اسلامی ایران به عنوان روز دانش‌آموز نامگذاری شده‌است.  https://fa.wikipedia.org/wiki/%D8%B1%D9%88%D8%B2_%D8%AF%D8%A7%D9%86%D8%B4%E2%80%8C%D8%A2%D9%85%D9%88%D8%B2 </description>
                <category>علیرضا آهنی</category>
                <author>علیرضا آهنی</author>
                <pubDate>Sun, 04 Nov 2018 12:58:30 +0330</pubDate>
            </item>
                    <item>
                <title>تغییر فونت پیشفرض گنوم شل</title>
                <link>https://virgool.io/@biname/%D8%AA%D8%BA%DB%8C%DB%8C%D8%B1-%D9%81%D9%88%D9%86%D8%AA-%D9%BE%DB%8C%D8%B4%D9%81%D8%B1%D8%B6-%DA%AF%D9%86%D9%88%D9%85-%D8%B4%D9%84-ldk7df3mo9pi</link>
                <description>سلام . شاید وقتی وارد محیط گنوم شل در حالت فارسی وارد بشید فکر کنید صفحه کپک زده اینقدر فونت فارسی پیش فرض زشته ! به تصویر نگاه کنید :پس بهتره یکم قشنگ ترش کنیم (:برای این کار دو راه وجود داره :راه گرافیکیراه ترمینالخوب من راه ترمینال رو ترجیح میدم . یه پایانه یا ترمینال باز کنید . اول یه فایل با نام  .fonts.conf ( دات اولشه ) می سازیم و عبارات زیر رو توش قرار میدیم : &lt;?xml version=&#039;1.0&#039;?&gt;
&lt;!DOCTYPE fontconfig SYSTEM &#039;fonts.dtd&#039;&gt;
&lt;fontconfig&gt;
 &lt;match target=&quot;pattern&quot;&gt;
  &lt;test name=&quot;family&quot; qual=&quot;any&quot;&gt;
   &lt;string&gt;sans-serif&lt;/string&gt;
  &lt;/test&gt;
  &lt;edit mode=&quot;assign&quot; binding=&quot;same&quot; name=&quot;family&quot;&gt;
   &lt;string&gt;ubvazir&lt;/string&gt;
  &lt;/edit&gt;
 &lt;/match&gt;
 &lt;dir&gt;~/.fonts&lt;/dir&gt;
&lt;/fontconfig&gt; و بعدش ذخیره میکنیم . این فایل میگه که هرجا فونت sans-serif استفاده شده به جاش بیا از فونت ubvazir ( یه فونت گمنام ولی زیبا که با ترکیب انگلیسی فونت اوبونتو و فارسی فونت وزیر ( همین فونتی که دارید این مطلب رو با هاش میخونید ) هست ) استفاده کن . برای ولی خوب ما که فونت ubvazir رو نداریم ! پس باید نصبش کنیم . دستور زیر رو بزنید :cd $HOME
mkdir .fonts
cd .fontsو بعدش با دستور زیر فونت ubvazir رو دریافت کنید :wget http://mylaboratory.persiangig.com/other/ubvazir.ttfو حالا دستور زیر رو بزنید که یه بروز رسانی توی فونت ها انجام بشه :fc-cacheو سرانجام لاگ اوت و دوباره لاگین کنید (:</description>
                <category>علیرضا آهنی</category>
                <author>علیرضا آهنی</author>
                <pubDate>Fri, 02 Nov 2018 18:00:31 +0330</pubDate>
            </item>
                    <item>
                <title>اولین پست ویرگولی (:</title>
                <link>https://virgool.io/@biname/%D8%A7%D9%88%D9%84%DB%8C%D9%86-%D9%BE%D8%B3%D8%AA-%D9%88%DB%8C%D8%B1%DA%AF%D9%88%D9%84%DB%8C-h3lohacxcyin</link>
                <description>وبلاگسلام (:من علیرضا آهنی 11 ساله ( تعجب نکنید ! ) هستم (:من قبلا وبلاگ نویسی میکردم ولی چون سرویس دهنده ها خیلی خوب نبودن ( سرویس دهنده هایی مثل بلاگفا و رزبلاگ ) وبلاگ نویسی رو کنار گذاشتم . ولی بعد مدتی توی یه وبلاگ که اسمش یه چیزی تو مایه های مجید آنلاین بود ( خود مجید آنلاین نبود !! ) اولین بار اسم سیستم وبلاگ نویسی ویرگول رو شنیدم . کمی بعد ثبت نام کردم ولی خوب چیزی ننوشتم و ولش کردم ولی دوباره اومدم و دیدم خیلی تفاوت پیدا کرده و من خیلی خوشم اومد ((: دوباره ثبت نام کردم با ایمیل جدیدم ولی بازم چیزی ننوشتم ، فقط گاهی خیلــــی کم نظر میدادم . ولی امروز دیگه نتونستم ننویسم . یکمم از خودم بگم بد نیست به نظرم :من خیلی از کامپیوتر خوشم میاد و تا الان زبان C و پایتون رو به صورت دست و پا شکسته و زبان HTML و CSS رو بلدم . همچنین خیلی از گنو/لینوکس خوشم میاد و الانم دارم با لینوکسی که خودم نصب کردم و شخصی سازی کردم دارم مینویسم ( توزیع اوبونتو ) خوب فکر کنم کافیه (:خداحافظ (:+ یکم دارم حس میکنم وقت مخاطب رو تلف میکنم .++ به احتمال زیاد بقیه پست های اینجا گنو/لینوکسی خواهد بود (:</description>
                <category>علیرضا آهنی</category>
                <author>علیرضا آهنی</author>
                <pubDate>Thu, 25 Oct 2018 11:52:10 +0330</pubDate>
            </item>
            </channel>
</rss>