Jadoo

آموزش‌های جادو

persian layout

یکی از تفاوت‌هایی که چینش زاستاندارد صفحه کلید فارسی در ویندوز و لینوکس دارند. دکمه های ترکیبی با AltGr یا همون دگرساز سمت راست است. در ادامه یک چینش مطابق چیزی که در لینوکس وجود دارد رو ایجاد کردم و میتوانید از اون توی ویندزو استاده کنید.

برای تولید این چینش از نرم افزار KbdEdit استفاده شده است.

لینک دانلود فایل‌ها: download

python

یکی از مشکلاتی که خیلی وقت‌ها با اون مواجه می‌شوم. مشکل دانلود فایل‌های کتابخونه‌هایی است که استفاده می‌کنم. مشکل از اونجایی است که گاهی حجم این‌ها زیاد است و مشکل بزرگتر هم سرعت اینترنت در ایران است. از این رو توی این پست میخوام راه کاری که برای پایتون (Python) بهش رسیدم رو توضیح بدم.

نکته اول اینکه لازم است یک سرور محلی برای خودتون درست کنید برای این منظور هم کتابخونه pypi-server رو پیشنهاد می‌دهم. بعد از نصب این ابزار (یک کتابخونه پاتونی است) کافیه که بهش پوشه حاوی فایل های whl خودتون رو بدید.

# install from 
## https://pypi.org/project/pypi-server/
pypi-server run -p 8091 /$HOME/whlRepo

طبق دستور بالا من از دایرکتوری whlRepo که توی دارکتوری اصلی کاربر ساختم استفاده میکنم و روی پرت 9081 یک سرور محلی بالا میارم. حالا چطور ازش استفاده کنم؟ گام اول اینکه یه سری کتابخونه توش دانلود کنید و البته هر بار می‌خواهید نصب کنید اول دانلود کنید، حالا چطور؟

pip download --extra-index-url http://localhost:8091 -d /$HOME/whlRepo <packages name>

با دستور بالا فایل های مربوطه توی دایرکتوری گفته شده دانلود می‌شوند. نکته جالب اینکه اول توی خود ریپازیتوری سرچ میکنه و اگه نبود میره از اینترنت دانلود می‌کنه. بعد از اینکه دانلود تموم شد می‌تونید با دستور زیر نصب رو انجام بدید

pip install --extra-index-url http://localhost:8091  <packages name>

حالا یه نکته ریز دیگه می‌مونه و اونم اینکه به جای دو دستور زیر من یک فانکشن توی شل ایجاد می‌کنم و اینجوری بدون مشکل با دستور خودم که ایجاد کردم هر دو مرحله رو انجام می‌دم:

# in .bashrc

mypip() {
  PKGS=("$@")
  pip download "${PKGS[@]}" --extra-index-url http://localhost:8091 -d /$HOME/whlRepo && pip install "${PKGS[@]}" --extra-index-url http://localhost:8091
}

البته برای اینکه همیشه این سرویس بالا باشه میتونیم یه سرویس توی systemd ایجاد کنیم بصورت زیر :

sudo nano /etc/systemd/system/pipyserver.service

و محتویاتش رو به شکل زیر بنویسیم:

[Unit]
Description=A minimal PyPI server for use with pip/easy_install.
After=network.target

[Service]
Type=simple
# systemd requires absolute path here too.
PIDFile= /home/<your user>/whlRepo/pypiserver.pid
User=<your user>
Group=<your user>

ExecStart=pypi-server run -p 8091 /home/<your user>/whlRepo --log-file /home/<your user>/whlRepo/log.log
ExecStop=/bin/kill -TERM $MAINPID
ExecReload=/bin/kill -HUP $MAINPID
Restart=always

WorkingDirectory=/home/<your user>/whlRepo

TimeoutStartSec=3
RestartSec=5

سپس با دستورات زیر فعالش کنید:

sudo systemctl enable pipyserver.service   
sudo systemctl start pipyserver.service  
sudo systemctl status pipyserver.service    

python-go-rust

چند وقت پیش برای نصب یک کتابخونه توی گولنگ به مشکل برخوردم و خوب طبیعتا مشکل از وضعیت تحریم اعمال شده بر ایران بود از این رو یا باید حتما از فیلترشکن استفاده کنیم یا اینکه به سمت استفاده از میرور ها برویم. در این پست استفاده از میرور ها برای پکیج‌منیجر های مختلف آمورش داده میشود:

گولنگ (Go)

در لینوکس یا مک به راحتی با دستور زیر میتونید از gpproxy.cn استفاده کنید

$ echo "export GO111MODULE=on" \u003e\u003e ~/.profile
$ echo "export GOPROXY=https://goproxy.cn" \u003e\u003e ~/.profile
$ source ~/.profile

در ویندوز هم در بخش system environment variables به راحتی دو متغییر تعریف کنید مقادیسر اون ها رو مطابق زیر قرار دهید:

# Variable : Value
GO111MODULE : on
GOPROXY : https://goproxy.cn

منبع:‌ goproxy

راست (Rust)

برای کسانی که از زبیان راست استفاده می کنند می توان میررور https://rsproxy.cn/ را معرفی کرد. برای استفاده هم فقط کافیه دو متغیر زیر رو توی سیستم تعریف کنید:

export RUSTUP_DIST_SERVER="https://rsproxy.cn"
export RUSTUP_UPDATE_ROOT="https://rsproxy.cn/rustup"

منبع: rsproxy

پایتون (Python)

برای پایتون چندید میرور لیست وجود دارد که می توانید از آنها برای بهبود سرعت دانلود استفاده کنید. برای مثال شرکت های ایرانی ارائه دهنده PyPi mirror مثل runflare. در ادامه لیستی از این شرکت ها ارئه شده است.

کشور سرور(host) ادرس(address)
🇮🇷 https://mirror-pypi.runflare.com https://mirror-pypi.runflare.com/simple/
🇨🇳 https://pypi.tuna.tsinghua.edu.cn https://pypi.tuna.tsinghua.edu.cn/simple/
🇨🇳 https://mirrors.aliyun.com https://pypi.tuna.tsinghua.edu.cn/simple/
🇨🇳 https://pypi.mirrors.ustc.edu.cn https://pypi.mirrors.ustc.edu.cn/simple/
🇨🇳 https://repo.huaweicloud.com https://repo.huaweicloud.com/repository/pypi/simple/
🇨🇳 http://pypi.douban.com http://pypi.douban.com/simple/
🇨🇳 http://pypi.sdutlinux.org http://pypi.sdutlinux.org/

برای استفاده از هرکدام از سرور‌های فوق از دستور الگوی زیر استفاده کنید

pip install --trusted-host [host] -i [address] package-name

البته میتوانید از دستورات زیر برای تنظیم به صورت سراسری استفاده کنید

pip config --user set global.index [address]
pip config --user set global.index-url [address]
pip config --user set global.trusted-host [host]

Windows context menu

این چند وقت یهو دیدم دیگه نمی‌تونم فایل‌ها و پوشه ها رو به راحتی با vscode باز کنم. درواقع میخوام با راست کلیک کردن روی پوشه‌ها و فایل ها، گزینه‌ای برای باز کردن با vscode داشته باشم. برای این منظور لازمه یه کم تغیراتی رو توی registery بدیم.

البته در ادامه فایلی که من اماده کردم رو هم میتونید اجرا کنید و خودش توی رجیستری تغییرات را اعمال میکنه. Vscode.reg

حالا باید چکار کنیم؟

اول دکمه های win + r رو میزنیم. توی برنامه ای که باز شد مینویسیم: regedit

برای فایل‌ها

در صفحه نرم افزار که باز شد کافیه ابتدا در مسیر:

[Computer\HKEY_CLASSES_ROOT\*\shell]

یک دارکتوری به نام Vscode بسازیم. سپس توی این دارکتوری یک دارکتوری به اسم command در ادرس

[\Computer\HKEY_CLASSES_ROOT\*\shell\Vscode]

بر روی فایل ‍‍(Default) راست کلیک کرده و modify بزنید.

اینجا در این سمت مقدار هرچیزی که بنویسید توی منوی راست کلیک نمایش داده می‌شود من نوشتم : Open with Code. حالادر همین ادرس یک Key ایجاد کنید با عنوان Icon و مقدار

C:\Users\ssmns\AppData\Local\Programs\Microsoft VS Code\Code.exe

یا هر ادرسی که یک ایکون برای Vscode دارید.

خوب تا اینجای کار برای فایل ها تغییرات داده شده ولی فقط یک ایتم توی منو ایجاد شده و نه اینکه کار کنه. پس توی ادرس زیر

[\Computer\HKEY_CLASSES_ROOT\*\shell\Vscode\command]

بر روی فایل ‍‍(Default) راست کلیک کرده و modify بزنید.

اینجا بنویسد:

"C:\Users\ssmns\AppData\Local\Programs\Microsoft VS Code\Code.exe\" "%1

خوب کارمون تموم شده با این تفاوت که هنوز برای پوشه ها کاری نکردیم.

پوشه‌ها

برای اون ها همین کار ها رو انجام بدید با این تفوات که مسیر اصلی به صورت زیر است:

[Computer\HKEY_CLASSES_ROOT\Directory\shell]

و مقدار

[\Computer\HKEY_CLASSES_ROOT\Directory\shell\Vscode\command]

باید به صورت زیر باشد:

"C:\Users\ssmns\AppData\Local\Programs\Microsoft VS Code\Code.exe" "%V"