<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های فرزان طینتی</title>
        <link>https://virgool.io/feed/@pharzan</link>
        <description>توسعه دهنده وب و گیک</description>
        <language>fa</language>
        <pubDate>2026-06-18 06:25:21</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/17976/avatar/ctXf5w.png?height=120&amp;width=120</url>
            <title>فرزان طینتی</title>
            <link>https://virgool.io/@pharzan</link>
        </image>

                    <item>
                <title>اولین قدم‌ها برای لینوکس نو روی VPS</title>
                <link>https://virgool.io/@pharzan/vps-first-steps-licw5enzv655</link>
                <description>قدیم‌ها که از ویندوز استفاده میکردم بعد از نصب ویندوز جدید یکسری کارهای اولیه و برنامه‌های کاربردی رو باید نصب میکردم و اینکار رو هر ماه یکبار باید انجام میدادم. البته لینوکس بعد از یکی دو ماه نیاز به نصب مجدد نداره و سالها مثل ساعت کار میکنه ولی هر از گاهی وقتی که یک وی پی اس یا سرور جدید میگرم نیاز هست یکسری مراحل رو تکرار کنم. ممکنه یک روش خودکار و سریع‌تر برای اینکارها وجود داشته باشه ولی برای فعلا توی این نوشته مراحل رو مینویسم.  دستورات زیر در Ubuntu 16.04 اجرا شده. اگه از نسخه و مشخصات لینوکس‌ نصب شده مطمئن نیستین برای اطلاع از نسخه لینوکس از یکی از دستورهای زیر میتونیم استفاده کنیم.cat /etc/*-release
lsb_release -a
cat /proc/version۱. بروزرسانیاول از همه چیز سیستم عامل رو بروز میکنم. دستور update ریپازیتوری‌ها رو به روز میکنه و دنبال نسخه جدید برای آنچه که نصب هست میگرده و لیست‌ها رو که در مسیر چیز جدیدی نصب نمیکنه. /etc/apt/sources.list : ریپازیتوری‌ها توی این مسیر قرار دارن دستور دوم نسخه‌های جدیدی که پیدا شدن رو دانلود و نصب میکنه.sudo apt-get update
sudo apt-get upgrade۲. ایجاد یوزر جدیدحالا یه یوزر جدید میسازم که با یوزر root وارد نشم و با یوزر خودم وارد بقیه کار‌ها رو انجام میدم. البته این یوزر رو هم به گروه rootها اضافه میکنم تا تغییرات اساسی روی سیستم بتونم بدم.sudo adduser pharzanیوزر جدید رو به گروه sudoها اضافه میکنم. برای اینکار ویرایش فایل etc/sudoers/ توصیه نمیشه و بجاش با visudo‌انجام میدم. و یا دستور زیر رو اعمال میکنیم.usermod -aG sudo pharzanهمین کار رو با visudo هم میشه انجام داد و یا بهتر یک گروهی ایجاد کرد که اعضای این گروه به همه چیز دسترسی داشته باشن و با دستور بالا یوزرمون رو به گروه جدید اضافه کنیم.بعد از اجرای visudo سطر زیر رو با حذف # به حالت اجرایی در میاریم و اگر هم وجود نداشت بدون # اضافه میکنیم.# %wheel        ALL=(ALL)       ALLحالا با یوزر جدیدمون به سیستم لاگ‌این میشیم.ssh pharzan@SERVER_IP۳. خدای من! زد شلگام بعد نصب یه شل اینترفیس بهتره که بنظرم ZSH و Oh my ZSH بهترین و معمول‌ترین گزینه باشن. میشه روش plugin هم نصب کرد که باعث میشه بسیار کاربردی تر و دینامیک بشه. اول دو تا پکیج لازم برای oh my zsh رو نصب میکنیم.sudo apt install git-core zsh  و بعد از مخزن Robby Russell، شل رو نصب میکنیم.sh -c &quot;$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)&quot;برای اینکه یکم تنظیمات دستکاری کنیم و تم رو عوض کنیم از دستور زیر فایل تنظیمات رو باز میکنیم.تمام تم‌ها اینجا موجود هستن.nano ~/.zshrc برای تغییر تم شل لینوکسمون ZSH_THEME از فایل تنظیمات پیدا میکنیم و تغییرش میدیم. من از robbyrussell به honukai تغییر میدم. ولی قبل از اینکار اول این تم رو زیر پوشه   cd ~/.oh-my-zsh/themes با wget دانلود میکنم.honukai cd ~/.oh-my-zsh/themes
wget https://raw.githubusercontent.com/oskarkrawczyk/honukai-iterm-zsh/master/honukai.zsh-theme
--------------------------------------------------------------------------------------------------
nano ~/.zshrc : سطر زیر توی فایل کانفیگ قرار میدم
ZSH_THEME=&quot;honukai&quot;حالا وقتشه zsh رو بعنوان شل اصلی تعریف کنیم تا همیشه بعد از لاگ‌این با همین شل روبرو بشم،‌ فقط با این دستور مراقب باشین چون اگه مشکلی پیش بیاد توی لاگ‌این بعدی باعث خرابکاری میشه. برای بدست آوردن مسیر از which استفاده میکنم و قبلش با اجرای zsh مطمئن میشم که درست کار میکنه. البته بد نیست pluginها رو هم نصب کنیم و بعدش اینکار رو انجام بدیم.chsh -s $(which zsh) حالا نوبت plugin‌هاست که همشون اینجا موجود هستن. افضونه زیر دستورات رو رنگی میکنه. برای اینکار به پوشه cd ~/.oh-my-zsh/custom/plugins میریم و با Git پوشه افضونه رو کپی میکنیم.cd ~/.oh-my-zsh/custom/plugins 
git clone https://github.com/zsh-users/zsh-syntax-highlighting و حالا فایل تنظیمات oh my zsh رو ویرایش میکنیم و افضونه رو به لیست افضونه‌های موجود اضافه میکنیم.nano ~/.zshrc   به این شکل افضونه‌ها رو اضافه میکنیم۴. نام سیستمنام و یکسری مشخصات اونو میشه با دستور hostnamectl دید و یا با دستور hostname -s اسم سیستم رو ببینیم. اگر خواستیم اسمش رو عوض کنیم میتونیم با دستور زیر عوضش کنیم.sudo hostnamectl set-hostname pharzan-VPS-005اگه بعد از اینکار گاها با پیام sudo: unable to resolve host rain مواجه شدین میتونین فایل hosts رو ویرایش کنین و سطر زیر رو بهش اضافه کنین.nano /etc/hosts127.0.1.1    pharzan-VPS-005۵. زمانبه احتمال زیاد منطقه زمان (Time Zone) درست تنظیم نشده و میتونین برای مطمئن شدن با دستور timedatectl چک کرد. در صورت نیاز میشه به شکل زیر تغییرش داد.sudo timedatectl set-timezone Asia/Tehran۶. دیوار آتش!اگر قبلا با ip tables کار کرده باشید با پیچیدگیش آشنا هستین ولی خوشبختانه ufw یک رابط راحت‌تر برای دیوار آتش ip tables هست. با sudo ufw status وضعیت فایروال رو میشه دید ولی قبل از فعال سازی، ssh رو بهش اضافه کنیم که ارتباطمون قطع نشه و باعث خرابکاری هم نشه و بعدا دوباره بتونیم وارد سیستم بشیم.sudo ufw allow OpenSSH
sudo ufw allow ssh
sudo ufw app list

Available applications:
OpenSSH
sshحالا که مطمئن شدیم که دفعه بعد هم اجازه ورود داریم میتونیم فعالش کنیم.sudo ufw enableپورت‌های http و https رو هم باز میکنیم. هم میشه عدد پورت رو وارد کرد و هم میشه پروتکل پورت رو.sudo ufw allow http
sudo ufw allow 80 #Same as above

sudo ufw allow https
sudo ufw allow 443 #Same as above و یا هر دو رو یکجا با دستور زیر میشه اعمال کرد.sudo ufw allow proto tcp from any to any port 80,443۷. بروزرسانی اتوماتیکشاید هفته‌ها و ماه‌ها به سروری که در حال کار کردن هست لاگ‌این نکینیم و آپدیت‌های امنیتی جدید و مهمی وجود داشته باشه که غافل بمونیم. میتونیم بروزرسانی اتوماتیک رو فعال کنیم و کمی خیالمون راحت باشه. برای اینکار اول unattended-upgrades رو نصب میکنم.apt-get install unattended-upgrades 
nano /etc/apt/apt.conf.d/10periodicو فایل etc/apt/apt.conf.d/10periodic ویرایش میکنم و بصورت زیر مینویسم.APT::Periodic::Update-Package-Lists &quot;1&quot;; 
APT::Periodic::Download-Upgradeable-Packages &quot;1&quot;; 
APT::Periodic::AutocleanInterval &quot;7&quot;; 
APT::Periodic::Unattended-Upgrade &quot;1&quot;;فایل /etc/apt/apt.conf.d/50unattended-upgrades رو هم باید ویرایش کنیم.nano /etc/apt/apt.conf.d/50unattended-upgradesو سطر بصورت زیر در بیاوریم.Unattended-Upgrade::Allowed-Origins {        
&quot;${distro_id}:${distro_codename}-security&quot;;                                     این سطر میمونه 
 //      &quot;${distro_id}:${distro_codename}&quot;;                       این سطر رو غیر فعال میکنیم
 };۸. ایمیل روزانه لاگ‌هالاگ‌واچ یک سرویس یا دیمون خیلی بدرد بخوریه که میتونه خلاصه‌ایی از لاگ‌های سرور رو براتون بصورت روزانه یا هرطور که بخواین ایمیل بزنه. به احتمال زیاد ایمیل‌ها به پوشه اسپم میره چونکه mail serverتون بصورت استاندارد پیکربندی نشده.اول نصبش میکنیمsudo apt-get install logwatch حالا فایلی که مسئول ارسال ایمیل هست رو ویرایش میکنیمnano /etc/cron.daily/00logwatchو خط زیر رو یا اضافه میکنیم و یا اگر وجود داشت ایمیلمون رو بصورت درست وارد میکنیم./usr/sbin/logwatch --output mail --mailto test@gmail.com --detail highالبته فایل تنظیمات اصلی رو هم از مسیر زیر میتونین پیدا کنین و مقادیر توی عکس رو عوض کنینnano /usr/share/logwatch/default.conf/logwatch.confاگه پیشنهادی برای کامل تر شدن و یا بهبود این مطلب دارین لطفا از طریق توییتر pharzan@ یا ایمیل pharzan@outlook.com به من اطلاع بدین.</description>
                <category>فرزان طینتی</category>
                <author>فرزان طینتی</author>
                <pubDate>Thu, 11 Oct 2018 23:13:16 +0330</pubDate>
            </item>
                    <item>
                <title>هک گیت‌هاب</title>
                <link>https://virgool.io/@pharzan/github-hack-kojruwy26g8s</link>
                <description>چند شب پیش فکر میکردم که اگه روی سرورم یه بات داشته داشتم که هر روز بصورت تصادفی commit بزنه و  تمام اون مربع‌های توی پروفایل گیتم رو سبز کنه، خیلی باحال میشه و از یه طرف هم سبز شدن اون مربع‌ها حس خوبی به آدم میده.بعد کمی جستجو و گوگلینگ متوجه شدم نیازی به بات نیست و گیت تاریخ رو از متغییرهای داخل سیستم عامل یا همون environment variables میگیره و میتونیم تغییرشون بدیم که اینجا توضیح ساختار تاریخ گیت هست.الآن یعنی یک اسکریپت داشته باشیم که این تاریخ‌ها رو درست ست کنه و بعد commit بزنه به چیزی که میخوایم رسیدیم و حس این رو میده که توی زمان سفر کرده باشیم و commit زده باشیم، ای کاش به همین سادگی زمان رو میشد تغییر داد. این که هک نشد! خب، هک همیشه به معنی دسترسی غیر مجاز به چیزی نیست، به روشی که باعث بشه چیزی همونطور که میخوایم کار کنه هم هک او چیز گفته میشه.حالا اگه شما هم دوست دارین گیتتون سبز بشه سورس پروژه رو توی گیت‌هاب ببینین، توضیحات پایین رو هم بخونین بد نیست.توضیحات پایینسطر پایین فرمت کلی کاری هست که انجام داده میشه و میشه گفت کلید سیر در زمان توی سطر پایین هست. GIT_AUTHOR_DATE=2015-01-01T00:00:00 GIT_COMMITTER_DATE=2015-01-01T00:00:00 git commit --allow-empty -m &quot;pharzan&quot; با این سطر میتونیم تاریخ رو دستی به ۱/۱/۲۰۱۵ ببریم و بعدش میتونیم یک commit خالی بزنیم. منظور از commit خالی یعنی بدون اینکه فایلی تغییر کرده باشه و به فضای stage اضافه شده باشه، میشه commit زد! هنوز هم نفهمیدم به چه دردی میتونه بخوره ولی چنین امکانی وجود داره و ما ازش استفاده میکنیم.خب الآن باید اون تاریخ‌ها رو یکی یکی به تعداد روزهایی که میخوایم کم کنیم ولی بنظرم اگه بخوایم از توی اسکریپت shell لینوکس این کار رو انجام بدیم داستان خیلی پیچیده میشه و بجاش میتونیم این shell اسکریپت رو از داخل اسکریپت یک زبان دیگه، مثلا پایتون، تولید کنیم و از اونجا اجراش کنیم.اسکریپت پایتوندر کل سیستم خیلی ساده‌ست و اون سطر بالا رو داریم تولید میکنیم. حلقه اول به تعداد روز‌هایی که کاربر میخواد برگرده تکرار میشه و از امروز به تعداد روزها تاریخ تولید میشه. برای هر تاریخ تولید شده یک حلقه دیگه هست که به تعداد تصادفی بین ۱ و ۲۰ اجرا میشه و در حقیقت تعداد commitهای اون تاریخ هست (چون نمیخوایم همه مربع‌ها همرنگ باشن). گیت‌هاب پر رنگی مربع‌ها رو از روی نسبت تعداد commitها نشون میده، یعنی اگه هر روز حداکثر ۲۰ تا commit داشته باشین پر رنگ‌ترین مربع‌تون اون روزی میشه که ۲۰ تا commit زدین ولی یه روزی ۳۰۰ تا بزنین قطعا همه مربع ها به نسبت کمرنگ‌تر میشه.for i in range(days):
        rnd = random.randint(1, 20)
        commitdate = roundTime(datetime.today() - timedelta(days=i), roundTo=60*60)
         for j in range(rnd):
               template = &#039;&#039;&#039;GIT_AUTHOR_DATE={0} GIT_COMMITTER_DATE={1} git commit --allow-                        
                                   empty -m &quot;pharzan&quot; &gt; /dev/null\n&#039;&#039;&#039;.format(commitdate.isoformat(), 
                                    commitdate.isoformat())
            lines.append(template)نهایتا تمام سطرهای تولید شده رو که توی یک لیست (آرایه) داریم و از اونجا به یک فایل قابل اجرا در لینوکس یا همون shell script میریزیم و بقیه کد پایتون با استفاده از subprocess این shell اسکریپت رو اجرا میکنه.نحوه استفادهقبل اجرا توی گیت‌هاب یک مخزن جدید و خالی بسازین. من اسم مخزنم رو fake_repo گذاشتم. بعد اسکریپتم رو اجرا میکنم و سه تا سوال میپرسه. اول نام کاربری گیت‌هابم رو، بعد اسم مخزن خالی‌ایی که قبل اجرا ساختیم و نهایتا تعداد روزی که میخوایم عقب برگردیم.نکته ۱: اگر مخزنتون قبلا وجود داشته یک پیغام merge میگیرین ولی توصیه میکنم یک مخزن جدید ایجاد کنین.  نکته ۲: عدد تصادفی تولید شده (تعداد کامیت‌های روز) رو طوری تنظیم کنین که از به نسبت ماکزیمم کامیت‌هاتون باشه. یعنی اگر بین ۴۰ تا ۵۰ تا commit دارین او عدد ۱ و ۲۰ رو بهتره ۴۰ تا ۵۰ کنین تا رنگ خانه‌ها متناسب در بیاد.نکته‌ ۳: commitها شاید کمی طول بکشه، منتظر بمونین.نکته ۴: این روش احتمالا روی سرویس‌های گیت مثل Gitlab هم باید کار کنه ولی امتحان نکردم.نکته ۵: Starکردن مخرن و اگر تغییرات و ایده‌ایی دارین Forkکردن خیلی خوشحال کننده‌ست.</description>
                <category>فرزان طینتی</category>
                <author>فرزان طینتی</author>
                <pubDate>Sat, 06 Oct 2018 10:12:08 +0330</pubDate>
            </item>
                    <item>
                <title>محیط مجازی پایتون</title>
                <link>https://virgool.io/@pharzan/python-virtual-enviroment-egsd4jea6gi5</link>
                <description>به چه دردی میخوره؟برای اینکه پکیج‌هایی که با pip نصب میکنیم بشکلی از سیستم عامل ایزوله بمونه و Global توی سیستم عامل نصب نشه تا بعدا کلی دردسر درست نشه، توی پایتون از Virtual Enviroment میشه استفاده کرد. یعنی هر پروژه میتونه یک محیط برای نصب پکیج‌هاش داشته باشه تا از نظر نسخه با هم تداخل نداشته باشن.مثالفرض کنین دو تا پروژه A و B داریم که هر دو از جانگو استفاده میکنن. A رو چند سال پیش نوشتیم و B رو اخیرا شروع کردیم. A با جانگو نسخه ۱.۵ نوشته شده و B با نسخه ۱.۱۱ ساخته شده. فرزان از Virtual Enviroment استفاده میکنه تا این دو پروژه با هم تداخل نکنن و یکجا بتونن کنار هم زندگی کنن.اصغر پایتون‌کاراگه این موضوع رو گوگل کنیم از بس تعدادشون زیاده که کلا سردر گم میشیم. اینا یه سریشونن:virtualenvpyenvpipenvvirtualenvwrapperpyenvvirtualenvwrapper  آدم کلا نا امید میشه ولی یه توضیحی اینجا هست که شاید بدرد بخوره و من مستقیم میرم سراغ virtualenvکه برای پایتون ۳.۵ جوابه و زیاد نمیرم سراغ جزئیاتش. اگه شما بیشتر میدونین بهم بگین. نصبدر کل برای نصب و استفاده به پوشه پروژه میریم و دستورات پایین رو اجرا میکنیم. البته pip باید قبلش نصب باشه اوصولا.$ pip install virtualenvقدم بعدی ایجاد محیط مجازیست.$ virtualenv mypythonاین دستور یک همچین ساختاری رو توی پوشه‌تون ایجاد میکنه که پکیج‌هایی که نصب میکنیم اینجا میرن و فعلا از اینجا فایل activate مهمه.├── bin│   ├── activate│   ├── activate.csh│   ├── activate.fish│   ├── easy_install│   ├── easy_install-3.5│   ├── pip│   ├── pip3│   ├── pip3.5│   ├── python -&gt; python3.5│   ├── python3 -&gt; python3.5│   └── python3.5 -&gt; /Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5├── include├── lib│   └── python3.5│       └── site-packages└── pyvenv.cfgمیتونیم این محیط رو با دستور زیر فعال کنیم و پکیج‌هامون رو نصب کنیم. اون env تو سطر دوم نشون میده که فعال شده. اگر خواستیم میتونیم چند تا از اینا داشته باشم و آزمایش کنیم و بهترین حالت رو برای پروژه‌هامون پیدا کنیم. $ source bin/activate(env) $برای غیرفعال کردن میتونیم به ترمینال بگیم deactivate و برای نصب روی ویندوز اینجا رو ببینین، من بلد نیستم.  اگه کسی پرسید برای این پروژه چه پکیج‌هایی باید نصب کنم کافیه دستور زیر رو اجرا کنیم تا یک خروزجی از همه پکیج‌های اون محیط مجازی بگیریم.$ pip freeze &gt; requirments.txtخیلی متداوله که این فایل توی روت پروژه‌ باشه تا اگه کسی خواست پروژه رو استفاده کنه با دستور زیر تمام پکیج‌های نیاز برای اجرا (dependency) رو نصب کنه و حالش رو ببره.  $ pip install -r requirments.txt</description>
                <category>فرزان طینتی</category>
                <author>فرزان طینتی</author>
                <pubDate>Thu, 04 Oct 2018 11:13:18 +0330</pubDate>
            </item>
                    <item>
                <title>گوگل رو چطوری کنار بزاریم؟</title>
                <link>https://virgool.io/@pharzan/google-alternative-neqapumqxysy</link>
                <description>از گوگل بدم نمیاد، در حقیقت طرفدارش هم هستم و اولین روزای شروع به کارش رو یادمه. اون موقع اینترنت رو میشد رسما یه دور زد و موتور جستجوگر محبوب همه یاهو یا آلتاویستا بود ولی اواسط دهه ۹۰ میلادی بود که گوگل شروع کرد از همه سبقت بگیره. یادمه اواخر دهه ۹۰ یه الگوریتم طبقه‌بندی سایت معرفی و استفاده کردن که باعث شد گوگل بصورت چشم‌گیری جلو بزنه.سال ۲۰۰۵ جی میل رو معرفی کرد و اون اوایل فقط با دعوتنامه میشد عضو شد و باید یکی که عضو جی‌میل بود برات دعوتنامه میفرستاد. بعد از جی‌میل تو سال ۲۰۰۶ تقویم گوگل رو معرفی کرد و بدنبالش گوگل‌داکس رو. اون موقع که گوگل‌داکس رو دیدم از دیدم یک تحول برنامه‌نویسی بود. اینکه ورد و اکسل رو توی مرورگرت داشته باشی خیلی جذاب و بدرد بخوره. گوگل خیلی وقت بود یواش یواش جای خودش رو توی زندگیمون بزرگتر و بزرگتر میکرد. گوگل از یه شرکتی که محصولات بدرد بخور می‌ساخت تبدیل به یه شرکتی که ما رو محاصره کرده. شبیه هیچ شرکت هم نوعش نیست. شما خیلی راحت میتونین اینستاگرام یا فیسبوک رو کنار بزارین، ولی گوگل ریشه‌های عمیقتری توی زندگیمون داره. حتی گوگل مفهوم بعضی کلمات رو عوض کرده و وقتی میگیم مرورگر، گوگل‌کرم به ذهن میرسه و جیمیل تداعی کننده ایمیله.اینکه گوگل اینقدر توی زندگیمون نفوذ کرده شاید برای تعدادی نگران کننده باشه، خصوصا بعد از اینکه اسنودن نقش گوگل رو توی پریزم فاش کرد. البته بعنوان یک علاقمند به تکنولوژی دوست دارم گزینه‌های جایگزین رو هم بدونم.این جایگزین‌ها رو به دو دسته راحت و سخت تقسیم میکنم.راحت‌ها سرویس‌هایی هستن که استفاده ازشون راحته، رابط کاربری دوستانه‌ایی دارن و نیاز به تنظیمات پیشرفته، هاست ویا سرور خاصی نیست.راحت‌هاجستجودو جستجوگر DuckDuckGo و Startpage جستجوگرهایی هستن که بر محور حریم‌خصوصی کاربر ایجاد شده‌اند و داده‌های شما رو جمع‌آوری نمیکنن و میتونن براتون جایگزین نتایج گوگل باشن.مرورگریک کلمه: فایرفاکس.  سال‌هاست این دو مرورگر باهم رقابت میکنن و فرق چندانی ندارن و در برخی مواقع فایرفاکس بهتر هم هست. اگه با فایرفاکس مشکل دارین، بد نیست به مرورگر Brave هم نگاهی بندازین.چتجایگزین متن‌باز Google Hagouts میتونه Jitsi Meet باشه. و اخیرا. زوم هم بین خیلی‌ها محبوب شده ولی بیشتر ویژگی‌هاش مجانی نیستن. سیگنال هم یه جایگزین متن باز دیگه‌است که روی موبایل قابلیت زنگ زدن رو داره.نقشهروی دسک‌تاپ Here WeGo و  Open Street Map سریع‌تر بارگزاری میشن و تمام امکانات گوگل مپس رو هم داره.روی موبایل هم از Maps.me میشه استفاده کرد.جی‌میلیه اینباکس رمزگزاری شده پرایوسی محور آلمانی که جایگزین tuto هست. البته سرویس‌های زیادی وجود دارن که مجانی نیستن.یوتیوباگه دوست ندارین ویدیو‌ها رو مستقیم از یوتیوب لود کنین میتونین همون ویدیو رو از هوک‌تیوب  ببینین. توی آدرس ویدیو کافیه youtube.com رو با hooktube.com جایگزین کنین و البته امکان دانلود مستقیم رو هم میده که بدرد بخور میتونه باشه.سخت‌هاگوگل‌داکز، درایو و فوتویک جایگزین فوق‌العاده NextCloud میتونه باشه. شروع استفاده به سادگی گوگل درایو نیست ولی غیر ممکن هم نیست. به یه  گواهینامه SSL نیاز هست که من مجانیش رو از Lets Encrypt ساختم.جایگزین‌های دیگه میتونن OwnCloud و  OpenStack باشن.آنالتیکسیه نسخه متن بازی که روی سرور خودتون میتونین پیاده‌سازی کنین Matomo هست. هرچند شاید تمامی امکانات گوگل رو نداشته باشه ولی جوابگوست.مراجعلیست پروژه‌های متن‌باز پرایوسی محور Localization Lab جایگزین‌های سرویس‌های گوگل Framasoftیک لیست جایگزین دیگر restoreprivacy</description>
                <category>فرزان طینتی</category>
                <author>فرزان طینتی</author>
                <pubDate>Fri, 28 Sep 2018 21:06:40 +0330</pubDate>
            </item>
                    <item>
                <title>رزومه‌ام رو از کجا شروع کنم؟</title>
                <link>https://virgool.io/applymag/resume-k0dahsusq61f</link>
                <description>چند روزی هست که دنبال یک فرصت شغلی بهترم و رزومه‌ام رو برای بررسی ارسال میکنم. با اینکه در این زمینه متخصص نیستم ولی وقتی خودم با چشم مشتری نگاهی به رزومه‌ام انداختم، به این نتیجه رسیدم که از بین صدها رزومه احتمال اینکه رزومه خودم، نظرم رو جلب کنه خیلی کم هست و برام سوال شد که اصلا رزومه رو چطوری باید نوشت و منابع انسانی دنبال چه مواردی هست و نهایتا شروع به پرس و جو و جستجو کردم. چند تا مورد دستگیرم شد که شاید به درد بقیه هم بخوره. فایل‌های لایه باز نسخه انگلیسی و فارسی رزومه‌ام رو توی این مخزن گیت گذاشتم و میتونین استفاده کنین. البته چون از گیمپ استفاده میکنم فایل‌ها با فرمت xcf  هستن. امیدوارم بدرد بخورن.نکته اول: کسی که صد تا رزومه دریافت میکنه و کارش استخدام هست احتمالا زمان خیلی کمی روی رزومه‌ها میذاره و در نگاه اول اگر نظرش جلب نشه میره سراغ بعدی.نکته دوم: رزومه مقدمه مصاحبه‌ست. رزومه صرفا فقط برای جلب توجه کارفرما یا منابع انسانی هست و بعید میدونم کسی رو از روی رزومه استخدام کنن و در حقیقت با رزومه داریم طرف رو قانع میکنیم که با ما برای مصاحبه تماس بگیره.نکته سوم: پر بودن مهم نیست. با در نظر گرفتن نکته‌های قبلی این تصور که رزومه باید پر از جملات طولانی باشه یک تصور اشتباهی میتونه باشه. برعکس بهتره از جملات کوتاه استفاده بشه و توانایی فرد رو مطرح کنه. اینکه چطوری، کی و با چه کسایی کار میکردیم اطلاعاتی هست که توی مصاحبه می‌تونه مطرح بشه و بهتره تمرکز روی توانایی‌ها و دست‌آوردهای اون موقیعت شغلیه.نکته چهارم: بهتره رزومه تک صفحه باشه و فقط برای موقیعت‌های شغلی خاص که نیاز به توضیحات زیاد هست، بیشتر از یک صفحه توصیه میشه و بهتره رزومه رو در یک صفحه تنظیم کرد. اگه جملات زیاده میشه از دو ستون استفاده کرد.نکته پنجم: از ستاره و عدد و امتیاز برای رتبه‌بندی مهارت‌ها استفاده نکنین چون هیچ مفهوم و مبنای سنجشی ندارن و فقط نظر شخصی شماست. کافیه مهارت‌ها لیست بشه و طبقه بندی بشه.نکته ششم: سوابق غیر مرتبط رو لیست نکنین و یا طوری لیست کنین که تصور اشتباه نده. بعنوان مثال من میخوام خودم رو بعنوان یک برنامه‌نویس نشون بدم ولی سابقه کار در جاهای غیر مرتبط هم دارم. چون برای موقیعت شغلی برنامه‌نویس اقدام میکنم بهتره تمرکز روی سوابق برنامه‌نویسیم باشه و اگه میخوام بقیه سوابقم رو مطرح کنم میتونم خلاصه‌تر و جدا مطرح کنم.نکته هفتم: حتما اطلاعات تماستون رو بنویسین و توصیه میشه که رزومه عکس  و هرگونه اطلاعاتی که ممکنه موجب قضاوت ناخودآگاه بشه رو نداشته باشه. ممکنه از روی عکس بطور ناخودآگاه، قبل از مصاحبه قضاوت بشین و همونجا رد بشین. البته این فقط برای عکس صادق نیست بلکه هرگونه اطلاعات شخصی که در آگهی خواسته نشده مثل سن و آدرس دقیق و ... رو حذف کنین.نکته هشتم: به طرح اهمیت بدین و از اشکال و رنگ‌های اضافی استفاده نکنین چون میتونه هم رزومه رو غیر حرفه‌ایی نمایش بده و هم میتونه موجب تاثیر منفی بشه.البته همونطور که گفتم من متخصص این کار نیستم و نکات بالا هم وحی منزل نیستن و تجربه شخصی من هست و هرگونه مورد و ایرادی که به چشم بخوره میتونه کمکم کنه.نتیجه نهایی نمونه فارسینتیجه نهایی نمونه انگلیسی
</description>
                <category>فرزان طینتی</category>
                <author>فرزان طینتی</author>
                <pubDate>Thu, 27 Sep 2018 00:58:11 +0330</pubDate>
            </item>
            </channel>
</rss>