From 5d28b3108e1f4d3ac50d4b205ac08c620f2cec8f Mon Sep 17 00:00:00 2001 From: shabane Date: Tue, 15 Oct 2024 16:05:42 +0330 Subject: [PATCH] build --- docs/404.html | 345 +- docs/about-hugo/index.html | 12 +- docs/about-us/index.html | 12 +- docs/about/index.html | 597 +- docs/archives/index.html | 850 +- docs/categories/cloud/index.html | 613 +- docs/categories/cloud/index.xml | 782 +- docs/categories/cloud/page/1/index.html | 12 +- docs/categories/index.html | 655 +- docs/categories/index.xml | 100 +- docs/categories/linux/index.html | 647 +- docs/categories/linux/index.xml | 1437 ++- docs/categories/linux/page/1/index.html | 12 +- docs/categories/movie/index.html | 616 +- docs/categories/movie/index.xml | 2012 ++-- docs/categories/movie/page/1/index.html | 12 +- docs/categories/network/index.html | 596 +- docs/categories/network/index.xml | 410 +- docs/categories/network/page/1/index.html | 12 +- docs/categories/page/1/index.html | 12 +- docs/categories/page/2/index.html | 655 +- docs/categories/page/3/index.html | 611 +- docs/categories/programming/index.html | 664 +- docs/categories/programming/index.xml | 525 +- docs/categories/programming/page/1/index.html | 12 +- docs/categories/projects/index.html | 630 +- docs/categories/projects/index.xml | 599 +- docs/categories/projects/page/1/index.html | 12 +- docs/categories/python/index.html | 613 +- docs/categories/python/index.xml | 794 +- docs/categories/python/page/1/index.html | 12 +- docs/categories/rust/index.html | 630 +- docs/categories/rust/index.xml | 366 +- docs/categories/rust/page/1/index.html | 12 +- .../software-engineering/index.html | 596 +- .../categories/software-engineering/index.xml | 131 +- .../software-engineering/page/1/index.html | 12 +- docs/categories/tech/index.html | 680 +- docs/categories/tech/index.xml | 4875 +++++---- docs/categories/tech/page/1/index.html | 12 +- docs/categories/tech/page/2/index.html | 663 +- docs/categories/terminal/index.html | 596 +- docs/categories/terminal/index.xml | 423 +- docs/categories/terminal/page/1/index.html | 12 +- docs/contact/index.html | 12 +- docs/en/404.html | 219 +- docs/en/categories/index.html | 291 +- docs/en/categories/index.xml | 11 +- docs/en/categories/page/1/index.html | 12 +- docs/en/index.html | 279 +- docs/en/index.xml | 11 +- docs/en/page/1/index.html | 12 +- docs/en/sitemap.xml | 42 +- docs/en/tags/index.html | 291 +- docs/en/tags/index.xml | 11 +- docs/en/tags/page/1/index.html | 12 +- docs/fa/index.html | 12 +- docs/fa/sitemap.xml | 370 +- docs/gallery/index.html | 596 +- docs/gallery/index.xml | 43 +- docs/gallery/page/1/index.html | 12 +- docs/gallery/rick-and-morty/index.html | 638 +- docs/images/post/OIG2 (2).jpeg | Bin 0 -> 236468 bytes docs/images/post/OIG2.jpeg | Bin 0 -> 236468 bytes docs/images/post/OIG2.jpg | Bin 0 -> 147813 bytes docs/images/post/dc.jpg | Bin 0 -> 167577 bytes docs/index.html | 1014 +- docs/index.xml | 9067 ++++++++--------- docs/links/index.html | 605 +- docs/p/blade-runner/index.html | 1806 +--- .../index.html" | 1015 +- docs/p/crul-paste/index.html | 939 +- docs/p/etc/resolve.conf/index.html | 966 +- docs/p/function/index.html | 548 + .../index.html" | 903 +- .../index.html" | 697 +- .../index.html" | 903 +- .../index.html" | 919 +- .../index.html" | 946 +- .../index.html" | 3232 +++--- .../index.html" | 854 +- .../index.html" | 760 +- .../index.html" | 955 +- .../index.html" | 746 +- .../index.html" | 545 + .../index.html" | 1032 +- .../index.html" | 113 + .../index.html" | 850 +- .../index.html" | 545 + .../index.html" | 545 + .../index.html" | 911 +- .../index.html" | 557 + .../index.html" | 808 +- .../index.html" | 672 +- docs/page/1/index.html | 12 +- docs/page/2/index.html | 1004 +- docs/page/3/index.html | 984 +- docs/page/4/index.html | 912 +- docs/page/5/index.html | 714 ++ docs/page/index.html | 640 +- docs/page/index.xml | 116 +- docs/page/page/1/index.html | 12 +- docs/post/index.html | 693 +- docs/post/index.xml | 8932 ++++++++-------- docs/post/page/1/index.html | 12 +- docs/post/page/2/index.html | 690 +- docs/post/page/3/index.html | 693 +- docs/post/page/4/index.html | 676 +- docs/post/page/5/index.html | 609 ++ docs/rust-lang/index.html | 12 +- docs/rust/index.html | 708 +- ...2d7c2dc8b598a2d879efa079fa88893d29c49c.css | 10 + docs/search/index.html | 369 +- docs/search/index.json | 2 +- docs/sitemap.xml | 17 +- docs/tags/--/index.html | 596 +- docs/tags/--/index.xml | 483 +- docs/tags/--/page/1/index.html | 12 +- docs/tags/0x0.st/index.html | 596 +- docs/tags/0x0.st/index.xml | 423 +- docs/tags/0x0.st/page/1/index.html | 12 +- docs/tags/arya-shabane/index.html | 613 +- docs/tags/arya-shabane/index.xml | 881 +- docs/tags/arya-shabane/page/1/index.html | 12 +- docs/tags/bash/index.html | 596 +- docs/tags/bash/index.xml | 303 +- docs/tags/bash/page/1/index.html | 12 +- docs/tags/curl-paste/index.html | 596 +- docs/tags/curl-paste/index.xml | 423 +- docs/tags/curl-paste/page/1/index.html | 12 +- docs/tags/curlpaste/index.html | 596 +- docs/tags/curlpaste/index.xml | 423 +- docs/tags/curlpaste/page/1/index.html | 12 +- docs/tags/decenterlize/index.html | 596 +- docs/tags/decenterlize/index.xml | 269 +- docs/tags/decenterlize/page/1/index.html | 12 +- .../index.html" | 596 +- .../index.xml" | 410 +- .../page/1/index.html" | 12 +- docs/tags/download-with-wget/index.html | 596 +- docs/tags/download-with-wget/index.xml | 155 +- .../tags/download-with-wget/page/1/index.html | 12 +- docs/tags/etc/resolve.conf/index.html | 596 +- docs/tags/etc/resolve.conf/index.xml | 410 +- docs/tags/etc/resolve.conf/page/1/index.html | 12 +- .../tags/etc/systemd/resolved.conf/index.html | 596 +- docs/tags/etc/systemd/resolved.conf/index.xml | 410 +- .../systemd/resolved.conf/page/1/index.html | 12 +- .../index.html" | 596 +- .../index.xml" | 277 +- .../page/1/index.html" | 12 +- .../index.html" | 596 +- .../index.xml" | 277 +- .../page/1/index.html" | 12 +- .../index.html" | 596 +- .../index.xml" | 483 +- .../page/1/index.html" | 12 +- .../tags/how-to-lock-file-in-linux/index.html | 596 +- docs/tags/how-to-lock-file-in-linux/index.xml | 277 +- .../page/1/index.html | 12 +- .../index.html | 596 +- .../index.xml | 2588 +++-- .../page/1/index.html | 12 +- docs/tags/index.html | 703 +- docs/tags/index.xml | 572 +- docs/tags/infinite-recursion/index.html | 596 +- docs/tags/infinite-recursion/index.xml | 483 +- .../tags/infinite-recursion/page/1/index.html | 12 +- docs/tags/linux-terminal/index.html | 596 +- docs/tags/linux-terminal/index.xml | 305 +- docs/tags/linux-terminal/page/1/index.html | 12 +- docs/tags/linux/index.html | 647 +- docs/tags/linux/index.xml | 3313 +++--- docs/tags/linux/page/1/index.html | 12 +- docs/tags/m_shabane/index.html | 596 +- docs/tags/m_shabane/index.xml | 410 +- docs/tags/m_shabane/page/1/index.html | 12 +- docs/tags/messenger/index.html | 596 +- docs/tags/messenger/index.xml | 269 +- docs/tags/messenger/page/1/index.html | 12 +- docs/tags/mirror-a-single-web-page/index.html | 596 +- docs/tags/mirror-a-single-web-page/index.xml | 2588 +++-- .../page/1/index.html | 12 +- docs/tags/open-source/index.html | 596 +- docs/tags/open-source/index.xml | 269 +- docs/tags/open-source/page/1/index.html | 12 +- docs/tags/page/1/index.html | 12 +- docs/tags/page/10/index.html | 709 +- docs/tags/page/11/index.html | 709 +- docs/tags/page/12/index.html | 705 +- docs/tags/page/13/index.html | 704 +- docs/tags/page/14/index.html | 703 +- docs/tags/page/2/index.html | 704 +- docs/tags/page/3/index.html | 705 +- docs/tags/page/4/index.html | 709 +- docs/tags/page/5/index.html | 709 +- docs/tags/page/6/index.html | 709 +- docs/tags/page/7/index.html | 709 +- docs/tags/page/8/index.html | 709 +- docs/tags/page/9/index.html | 709 +- docs/tags/paste-file-with-curl/index.html | 596 +- docs/tags/paste-file-with-curl/index.xml | 423 +- .../paste-file-with-curl/page/1/index.html | 12 +- docs/tags/recursion/index.html | 596 +- docs/tags/recursion/index.xml | 483 +- docs/tags/recursion/page/1/index.html | 12 +- docs/tags/regex/index.html | 596 +- docs/tags/regex/index.xml | 155 +- docs/tags/regex/page/1/index.html | 12 +- docs/tags/rust/index.html | 613 +- docs/tags/rust/index.xml | 335 +- docs/tags/rust/page/1/index.html | 12 +- .../index.html | 596 +- .../index.xml | 131 +- .../page/1/index.html | 12 +- docs/tags/tech/index.html | 613 +- docs/tags/tech/index.xml | 2879 +++--- docs/tags/tech/page/1/index.html | 12 +- docs/tags/terminal/index.html | 613 +- docs/tags/terminal/index.xml | 594 +- docs/tags/terminal/page/1/index.html | 12 +- .../index.html" | 596 +- .../index.xml" | 305 +- .../page/1/index.html" | 12 +- .../index.html" | 596 +- .../index.xml" | 305 +- .../page/1/index.html" | 12 +- docs/tags/tty/index.html | 596 +- docs/tags/tty/index.xml | 305 +- docs/tags/tty/page/1/index.html | 12 +- .../index.html" | 596 +- .../index.xml" | 411 +- .../page/1/index.html" | 12 +- docs/tags/wget/index.html | 613 +- docs/tags/wget/index.xml | 2731 +++-- docs/tags/wget/page/1/index.html | 12 +- .../what-is-file-locking-in-linux/index.html | 596 +- .../what-is-file-locking-in-linux/index.xml | 277 +- .../page/1/index.html | 12 +- docs/tags/what-is-umbrel-os/index.html | 596 +- docs/tags/what-is-umbrel-os/index.xml | 411 +- docs/tags/what-is-umbrel-os/page/1/index.html | 12 +- docs/tags/why-i-love-linux/index.html | 596 +- docs/tags/why-i-love-linux/index.xml | 155 +- docs/tags/why-i-love-linux/page/1/index.html | 12 +- docs/tags/zsh/index.html | 596 +- docs/tags/zsh/index.xml | 303 +- docs/tags/zsh/page/1/index.html | 12 +- .../index.html" | 596 +- .../index.xml" | 483 +- .../page/1/index.html" | 12 +- .../index.html" | 613 +- .../index.xml" | 335 +- .../page/1/index.html" | 12 +- .../index.html" | 613 +- .../index.xml" | 335 +- .../page/1/index.html" | 12 +- .../index.html" | 596 +- .../index.xml" | 43 +- .../page/1/index.html" | 12 +- .../index.html" | 596 +- .../index.xml" | 43 +- .../page/1/index.html" | 12 +- .../index.html" | 613 +- .../index.xml" | 335 +- .../page/1/index.html" | 12 +- .../index.html" | 596 +- .../index.xml" | 2588 +++-- .../page/1/index.html" | 12 +- .../index.html" | 596 +- .../index.xml" | 2588 +++-- .../page/1/index.html" | 12 +- .../index.html" | 596 +- .../index.xml" | 43 +- .../page/1/index.html" | 12 +- .../index.html" | 596 +- .../index.xml" | 43 +- .../page/1/index.html" | 12 +- .../index.html" | 613 +- .../index.xml" | 335 +- .../page/1/index.html" | 12 +- .../index.html" | 613 +- .../index.xml" | 335 +- .../page/1/index.html" | 12 +- .../index.html" | 613 +- .../index.xml" | 335 +- .../page/1/index.html" | 12 +- .../index.html" | 596 +- .../index.xml" | 383 +- .../page/1/index.html" | 12 +- .../index.html" | 596 +- .../index.xml" | 383 +- .../page/1/index.html" | 12 +- .../index.html" | 596 +- .../index.xml" | 423 +- .../page/1/index.html" | 12 +- .../index.html" | 596 +- .../index.xml" | 131 +- .../page/1/index.html" | 12 +- .../index.html" | 596 +- .../index.xml" | 269 +- .../page/1/index.html" | 12 +- .../index.html" | 596 +- .../index.xml" | 483 +- .../page/1/index.html" | 12 +- .../index.html" | 596 +- .../index.xml" | 411 +- .../page/1/index.html" | 12 +- .../index.html" | 596 +- .../index.xml" | 423 +- .../page/1/index.html" | 12 +- .../index.html" | 596 +- .../index.xml" | 423 +- .../page/1/index.html" | 12 +- .../index.html" | 596 +- .../index.xml" | 131 +- .../page/1/index.html" | 12 +- .../index.html" | 596 +- .../index.xml" | 483 +- .../page/1/index.html" | 12 +- .../index.html" | 596 +- .../index.xml" | 277 +- .../page/1/index.html" | 12 +- .../index.html" | 596 +- .../index.xml" | 269 +- .../page/1/index.html" | 12 +- .../index.html" | 596 +- .../index.xml" | 383 +- .../page/1/index.html" | 12 +- .../index.html" | 596 +- .../index.xml" | 269 +- .../page/1/index.html" | 12 +- .../index.html" | 596 +- .../index.xml" | 411 +- .../page/1/index.html" | 12 +- .../index.html" | 596 +- .../index.xml" | 383 +- .../page/1/index.html" | 12 +- .../index.html" | 596 +- .../index.xml" | 410 +- .../page/1/index.html" | 12 +- docs/ts/main.js | 6 +- ...s_77b10c8e87ff110a62c52933fe3f7f11.content | 2 +- ...scss_77b10c8e87ff110a62c52933fe3f7f11.json | 2 +- 344 files changed, 44154 insertions(+), 127675 deletions(-) create mode 100644 docs/images/post/OIG2 (2).jpeg create mode 100644 docs/images/post/OIG2.jpeg create mode 100644 docs/images/post/OIG2.jpg create mode 100644 docs/images/post/dc.jpg create mode 100644 docs/p/function/index.html create mode 100644 "docs/p/\331\201\330\247\333\214\331\204-\330\263\333\214\330\263\330\252\331\205-\330\263\330\261\331\210\330\261\330\252-\330\261\331\210-\330\261\331\210\333\214-\330\263\333\214\330\263\330\252\331\205-\331\204\331\210\332\251\330\247\331\204-\331\205\330\247\331\210\331\206\330\252-\332\251\331\206/index.html" create mode 100644 "docs/p/\331\205\330\247\331\206\330\252-\332\251\330\261\330\257\331\206-\330\257\330\247\333\214\330\261\332\251\330\252\331\210\330\261\333\214-\330\263\330\261\331\210\330\261-\330\261\331\210\333\214-\330\257\330\247\333\214\330\261\332\251\330\252\331\210\330\261\333\214-\331\204\331\210\332\251\330\247\331\204/index.html" create mode 100644 "docs/p/\331\276\330\247\330\261\330\252\333\214\330\264\331\206-\330\263\330\261\331\210\330\261-\330\261\331\210-\330\261\331\210\333\214-\330\263\333\214\330\263\330\252\331\205-\331\204\331\210\332\251\330\247\331\204-\331\205\330\247\331\210\331\206\330\252-\332\251\331\206/index.html" create mode 100644 "docs/p/\331\276\330\247\330\261\330\252\333\214\330\264\331\206-\330\263\330\261\331\210\330\261\330\252-\330\261\331\210-\330\261\331\210\333\214-\330\263\333\214\330\263\330\252\331\205-\331\204\331\210\332\251\330\247\331\204-\331\205\330\247\331\210\331\206\330\252-\332\251\331\206/index.html" create mode 100644 "docs/p/\331\276\333\214\332\257\330\261\333\214-\333\214\332\251-\330\254\330\263\330\252-\331\210-\330\254\331\210-\330\250\330\247-rss/index.html" create mode 100644 docs/page/5/index.html create mode 100644 docs/post/page/5/index.html create mode 100644 docs/scss/style.min.663803bebe609202d5b39d848f2d7c2dc8b598a2d879efa079fa88893d29c49c.css diff --git a/docs/404.html b/docs/404.html index cc1b977..0c317a7 100644 --- a/docs/404.html +++ b/docs/404.html @@ -1,331 +1,14 @@ - - - - -404 Page not found - - - - - - - - - - - - - - - -
- -
-
-

یافت نشد

-

این صحه وجود ندارد

-
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +404 Page not found +

یافت نشد

این صحه وجود ندارد

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git a/docs/about-hugo/index.html b/docs/about-hugo/index.html index 26a195d..e361d33 100644 --- a/docs/about-hugo/index.html +++ b/docs/about-hugo/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/about/ - - - - - - +https://bit-orbit.github.io/about/ + \ No newline at end of file diff --git a/docs/about-us/index.html b/docs/about-us/index.html index 26a195d..e361d33 100644 --- a/docs/about-us/index.html +++ b/docs/about-us/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/about/ - - - - - - +https://bit-orbit.github.io/about/ + \ No newline at end of file diff --git a/docs/about/index.html b/docs/about/index.html index 39d0f54..ea9ae18 100644 --- a/docs/about/index.html +++ b/docs/about/index.html @@ -1,578 +1,35 @@ - - - - -About - - - - - - - - - - - - - - - -
- - - -
-
-
- -
- - -
-

- About -

- - -

- bit-orbit talking about world of bits and bytes -

- -
- - - - - -
- -
- - - - - - - - - - -
- - - -
- - - - - - - - - -
- -
- - - -
- -
- -
- - -

من از هر پلتفرمی که بتونم داخلش متن بنویسم به عنوان وبلاگ استفاده می‌کنم، +About +

About

bit-orbit talking about world of bits and bytes

+
+

من از هر پلتفرمی که بتونم داخلش متن بنویسم به عنوان وبلاگ استفاده می‌کنم، حتی شاید یه روزی از pastebin -برای همین کار استفاده کنم (=

-

این هم یکی از وبلاگ های منه :)

-

علاقه‌ام سمت کار های کامپیوتری مثل توسعه نرم افزار و کانفیگ ابزار ها مختلف برای ساخت -یک سرویسه.

-

از خودم هم بخواهم بگم، من یه دانشجوی نرم افزار هستم، +برای همین کار استفاده کنم (=

این هم یکی از وبلاگ های منه :)

علاقه‌ام سمت کار های کامپیوتری مثل توسعه نرم افزار و کانفیگ ابزار ها مختلف برای ساخت +یک سرویسه.

از خودم هم بخواهم بگم، من یه دانشجوی نرم افزار هستم، لینوکسی‌ام و زبان اصلی‌ام پایتونه، و خب کم‌کم دارم مهارجت می‌کنم به زبان -rust.

-

با +rust.

با django سایت و api می‌نویسم، ولی همینکار رو به زودی با rust -پیش می‌برم.

- -
- - -
- - - -
- - - - - - - - - CC BY-NC-ND -
-
- - - - - - - - - - آخرین بروزرسانی در Oct 09, 2020 00:00 UTC - -
- - - -
- - - - - - - - -
-
- - -comments powered by Disqus -
- - - - - - - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - - - - -
-
- - - - - +پیش می‌برم.

+CC BY-NC-ND
+آخرین بروزرسانی در اکتبر 09, 2020 00:00 UTC
comments powered by Disqus
قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git a/docs/archives/index.html b/docs/archives/index.html index 952e95e..124737f 100644 --- a/docs/archives/index.html +++ b/docs/archives/index.html @@ -1,836 +1,14 @@ - - - - -Archives - - - - - - - - - - - - - - - -
- -
-
-

Categories

- - -
- - - - - - - - - - - - - - - - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Archives +

Categories

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git a/docs/categories/cloud/index.html b/docs/categories/cloud/index.html index 0c47082..fc8b1ed 100644 --- a/docs/categories/cloud/index.html +++ b/docs/categories/cloud/index.html @@ -1,576 +1,37 @@ - - - - -Category: Cloud - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Categories - -

- -
-
-

2 صفحه

-

Cloud

- -
-
-
- -
- - - - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Category: Cloud - bit-orbit +

Categories

2 صفحه

Cloud

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git a/docs/categories/cloud/index.xml b/docs/categories/cloud/index.xml index e853a94..14fb30f 100644 --- a/docs/categories/cloud/index.xml +++ b/docs/categories/cloud/index.xml @@ -1,18 +1,4 @@ - - - - Cloud on bit-orbit - https://bit-orbit.github.io/categories/cloud/ - Recent content in Cloud on bit-orbit - Hugo -- gohugo.io - fa - Mon, 18 Dec 2023 00:08:38 +0330 - از گوگل به تلگرام! - https://bit-orbit.github.io/p/%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/ - Mon, 18 Dec 2023 00:08:38 +0330 - - https://bit-orbit.github.io/p/%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/ - <img src="https://bit-orbit.github.io/images/post/colab.jpg" alt="Featured image of post از گوگل به تلگرام!" /><p>به احتمال زیاد سایت +Cloud on bit-orbithttps://bit-orbit.github.io/categories/cloud/Recent content in Cloud on bit-orbitHugo -- gohugo.iofaMon, 18 Dec 2023 00:08:38 +0330از گوگل به تلگرام!https://bit-orbit.github.io/p/%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/Mon, 18 Dec 2023 00:08:38 +0330https://bit-orbit.github.io/p/%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/<img src="https://bit-orbit.github.io/images/post/colab.jpg" alt="Featured image of post از گوگل به تلگرام!" /><p>به احتمال زیاد سایت google colab رو می‌شناسید، این سایت برای کسانی که پایتون کار می‌کنند یک معجزه‌ست. خیلی راحت شما می‌توانید کد پایتون خود @@ -22,30 +8,30 @@ google colab این سرویس گوگل واقعا کار رو راحت می‌کنه. حالا فرض کنید این فایل رو باید با تیم به اشتراک بگذارید، خیلی راحت این سروریس به گوگل درایو شما متصل می‌شه -و فایل رو براتون آپلود می‌کنه.</p> -<p>اما من توی این پست می‌خواهم کار متفاوتی با این سرویس +و فایل رو براتون آپلود می‌کنه.</p> +<p>اما من توی این پست می‌خواهم کار متفاوتی با این سرویس انجام بدم، جای اینکه فایل‌م رو توی گوگل درایو آپلود کنم می‌خواهم که یک پلی لیست موزیک راک رو که فایل با فرمت zip هست رو روی google colab دانلود کنم و بعد با همین کولب فایل -ها را استخراج و به تلگرام اپلود کنم.</p> -<p>اینو بگم که خب روی کولب خیلی تریک های جالب دیگه‌ای هم +ها را استخراج و به تلگرام اپلود کنم.</p> +<p>اینو بگم که خب روی کولب خیلی تریک های جالب دیگه‌ای هم می‌زنند، مثلا من یه تایمی به کولب ssh می‌کردم و بعنوان vpn -استفاده می‌کردم.</p> -<hr> -<p>ادرس سرویس +استفاده می‌کردم.</p> +<hr> +<p>ادرس سرویس google colab -<a class="link" href="https://colab.research.google.com/" target="_blank" rel="noopener" - >این</a> +<a class="link" href="https://colab.research.google.com/" target="_blank" rel="noopener" +>این</a> هست، ولی من یک اسکریپت نوشتم که به اون نیاز داریم برای همین -<a class="link" href="https://colab.research.google.com/github/shabane/upload-to-telegram/blob/master/upload_to_telegram.ipynb" target="_blank" rel="noopener" - >این لینک</a> +<a class="link" href="https://colab.research.google.com/github/shabane/upload-to-telegram/blob/master/upload_to_telegram.ipynb" target="_blank" rel="noopener" +>این لینک</a> رو باز کنید تا اسکریپتی که من نوشته‌م توی colab @@ -53,237 +39,204 @@ colab jupyter کار کرده باشین این محیط باید براتون خیلی آشنا باشه. اگر نه، خیلی ساده بگم، این محیط دستورات پایتون رو -براتون روی سروس های گوگل ران می‌کنه :)</p> -<p>خب ما یه فایل این برای مثالمون نیاز داریم، من یک پلی +براتون روی سروس های گوگل ران می‌کنه :)</p> +<p>خب ما یه فایل این برای مثالمون نیاز داریم، من یک پلی لیست راک از AC/DC -که از تورنت می‌گیرم رو برای اینکار استفاده می‌کنم.</p> -<p>اول من فایل رو باید دانلود کنم، من از تورنت برای دانلود +که از تورنت می‌گیرم رو برای اینکار استفاده می‌کنم.</p> +<p>اول من فایل رو باید دانلود کنم، من از تورنت برای دانلود موزیک، فیلم و &hellip; استفاده می‌کنم. پس کافیه لینک تورنت رو به برنامه aria2c بدم و یا فایل رو با یک سایت دانلودر تورنت دانلود کنم و لینک‌ش رو بدم به برنامه -wget</p> -<p>برای اینکه دستورات خودتون رو اجرا کنید از بالای سایت +wget</p> +<p>برای اینکه دستورات خودتون رو اجرا کنید از بالای سایت گزینه -<em>+ code</em> +<em>+ code</em> رو بزنید تا یک code snipp جدید براتون باز کنه. توی این قسمت فقط می‌شه کد های پایتون رو اجرا کرد ولی اگه از علامت -<strong>!</strong> +<strong>!</strong> قبل از دستور استفاده کنیم اون رو بعنوان دستور bash اجرا خواهد کرد. و خب بیس سیستم عامل هم دبیان هست -و دستورات دبیانی رو اجرا می‌کنه.</p> -<p>پس اگه مستقیم قرار بود فایل رو از تورنت بگیرم باید برنامه +و دستورات دبیانی رو اجرا می‌کنه.</p> +<p>پس اگه مستقیم قرار بود فایل رو از تورنت بگیرم باید برنامه aria2 -رو نصب می‌کردم. برای نصب کافیه این دستور رو بزنیم</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!sudo apt-get install aria2 -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>دقت کنید که از علامت -<code>!</code> -قبل از دستور استفاده کردم.</p> -</blockquote> -<p>بعد از نصب، لینک رو می‌دیم به برنامه تا فایل ها رو برامون -دانلود کنه.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!aria2c <span class="s1">&#39;&lt;your magnet link&gt;&#39;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>به این دقت کنید که برنامه با کامند +رو نصب می‌کردم. برای نصب کافیه این دستور رو بزنیم</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!sudo apt-get install aria2 +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>دقت کنید که از علامت +<code>!</code> +قبل از دستور استفاده کردم.</p> +</blockquote> +<p>بعد از نصب، لینک رو می‌دیم به برنامه تا فایل ها رو برامون +دانلود کنه.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!aria2c <span class="s1">&#39;&lt;your magnet link&gt;&#39;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>به این دقت کنید که برنامه با کامند aria2c اجرا می‌شه. ولی با به اسم aria2 -نصب می‌شه.</p> -</blockquote> -<p>و یا اینکه لینک دانلود مستقیم رو به برنامه +نصب می‌شه.</p> +</blockquote> +<p>و یا اینکه لینک دانلود مستقیم رو به برنامه wget می‌دیم. این برنامه به صورت دیفالت نصب هست و لازم نیست -کار خاصی بکنیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!wget <span class="s1">&#39;&lt;your file link&gt;&#39;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p><img src="https://bit-orbit.github.io/images/post/wgetcolab.jpg" - - - - loading="lazy" - - alt="from google to telegram as cloud" - - -></p> -<p>بعد از اینکه فایل روی سرور گوگل دانلود شد کافیه فایل -رو به تلگرام آپلود کنیم! ولی قبل‌ش چند کاری هست که باید -باهم بکنیم.</p> -<ul> -<li>فایل من زیپه پس باید استخراج کنم.</li> -<li>فایل ها توی دایرکتوری های تو در تو قرار دارند، و باید همه فایل های مورد نظرم رو که توی این مورد +کار خاصی بکنیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!wget <span class="s1">&#39;&lt;your file link&gt;&#39;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p><img src="https://bit-orbit.github.io/images/post/wgetcolab.jpg" +loading="lazy" +alt="from google to telegram as cloud" +></p> +<p>بعد از اینکه فایل روی سرور گوگل دانلود شد کافیه فایل +رو به تلگرام آپلود کنیم! ولی قبل‌ش چند کاری هست که باید +باهم بکنیم.</p> +<ul> +<li>فایل من زیپه پس باید استخراج کنم.</li> +<li>فایل ها توی دایرکتوری های تو در تو قرار دارند، و باید همه فایل های مورد نظرم رو که توی این مورد mp3 هستند رو بیارم داخل پوشه‌ای که اسکریپت دیفالت آنجا ران -می‌شه.</li> -<li>نیاز به یک کانال تلگرام دارم که فایل ها مستقیم اونجا -اپلود بشوند</li> -<li>یک توکن ربات تلگرام هم نیازه که با استفاده از دسترسی -ربات به کانال، فایل ها رو اپلود کنیم.</li> -</ul> -<p>خب برای اسختراج فایل ها خیلی ساده از کامند -<code>unzip</code> -و اسم فایل جلوی این کامند استفاده می‌کنیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!unzip &lt;your file name&gt; -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>با کامند -<code>ls</code> -نام فایلی که دانلود کردین رو می‌تونید ببینید.</p> -</blockquote> -<p><img src="https://bit-orbit.github.io/images/post/unzipcolab.jpg" - - - - loading="lazy" - - alt="uizip in colab" - - -></p> -<p>با اجرای کامند -<code>tree</code> -می‌تونید دایرکتوری های تو در تو رو ببینید.</p> -<p><img src="https://bit-orbit.github.io/images/post/treecolab.jpg" - - - - loading="lazy" - - alt="tree in colab" - - -></p> -<p>توی این مرحله من همه فایل های +می‌شه.</li> +<li>نیاز به یک کانال تلگرام دارم که فایل ها مستقیم اونجا +اپلود بشوند</li> +<li>یک توکن ربات تلگرام هم نیازه که با استفاده از دسترسی +ربات به کانال، فایل ها رو اپلود کنیم.</li> +</ul> +<p>خب برای اسختراج فایل ها خیلی ساده از کامند +<code>unzip</code> +و اسم فایل جلوی این کامند استفاده می‌کنیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!unzip &lt;your file name&gt; +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>با کامند +<code>ls</code> +نام فایلی که دانلود کردین رو می‌تونید ببینید.</p> +</blockquote> +<p><img src="https://bit-orbit.github.io/images/post/unzipcolab.jpg" +loading="lazy" +alt="uizip in colab" +></p> +<p>با اجرای کامند +<code>tree</code> +می‌تونید دایرکتوری های تو در تو رو ببینید.</p> +<p><img src="https://bit-orbit.github.io/images/post/treecolab.jpg" +loading="lazy" +alt="tree in colab" +></p> +<p>توی این مرحله من همه فایل های mp3 رو باید بیارم توی پوشه اصلی که اسکریپت‌ اپلود اجرا میشه، دلیل این کار این هست که این اسکریپ‌ت فقط فایل های mp3 -داخل همین پوشه رو پیدا و اپلود می‌کنه.</p> -<p>برای انتقال این فایل ها از پوشه های تو در تو به یک پوشه از کامند -<code>find</code> +داخل همین پوشه رو پیدا و اپلود می‌کنه.</p> +<p>برای انتقال این فایل ها از پوشه های تو در تو به یک پوشه از کامند +<code>find</code> استفاده می‌کنم و هر فایل که پیدا می‌شه رو با کامند -<code>mv</code> -به پوشه اصلی‌مون انتقال می‌دم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!find . -type f -iname <span class="s1">&#39;*mp3&#39;</span> -exec mv <span class="o">{}</span> . <span class="se">\;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>بیایید سوییچ های این دستور رو بهتون بگم</p> -<ul> -<li>type-</li> -</ul> -<p>این سوییچ انواع نوع فایل ها رو مشخص می‌کنه. مثلا شما می‌تونید دنبال یک دایرکتوری، فایل، سوکت و &hellip; بگردین</p> -<ul> -<li>iname-</li> -</ul> -<p>این سویچ که مشخص هست نام فایل رو ازتون می‌گیره که شما می‌تونید پترن ریجکس بدین بهش. +<code>mv</code> +به پوشه اصلی‌مون انتقال می‌دم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!find . -type f -iname <span class="s1">&#39;*mp3&#39;</span> -exec mv <span class="o">{}</span> . <span class="se">\;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>بیایید سوییچ های این دستور رو بهتون بگم</p> +<ul> +<li>type-</li> +</ul> +<p>این سوییچ انواع نوع فایل ها رو مشخص می‌کنه. مثلا شما می‌تونید دنبال یک دایرکتوری، فایل، سوکت و &hellip; بگردین</p> +<ul> +<li>iname-</li> +</ul> +<p>این سویچ که مشخص هست نام فایل رو ازتون می‌گیره که شما می‌تونید پترن ریجکس بدین بهش. و اون -<strong>i</strong> -مشخص می‌کنه که نام فایل به کوچیکی و بزرگی حساس نباشه.</p> -<ul> -<li>exec-</li> -</ul> -<p>یک کامندی رو ازتون می‌گیره و روی تک تک ریزالت های جست و جو اون کامند رو اجرا می‌کنه. +<strong>i</strong> +مشخص می‌کنه که نام فایل به کوچیکی و بزرگی حساس نباشه.</p> +<ul> +<li>exec-</li> +</ul> +<p>یک کامندی رو ازتون می‌گیره و روی تک تک ریزالت های جست و جو اون کامند رو اجرا می‌کنه. من کامند -<code>mv</code> +<code>mv</code> رو دادم که برای انتقال فایل استفاده می‌شه. علامت های -<strong>{}</strong> -هم یک متغییر هست که نام فایل تک به تک جای اون قرار می‌گیره.</p> -<blockquote> -<p>پایان سوییچ +<strong>{}</strong> +هم یک متغییر هست که نام فایل تک به تک جای اون قرار می‌گیره.</p> +<blockquote> +<p>پایان سوییچ exec همیشه با -<code>;\</code> -مشخص می‌شه.</p> -</blockquote> -<p>خب تا اینجا که خیلی ساده بود،‌ نه؟</p> -<p>مرحله آخر اینه که یک ربات با -<a class="link" href="https://t.me/BotFather" target="_blank" rel="noopener" - >این ربات</a> -بسازین، و بعد اون رو عضو یک کانالی که می‌سازید بکنید، کانال رو فعلا پابلیک بسازید و یک یوزرنیم بهش بدین.</p> -<p>توکن ربات رو کپی کنید و توی اسکریپت من، جایی که نوشته -<your token> +<code>;\</code> +مشخص می‌شه.</p> +</blockquote> +<p>خب تا اینجا که خیلی ساده بود،‌ نه؟</p> +<p>مرحله آخر اینه که یک ربات با +<a class="link" href="https://t.me/BotFather" target="_blank" rel="noopener" +>این ربات</a> +بسازین، و بعد اون رو عضو یک کانالی که می‌سازید بکنید، کانال رو فعلا پابلیک بسازید و یک یوزرنیم بهش بدین.</p> +<p>توکن ربات رو کپی کنید و توی اسکریپت من، جایی که نوشته +<your token> وارد کنید و توی قسمت -<chat id> -هم ایدی کانالتون رو با علامت @ اول جایگذاری کنید.</p> -<p><img src="https://bit-orbit.github.io/images/post/acdccolab.jpg" - - - - loading="lazy" - - alt="ac and dc telegram channel" - - -></p> -<blockquote> -<p>اگه کانال پرایوت دارید باید بجای ای‌دی کانال از +<chat id> +هم ایدی کانالتون رو با علامت @ اول جایگذاری کنید.</p> +<p><img src="https://bit-orbit.github.io/images/post/acdccolab.jpg" +loading="lazy" +alt="ac and dc telegram channel" +></p> +<blockquote> +<p>اگه کانال پرایوت دارید باید بجای ای‌دی کانال از chatid -استفاده کنید، که یک ای‌دی عددی هست.</p> -</blockquote> -<p><strong>تمام</strong>!‌ -کافیه برنامه رو اجرا کنید و کانال تلگرامتون رو نگاه کنید :)</p> -<blockquote> -<p>اگه خیلی زیاد دارین فایل اپلود می‌کنید احتمالا تلگرام ارور +استفاده کنید، که یک ای‌دی عددی هست.</p> +</blockquote> +<p><strong>تمام</strong>!‌ +کافیه برنامه رو اجرا کنید و کانال تلگرامتون رو نگاه کنید :)</p> +<blockquote> +<p>اگه خیلی زیاد دارین فایل اپلود می‌کنید احتمالا تلگرام ارور flood mood بهتون بده. توی این مورد کافیه فقط صبر کنید، اسکریپت از اجرا قطع نمی‌شه و روی همون فایل مجددا اجرا می‌شه -تا بالاخره فایل اپلود بشه.</p> -</blockquote> -<blockquote> -<p>هرچیزی رو می‌تونید آپلود کنید ولی دقت کنید که ربات ها محدودیت حجم اپلود دارن که نهایتش 50MB هست</p> -</blockquote> -<blockquote> -<p>اینم بگم که توی اسکریپت اگه +تا بالاخره فایل اپلود بشه.</p> +</blockquote> +<blockquote> +<p>هرچیزی رو می‌تونید آپلود کنید ولی دقت کنید که ربات ها محدودیت حجم اپلود دارن که نهایتش 50MB هست</p> +</blockquote> +<blockquote> +<p>اینم بگم که توی اسکریپت اگه mp3 -رو به چیز دیگه‌ای تغییر بدین، اسکریپت به دنبال اون پسوند ها خواهد گشت.</p> -</blockquote> - - - - cloud را به خانه خود ببرید! - https://bit-orbit.github.io/p/cloud-%D8%B1%D8%A7-%D8%A8%D9%87-%D8%AE%D8%A7%D9%86%D9%87-%D8%AE%D9%88%D8%AF-%D8%A8%D8%A8%D8%B1%DB%8C%D8%AF/ - Mon, 11 Dec 2023 01:39:34 +0330 - - https://bit-orbit.github.io/p/cloud-%D8%B1%D8%A7-%D8%A8%D9%87-%D8%AE%D8%A7%D9%86%D9%87-%D8%AE%D9%88%D8%AF-%D8%A8%D8%A8%D8%B1%DB%8C%D8%AF/ - <img src="https://bit-orbit.github.io/images/post/umbrel.webp" alt="Featured image of post cloud را به خانه خود ببرید!" /><h3 id="چطور-این-ایده-به-ذهن-من-رسید-">چطور این ایده به ذهن من رسید ؟</h3> -<p>جریان این ایده به این شکل بود که خب ما ایرانی ها اینترنت +رو به چیز دیگه‌ای تغییر بدین، اسکریپت به دنبال اون پسوند ها خواهد گشت.</p> +</blockquote>cloud را به خانه خود ببرید!https://bit-orbit.github.io/p/cloud-%D8%B1%D8%A7-%D8%A8%D9%87-%D8%AE%D8%A7%D9%86%D9%87-%D8%AE%D9%88%D8%AF-%D8%A8%D8%A8%D8%B1%DB%8C%D8%AF/Mon, 11 Dec 2023 01:39:34 +0330https://bit-orbit.github.io/p/cloud-%D8%B1%D8%A7-%D8%A8%D9%87-%D8%AE%D8%A7%D9%86%D9%87-%D8%AE%D9%88%D8%AF-%D8%A8%D8%A8%D8%B1%DB%8C%D8%AF/<img src="https://bit-orbit.github.io/images/post/umbrel.webp" alt="Featured image of post cloud را به خانه خود ببرید!" /><h3 id="چطور-این-ایده-به-ذهن-من-رسید-">چطور این ایده به ذهن من رسید ؟ +</h3><p>جریان این ایده به این شکل بود که خب ما ایرانی ها اینترنت به شدت محدود شده‌ای داریم، برای همین ما برای استفاده از اینترنت از vpn @@ -296,100 +249,82 @@ ip vpn رو که به هزار زحمت وصل شده بود، قطع کنیم. خب چاره چیه؟ اینکه اگه یک سیستم توی خونه یا شرکت دارین -که همیشه روشنه رو تبدیل به یک سرور کنیم :)</p> -<p>توی این فکر بودم که نیازم رو به چنین سیستم عاملی حس کردم، بعد کمی نیاز های دیگه رو بهش اضافه کردم و یه پست +که همیشه روشنه رو تبدیل به یک سرور کنیم :)</p> +<p>توی این فکر بودم که نیازم رو به چنین سیستم عاملی حس کردم، بعد کمی نیاز های دیگه رو بهش اضافه کردم و یه پست داخل تلگرام نوشتم، یکی کامنت گذاشت و خب این سیستم عامل -را معرفی کرد.</p> -<hr> -<h3 id="umbrel-چیست-">umbrel چیست ؟</h3> -<p>درواقع +را معرفی کرد.</p> +<hr> +<h3 id="umbrel-چیست-">umbrel چیست ؟ +</h3><p>درواقع umbrel یک سیستم عامل است، زمانی که شما این سیستم عامل را نصب کنید، یک صفحه وب در اختیار شما می‌گذارد و شما از طریق این صفحه درون مرورگر خود می‌توانید به سیستم دسترسی داشته باشید. برای مثلا می‌توانید سرویس های مختلف و ابزار های -مختلف را روی +مختلف را روی umbrel -نصب و یا کانفیگ کنید.</p> -<p>سرویس هایی که +نصب و یا کانفیگ کنید.</p> +<p>سرویس هایی که umbrel ارائه می‌دهد تقریبا همان سرویس هایی هستند که شما در طول -روز از نسخه های تجاری آنها استفاده می‌کنید.</p> -<p>اگه دقیق تر بخواهم بگم، این سیستم عامل یک +روز از نسخه های تجاری آنها استفاده می‌کنید.</p> +<p>اگه دقیق تر بخواهم بگم، این سیستم عامل یک store در اختیار کاربران‌ش قرار می‌ده. و خب این یکی از مهم ترین کار هایی است که این سیستم عامل انجام می‌ده چرا که اگر این استور وجود نداشت، شما شخصا باید فرایند کانفیگ و نصب سرویس ها را به عهده می‌گرفتید(این کار یک متخصص دواپس -هست، خیلی هم جالیه)</p> -<p><img src="https://bit-orbit.github.io/images/post/umbrelstore.jpg" - - - - loading="lazy" - - alt="umbrel store" - - -></p> -<hr> -<h3 id="umbrel-چه-نیازی-را-برطرف-میکند-">umbrel چه نیازی را برطرف می‌کند ؟</h3> -<p>وقتی از سرویس های تحت اینترنت استفاده می‌کنید، +هست، خیلی هم جالیه)</p> +<p><img src="https://bit-orbit.github.io/images/post/umbrelstore.jpg" +loading="lazy" +alt="umbrel store" +></p> +<hr> +<h3 id="umbrel-چه-نیازی-را-برطرف-میکند-">umbrel چه نیازی را برطرف می‌کند ؟ +</h3><p>وقتی از سرویس های تحت اینترنت استفاده می‌کنید، به احتمال زیاد شما کالای اون شرکتی هستید که ابزار را در اختیارتون قرار داده است. اگر دقت کنیم می‌بینیم که این شرکت ها بسیاری کاربر دارند و خب برای ارائه درست خدمت به کاربرانشون سرور های زیادی اجاره می‌کنند سرویس ها رو دائم اپدیت و بهتر می‌کنند -و خب سرویس های متعددی هم ارائه می‌کنند.</p> -<p>همه این کار ها نیاز به هزینه های زیادی دارند، +و خب سرویس های متعددی هم ارائه می‌کنند.</p> +<p>همه این کار ها نیاز به هزینه های زیادی دارند، بودجه این شرکت ها فقط و فقط با تبلیغات تامین نمی‌شود بلکه با فروش اطلاعات کاربرانشون(خود ما) به شرکت ها و دولت ها -تامین می‌شود.</p> -<p><img src="https://bit-orbit.github.io/images/post/zuker.jpg" - - - - loading="lazy" - - alt="zukerberg spying" - - -></p> -<p>و البته اگر حتی شما برای سرویسی که استفاده می‌کنید +تامین می‌شود.</p> +<p><img src="https://bit-orbit.github.io/images/post/zuker.jpg" +loading="lazy" +alt="zukerberg spying" +></p> +<p>و البته اگر حتی شما برای سرویسی که استفاده می‌کنید هزینه‌ای پرداخت کنید، مثلا برای استفاده از گوگل دایو ماهانه هزینه هم پرداخت کنید، باز هم مشکلاتی وجود دارد، مثلا قانونا گوگل مالک فایلی است که شما روی سرور هایش -آپلود می‌کنید.</p> -<p>در چنین مواقعی هست که اصطلاح +آپلود می‌کنید.</p> +<p>در چنین مواقعی هست که اصطلاح self-hosting سرویس ها استفاده می‌شود. به این معنی که سرویس هایی که شما روزانه از آن استفاده می‌کنید را خودتان راه اندازی -کنید. اما اینکار نیاز به دانش بالایی داره.</p> -<p>سیستم عامل +کنید. اما اینکار نیاز به دانش بالایی داره.</p> +<p>سیستم عامل umbrel این کار را ساده کرده است، با این تفاوت که قبلا شما باید برای استفاده چند ابزار روی یک سرور، باید سرور رو به درستی کانفیگ می‌کردین سپس ابزار ها را کانفیگ، و بعد سرویس ها راه اجرا می‌کردین. اما الان فقط با یک کلیک شما سرویس توییتر خود را -راه اندازی می‌کنید!</p> -<p><img src="https://bit-orbit.github.io/images/post/umbrelselfhosting.jpg" - - - - loading="lazy" - - alt="umbrel self hosting" - - -></p> -<hr> -<h3 id="umbrel-به-روی-سیستم-عامل-دسکتاپ">umbrel به روی سیستم عامل دسکتاپ</h3> -<p>نصب +راه اندازی می‌کنید!</p> +<p><img src="https://bit-orbit.github.io/images/post/umbrelselfhosting.jpg" +loading="lazy" +alt="umbrel self hosting" +></p> +<hr> +<h3 id="umbrel-به-روی-سیستم-عامل-دسکتاپ">umbrel به روی سیستم عامل دسکتاپ +</h3><p>نصب umbrel بسیاز سادهست فقط کافیه یک سیستم عامل debian رو روی سیستمتون داشته باشید، یک ترمینال باز کنید و کامند -نصب را بزنید، با یک کامند این سیستم نصب می‌شه.</p> -<p>ولی خب اگر سیستم عاملی ندارید که بر پایه +نصب را بزنید، با یک کامند این سیستم نصب می‌شه.</p> +<p>ولی خب اگر سیستم عاملی ندارید که بر پایه debain باشه، می‌شه به سادگی روی ماشین مجازی یک دبیان نصب کنید، حالت شبکه اون سیستم عامل رو @@ -406,10 +341,10 @@ IP debain که umbrel -را روی ان نصب کردین را وارد کنید و تمام!</p> -<hr> -<h3 id="umbrel-به-روی-رزبری-پای">umbrel به روی رزبری پای</h3> -<p>رزبری پای! یک سخت افزار کوچک که تقریبا یک کامپیوتر کامل +را روی ان نصب کردین را وارد کنید و تمام!</p> +<hr> +<h3 id="umbrel-به-روی-رزبری-پای">umbrel به روی رزبری پای +</h3><p>رزبری پای! یک سخت افزار کوچک که تقریبا یک کامپیوتر کامل است! البته که قدرت پردازش بالایی ندارد ولی در IOT استفاده زیادی دارد. با توجه به اینکه پردازنده های @@ -421,24 +356,18 @@ umbrel را نصب کرد، برای همین سیستم عامل umbrel یک نسخه مخصوص برای رزبری پای دارد، کافیست آن را دانلود و -به روی ربزی خود نصب کنید.</p> -<p>به این دقت کنید که خب سعنی کنید یک هارد اکسترنال به +به روی ربزی خود نصب کنید.</p> +<p>به این دقت کنید که خب سعنی کنید یک هارد اکسترنال به رزبری متصل کنید که فضای کافی برای سروریسی مانند next cloud -داشته باشید.</p> -<p><img src="https://bit-orbit.github.io/images/post/umbrelonressbery.jpg" - - - - loading="lazy" - - alt="umbrel on ressbery pi" - - -></p> -<hr> -<h3 id="umbrel-بروی-سرور-شخصی">umbrel بروی سرور شخصی</h3> -<p>به سادگی اچرای یک کامند! کافیست فقط سیستم عامل +داشته باشید.</p> +<p><img src="https://bit-orbit.github.io/images/post/umbrelonressbery.jpg" +loading="lazy" +alt="umbrel on ressbery pi" +></p> +<hr> +<h3 id="umbrel-بروی-سرور-شخصی">umbrel بروی سرور شخصی +</h3><p>به سادگی اچرای یک کامند! کافیست فقط سیستم عامل سرورتون debain و یا کلا بر پایه @@ -447,10 +376,10 @@ debian ubuntu باشه. کامند اجرا را وارد کنید و بعد از اتمام فرایند نصب، IP -سرور را وارد مرورگر کنید، تمام!</p> -<hr> -<h3 id="دستگاه-umbrel">دستگاه umbrel</h3> -<p>شرکت سازنده +سرور را وارد مرورگر کنید، تمام!</p> +<hr> +<h3 id="دستگاه-umbrel">دستگاه umbrel +</h3><p>شرکت سازنده umbrel به جز سیستم عامل، یک دستگاهی طراحی کرده است که به صورت پیشفرض سیستم عامل @@ -462,35 +391,29 @@ umbrel به روی rassbery PI استفاده می‌کنید، شما نیاز به یک فن دارید تا این دستگاه -را دائم خنک کند، از طرفی خود فن هم باید خنک شود.</p> -<p>اینجاست که این دستگاه رو برای شرکت یا خانه‌ شما مناسب‌تر -می‌کند(مطمئن باشید تبلیغ نمی‌کنم)</p> -<p><img src="https://bit-orbit.github.io/images/post/umbreldevice.jpg" - - - - loading="lazy" - - alt="umbrel device" - - -></p> -<hr> -<h3 id="umbrel-چطور-کار-میکند-">umbrel چطور کار می‌کند ؟</h3> -<p>اگه بخواهم کمی فنی‌تر وارد ماجرا بشم، همونطور که گفت +را دائم خنک کند، از طرفی خود فن هم باید خنک شود.</p> +<p>اینجاست که این دستگاه رو برای شرکت یا خانه‌ شما مناسب‌تر +می‌کند(مطمئن باشید تبلیغ نمی‌کنم)</p> +<p><img src="https://bit-orbit.github.io/images/post/umbreldevice.jpg" +loading="lazy" +alt="umbrel device" +></p> +<hr> +<h3 id="umbrel-چطور-کار-میکند-">umbrel چطور کار می‌کند ؟ +</h3><p>اگه بخواهم کمی فنی‌تر وارد ماجرا بشم، همونطور که گفت این سیستم عامل بهترین ویژگی که ارائه می‌کند store آن است. البته که اینجا store به معنی فروشگاه نیست، بلکه شبیه یک بازاری است که همه -اجناس‌ش رایگان است :)</p> -<p>سرویس های +اجناس‌ش رایگان است :)</p> +<p>سرویس های umbrel همه سرویس هایی هستند که به صورت منبع باز در اختیار همه قرار گرفته است، این سرویس ها برای اجرا شدن نیاز به شخصی دارد که دانش کافی از سرور داشته باشد و خب نحوه کانفیگ -کردن هر کدام از ابزار ها و سرویس ها را بداند.</p> -<p>دانلود و نصب هر سرویس به صورت جدگانه ممکن است به مشکلات +کردن هر کدام از ابزار ها و سرویس ها را بداند.</p> +<p>دانلود و نصب هر سرویس به صورت جدگانه ممکن است به مشکلات متعددی برخورد کند، مثلا در نصب سرویسی مثل nexcloud شما ممکن است نیاز به ورژن خاصی از @@ -499,11 +422,11 @@ php nginx برای اجرای اسکریپت های php -هم واقعا به اندازه زیادی دردسر دارد.</p> -<p>اینجاست که داکر وارد ماجرا می‌شود! +هم واقعا به اندازه زیادی دردسر دارد.</p> +<p>اینجاست که داکر وارد ماجرا می‌شود! umbrel -از قبل تمامی سرویس ها را داکرایز کرده است.</p> -<p>داکرایز به چه معنیست؟ +از قبل تمامی سرویس ها را داکرایز کرده است.</p> +<p>داکرایز به چه معنیست؟ درواقع به این فکر کنید که شما یک برنامه را می‌خواهید نصب کنید، این سرویس توسط سازنده آن از ورژن خاصی از زبان مشخصی، لایبراری و فایل هایی استفاده کرده است که پیشفرض @@ -514,8 +437,8 @@ image قرار داده است، و بعد کافیست شما آن فایل را به برنامه docker engine -بدهید، آن برنامه باید بدون هیچ مشکلی اجرا شود.</p> -<p>سیستم عامل +بدهید، آن برنامه باید بدون هیچ مشکلی اجرا شود.</p> +<p>سیستم عامل umbrel دقیقا چنین کاری می‌کند. تمامی image @@ -523,20 +446,14 @@ image store برای شما شما لیست می‌کند، شما کافیست که دکمه install -را بزنید، بنگ! سرویس شما آماده است :)</p> -<p><img src="https://bit-orbit.github.io/images/post/umbreldocker.jpg" - - - - loading="lazy" - - alt="umbrel dockeriz" - - -></p> -<hr> -<h3 id="امنیت">امنیت</h3> -<p>اگر +را بزنید، بنگ! سرویس شما آماده است :)</p> +<p><img src="https://bit-orbit.github.io/images/post/umbreldocker.jpg" +loading="lazy" +alt="umbrel dockeriz" +></p> +<hr> +<h3 id="امنیت">امنیت +</h3><p>اگر umbrel را به روی چیزی به جز سرور دارید، حتی اگر برای آن یک دامنه هم بگیرید، @@ -546,8 +463,8 @@ umbrel tor به آن متصل شوید و یا یک VPN -سرور داخل شبکه داخلی خود راه اندازی کنید.</p> -<p>البته +سرور داخل شبکه داخلی خود راه اندازی کنید.</p> +<p>البته umbrel به جز tor @@ -557,60 +474,54 @@ VPN tailscale که مستقیم به روی umbrel -نصب می‌شود.</p> -<p><img src="https://bit-orbit.github.io/images/post/tailscalaumbrel.jpg" - - - - loading="lazy" - - alt="tailscala umbrel" - - -></p> -<hr> -<h3 id="سرویس-های-کاربردی-umbrel">سرویس های کاربردی umbrel</h3> -<ul> -<li>matrix</li> -</ul> -<blockquote> -<p>خیلی ساده بگم، می‌تونید با این سرویس +نصب می‌شود.</p> +<p><img src="https://bit-orbit.github.io/images/post/tailscalaumbrel.jpg" +loading="lazy" +alt="tailscala umbrel" +></p> +<hr> +<h3 id="سرویس-های-کاربردی-umbrel">سرویس های کاربردی umbrel +</h3><ul> +<li>matrix</li> +</ul> +<blockquote> +<p>خیلی ساده بگم، می‌تونید با این سرویس telegtam خودتون رو راه اندازی کنید. برای اینکه بیشتر درباراه این سرویس بدونید، -<a class="link" href="https://www.wiregeek.ir/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/" target="_blank" rel="noopener" - >این پست</a> -من را بخوانید.</p> -</blockquote> -<ul> -<li>nextcloud</li> -</ul> -<blockquote> -<p>خیلی شبیه به گوگل درایو است، به جز نسخه وب +<a class="link" href="https://www.wiregeek.ir/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/" target="_blank" rel="noopener" +>این پست</a> +من را بخوانید.</p> +</blockquote> +<ul> +<li>nextcloud</li> +</ul> +<blockquote> +<p>خیلی شبیه به گوگل درایو است، به جز نسخه وب حتی یک اپ اندروید هم دارد که می‌توانید آدرس nextcloud را درون آن وارد کنید و از هرکحا به فضای خودتون دسترسی داشته باشید. و خب حتی بعنوان ادمین -برای افراد خانواده و یا شرکت‌تون اکانت بسازید، و فضای شخصی خودشان را در اختیارشان قرار بدین.</p> -</blockquote> -<ul> -<li>qbittorrent</li> -</ul> -<blockquote> -<p>اگر تورنت را می‌شناسید، قطعا این کلاینت معروف را هم باید +برای افراد خانواده و یا شرکت‌تون اکانت بسازید، و فضای شخصی خودشان را در اختیارشان قرار بدین.</p> +</blockquote> +<ul> +<li>qbittorrent</li> +</ul> +<blockquote> +<p>اگر تورنت را می‌شناسید، قطعا این کلاینت معروف را هم باید بشناسید، این کلاینت یک نسخه وب دارد که داخل فروشگاه umbrel قرار دارد. فایل های خود را برای دانلود به این کلاینت بدین و در زمانی که از اینرنت استفاده نمی‌کنید مثلا 2 تا 7 صبح -آن ها را بگذارید تا دانلود بشوند.</p> -</blockquote> -<ul> -<li>pi-hole</li> -</ul> -<blockquote> -<p>برای خلاص شدن از تبلیغات اینترنت کافیه این سرویس +آن ها را بگذارید تا دانلود بشوند.</p> +</blockquote> +<ul> +<li>pi-hole</li> +</ul> +<blockquote> +<p>برای خلاص شدن از تبلیغات اینترنت کافیه این سرویس DNS را به روی umbrel @@ -618,13 +529,13 @@ umbrel DHCP را تنظیم کنید که IP -این سرویس را به دیگر دستگاه های شبکه بدهد.</p> -</blockquote> -<ul> -<li>Jellyfin</li> -</ul> -<blockquote> -<p>یکی از نیاز های واقعا اساسی من، این سرویس است. +این سرویس را به دیگر دستگاه های شبکه بدهد.</p> +</blockquote> +<ul> +<li>Jellyfin</li> +</ul> +<blockquote> +<p>یکی از نیاز های واقعا اساسی من، این سرویس است. فیلم هایی که می‌بینم، و یا قرار است که ببینم‌شون رو می‌تونم با این سرویس به درستی دنبال کنم. در اصل این سرویس برای پخش کردن فیلم ها ساخته شده‌ است. @@ -634,69 +545,58 @@ jellyfin فیلم ها رو تماشا کنید، مثلا اگر تلویزیون هوشمند دارید کافیست از طریق مرورگر آن وارد umbrel -خود بشین.</p> -</blockquote> -<p>-snapdrop</p> -<blockquote> -<p>سرویس خیلی ساده‌ای است که برای انتقال فایل داخل -شبکه لوکال استفاده می‌شود.</p> -</blockquote> -<ul> -<li>whoogle search</li> -</ul> -<blockquote> -<p>البته +خود بشین.</p> +</blockquote> +<p>-snapdrop</p> +<blockquote> +<p>سرویس خیلی ساده‌ای است که برای انتقال فایل داخل +شبکه لوکال استفاده می‌شود.</p> +</blockquote> +<ul> +<li>whoogle search</li> +</ul> +<blockquote> +<p>البته whoogle یک موتور جست و جوی meta است، به این معنی که خودش وب را خزش نمی‌کند و از موتور های جست و جوی دیگر برای نتیجه جست و جوی شما استفاده -می‌کند.</p> -</blockquote> -<ul> -<li>LlamaGPT</li> -</ul> -<blockquote> -<p>چیزی شبیه +می‌کند.</p> +</blockquote> +<ul> +<li>LlamaGPT</li> +</ul> +<blockquote> +<p>چیزی شبیه ChatGPT -ولی افلاین و کاملا خصوصی.</p> -</blockquote> -<hr> -<h3 id="راه-اندازی-سرویس-های-شخصی">راه اندازی سرویس های شخصی</h3> -<p>خیلی از سرویس ها هنوز به +ولی افلاین و کاملا خصوصی.</p> +</blockquote> +<hr> +<h3 id="راه-اندازی-سرویس-های-شخصی">راه اندازی سرویس های شخصی +</h3><p>خیلی از سرویس ها هنوز به umbrel اضافه نشده. اضافه کردن سرویس به خود store -هم کار سختی نیستی، کافیه فقط داکرایز کردن رو بلد باشین.</p> -<ul> -<li>cache server</li> -</ul> -<p>کش سرور ها معمولا با +هم کار سختی نیستی، کافیه فقط داکرایز کردن رو بلد باشین.</p> +<ul> +<li>cache server</li> +</ul> +<p>کش سرور ها معمولا با transparent proxy بدون اینکه کاربران متوجه پروکسی بشوند پیاده سازی می‌شوند. -کار آنها کاهش مصرف ترافیک است.</p> -<p>یکی از سرویس هایی که خیلی از شرکت ها برای کاهش هزینه های +کار آنها کاهش مصرف ترافیک است.</p> +<p>یکی از سرویس هایی که خیلی از شرکت ها برای کاهش هزینه های اینرنت و یا خب برای بهبود سرعت اینترنت می‌کنند، ارائه cache server -هست.</p> -<p>خیلی خلاصه بگم کش سرور محتوایی که کاربران بازدید می‌کنند +هست.</p> +<p>خیلی خلاصه بگم کش سرور محتوایی که کاربران بازدید می‌کنند را درون خود برای مدتی و با شرایطی از پیش تعیین شده نگه ‌می‌دارد و هر بار که کاربران به محتوای قبلی درخواست بدهند، دیگر آن ریکوئست تا سایت اصلی نمی‌رود و خود -کش سرور که در شبکه داخلی است جواب آن را می‌دهد</p> -<p><img src="https://bit-orbit.github.io/images/post/cacheumber.jpg" - - - - loading="lazy" - - alt="cache server" - - -></p> -<hr> - - - - - +کش سرور که در شبکه داخلی است جواب آن را می‌دهد</p> +<p><img src="https://bit-orbit.github.io/images/post/cacheumber.jpg" +loading="lazy" +alt="cache server" +></p> +<hr> \ No newline at end of file diff --git a/docs/categories/cloud/page/1/index.html b/docs/categories/cloud/page/1/index.html index d3fe908..9de5407 100644 --- a/docs/categories/cloud/page/1/index.html +++ b/docs/categories/cloud/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/categories/cloud/ - - - - - - +https://bit-orbit.github.io/categories/cloud/ + \ No newline at end of file diff --git a/docs/categories/index.html b/docs/categories/index.html index 1facd4b..359fa05 100644 --- a/docs/categories/index.html +++ b/docs/categories/index.html @@ -1,616 +1,39 @@ - - - - -Categories - - - - - - - - - - - - - - - -
- - - - -
-
-

- - بخش - -

- -
-
-

11 صفحه

-

Categories

- -
-
-
- -
- - - - - - - - - - - -
- - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Categories +

بخش

11 صفحه

Categories

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git a/docs/categories/index.xml b/docs/categories/index.xml index f2e25e1..d6a24bb 100644 --- a/docs/categories/index.xml +++ b/docs/categories/index.xml @@ -1,99 +1 @@ - - - - Categories on bit-orbit - https://bit-orbit.github.io/categories/ - Recent content in Categories on bit-orbit - Hugo -- gohugo.io - fa - Thu, 01 Aug 2024 03:03:46 +0330 - Linux - https://bit-orbit.github.io/categories/linux/ - Thu, 01 Aug 2024 03:03:46 +0330 - - https://bit-orbit.github.io/categories/linux/ - - - - Network - https://bit-orbit.github.io/categories/network/ - Thu, 01 Aug 2024 03:03:46 +0330 - - https://bit-orbit.github.io/categories/network/ - - - - Programming - https://bit-orbit.github.io/categories/programming/ - Sat, 27 Jul 2024 18:27:21 +0330 - - https://bit-orbit.github.io/categories/programming/ - - - - Projects - https://bit-orbit.github.io/categories/projects/ - Wed, 06 Mar 2024 23:50:46 +0330 - - https://bit-orbit.github.io/categories/projects/ - - - - Python - https://bit-orbit.github.io/categories/python/ - Wed, 06 Mar 2024 23:50:46 +0330 - - https://bit-orbit.github.io/categories/python/ - - - - Terminal - https://bit-orbit.github.io/categories/terminal/ - Wed, 06 Mar 2024 23:50:46 +0330 - - https://bit-orbit.github.io/categories/terminal/ - - - - Tech - https://bit-orbit.github.io/categories/tech/ - Fri, 09 Feb 2024 01:49:42 +0330 - - https://bit-orbit.github.io/categories/tech/ - - - - Rust - https://bit-orbit.github.io/categories/rust/ - Wed, 03 Jan 2024 01:30:52 +0330 - - https://bit-orbit.github.io/categories/rust/ - - - - Cloud - https://bit-orbit.github.io/categories/cloud/ - Mon, 18 Dec 2023 00:08:38 +0330 - - https://bit-orbit.github.io/categories/cloud/ - - - - Software Engineering - https://bit-orbit.github.io/categories/software-engineering/ - Fri, 03 Nov 2023 00:21:46 +0330 - - https://bit-orbit.github.io/categories/software-engineering/ - - - - Movie - https://bit-orbit.github.io/categories/movie/ - Sat, 24 Jun 2023 22:02:35 +0330 - - https://bit-orbit.github.io/categories/movie/ - - - - - +Categories on bit-orbithttps://bit-orbit.github.io/categories/Recent content in Categories on bit-orbitHugo -- gohugo.iofaThu, 01 Aug 2024 03:03:46 +0330Linuxhttps://bit-orbit.github.io/categories/linux/Thu, 01 Aug 2024 03:03:46 +0330https://bit-orbit.github.io/categories/linux/Networkhttps://bit-orbit.github.io/categories/network/Thu, 01 Aug 2024 03:03:46 +0330https://bit-orbit.github.io/categories/network/Programminghttps://bit-orbit.github.io/categories/programming/Sat, 27 Jul 2024 18:27:21 +0330https://bit-orbit.github.io/categories/programming/Projectshttps://bit-orbit.github.io/categories/projects/Wed, 06 Mar 2024 23:50:46 +0330https://bit-orbit.github.io/categories/projects/Pythonhttps://bit-orbit.github.io/categories/python/Wed, 06 Mar 2024 23:50:46 +0330https://bit-orbit.github.io/categories/python/Terminalhttps://bit-orbit.github.io/categories/terminal/Wed, 06 Mar 2024 23:50:46 +0330https://bit-orbit.github.io/categories/terminal/Techhttps://bit-orbit.github.io/categories/tech/Fri, 09 Feb 2024 01:49:42 +0330https://bit-orbit.github.io/categories/tech/Rusthttps://bit-orbit.github.io/categories/rust/Wed, 03 Jan 2024 01:30:52 +0330https://bit-orbit.github.io/categories/rust/Cloudhttps://bit-orbit.github.io/categories/cloud/Mon, 18 Dec 2023 00:08:38 +0330https://bit-orbit.github.io/categories/cloud/Software Engineeringhttps://bit-orbit.github.io/categories/software-engineering/Fri, 03 Nov 2023 00:21:46 +0330https://bit-orbit.github.io/categories/software-engineering/Moviehttps://bit-orbit.github.io/categories/movie/Sat, 24 Jun 2023 22:02:35 +0330https://bit-orbit.github.io/categories/movie/ \ No newline at end of file diff --git a/docs/categories/linux/index.html b/docs/categories/linux/index.html index 327d1db..6529667 100644 --- a/docs/categories/linux/index.html +++ b/docs/categories/linux/index.html @@ -1,610 +1,37 @@ - - - - -Category: Linux - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Categories - -

- -
-
-

4 صفحه

-

Linux

- -
-
-
- -
- - - - - - - - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Category: Linux - bit-orbit +

Categories

4 صفحه

Linux

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git a/docs/categories/linux/index.xml b/docs/categories/linux/index.xml index 2a8c7f7..ec6fd66 100644 --- a/docs/categories/linux/index.xml +++ b/docs/categories/linux/index.xml @@ -1,32 +1,18 @@ - - - - Linux on bit-orbit - https://bit-orbit.github.io/categories/linux/ - Recent content in Linux on bit-orbit - Hugo -- gohugo.io - fa - Thu, 01 Aug 2024 03:03:46 +0330 - etc/resolve.conf/ - https://bit-orbit.github.io/p/etc/resolve.conf/ - Thu, 01 Aug 2024 03:03:46 +0330 - - https://bit-orbit.github.io/p/etc/resolve.conf/ - <img src="https://bit-orbit.github.io/images/post/OIG4.jpeg" alt="Featured image of post etc/resolve.conf/" /><span style='font-size: 25px'> -<h3 id="مقدمه">مقدمه</h3> -<p>همیشه موقع ویرایش فایل -<em>resolve.conf</em> +Linux on bit-orbithttps://bit-orbit.github.io/categories/linux/Recent content in Linux on bit-orbitHugo -- gohugo.iofaThu, 01 Aug 2024 03:03:46 +0330etc/resolve.conf/https://bit-orbit.github.io/p/etc/resolve.conf/Thu, 01 Aug 2024 03:03:46 +0330https://bit-orbit.github.io/p/etc/resolve.conf/<img src="https://bit-orbit.github.io/images/post/OIG4.jpeg" alt="Featured image of post etc/resolve.conf/" /><span style='font-size: 25px'> +<h3 id="مقدمه">مقدمه +</h3><p>همیشه موقع ویرایش فایل +<em>resolve.conf</em> برام سوال بود که گزین های دیگه‌ای که توی این فایل تنظیم شده‌اند چکاری انجام می‌دهند. درواقع من همیشه دستور -<code>namveserver</code> +<code>namveserver</code> را برای تغییر سرور -<em>dns</em> +<em>dns</em> ویرایش می‌کردم. اما دستور هایی دیگه‌ای هم برای این فایل وجود دارد که لیست آنها در -<code>man resolve.conf</code> -توضیح داده شده است.</p> -<p>توی این پست من بعضی از دستورات این فایل را توضیح می‌دم.</p> -<blockquote> -<p>در مرحله اول یادتون باشه لینوکس هایی که +<code>man resolve.conf</code> +توضیح داده شده است.</p> +<p>توی این پست من بعضی از دستورات این فایل را توضیح می‌دم.</p> +<blockquote> +<p>در مرحله اول یادتون باشه لینوکس هایی که systemd دارند، معمولا از سرویس systemd-resolved @@ -36,48 +22,48 @@ DNS resolve می‌کند و سپس آنها را کش می‌کند که یک دامنه را چندین بار resolve -نکند.</p> -</blockquote> -<blockquote> -<p>یک دامنه حد اقل از <em>دو</em> بخش تشکیل می‌شود.</p> -<ol> -<li>TLD</li> -<li>Domain</li> -</ol> -</blockquote> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span><span class="lnt">3 -</span><span class="lnt">4 -</span><span class="lnt">5 -</span><span class="lnt">6 -</span><span class="lnt">7 -</span><span class="lnt">8 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">bin.example.com -</span></span><span class="line"><span class="cl">│ │ │ -</span></span><span class="line"><span class="cl">│ │ └─► TDL(Top Level Domain) -</span></span><span class="line"><span class="cl">│ │ -</span></span><span class="line"><span class="cl">│ └───────► Domain -</span></span><span class="line"><span class="cl">│ -</span></span><span class="line"><span class="cl">└─────────────► SubDomain -</span></span><span class="line"><span class="cl"> -</span></span></code></pre></td></tr></table> -</div> -</div><hr> -<h3 id="دستورات">دستورات</h3> -<ul> -<li> -<p>1 <code>nameserver</code></p> -<p>این دستور برای تعیین +نکند.</p> +</blockquote> +<blockquote> +<p>یک دامنه حد اقل از <em>دو</em> بخش تشکیل می‌شود.</p> +<ol> +<li>TLD</li> +<li>Domain</li> +</ol> +</blockquote> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span><span class="lnt">8 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">bin.example.com +</span></span><span class="line"><span class="cl">│ │ │ +</span></span><span class="line"><span class="cl">│ │ └─► TDL(Top Level Domain) +</span></span><span class="line"><span class="cl">│ │ +</span></span><span class="line"><span class="cl">│ └───────► Domain +</span></span><span class="line"><span class="cl">│ +</span></span><span class="line"><span class="cl">└─────────────► SubDomain +</span></span><span class="line"><span class="cl"> +</span></span></code></pre></td></tr></table> +</div> +</div><hr> +<h3 id="دستورات">دستورات +</h3><ul> +<li> +<p>1 <code>nameserver</code></p> +<p>این دستور برای تعیین IP یک سرور DNS -استفاده می‌شود.(در واقع اینجا منظورم یک سرویسی است که به نامه دامنه ها پاسخ دهد که به آن NS می‌گویم.)</p> -<p>شما می‌توانید تا حداقل سه +استفاده می‌شود.(در واقع اینجا منظورم یک سرویسی است که به نامه دامنه ها پاسخ دهد که به آن NS می‌گویم.)</p> +<p>شما می‌توانید تا حداقل سه IP لیست کنید، و resolver @@ -86,68 +72,68 @@ resolver NS جواب گو نباشد، از دیگر NS -های لیست شده استفاده خواهد شد.</p> -<p>اگر به همین ترتیب هر یک از +های لیست شده استفاده خواهد شد.</p> +<p>اگر به همین ترتیب هر یک از NS -ها جوابگو نباشد، کوئری ها از اول شروع می‌شود تا به حداکثر تعداد کوئری تعیین شده برسد.</p> -<p>برای مثال من می‌توانم چند +ها جوابگو نباشد، کوئری ها از اول شروع می‌شود تا به حداکثر تعداد کوئری تعیین شده برسد.</p> +<p>برای مثال من می‌توانم چند NS -مختلف را برای خودم تعیین کنم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">nameserver 1.1.1.1 -</span></span><span class="line"><span class="cl">nameserver 8.8.8.8 -</span></span></code></pre></td></tr></table> -</div> -</div></li> -</ul> -<hr> -<ul> -<li> -<p>2 <code>options</code></p> -<p>برای این دستور متغیر های مختلفی را می‌توان تعیین کرد.</p> -<ul> -<li> -<p>2.1 <code>ndots</code></p> -<ul> -<li> -<p>حداقل هر دامنه‌ای در سطح اینترنت یک نقطه دارد، برای مثال +مختلف را برای خودم تعیین کنم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">nameserver 1.1.1.1 +</span></span><span class="line"><span class="cl">nameserver 8.8.8.8 +</span></span></code></pre></td></tr></table> +</div> +</div></li> +</ul> +<hr> +<ul> +<li> +<p>2 <code>options</code></p> +<p>برای این دستور متغیر های مختلفی را می‌توان تعیین کرد.</p> +<ul> +<li> +<p>2.1 <code>ndots</code></p> +<ul> +<li> +<p>حداقل هر دامنه‌ای در سطح اینترنت یک نقطه دارد، برای مثال google.com یک نقطه دارد. شما می‌توانید با این متغیر تعین کنید که دامنه‌های در سطح اینترنت باید چند نقطه داشته باشند، هر نقطه نشانه ساب دامنه‌ است. -برای مثال به صورت پیشفرض این متغیر <em>1</em> تنظیم شده است. +برای مثال به صورت پیشفرض این متغیر <em>1</em> تنظیم شده است. به این معنی است که هر دامنه‌ای یک نقطه داشت، این دامنه در سطح اینترنت است. ولی اگر شما مقدار این متغیر را 2 تنظیم کنید، دامنه‌ای مثل -<code>google.com</code> +<code>google.com</code> بعنوان دامنه لوکال تشخیص داده خواهد شد و -<code>hostname</code> +<code>hostname</code> شما به اول دامنه اضافه خواهد شد. مثلا اگر -<code>hostname</code> +<code>hostname</code> شما -<code>arya</code> +<code>arya</code> باشد، دامنه به این شکل کوئری زده خواهد شد -<code>google.com.arya</code></p> -<p>در صورتی که شما برای جست و جوی یک دامنه از هیچ -<strong>TLD</strong> +<code>google.com.arya</code></p> +<p>در صورتی که شما برای جست و جوی یک دامنه از هیچ +<strong>TLD</strong> استفاده نکید، از -<code>hostname</code> +<code>hostname</code> و یا از مقداری که برای -<code>search</code> -مشخص کرده‌اید استفاده خواهد شد.</p> -</li> -</ul> -</li> -<li> -<p>2.2 <code>timeout</code></p> -<ul> -<li>این متغیر تعیین می‌کند که +<code>search</code> +مشخص کرده‌اید استفاده خواهد شد.</p> +</li> +</ul> +</li> +<li> +<p>2.2 <code>timeout</code></p> +<ul> +<li>این متغیر تعیین می‌کند که resolver چه مقدار زمانی باید منتظر جواب از سمت NS @@ -155,19 +141,19 @@ NS NS جواب نداد، از NS -های بعدی سوال کند.</li> -</ul> -</li> -<li> -<p>2.3 <code>attempts</code></p> -<ul> -<li>این متغیر تعین می‌کند که +های بعدی سوال کند.</li> +</ul> +</li> +<li> +<p>2.3 <code>attempts</code></p> +<ul> +<li>این متغیر تعین می‌کند که resolver در صورت جواب ندادن توسط NS -باید در نهایت چند کوئری دیگر ارسال کند.</li> -</ul> -<p>برای مثال اگر اولین +باید در نهایت چند کوئری دیگر ارسال کند.</li> +</ul> +<p>برای مثال اگر اولین NS پاسخ نداد، سوال از NS @@ -178,12 +164,12 @@ attempts attempts مجوع سوال ها از همه NS -ها است.)</p> -</li> -<li> -<p>2.4 <code>rotate</code></p> -<ul> -<li>به صورت پیشفرض کوئری های +ها است.)</p> +</li> +<li> +<p>2.4 <code>rotate</code></p> +<ul> +<li>به صورت پیشفرض کوئری های DNS همه برای اولین NS @@ -194,50 +180,50 @@ NS ها تقسیم کنیم، کافیست از این متغیر استفاده کنیم. اینکار باعث می‌شود که هر کوئری ها به صورت چرخشی به ترتیب به NS -های لیست شده ارسال شود.</li> -</ul> -</li> -</ul> -</li> -</ul> -<hr> -<ul> -<li>3 <code>search</code> +های لیست شده ارسال شود.</li> +</ul> +</li> +</ul> +</li> +</ul> +<hr> +<ul> +<li>3 <code>search</code> همانطور که در مثال بالا گفتم، ما نام دامنه ها را تنظیم می‌کنیم که حداقل وقتی یک نقطه دارند، resolver آنها را دامنه‌ در سطح اینترنت در نظر بگیرد و به NS کوئری بزند. ولی اگر هیچ نقطه‌ای نداشت و یا شما -<code>ndots</code> +<code>ndots</code> را بیشتر یا مساوی با 2 نتظیم کرده باشید، -<code>hostname</code> +<code>hostname</code> سیستم شما به آخر آن دامنه اضافه خواهد شد و یک دامنه داخلی (local) تلقی خواهد شد. اما اگر می‌خواهید قبل از اضافه شدن -<code>hostname</code> -به آن چیز دیگری اضافه کنید، کافیست متغیر سرچ را تعریف کنید و یک یا چند مقدار برای آن تعیین کنید.</li> -</ul> -<hr> -<h3 id="سرویس-systemd-resolve">سرویس systemd-resolve</h3> -<p>اگر به فایل +<code>hostname</code> +به آن چیز دیگری اضافه کنید، کافیست متغیر سرچ را تعریف کنید و یک یا چند مقدار برای آن تعیین کنید.</li> +</ul> +<hr> +<h3 id="سرویس-systemd-resolve">سرویس systemd-resolve +</h3><p>اگر به فایل /etc/resolve.conf نگاه کنید، می‌بینید که یک ns برای شما تنظیم شده است که IP -آن داخلی است.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl"># cat /etc/resolve.conf -</span></span><span class="line"><span class="cl">nameserver 127.0.0.53 -</span></span></code></pre></td></tr></table> -</div> -</div><p>همانطور که توی نکته‌ای در مقدمه این پست گفتم، +آن داخلی است.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl"># cat /etc/resolve.conf +</span></span><span class="line"><span class="cl">nameserver 127.0.0.53 +</span></span></code></pre></td></tr></table> +</div> +</div><p>همانطور که توی نکته‌ای در مقدمه این پست گفتم، سیستم عاملی هایی که از systemd استفاده می‌کنند معمولا سرویس @@ -249,262 +235,239 @@ IP 127.0.0.53 و 127.0.0.54 -شنود می‌کند.</p> -<p>این سرویس خودش یک کانفیگ در -<code>etc/ststemd/resolved.conf/</code> -دارد.</p> -<p>اگر داخل این فایل را نگاه کنیم، می‌بنیم که در قسمت +شنود می‌کند.</p> +<p>این سرویس خودش یک کانفیگ در +<code>etc/ststemd/resolved.conf/</code> +دارد.</p> +<p>اگر داخل این فایل را نگاه کنیم، می‌بنیم که در قسمت ‌DNS می‌توان NS های بالاتر را وارد کرد، اینکار باعث می‌شود که سیستم شما وقتی یک دامنه را در حافظه کش خود نداشت، از NS -های بالاتر که در این فایل تنظیم شده است سوال کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">[Resolve] -</span></span><span class="line"><span class="cl">DNS=1.1.1.1 8.8.8.8 -</span></span></code></pre></td></tr></table> -</div> -</div><p>ابته تاکید کنم در صورتی از این +های بالاتر که در این فایل تنظیم شده است سوال کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">[Resolve] +</span></span><span class="line"><span class="cl">DNS=1.1.1.1 8.8.8.8 +</span></span></code></pre></td></tr></table> +</div> +</div><p>ابته تاکید کنم در صورتی از این NS ها استفاده می‌شود که شما ‌از 127.0.0.53 و 127.0.0.54 در کانفیگ /etc/resolve.conf -استفاده کرده باشید.</p> -<blockquote> -<p>تفاوت 127.0.0.54 این است که هر کوئری را مستقیم به +استفاده کرده باشید.</p> +<blockquote> +<p>تفاوت 127.0.0.54 این است که هر کوئری را مستقیم به NS بالاتر ارسال خواهد کرد و از دیتای کش شده استفاده نمی‌کند. -ولی 127.0.0.53 از قابلیت کش استفاده می‌کند.</p> -</blockquote> -<hr> -<h3 id="مثال">مثال</h3> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt">10 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">nameserver 1.1.1.1 -</span></span><span class="line"><span class="cl">nameserver 8.8.8.8 -</span></span><span class="line"><span class="cl">nameserver 9.9.9.9 -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">options ndots:1 -</span></span><span class="line"><span class="cl">options timeout:2 -</span></span><span class="line"><span class="cl">options attempts:3 -</span></span><span class="line"><span class="cl">options rotate -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">search server1 server2 -</span></span></code></pre></td></tr></table> -</div> -</div><hr> -<h3 id="سخنی-با-شما">سخنی با شما</h3> -<p>این را بگم که +ولی 127.0.0.53 از قابلیت کش استفاده می‌کند.</p> +</blockquote> +<hr> +<h3 id="مثال">مثال +</h3><div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">nameserver 1.1.1.1 +</span></span><span class="line"><span class="cl">nameserver 8.8.8.8 +</span></span><span class="line"><span class="cl">nameserver 9.9.9.9 +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">options ndots:1 +</span></span><span class="line"><span class="cl">options timeout:2 +</span></span><span class="line"><span class="cl">options attempts:3 +</span></span><span class="line"><span class="cl">options rotate +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">search server1 server2 +</span></span></code></pre></td></tr></table> +</div> +</div><hr> +<h3 id="سخنی-با-شما">سخنی با شما +</h3><p>این را بگم که DNS به صورت recursive(بازگشتی) عمل می‌کنه، این یعنی وقتی شما یک کوئری ارسال می‌کنید، این کوئری هر بار به یک سرور بالاتر ارسال می‌شود تا در نهایت به جواب برسه. و خب این موضوع خودش در نهایت یک جریان -خیلی جالب داره که امیدوارم یک روز اون رو هم بنویسم :)</p> -</span> - - - Linux File Locking چیست؟ - https://bit-orbit.github.io/p/linux-file-locking-%DA%86%DB%8C%D8%B3%D8%AA/ - Fri, 09 Feb 2024 01:49:42 +0330 - - https://bit-orbit.github.io/p/linux-file-locking-%DA%86%DB%8C%D8%B3%D8%AA/ - <img src="https://bit-orbit.github.io/images/post/flilock.jpeg" alt="Featured image of post Linux File Locking چیست؟" /><p>بیایید قبل از اینکه راه حل را ببینیم، اول مشکل را دقیق تر برسی کنیم. +خیلی جالب داره که امیدوارم یک روز اون رو هم بنویسم :)</p> +</span>Linux File Locking چیست؟https://bit-orbit.github.io/p/linux-file-locking-%DA%86%DB%8C%D8%B3%D8%AA/Fri, 09 Feb 2024 01:49:42 +0330https://bit-orbit.github.io/p/linux-file-locking-%DA%86%DB%8C%D8%B3%D8%AA/<img src="https://bit-orbit.github.io/images/post/flilock.jpeg" alt="Featured image of post Linux File Locking چیست؟" /><p>بیایید قبل از اینکه راه حل را ببینیم، اول مشکل را دقیق تر برسی کنیم. به این فکر کنید که شما یک فایلی دارید که شامل یک عدد است که اشاره می‌کند به مقدار اعتباری که کاربر در حسابش دارد. حالا اگر قرار باشد یک پورسه اون مقدار را بر اساس ارائه سرویسی، از حساب کاربر کم کند، و پروسه دیگری به دلیل افزایش اعتبار، مقداری را به حساب -کاربر اضافه کند، چه مشکلاتی اتفاق می‌افتد؟</p> -<p>برای اینکه دقیق تر بشیم، این روند رو باهم پیش می‌بریم. +کاربر اضافه کند، چه مشکلاتی اتفاق می‌افتد؟</p> +<p>برای اینکه دقیق تر بشیم، این روند رو باهم پیش می‌بریم. فرض کنید فایلی به اسم amount.txt مقدار 100 داخلش نوشته شده است. و دو پروسه کم و اضافه کردن را اجرا می‌کنیم. توی این مثال،‌ ما می‌خواهیم مقدار 20 از حساب کاربر کم و مقدار 50 به حساب کاربر -اضافه کنیم، پس ما انتظار داریم در انتها فایل ما مقدار 130 را درونش ذخیره کرده باشد.</p> -<ul> -<li>پروسه اول فایل را می‌خواند و مقدار 100 را در حاظه‌اش نگه می‌دارد</li> -<li>پروسه دوم فایل را می‌خواند و مقدار 100 را در حاظه‌اش نگه می‌دارد</li> -<li>پروسه اول مقدار 20 را از 100 کم می‌کند و مقدار 80 را در حافظه ذخیره می‌کند</li> -<li>پروسه دوم مقدار 50 را به 100 اضافه می‌کند و مقدار 150 را در حافظه ذخیره می‌کند</li> -<li>پروسه اول مقدار 80 را در فایل ذخیره می‌کند</li> -<li>پروسه دوم مقدار 150 را در فایل ذخیره می‌کند</li> -</ul> -<p>همینطور که همه ما انتظار داشتیم، ما باید در این فایل مقدار 130 را ذخیره می‌کردیم، +اضافه کنیم، پس ما انتظار داریم در انتها فایل ما مقدار 130 را درونش ذخیره کرده باشد.</p> +<ul> +<li>پروسه اول فایل را می‌خواند و مقدار 100 را در حاظه‌اش نگه می‌دارد</li> +<li>پروسه دوم فایل را می‌خواند و مقدار 100 را در حاظه‌اش نگه می‌دارد</li> +<li>پروسه اول مقدار 20 را از 100 کم می‌کند و مقدار 80 را در حافظه ذخیره می‌کند</li> +<li>پروسه دوم مقدار 50 را به 100 اضافه می‌کند و مقدار 150 را در حافظه ذخیره می‌کند</li> +<li>پروسه اول مقدار 80 را در فایل ذخیره می‌کند</li> +<li>پروسه دوم مقدار 150 را در فایل ذخیره می‌کند</li> +</ul> +<p>همینطور که همه ما انتظار داشتیم، ما باید در این فایل مقدار 130 را ذخیره می‌کردیم، اما پروسه های ما به دلیل اینکه هیچ همکاری و یا هیچ مکانیزمی دیگری ندارند که این مقدار ها را به یکدیگر اطلاع دهند، مشکل -<a class="link" href="https://en.wikipedia.org/wiki/Race_condition#Software" target="_blank" rel="noopener" - >Race condition</a> -رخ می‌دهد.</p> -<p>یکی از راه حل های این مشکل +<a class="link" href="https://en.wikipedia.org/wiki/Race_condition#Software" target="_blank" rel="noopener" +>Race condition</a> +رخ می‌دهد.</p> +<p>یکی از راه حل های این مشکل lock کردن فایل توسط هر پروسه است، که به این کار file locking -گفته می‌شود.</p> -<p><strong>file locking</strong> -یک مکانیزم برای کنترل دسترسی چندین پروسه به یک فایل است.</p> -<blockquote> -<p>توی لینوکس یکی از دستورات خطرناکی که داریم دستور +گفته می‌شود.</p> +<p><strong>file locking</strong> +یک مکانیزم برای کنترل دسترسی چندین پروسه به یک فایل است.</p> +<blockquote> +<p>توی لینوکس یکی از دستورات خطرناکی که داریم دستور sudo rm -rf / است. وقتی این دستور را اجرا کنیم کل فایل های لینوکس ما حذف می‌شود. دلیل اینکار این است که لینوکس به صورت پیشفرض فایل های باز شده را lock -نمی‌کند.</p> -</blockquote> -<p>با اینحال لینوکس دو مکانیزم مختلف -<em>advisory</em> و <em>mandatory</em> -را پشتیبانی می‌کند.</p> -<blockquote> -<p>توی این پست بیشتر تمرکز من روی مکانیزم +نمی‌کند.</p> +</blockquote> +<p>با اینحال لینوکس دو مکانیزم مختلف +<em>advisory</em> و <em>mandatory</em> +را پشتیبانی می‌کند.</p> +<blockquote> +<p>توی این پست بیشتر تمرکز من روی مکانیزم advisory locking(مشورتی) -است.</p> -</blockquote> -<p>این روش به این شکل عمل می‌کند که هیچ پروسه‌ای مجبور به اجرای این روش نیست و اگر حتی +است.</p> +</blockquote> +<p>این روش به این شکل عمل می‌کند که هیچ پروسه‌ای مجبور به اجرای این روش نیست و اگر حتی فایل توسط یک پروسه‌ای lock شده باشد، باز هم پروسه های دیگر می‌توانند به lock بودن فایل اهمیت ندهند و مقدار آن را تغییر دهند. این اتفاق به این دلیل می‌افتد که advisory lock -توسط سیستم عامل و یا فایل سیستم انجام نمی‌شود.</p> -<p>خب بیایید با یک مثال این فرایند را برسی کنیم. مثل مثال قبلی فرض کنید ما مقدار 100 +توسط سیستم عامل و یا فایل سیستم انجام نمی‌شود.</p> +<p>خب بیایید با یک مثال این فرایند را برسی کنیم. مثل مثال قبلی فرض کنید ما مقدار 100 را داخل فایل amount.txt -داریم و می‌خواهیم مقدار 20 از آن کم و مقدار 50 به آن اضافه کنیم.</p> -<ul> -<li>پروسه اول قبل از خواندن فایل، فایل را لاک می‌کند</li> -<li>پروسه دوم برای لاک کردن فایل اقدام می‌کند و از جایی که پروسه اول از پیش فایل را لاک کرده است، برای آزاد شدن لاک صبر می‌کند</li> -<li>پروسه اول مقدار 20 را از 100 کم می‌کند و مقدار 80 را درون فایل می‌نویسد</li> -<li>پروسه اول لاک فایل را آزاد می‌کند.</li> -<li>پروسه دوم فایل را لاک و مقدار جدید 80 را از فایل می‌خواند</li> -<li>پروسه دوم مقدار 50 را به 80 اضافه و مقدار 120 را درون فایل می‌نویسد</li> -<li>پروسه دوم لاک فایل را آزاد می‌کند تا پروسه های دیگر بتوانند با فایل کار کنند.</li> -</ul> -<hr> -<p>اگر شما می‌خواهید این مکانیزم را روی یک فایل اجرا کنید، دستور +داریم و می‌خواهیم مقدار 20 از آن کم و مقدار 50 به آن اضافه کنیم.</p> +<ul> +<li>پروسه اول قبل از خواندن فایل، فایل را لاک می‌کند</li> +<li>پروسه دوم برای لاک کردن فایل اقدام می‌کند و از جایی که پروسه اول از پیش فایل را لاک کرده است، برای آزاد شدن لاک صبر می‌کند</li> +<li>پروسه اول مقدار 20 را از 100 کم می‌کند و مقدار 80 را درون فایل می‌نویسد</li> +<li>پروسه اول لاک فایل را آزاد می‌کند.</li> +<li>پروسه دوم فایل را لاک و مقدار جدید 80 را از فایل می‌خواند</li> +<li>پروسه دوم مقدار 50 را به 80 اضافه و مقدار 120 را درون فایل می‌نویسد</li> +<li>پروسه دوم لاک فایل را آزاد می‌کند تا پروسه های دیگر بتوانند با فایل کار کنند.</li> +</ul> +<hr> +<p>اگر شما می‌خواهید این مکانیزم را روی یک فایل اجرا کنید، دستور flock -برای شما اینکار را خواهد کرد.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">flock <span class="o">[</span>options<span class="o">]</span> file<span class="p">|</span>directory <span class="nb">command</span> <span class="o">[</span>arguments<span class="o">]</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>این کامند در حالت عادی از شما یک فایل و یک دستور خواهد گرفت و مکانیزم +برای شما اینکار را خواهد کرد.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">flock <span class="o">[</span>options<span class="o">]</span> file<span class="p">|</span>directory <span class="nb">command</span> <span class="o">[</span>arguments<span class="o">]</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>این کامند در حالت عادی از شما یک فایل و یک دستور خواهد گرفت و مکانیزم advisory lock -را روی ان فایل اجرا خواهد کرد.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">flock /tmp/fli <span class="nb">echo</span> 12&gt;/tmp/fli -</span></span></code></pre></td></tr></table> -</div> -</div><p>برای اینکه روند را بهتر درک کنیم یک فایل +را روی ان فایل اجرا خواهد کرد.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">flock /tmp/fli <span class="nb">echo</span> 12&gt;/tmp/fli +</span></span></code></pre></td></tr></table> +</div> +</div><p>برای اینکه روند را بهتر درک کنیم یک فایل bash -می‌نویسیم که بتوانیم مثال اولیه را روی آن اجرا کنیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt">10 -</span><span class="lnt">11 -</span><span class="lnt">12 -</span><span class="lnt">13 -</span><span class="lnt">14 -</span><span class="lnt">15 -</span><span class="lnt">16 -</span><span class="lnt">17 -</span><span class="lnt">18 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="cp">#!/bin/bash -</span></span></span><span class="line"><span class="cl"><span class="cp"></span><span class="nv">file</span><span class="o">=</span><span class="s2">&#34;balance.dat&#34;</span> -</span></span><span class="line"><span class="cl"><span class="nv">value</span><span class="o">=</span><span class="k">$(</span>cat <span class="nv">$file</span><span class="k">)</span> -</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Read current balance:</span><span class="nv">$value</span><span class="s2">&#34;</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl"><span class="c1">#sleep 10 seconds to simulate business calculation</span> -</span></span><span class="line"><span class="cl"><span class="nv">progress</span><span class="o">=</span><span class="m">10</span> -</span></span><span class="line"><span class="cl"><span class="k">while</span> <span class="o">[[</span> <span class="nv">$progress</span> -lt <span class="m">101</span> <span class="o">]]</span><span class="p">;</span> <span class="k">do</span> -</span></span><span class="line"><span class="cl"> <span class="nb">echo</span> -n -e <span class="s2">&#34;\033[77DCalculating new balance..</span><span class="nv">$progress</span><span class="s2">%&#34;</span> -</span></span><span class="line"><span class="cl"> sleep <span class="m">1</span> -</span></span><span class="line"><span class="cl"> <span class="nv">progress</span><span class="o">=</span><span class="k">$((</span><span class="m">10</span><span class="o">+</span>progress<span class="k">))</span> -</span></span><span class="line"><span class="cl"><span class="k">done</span> -</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;&#34;</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl"><span class="nv">value</span><span class="o">=</span><span class="k">$((</span>value+<span class="nv">$1</span><span class="k">))</span> -</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Write new balance (</span><span class="nv">$value</span><span class="s2">) back to </span><span class="nv">$file</span><span class="s2">.&#34;</span> -</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="nv">$value</span> &gt; <span class="s2">&#34;</span><span class="nv">$file</span><span class="s2">&#34;</span> -</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Done.&#34;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>ما این فایل را همزمان با دو ترمینال اجرا می‌کنیم.</p> -<p><img src="https://bit-orbit.github.io/images/post/advisory_lock.gif" - - - - loading="lazy" - - alt="advisory lock" - - -></p> -<p>همینطور که می‌بینید پروسه دوم برای اینکه محتوای فایل را تغییر دهد، باید صبر کند تا لاک فایل -آزاد شود.</p> -<hr> -<p>این پست خلاصه‌ای بود از -<a class="link" href="https://www.baeldung.com/linux/file-locking" target="_blank" rel="noopener" - >این بلاگ</a> +می‌نویسیم که بتوانیم مثال اولیه را روی آن اجرا کنیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="cp">#!/bin/bash +</span></span></span><span class="line"><span class="cl"><span class="cp"></span><span class="nv">file</span><span class="o">=</span><span class="s2">&#34;balance.dat&#34;</span> +</span></span><span class="line"><span class="cl"><span class="nv">value</span><span class="o">=</span><span class="k">$(</span>cat <span class="nv">$file</span><span class="k">)</span> +</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Read current balance:</span><span class="nv">$value</span><span class="s2">&#34;</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="c1">#sleep 10 seconds to simulate business calculation</span> +</span></span><span class="line"><span class="cl"><span class="nv">progress</span><span class="o">=</span><span class="m">10</span> +</span></span><span class="line"><span class="cl"><span class="k">while</span> <span class="o">[[</span> <span class="nv">$progress</span> -lt <span class="m">101</span> <span class="o">]]</span><span class="p">;</span> <span class="k">do</span> +</span></span><span class="line"><span class="cl"> <span class="nb">echo</span> -n -e <span class="s2">&#34;\033[77DCalculating new balance..</span><span class="nv">$progress</span><span class="s2">%&#34;</span> +</span></span><span class="line"><span class="cl"> sleep <span class="m">1</span> +</span></span><span class="line"><span class="cl"> <span class="nv">progress</span><span class="o">=</span><span class="k">$((</span><span class="m">10</span><span class="o">+</span>progress<span class="k">))</span> +</span></span><span class="line"><span class="cl"><span class="k">done</span> +</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;&#34;</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="nv">value</span><span class="o">=</span><span class="k">$((</span>value+<span class="nv">$1</span><span class="k">))</span> +</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Write new balance (</span><span class="nv">$value</span><span class="s2">) back to </span><span class="nv">$file</span><span class="s2">.&#34;</span> +</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="nv">$value</span> &gt; <span class="s2">&#34;</span><span class="nv">$file</span><span class="s2">&#34;</span> +</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Done.&#34;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>ما این فایل را همزمان با دو ترمینال اجرا می‌کنیم.</p> +<p><img src="https://bit-orbit.github.io/images/post/advisory_lock.gif" +loading="lazy" +alt="advisory lock" +></p> +<p>همینطور که می‌بینید پروسه دوم برای اینکه محتوای فایل را تغییر دهد، باید صبر کند تا لاک فایل +آزاد شود.</p> +<hr> +<p>این پست خلاصه‌ای بود از +<a class="link" href="https://www.baeldung.com/linux/file-locking" target="_blank" rel="noopener" +>این بلاگ</a> که هر دو نوع advisory lock و mandatory lock -را توضیح می‌دهد.</p> -<p>برای من سوال بود که من چطور می‌توانم مکانیزمی که +را توضیح می‌دهد.</p> +<p>برای من سوال بود که من چطور می‌توانم مکانیزمی که flock استفاده می‌کند را در برنامه های خودم پیاده سازی کنم، و خب نتیجه این بود که معمولا برای advisory lock هر زبانی یک کتابخانه استاندار دارد توی -<a class="link" href="https://docs.python.org/3/library/fcntl.html" target="_blank" rel="noopener" - >پایتون کتابخانه</a> -<code>fcntl</code> -اینکار را انجام می‌دهد.</p> - - - - فورک بمب چیست و چطور کار می‌کند؟ - https://bit-orbit.github.io/p/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B7%D9%88%D8%B1-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF/ - Wed, 27 Dec 2023 16:39:27 +0330 - - https://bit-orbit.github.io/p/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B7%D9%88%D8%B1-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF/ - <img src="https://bit-orbit.github.io/images/post/fork_bomb.jpg" alt="Featured image of post فورک بمب چیست و چطور کار می‌کند؟" /><p>اوایل که لینوکس نصب کرده بودم کامند هایی که توی +<a class="link" href="https://docs.python.org/3/library/fcntl.html" target="_blank" rel="noopener" +>پایتون کتابخانه</a> +<code>fcntl</code> +اینکار را انجام می‌دهد.</p>فورک بمب چیست و چطور کار می‌کند؟https://bit-orbit.github.io/p/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B7%D9%88%D8%B1-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF/Wed, 27 Dec 2023 16:39:27 +0330https://bit-orbit.github.io/p/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B7%D9%88%D8%B1-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF/<img src="https://bit-orbit.github.io/images/post/fork_bomb.jpg" alt="Featured image of post فورک بمب چیست و چطور کار می‌کند؟" /><p>اوایل که لینوکس نصب کرده بودم کامند هایی که توی فروم های مختلف می‌دیدم و برای من جدید بود را دوست داشتم یاد بگیرم و بدانم کار آنها چی هست، برای همین هر کامندی را که می‌دیدم در @@ -513,345 +476,318 @@ advisory lock هر کامندی اشتباهه بود. یکی از این کامند ها که اجرا کرده بودم، به اسم فورک بمب (fork bomb) -شناخته می‌شود. کامند به این صورت هست</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>:<span class="p">&amp;</span> <span class="o">}</span><span class="p">;</span>: -</span></span></code></pre></td></tr></table> -</div> -</div><p>اگر این کامند را اجرا کنید(امیدوارم تا الان نکرده باشید) تقریبا زیر یک دقیقه سیستم شما -هنگ می‌کند و مجبور می‌شوید سیستم را ریبوت کنید.</p> -<hr> -<p>توی این پست ساختار این کامند را تشریح می‌کنم و باهم +شناخته می‌شود. کامند به این صورت هست</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>:<span class="p">&amp;</span> <span class="o">}</span><span class="p">;</span>: +</span></span></code></pre></td></tr></table> +</div> +</div><p>اگر این کامند را اجرا کنید(امیدوارم تا الان نکرده باشید) تقریبا زیر یک دقیقه سیستم شما +هنگ می‌کند و مجبور می‌شوید سیستم را ریبوت کنید.</p> +<hr> +<p>توی این پست ساختار این کامند را تشریح می‌کنم و باهم کمی bash -یاد می‌گیریم.</p> -<p>بیایید اول با مفهوم +یاد می‌گیریم.</p> +<p>بیایید اول با مفهوم recustion آشنا بشیم، زمانی که یک قطعه کد خودش اجرا کند، recusion می‌گویم. مثلا شما یک فانکشن می‌نویسید به اسم -<em>fn</em> +<em>fn</em> و توی بدنه فانکشن فقط خود همین فانکشن را صدا می‌‌کنید، به این کار call recursion گفته می‌شود. فورک بمب دقیقا همین کار را می‌کند. به این -معنی که خودش را دائم اجرا می‌کند!</p> -<p>به این فکر کنید که وقتی یک پراسس خودش را اجرا می‌کند +معنی که خودش را دائم اجرا می‌کند!</p> +<p>به این فکر کنید که وقتی یک پراسس خودش را اجرا می‌کند ،مجدد پراسس های اجرا شده توسط اون هم دائم خودشان را اجرا می‌کنند، و دوباره هر پروسه‌ای که اجرا می‌شود بازم خودش را اجرا می‌کند و این روند تا زمانی که رم و پردازنده سیستم تحمل -داشته باشد ادامه دارد.</p> -<blockquote> -<p>درختی که می‌بینید را اجرای فورک بمب درنظر بگیرید، +داشته باشد ادامه دارد.</p> +<blockquote> +<p>درختی که می‌بینید را اجرای فورک بمب درنظر بگیرید، هر ستاره یک پروسه جدید است که توسط پروسه قبلی اجرا شده، و خودش هم دو پروسه جدید باز می‌کند و هر یک از پروسه ها -هم همین روند را ادامه می‌دهند.</p> -</blockquote> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt">10 -</span><span class="lnt">11 -</span><span class="lnt">12 -</span><span class="lnt">13 -</span><span class="lnt">14 -</span><span class="lnt">15 -</span><span class="lnt">16 -</span><span class="lnt">17 -</span><span class="lnt">18 -</span><span class="lnt">19 -</span><span class="lnt">20 -</span><span class="lnt">21 -</span><span class="lnt">22 -</span><span class="lnt">23 -</span><span class="lnt">24 -</span><span class="lnt">25 -</span><span class="lnt">26 -</span><span class="lnt">27 -</span><span class="lnt">28 -</span><span class="lnt">29 -</span><span class="lnt">30 -</span><span class="lnt">31 -</span><span class="lnt">32 -</span><span class="lnt">33 -</span><span class="lnt">34 -</span><span class="lnt">35 -</span><span class="lnt">36 -</span><span class="lnt">37 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w">   </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w">   </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><p>من برای اینکه سیستم‌ خودم هنگ نکند فورک بمب را روی داکر +هم همین روند را ادامه می‌دهند.</p> +</blockquote> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span><span class="lnt">19 +</span><span class="lnt">20 +</span><span class="lnt">21 +</span><span class="lnt">22 +</span><span class="lnt">23 +</span><span class="lnt">24 +</span><span class="lnt">25 +</span><span class="lnt">26 +</span><span class="lnt">27 +</span><span class="lnt">28 +</span><span class="lnt">29 +</span><span class="lnt">30 +</span><span class="lnt">31 +</span><span class="lnt">32 +</span><span class="lnt">33 +</span><span class="lnt">34 +</span><span class="lnt">35 +</span><span class="lnt">36 +</span><span class="lnt">37 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w">   </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w">   </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><p>من برای اینکه سیستم‌ خودم هنگ نکند فورک بمب را روی داکر اجرا کردم و خب حتی یک ثانیه هم طول نکشید و آن کانتینر -کاملا هنگ کرد.</p> -<blockquote> -<p>قبل از اجرا -<a class="link" href="https://bit-orbit.github.io/images/post/forkbomb_docker0.jpg" ><img src="https://bit-orbit.github.io/images/post/forkbomb_docker0.jpg" - - - - loading="lazy" - - alt="forkbomb on docker" - - -></a></p> -</blockquote> -<blockquote> -<p>زمان اجرا -<a class="link" href="https://bit-orbit.github.io/images/post/forkbomb_docker.jpg" ><img src="https://bit-orbit.github.io/images/post/forkbomb_docker.jpg" - - - - loading="lazy" - - alt="forkbomb on docker" - - -></a></p> -</blockquote> -<hr> -<p>بیایید وارد کد بشیم، این علامت ها و کاراکتر ها چی هستند؟</p> -<!-- برای تعریف یک فانکشن توی +کاملا هنگ کرد.</p> +<blockquote> +<p>قبل از اجرا +<a class="link" href="https://bit-orbit.github.io/images/post/forkbomb_docker0.jpg" ><img src="https://bit-orbit.github.io/images/post/forkbomb_docker0.jpg" +loading="lazy" +alt="forkbomb on docker" +></a></p> +</blockquote> +<blockquote> +<p>زمان اجرا +<a class="link" href="https://bit-orbit.github.io/images/post/forkbomb_docker.jpg" ><img src="https://bit-orbit.github.io/images/post/forkbomb_docker.jpg" +loading="lazy" +alt="forkbomb on docker" +></a></p> +</blockquote> +<hr> +<p>بیایید وارد کد بشیم، این علامت ها و کاراکتر ها چی هستند؟</p> +<!-- برای تعریف یک فانکشن توی bash -ما به این صورت عمل می‌کنیم که اول اسم فانکشن بعد پرانتز -و بعد کرلی براکت(توی فارسی می‌گیم آکولاد) و داخل کرلی +ما به این صورت عمل می‌کنیم که اول اسم فانکشن بعد پرانتز +و بعد کرلی براکت(توی فارسی می‌گیم آکولاد) و داخل کرلی براکت ما قطعه کد را می‌نویسیم. مثلا برای فانکشنی که یک اسم را روی صفحه چاپ کنه به این صورت عمل می‌کنیم - ```bash -pname(){ echo 'foo'; } -``` --> -<p>اگه دقت کنید اولین کاراکتر فورک بمب، علامت -<code>:</code> +pname(){ echo 'foo'; } +``` --> +<p>اگه دقت کنید اولین کاراکتر فورک بمب، علامت +<code>:</code> است. این علامت اسم فانکشن ما است. برخلاف قانون تعریف نام برای متغییر ها توی bash، می‌توانیم از کاراتر های یونیکد هم برای تعریف نام فانکشن استفاده کنیم، مثلا یک -کاراکتر چینی یا حتی ایموجی!</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span><span class="lnt">3 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">雨<span class="o">(){</span> <span class="nb">echo</span> <span class="s1">&#39;rain&#39;</span><span class="p">;</span> <span class="o">}</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">❤️<span class="o">(){</span> <span class="nb">echo</span> <span class="s1">&#39;love&#39;</span><span class="p">;</span> <span class="o">}</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>خب در ادامه علامت های -<code>()</code> +کاراکتر چینی یا حتی ایموجی!</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">雨<span class="o">(){</span> <span class="nb">echo</span> <span class="s1">&#39;rain&#39;</span><span class="p">;</span> <span class="o">}</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">❤️<span class="o">(){</span> <span class="nb">echo</span> <span class="s1">&#39;love&#39;</span><span class="p">;</span> <span class="o">}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>خب در ادامه علامت های +<code>()</code> را می‌بینیم، توی bash برای تعریف فانکشن قبل از اسم فانکشن هیچ کلمه کلیدی مثل fn, def, void و &hellip; نیاز نیست، فقط بجای آن باید -<strong>بعد از اسم فانکشن</strong> -پرانتز ها را بگذارید.</p> -<p>مثل خیلی از زبان های برنامه نویسی، بدنه فانکشن توی -کرلی براکت تعریف می‌شود.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){}</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>پس تا اینجا ما یک فانکشن ساده با نام -<code>:</code> -تعریف کردیم.</p> -<p>داخل بدنه این فانکشن، اسمی که برای فانکشن قرار دادیم +<strong>بعد از اسم فانکشن</strong> +پرانتز ها را بگذارید.</p> +<p>مثل خیلی از زبان های برنامه نویسی، بدنه فانکشن توی +کرلی براکت تعریف می‌شود.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>پس تا اینجا ما یک فانکشن ساده با نام +<code>:</code> +تعریف کردیم.</p> +<p>داخل بدنه این فانکشن، اسمی که برای فانکشن قرار دادیم همان -<code>:</code> +<code>:</code> را می‌نویسیم. با اینکار دقیقا call recursion را انجام دادیم، و باعث شدیم که برنامه خودش را -توی هر اجرا مجدد اجرا کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> : <span class="o">}</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>دقت کنید توی سینتکس +توی هر اجرا مجدد اجرا کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> : <span class="o">}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>دقت کنید توی سینتکس bash -حتما باید یک فاصله برای کدی که داخلی کرلی براکت می‌نویسم قرار بدیم</p> -</blockquote> -<p>علامت -<code>|</code> +حتما باید یک فاصله برای کدی که داخلی کرلی براکت می‌نویسم قرار بدیم</p> +</blockquote> +<p>علامت +<code>|</code> به اسم پایپ شناخته می‌شود، وظیفه این علامت دادن خروجی یک کامند بعنوان ورودی به یک کامند دیگر هست، حلا دقت کنید که ما خروجی اجرای -<code>:</code> -را به خودش می‌دهیم. دقیقا به این شکل</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>: <span class="o">}</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>با این علامت هر پروسه دو بار پروسه جدیدی از خودش می‌سازد +<code>:</code> +را به خودش می‌دهیم. دقیقا به این شکل</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>: <span class="o">}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>با این علامت هر پروسه دو بار پروسه جدیدی از خودش می‌سازد اگر از این علامت استفاده نکنیم، پروسه ما به صورت خطی خودش را اجرا خواهد کرد، اینطوری کد ما با یک حلقه -<code>while</code> -تفاوتی زیادی نخواهد داشت.</p> -<p>علامت -<code>&amp;</code> +<code>while</code> +تفاوتی زیادی نخواهد داشت.</p> +<p>علامت +<code>&amp;</code> اجرای یک کامند را به بکگراند(پس زمینه) می‌برد. برای مثال بعد از اجرای یک دستور باید صبر کنید پروسه آن تمام شود تا بتوانید دستور بعدی را اجرا کنید. ولی اگر از علامت -<code>&amp;</code> +<code>&amp;</code> بعد از هر دستور استفاده کنید، دیگر نیاز نیست صبر کنید تا روند اجرای آن برنامه تمام شود. درواقع با علامت -<code>&amp;</code> +<code>&amp;</code> شما می‌توانید هر برنامه را در بکگراند اجرا کنید. حالا توی فورک بمب این علامت باعث می‌شود تا فانشکنی که اجرا کردین درحالی که کارش به اتمام -نرسیده است، فانکشن بعدی اجرا بشود.</p> -<p><img src="https://bit-orbit.github.io/images/post/forkbomb_and.jpg" - - - - loading="lazy" - - alt="& in bash" - - -></p> -<p>و بعد علامت -<code>;</code> +نرسیده است، فانکشن بعدی اجرا بشود.</p> +<p><img src="https://bit-orbit.github.io/images/post/forkbomb_and.jpg" +loading="lazy" +alt="& in bash" +></p> +<p>و بعد علامت +<code>;</code> را می‌بینیم. این علامت کامند ها را از هم جدا می‌کند. مثلا شما می‌توانید چند کامند مختلف را توی یک خط بنویسید. توی فورک بمب این علامت فانکشنی که تعریف کردین را از -دستور بعدی(که اجرا کننده اون فانکشن هست)جدا می‌کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s1">&#39;foo&#39;</span><span class="p">;</span> <span class="nb">echo</span> <span class="s1">&#39;bar&#39;</span><span class="p">;</span> <span class="nb">echo</span> <span class="s1">&#39;baz&#39;</span><span class="p">;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>آخرین علامتی که توی فورک بمب داریم همون علامت -<code>:</code> +دستور بعدی(که اجرا کننده اون فانکشن هست)جدا می‌کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s1">&#39;foo&#39;</span><span class="p">;</span> <span class="nb">echo</span> <span class="s1">&#39;bar&#39;</span><span class="p">;</span> <span class="nb">echo</span> <span class="s1">&#39;baz&#39;</span><span class="p">;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>آخرین علامتی که توی فورک بمب داریم همون علامت +<code>:</code> یا همون اسمی هست که برای فانکشن قرار دادیم. خیلی ساده توی bash -برای اجرای یک فانکشن فقط اسم‌ش را می‌نویسیم.</p> -<p>و تمام! ما یاد گرفتیم چطور فورک بمب رو بنویسیم و دیگه -نیاز نیست حفظ‌ش کنیم :)</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>:<span class="p">&amp;</span> <span class="o">}</span><span class="p">;</span>: -</span></span></code></pre></td></tr></table> -</div> -</div> - - - در لینوکس چیست؟ TTY - https://bit-orbit.github.io/p/%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA-tty/ - Mon, 31 Jan 2022 19:57:05 +0330 - - https://bit-orbit.github.io/p/%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA-tty/ - <img src="https://bit-orbit.github.io/images/post/tty.jpg" alt="Featured image of post در لینوکس چیست؟ TTY " /><div dir='rtl' style='font-size:x-large'> -<p>شما باید درباره اصطلاح +برای اجرای یک فانکشن فقط اسم‌ش را می‌نویسیم.</p> +<p>و تمام! ما یاد گرفتیم چطور فورک بمب رو بنویسیم و دیگه +نیاز نیست حفظ‌ش کنیم :)</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>:<span class="p">&amp;</span> <span class="o">}</span><span class="p">;</span>: +</span></span></code></pre></td></tr></table> +</div> +</div> در لینوکس چیست؟ TTYhttps://bit-orbit.github.io/p/%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA-tty/Mon, 31 Jan 2022 19:57:05 +0330https://bit-orbit.github.io/p/%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA-tty/<img src="https://bit-orbit.github.io/images/post/tty.jpg" alt="Featured image of post در لینوکس چیست؟ TTY " /><div dir='rtl' style='font-size:x-large'> +<p>شما باید درباره اصطلاح tty زمانی که به لینوکس و یونیکس آمد، شنیده باشید. اما tty -چیست؟</p> -<p>آیا برای شما به عنوان یک کاربر دستکتاپ مفید است؟</p> -<p>به آن نیاز دارید؟ می‌توانید با آن چه کار کنید؟</p> -<p>اجازه دهید هر چیز ضروری برای آشنا کردن شما با اصطلاح +چیست؟</p> +<p>آیا برای شما به عنوان یک کاربر دستکتاپ مفید است؟</p> +<p>به آن نیاز دارید؟ می‌توانید با آن چه کار کنید؟</p> +<p>اجازه دهید هر چیز ضروری برای آشنا کردن شما با اصطلاح tty -را در این پست برسی کنیم.</p> -<p>به یاد داشته باشید که پاسخ قطعی برای این سوال وجود ندارد، +را در این پست برسی کنیم.</p> +<p>به یاد داشته باشید که پاسخ قطعی برای این سوال وجود ندارد، اما به نحوه تعامل دستگاه های input/output(ورودی/خروجی) -در گذشته ربط دارد.</p> -<p>برای اینکه تصویری شفاف از آن داشته باشید باید کمی از تاریخ‌ش را بدانید.</p> -<h3 id="تاریخ-پشت-اصطلاح-tty">تاریخ پشت اصطلاح tty</h3> -<p>همه چیز از یک -<em>teleprinter</em> -در سال 1830 شروع شد.</p> -<p>teleprinter +در گذشته ربط دارد.</p> +<p>برای اینکه تصویری شفاف از آن داشته باشید باید کمی از تاریخ‌ش را بدانید.</p> +<h3 id="تاریخ-پشت-اصطلاح-tty">تاریخ پشت اصطلاح tty +</h3><p>همه چیز از یک +<em>teleprinter</em> +در سال 1830 شروع شد.</p> +<p>teleprinter به شما اجازه می‌داد که از طریق سیم پیام ارسال و دریافت کنید. teleprinter جایگزینی برای ارطبات مورس کد بود در آن دو اپراتور برای ارطبات با یکدیگر مود نیاز بود. اما در teleprinter -فقط به یک اپراتور برای ارسال پیام نیاز داشت. درحالی که +فقط به یک اپراتور برای ارسال پیام نیاز داشت. درحالی که teleprinter یک صفحه کلید مدرن نداشت، بعد ها سیستم آن توسط Donald Murray به یک صفحه کلید -<em>teletypewriter</em> -تکامل یافت.</p> -<p>Murray +<em>teletypewriter</em> +تکامل یافت.</p> +<p>Murray زحمت اپراتور ها را برای ارسال و پیام را کاهش داد و این امکان را برای teletypeprinter @@ -861,16 +797,11 @@ teletypewriter tty نام کوتاه شده teletypewrite -است.</p> -<p><img src="https://bit-orbit.github.io/images/post/teletypewrite.jpg" - - - - loading="lazy" - - -></p> -<p>تفاوت بین +است.</p> +<p><img src="https://bit-orbit.github.io/images/post/teletypewrite.jpg" +loading="lazy" +></p> +<p>تفاوت بین teletypewrite و typewriter @@ -881,89 +812,77 @@ teletypewriter ارطبات سریع تری را تا اکنون برای انسال بدون استفاده از کامپیوتر مقدور کرده است. و اینجا جایی است که tty -بوجود آمد.</p> -<h3 id="مفهوم-مدرن">مفهوم مدرن</h3> -<p>اکنون شما باید متعجب شده باشید که چطور +بوجود آمد.</p> +<h3 id="مفهوم-مدرن">مفهوم مدرن +</h3><p>اکنون شما باید متعجب شده باشید که چطور tty -به لینوکس و کامپیوتر مدرن آمده است.</p> -<p>بسیار خب، برای شروع، زمانی که +به لینوکس و کامپیوتر مدرن آمده است.</p> +<p>بسیار خب، برای شروع، زمانی که teletypewriter به بازار رسید، چند سال بعد ترانزیستور های نیمه هادی(نیمه رسانا) توسعه داده شد که به میکروپروسسور(micro proccessor) -هایی تبدیل شدند که کامپیوتر را ممکن می‌کرند.</p> -<p>کامپیوتر های اولیه مفهومی به اسم صفحه کلید نداشتند. -<a class="link" href="https://en.wikipedia.org/wiki/Punched_card" target="_blank" rel="noopener" - >کارت های پانج</a> -روش ورودی دادن به کامپیوتر ها بود</p> -<p><img src="https://bit-orbit.github.io/images/post/punch-card.jpg" - - - - loading="lazy" - - alt="card-punch" - - -></p> -<p>درحالی که کامپیوتر ها توسعه پیدا می‌کردند، بالاخره کارت های پانچ با +هایی تبدیل شدند که کامپیوتر را ممکن می‌کرند.</p> +<p>کامپیوتر های اولیه مفهومی به اسم صفحه کلید نداشتند. +<a class="link" href="https://en.wikipedia.org/wiki/Punched_card" target="_blank" rel="noopener" +>کارت های پانج</a> +روش ورودی دادن به کامپیوتر ها بود</p> +<p><img src="https://bit-orbit.github.io/images/post/punch-card.jpg" +loading="lazy" +alt="card-punch" +></p> +<p>درحالی که کامپیوتر ها توسعه پیدا می‌کردند، بالاخره کارت های پانچ با teletypewriter -به عنوان دستگاه <em><strong><u>ورودی/خروجی</u></strong></em> مناسب جایگزین شد.    </p> -<p><img src="https://bit-orbit.github.io/images/post/pc-tty.jpg" - - - - loading="lazy" - - alt="LGP-30 computer in 1956 with a TTY attached to it" - - -></p> -<p>با توسعه تکنولوژی +به عنوان دستگاه <em><strong><u>ورودی/خروجی</u></strong></em> مناسب جایگزین شد.    </p> +<p><img src="https://bit-orbit.github.io/images/post/pc-tty.jpg" +loading="lazy" +alt="LGP-30 computer in 1956 with a TTY attached to it" +></p> +<p>با توسعه تکنولوژی teletypewriter ها با استفاده از الکترونیک مجازی شدند. پس شما به یک tty فیزیکی، مکانیکی نیاز پیدا نمی‌کنید، بلکه به یک tty -مجازی، الکترونیکی نیاز دارید.</p> -<p>اوایل کامپیوتر ها صفحه نمایش هم نداشتند. چیز ها بجای نمایش داده شدن بروی صفحه نمایش +مجازی، الکترونیکی نیاز دارید.</p> +<p>اوایل کامپیوتر ها صفحه نمایش هم نداشتند. چیز ها بجای نمایش داده شدن بروی صفحه نمایش (که وجود نداشت) به روی کاغذ چاپ می‌شدند. به همین دلیل شما بجای دیدن اصطلاح -<code>display</code> +<code>display</code> اصطلاح -<code>print</code> +<code>print</code> را می‌بینید. ویدیو ها به عنوان تکنولوژی پیشرفته به ترمینال(پایانه) ها اضافه شد. به عبارت دیگر شما باید درباره ترمینال های ویدیویی شنیده باشید. یا شما می‌توانید -آن ها را ترمینال های فیزیکی بنامید.</p> -<p>سپس اینها به ترمینال های نرم افزاری شبیه سازی شده تکامل پیدا کردند که با قابلیت ها و +آن ها را ترمینال های فیزیکی بنامید.</p> +<p>سپس اینها به ترمینال های نرم افزاری شبیه سازی شده تکامل پیدا کردند که با قابلیت ها و ویژگی های تسوسعه یافته‌ای همرا بود. این چیزی است که شما آن را terminal emulator -می‌نامید.</p> -<p>برای نمونه ترمینال -<a class="link" href="https://en.wikipedia.org/wiki/GNOME_Terminal" target="_blank" rel="noopener" - >گنوم -(Gnome)</a> +می‌نامید.</p> +<p>برای نمونه ترمینال +<a class="link" href="https://en.wikipedia.org/wiki/GNOME_Terminal" target="_blank" rel="noopener" +>گنوم +(Gnome)</a> یا -<a class="link" href="https://konsole.kde.org/" target="_blank" rel="noopener" - >کنسول -(Konsole)</a> -<a class="link" href="https://itsfoss.com/linux-terminal-emulators/" target="_blank" rel="noopener" - >چنتا از بهترین ترمینال هایی هستند که می‌توانید برای لینوکس پیدا کنید.</a></p> -<h3 id="بسیارخب-tty-در-لینوکس-چیست">بسیارخب tty در لینوکس چیست؟</h3> -<p>زمانی که +<a class="link" href="https://konsole.kde.org/" target="_blank" rel="noopener" +>کنسول +(Konsole)</a> +<a class="link" href="https://itsfoss.com/linux-terminal-emulators/" target="_blank" rel="noopener" +>چنتا از بهترین ترمینال هایی هستند که می‌توانید برای لینوکس پیدا کنید.</a></p> +<h3 id="بسیارخب-tty-در-لینوکس-چیست">بسیارخب tty در لینوکس چیست؟ +</h3><p>زمانی که tty به لینوکس و یونیکس آمد، یک دستگاه مستقل در یونیکس و لینوکس بود گاهی tty به یک دستگاه ورودی فیزیکی مانند serial port(درگاه سریال) اشاره می‌کرد، و گاهی به ترمینال های مجازی اشاره می‌کرد که به کاربران اجازه تعامل با -سیستم را می‌داد.</p> -<p>tty +سیستم را می‌داد.</p> +<p>tty یک زیر سیستم در لینوکس و یونیکس است که مدریت فرایند، ویرایش خط و مدیریت نشست ها را در سطح کرنل از طریق درایور های tty -ممکن می‌کند.</p> -<p>از دیدگاه برنامه نویسی شما باید در این موضوع عمیق تر شوید. اما محدوده این +ممکن می‌کند.</p> +<p>از دیدگاه برنامه نویسی شما باید در این موضوع عمیق تر شوید. اما محدوده این پست را در نظر بگیرید، این مقاله باید یک توضیح ساده برای درک بهتر باشد. در حقیقت، هر گاه یک ترمینال را باز می‌کنیم یا هر نوع shell @@ -972,114 +891,92 @@ shell با tty مجازی که -<em>PTY</em> +<em>PTY</em> یا -<em>pseudo-tty</em> -هم شناخته می‌شوند، تعامل خواهد داشت.</p> -<p>شما می‌توانید +<em>pseudo-tty</em> +هم شناخته می‌شوند، تعامل خواهد داشت.</p> +<p>شما می‌توانید tty را در ترمینال تایپ کنید و pty -مرتبط را پیدا کنید.</p> -<h3 id="چگونه-به-tty-در-لینوکس-دسترسی-داشته-باشیم">چگونه به tty در لینوکس دسترسی داشته باشیم؟</h3> -<p><img src="https://bit-orbit.github.io/images/post/ubuntu-tty.png" - - - - loading="lazy" - - alt="tty-in-ubuntu" - - -></p> -<p>دسترسی به +مرتبط را پیدا کنید.</p> +<h3 id="چگونه-به-tty-در-لینوکس-دسترسی-داشته-باشیم">چگونه به tty در لینوکس دسترسی داشته باشیم؟ +</h3><p><img src="https://bit-orbit.github.io/images/post/ubuntu-tty.png" +loading="lazy" +alt="tty-in-ubuntu" +></p> +<p>دسترسی به tty در لینوکس ساده است. در حقیت زمانی که هیچ سرنخی از اینکه tty چیست نداشتم، به طور اتفاقی به آن دسترسی پیدا کردم و از اینکه چطوری باید -از آن خارج شوم وحشت زده شدم!</p> -<p>شما می‌توانید با کلید های میانبر زیر در اکثر توزیع های لینوکس به صفحه +از آن خارج شوم وحشت زده شدم!</p> +<p>شما می‌توانید با کلید های میانبر زیر در اکثر توزیع های لینوکس به صفحه tty -دسترسی پیدا کنید.</p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F1</code> – <strong>Lockscreen</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F2</code> – <strong>Desktop Environment</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F3</code> – <strong>TTY3</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F4</code> – <strong>TTY4</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F5</code> – <strong>TT5</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F6</code> – <strong>TTY6</strong></p> -<p>شما می‌توانید حد اکثر به -<u>6</u> +دسترسی پیدا کنید.</p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F1</code> – <strong>Lockscreen</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F2</code> – <strong>Desktop Environment</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F3</code> – <strong>TTY3</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F4</code> – <strong>TTY4</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F5</code> – <strong>TT5</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F6</code> – <strong>TTY6</strong></p> +<p>شما می‌توانید حد اکثر به +<u>6</u> tty دسترسی داشته باشید، با این حال دو تا از اولین کلید های میانبر به صفحه قفل -و محیط دسکتاپ اشاره دارد.</p> -<p><img src="https://bit-orbit.github.io/images/post/ubuntu-tty4.png" - - - - loading="lazy" - - alt="cmd-with-tty" - - -></p> -<p>بنابر این، با باقی کلید های میانبر شما به محیط +و محیط دسکتاپ اشاره دارد.</p> +<p><img src="https://bit-orbit.github.io/images/post/ubuntu-tty4.png" +loading="lazy" +alt="cmd-with-tty" +></p> +<p>بنابر این، با باقی کلید های میانبر شما به محیط command-line -دسترسی می‌گیرید.</p> -<h3 id="چه-زمانی-شما-از-tty-در-لینوکس-استفاده-خواهید-کرد">چه زمانی شما از tty در لینوکس استفاده خواهید کرد؟</h3> -<p>tty -فقط یک گنج تکنیکی نیست. حتی برای کاربرانی مثل من که توسعه دهنده هم نیستند مفید است.</p> -<p>زمانی که محیط گرافیکی فریز می‌شود باید به کار بیاید. در بعضی از مواقع +دسترسی می‌گیرید.</p> +<h3 id="چه-زمانی-شما-از-tty-در-لینوکس-استفاده-خواهید-کرد">چه زمانی شما از tty در لینوکس استفاده خواهید کرد؟ +</h3><p>tty +فقط یک گنج تکنیکی نیست. حتی برای کاربرانی مثل من که توسعه دهنده هم نیستند مفید است.</p> +<p>زمانی که محیط گرافیکی فریز می‌شود باید به کار بیاید. در بعضی از مواقع نصب مجدد محیط گرافیکی با استفاده از tty -می‌تواند مشکل را حل کند.</p> -<p>یا شما می‌توانید +می‌تواند مشکل را حل کند.</p> +<p>یا شما می‌توانید tty را برای انجام کار هایی مثل آپدیت انتخاب کنید جایی که شما نمی‌خواهید مشکلات بصری فرایند -های شما را مختل کند.</p> -<p>بد ترین مورد سناریو، شما می‌تواند زمانی که محیط دستکتاپ جواب نمی‌دهد، برای ریبوت +های شما را مختل کند.</p> +<p>بد ترین مورد سناریو، شما می‌تواند زمانی که محیط دستکتاپ جواب نمی‌دهد، برای ریبوت به tty -مراجعه کنید.</p> -<p>بعضی از کاربران ترجیح می‌دهند که فایل های بزرگ را با +مراجعه کنید.</p> +<p>بعضی از کاربران ترجیح می‌دهند که فایل های بزرگ را با tty -منتقل کنند(من از آنها نیستم)</p> -<h3 id="tty-به-عنوان-یک-دستور-در-لینوکس">tty به عنوان یک دستور در لینوکس</h3> -<p><img src="https://bit-orbit.github.io/images/post/tty-cmd.png" - - - - loading="lazy" - - alt="tty-cmd" - - -></p> -<p>همانطور که در صفحه راهنمای +منتقل کنند(من از آنها نیستم)</p> +<h3 id="tty-به-عنوان-یک-دستور-در-لینوکس">tty به عنوان یک دستور در لینوکس +</h3><p><img src="https://bit-orbit.github.io/images/post/tty-cmd.png" +loading="lazy" +alt="tty-cmd" +></p> +<p>همانطور که در صفحه راهنمای (man page) tty توضیح داده شده است، زمانی که شما tty -را در ترمینال تایپ کنید، نام فایل ترمینال که به وردی استاندارد متصل است را چاپ می‌کند.</p> -<p>به عبارت دیگر برای دانستن عدد +را در ترمینال تایپ کنید، نام فایل ترمینال که به وردی استاندارد متصل است را چاپ می‌کند.</p> +<p>به عبارت دیگر برای دانستن عدد tty که به آن متصل هستید، فقط tty را در ترمینال تایپ کنید. اگر چند کاربر از راه دور به سیستم لینوکس متصل هستند، می‌توانید برای برسی اینکه به چه متصل هستند از کامند -<code>who</code> -استفاده کنید.</p> -<h3 id="خارج-از-ترجمه">خارج از ترجمه</h3> -<p>متن ترجمه شده بود و خب من یک مترجم تخصصی نیستم، من یک برنامه نویسم که بلاگ نویسی +<code>who</code> +استفاده کنید.</p> +<h3 id="خارج-از-ترجمه">خارج از ترجمه +</h3><p>متن ترجمه شده بود و خب من یک مترجم تخصصی نیستم، من یک برنامه نویسم که بلاگ نویسی و ترجمه رو هم دوست دارم، سعی کردم به بهترین نحو متن را ترجمه کنم و در اختیار بقیه بذارم، اگر حس کردین جایی از متن مشکلی داره، خیلی خوشحال می‌شوم -که مشکلم رو بهم بیگید، این کمک بزرگیه.</p> -<p>متن اصلی رو می‌توانید از -<a class="link" href="https://itsfoss.com/what-is-tty-in-linux/" target="_blank" rel="noopener" - >این لینک</a> -بخوانید.</p> -</div> - - - - +که مشکلم رو بهم بیگید، این کمک بزرگیه.</p> +<p>متن اصلی رو می‌توانید از +<a class="link" href="https://itsfoss.com/what-is-tty-in-linux/" target="_blank" rel="noopener" +>این لینک</a> +بخوانید.</p> +</div> \ No newline at end of file diff --git a/docs/categories/linux/page/1/index.html b/docs/categories/linux/page/1/index.html index e5ee72b..d2a238b 100644 --- a/docs/categories/linux/page/1/index.html +++ b/docs/categories/linux/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/categories/linux/ - - - - - - +https://bit-orbit.github.io/categories/linux/ + \ No newline at end of file diff --git a/docs/categories/movie/index.html b/docs/categories/movie/index.html index 1ba5438..91a7ccf 100644 --- a/docs/categories/movie/index.html +++ b/docs/categories/movie/index.html @@ -1,579 +1,37 @@ - - - - -Category: Movie - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Categories - -

- -
-
-

2 صفحه

-

Movie

- -
-
-
- -
- - - - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Category: Movie - bit-orbit +

Categories

2 صفحه

Movie

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git a/docs/categories/movie/index.xml b/docs/categories/movie/index.xml index 04cd964..c4f11fd 100644 --- a/docs/categories/movie/index.xml +++ b/docs/categories/movie/index.xml @@ -1,18 +1,4 @@ - - - - Movie on bit-orbit - https://bit-orbit.github.io/categories/movie/ - Recent content in Movie on bit-orbit - Hugo -- gohugo.io - fa - Sat, 24 Jun 2023 22:02:35 +0330 - Blade Runner - https://bit-orbit.github.io/p/blade-runner/ - Sat, 24 Jun 2023 22:02:35 +0330 - - https://bit-orbit.github.io/p/blade-runner/ - <img src="https://bit-orbit.github.io/p/blade-runner/37.png" alt="Featured image of post Blade Runner" /><p>پشت فیلم +Movie on bit-orbithttps://bit-orbit.github.io/categories/movie/Recent content in Movie on bit-orbitHugo -- gohugo.iofaSat, 24 Jun 2023 22:02:35 +0330Blade Runnerhttps://bit-orbit.github.io/p/blade-runner/Sat, 24 Jun 2023 22:02:35 +0330https://bit-orbit.github.io/p/blade-runner/<img src="https://bit-orbit.github.io/p/blade-runner/37.png" alt="Featured image of post Blade Runner" /><p>پشت فیلم blade runner ایده جذابی هست که من خیلی دوست دارم. کلیت داستان به این شکل هست که دنیا تونسته از انسان @@ -20,14 +6,14 @@ clone هایی بسازه و از اونها برای پیشرفت و کار های سخت استفاده کنه، مثلا توی جنگ بجای سرباز واقعی استفاده می‌شن، اگه قراره ماموریت خطرناکی مثل اکتشاف توی فضا و یا دستگیری یک مجرم خطرناک کسی رو بفرستن، -چی بهتر از یه کلون که جون انسان واقعی به خطر نیوفته؟</p> -<p>اما از جایی به بعد کلون ها تغییر می‌کنند و دیگه برده بودن رو قبول نمی‌کنن، +چی بهتر از یه کلون که جون انسان واقعی به خطر نیوفته؟</p> +<p>اما از جایی به بعد کلون ها تغییر می‌کنند و دیگه برده بودن رو قبول نمی‌کنن، سعی می‌کنن فرار کنند و دستور انسان ها سرپیچی کنند. اما اینکار هم فایده‌ای نداره، چون انسان ها کلون های دیگه‌ای می‌سازند که کارشون پیدا کردن و کشتن کلون هایی هست که فرار کردن، به این شغل که مامولا شغل کلون ها هست می‌گن -blade runner.</p> -<p>این روند یکم شبیه یک +blade runner.</p> +<p>این روند یکم شبیه یک loop هست، ساخت clone @@ -38,1170 +24,828 @@ clone clone ها فرار می‌کنند و دوباره clone -های دیگه‌ای میان سراغ اینها.</p> -<p>باید بگم که +های دیگه‌ای میان سراغ اینها.</p> +<p>باید بگم که balde runner چندین سری فیلم هست، -حتی یک سریال انیمیشنی هم داره.</p> -<hr> -<p><img src="https://bit-orbit.github.io/p/blade-runner/1.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/1_hu18203028458765281991.png 480w, https://bit-orbit.github.io/p/blade-runner/1_hu640960131545633292.png 1024w" - loading="lazy" - - alt="blade runner 1" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/2.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/2_hu4178962394613322091.png 480w, https://bit-orbit.github.io/p/blade-runner/2_hu16711218221384379251.png 1024w" - loading="lazy" - - alt="blade runner 2" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/3.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/3_hu5609019162047173584.png 480w, https://bit-orbit.github.io/p/blade-runner/3_hu10217638583400693183.png 1024w" - loading="lazy" - - alt="blade runner 3" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/4.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/4_hu5282573958070938966.png 480w, https://bit-orbit.github.io/p/blade-runner/4_hu4482592906922858564.png 1024w" - loading="lazy" - - alt="blade runner 4" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/5.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/5_hu2506888640986000463.png 480w, https://bit-orbit.github.io/p/blade-runner/5_hu14496052156153432936.png 1024w" - loading="lazy" - - alt="blade runner 5" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/6.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/6_hu10830826830489925101.png 480w, https://bit-orbit.github.io/p/blade-runner/6_hu6736199323060390766.png 1024w" - loading="lazy" - - alt="blade runner 6" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/7.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/7_hu7985689059426135154.png 480w, https://bit-orbit.github.io/p/blade-runner/7_hu11432963024129874521.png 1024w" - loading="lazy" - - alt="blade runner 7" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/8.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/8_hu4012554199744743050.png 480w, https://bit-orbit.github.io/p/blade-runner/8_hu8202217306378929282.png 1024w" - loading="lazy" - - alt="blade runner 8" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/9.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/9_hu15196113375778977307.png 480w, https://bit-orbit.github.io/p/blade-runner/9_hu15870904207399095068.png 1024w" - loading="lazy" - - alt="blade runner 9" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/10.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/10_hu12618574808288748938.png 480w, https://bit-orbit.github.io/p/blade-runner/10_hu3754466868428096437.png 1024w" - loading="lazy" - - alt="blade runner 10" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/11.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/11_hu11410618264927909791.png 480w, https://bit-orbit.github.io/p/blade-runner/11_hu4277845410507795162.png 1024w" - loading="lazy" - - alt="blade runner 11" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/12.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/12_hu3215006993020594134.png 480w, https://bit-orbit.github.io/p/blade-runner/12_hu14782705020137182551.png 1024w" - loading="lazy" - - alt="blade runner 12" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/13.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/13_hu4232052633755214396.png 480w, https://bit-orbit.github.io/p/blade-runner/13_hu1346923444079228958.png 1024w" - loading="lazy" - - alt="blade runner 13" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/14.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/14_hu6781889161464007647.png 480w, https://bit-orbit.github.io/p/blade-runner/14_hu5858317841221136074.png 1024w" - loading="lazy" - - alt="blade runner 14" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/15.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/15_hu10739297907183961586.png 480w, https://bit-orbit.github.io/p/blade-runner/15_hu4676734704812020313.png 1024w" - loading="lazy" - - alt="blade runner 15" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/16.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/16_hu3808253778841193055.png 480w, https://bit-orbit.github.io/p/blade-runner/16_hu5492897964783807333.png 1024w" - loading="lazy" - - alt="blade runner 16" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/17.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/17_hu15906018156274302476.png 480w, https://bit-orbit.github.io/p/blade-runner/17_hu9261422108566517811.png 1024w" - loading="lazy" - - alt="blade runner 17" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/18.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/18_hu15131318335002406021.png 480w, https://bit-orbit.github.io/p/blade-runner/18_hu2714024725375581381.png 1024w" - loading="lazy" - - alt="blade runner 18" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/19.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/19_hu15917001927459466555.png 480w, https://bit-orbit.github.io/p/blade-runner/19_hu7138664998729935235.png 1024w" - loading="lazy" - - alt="blade runner 19" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/20.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/20_hu12851721143569399755.png 480w, https://bit-orbit.github.io/p/blade-runner/20_hu17782052457319326651.png 1024w" - loading="lazy" - - alt="blade runner 20" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/21.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/21_hu11834245209561571419.png 480w, https://bit-orbit.github.io/p/blade-runner/21_hu14820715527791141841.png 1024w" - loading="lazy" - - alt="blade runner 21" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/22.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/22_hu9465551851937469165.png 480w, https://bit-orbit.github.io/p/blade-runner/22_hu11135687547915466301.png 1024w" - loading="lazy" - - alt="blade runner 22" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/23.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/23_hu8775898688435684639.png 480w, https://bit-orbit.github.io/p/blade-runner/23_hu12045446326187223604.png 1024w" - loading="lazy" - - alt="blade runner 23" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/24.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/24_hu11294028215810436705.png 480w, https://bit-orbit.github.io/p/blade-runner/24_hu18231892368219913679.png 1024w" - loading="lazy" - - alt="blade runner 24" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/25.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/25_hu8761348975154971042.png 480w, https://bit-orbit.github.io/p/blade-runner/25_hu11619135011095841436.png 1024w" - loading="lazy" - - alt="blade runner 25" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/26.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/26_hu12440180780663804535.png 480w, https://bit-orbit.github.io/p/blade-runner/26_hu5713483712705107807.png 1024w" - loading="lazy" - - alt="blade runner 26" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/27.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/27_hu9071525693992834621.png 480w, https://bit-orbit.github.io/p/blade-runner/27_hu7726486096834551096.png 1024w" - loading="lazy" - - alt="blade runner 27" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/28.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/28_hu11320496635163544245.png 480w, https://bit-orbit.github.io/p/blade-runner/28_hu11331001432335218241.png 1024w" - loading="lazy" - - alt="blade runner 28" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/29.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/29_hu17546110262762349629.png 480w, https://bit-orbit.github.io/p/blade-runner/29_hu7015101591688597602.png 1024w" - loading="lazy" - - alt="blade runner 29" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/30.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/30_hu15249851528067745990.png 480w, https://bit-orbit.github.io/p/blade-runner/30_hu8044846373972211628.png 1024w" - loading="lazy" - - alt="blade runner 30" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/31.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/31_hu16636699931134635318.png 480w, https://bit-orbit.github.io/p/blade-runner/31_hu3359540856338574783.png 1024w" - loading="lazy" - - alt="blade runner 31" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/32.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/32_hu10145312805175734704.png 480w, https://bit-orbit.github.io/p/blade-runner/32_hu3309584826581134280.png 1024w" - loading="lazy" - - alt="blade runner 32" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/33.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/33_hu337644318686516906.png 480w, https://bit-orbit.github.io/p/blade-runner/33_hu14654175255314197039.png 1024w" - loading="lazy" - - alt="blade runner 33" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/34.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/34_hu15189323557078556399.png 480w, https://bit-orbit.github.io/p/blade-runner/34_hu16363268471537170182.png 1024w" - loading="lazy" - - alt="blade runner 34" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/35.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/35_hu8322119150285037296.png 480w, https://bit-orbit.github.io/p/blade-runner/35_hu533810586026253092.png 1024w" - loading="lazy" - - alt="blade runner 35" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/36.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/36_hu4862540847732595212.png 480w, https://bit-orbit.github.io/p/blade-runner/36_hu17551721700503129844.png 1024w" - loading="lazy" - - alt="blade runner 36" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/37.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/37_hu13555456324091659085.png 480w, https://bit-orbit.github.io/p/blade-runner/37_hu17478514556830379674.png 1024w" - loading="lazy" - - alt="blade runner 37" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/38.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/38_hu12194633382067857783.png 480w, https://bit-orbit.github.io/p/blade-runner/38_hu2277895787698302016.png 1024w" - loading="lazy" - - alt="blade runner 38" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/39.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/39_hu12337681532498135604.png 480w, https://bit-orbit.github.io/p/blade-runner/39_hu5115865521917594662.png 1024w" - loading="lazy" - - alt="blade runner 39" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/40.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/40_hu3124527645647928171.png 480w, https://bit-orbit.github.io/p/blade-runner/40_hu5916975982205344367.png 1024w" - loading="lazy" - - alt="blade runner 40" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/41.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/41_hu14134359656351733033.png 480w, https://bit-orbit.github.io/p/blade-runner/41_hu13715766593884564825.png 1024w" - loading="lazy" - - alt="blade runner 41" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/42.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/42_hu6373522469713299337.png 480w, https://bit-orbit.github.io/p/blade-runner/42_hu16712772082313524707.png 1024w" - loading="lazy" - - alt="blade runner 42" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/43.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/43_hu133280902362998775.png 480w, https://bit-orbit.github.io/p/blade-runner/43_hu9137137028374640853.png 1024w" - loading="lazy" - - alt="blade runner 43" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/44.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/44_hu6510622330663816696.png 480w, https://bit-orbit.github.io/p/blade-runner/44_hu6165608683585085195.png 1024w" - loading="lazy" - - alt="blade runner 44" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/45.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/45_hu1699412177626236516.png 480w, https://bit-orbit.github.io/p/blade-runner/45_hu1979519427043577753.png 1024w" - loading="lazy" - - alt="blade runner 45" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/46.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/46_hu16083489802403887560.png 480w, https://bit-orbit.github.io/p/blade-runner/46_hu8408815140995077934.png 1024w" - loading="lazy" - - alt="blade runner 46" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/47.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/47_hu18398919809836666953.png 480w, https://bit-orbit.github.io/p/blade-runner/47_hu2667296751264683546.png 1024w" - loading="lazy" - - alt="blade runner 47" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/48.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/48_hu14993772505347617599.png 480w, https://bit-orbit.github.io/p/blade-runner/48_hu10682812941153677363.png 1024w" - loading="lazy" - - alt="blade runner 48" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/49.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/49_hu16411694887249070859.png 480w, https://bit-orbit.github.io/p/blade-runner/49_hu16240301775673342794.png 1024w" - loading="lazy" - - alt="blade runner 49" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/50.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/50_hu8503803600664312732.png 480w, https://bit-orbit.github.io/p/blade-runner/50_hu12368446158085776281.png 1024w" - loading="lazy" - - alt="blade runner 50" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/51.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/51_hu11126887880842881081.png 480w, https://bit-orbit.github.io/p/blade-runner/51_hu233188108159875576.png 1024w" - loading="lazy" - - alt="blade runner 51" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/52.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/52_hu11431950899460230050.png 480w, https://bit-orbit.github.io/p/blade-runner/52_hu7298926683432624726.png 1024w" - loading="lazy" - - alt="blade runner 52" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/53.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/53_hu13228039747128200342.png 480w, https://bit-orbit.github.io/p/blade-runner/53_hu16111526649218680588.png 1024w" - loading="lazy" - - alt="blade runner 53" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/54.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/54_hu9342162793044175734.png 480w, https://bit-orbit.github.io/p/blade-runner/54_hu15024151033432483079.png 1024w" - loading="lazy" - - alt="blade runner 54" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/55.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/55_hu12321936001541439659.png 480w, https://bit-orbit.github.io/p/blade-runner/55_hu7429903137234845210.png 1024w" - loading="lazy" - - alt="blade runner 55" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/56.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/56_hu3324342216882080000.png 480w, https://bit-orbit.github.io/p/blade-runner/56_hu13900367100943885646.png 1024w" - loading="lazy" - - alt="blade runner 56" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/57.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/57_hu10899987809346777574.png 480w, https://bit-orbit.github.io/p/blade-runner/57_hu1833878132194999715.png 1024w" - loading="lazy" - - alt="blade runner 57" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/58.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/58_hu2749719750675113407.png 480w, https://bit-orbit.github.io/p/blade-runner/58_hu13712655613043964122.png 1024w" - loading="lazy" - - alt="blade runner 58" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/59.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/59_hu1398855735980946821.png 480w, https://bit-orbit.github.io/p/blade-runner/59_hu1461339919111804308.png 1024w" - loading="lazy" - - alt="blade runner 59" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/60.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/60_hu13599966525084938849.png 480w, https://bit-orbit.github.io/p/blade-runner/60_hu4217891253397448815.png 1024w" - loading="lazy" - - alt="blade runner 60" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/61.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/61_hu2703060499403853830.png 480w, https://bit-orbit.github.io/p/blade-runner/61_hu8604228838678676103.png 1024w" - loading="lazy" - - alt="blade runner 61" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/62.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/62_hu3743067860640072021.png 480w, https://bit-orbit.github.io/p/blade-runner/62_hu13247994899625272284.png 1024w" - loading="lazy" - - alt="blade runner 62" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/63.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/63_hu5521921960590566458.png 480w, https://bit-orbit.github.io/p/blade-runner/63_hu8576871411060827418.png 1024w" - loading="lazy" - - alt="blade runner 63" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/64.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/64_hu7077094138994732059.png 480w, https://bit-orbit.github.io/p/blade-runner/64_hu11639906649533939474.png 1024w" - loading="lazy" - - alt="blade runner 64" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/65.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/65_hu16953234321408972377.png 480w, https://bit-orbit.github.io/p/blade-runner/65_hu3408024607592661017.png 1024w" - loading="lazy" - - alt="blade runner 65" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/66.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/66_hu11459712331105937605.png 480w, https://bit-orbit.github.io/p/blade-runner/66_hu4644537247085346227.png 1024w" - loading="lazy" - - alt="blade runner 66" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/67.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/67_hu9383573372408392686.png 480w, https://bit-orbit.github.io/p/blade-runner/67_hu10769327503186556723.png 1024w" - loading="lazy" - - alt="blade runner 67" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/68.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/68_hu2177780438990668669.png 480w, https://bit-orbit.github.io/p/blade-runner/68_hu18386143906580524418.png 1024w" - loading="lazy" - - alt="blade runner 68" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/69.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/69_hu3922140427780096899.png 480w, https://bit-orbit.github.io/p/blade-runner/69_hu1155080904206925861.png 1024w" - loading="lazy" - - alt="blade runner 69" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/70.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/70_hu15159042566928364666.png 480w, https://bit-orbit.github.io/p/blade-runner/70_hu5835195235087609063.png 1024w" - loading="lazy" - - alt="blade runner 70" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/71.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/71_hu5520131513925869815.png 480w, https://bit-orbit.github.io/p/blade-runner/71_hu766506351619066374.png 1024w" - loading="lazy" - - alt="blade runner 71" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/72.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/72_hu3430491252945314972.png 480w, https://bit-orbit.github.io/p/blade-runner/72_hu15766962828315836446.png 1024w" - loading="lazy" - - alt="blade runner 72" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/73.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/73_hu14789660611827108309.png 480w, https://bit-orbit.github.io/p/blade-runner/73_hu17840206115327690890.png 1024w" - loading="lazy" - - alt="blade runner 73" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/74.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/74_hu1245649257657215050.png 480w, https://bit-orbit.github.io/p/blade-runner/74_hu14591817395085345655.png 1024w" - loading="lazy" - - alt="blade runner 74" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/75.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/75_hu12103176185954374702.png 480w, https://bit-orbit.github.io/p/blade-runner/75_hu11912668943504722471.png 1024w" - loading="lazy" - - alt="blade runner 75" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/76.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/76_hu17826661668559987462.png 480w, https://bit-orbit.github.io/p/blade-runner/76_hu1468709210677229705.png 1024w" - loading="lazy" - - alt="blade runner 76" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/77.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/77_hu6844293341813334299.png 480w, https://bit-orbit.github.io/p/blade-runner/77_hu17430500291569764572.png 1024w" - loading="lazy" - - alt="blade runner 77" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/78.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/78_hu10710751401961735765.png 480w, https://bit-orbit.github.io/p/blade-runner/78_hu16816878939617923975.png 1024w" - loading="lazy" - - alt="blade runner 78" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/79.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/79_hu13480399198147170633.png 480w, https://bit-orbit.github.io/p/blade-runner/79_hu11463438054987216457.png 1024w" - loading="lazy" - - alt="blade runner 79" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/80.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/80_hu15861010109584580541.png 480w, https://bit-orbit.github.io/p/blade-runner/80_hu185002805574539294.png 1024w" - loading="lazy" - - alt="blade runner 80" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/81.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/81_hu7746682545453067471.png 480w, https://bit-orbit.github.io/p/blade-runner/81_hu8795496398668933935.png 1024w" - loading="lazy" - - alt="blade runner 81" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -></p> - - - - fsdfd - https://bit-orbit.github.io/gallery/rick-and-morty/ - Sat, 01 Oct 2022 01:46:23 +0330 - - https://bit-orbit.github.io/gallery/rick-and-morty/ - <img src="https://bit-orbit.github.io/images/post/matrix.jpg" alt="Featured image of post fsdfd" /><p><img src="https://bit-orbit.github.io/gallery/rick-and-morty/a.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/gallery/rick-and-morty/a_hu18203028458765281991.png 480w, https://bit-orbit.github.io/gallery/rick-and-morty/a_hu640960131545633292.png 1024w" - loading="lazy" - - alt="p" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> - - - - - +حتی یک سریال انیمیشنی هم داره.</p> +<hr> +<p><img src="https://bit-orbit.github.io/p/blade-runner/1.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/1_hu18203028458765281991.png 480w, https://bit-orbit.github.io/p/blade-runner/1_hu640960131545633292.png 1024w" +loading="lazy" +alt="blade runner 1" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/2.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/2_hu4178962394613322091.png 480w, https://bit-orbit.github.io/p/blade-runner/2_hu16711218221384379251.png 1024w" +loading="lazy" +alt="blade runner 2" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/3.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/3_hu5609019162047173584.png 480w, https://bit-orbit.github.io/p/blade-runner/3_hu10217638583400693183.png 1024w" +loading="lazy" +alt="blade runner 3" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/4.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/4_hu5282573958070938966.png 480w, https://bit-orbit.github.io/p/blade-runner/4_hu4482592906922858564.png 1024w" +loading="lazy" +alt="blade runner 4" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/5.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/5_hu2506888640986000463.png 480w, https://bit-orbit.github.io/p/blade-runner/5_hu14496052156153432936.png 1024w" +loading="lazy" +alt="blade runner 5" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/6.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/6_hu10830826830489925101.png 480w, https://bit-orbit.github.io/p/blade-runner/6_hu6736199323060390766.png 1024w" +loading="lazy" +alt="blade runner 6" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/7.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/7_hu7985689059426135154.png 480w, https://bit-orbit.github.io/p/blade-runner/7_hu11432963024129874521.png 1024w" +loading="lazy" +alt="blade runner 7" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/8.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/8_hu4012554199744743050.png 480w, https://bit-orbit.github.io/p/blade-runner/8_hu8202217306378929282.png 1024w" +loading="lazy" +alt="blade runner 8" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/9.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/9_hu15196113375778977307.png 480w, https://bit-orbit.github.io/p/blade-runner/9_hu15870904207399095068.png 1024w" +loading="lazy" +alt="blade runner 9" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/10.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/10_hu12618574808288748938.png 480w, https://bit-orbit.github.io/p/blade-runner/10_hu3754466868428096437.png 1024w" +loading="lazy" +alt="blade runner 10" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/11.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/11_hu11410618264927909791.png 480w, https://bit-orbit.github.io/p/blade-runner/11_hu4277845410507795162.png 1024w" +loading="lazy" +alt="blade runner 11" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/12.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/12_hu3215006993020594134.png 480w, https://bit-orbit.github.io/p/blade-runner/12_hu14782705020137182551.png 1024w" +loading="lazy" +alt="blade runner 12" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/13.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/13_hu4232052633755214396.png 480w, https://bit-orbit.github.io/p/blade-runner/13_hu1346923444079228958.png 1024w" +loading="lazy" +alt="blade runner 13" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/14.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/14_hu6781889161464007647.png 480w, https://bit-orbit.github.io/p/blade-runner/14_hu5858317841221136074.png 1024w" +loading="lazy" +alt="blade runner 14" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/15.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/15_hu10739297907183961586.png 480w, https://bit-orbit.github.io/p/blade-runner/15_hu4676734704812020313.png 1024w" +loading="lazy" +alt="blade runner 15" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/16.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/16_hu3808253778841193055.png 480w, https://bit-orbit.github.io/p/blade-runner/16_hu5492897964783807333.png 1024w" +loading="lazy" +alt="blade runner 16" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/17.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/17_hu15906018156274302476.png 480w, https://bit-orbit.github.io/p/blade-runner/17_hu9261422108566517811.png 1024w" +loading="lazy" +alt="blade runner 17" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/18.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/18_hu15131318335002406021.png 480w, https://bit-orbit.github.io/p/blade-runner/18_hu2714024725375581381.png 1024w" +loading="lazy" +alt="blade runner 18" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/19.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/19_hu15917001927459466555.png 480w, https://bit-orbit.github.io/p/blade-runner/19_hu7138664998729935235.png 1024w" +loading="lazy" +alt="blade runner 19" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/20.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/20_hu12851721143569399755.png 480w, https://bit-orbit.github.io/p/blade-runner/20_hu17782052457319326651.png 1024w" +loading="lazy" +alt="blade runner 20" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/21.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/21_hu11834245209561571419.png 480w, https://bit-orbit.github.io/p/blade-runner/21_hu14820715527791141841.png 1024w" +loading="lazy" +alt="blade runner 21" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/22.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/22_hu9465551851937469165.png 480w, https://bit-orbit.github.io/p/blade-runner/22_hu11135687547915466301.png 1024w" +loading="lazy" +alt="blade runner 22" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/23.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/23_hu8775898688435684639.png 480w, https://bit-orbit.github.io/p/blade-runner/23_hu12045446326187223604.png 1024w" +loading="lazy" +alt="blade runner 23" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/24.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/24_hu11294028215810436705.png 480w, https://bit-orbit.github.io/p/blade-runner/24_hu18231892368219913679.png 1024w" +loading="lazy" +alt="blade runner 24" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/25.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/25_hu8761348975154971042.png 480w, https://bit-orbit.github.io/p/blade-runner/25_hu11619135011095841436.png 1024w" +loading="lazy" +alt="blade runner 25" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/26.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/26_hu12440180780663804535.png 480w, https://bit-orbit.github.io/p/blade-runner/26_hu5713483712705107807.png 1024w" +loading="lazy" +alt="blade runner 26" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/27.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/27_hu9071525693992834621.png 480w, https://bit-orbit.github.io/p/blade-runner/27_hu7726486096834551096.png 1024w" +loading="lazy" +alt="blade runner 27" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/28.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/28_hu11320496635163544245.png 480w, https://bit-orbit.github.io/p/blade-runner/28_hu11331001432335218241.png 1024w" +loading="lazy" +alt="blade runner 28" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/29.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/29_hu17546110262762349629.png 480w, https://bit-orbit.github.io/p/blade-runner/29_hu7015101591688597602.png 1024w" +loading="lazy" +alt="blade runner 29" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/30.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/30_hu15249851528067745990.png 480w, https://bit-orbit.github.io/p/blade-runner/30_hu8044846373972211628.png 1024w" +loading="lazy" +alt="blade runner 30" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/31.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/31_hu16636699931134635318.png 480w, https://bit-orbit.github.io/p/blade-runner/31_hu3359540856338574783.png 1024w" +loading="lazy" +alt="blade runner 31" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/32.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/32_hu10145312805175734704.png 480w, https://bit-orbit.github.io/p/blade-runner/32_hu3309584826581134280.png 1024w" +loading="lazy" +alt="blade runner 32" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/33.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/33_hu337644318686516906.png 480w, https://bit-orbit.github.io/p/blade-runner/33_hu14654175255314197039.png 1024w" +loading="lazy" +alt="blade runner 33" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/34.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/34_hu15189323557078556399.png 480w, https://bit-orbit.github.io/p/blade-runner/34_hu16363268471537170182.png 1024w" +loading="lazy" +alt="blade runner 34" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/35.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/35_hu8322119150285037296.png 480w, https://bit-orbit.github.io/p/blade-runner/35_hu533810586026253092.png 1024w" +loading="lazy" +alt="blade runner 35" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/36.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/36_hu4862540847732595212.png 480w, https://bit-orbit.github.io/p/blade-runner/36_hu17551721700503129844.png 1024w" +loading="lazy" +alt="blade runner 36" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/37.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/37_hu13555456324091659085.png 480w, https://bit-orbit.github.io/p/blade-runner/37_hu17478514556830379674.png 1024w" +loading="lazy" +alt="blade runner 37" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/38.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/38_hu12194633382067857783.png 480w, https://bit-orbit.github.io/p/blade-runner/38_hu2277895787698302016.png 1024w" +loading="lazy" +alt="blade runner 38" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/39.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/39_hu12337681532498135604.png 480w, https://bit-orbit.github.io/p/blade-runner/39_hu5115865521917594662.png 1024w" +loading="lazy" +alt="blade runner 39" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/40.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/40_hu3124527645647928171.png 480w, https://bit-orbit.github.io/p/blade-runner/40_hu5916975982205344367.png 1024w" +loading="lazy" +alt="blade runner 40" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/41.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/41_hu14134359656351733033.png 480w, https://bit-orbit.github.io/p/blade-runner/41_hu13715766593884564825.png 1024w" +loading="lazy" +alt="blade runner 41" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/42.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/42_hu6373522469713299337.png 480w, https://bit-orbit.github.io/p/blade-runner/42_hu16712772082313524707.png 1024w" +loading="lazy" +alt="blade runner 42" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/43.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/43_hu133280902362998775.png 480w, https://bit-orbit.github.io/p/blade-runner/43_hu9137137028374640853.png 1024w" +loading="lazy" +alt="blade runner 43" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/44.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/44_hu6510622330663816696.png 480w, https://bit-orbit.github.io/p/blade-runner/44_hu6165608683585085195.png 1024w" +loading="lazy" +alt="blade runner 44" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/45.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/45_hu1699412177626236516.png 480w, https://bit-orbit.github.io/p/blade-runner/45_hu1979519427043577753.png 1024w" +loading="lazy" +alt="blade runner 45" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/46.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/46_hu16083489802403887560.png 480w, https://bit-orbit.github.io/p/blade-runner/46_hu8408815140995077934.png 1024w" +loading="lazy" +alt="blade runner 46" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/47.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/47_hu18398919809836666953.png 480w, https://bit-orbit.github.io/p/blade-runner/47_hu2667296751264683546.png 1024w" +loading="lazy" +alt="blade runner 47" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/48.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/48_hu14993772505347617599.png 480w, https://bit-orbit.github.io/p/blade-runner/48_hu10682812941153677363.png 1024w" +loading="lazy" +alt="blade runner 48" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/49.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/49_hu16411694887249070859.png 480w, https://bit-orbit.github.io/p/blade-runner/49_hu16240301775673342794.png 1024w" +loading="lazy" +alt="blade runner 49" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/50.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/50_hu8503803600664312732.png 480w, https://bit-orbit.github.io/p/blade-runner/50_hu12368446158085776281.png 1024w" +loading="lazy" +alt="blade runner 50" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/51.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/51_hu11126887880842881081.png 480w, https://bit-orbit.github.io/p/blade-runner/51_hu233188108159875576.png 1024w" +loading="lazy" +alt="blade runner 51" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/52.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/52_hu11431950899460230050.png 480w, https://bit-orbit.github.io/p/blade-runner/52_hu7298926683432624726.png 1024w" +loading="lazy" +alt="blade runner 52" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/53.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/53_hu13228039747128200342.png 480w, https://bit-orbit.github.io/p/blade-runner/53_hu16111526649218680588.png 1024w" +loading="lazy" +alt="blade runner 53" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/54.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/54_hu9342162793044175734.png 480w, https://bit-orbit.github.io/p/blade-runner/54_hu15024151033432483079.png 1024w" +loading="lazy" +alt="blade runner 54" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/55.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/55_hu12321936001541439659.png 480w, https://bit-orbit.github.io/p/blade-runner/55_hu7429903137234845210.png 1024w" +loading="lazy" +alt="blade runner 55" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/56.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/56_hu3324342216882080000.png 480w, https://bit-orbit.github.io/p/blade-runner/56_hu13900367100943885646.png 1024w" +loading="lazy" +alt="blade runner 56" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/57.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/57_hu10899987809346777574.png 480w, https://bit-orbit.github.io/p/blade-runner/57_hu1833878132194999715.png 1024w" +loading="lazy" +alt="blade runner 57" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/58.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/58_hu2749719750675113407.png 480w, https://bit-orbit.github.io/p/blade-runner/58_hu13712655613043964122.png 1024w" +loading="lazy" +alt="blade runner 58" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/59.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/59_hu1398855735980946821.png 480w, https://bit-orbit.github.io/p/blade-runner/59_hu1461339919111804308.png 1024w" +loading="lazy" +alt="blade runner 59" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/60.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/60_hu13599966525084938849.png 480w, https://bit-orbit.github.io/p/blade-runner/60_hu4217891253397448815.png 1024w" +loading="lazy" +alt="blade runner 60" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/61.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/61_hu2703060499403853830.png 480w, https://bit-orbit.github.io/p/blade-runner/61_hu8604228838678676103.png 1024w" +loading="lazy" +alt="blade runner 61" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/62.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/62_hu3743067860640072021.png 480w, https://bit-orbit.github.io/p/blade-runner/62_hu13247994899625272284.png 1024w" +loading="lazy" +alt="blade runner 62" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/63.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/63_hu5521921960590566458.png 480w, https://bit-orbit.github.io/p/blade-runner/63_hu8576871411060827418.png 1024w" +loading="lazy" +alt="blade runner 63" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/64.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/64_hu7077094138994732059.png 480w, https://bit-orbit.github.io/p/blade-runner/64_hu11639906649533939474.png 1024w" +loading="lazy" +alt="blade runner 64" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/65.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/65_hu16953234321408972377.png 480w, https://bit-orbit.github.io/p/blade-runner/65_hu3408024607592661017.png 1024w" +loading="lazy" +alt="blade runner 65" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/66.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/66_hu11459712331105937605.png 480w, https://bit-orbit.github.io/p/blade-runner/66_hu4644537247085346227.png 1024w" +loading="lazy" +alt="blade runner 66" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/67.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/67_hu9383573372408392686.png 480w, https://bit-orbit.github.io/p/blade-runner/67_hu10769327503186556723.png 1024w" +loading="lazy" +alt="blade runner 67" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/68.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/68_hu2177780438990668669.png 480w, https://bit-orbit.github.io/p/blade-runner/68_hu18386143906580524418.png 1024w" +loading="lazy" +alt="blade runner 68" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/69.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/69_hu3922140427780096899.png 480w, https://bit-orbit.github.io/p/blade-runner/69_hu1155080904206925861.png 1024w" +loading="lazy" +alt="blade runner 69" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/70.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/70_hu15159042566928364666.png 480w, https://bit-orbit.github.io/p/blade-runner/70_hu5835195235087609063.png 1024w" +loading="lazy" +alt="blade runner 70" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/71.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/71_hu5520131513925869815.png 480w, https://bit-orbit.github.io/p/blade-runner/71_hu766506351619066374.png 1024w" +loading="lazy" +alt="blade runner 71" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/72.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/72_hu3430491252945314972.png 480w, https://bit-orbit.github.io/p/blade-runner/72_hu15766962828315836446.png 1024w" +loading="lazy" +alt="blade runner 72" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/73.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/73_hu14789660611827108309.png 480w, https://bit-orbit.github.io/p/blade-runner/73_hu17840206115327690890.png 1024w" +loading="lazy" +alt="blade runner 73" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/74.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/74_hu1245649257657215050.png 480w, https://bit-orbit.github.io/p/blade-runner/74_hu14591817395085345655.png 1024w" +loading="lazy" +alt="blade runner 74" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/75.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/75_hu12103176185954374702.png 480w, https://bit-orbit.github.io/p/blade-runner/75_hu11912668943504722471.png 1024w" +loading="lazy" +alt="blade runner 75" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/76.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/76_hu17826661668559987462.png 480w, https://bit-orbit.github.io/p/blade-runner/76_hu1468709210677229705.png 1024w" +loading="lazy" +alt="blade runner 76" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/77.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/77_hu6844293341813334299.png 480w, https://bit-orbit.github.io/p/blade-runner/77_hu17430500291569764572.png 1024w" +loading="lazy" +alt="blade runner 77" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/78.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/78_hu10710751401961735765.png 480w, https://bit-orbit.github.io/p/blade-runner/78_hu16816878939617923975.png 1024w" +loading="lazy" +alt="blade runner 78" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/79.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/79_hu13480399198147170633.png 480w, https://bit-orbit.github.io/p/blade-runner/79_hu11463438054987216457.png 1024w" +loading="lazy" +alt="blade runner 79" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/80.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/80_hu15861010109584580541.png 480w, https://bit-orbit.github.io/p/blade-runner/80_hu185002805574539294.png 1024w" +loading="lazy" +alt="blade runner 80" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/81.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/81_hu7746682545453067471.png 480w, https://bit-orbit.github.io/p/blade-runner/81_hu8795496398668933935.png 1024w" +loading="lazy" +alt="blade runner 81" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></p>fsdfdhttps://bit-orbit.github.io/gallery/rick-and-morty/Sat, 01 Oct 2022 01:46:23 +0330https://bit-orbit.github.io/gallery/rick-and-morty/<img src="https://bit-orbit.github.io/images/post/matrix.jpg" alt="Featured image of post fsdfd" /><p><img src="https://bit-orbit.github.io/gallery/rick-and-morty/a.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/gallery/rick-and-morty/a_hu18203028458765281991.png 480w, https://bit-orbit.github.io/gallery/rick-and-morty/a_hu640960131545633292.png 1024w" +loading="lazy" +alt="p" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> \ No newline at end of file diff --git a/docs/categories/movie/page/1/index.html b/docs/categories/movie/page/1/index.html index c55ccb5..03cb81a 100644 --- a/docs/categories/movie/page/1/index.html +++ b/docs/categories/movie/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/categories/movie/ - - - - - - +https://bit-orbit.github.io/categories/movie/ + \ No newline at end of file diff --git a/docs/categories/network/index.html b/docs/categories/network/index.html index 3417b37..470f499 100644 --- a/docs/categories/network/index.html +++ b/docs/categories/network/index.html @@ -1,559 +1,37 @@ - - - - -Category: Network - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Categories - -

- -
-
-

1 صفحه

-

Network

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Category: Network - bit-orbit +

Categories

1 صفحه

Network

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git a/docs/categories/network/index.xml b/docs/categories/network/index.xml index 84f733a..a0ab805 100644 --- a/docs/categories/network/index.xml +++ b/docs/categories/network/index.xml @@ -1,32 +1,18 @@ - - - - Network on bit-orbit - https://bit-orbit.github.io/categories/network/ - Recent content in Network on bit-orbit - Hugo -- gohugo.io - fa - Thu, 01 Aug 2024 03:03:46 +0330 - etc/resolve.conf/ - https://bit-orbit.github.io/p/etc/resolve.conf/ - Thu, 01 Aug 2024 03:03:46 +0330 - - https://bit-orbit.github.io/p/etc/resolve.conf/ - <img src="https://bit-orbit.github.io/images/post/OIG4.jpeg" alt="Featured image of post etc/resolve.conf/" /><span style='font-size: 25px'> -<h3 id="مقدمه">مقدمه</h3> -<p>همیشه موقع ویرایش فایل -<em>resolve.conf</em> +Network on bit-orbithttps://bit-orbit.github.io/categories/network/Recent content in Network on bit-orbitHugo -- gohugo.iofaThu, 01 Aug 2024 03:03:46 +0330etc/resolve.conf/https://bit-orbit.github.io/p/etc/resolve.conf/Thu, 01 Aug 2024 03:03:46 +0330https://bit-orbit.github.io/p/etc/resolve.conf/<img src="https://bit-orbit.github.io/images/post/OIG4.jpeg" alt="Featured image of post etc/resolve.conf/" /><span style='font-size: 25px'> +<h3 id="مقدمه">مقدمه +</h3><p>همیشه موقع ویرایش فایل +<em>resolve.conf</em> برام سوال بود که گزین های دیگه‌ای که توی این فایل تنظیم شده‌اند چکاری انجام می‌دهند. درواقع من همیشه دستور -<code>namveserver</code> +<code>namveserver</code> را برای تغییر سرور -<em>dns</em> +<em>dns</em> ویرایش می‌کردم. اما دستور هایی دیگه‌ای هم برای این فایل وجود دارد که لیست آنها در -<code>man resolve.conf</code> -توضیح داده شده است.</p> -<p>توی این پست من بعضی از دستورات این فایل را توضیح می‌دم.</p> -<blockquote> -<p>در مرحله اول یادتون باشه لینوکس هایی که +<code>man resolve.conf</code> +توضیح داده شده است.</p> +<p>توی این پست من بعضی از دستورات این فایل را توضیح می‌دم.</p> +<blockquote> +<p>در مرحله اول یادتون باشه لینوکس هایی که systemd دارند، معمولا از سرویس systemd-resolved @@ -36,48 +22,48 @@ DNS resolve می‌کند و سپس آنها را کش می‌کند که یک دامنه را چندین بار resolve -نکند.</p> -</blockquote> -<blockquote> -<p>یک دامنه حد اقل از <em>دو</em> بخش تشکیل می‌شود.</p> -<ol> -<li>TLD</li> -<li>Domain</li> -</ol> -</blockquote> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span><span class="lnt">3 -</span><span class="lnt">4 -</span><span class="lnt">5 -</span><span class="lnt">6 -</span><span class="lnt">7 -</span><span class="lnt">8 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">bin.example.com -</span></span><span class="line"><span class="cl">│ │ │ -</span></span><span class="line"><span class="cl">│ │ └─► TDL(Top Level Domain) -</span></span><span class="line"><span class="cl">│ │ -</span></span><span class="line"><span class="cl">│ └───────► Domain -</span></span><span class="line"><span class="cl">│ -</span></span><span class="line"><span class="cl">└─────────────► SubDomain -</span></span><span class="line"><span class="cl"> -</span></span></code></pre></td></tr></table> -</div> -</div><hr> -<h3 id="دستورات">دستورات</h3> -<ul> -<li> -<p>1 <code>nameserver</code></p> -<p>این دستور برای تعیین +نکند.</p> +</blockquote> +<blockquote> +<p>یک دامنه حد اقل از <em>دو</em> بخش تشکیل می‌شود.</p> +<ol> +<li>TLD</li> +<li>Domain</li> +</ol> +</blockquote> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span><span class="lnt">8 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">bin.example.com +</span></span><span class="line"><span class="cl">│ │ │ +</span></span><span class="line"><span class="cl">│ │ └─► TDL(Top Level Domain) +</span></span><span class="line"><span class="cl">│ │ +</span></span><span class="line"><span class="cl">│ └───────► Domain +</span></span><span class="line"><span class="cl">│ +</span></span><span class="line"><span class="cl">└─────────────► SubDomain +</span></span><span class="line"><span class="cl"> +</span></span></code></pre></td></tr></table> +</div> +</div><hr> +<h3 id="دستورات">دستورات +</h3><ul> +<li> +<p>1 <code>nameserver</code></p> +<p>این دستور برای تعیین IP یک سرور DNS -استفاده می‌شود.(در واقع اینجا منظورم یک سرویسی است که به نامه دامنه ها پاسخ دهد که به آن NS می‌گویم.)</p> -<p>شما می‌توانید تا حداقل سه +استفاده می‌شود.(در واقع اینجا منظورم یک سرویسی است که به نامه دامنه ها پاسخ دهد که به آن NS می‌گویم.)</p> +<p>شما می‌توانید تا حداقل سه IP لیست کنید، و resolver @@ -86,68 +72,68 @@ resolver NS جواب گو نباشد، از دیگر NS -های لیست شده استفاده خواهد شد.</p> -<p>اگر به همین ترتیب هر یک از +های لیست شده استفاده خواهد شد.</p> +<p>اگر به همین ترتیب هر یک از NS -ها جوابگو نباشد، کوئری ها از اول شروع می‌شود تا به حداکثر تعداد کوئری تعیین شده برسد.</p> -<p>برای مثال من می‌توانم چند +ها جوابگو نباشد، کوئری ها از اول شروع می‌شود تا به حداکثر تعداد کوئری تعیین شده برسد.</p> +<p>برای مثال من می‌توانم چند NS -مختلف را برای خودم تعیین کنم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">nameserver 1.1.1.1 -</span></span><span class="line"><span class="cl">nameserver 8.8.8.8 -</span></span></code></pre></td></tr></table> -</div> -</div></li> -</ul> -<hr> -<ul> -<li> -<p>2 <code>options</code></p> -<p>برای این دستور متغیر های مختلفی را می‌توان تعیین کرد.</p> -<ul> -<li> -<p>2.1 <code>ndots</code></p> -<ul> -<li> -<p>حداقل هر دامنه‌ای در سطح اینترنت یک نقطه دارد، برای مثال +مختلف را برای خودم تعیین کنم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">nameserver 1.1.1.1 +</span></span><span class="line"><span class="cl">nameserver 8.8.8.8 +</span></span></code></pre></td></tr></table> +</div> +</div></li> +</ul> +<hr> +<ul> +<li> +<p>2 <code>options</code></p> +<p>برای این دستور متغیر های مختلفی را می‌توان تعیین کرد.</p> +<ul> +<li> +<p>2.1 <code>ndots</code></p> +<ul> +<li> +<p>حداقل هر دامنه‌ای در سطح اینترنت یک نقطه دارد، برای مثال google.com یک نقطه دارد. شما می‌توانید با این متغیر تعین کنید که دامنه‌های در سطح اینترنت باید چند نقطه داشته باشند، هر نقطه نشانه ساب دامنه‌ است. -برای مثال به صورت پیشفرض این متغیر <em>1</em> تنظیم شده است. +برای مثال به صورت پیشفرض این متغیر <em>1</em> تنظیم شده است. به این معنی است که هر دامنه‌ای یک نقطه داشت، این دامنه در سطح اینترنت است. ولی اگر شما مقدار این متغیر را 2 تنظیم کنید، دامنه‌ای مثل -<code>google.com</code> +<code>google.com</code> بعنوان دامنه لوکال تشخیص داده خواهد شد و -<code>hostname</code> +<code>hostname</code> شما به اول دامنه اضافه خواهد شد. مثلا اگر -<code>hostname</code> +<code>hostname</code> شما -<code>arya</code> +<code>arya</code> باشد، دامنه به این شکل کوئری زده خواهد شد -<code>google.com.arya</code></p> -<p>در صورتی که شما برای جست و جوی یک دامنه از هیچ -<strong>TLD</strong> +<code>google.com.arya</code></p> +<p>در صورتی که شما برای جست و جوی یک دامنه از هیچ +<strong>TLD</strong> استفاده نکید، از -<code>hostname</code> +<code>hostname</code> و یا از مقداری که برای -<code>search</code> -مشخص کرده‌اید استفاده خواهد شد.</p> -</li> -</ul> -</li> -<li> -<p>2.2 <code>timeout</code></p> -<ul> -<li>این متغیر تعیین می‌کند که +<code>search</code> +مشخص کرده‌اید استفاده خواهد شد.</p> +</li> +</ul> +</li> +<li> +<p>2.2 <code>timeout</code></p> +<ul> +<li>این متغیر تعیین می‌کند که resolver چه مقدار زمانی باید منتظر جواب از سمت NS @@ -155,19 +141,19 @@ NS NS جواب نداد، از NS -های بعدی سوال کند.</li> -</ul> -</li> -<li> -<p>2.3 <code>attempts</code></p> -<ul> -<li>این متغیر تعین می‌کند که +های بعدی سوال کند.</li> +</ul> +</li> +<li> +<p>2.3 <code>attempts</code></p> +<ul> +<li>این متغیر تعین می‌کند که resolver در صورت جواب ندادن توسط NS -باید در نهایت چند کوئری دیگر ارسال کند.</li> -</ul> -<p>برای مثال اگر اولین +باید در نهایت چند کوئری دیگر ارسال کند.</li> +</ul> +<p>برای مثال اگر اولین NS پاسخ نداد، سوال از NS @@ -178,12 +164,12 @@ attempts attempts مجوع سوال ها از همه NS -ها است.)</p> -</li> -<li> -<p>2.4 <code>rotate</code></p> -<ul> -<li>به صورت پیشفرض کوئری های +ها است.)</p> +</li> +<li> +<p>2.4 <code>rotate</code></p> +<ul> +<li>به صورت پیشفرض کوئری های DNS همه برای اولین NS @@ -194,50 +180,50 @@ NS ها تقسیم کنیم، کافیست از این متغیر استفاده کنیم. اینکار باعث می‌شود که هر کوئری ها به صورت چرخشی به ترتیب به NS -های لیست شده ارسال شود.</li> -</ul> -</li> -</ul> -</li> -</ul> -<hr> -<ul> -<li>3 <code>search</code> +های لیست شده ارسال شود.</li> +</ul> +</li> +</ul> +</li> +</ul> +<hr> +<ul> +<li>3 <code>search</code> همانطور که در مثال بالا گفتم، ما نام دامنه ها را تنظیم می‌کنیم که حداقل وقتی یک نقطه دارند، resolver آنها را دامنه‌ در سطح اینترنت در نظر بگیرد و به NS کوئری بزند. ولی اگر هیچ نقطه‌ای نداشت و یا شما -<code>ndots</code> +<code>ndots</code> را بیشتر یا مساوی با 2 نتظیم کرده باشید، -<code>hostname</code> +<code>hostname</code> سیستم شما به آخر آن دامنه اضافه خواهد شد و یک دامنه داخلی (local) تلقی خواهد شد. اما اگر می‌خواهید قبل از اضافه شدن -<code>hostname</code> -به آن چیز دیگری اضافه کنید، کافیست متغیر سرچ را تعریف کنید و یک یا چند مقدار برای آن تعیین کنید.</li> -</ul> -<hr> -<h3 id="سرویس-systemd-resolve">سرویس systemd-resolve</h3> -<p>اگر به فایل +<code>hostname</code> +به آن چیز دیگری اضافه کنید، کافیست متغیر سرچ را تعریف کنید و یک یا چند مقدار برای آن تعیین کنید.</li> +</ul> +<hr> +<h3 id="سرویس-systemd-resolve">سرویس systemd-resolve +</h3><p>اگر به فایل /etc/resolve.conf نگاه کنید، می‌بینید که یک ns برای شما تنظیم شده است که IP -آن داخلی است.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl"># cat /etc/resolve.conf -</span></span><span class="line"><span class="cl">nameserver 127.0.0.53 -</span></span></code></pre></td></tr></table> -</div> -</div><p>همانطور که توی نکته‌ای در مقدمه این پست گفتم، +آن داخلی است.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl"># cat /etc/resolve.conf +</span></span><span class="line"><span class="cl">nameserver 127.0.0.53 +</span></span></code></pre></td></tr></table> +</div> +</div><p>همانطور که توی نکته‌ای در مقدمه این پست گفتم، سیستم عاملی هایی که از systemd استفاده می‌کنند معمولا سرویس @@ -249,80 +235,76 @@ IP 127.0.0.53 و 127.0.0.54 -شنود می‌کند.</p> -<p>این سرویس خودش یک کانفیگ در -<code>etc/ststemd/resolved.conf/</code> -دارد.</p> -<p>اگر داخل این فایل را نگاه کنیم، می‌بنیم که در قسمت +شنود می‌کند.</p> +<p>این سرویس خودش یک کانفیگ در +<code>etc/ststemd/resolved.conf/</code> +دارد.</p> +<p>اگر داخل این فایل را نگاه کنیم، می‌بنیم که در قسمت ‌DNS می‌توان NS های بالاتر را وارد کرد، اینکار باعث می‌شود که سیستم شما وقتی یک دامنه را در حافظه کش خود نداشت، از NS -های بالاتر که در این فایل تنظیم شده است سوال کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">[Resolve] -</span></span><span class="line"><span class="cl">DNS=1.1.1.1 8.8.8.8 -</span></span></code></pre></td></tr></table> -</div> -</div><p>ابته تاکید کنم در صورتی از این +های بالاتر که در این فایل تنظیم شده است سوال کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">[Resolve] +</span></span><span class="line"><span class="cl">DNS=1.1.1.1 8.8.8.8 +</span></span></code></pre></td></tr></table> +</div> +</div><p>ابته تاکید کنم در صورتی از این NS ها استفاده می‌شود که شما ‌از 127.0.0.53 و 127.0.0.54 در کانفیگ /etc/resolve.conf -استفاده کرده باشید.</p> -<blockquote> -<p>تفاوت 127.0.0.54 این است که هر کوئری را مستقیم به +استفاده کرده باشید.</p> +<blockquote> +<p>تفاوت 127.0.0.54 این است که هر کوئری را مستقیم به NS بالاتر ارسال خواهد کرد و از دیتای کش شده استفاده نمی‌کند. -ولی 127.0.0.53 از قابلیت کش استفاده می‌کند.</p> -</blockquote> -<hr> -<h3 id="مثال">مثال</h3> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt">10 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">nameserver 1.1.1.1 -</span></span><span class="line"><span class="cl">nameserver 8.8.8.8 -</span></span><span class="line"><span class="cl">nameserver 9.9.9.9 -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">options ndots:1 -</span></span><span class="line"><span class="cl">options timeout:2 -</span></span><span class="line"><span class="cl">options attempts:3 -</span></span><span class="line"><span class="cl">options rotate -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">search server1 server2 -</span></span></code></pre></td></tr></table> -</div> -</div><hr> -<h3 id="سخنی-با-شما">سخنی با شما</h3> -<p>این را بگم که +ولی 127.0.0.53 از قابلیت کش استفاده می‌کند.</p> +</blockquote> +<hr> +<h3 id="مثال">مثال +</h3><div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">nameserver 1.1.1.1 +</span></span><span class="line"><span class="cl">nameserver 8.8.8.8 +</span></span><span class="line"><span class="cl">nameserver 9.9.9.9 +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">options ndots:1 +</span></span><span class="line"><span class="cl">options timeout:2 +</span></span><span class="line"><span class="cl">options attempts:3 +</span></span><span class="line"><span class="cl">options rotate +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">search server1 server2 +</span></span></code></pre></td></tr></table> +</div> +</div><hr> +<h3 id="سخنی-با-شما">سخنی با شما +</h3><p>این را بگم که DNS به صورت recursive(بازگشتی) عمل می‌کنه، این یعنی وقتی شما یک کوئری ارسال می‌کنید، این کوئری هر بار به یک سرور بالاتر ارسال می‌شود تا در نهایت به جواب برسه. و خب این موضوع خودش در نهایت یک جریان -خیلی جالب داره که امیدوارم یک روز اون رو هم بنویسم :)</p> -</span> - - - - +خیلی جالب داره که امیدوارم یک روز اون رو هم بنویسم :)</p> +</span> \ No newline at end of file diff --git a/docs/categories/network/page/1/index.html b/docs/categories/network/page/1/index.html index 544544b..e657890 100644 --- a/docs/categories/network/page/1/index.html +++ b/docs/categories/network/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/categories/network/ - - - - - - +https://bit-orbit.github.io/categories/network/ + \ No newline at end of file diff --git a/docs/categories/page/1/index.html b/docs/categories/page/1/index.html index 7466cc5..a36fe3c 100644 --- a/docs/categories/page/1/index.html +++ b/docs/categories/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/categories/ - - - - - - +https://bit-orbit.github.io/categories/ + \ No newline at end of file diff --git a/docs/categories/page/2/index.html b/docs/categories/page/2/index.html index e6bd6dc..298f198 100644 --- a/docs/categories/page/2/index.html +++ b/docs/categories/page/2/index.html @@ -1,616 +1,39 @@ - - - - -Categories - - - - - - - - - - - - - - - -
- - - - -
-
-

- - بخش - -

- -
-
-

11 صفحه

-

Categories

- -
-
-
- -
- - - - - - - - - - - -
- - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Categories +

بخش

11 صفحه

Categories

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git a/docs/categories/page/3/index.html b/docs/categories/page/3/index.html index 747f745..c79a743 100644 --- a/docs/categories/page/3/index.html +++ b/docs/categories/page/3/index.html @@ -1,572 +1,39 @@ - - - - -Categories - - - - - - - - - - - - - - - -
- - - - -
-
-

- - بخش - -

- -
-
-

11 صفحه

-

Categories

- -
-
-
- -
- - - -
- - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Categories +

بخش

11 صفحه

Categories

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git a/docs/categories/programming/index.html b/docs/categories/programming/index.html index 91cfc17..119c68f 100644 --- a/docs/categories/programming/index.html +++ b/docs/categories/programming/index.html @@ -1,627 +1,37 @@ - - - - -Category: Programming - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Categories - -

- -
-
-

5 صفحه

-

Programming

- -
-
-
- -
- - - - - - - - - - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Category: Programming - bit-orbit +

Categories

5 صفحه

Programming

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git a/docs/categories/programming/index.xml b/docs/categories/programming/index.xml index fd83e0d..b39530b 100644 --- a/docs/categories/programming/index.xml +++ b/docs/categories/programming/index.xml @@ -1,46 +1,32 @@ - - - - Programming on bit-orbit - https://bit-orbit.github.io/categories/programming/ - Recent content in Programming on bit-orbit - Hugo -- gohugo.io - fa - Sat, 27 Jul 2024 18:27:21 +0330 - Transpiler | ترجمه کد C به Bash - https://bit-orbit.github.io/p/transpiler-%D8%AA%D8%B1%D8%AC%D9%85%D9%87-%DA%A9%D8%AF-c-%D8%A8%D9%87-bash/ - Sat, 27 Jul 2024 18:27:21 +0330 - - https://bit-orbit.github.io/p/transpiler-%D8%AA%D8%B1%D8%AC%D9%85%D9%87-%DA%A9%D8%AF-c-%D8%A8%D9%87-bash/ - <img src="https://bit-orbit.github.io/images/post/transpiler.jpg" alt="Featured image of post Transpiler | ترجمه کد C به Bash" /><span style='font-size: 25px'> -<p>همان‌طور که می‌دانید، کامپایلرها سورس کد ما که به یک زبان سطح بالا نوشته شده است را به یک زبان سطح پایین‌تر ترجمه می‌کنند. برای مثال، کامپایلر کدی که به زبان +Programming on bit-orbithttps://bit-orbit.github.io/categories/programming/Recent content in Programming on bit-orbitHugo -- gohugo.iofaSat, 27 Jul 2024 18:27:21 +0330Transpiler | ترجمه کد C به Bashhttps://bit-orbit.github.io/p/transpiler-%D8%AA%D8%B1%D8%AC%D9%85%D9%87-%DA%A9%D8%AF-c-%D8%A8%D9%87-bash/Sat, 27 Jul 2024 18:27:21 +0330https://bit-orbit.github.io/p/transpiler-%D8%AA%D8%B1%D8%AC%D9%85%D9%87-%DA%A9%D8%AF-c-%D8%A8%D9%87-bash/<img src="https://bit-orbit.github.io/images/post/transpiler.jpg" alt="Featured image of post Transpiler | ترجمه کد C به Bash" /><span style='font-size: 25px'> +<p>همان‌طور که می‌دانید، کامپایلرها سورس کد ما که به یک زبان سطح بالا نوشته شده است را به یک زبان سطح پایین‌تر ترجمه می‌کنند. برای مثال، کامپایلر کدی که به زبان C نوشته شده است را به زبان اسمبلی ترجمه می‌کند. همچنین باید ذکر کنم که در زبان C، -پس از ترجمه به اسمبلی، کد به زبان ماشین که می‌تواند مستقیماً روی سخت‌افزار اجرا شود، ترجمه می‌شود.</p> -<p>اما ما نرم افزاری داریم که سورس کد را به یک سورس کد دیگر ترجمه می‌کند، به این نوع نرم افزار ها +پس از ترجمه به اسمبلی، کد به زبان ماشین که می‌تواند مستقیماً روی سخت‌افزار اجرا شود، ترجمه می‌شود.</p> +<p>اما ما نرم افزاری داریم که سورس کد را به یک سورس کد دیگر ترجمه می‌کند، به این نوع نرم افزار ها transpiler گفته می‌شود. برای مثال شما یک کد را به زبان پایتون نوشته‌اید را می‌توانید با برنامه مشخصی تبدیل کنید به زبان -JavaScrip.</p> -<p>اگر به نظرتون +JavaScrip.</p> +<p>اگر به نظرتون Bash سینتکس سختی داره، خب کافیه C بلد باشین و کدتون رو به زبان C بنویسید، و با -<a class="link" href="https://pnut.sh/" target="_blank" rel="noopener" - >Pnut.sh</a> +<a class="link" href="https://pnut.sh/" target="_blank" rel="noopener" +>Pnut.sh</a> به Bash -ترجمه کنید!</p> -<p>البته محدودیت هایی وجود داره</p> -<ul> -<li>عدد اعشار, goto, switch ساپورت نمی‌شود.</li> -<li>همچنین نمی‌توان یک متغییر را رفرنس کرد(&amp;)</li> -</ul> -<p>البته باید در نظر داشت که +ترجمه کنید!</p> +<p>البته محدودیت هایی وجود داره</p> +<ul> +<li>عدد اعشار, goto, switch ساپورت نمی‌شود.</li> +<li>همچنین نمی‌توان یک متغییر را رفرنس کرد(&amp;)</li> +</ul> +<p>البته باید در نظر داشت که Bash جایگزین C @@ -49,334 +35,295 @@ C نوشته شده رو نمی‌شود به Bash ترجمه کرد. با این حال اینکار برای تبدیل بعضی از کد های ساده به یک کد -پرتابل می‌تواند مفید باشد</p> -</span> - - - انواع داده های اولیه در rust - https://bit-orbit.github.io/p/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%D9%88%D9%84%DB%8C%D9%87-%D8%AF%D8%B1-rust/ - Wed, 03 Jan 2024 01:30:52 +0330 - - https://bit-orbit.github.io/p/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%D9%88%D9%84%DB%8C%D9%87-%D8%AF%D8%B1-rust/ - <img src="https://bit-orbit.github.io/images/post/rustdatatypes.jpg" alt="Featured image of post انواع داده های اولیه در rust" /><p>هر زبان برنامه نویسی انواعی از داده ها رو داره، مثلا +پرتابل می‌تواند مفید باشد</p> +</span>انواع داده های اولیه در rusthttps://bit-orbit.github.io/p/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%D9%88%D9%84%DB%8C%D9%87-%D8%AF%D8%B1-rust/Wed, 03 Jan 2024 01:30:52 +0330https://bit-orbit.github.io/p/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%D9%88%D9%84%DB%8C%D9%87-%D8%AF%D8%B1-rust/<img src="https://bit-orbit.github.io/images/post/rustdatatypes.jpg" alt="Featured image of post انواع داده های اولیه در rust" /><p>هر زبان برنامه نویسی انواعی از داده ها رو داره، مثلا داده های عددی، کاراکتر و یا رشته‌ای از کاراکتر ها. زبان rust هم انواع داده‌ای زیادی رو پشتیبانی می‌کنه و خب حتی اگر جایی کمبودی حس کردین، می‌توانید ساختار داده‌ی خودتان -را بسازید.</p> -<blockquote> -<p>‌ انواع داده ترجمه‌ی کلمه +را بسازید.</p> +<blockquote> +<p>‌ انواع داده ترجمه‌ی کلمه data type هست. و خب برای من استفاده از کلمه انگلیسی‌اش خیلی راحت -تره.</p> -</blockquote> -<h4 id="نوع-داده-عدد-صحیح">نوع داده عدد صحیح</h4> -<p>همینطور که می‌دونید عدد صحیح از منفی بی‌نهایت تا مثبت -بی‌نهایت است(بدون هیچ علامت کسر، رادیکال و بدون اعشار).</p> -<p>این نوع داده در +تره.</p> +</blockquote> +<h4 id="نوع-داده-عدد-صحیح">نوع داده عدد صحیح +</h4><p>همینطور که می‌دونید عدد صحیح از منفی بی‌نهایت تا مثبت +بی‌نهایت است(بدون هیچ علامت کسر، رادیکال و بدون اعشار).</p> +<p>این نوع داده در rust -به این صورت است</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">variable_name</span>: <span class="kt">i32</span> <span class="o">=</span><span class="w"> </span><span class="o">-</span><span class="mi">2147483648</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">variable_name</span>: <span class="kt">i32</span> <span class="o">=</span><span class="w"> </span><span class="mi">2147483647</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><p>به این باید دقت کنیم که هر متغییری مقداری فضا نیاز دارد +به این صورت است</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">variable_name</span>: <span class="kt">i32</span> <span class="o">=</span><span class="w"> </span><span class="o">-</span><span class="mi">2147483648</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">variable_name</span>: <span class="kt">i32</span> <span class="o">=</span><span class="w"> </span><span class="mi">2147483647</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><p>به این باید دقت کنیم که هر متغییری مقداری فضا نیاز دارد برای مثال این نوع داده که داده اصلی است به پنج صورت پیاده سازی می‌شود i8, i16, i32, i64, i128 اعداد پس از کاراکتر i نشان دهنده تعداد بیت هایی است که این نوع متغییر می‌تواند -اشغال کند. مثلا i128 می‌تواند به اندازه 128 بیت فضا اشغال کند.</p> -<h4 id="نوع-داده-عدد-اعشاری">نوع داده عدد اعشاری</h4> -<p>این نوع داده هم مثل نوع عدد صحیح است اما با این تفاوت که اعداد اعشاری را درون خودش ذخیره می‌کند</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">variable_name</span>: <span class="kt">f32</span> <span class="o">=</span><span class="w"> </span><span class="mf">3.14</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">variable_name</span>: <span class="kt">f32</span> <span class="o">=</span><span class="w"> </span><span class="o">-</span><span class="mf">3.14</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="نوع-داده-کاراکتر">نوع داده کاراکتر</h4> -<p>کاراکتر نوع داده‌ای است که فقط یک مقدار از حروف الفبا یا عدد و یا سیمبول را می‌تواند درون +اشغال کند. مثلا i128 می‌تواند به اندازه 128 بیت فضا اشغال کند.</p> +<h4 id="نوع-داده-عدد-اعشاری">نوع داده عدد اعشاری +</h4><p>این نوع داده هم مثل نوع عدد صحیح است اما با این تفاوت که اعداد اعشاری را درون خودش ذخیره می‌کند</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">variable_name</span>: <span class="kt">f32</span> <span class="o">=</span><span class="w"> </span><span class="mf">3.14</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">variable_name</span>: <span class="kt">f32</span> <span class="o">=</span><span class="w"> </span><span class="o">-</span><span class="mf">3.14</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="نوع-داده-کاراکتر">نوع داده کاراکتر +</h4><p>کاراکتر نوع داده‌ای است که فقط یک مقدار از حروف الفبا یا عدد و یا سیمبول را می‌تواند درون خودش ذخیره کند. پس باید به اندازه 8 بیت فضا اشغال کند اما به دلیل اینکه کاراکتر های زبان های دیگر را هم بتواند ذخیره کند از انکدینگ(encoding) utf-16 -استفاده می‌کند که 16 بیت فضا اشغال می‌کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">a</span>: <span class="kt">char</span> <span class="o">=</span><span class="w"> </span><span class="sc">&#39;a&#39;</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="داده-stringرشتهای-از-کاراکتر-ها">داده string(رشته‌ای از کاراکتر ها)</h4> -<p>String +استفاده می‌کند که 16 بیت فضا اشغال می‌کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">a</span>: <span class="kt">char</span> <span class="o">=</span><span class="w"> </span><span class="sc">&#39;a&#39;</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="داده-stringرشتهای-از-کاراکتر-ها">داده string(رشته‌ای از کاراکتر ها) +</h4><p>String نوع داده‌ای است که درواقع رشته‌ای از کاراکتر ها را درون یک نوع vector -ذخیره می‌کند.</p> -<blockquote> -<p>این نکته را هم بگم که +ذخیره می‌کند.</p> +<blockquote> +<p>این نکته را هم بگم که encoding رشته UTF-8 -است. به این معنی که هر نوع کاراکتری را می‌تواند داخل خودش ذخیره کند حتی ایموجی.</p> -</blockquote> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">heart</span>: <span class="nb">String</span> <span class="o">=</span><span class="w"> </span><span class="nb">String</span>::<span class="n">from</span><span class="p">(</span><span class="s">&#34;♥&#34;</span><span class="p">);</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="نوع-داده-منطقی">نوع داده منطقی</h4> -<p>نوع داده منطقی به اسم +است. به این معنی که هر نوع کاراکتری را می‌تواند داخل خودش ذخیره کند حتی ایموجی.</p> +</blockquote> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">heart</span>: <span class="nb">String</span> <span class="o">=</span><span class="w"> </span><span class="nb">String</span>::<span class="n">from</span><span class="p">(</span><span class="s">&#34;♥&#34;</span><span class="p">);</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="نوع-داده-منطقی">نوع داده منطقی +</h4><p>نوع داده منطقی به اسم boolian است. این نوع مقدار هایt true و یا false -را ذخیره می‌کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">is_good</span>: <span class="kt">bool</span> <span class="o">=</span><span class="w"> </span><span class="kc">true</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="نوع-داده-ترکیبی">نوع داده ترکیبی</h4> -<p>این نوع داده ها را توی پست های مجزا توضیح می‌دم.</p> -<ul> -<li>tuple</li> -<li>array</li> -<li>list</li> -<li>vector</li> -</ul> - - - - متغیر در rust - https://bit-orbit.github.io/p/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-rust/ - Mon, 01 Jan 2024 01:39:05 +0330 - - https://bit-orbit.github.io/p/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-rust/ - <img src="https://bit-orbit.github.io/images/post/datatypes-rust.jpg" alt="Featured image of post متغیر در rust" /><h4 id="تعریف-متغیر">تعریف متغیر</h4> -<p>در هر زبانی تعریف متغیر سینتکس خودش را دارد. +را ذخیره می‌کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">is_good</span>: <span class="kt">bool</span> <span class="o">=</span><span class="w"> </span><span class="kc">true</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="نوع-داده-ترکیبی">نوع داده ترکیبی +</h4><p>این نوع داده ها را توی پست های مجزا توضیح می‌دم.</p> +<ul> +<li>tuple</li> +<li>array</li> +<li>list</li> +<li>vector</li> +</ul>متغیر در rusthttps://bit-orbit.github.io/p/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-rust/Mon, 01 Jan 2024 01:39:05 +0330https://bit-orbit.github.io/p/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-rust/<img src="https://bit-orbit.github.io/images/post/datatypes-rust.jpg" alt="Featured image of post متغیر در rust" /><h4 id="تعریف-متغیر">تعریف متغیر +</h4><p>در هر زبانی تعریف متغیر سینتکس خودش را دارد. مثلا اگر زبان های خانواده c را کار کرده باشید (مثل c++, c#) متوجه می‌شوید که نوع داده‌ای متغیر، قبل از اسم آن تعریف می‌شود. و یا مثلا توی زبان پایتون تعریف نوع داده‌ای -یک متغیر حتی اهمیتی هم ندارد!</p> -<blockquote> -<p>انواع نوع داده یا +یک متغیر حتی اهمیتی هم ندارد!</p> +<blockquote> +<p>انواع نوع داده یا date types -را توی پست بعدی می‌نویسم</p> -</blockquote> -<p>توی زبان +را توی پست بعدی می‌نویسم</p> +</blockquote> +<p>توی زبان rust بعد از اسم متغیر، نوع آن نوشته می‌شود. مثلا برای تعریف یک متغیر عددی به اندازه یک بایت از کلمه کلیدی -<code>i8</code> +<code>i8</code> بعد اسم استفاده می‌کنیم. البته قبل از اسم هر متغیر هم ما باید از کلمه کلیدی -<code>let</code> -استفاده کنیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="c1">//let name: type = value; -</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="kd">let</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="متغیر-های-تغییرپذیر">متغیر های تغییرپذیر</h4> -<p>توی زبان +<code>let</code> +استفاده کنیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="c1">//let name: type = value; +</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="kd">let</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="متغیر-های-تغییرپذیر">متغیر های تغییرپذیر +</h4><p>توی زبان rust هر متغیری که تعریف می‌کنیم غیر قابل تغیر است. توی مثال بالا من پیشفرض مقدار 22 را برای متغیر age قرار داده‌ام، حالا اگر بخواهم مقدار آن را -به 23 تغیر بدهم به ارور می‌خورم</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt">10 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">error</span><span class="p">[</span><span class="n">E0384</span><span class="p">]</span>: <span class="nc">cannot</span><span class="w"> </span><span class="n">assign</span><span class="w"> </span><span class="n">twice</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">immutable</span><span class="w"> </span><span class="n">variable</span><span class="w"> </span><span class="err">`</span><span class="n">age</span><span class="err">`</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">-</span>-&gt; <span class="nc">src</span><span class="o">/</span><span class="n">main</span><span class="p">.</span><span class="n">rs</span>:<span class="mi">3</span>:<span class="mi">5</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">---</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">first</span><span class="w"> </span><span class="n">assignment</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="err">`</span><span class="n">age</span><span class="err">`</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">help</span>: <span class="nc">consider</span><span class="w"> </span><span class="n">making</span><span class="w"> </span><span class="n">this</span><span class="w"> </span><span class="n">binding</span><span class="w"> </span><span class="n">mutable</span>: <span class="err">`</span><span class="k">mut</span><span class="w"> </span><span class="n">age</span><span class="err">`</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="mi">3</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">^^^^^^^^</span><span class="w"> </span><span class="n">cannot</span><span class="w"> </span><span class="n">assign</span><span class="w"> </span><span class="n">twice</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">immutable</span><span class="w"> </span><span class="n">variable</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><p>خب برای همین اگر می‌خواهیم مقدار متغیری را تغییر +به 23 تغیر بدهم به ارور می‌خورم</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">error</span><span class="p">[</span><span class="n">E0384</span><span class="p">]</span>: <span class="nc">cannot</span><span class="w"> </span><span class="n">assign</span><span class="w"> </span><span class="n">twice</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">immutable</span><span class="w"> </span><span class="n">variable</span><span class="w"> </span><span class="err">`</span><span class="n">age</span><span class="err">`</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">-</span>-&gt; <span class="nc">src</span><span class="o">/</span><span class="n">main</span><span class="p">.</span><span class="n">rs</span>:<span class="mi">3</span>:<span class="mi">5</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">---</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">first</span><span class="w"> </span><span class="n">assignment</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="err">`</span><span class="n">age</span><span class="err">`</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">help</span>: <span class="nc">consider</span><span class="w"> </span><span class="n">making</span><span class="w"> </span><span class="n">this</span><span class="w"> </span><span class="n">binding</span><span class="w"> </span><span class="n">mutable</span>: <span class="err">`</span><span class="k">mut</span><span class="w"> </span><span class="n">age</span><span class="err">`</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="mi">3</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">^^^^^^^^</span><span class="w"> </span><span class="n">cannot</span><span class="w"> </span><span class="n">assign</span><span class="w"> </span><span class="n">twice</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">immutable</span><span class="w"> </span><span class="n">variable</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><p>خب برای همین اگر می‌خواهیم مقدار متغیری را تغییر بدهیم آن را باید از اول مشخص کنیم. مشخص کردن آن با کلمه کلیدی -<code>mut</code> +<code>mut</code> بعد از کلمه -<code>let</code> +<code>let</code> است. کلمه mut مخفف -<strong>mutable</strong> +<strong>mutable</strong> به معنی -<strong>قابل تغییر</strong> -است. خب بیایید اینکار را برای مثال اولیه انجام بدهیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div> - - - Rust - https://bit-orbit.github.io/rust/ - Sun, 31 Dec 2023 00:00:00 +0000 - - https://bit-orbit.github.io/rust/ - <img src="https://bit-orbit.github.io/images/post/rust.png" alt="Featured image of post Rust" /><p>من مدتی هست که دارم زبان +<strong>قابل تغییر</strong> +است. خب بیایید اینکار را برای مثال اولیه انجام بدهیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div>Rusthttps://bit-orbit.github.io/rust/Sun, 31 Dec 2023 00:00:00 +0000https://bit-orbit.github.io/rust/<img src="https://bit-orbit.github.io/images/post/rust.png" alt="Featured image of post Rust" /><p>من مدتی هست که دارم زبان rust رو یاد می‌گیرم، توی این تایمی که خودم یادش می‌گیرم، یک خلاصه‌ای هم از آموزش هایی که می‌بینم رو اینجا در پست های مجزا می‌نویسم. اینطوری هم برای خودم نوت دارم و هم -شما :)</p> -<p>هر پست آموزش +شما :)</p> +<p>هر پست آموزش rust که می‌نویسم رو اینجا لیست می‌کنم که -به راحتی در دسترس باشند.</p> -<blockquote> -<p>بعنوان نکته بگم که توی این مجموعه از پست ها، قرار نیست +به راحتی در دسترس باشند.</p> +<blockquote> +<p>بعنوان نکته بگم که توی این مجموعه از پست ها، قرار نیست برنامه نویسی را از صفر یاد بگیریم، صرفا سینتکس زبان rust -را یاد می‌گیریم.</p> -</blockquote> -<hr> -<ul> -<li><a class="link" href="https://bit-orbit.github.io/p/%d9%85%d8%aa%d8%ba%db%8c%d8%b1-%d8%af%d8%b1-rust/" >متغییر ها در rust</a></li> -</ul> - - - - تفاوت Staticlink و Dynamiclink در زبان های برنامه نویسی - https://bit-orbit.github.io/p/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-staticlink-%D9%88-dynamiclink-%D8%AF%D8%B1-%D8%B2%D8%A8%D8%A7%D9%86-%D9%87%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C/ - Fri, 03 Nov 2023 00:21:46 +0330 - - https://bit-orbit.github.io/p/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-staticlink-%D9%88-dynamiclink-%D8%AF%D8%B1-%D8%B2%D8%A8%D8%A7%D9%86-%D9%87%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C/ - <img src="https://bit-orbit.github.io/images/post/staticvsdynamic.jpg" alt="Featured image of post تفاوت Staticlink و Dynamiclink در زبان های برنامه نویسی" /><p>یکسری مفاهیمی در برنامه نویسی داریم که من تصمیم داریم درباره آنها توی چند پست توضیح بدم، اولین مورد +را یاد می‌گیریم.</p> +</blockquote> +<hr> +<ul> +<li><a class="link" href="https://bit-orbit.github.io/p/%d9%85%d8%aa%d8%ba%db%8c%d8%b1-%d8%af%d8%b1-rust/" >متغییر ها در rust</a></li> +</ul>تفاوت Staticlink و Dynamiclink در زبان های برنامه نویسیhttps://bit-orbit.github.io/p/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-staticlink-%D9%88-dynamiclink-%D8%AF%D8%B1-%D8%B2%D8%A8%D8%A7%D9%86-%D9%87%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C/Fri, 03 Nov 2023 00:21:46 +0330https://bit-orbit.github.io/p/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-staticlink-%D9%88-dynamiclink-%D8%AF%D8%B1-%D8%B2%D8%A8%D8%A7%D9%86-%D9%87%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C/<img src="https://bit-orbit.github.io/images/post/staticvsdynamic.jpg" alt="Featured image of post تفاوت Staticlink و Dynamiclink در زبان های برنامه نویسی" /><p>یکسری مفاهیمی در برنامه نویسی داریم که من تصمیم داریم درباره آنها توی چند پست توضیح بدم، اولین مورد که شامل این پست می‌شه تفاوت static linking و dynamic linking در زبان های برامه نویسی هست‌ش. مفاهیم دیگه‌ای که داخل پست های بعدی می‌نویسم چیز هایی مثل -<strong>static type, dynamic type, compiler language, interpreter language</strong> و &hellip; -خواهد بود.</p> -<hr> -<ul> -<li> -<p>دو مفهموم +<strong>static type, dynamic type, compiler language, interpreter language</strong> و &hellip; +خواهد بود.</p> +<hr> +<ul> +<li> +<p>دو مفهموم static linking و dynamic linking -چه هستند؟</p> -</li> -<li> -<p>هر کدام چه مشکلات و فوایدی دارند؟</p> -</li> -</ul> -<hr> -<p>ما در نوشتن برنامه ها معمولا از لایبراری های زیادی استفاده می‌کنیم، حتی یک برانامه ساده. +چه هستند؟</p> +</li> +<li> +<p>هر کدام چه مشکلات و فوایدی دارند؟</p> +</li> +</ul> +<hr> +<p>ما در نوشتن برنامه ها معمولا از لایبراری های زیادی استفاده می‌کنیم، حتی یک برانامه ساده. سیستم ما برای اجرای یک برنامه، کد برنامه رو به ماشین-کد تبدیل می‌کنه و بعد خط به خط -اون ها رو اجرا می‌کنه.</p> -<p>اصطلاح +اون ها رو اجرا می‌کنه.</p> +<p>اصطلاح linking به روندی گفته می‌شود که کد شما به اشیاء(کد و داده) های خارجی برای استفاده از انها اشاره کند. معمولا دو روش برای اینکار وجود دارد، static linking(لینک کردن ایستا), -dynamic linking(لینک کردن پویا).</p> -<blockquote> -<p>static linking -زمانی اتفاق می‌افتد که کامپایلر منابع خارجی(لایبراری) ها را داخل فایل اجرایی برنامه کپی کند</p> -</blockquote> -<p>در واقع در این روش برنامه شما تمامی لایبراری هایی که شما در کد استفاده کردین رو +dynamic linking(لینک کردن پویا).</p> +<blockquote> +<p>static linking +زمانی اتفاق می‌افتد که کامپایلر منابع خارجی(لایبراری) ها را داخل فایل اجرایی برنامه کپی کند</p> +</blockquote> +<p>در واقع در این روش برنامه شما تمامی لایبراری هایی که شما در کد استفاده کردین رو با کد شما درون یک فایل اجرایی کامپایل می‌کند، زمانی که برنامه اجرا شود، تمامی لایبراری های -مورد نیازش وارد مموری کامپیوتر می‌شود.</p> -<p>فایده هایی که می‌تونم بهش اشاره کنم</p> -<ul> -<li>توی منتشر کردن برنامه به دیگران، مشکل نصب کامپوننت ها رو دیگه ندارن، و به راحتی اجرا می‌کنند.</li> -<li>ممکنه برنامه اندکی سریع تر اجرا بشه</li> -</ul> -<p>این روش واقعا خوبیه ولی خب معایب خودش رو هم داره</p> -<ul> -<li>فایل اجرایی حجم زیادی‌تری نسب‌ت به لینک کردن پویا داره</li> -<li>وقتی برنامه اجرا بشه، بخاطر اینکه همه لایبراری و داده های مورد نیاز داخل همان فایل اجرایی بود، برنامه رم زیادی استفاده می‌کنه.</li> -<li>اگر لایبراری های مورد استفاده تغییر کنند، برنامه نویس باید مجدد برنامه رو کامپایل و منتشر کنه</li> -</ul> -<blockquote> -<p>dynamic linking +مورد نیازش وارد مموری کامپیوتر می‌شود.</p> +<p>فایده هایی که می‌تونم بهش اشاره کنم</p> +<ul> +<li>توی منتشر کردن برنامه به دیگران، مشکل نصب کامپوننت ها رو دیگه ندارن، و به راحتی اجرا می‌کنند.</li> +<li>ممکنه برنامه اندکی سریع تر اجرا بشه</li> +</ul> +<p>این روش واقعا خوبیه ولی خب معایب خودش رو هم داره</p> +<ul> +<li>فایل اجرایی حجم زیادی‌تری نسب‌ت به لینک کردن پویا داره</li> +<li>وقتی برنامه اجرا بشه، بخاطر اینکه همه لایبراری و داده های مورد نیاز داخل همان فایل اجرایی بود، برنامه رم زیادی استفاده می‌کنه.</li> +<li>اگر لایبراری های مورد استفاده تغییر کنند، برنامه نویس باید مجدد برنامه رو کامپایل و منتشر کنه</li> +</ul> +<blockquote> +<p>dynamic linking لینک کردن پویا زمانی است که نام لایبراری خارجی در زمان اجرا وارد فایل اجرایی می‌شود. -و اینکه فقط در این زمان است که لایبراری مورد نیاز وارد مموری می‌شود.</p> -</blockquote> -<p>در این مواقع لایبراری ها باید در سیستم عامل از قبل نصب شده باشند، و یا در موقغ نصب برنامه جدید +و اینکه فقط در این زمان است که لایبراری مورد نیاز وارد مموری می‌شود.</p> +</blockquote> +<p>در این مواقع لایبراری ها باید در سیستم عامل از قبل نصب شده باشند، و یا در موقغ نصب برنامه جدید اون لایبراری ها نصب شوند. و اگر هر تغییری در لایبرار رخ بده، برنامه نویس نیاز نیست دوباره برنامه رو -کامپایل و منتشر کند، فقط لایبراری مورد نیاز اپدیت می‌شود.</p> -<p>این روش هم مزیت های خودش رو داره، مثلا:</p> -<ul> -<li>حجم فایل های اجرایی خیلی کمتری داره</li> -<li>تا زمانی که نیاز به لایبراری نشده باشد(اگر در کد نویسی رعایت شده باشه) لایبراری ها رم اشغال نمی‌کنند.</li> -</ul> -<p>مهمترین عیبی که می‌تونه این روش داشته باشه اینه که -حذف شدن و یا خراب شدن لایبراری باعث می‌شه برنامه دیگه اجرا نشه.</p> -<hr> -<blockquote> -<p>این مطلب خلاصه‌ای کلی بود برای آشنایی با این دو مفهموم +کامپایل و منتشر کند، فقط لایبراری مورد نیاز اپدیت می‌شود.</p> +<p>این روش هم مزیت های خودش رو داره، مثلا:</p> +<ul> +<li>حجم فایل های اجرایی خیلی کمتری داره</li> +<li>تا زمانی که نیاز به لایبراری نشده باشد(اگر در کد نویسی رعایت شده باشه) لایبراری ها رم اشغال نمی‌کنند.</li> +</ul> +<p>مهمترین عیبی که می‌تونه این روش داشته باشه اینه که +حذف شدن و یا خراب شدن لایبراری باعث می‌شه برنامه دیگه اجرا نشه.</p> +<hr> +<blockquote> +<p>این مطلب خلاصه‌ای کلی بود برای آشنایی با این دو مفهموم برای مطالعه بیشتر این -<a class="link" href="https://blog.hubspot.com/website/static-vs-dynamic-linking#static-linking" target="_blank" rel="noopener" - >لینک</a> -می‌تونه مفید باشه.</p> -</blockquote> -<hr> - - - - - +<a class="link" href="https://blog.hubspot.com/website/static-vs-dynamic-linking#static-linking" target="_blank" rel="noopener" +>لینک</a> +می‌تونه مفید باشه.</p> +</blockquote> +<hr> \ No newline at end of file diff --git a/docs/categories/programming/page/1/index.html b/docs/categories/programming/page/1/index.html index 2a450e1..f181d88 100644 --- a/docs/categories/programming/page/1/index.html +++ b/docs/categories/programming/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/categories/programming/ - - - - - - +https://bit-orbit.github.io/categories/programming/ + \ No newline at end of file diff --git a/docs/categories/projects/index.html b/docs/categories/projects/index.html index 1aba944..efd3afe 100644 --- a/docs/categories/projects/index.html +++ b/docs/categories/projects/index.html @@ -1,593 +1,37 @@ - - - - -Category: Projects - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Categories - -

- -
-
-

3 صفحه

-

Projects

- -
-
-
- -
- - - - - - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Category: Projects - bit-orbit +

Categories

3 صفحه

Projects

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git a/docs/categories/projects/index.xml b/docs/categories/projects/index.xml index 7f1f615..8b34f04 100644 --- a/docs/categories/projects/index.xml +++ b/docs/categories/projects/index.xml @@ -1,79 +1,65 @@ - - - - Projects on bit-orbit - https://bit-orbit.github.io/categories/projects/ - Recent content in Projects on bit-orbit - Hugo -- gohugo.io - fa - Wed, 06 Mar 2024 23:50:46 +0330 - Crul Paste - https://bit-orbit.github.io/p/crul-paste/ - Wed, 06 Mar 2024 23:50:46 +0330 - - https://bit-orbit.github.io/p/crul-paste/ - <img src="https://bit-orbit.github.io/images/post/curlpaste.jpg" alt="Featured image of post Crul Paste" /><p>اول بیایید ببینم +Projects on bit-orbithttps://bit-orbit.github.io/categories/projects/Recent content in Projects on bit-orbitHugo -- gohugo.iofaWed, 06 Mar 2024 23:50:46 +0330Crul Pastehttps://bit-orbit.github.io/p/crul-paste/Wed, 06 Mar 2024 23:50:46 +0330https://bit-orbit.github.io/p/crul-paste/<img src="https://bit-orbit.github.io/images/post/curlpaste.jpg" alt="Featured image of post Crul Paste" /><p>اول بیایید ببینم FileBin چیه! قبل از اون هم فکر می‌کنم همه بدونیم -<a class="link" href="https://virgool.io/@m_shabane/pastebin-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B1%D8%A7-%D9%87%DA%A9%D8%B1-%D9%87%D8%A7-%D8%B9%D8%A7%D8%B4%D9%82-%D8%A2%D9%86-%D9%87%D8%A7%D8%B3%D8%AA%D9%86%D8%AF-swafqm95gttp" target="_blank" rel="noopener" - >pastebin</a> +<a class="link" href="https://virgool.io/@m_shabane/pastebin-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B1%D8%A7-%D9%87%DA%A9%D8%B1-%D9%87%D8%A7-%D8%B9%D8%A7%D8%B4%D9%82-%D8%A2%D9%86-%D9%87%D8%A7%D8%B3%D8%AA%D9%86%D8%AF-swafqm95gttp" target="_blank" rel="noopener" +>pastebin</a> چیه. اگه نمی‌دونید خیلی ساده باید بگم یک سایتی که فقط روی اون متن به اشتراک می‌ذارن -مثلا ممکنه ارور ها یا حتی سورس یک برنامه باشه!</p> -<p>اما +مثلا ممکنه ارور ها یا حتی سورس یک برنامه باشه!</p> +<p>اما FileBin ها بجای تسکت فایل های شما رو نگهداری می‌کنند و به شما لینکی ارائه می‌کنند که فایل را برای دیگران اشتراک بگذارید، نمونه های زیادی هم وجود داره مثل -<a class="link" href="https://wormhole.app" target="_blank" rel="noopener" - >https://wormhole.app</a></p> -<p>اما خب از اونجایی که من زندگی‌ام رو توی ترمینال می‌گذرونم و ترمینال رو به باز کردن مرورگر برای اشتراک یک فایل ترجیح می‌دم، پس از +<a class="link" href="https://wormhole.app" target="_blank" rel="noopener" +>https://wormhole.app</a></p> +<p>اما خب از اونجایی که من زندگی‌ام رو توی ترمینال می‌گذرونم و ترمینال رو به باز کردن مرورگر برای اشتراک یک فایل ترجیح می‌دم، پس از FileBin هایی استفاده می‌کنم که بتونم تحت ترمینال به سادگی فایلم رو به اشتراک بذارم. برای مثال -<a class="link" href="https://0x0.st" target="_blank" rel="noopener" - >https://0x0.st</a></p> -<p>وقتی این رو سایت رو باز کنید هیچ گزینه‌ای برای انتخاب فایل و آپلود نمی‌بینید! خب پس چطور باید یک فایل را برای سایت آپلود کنید؟ +<a class="link" href="https://0x0.st" target="_blank" rel="noopener" +>https://0x0.st</a></p> +<p>وقتی این رو سایت رو باز کنید هیچ گزینه‌ای برای انتخاب فایل و آپلود نمی‌بینید! خب پس چطور باید یک فایل را برای سایت آپلود کنید؟ کافیه یک ریکوئست HTTP POST خیلی ساده به سایت بزنید که شامل فایتون باشه. این کار رو خیلی ساده می‌شه با curl -انجام داد.</p> -<p>مثلا بیایین اشتراک یک فایل رو ببینیم</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl https://0x0.st -F <span class="nv">file</span><span class="o">=</span>@/path/to/file -</span></span><span class="line"><span class="cl"><span class="c1"># https://0x0.st/zWKo.txt</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>این سایت خیلی خوبه +انجام داد.</p> +<p>مثلا بیایین اشتراک یک فایل رو ببینیم</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl https://0x0.st -F <span class="nv">file</span><span class="o">=</span>@/path/to/file +</span></span><span class="line"><span class="cl"><span class="c1"># https://0x0.st/zWKo.txt</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>این سایت خیلی خوبه اما از زمانی به بعد دیگه این سایت کاری که من نیاز دارم رو کفاف نداد! برای مثال من نیاز دارم فایلم بعد از اولین دانلود از روی سرور حذف بشه و از این مهم تر نیاز داشتم که چندین فایل رو با یک یوزنیم مشخص اپلود کنم که خب شخصی که قرار باشه فایل ها رو دانلود کنه، کافیه از یوزنیم استفاده کنه که راحت تر قابل حفظ کردن و اشتراک گذاشتنه. اینطوری بود که گفتم FileBin -خودم رو بنویسم :)</p> -<hr> -<p><strong>بیایید فیچر ها و روش استفاده ازش رو با هم ببینیم.</strong></p> -<p>فرض کنید شما یک فایل دارید که می‌خواهید با من به اشتراک بگذارید، +خودم رو بنویسم :)</p> +<hr> +<p><strong>بیایید فیچر ها و روش استفاده ازش رو با هم ببینیم.</strong></p> +<p>فرض کنید شما یک فایل دارید که می‌خواهید با من به اشتراک بگذارید، خیلی ساده ترمینال رو باز می‌کنید و با یک دستور فایل رو با یک URL -تقریبا تصادفی منتشر می‌کنید.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">file</span><span class="o">=</span>@/tmp/theFile.fli -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/theFile.fli</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>دقت کنید من از سوییچ +تقریبا تصادفی منتشر می‌کنید.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">file</span><span class="o">=</span>@/tmp/theFile.fli +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/theFile.fli</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>دقت کنید من از سوییچ -L استفاده می‌کنم، دلیل اینکار این هست که خب ممکنه سایت شما رو ریدایرکت کنه. مثلا از @@ -82,330 +68,303 @@ http https. برای همین این سوییچ رو استفاده می‌کنم. با این سوییچ دیگه نیازی نیست https:// -رو هم بنویسیم!</p> -</blockquote> -<p>حالا اگه نیاز دارین که فایلتون بعد از اولین دانلود از روی سرور حذف بشه و دیگه در دسترس نباشه +رو هم بنویسیم!</p> +</blockquote> +<p>حالا اگه نیاز دارین که فایلتون بعد از اولین دانلود از روی سرور حذف بشه و دیگه در دسترس نباشه کافیه از کلمه -<code>once</code> +<code>once</code> بجای -<code>file</code> -استفاده کنید.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@/tmp/theFile.fli -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/theFile_GKug7xb.fli</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>تا اینجای کار همه +<code>file</code> +استفاده کنید.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@/tmp/theFile.fli +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/theFile_GKug7xb.fli</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>تا اینجای کار همه URL های هر فایلی به صورت تصادفی هست و من نیاز دارم که چندین فایل رو زیر یک یوزنیم مشخص مثل -<code>arya</code> +<code>arya</code> قرار بدم. اینطوری وقتی قراره یک فایل رو برای همکارم توی شرکت بفرستم خیلی ساده ازش درخواست می‌کنم در سایت به ادرس -<code>/arya</code> +<code>/arya</code> بره. حالا چطوری اینکارو بکنیم خیلی ساده بجای -<code>once</code> +<code>once</code> یا -<code>file</code>, +<code>file</code>, همون -<code>username</code> -رو می‌نویسیم(توی مثال من از نام <strong><em>arya</em></strong> استفاده می‌کنیم)</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">arya</span><span class="o">=</span>@/tmp/pic.jpg -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/arya</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>تا اینجای کار مثلا شما چند بار چند فایل مختلف رو زیر یک یوزنیم قرار دادین -حالا چطور میشه همه اونها رو باهم دانلود کرد؟</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir/arya <span class="p">|</span> wget -i - -</span></span></code></pre></td></tr></table> -</div> -</div><p>حالا به این فکر کنید که یکنفر میاد و با یوزنیم های معقول ریکوئست میزنه به سایت و +<code>username</code> +رو می‌نویسیم(توی مثال من از نام <strong><em>arya</em></strong> استفاده می‌کنیم)</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">arya</span><span class="o">=</span>@/tmp/pic.jpg +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/arya</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>تا اینجای کار مثلا شما چند بار چند فایل مختلف رو زیر یک یوزنیم قرار دادین +حالا چطور میشه همه اونها رو باهم دانلود کرد؟</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir/arya <span class="p">|</span> wget -i - +</span></span></code></pre></td></tr></table> +</div> +</div><p>حالا به این فکر کنید که یکنفر میاد و با یوزنیم های معقول ریکوئست میزنه به سایت و فایل های بقیه رو دانلود می‌کنه، اینجاست که پسورد به کار میاد. برای گذاشتن پسورد روی هر فایل کافیه توی خود URL سایت پسورد رو بعنوان http parametr -بنویسد.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L <span class="s1">&#39;octocat.ir/?password=12345678&#39;</span> -F <span class="nv">once</span><span class="o">=</span>@/Desktop/TopSecret.fli -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/file/TopSecret/?password=12345678</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>اینجا دقت کنید که باید از کوتیشن استفاده کنیم چون علامت مساوی و علامت سوال رو bash وایلد کارد می‌بینه.</p> -</blockquote> -<p>برای دانلود هر فایلی هم که پسورد داره کافیه دقیقا مثل مثال قبلی عمل کنید و پسورد رو توی +بنویسد.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L <span class="s1">&#39;octocat.ir/?password=12345678&#39;</span> -F <span class="nv">once</span><span class="o">=</span>@/Desktop/TopSecret.fli +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/file/TopSecret/?password=12345678</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>اینجا دقت کنید که باید از کوتیشن استفاده کنیم چون علامت مساوی و علامت سوال رو bash وایلد کارد می‌بینه.</p> +</blockquote> +<p>برای دانلود هر فایلی هم که پسورد داره کافیه دقیقا مثل مثال قبلی عمل کنید و پسورد رو توی http parametr -وارد کنید</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ wget <span class="s1">&#39;octocat.ir/file/TopSecret/?password=12345678&#39;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>براتون سواله که چرا پسورد روی توی +وارد کنید</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ wget <span class="s1">&#39;octocat.ir/file/TopSecret/?password=12345678&#39;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>براتون سواله که چرا پسورد روی توی URL گذاشتم؟ می‌شد که مثلا توی http header پسورد بگیریم و بدیم، پس چرا توی -URL?</p> -<p>اینکار برای این هست که دسترسی به فایل ساده باشه. مثلا من وقتی می‌خام فایلی رو برای همکارم بفرستم +URL?</p> +<p>اینکار برای این هست که دسترسی به فایل ساده باشه. مثلا من وقتی می‌خام فایلی رو برای همکارم بفرستم و خب فرض کنم همکار من از header ها چیزی نمی‌دونه، و فقط با یک کلیک باید بتونه به فایل دسترسی پیدا کنه، اینجاست که من فقط یک URL -به اون می‌گم :)</p> -<hr> -<p>بعضی از ابزار ها +به اون می‌گم :)</p> +<hr> +<p>بعضی از ابزار ها hackable هستند! این به معنی ضعف امنیتی نیست، بلکه به این اشاره می‌کنه ابزار به روشی طراحی -شده که کاربران می‌تونند خارج از هدف اصلی اون ابزار از اون استفاه کنند.</p> -<p>برای مثال ابزار که من درست کردم برای اشتراک فایل هست، اما بنظرتون میشه یک دایرکتوری و یا یک متن رو هم باهاش به اشتراک گذاشت؟</p> -<p>قطعا! اما چطوری؟</p> -<p>برای اینکه یک دایرکتوری با تمامی ساب دایرکتوری هاش رو بفرستین +شده که کاربران می‌تونند خارج از هدف اصلی اون ابزار از اون استفاه کنند.</p> +<p>برای مثال ابزار که من درست کردم برای اشتراک فایل هست، اما بنظرتون میشه یک دایرکتوری و یا یک متن رو هم باهاش به اشتراک گذاشت؟</p> +<p>قطعا! اما چطوری؟</p> +<p>برای اینکه یک دایرکتوری با تمامی ساب دایرکتوری هاش رو بفرستین کافیه از -<code>tar</code> -استفاده کنید.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ tar -cf - ~/Pictures <span class="p">|</span> curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@- -</span></span><span class="line"><span class="cl"><span class="c1"># &#39;octocat.ir/file/_nUiuRPW/</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>با اینکار با استفاده از +<code>tar</code> +استفاده کنید.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ tar -cf - ~/Pictures <span class="p">|</span> curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@- +</span></span><span class="line"><span class="cl"><span class="c1"># &#39;octocat.ir/file/_nUiuRPW/</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>با اینکار با استفاده از tar تمامی فایل ها و دایرکتوری های مثلا پوشه -<em>~/Pictures</em> +<em>~/Pictures</em> رو به آرشیو -<code>tar</code> +<code>tar</code> تبدیل می‌کنید و بعد خروجی رو بعنوان ورودی به -<code>curl</code> -می‌فرستین.</p> -<p>حالا به این فکر کنید که بخواهیم یک متن رو منتشر کنیم، راهکار دقیقا مشابه قبلیه. +<code>curl</code> +می‌فرستین.</p> +<p>حالا به این فکر کنید که بخواهیم یک متن رو منتشر کنیم، راهکار دقیقا مشابه قبلیه. به این شکل که یک متن رو با استفاده از -<code>echo</code> +<code>echo</code> به ورودی استاندارد -<code>curl</code> -می‌فرستیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ <span class="nb">echo</span> <span class="s1">&#39;Some Random Text&#39;</span> <span class="p">|</span> curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@- -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/file/-_W00DSbS/</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>اینطوری خیلی راحت می‌شه خروجی هر کامندی رو روی به اشتراک گذاشت</p> -</blockquote> -<hr> -<p>سایت من توی آدرس +<code>curl</code> +می‌فرستیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ <span class="nb">echo</span> <span class="s1">&#39;Some Random Text&#39;</span> <span class="p">|</span> curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@- +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/file/-_W00DSbS/</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>اینطوری خیلی راحت می‌شه خروجی هر کامندی رو روی به اشتراک گذاشت</p> +</blockquote> +<hr> +<p>سایت من توی آدرس octocat.ir -در دسترسه، خوشحال می‌شم ازش استفاده کنید :)</p> -<blockquote> -<p>اینو بدونید که سایت به صورت دیفالت فایل ها رو برای 24 ساعت نگه‌میداره</p> -</blockquote> -<p>این سرویس رو منبع باز روی -<a class="link" href="https://github.com/shabane/CurlPaste/" target="_blank" rel="noopener" - >گیتهاب</a> -گذاشتم، اگه چیزی خواستید می‌تونید بهش اضافه کنید و یا مشکلاتش رو پچ کنید.</p> -<p>و اگه می‌خواهید برای خودتون این سرویس رو بیارید بالا از ایمیج داکر استفاده کنید</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">docker run -p 80:80 mshabane/curlpaste:latest -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>اگه نیاز دارین تا فایل ها برای تایم بالاتری نگه‌داری بشه، متغییر -<em>HOURS</em> +در دسترسه، خوشحال می‌شم ازش استفاده کنید :)</p> +<blockquote> +<p>اینو بدونید که سایت به صورت دیفالت فایل ها رو برای 24 ساعت نگه‌میداره</p> +</blockquote> +<p>این سرویس رو منبع باز روی +<a class="link" href="https://github.com/shabane/CurlPaste/" target="_blank" rel="noopener" +>گیتهاب</a> +گذاشتم، اگه چیزی خواستید می‌تونید بهش اضافه کنید و یا مشکلاتش رو پچ کنید.</p> +<p>و اگه می‌خواهید برای خودتون این سرویس رو بیارید بالا از ایمیج داکر استفاده کنید</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">docker run -p 80:80 mshabane/curlpaste:latest +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>اگه نیاز دارین تا فایل ها برای تایم بالاتری نگه‌داری بشه، متغییر +<em>HOURS</em> داخل فایل -<em>.env</em> -رو تغییر بدین.</p> -</blockquote> -<hr> -<p>ایده های دیگه‌ای هم برای سایت دارم، برای مثال اینکه کاربر بتونه زمان انقضای +<em>.env</em> +رو تغییر بدین.</p> +</blockquote> +<hr> +<p>ایده های دیگه‌ای هم برای سایت دارم، برای مثال اینکه کاربر بتونه زمان انقضای هر فایل رو خودش مشخص کنه. -مثلا به این شکل</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -L octocat.ir -F <span class="nv">arya_1</span><span class="o">=</span>/path/to/file -</span></span></code></pre></td></tr></table> -</div> -</div><p>اینطوری میشه یک زمان انقضا بر اساس ساعت برای هر فایل ایجاد کرد.</p> -<p>و خب همچنین میشه یک کوتاه کننده لینک هم بهش اضافه کنم، و لینک های کوتاه شده رو -ریدایرکت کنم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -L octocat.ir -F <span class="nv">url</span><span class="o">=</span><span class="s1">&#39;https://example.com/some/looooong/url/&#39;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>اگه اینها رو اضافه کنم، این پست رو اپدیت می‌کنم ولی خوشحال می‌شم شما -توی این پروژه مشارکت کنید.</p> - - - - کپی کردن ریزالت پایپ به کلیپ برد - https://bit-orbit.github.io/p/%DA%A9%D9%BE%DB%8C-%DA%A9%D8%B1%D8%AF%D9%86-%D8%B1%DB%8C%D8%B2%D8%A7%D9%84%D8%AA-%D9%BE%D8%A7%DB%8C%D9%BE-%D8%A8%D9%87-%DA%A9%D9%84%DB%8C%D9%BE-%D8%A8%D8%B1%D8%AF/ - Sun, 01 May 2022 04:48:44 +0430 - - https://bit-orbit.github.io/p/%DA%A9%D9%BE%DB%8C-%DA%A9%D8%B1%D8%AF%D9%86-%D8%B1%DB%8C%D8%B2%D8%A7%D9%84%D8%AA-%D9%BE%D8%A7%DB%8C%D9%BE-%D8%A8%D9%87-%DA%A9%D9%84%DB%8C%D9%BE-%D8%A8%D8%B1%D8%AF/ - <img src="https://bit-orbit.github.io/images/post/cclp.jpg" alt="Featured image of post کپی کردن ریزالت پایپ به کلیپ برد" /><div dir='rtl' style='font-size:23px'> -<p>ما زمانی که برنامه‌ای در ترمینال اجرا می‌کنیم برای کپی کردن ریزالت اون برنامه، با موس تکست رو سلکت می‌کنیم و بعد کپی می‌کنیم. اما می‌دونیم که توی لینوکس ما pipe رو داریم. +مثلا به این شکل</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -L octocat.ir -F <span class="nv">arya_1</span><span class="o">=</span>/path/to/file +</span></span></code></pre></td></tr></table> +</div> +</div><p>اینطوری میشه یک زمان انقضا بر اساس ساعت برای هر فایل ایجاد کرد.</p> +<p>و خب همچنین میشه یک کوتاه کننده لینک هم بهش اضافه کنم، و لینک های کوتاه شده رو +ریدایرکت کنم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -L octocat.ir -F <span class="nv">url</span><span class="o">=</span><span class="s1">&#39;https://example.com/some/looooong/url/&#39;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>اگه اینها رو اضافه کنم، این پست رو اپدیت می‌کنم ولی خوشحال می‌شم شما +توی این پروژه مشارکت کنید.</p>کپی کردن ریزالت پایپ به کلیپ بردhttps://bit-orbit.github.io/p/%DA%A9%D9%BE%DB%8C-%DA%A9%D8%B1%D8%AF%D9%86-%D8%B1%DB%8C%D8%B2%D8%A7%D9%84%D8%AA-%D9%BE%D8%A7%DB%8C%D9%BE-%D8%A8%D9%87-%DA%A9%D9%84%DB%8C%D9%BE-%D8%A8%D8%B1%D8%AF/Sun, 01 May 2022 04:48:44 +0430https://bit-orbit.github.io/p/%DA%A9%D9%BE%DB%8C-%DA%A9%D8%B1%D8%AF%D9%86-%D8%B1%DB%8C%D8%B2%D8%A7%D9%84%D8%AA-%D9%BE%D8%A7%DB%8C%D9%BE-%D8%A8%D9%87-%DA%A9%D9%84%DB%8C%D9%BE-%D8%A8%D8%B1%D8%AF/<img src="https://bit-orbit.github.io/images/post/cclp.jpg" alt="Featured image of post کپی کردن ریزالت پایپ به کلیپ برد" /><div dir='rtl' style='font-size:23px'> +<p>ما زمانی که برنامه‌ای در ترمینال اجرا می‌کنیم برای کپی کردن ریزالت اون برنامه، با موس تکست رو سلکت می‌کنیم و بعد کپی می‌کنیم. اما می‌دونیم که توی لینوکس ما pipe رو داریم. پایپ کردن به این معنی است که شما یک برنامه رو اجرا می‌کنید و ریزالت اون برنامه رو بعنوان ورودی به یک برنامه دیگر می‌دهید. -و خب کاش می‌شد با پایپ کردن، متنی کپی بشه!</p> -<p>برنامه‌ای ساده نوشتم که این کار رو برای ما به سادگی انجام بده.</p> -<p>مثلا ما می‌خواهیم لیست فایل ها و دایرکتوری های داخل پوشه /var/ رو کپی کنیم. -می‌دونیم که دستور ls میاد و لیست فایل ها رو می‌گیره، کافیه این رو پایپ کنیم به clp تا این لیست به کلیپ برد کپی بشه.</p> -<p><code>ls /var | clp</code></p> -<p>برای نصب این چند دستور رو می‌تونید اجرا کنید:</p> -<div dir='ltr'> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span><span class="lnt">3 -</span><span class="lnt">4 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">cd</span> /tmp/ <span class="o">&amp;&amp;</span> wget <span class="s1">&#39;https://raw.githubusercontent.com/shabane/clp/master/clp.py&#39;</span> -</span></span><span class="line"><span class="cl">cp clp.py ~/.local/bin/clp -</span></span><span class="line"><span class="cl">chmod +x ~/.local/bin/clp -</span></span><span class="line"><span class="cl">clp -h -</span></span></code></pre></td></tr></table> -</div> -</div></div> -<br> -<p>و خب می‌تونید برای دیدن مثال ها ریپوی گیتهاب برنامه رو هم ببینید</p> -<p><a class="link" href="https://github.com/shabane/clp" target="_blank" rel="noopener" - >https://github.com/shabane/clp</a></p> -</div> - - - ساخت کوتاه کننده لینک با گیتهاب پیجز - https://bit-orbit.github.io/p/%D8%B3%D8%A7%D8%AE%D8%AA-%DA%A9%D9%88%D8%AA%D8%A7%D9%87-%DA%A9%D9%86%D9%86%D8%AF%D9%87-%D9%84%DB%8C%D9%86%DA%A9-%D8%A8%D8%A7-%DA%AF%DB%8C%D8%AA%D9%87%D8%A7%D8%A8-%D9%BE%DB%8C%D8%AC%D8%B2/ - Tue, 22 Mar 2022 22:41:20 +0000 - - https://bit-orbit.github.io/p/%D8%B3%D8%A7%D8%AE%D8%AA-%DA%A9%D9%88%D8%AA%D8%A7%D9%87-%DA%A9%D9%86%D9%86%D8%AF%D9%87-%D9%84%DB%8C%D9%86%DA%A9-%D8%A8%D8%A7-%DA%AF%DB%8C%D8%AA%D9%87%D8%A7%D8%A8-%D9%BE%DB%8C%D8%AC%D8%B2/ - <img src="https://bit-orbit.github.io/images/post/carbon_r7tm.jpg" alt="Featured image of post ساخت کوتاه کننده لینک با گیتهاب پیجز" /><div dir='rtl' style='font-size: x-large'> -<p>شاید تا به حال از کوتاه کننده های لینک استفاده کرده باشید، -اما ایا سایت <em>کوتاه کننده لینک</em> خودتون رو درست کردین؟</p> -<p>گیتهاب پیجز یک سرور رایگان برای دیپلوی سایت های ایستا است. +و خب کاش می‌شد با پایپ کردن، متنی کپی بشه!</p> +<p>برنامه‌ای ساده نوشتم که این کار رو برای ما به سادگی انجام بده.</p> +<p>مثلا ما می‌خواهیم لیست فایل ها و دایرکتوری های داخل پوشه /var/ رو کپی کنیم. +می‌دونیم که دستور ls میاد و لیست فایل ها رو می‌گیره، کافیه این رو پایپ کنیم به clp تا این لیست به کلیپ برد کپی بشه.</p> +<p><code>ls /var | clp</code></p> +<p>برای نصب این چند دستور رو می‌تونید اجرا کنید:</p> +<div dir='ltr'> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">cd</span> /tmp/ <span class="o">&amp;&amp;</span> wget <span class="s1">&#39;https://raw.githubusercontent.com/shabane/clp/master/clp.py&#39;</span> +</span></span><span class="line"><span class="cl">cp clp.py ~/.local/bin/clp +</span></span><span class="line"><span class="cl">chmod +x ~/.local/bin/clp +</span></span><span class="line"><span class="cl">clp -h +</span></span></code></pre></td></tr></table> +</div> +</div></div> +<br> +<p>و خب می‌تونید برای دیدن مثال ها ریپوی گیتهاب برنامه رو هم ببینید</p> +<p><a class="link" href="https://github.com/shabane/clp" target="_blank" rel="noopener" +>https://github.com/shabane/clp</a></p> +</div>ساخت کوتاه کننده لینک با گیتهاب پیجزhttps://bit-orbit.github.io/p/%D8%B3%D8%A7%D8%AE%D8%AA-%DA%A9%D9%88%D8%AA%D8%A7%D9%87-%DA%A9%D9%86%D9%86%D8%AF%D9%87-%D9%84%DB%8C%D9%86%DA%A9-%D8%A8%D8%A7-%DA%AF%DB%8C%D8%AA%D9%87%D8%A7%D8%A8-%D9%BE%DB%8C%D8%AC%D8%B2/Tue, 22 Mar 2022 22:41:20 +0000https://bit-orbit.github.io/p/%D8%B3%D8%A7%D8%AE%D8%AA-%DA%A9%D9%88%D8%AA%D8%A7%D9%87-%DA%A9%D9%86%D9%86%D8%AF%D9%87-%D9%84%DB%8C%D9%86%DA%A9-%D8%A8%D8%A7-%DA%AF%DB%8C%D8%AA%D9%87%D8%A7%D8%A8-%D9%BE%DB%8C%D8%AC%D8%B2/<img src="https://bit-orbit.github.io/images/post/carbon_r7tm.jpg" alt="Featured image of post ساخت کوتاه کننده لینک با گیتهاب پیجز" /><div dir='rtl' style='font-size: x-large'> +<p>شاید تا به حال از کوتاه کننده های لینک استفاده کرده باشید، +اما ایا سایت <em>کوتاه کننده لینک</em> خودتون رو درست کردین؟</p> +<p>گیتهاب پیجز یک سرور رایگان برای دیپلوی سایت های ایستا است. در واقع شما می‌توانید صفحه های html رو توی ریپو قرار بدین و این سایت اون صفحه ها رو به رایگان -برای شما نمایش می‌دهد.</p> -<p>از همین قابلیت برای ساخت یک +برای شما نمایش می‌دهد.</p> +<p>از همین قابلیت برای ساخت یک url redirector استفاده کردم، و با کمی جاوا اسکریپت یک صفحه درست کردم که وقتی شما با مرورگر اون رو باز می‌کنید، -مرورگر شما به صورت خودکار به یک آدرس متفاوت منتقل خواهد شد.</p> -<p>ولی مشکل اینجاست که شما هر بار باید کلی +مرورگر شما به صورت خودکار به یک آدرس متفاوت منتقل خواهد شد.</p> +<p>ولی مشکل اینجاست که شما هر بار باید کلی html, css -رو خودتان تغییر بدین و بعد قطعه کد جاوا اسکریپت رو اضافه کنید.</p> -<hr> -<div> -<h2> -<img style="width: 5%;" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABmJLR0QA/wD/AP+gvaeTAAAE50lEQVRoge2aW2wUVRiAvzPbC2BSuYTL7laDCYEIgZgCMWpILLuFpMYHNPapRHvZECHWQoQSLmYRAlaMtI032G25v0AiL0ignbUmqBiDxIBoEIw+tLstSMFGge7uzO/D7jZtKWXa7tbS7Pd49sx//m/OzOzM+Q+ksYjXq+H1aqkeRqUy+Ax932INrRYkW6Ay5PacTdVYKRHJDRx0ihnZJYri3mOok6ZNe6stv+TPZI+ZVJHc746NN+90rgeqgAkgdxE+iI+0AdR44A5QrU3I2d3yfNHdZI2dNBFHwP8yQh0wMx6619m/f5akVYm2qdVdehilZLjjD1vEEWjIQ8waYEmsRS503w8iKrfpwKyWZSVXE/3tum+JghpQefGmsyitMugqvTCcPIYs4tQPThGi74KsAWzATYHtoY6cjykqMhyBhjxMsw7FXGzG7GD+qr+6DxZRTr1hpSipBmYAooQj4Qzbhhv5JW0jIjLv2LGsW1M6KxC2AI8DYYS6e5Fx2zsKizun6b7pGaidwBuABgSVyKutBZ7v+8aafOpIzrjMe1tRVABZwN8odky6mVN3uagonDIRh97gBrMWmBtrEd3E9nabu/SXhef3ZgZv21Yr2BYXjID67F44e2tHYXHnQHFzm/2zTIOdwGuxsFxTGptaXeXHkyri1PfNFrSPgJfiTVc0Tda1LPWcAnA2+l2iUQvMSwiKUBEq8PxqNREAZ8C3VIQaUPPj2QU007a2paDk0rBEnjz76aRoV1YVsJbY1N9CUT3pZs6ey0VF4fvOJFxVwtrWgvIvByPQi2Zvht1wliqldiBMBaIK1WCE1Za2wtIbgxPxejXnC08Ui2I3yDTAVMLRqBl5p335m9ennzn0mE3rWo9SVcA44F9EPpwQubvrWmFF15AlehA7idlekNVABtAh8F7I1vIJ+d6oJRGH7rvY7/SKKPtX9cVKeB9wACZwIIpsuu72tCdDoC+5Tfvnm5qxB8EVa5FLQbdngUURvwCIUq+EXGUnAOyN9YuUJnXAc/Fu58RUFaFlZedTIdAXe6B+hRL5AiDoLr8v74yBDk5IOHRfAchp4o9TUWwMLS07kox/ZKuEXGUnHLr/gb9ber22TzS/Bi4C1RFb15yQqzwprxUPw6H7mhy6r8lK3wFnJMGPi1ZFaPYu7u8mSy3KbbWn9Q+eEZcYHCn/chsp0iKjjbTIaCMtMtpIi4w20iKjjbTIaMO6SLPX0iv//4Wl5Bae35sZum37Ad1/JmLr2nEjf80/qU4shuhWe1qakdBt7UVgAVCVaWRfsQf8KxFJaW0FIOj2FATdngIrfQcUsQfqV8QDNompngXOAQ4lHHIE6r+1N9YvGn661kjk8iDGzHJQvzMS/Kb1GSXqdVDXEVymMn5yNvkPTW/8fGrIVX7YMLJmI7INCAOlGajfHU0+76xTddlJEzjtn+zQ62tNZVyIS3QIVAZtrXn99R/wOp/ZvH9i2DA2MgqWTMUW3dyrNDEYkQT9LGL/poR1iYT7W8ROrNIPxiEWR/b0vKyNKJXty8t/ftixQykr1PSXcFLLCnBVKTYnvazQkzFR6OnJIEpvT2Mz5vS6vrtX+7tLb6YSjkaUrB/q0y9dDO1LvDxdCzwVD33SMMyK9uWeP+ARKE/3ZExsGOjJI7+Foy8juakm9YzQNqcxw39CC6i8SsB1XwAAAABJRU5ErkJggg==" alt="carbon carbon-link-shortener arya-shabane shabane mohamad-shabane"> +رو خودتان تغییر بدین و بعد قطعه کد جاوا اسکریپت رو اضافه کنید.</p> +<hr> +<div> +<h2> +<img style="width: 5%;" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABmJLR0QA/wD/AP+gvaeTAAAE50lEQVRoge2aW2wUVRiAvzPbC2BSuYTL7laDCYEIgZgCMWpILLuFpMYHNPapRHvZECHWQoQSLmYRAlaMtI032G25v0AiL0ignbUmqBiDxIBoEIw+tLstSMFGge7uzO/D7jZtKWXa7tbS7Pd49sx//m/OzOzM+Q+ksYjXq+H1aqkeRqUy+Ax932INrRYkW6Ay5PacTdVYKRHJDRx0ihnZJYri3mOok6ZNe6stv+TPZI+ZVJHc746NN+90rgeqgAkgdxE+iI+0AdR44A5QrU3I2d3yfNHdZI2dNBFHwP8yQh0wMx6619m/f5akVYm2qdVdehilZLjjD1vEEWjIQ8waYEmsRS503w8iKrfpwKyWZSVXE/3tum+JghpQefGmsyitMugqvTCcPIYs4tQPThGi74KsAWzATYHtoY6cjykqMhyBhjxMsw7FXGzG7GD+qr+6DxZRTr1hpSipBmYAooQj4Qzbhhv5JW0jIjLv2LGsW1M6KxC2AI8DYYS6e5Fx2zsKizun6b7pGaidwBuABgSVyKutBZ7v+8aafOpIzrjMe1tRVABZwN8odky6mVN3uagonDIRh97gBrMWmBtrEd3E9nabu/SXhef3ZgZv21Yr2BYXjID67F44e2tHYXHnQHFzm/2zTIOdwGuxsFxTGptaXeXHkyri1PfNFrSPgJfiTVc0Tda1LPWcAnA2+l2iUQvMSwiKUBEq8PxqNREAZ8C3VIQaUPPj2QU007a2paDk0rBEnjz76aRoV1YVsJbY1N9CUT3pZs6ey0VF4fvOJFxVwtrWgvIvByPQi2Zvht1wliqldiBMBaIK1WCE1Za2wtIbgxPxejXnC08Ui2I3yDTAVMLRqBl5p335m9ennzn0mE3rWo9SVcA44F9EPpwQubvrWmFF15AlehA7idlekNVABtAh8F7I1vIJ+d6oJRGH7rvY7/SKKPtX9cVKeB9wACZwIIpsuu72tCdDoC+5Tfvnm5qxB8EVa5FLQbdngUURvwCIUq+EXGUnAOyN9YuUJnXAc/Fu58RUFaFlZedTIdAXe6B+hRL5AiDoLr8v74yBDk5IOHRfAchp4o9TUWwMLS07kox/ZKuEXGUnHLr/gb9ber22TzS/Bi4C1RFb15yQqzwprxUPw6H7mhy6r8lK3wFnJMGPi1ZFaPYu7u8mSy3KbbWn9Q+eEZcYHCn/chsp0iKjjbTIaCMtMtpIi4w20iKjjbTIaMO6SLPX0iv//4Wl5Bae35sZum37Ad1/JmLr2nEjf80/qU4shuhWe1qakdBt7UVgAVCVaWRfsQf8KxFJaW0FIOj2FATdngIrfQcUsQfqV8QDNompngXOAQ4lHHIE6r+1N9YvGn661kjk8iDGzHJQvzMS/Kb1GSXqdVDXEVymMn5yNvkPTW/8fGrIVX7YMLJmI7INCAOlGajfHU0+76xTddlJEzjtn+zQ62tNZVyIS3QIVAZtrXn99R/wOp/ZvH9i2DA2MgqWTMUW3dyrNDEYkQT9LGL/poR1iYT7W8ROrNIPxiEWR/b0vKyNKJXty8t/ftixQykr1PSXcFLLCnBVKTYnvazQkzFR6OnJIEpvT2Mz5vS6vrtX+7tLb6YSjkaUrB/q0y9dDO1LvDxdCzwVD33SMMyK9uWeP+ARKE/3ZExsGOjJI7+Foy8juakm9YzQNqcxw39CC6i8SsB1XwAAAABJRU5ErkJggg==" alt="carbon carbon-link-shortener arya-shabane shabane mohamad-shabane"> Carbon -</h2> -</div> -<p><a class="link" href="https://bit-orbit.github.io/images/post/scarbon.jpg" ><img src="https://bit-orbit.github.io/images/post/scarbon.jpg" - - - - loading="lazy" - - alt="carbon-shot" - - -></a></p> -<p>من یک برنامه کوتاه کننده لینک درست کردم که +</h2> +</div> +<p><a class="link" href="https://bit-orbit.github.io/images/post/scarbon.jpg" ><img src="https://bit-orbit.github.io/images/post/scarbon.jpg" +loading="lazy" +alt="carbon-shot" +></a></p> +<p>من یک برنامه کوتاه کننده لینک درست کردم که زمانی که شما برنامه رو اجرا کنید، فایل های مورد نیاز رو برای شما -می‌سازه.</p> -<p>برنامه رو که اجرا کنید یک +می‌سازه.</p> +<p>برنامه رو که اجرا کنید یک CLI -اجرا خواهد شد و از شما چند ورودی را درخواست خواهد کرد.</p> -<p>اولین ورودی لینک طولانی است که -شما نیاز دارید آن را کوتاه کنید.</p> -<p>در قدم دوم، برنامه یک نام که همان لینک کوتاه شده است را از شما خواهد گرفت، +اجرا خواهد شد و از شما چند ورودی را درخواست خواهد کرد.</p> +<p>اولین ورودی لینک طولانی است که +شما نیاز دارید آن را کوتاه کنید.</p> +<p>در قدم دوم، برنامه یک نام که همان لینک کوتاه شده است را از شما خواهد گرفت، این نام را اگر به صورت خالی رها کنید، یک نام تصادفی بر اساس فایل کانفیگ -در نظر گرفته خواهد شد.</p> -<p>شاید سایت هایی را دیده باشید که از کاربر می‌خواند برای بازکردن لینک +در نظر گرفته خواهد شد.</p> +<p>شاید سایت هایی را دیده باشید که از کاربر می‌خواند برای بازکردن لینک روی یک دکمه کلیک کنند، و در این فرصت که کاربر هنوز وارد لیک اصلی نشده است، تبلیغاتی را به آنها نمایش می‌دهند. پس سوال سوم این خواهد بود که آیا کاربر باید برای وارد شدن به لینک اصلی، دکمه‌ای را بزند و یا به صورت -خودکار وارد آن شود؟</p> -<p>سوال سوم از شما یک عنوان می‌خواهد که برای هدر سایت +خودکار وارد آن شود؟</p> +<p>سوال سوم از شما یک عنوان می‌خواهد که برای هدر سایت از آن استفاده کند، البته اگر تم سایت را کاستومایز کنید، این عنوان -در هر جایی ممکن است قرار بگیرد.</p> -<p>و آخرین سوال از شما یک توضیح برای لینک می‌خواهد. ممکن شما +در هر جایی ممکن است قرار بگیرد.</p> +<p>و آخرین سوال از شما یک توضیح برای لینک می‌خواهد. ممکن شما بخواهید قبل از اینکه کاربر وارد لینک اصلی شود یک متنی را بخواند. -این توضیحات به کاربر نمایش داده خواهد شد.</p> -<p>برنامه کربن را منبع باز داخل این -<a class="link" href="https://shabane.github.io/carbon/on_open" target="_blank" rel="noopener" - >آدرس</a> -در گیتهاب قرار دادم، امیدوارم که مفید باشه.</p> -<hr> -<h2 id="deployment">Deployment</h2> -<p>البته همینطور که می‌دانید نیاز نیست حتما از گیتهاب پیجز برای +این توضیحات به کاربر نمایش داده خواهد شد.</p> +<p>برنامه کربن را منبع باز داخل این +<a class="link" href="https://shabane.github.io/carbon/on_open" target="_blank" rel="noopener" +>آدرس</a> +در گیتهاب قرار دادم، امیدوارم که مفید باشه.</p> +<hr> +<h2 id="deployment">Deployment +</h2><p>البته همینطور که می‌دانید نیاز نیست حتما از گیتهاب پیجز برای دیپلوی استفاده کنید. و تنها مشکلی که در این قضیه هست لینک هایی هست که تولید می‌شوند، این لینک ها به ساب دامین اکانت شما متصل می‌شوند، پس حفظ آن ها برای شما ساده است :) -اما نکته اینجاست که کافیست شما یک دامنه ثبت کنید.</p> -<p>راه دوم این است که با یک وب سرور مثل +اما نکته اینجاست که کافیست شما یک دامنه ثبت کنید.</p> +<p>راه دوم این است که با یک وب سرور مثل nginx این سایت را مستقر کنید، و هرگاه نیاز به ساخت لینک کوتاه داشتید، -برنامه رو اجرا کنید.</p> -<hr> -<h2 id="theme">Theme</h2> -<p>من هیچ وقت دیزانر خوبی نبودم و به همین دلیل تم اصلی سایت ساده‌س. +برنامه رو اجرا کنید.</p> +<hr> +<h2 id="theme">Theme +</h2><p>من هیچ وقت دیزانر خوبی نبودم و به همین دلیل تم اصلی سایت ساده‌س. شما می‌توانید به راحتی تم خودتان رو بسازید، کافیه که -<a class="link" href="https://github.com/shabane/carbon/blob/master/documentation/theme.md" target="_blank" rel="noopener" - >داکیومنت ساخت</a> +<a class="link" href="https://github.com/shabane/carbon/blob/master/documentation/theme.md" target="_blank" rel="noopener" +>داکیومنت ساخت</a> تم رو مطالعه کنید. فقط و فقط چند تگ و فایل هست که باید ازش درون تم استفاده کنید، اگر تمی ساختید که -قشنگتر از تم اصلی هست، خوشحال می‌شم به ریپو اصلی پوش کنید.</p> -</div> - - - - +قشنگتر از تم اصلی هست، خوشحال می‌شم به ریپو اصلی پوش کنید.</p> +</div> \ No newline at end of file diff --git a/docs/categories/projects/page/1/index.html b/docs/categories/projects/page/1/index.html index 37a3c7f..1db401c 100644 --- a/docs/categories/projects/page/1/index.html +++ b/docs/categories/projects/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/categories/projects/ - - - - - - +https://bit-orbit.github.io/categories/projects/ + \ No newline at end of file diff --git a/docs/categories/python/index.html b/docs/categories/python/index.html index f19a32d..37f8fe5 100644 --- a/docs/categories/python/index.html +++ b/docs/categories/python/index.html @@ -1,576 +1,37 @@ - - - - -Category: Python - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Categories - -

- -
-
-

2 صفحه

-

Python

- -
-
-
- -
- - - - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Category: Python - bit-orbit +

Categories

2 صفحه

Python

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git a/docs/categories/python/index.xml b/docs/categories/python/index.xml index 6dcea2c..ed077ca 100644 --- a/docs/categories/python/index.xml +++ b/docs/categories/python/index.xml @@ -1,79 +1,65 @@ - - - - Python on bit-orbit - https://bit-orbit.github.io/categories/python/ - Recent content in Python on bit-orbit - Hugo -- gohugo.io - fa - Wed, 06 Mar 2024 23:50:46 +0330 - Crul Paste - https://bit-orbit.github.io/p/crul-paste/ - Wed, 06 Mar 2024 23:50:46 +0330 - - https://bit-orbit.github.io/p/crul-paste/ - <img src="https://bit-orbit.github.io/images/post/curlpaste.jpg" alt="Featured image of post Crul Paste" /><p>اول بیایید ببینم +Python on bit-orbithttps://bit-orbit.github.io/categories/python/Recent content in Python on bit-orbitHugo -- gohugo.iofaWed, 06 Mar 2024 23:50:46 +0330Crul Pastehttps://bit-orbit.github.io/p/crul-paste/Wed, 06 Mar 2024 23:50:46 +0330https://bit-orbit.github.io/p/crul-paste/<img src="https://bit-orbit.github.io/images/post/curlpaste.jpg" alt="Featured image of post Crul Paste" /><p>اول بیایید ببینم FileBin چیه! قبل از اون هم فکر می‌کنم همه بدونیم -<a class="link" href="https://virgool.io/@m_shabane/pastebin-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B1%D8%A7-%D9%87%DA%A9%D8%B1-%D9%87%D8%A7-%D8%B9%D8%A7%D8%B4%D9%82-%D8%A2%D9%86-%D9%87%D8%A7%D8%B3%D8%AA%D9%86%D8%AF-swafqm95gttp" target="_blank" rel="noopener" - >pastebin</a> +<a class="link" href="https://virgool.io/@m_shabane/pastebin-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B1%D8%A7-%D9%87%DA%A9%D8%B1-%D9%87%D8%A7-%D8%B9%D8%A7%D8%B4%D9%82-%D8%A2%D9%86-%D9%87%D8%A7%D8%B3%D8%AA%D9%86%D8%AF-swafqm95gttp" target="_blank" rel="noopener" +>pastebin</a> چیه. اگه نمی‌دونید خیلی ساده باید بگم یک سایتی که فقط روی اون متن به اشتراک می‌ذارن -مثلا ممکنه ارور ها یا حتی سورس یک برنامه باشه!</p> -<p>اما +مثلا ممکنه ارور ها یا حتی سورس یک برنامه باشه!</p> +<p>اما FileBin ها بجای تسکت فایل های شما رو نگهداری می‌کنند و به شما لینکی ارائه می‌کنند که فایل را برای دیگران اشتراک بگذارید، نمونه های زیادی هم وجود داره مثل -<a class="link" href="https://wormhole.app" target="_blank" rel="noopener" - >https://wormhole.app</a></p> -<p>اما خب از اونجایی که من زندگی‌ام رو توی ترمینال می‌گذرونم و ترمینال رو به باز کردن مرورگر برای اشتراک یک فایل ترجیح می‌دم، پس از +<a class="link" href="https://wormhole.app" target="_blank" rel="noopener" +>https://wormhole.app</a></p> +<p>اما خب از اونجایی که من زندگی‌ام رو توی ترمینال می‌گذرونم و ترمینال رو به باز کردن مرورگر برای اشتراک یک فایل ترجیح می‌دم، پس از FileBin هایی استفاده می‌کنم که بتونم تحت ترمینال به سادگی فایلم رو به اشتراک بذارم. برای مثال -<a class="link" href="https://0x0.st" target="_blank" rel="noopener" - >https://0x0.st</a></p> -<p>وقتی این رو سایت رو باز کنید هیچ گزینه‌ای برای انتخاب فایل و آپلود نمی‌بینید! خب پس چطور باید یک فایل را برای سایت آپلود کنید؟ +<a class="link" href="https://0x0.st" target="_blank" rel="noopener" +>https://0x0.st</a></p> +<p>وقتی این رو سایت رو باز کنید هیچ گزینه‌ای برای انتخاب فایل و آپلود نمی‌بینید! خب پس چطور باید یک فایل را برای سایت آپلود کنید؟ کافیه یک ریکوئست HTTP POST خیلی ساده به سایت بزنید که شامل فایتون باشه. این کار رو خیلی ساده می‌شه با curl -انجام داد.</p> -<p>مثلا بیایین اشتراک یک فایل رو ببینیم</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl https://0x0.st -F <span class="nv">file</span><span class="o">=</span>@/path/to/file -</span></span><span class="line"><span class="cl"><span class="c1"># https://0x0.st/zWKo.txt</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>این سایت خیلی خوبه +انجام داد.</p> +<p>مثلا بیایین اشتراک یک فایل رو ببینیم</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl https://0x0.st -F <span class="nv">file</span><span class="o">=</span>@/path/to/file +</span></span><span class="line"><span class="cl"><span class="c1"># https://0x0.st/zWKo.txt</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>این سایت خیلی خوبه اما از زمانی به بعد دیگه این سایت کاری که من نیاز دارم رو کفاف نداد! برای مثال من نیاز دارم فایلم بعد از اولین دانلود از روی سرور حذف بشه و از این مهم تر نیاز داشتم که چندین فایل رو با یک یوزنیم مشخص اپلود کنم که خب شخصی که قرار باشه فایل ها رو دانلود کنه، کافیه از یوزنیم استفاده کنه که راحت تر قابل حفظ کردن و اشتراک گذاشتنه. اینطوری بود که گفتم FileBin -خودم رو بنویسم :)</p> -<hr> -<p><strong>بیایید فیچر ها و روش استفاده ازش رو با هم ببینیم.</strong></p> -<p>فرض کنید شما یک فایل دارید که می‌خواهید با من به اشتراک بگذارید، +خودم رو بنویسم :)</p> +<hr> +<p><strong>بیایید فیچر ها و روش استفاده ازش رو با هم ببینیم.</strong></p> +<p>فرض کنید شما یک فایل دارید که می‌خواهید با من به اشتراک بگذارید، خیلی ساده ترمینال رو باز می‌کنید و با یک دستور فایل رو با یک URL -تقریبا تصادفی منتشر می‌کنید.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">file</span><span class="o">=</span>@/tmp/theFile.fli -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/theFile.fli</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>دقت کنید من از سوییچ +تقریبا تصادفی منتشر می‌کنید.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">file</span><span class="o">=</span>@/tmp/theFile.fli +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/theFile.fli</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>دقت کنید من از سوییچ -L استفاده می‌کنم، دلیل اینکار این هست که خب ممکنه سایت شما رو ریدایرکت کنه. مثلا از @@ -82,213 +68,204 @@ http https. برای همین این سوییچ رو استفاده می‌کنم. با این سوییچ دیگه نیازی نیست https:// -رو هم بنویسیم!</p> -</blockquote> -<p>حالا اگه نیاز دارین که فایلتون بعد از اولین دانلود از روی سرور حذف بشه و دیگه در دسترس نباشه +رو هم بنویسیم!</p> +</blockquote> +<p>حالا اگه نیاز دارین که فایلتون بعد از اولین دانلود از روی سرور حذف بشه و دیگه در دسترس نباشه کافیه از کلمه -<code>once</code> +<code>once</code> بجای -<code>file</code> -استفاده کنید.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@/tmp/theFile.fli -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/theFile_GKug7xb.fli</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>تا اینجای کار همه +<code>file</code> +استفاده کنید.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@/tmp/theFile.fli +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/theFile_GKug7xb.fli</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>تا اینجای کار همه URL های هر فایلی به صورت تصادفی هست و من نیاز دارم که چندین فایل رو زیر یک یوزنیم مشخص مثل -<code>arya</code> +<code>arya</code> قرار بدم. اینطوری وقتی قراره یک فایل رو برای همکارم توی شرکت بفرستم خیلی ساده ازش درخواست می‌کنم در سایت به ادرس -<code>/arya</code> +<code>/arya</code> بره. حالا چطوری اینکارو بکنیم خیلی ساده بجای -<code>once</code> +<code>once</code> یا -<code>file</code>, +<code>file</code>, همون -<code>username</code> -رو می‌نویسیم(توی مثال من از نام <strong><em>arya</em></strong> استفاده می‌کنیم)</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">arya</span><span class="o">=</span>@/tmp/pic.jpg -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/arya</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>تا اینجای کار مثلا شما چند بار چند فایل مختلف رو زیر یک یوزنیم قرار دادین -حالا چطور میشه همه اونها رو باهم دانلود کرد؟</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir/arya <span class="p">|</span> wget -i - -</span></span></code></pre></td></tr></table> -</div> -</div><p>حالا به این فکر کنید که یکنفر میاد و با یوزنیم های معقول ریکوئست میزنه به سایت و +<code>username</code> +رو می‌نویسیم(توی مثال من از نام <strong><em>arya</em></strong> استفاده می‌کنیم)</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">arya</span><span class="o">=</span>@/tmp/pic.jpg +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/arya</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>تا اینجای کار مثلا شما چند بار چند فایل مختلف رو زیر یک یوزنیم قرار دادین +حالا چطور میشه همه اونها رو باهم دانلود کرد؟</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir/arya <span class="p">|</span> wget -i - +</span></span></code></pre></td></tr></table> +</div> +</div><p>حالا به این فکر کنید که یکنفر میاد و با یوزنیم های معقول ریکوئست میزنه به سایت و فایل های بقیه رو دانلود می‌کنه، اینجاست که پسورد به کار میاد. برای گذاشتن پسورد روی هر فایل کافیه توی خود URL سایت پسورد رو بعنوان http parametr -بنویسد.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L <span class="s1">&#39;octocat.ir/?password=12345678&#39;</span> -F <span class="nv">once</span><span class="o">=</span>@/Desktop/TopSecret.fli -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/file/TopSecret/?password=12345678</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>اینجا دقت کنید که باید از کوتیشن استفاده کنیم چون علامت مساوی و علامت سوال رو bash وایلد کارد می‌بینه.</p> -</blockquote> -<p>برای دانلود هر فایلی هم که پسورد داره کافیه دقیقا مثل مثال قبلی عمل کنید و پسورد رو توی +بنویسد.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L <span class="s1">&#39;octocat.ir/?password=12345678&#39;</span> -F <span class="nv">once</span><span class="o">=</span>@/Desktop/TopSecret.fli +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/file/TopSecret/?password=12345678</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>اینجا دقت کنید که باید از کوتیشن استفاده کنیم چون علامت مساوی و علامت سوال رو bash وایلد کارد می‌بینه.</p> +</blockquote> +<p>برای دانلود هر فایلی هم که پسورد داره کافیه دقیقا مثل مثال قبلی عمل کنید و پسورد رو توی http parametr -وارد کنید</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ wget <span class="s1">&#39;octocat.ir/file/TopSecret/?password=12345678&#39;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>براتون سواله که چرا پسورد روی توی +وارد کنید</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ wget <span class="s1">&#39;octocat.ir/file/TopSecret/?password=12345678&#39;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>براتون سواله که چرا پسورد روی توی URL گذاشتم؟ می‌شد که مثلا توی http header پسورد بگیریم و بدیم، پس چرا توی -URL?</p> -<p>اینکار برای این هست که دسترسی به فایل ساده باشه. مثلا من وقتی می‌خام فایلی رو برای همکارم بفرستم +URL?</p> +<p>اینکار برای این هست که دسترسی به فایل ساده باشه. مثلا من وقتی می‌خام فایلی رو برای همکارم بفرستم و خب فرض کنم همکار من از header ها چیزی نمی‌دونه، و فقط با یک کلیک باید بتونه به فایل دسترسی پیدا کنه، اینجاست که من فقط یک URL -به اون می‌گم :)</p> -<hr> -<p>بعضی از ابزار ها +به اون می‌گم :)</p> +<hr> +<p>بعضی از ابزار ها hackable هستند! این به معنی ضعف امنیتی نیست، بلکه به این اشاره می‌کنه ابزار به روشی طراحی -شده که کاربران می‌تونند خارج از هدف اصلی اون ابزار از اون استفاه کنند.</p> -<p>برای مثال ابزار که من درست کردم برای اشتراک فایل هست، اما بنظرتون میشه یک دایرکتوری و یا یک متن رو هم باهاش به اشتراک گذاشت؟</p> -<p>قطعا! اما چطوری؟</p> -<p>برای اینکه یک دایرکتوری با تمامی ساب دایرکتوری هاش رو بفرستین +شده که کاربران می‌تونند خارج از هدف اصلی اون ابزار از اون استفاه کنند.</p> +<p>برای مثال ابزار که من درست کردم برای اشتراک فایل هست، اما بنظرتون میشه یک دایرکتوری و یا یک متن رو هم باهاش به اشتراک گذاشت؟</p> +<p>قطعا! اما چطوری؟</p> +<p>برای اینکه یک دایرکتوری با تمامی ساب دایرکتوری هاش رو بفرستین کافیه از -<code>tar</code> -استفاده کنید.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ tar -cf - ~/Pictures <span class="p">|</span> curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@- -</span></span><span class="line"><span class="cl"><span class="c1"># &#39;octocat.ir/file/_nUiuRPW/</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>با اینکار با استفاده از +<code>tar</code> +استفاده کنید.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ tar -cf - ~/Pictures <span class="p">|</span> curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@- +</span></span><span class="line"><span class="cl"><span class="c1"># &#39;octocat.ir/file/_nUiuRPW/</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>با اینکار با استفاده از tar تمامی فایل ها و دایرکتوری های مثلا پوشه -<em>~/Pictures</em> +<em>~/Pictures</em> رو به آرشیو -<code>tar</code> +<code>tar</code> تبدیل می‌کنید و بعد خروجی رو بعنوان ورودی به -<code>curl</code> -می‌فرستین.</p> -<p>حالا به این فکر کنید که بخواهیم یک متن رو منتشر کنیم، راهکار دقیقا مشابه قبلیه. +<code>curl</code> +می‌فرستین.</p> +<p>حالا به این فکر کنید که بخواهیم یک متن رو منتشر کنیم، راهکار دقیقا مشابه قبلیه. به این شکل که یک متن رو با استفاده از -<code>echo</code> +<code>echo</code> به ورودی استاندارد -<code>curl</code> -می‌فرستیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ <span class="nb">echo</span> <span class="s1">&#39;Some Random Text&#39;</span> <span class="p">|</span> curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@- -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/file/-_W00DSbS/</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>اینطوری خیلی راحت می‌شه خروجی هر کامندی رو روی به اشتراک گذاشت</p> -</blockquote> -<hr> -<p>سایت من توی آدرس +<code>curl</code> +می‌فرستیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ <span class="nb">echo</span> <span class="s1">&#39;Some Random Text&#39;</span> <span class="p">|</span> curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@- +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/file/-_W00DSbS/</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>اینطوری خیلی راحت می‌شه خروجی هر کامندی رو روی به اشتراک گذاشت</p> +</blockquote> +<hr> +<p>سایت من توی آدرس octocat.ir -در دسترسه، خوشحال می‌شم ازش استفاده کنید :)</p> -<blockquote> -<p>اینو بدونید که سایت به صورت دیفالت فایل ها رو برای 24 ساعت نگه‌میداره</p> -</blockquote> -<p>این سرویس رو منبع باز روی -<a class="link" href="https://github.com/shabane/CurlPaste/" target="_blank" rel="noopener" - >گیتهاب</a> -گذاشتم، اگه چیزی خواستید می‌تونید بهش اضافه کنید و یا مشکلاتش رو پچ کنید.</p> -<p>و اگه می‌خواهید برای خودتون این سرویس رو بیارید بالا از ایمیج داکر استفاده کنید</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">docker run -p 80:80 mshabane/curlpaste:latest -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>اگه نیاز دارین تا فایل ها برای تایم بالاتری نگه‌داری بشه، متغییر -<em>HOURS</em> +در دسترسه، خوشحال می‌شم ازش استفاده کنید :)</p> +<blockquote> +<p>اینو بدونید که سایت به صورت دیفالت فایل ها رو برای 24 ساعت نگه‌میداره</p> +</blockquote> +<p>این سرویس رو منبع باز روی +<a class="link" href="https://github.com/shabane/CurlPaste/" target="_blank" rel="noopener" +>گیتهاب</a> +گذاشتم، اگه چیزی خواستید می‌تونید بهش اضافه کنید و یا مشکلاتش رو پچ کنید.</p> +<p>و اگه می‌خواهید برای خودتون این سرویس رو بیارید بالا از ایمیج داکر استفاده کنید</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">docker run -p 80:80 mshabane/curlpaste:latest +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>اگه نیاز دارین تا فایل ها برای تایم بالاتری نگه‌داری بشه، متغییر +<em>HOURS</em> داخل فایل -<em>.env</em> -رو تغییر بدین.</p> -</blockquote> -<hr> -<p>ایده های دیگه‌ای هم برای سایت دارم، برای مثال اینکه کاربر بتونه زمان انقضای +<em>.env</em> +رو تغییر بدین.</p> +</blockquote> +<hr> +<p>ایده های دیگه‌ای هم برای سایت دارم، برای مثال اینکه کاربر بتونه زمان انقضای هر فایل رو خودش مشخص کنه. -مثلا به این شکل</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -L octocat.ir -F <span class="nv">arya_1</span><span class="o">=</span>/path/to/file -</span></span></code></pre></td></tr></table> -</div> -</div><p>اینطوری میشه یک زمان انقضا بر اساس ساعت برای هر فایل ایجاد کرد.</p> -<p>و خب همچنین میشه یک کوتاه کننده لینک هم بهش اضافه کنم، و لینک های کوتاه شده رو -ریدایرکت کنم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -L octocat.ir -F <span class="nv">url</span><span class="o">=</span><span class="s1">&#39;https://example.com/some/looooong/url/&#39;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>اگه اینها رو اضافه کنم، این پست رو اپدیت می‌کنم ولی خوشحال می‌شم شما -توی این پروژه مشارکت کنید.</p> - - - - از گوگل به تلگرام! - https://bit-orbit.github.io/p/%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/ - Mon, 18 Dec 2023 00:08:38 +0330 - - https://bit-orbit.github.io/p/%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/ - <img src="https://bit-orbit.github.io/images/post/colab.jpg" alt="Featured image of post از گوگل به تلگرام!" /><p>به احتمال زیاد سایت +مثلا به این شکل</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -L octocat.ir -F <span class="nv">arya_1</span><span class="o">=</span>/path/to/file +</span></span></code></pre></td></tr></table> +</div> +</div><p>اینطوری میشه یک زمان انقضا بر اساس ساعت برای هر فایل ایجاد کرد.</p> +<p>و خب همچنین میشه یک کوتاه کننده لینک هم بهش اضافه کنم، و لینک های کوتاه شده رو +ریدایرکت کنم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -L octocat.ir -F <span class="nv">url</span><span class="o">=</span><span class="s1">&#39;https://example.com/some/looooong/url/&#39;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>اگه اینها رو اضافه کنم، این پست رو اپدیت می‌کنم ولی خوشحال می‌شم شما +توی این پروژه مشارکت کنید.</p>از گوگل به تلگرام!https://bit-orbit.github.io/p/%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/Mon, 18 Dec 2023 00:08:38 +0330https://bit-orbit.github.io/p/%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/<img src="https://bit-orbit.github.io/images/post/colab.jpg" alt="Featured image of post از گوگل به تلگرام!" /><p>به احتمال زیاد سایت google colab رو می‌شناسید، این سایت برای کسانی که پایتون کار می‌کنند یک معجزه‌ست. خیلی راحت شما می‌توانید کد پایتون خود @@ -298,30 +275,30 @@ google colab این سرویس گوگل واقعا کار رو راحت می‌کنه. حالا فرض کنید این فایل رو باید با تیم به اشتراک بگذارید، خیلی راحت این سروریس به گوگل درایو شما متصل می‌شه -و فایل رو براتون آپلود می‌کنه.</p> -<p>اما من توی این پست می‌خواهم کار متفاوتی با این سرویس +و فایل رو براتون آپلود می‌کنه.</p> +<p>اما من توی این پست می‌خواهم کار متفاوتی با این سرویس انجام بدم، جای اینکه فایل‌م رو توی گوگل درایو آپلود کنم می‌خواهم که یک پلی لیست موزیک راک رو که فایل با فرمت zip هست رو روی google colab دانلود کنم و بعد با همین کولب فایل -ها را استخراج و به تلگرام اپلود کنم.</p> -<p>اینو بگم که خب روی کولب خیلی تریک های جالب دیگه‌ای هم +ها را استخراج و به تلگرام اپلود کنم.</p> +<p>اینو بگم که خب روی کولب خیلی تریک های جالب دیگه‌ای هم می‌زنند، مثلا من یه تایمی به کولب ssh می‌کردم و بعنوان vpn -استفاده می‌کردم.</p> -<hr> -<p>ادرس سرویس +استفاده می‌کردم.</p> +<hr> +<p>ادرس سرویس google colab -<a class="link" href="https://colab.research.google.com/" target="_blank" rel="noopener" - >این</a> +<a class="link" href="https://colab.research.google.com/" target="_blank" rel="noopener" +>این</a> هست، ولی من یک اسکریپت نوشتم که به اون نیاز داریم برای همین -<a class="link" href="https://colab.research.google.com/github/shabane/upload-to-telegram/blob/master/upload_to_telegram.ipynb" target="_blank" rel="noopener" - >این لینک</a> +<a class="link" href="https://colab.research.google.com/github/shabane/upload-to-telegram/blob/master/upload_to_telegram.ipynb" target="_blank" rel="noopener" +>این لینک</a> رو باز کنید تا اسکریپتی که من نوشته‌م توی colab @@ -329,229 +306,200 @@ colab jupyter کار کرده باشین این محیط باید براتون خیلی آشنا باشه. اگر نه، خیلی ساده بگم، این محیط دستورات پایتون رو -براتون روی سروس های گوگل ران می‌کنه :)</p> -<p>خب ما یه فایل این برای مثالمون نیاز داریم، من یک پلی +براتون روی سروس های گوگل ران می‌کنه :)</p> +<p>خب ما یه فایل این برای مثالمون نیاز داریم، من یک پلی لیست راک از AC/DC -که از تورنت می‌گیرم رو برای اینکار استفاده می‌کنم.</p> -<p>اول من فایل رو باید دانلود کنم، من از تورنت برای دانلود +که از تورنت می‌گیرم رو برای اینکار استفاده می‌کنم.</p> +<p>اول من فایل رو باید دانلود کنم، من از تورنت برای دانلود موزیک، فیلم و &hellip; استفاده می‌کنم. پس کافیه لینک تورنت رو به برنامه aria2c بدم و یا فایل رو با یک سایت دانلودر تورنت دانلود کنم و لینک‌ش رو بدم به برنامه -wget</p> -<p>برای اینکه دستورات خودتون رو اجرا کنید از بالای سایت +wget</p> +<p>برای اینکه دستورات خودتون رو اجرا کنید از بالای سایت گزینه -<em>+ code</em> +<em>+ code</em> رو بزنید تا یک code snipp جدید براتون باز کنه. توی این قسمت فقط می‌شه کد های پایتون رو اجرا کرد ولی اگه از علامت -<strong>!</strong> +<strong>!</strong> قبل از دستور استفاده کنیم اون رو بعنوان دستور bash اجرا خواهد کرد. و خب بیس سیستم عامل هم دبیان هست -و دستورات دبیانی رو اجرا می‌کنه.</p> -<p>پس اگه مستقیم قرار بود فایل رو از تورنت بگیرم باید برنامه +و دستورات دبیانی رو اجرا می‌کنه.</p> +<p>پس اگه مستقیم قرار بود فایل رو از تورنت بگیرم باید برنامه aria2 -رو نصب می‌کردم. برای نصب کافیه این دستور رو بزنیم</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!sudo apt-get install aria2 -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>دقت کنید که از علامت -<code>!</code> -قبل از دستور استفاده کردم.</p> -</blockquote> -<p>بعد از نصب، لینک رو می‌دیم به برنامه تا فایل ها رو برامون -دانلود کنه.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!aria2c <span class="s1">&#39;&lt;your magnet link&gt;&#39;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>به این دقت کنید که برنامه با کامند +رو نصب می‌کردم. برای نصب کافیه این دستور رو بزنیم</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!sudo apt-get install aria2 +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>دقت کنید که از علامت +<code>!</code> +قبل از دستور استفاده کردم.</p> +</blockquote> +<p>بعد از نصب، لینک رو می‌دیم به برنامه تا فایل ها رو برامون +دانلود کنه.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!aria2c <span class="s1">&#39;&lt;your magnet link&gt;&#39;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>به این دقت کنید که برنامه با کامند aria2c اجرا می‌شه. ولی با به اسم aria2 -نصب می‌شه.</p> -</blockquote> -<p>و یا اینکه لینک دانلود مستقیم رو به برنامه +نصب می‌شه.</p> +</blockquote> +<p>و یا اینکه لینک دانلود مستقیم رو به برنامه wget می‌دیم. این برنامه به صورت دیفالت نصب هست و لازم نیست -کار خاصی بکنیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!wget <span class="s1">&#39;&lt;your file link&gt;&#39;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p><img src="https://bit-orbit.github.io/images/post/wgetcolab.jpg" - - - - loading="lazy" - - alt="from google to telegram as cloud" - - -></p> -<p>بعد از اینکه فایل روی سرور گوگل دانلود شد کافیه فایل -رو به تلگرام آپلود کنیم! ولی قبل‌ش چند کاری هست که باید -باهم بکنیم.</p> -<ul> -<li>فایل من زیپه پس باید استخراج کنم.</li> -<li>فایل ها توی دایرکتوری های تو در تو قرار دارند، و باید همه فایل های مورد نظرم رو که توی این مورد +کار خاصی بکنیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!wget <span class="s1">&#39;&lt;your file link&gt;&#39;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p><img src="https://bit-orbit.github.io/images/post/wgetcolab.jpg" +loading="lazy" +alt="from google to telegram as cloud" +></p> +<p>بعد از اینکه فایل روی سرور گوگل دانلود شد کافیه فایل +رو به تلگرام آپلود کنیم! ولی قبل‌ش چند کاری هست که باید +باهم بکنیم.</p> +<ul> +<li>فایل من زیپه پس باید استخراج کنم.</li> +<li>فایل ها توی دایرکتوری های تو در تو قرار دارند، و باید همه فایل های مورد نظرم رو که توی این مورد mp3 هستند رو بیارم داخل پوشه‌ای که اسکریپت دیفالت آنجا ران -می‌شه.</li> -<li>نیاز به یک کانال تلگرام دارم که فایل ها مستقیم اونجا -اپلود بشوند</li> -<li>یک توکن ربات تلگرام هم نیازه که با استفاده از دسترسی -ربات به کانال، فایل ها رو اپلود کنیم.</li> -</ul> -<p>خب برای اسختراج فایل ها خیلی ساده از کامند -<code>unzip</code> -و اسم فایل جلوی این کامند استفاده می‌کنیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!unzip &lt;your file name&gt; -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>با کامند -<code>ls</code> -نام فایلی که دانلود کردین رو می‌تونید ببینید.</p> -</blockquote> -<p><img src="https://bit-orbit.github.io/images/post/unzipcolab.jpg" - - - - loading="lazy" - - alt="uizip in colab" - - -></p> -<p>با اجرای کامند -<code>tree</code> -می‌تونید دایرکتوری های تو در تو رو ببینید.</p> -<p><img src="https://bit-orbit.github.io/images/post/treecolab.jpg" - - - - loading="lazy" - - alt="tree in colab" - - -></p> -<p>توی این مرحله من همه فایل های +می‌شه.</li> +<li>نیاز به یک کانال تلگرام دارم که فایل ها مستقیم اونجا +اپلود بشوند</li> +<li>یک توکن ربات تلگرام هم نیازه که با استفاده از دسترسی +ربات به کانال، فایل ها رو اپلود کنیم.</li> +</ul> +<p>خب برای اسختراج فایل ها خیلی ساده از کامند +<code>unzip</code> +و اسم فایل جلوی این کامند استفاده می‌کنیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!unzip &lt;your file name&gt; +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>با کامند +<code>ls</code> +نام فایلی که دانلود کردین رو می‌تونید ببینید.</p> +</blockquote> +<p><img src="https://bit-orbit.github.io/images/post/unzipcolab.jpg" +loading="lazy" +alt="uizip in colab" +></p> +<p>با اجرای کامند +<code>tree</code> +می‌تونید دایرکتوری های تو در تو رو ببینید.</p> +<p><img src="https://bit-orbit.github.io/images/post/treecolab.jpg" +loading="lazy" +alt="tree in colab" +></p> +<p>توی این مرحله من همه فایل های mp3 رو باید بیارم توی پوشه اصلی که اسکریپت‌ اپلود اجرا میشه، دلیل این کار این هست که این اسکریپ‌ت فقط فایل های mp3 -داخل همین پوشه رو پیدا و اپلود می‌کنه.</p> -<p>برای انتقال این فایل ها از پوشه های تو در تو به یک پوشه از کامند -<code>find</code> +داخل همین پوشه رو پیدا و اپلود می‌کنه.</p> +<p>برای انتقال این فایل ها از پوشه های تو در تو به یک پوشه از کامند +<code>find</code> استفاده می‌کنم و هر فایل که پیدا می‌شه رو با کامند -<code>mv</code> -به پوشه اصلی‌مون انتقال می‌دم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!find . -type f -iname <span class="s1">&#39;*mp3&#39;</span> -exec mv <span class="o">{}</span> . <span class="se">\;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>بیایید سوییچ های این دستور رو بهتون بگم</p> -<ul> -<li>type-</li> -</ul> -<p>این سوییچ انواع نوع فایل ها رو مشخص می‌کنه. مثلا شما می‌تونید دنبال یک دایرکتوری، فایل، سوکت و &hellip; بگردین</p> -<ul> -<li>iname-</li> -</ul> -<p>این سویچ که مشخص هست نام فایل رو ازتون می‌گیره که شما می‌تونید پترن ریجکس بدین بهش. +<code>mv</code> +به پوشه اصلی‌مون انتقال می‌دم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!find . -type f -iname <span class="s1">&#39;*mp3&#39;</span> -exec mv <span class="o">{}</span> . <span class="se">\;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>بیایید سوییچ های این دستور رو بهتون بگم</p> +<ul> +<li>type-</li> +</ul> +<p>این سوییچ انواع نوع فایل ها رو مشخص می‌کنه. مثلا شما می‌تونید دنبال یک دایرکتوری، فایل، سوکت و &hellip; بگردین</p> +<ul> +<li>iname-</li> +</ul> +<p>این سویچ که مشخص هست نام فایل رو ازتون می‌گیره که شما می‌تونید پترن ریجکس بدین بهش. و اون -<strong>i</strong> -مشخص می‌کنه که نام فایل به کوچیکی و بزرگی حساس نباشه.</p> -<ul> -<li>exec-</li> -</ul> -<p>یک کامندی رو ازتون می‌گیره و روی تک تک ریزالت های جست و جو اون کامند رو اجرا می‌کنه. +<strong>i</strong> +مشخص می‌کنه که نام فایل به کوچیکی و بزرگی حساس نباشه.</p> +<ul> +<li>exec-</li> +</ul> +<p>یک کامندی رو ازتون می‌گیره و روی تک تک ریزالت های جست و جو اون کامند رو اجرا می‌کنه. من کامند -<code>mv</code> +<code>mv</code> رو دادم که برای انتقال فایل استفاده می‌شه. علامت های -<strong>{}</strong> -هم یک متغییر هست که نام فایل تک به تک جای اون قرار می‌گیره.</p> -<blockquote> -<p>پایان سوییچ +<strong>{}</strong> +هم یک متغییر هست که نام فایل تک به تک جای اون قرار می‌گیره.</p> +<blockquote> +<p>پایان سوییچ exec همیشه با -<code>;\</code> -مشخص می‌شه.</p> -</blockquote> -<p>خب تا اینجا که خیلی ساده بود،‌ نه؟</p> -<p>مرحله آخر اینه که یک ربات با -<a class="link" href="https://t.me/BotFather" target="_blank" rel="noopener" - >این ربات</a> -بسازین، و بعد اون رو عضو یک کانالی که می‌سازید بکنید، کانال رو فعلا پابلیک بسازید و یک یوزرنیم بهش بدین.</p> -<p>توکن ربات رو کپی کنید و توی اسکریپت من، جایی که نوشته -<your token> +<code>;\</code> +مشخص می‌شه.</p> +</blockquote> +<p>خب تا اینجا که خیلی ساده بود،‌ نه؟</p> +<p>مرحله آخر اینه که یک ربات با +<a class="link" href="https://t.me/BotFather" target="_blank" rel="noopener" +>این ربات</a> +بسازین، و بعد اون رو عضو یک کانالی که می‌سازید بکنید، کانال رو فعلا پابلیک بسازید و یک یوزرنیم بهش بدین.</p> +<p>توکن ربات رو کپی کنید و توی اسکریپت من، جایی که نوشته +<your token> وارد کنید و توی قسمت -<chat id> -هم ایدی کانالتون رو با علامت @ اول جایگذاری کنید.</p> -<p><img src="https://bit-orbit.github.io/images/post/acdccolab.jpg" - - - - loading="lazy" - - alt="ac and dc telegram channel" - - -></p> -<blockquote> -<p>اگه کانال پرایوت دارید باید بجای ای‌دی کانال از +<chat id> +هم ایدی کانالتون رو با علامت @ اول جایگذاری کنید.</p> +<p><img src="https://bit-orbit.github.io/images/post/acdccolab.jpg" +loading="lazy" +alt="ac and dc telegram channel" +></p> +<blockquote> +<p>اگه کانال پرایوت دارید باید بجای ای‌دی کانال از chatid -استفاده کنید، که یک ای‌دی عددی هست.</p> -</blockquote> -<p><strong>تمام</strong>!‌ -کافیه برنامه رو اجرا کنید و کانال تلگرامتون رو نگاه کنید :)</p> -<blockquote> -<p>اگه خیلی زیاد دارین فایل اپلود می‌کنید احتمالا تلگرام ارور +استفاده کنید، که یک ای‌دی عددی هست.</p> +</blockquote> +<p><strong>تمام</strong>!‌ +کافیه برنامه رو اجرا کنید و کانال تلگرامتون رو نگاه کنید :)</p> +<blockquote> +<p>اگه خیلی زیاد دارین فایل اپلود می‌کنید احتمالا تلگرام ارور flood mood بهتون بده. توی این مورد کافیه فقط صبر کنید، اسکریپت از اجرا قطع نمی‌شه و روی همون فایل مجددا اجرا می‌شه -تا بالاخره فایل اپلود بشه.</p> -</blockquote> -<blockquote> -<p>هرچیزی رو می‌تونید آپلود کنید ولی دقت کنید که ربات ها محدودیت حجم اپلود دارن که نهایتش 50MB هست</p> -</blockquote> -<blockquote> -<p>اینم بگم که توی اسکریپت اگه +تا بالاخره فایل اپلود بشه.</p> +</blockquote> +<blockquote> +<p>هرچیزی رو می‌تونید آپلود کنید ولی دقت کنید که ربات ها محدودیت حجم اپلود دارن که نهایتش 50MB هست</p> +</blockquote> +<blockquote> +<p>اینم بگم که توی اسکریپت اگه mp3 -رو به چیز دیگه‌ای تغییر بدین، اسکریپت به دنبال اون پسوند ها خواهد گشت.</p> -</blockquote> - - - - - +رو به چیز دیگه‌ای تغییر بدین، اسکریپت به دنبال اون پسوند ها خواهد گشت.</p> +</blockquote> \ No newline at end of file diff --git a/docs/categories/python/page/1/index.html b/docs/categories/python/page/1/index.html index 5a86c9c..42dbdbe 100644 --- a/docs/categories/python/page/1/index.html +++ b/docs/categories/python/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/categories/python/ - - - - - - +https://bit-orbit.github.io/categories/python/ + \ No newline at end of file diff --git a/docs/categories/rust/index.html b/docs/categories/rust/index.html index 9c757d2..970b2c3 100644 --- a/docs/categories/rust/index.html +++ b/docs/categories/rust/index.html @@ -1,593 +1,37 @@ - - - - -Category: Rust - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Categories - -

- -
-
-

3 صفحه

-

Rust

- -
-
-
- -
- - - - - - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Category: Rust - bit-orbit +

Categories

3 صفحه

Rust

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git a/docs/categories/rust/index.xml b/docs/categories/rust/index.xml index 8032d80..104417c 100644 --- a/docs/categories/rust/index.xml +++ b/docs/categories/rust/index.xml @@ -1,255 +1,219 @@ - - - - Rust on bit-orbit - https://bit-orbit.github.io/categories/rust/ - Recent content in Rust on bit-orbit - Hugo -- gohugo.io - fa - Wed, 03 Jan 2024 01:30:52 +0330 - انواع داده های اولیه در rust - https://bit-orbit.github.io/p/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%D9%88%D9%84%DB%8C%D9%87-%D8%AF%D8%B1-rust/ - Wed, 03 Jan 2024 01:30:52 +0330 - - https://bit-orbit.github.io/p/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%D9%88%D9%84%DB%8C%D9%87-%D8%AF%D8%B1-rust/ - <img src="https://bit-orbit.github.io/images/post/rustdatatypes.jpg" alt="Featured image of post انواع داده های اولیه در rust" /><p>هر زبان برنامه نویسی انواعی از داده ها رو داره، مثلا +Rust on bit-orbithttps://bit-orbit.github.io/categories/rust/Recent content in Rust on bit-orbitHugo -- gohugo.iofaWed, 03 Jan 2024 01:30:52 +0330انواع داده های اولیه در rusthttps://bit-orbit.github.io/p/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%D9%88%D9%84%DB%8C%D9%87-%D8%AF%D8%B1-rust/Wed, 03 Jan 2024 01:30:52 +0330https://bit-orbit.github.io/p/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%D9%88%D9%84%DB%8C%D9%87-%D8%AF%D8%B1-rust/<img src="https://bit-orbit.github.io/images/post/rustdatatypes.jpg" alt="Featured image of post انواع داده های اولیه در rust" /><p>هر زبان برنامه نویسی انواعی از داده ها رو داره، مثلا داده های عددی، کاراکتر و یا رشته‌ای از کاراکتر ها. زبان rust هم انواع داده‌ای زیادی رو پشتیبانی می‌کنه و خب حتی اگر جایی کمبودی حس کردین، می‌توانید ساختار داده‌ی خودتان -را بسازید.</p> -<blockquote> -<p>‌ انواع داده ترجمه‌ی کلمه +را بسازید.</p> +<blockquote> +<p>‌ انواع داده ترجمه‌ی کلمه data type هست. و خب برای من استفاده از کلمه انگلیسی‌اش خیلی راحت -تره.</p> -</blockquote> -<h4 id="نوع-داده-عدد-صحیح">نوع داده عدد صحیح</h4> -<p>همینطور که می‌دونید عدد صحیح از منفی بی‌نهایت تا مثبت -بی‌نهایت است(بدون هیچ علامت کسر، رادیکال و بدون اعشار).</p> -<p>این نوع داده در +تره.</p> +</blockquote> +<h4 id="نوع-داده-عدد-صحیح">نوع داده عدد صحیح +</h4><p>همینطور که می‌دونید عدد صحیح از منفی بی‌نهایت تا مثبت +بی‌نهایت است(بدون هیچ علامت کسر، رادیکال و بدون اعشار).</p> +<p>این نوع داده در rust -به این صورت است</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">variable_name</span>: <span class="kt">i32</span> <span class="o">=</span><span class="w"> </span><span class="o">-</span><span class="mi">2147483648</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">variable_name</span>: <span class="kt">i32</span> <span class="o">=</span><span class="w"> </span><span class="mi">2147483647</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><p>به این باید دقت کنیم که هر متغییری مقداری فضا نیاز دارد +به این صورت است</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">variable_name</span>: <span class="kt">i32</span> <span class="o">=</span><span class="w"> </span><span class="o">-</span><span class="mi">2147483648</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">variable_name</span>: <span class="kt">i32</span> <span class="o">=</span><span class="w"> </span><span class="mi">2147483647</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><p>به این باید دقت کنیم که هر متغییری مقداری فضا نیاز دارد برای مثال این نوع داده که داده اصلی است به پنج صورت پیاده سازی می‌شود i8, i16, i32, i64, i128 اعداد پس از کاراکتر i نشان دهنده تعداد بیت هایی است که این نوع متغییر می‌تواند -اشغال کند. مثلا i128 می‌تواند به اندازه 128 بیت فضا اشغال کند.</p> -<h4 id="نوع-داده-عدد-اعشاری">نوع داده عدد اعشاری</h4> -<p>این نوع داده هم مثل نوع عدد صحیح است اما با این تفاوت که اعداد اعشاری را درون خودش ذخیره می‌کند</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">variable_name</span>: <span class="kt">f32</span> <span class="o">=</span><span class="w"> </span><span class="mf">3.14</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">variable_name</span>: <span class="kt">f32</span> <span class="o">=</span><span class="w"> </span><span class="o">-</span><span class="mf">3.14</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="نوع-داده-کاراکتر">نوع داده کاراکتر</h4> -<p>کاراکتر نوع داده‌ای است که فقط یک مقدار از حروف الفبا یا عدد و یا سیمبول را می‌تواند درون +اشغال کند. مثلا i128 می‌تواند به اندازه 128 بیت فضا اشغال کند.</p> +<h4 id="نوع-داده-عدد-اعشاری">نوع داده عدد اعشاری +</h4><p>این نوع داده هم مثل نوع عدد صحیح است اما با این تفاوت که اعداد اعشاری را درون خودش ذخیره می‌کند</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">variable_name</span>: <span class="kt">f32</span> <span class="o">=</span><span class="w"> </span><span class="mf">3.14</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">variable_name</span>: <span class="kt">f32</span> <span class="o">=</span><span class="w"> </span><span class="o">-</span><span class="mf">3.14</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="نوع-داده-کاراکتر">نوع داده کاراکتر +</h4><p>کاراکتر نوع داده‌ای است که فقط یک مقدار از حروف الفبا یا عدد و یا سیمبول را می‌تواند درون خودش ذخیره کند. پس باید به اندازه 8 بیت فضا اشغال کند اما به دلیل اینکه کاراکتر های زبان های دیگر را هم بتواند ذخیره کند از انکدینگ(encoding) utf-16 -استفاده می‌کند که 16 بیت فضا اشغال می‌کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">a</span>: <span class="kt">char</span> <span class="o">=</span><span class="w"> </span><span class="sc">&#39;a&#39;</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="داده-stringرشتهای-از-کاراکتر-ها">داده string(رشته‌ای از کاراکتر ها)</h4> -<p>String +استفاده می‌کند که 16 بیت فضا اشغال می‌کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">a</span>: <span class="kt">char</span> <span class="o">=</span><span class="w"> </span><span class="sc">&#39;a&#39;</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="داده-stringرشتهای-از-کاراکتر-ها">داده string(رشته‌ای از کاراکتر ها) +</h4><p>String نوع داده‌ای است که درواقع رشته‌ای از کاراکتر ها را درون یک نوع vector -ذخیره می‌کند.</p> -<blockquote> -<p>این نکته را هم بگم که +ذخیره می‌کند.</p> +<blockquote> +<p>این نکته را هم بگم که encoding رشته UTF-8 -است. به این معنی که هر نوع کاراکتری را می‌تواند داخل خودش ذخیره کند حتی ایموجی.</p> -</blockquote> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">heart</span>: <span class="nb">String</span> <span class="o">=</span><span class="w"> </span><span class="nb">String</span>::<span class="n">from</span><span class="p">(</span><span class="s">&#34;♥&#34;</span><span class="p">);</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="نوع-داده-منطقی">نوع داده منطقی</h4> -<p>نوع داده منطقی به اسم +است. به این معنی که هر نوع کاراکتری را می‌تواند داخل خودش ذخیره کند حتی ایموجی.</p> +</blockquote> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">heart</span>: <span class="nb">String</span> <span class="o">=</span><span class="w"> </span><span class="nb">String</span>::<span class="n">from</span><span class="p">(</span><span class="s">&#34;♥&#34;</span><span class="p">);</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="نوع-داده-منطقی">نوع داده منطقی +</h4><p>نوع داده منطقی به اسم boolian است. این نوع مقدار هایt true و یا false -را ذخیره می‌کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">is_good</span>: <span class="kt">bool</span> <span class="o">=</span><span class="w"> </span><span class="kc">true</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="نوع-داده-ترکیبی">نوع داده ترکیبی</h4> -<p>این نوع داده ها را توی پست های مجزا توضیح می‌دم.</p> -<ul> -<li>tuple</li> -<li>array</li> -<li>list</li> -<li>vector</li> -</ul> - - - - متغیر در rust - https://bit-orbit.github.io/p/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-rust/ - Mon, 01 Jan 2024 01:39:05 +0330 - - https://bit-orbit.github.io/p/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-rust/ - <img src="https://bit-orbit.github.io/images/post/datatypes-rust.jpg" alt="Featured image of post متغیر در rust" /><h4 id="تعریف-متغیر">تعریف متغیر</h4> -<p>در هر زبانی تعریف متغیر سینتکس خودش را دارد. +را ذخیره می‌کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">is_good</span>: <span class="kt">bool</span> <span class="o">=</span><span class="w"> </span><span class="kc">true</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="نوع-داده-ترکیبی">نوع داده ترکیبی +</h4><p>این نوع داده ها را توی پست های مجزا توضیح می‌دم.</p> +<ul> +<li>tuple</li> +<li>array</li> +<li>list</li> +<li>vector</li> +</ul>متغیر در rusthttps://bit-orbit.github.io/p/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-rust/Mon, 01 Jan 2024 01:39:05 +0330https://bit-orbit.github.io/p/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-rust/<img src="https://bit-orbit.github.io/images/post/datatypes-rust.jpg" alt="Featured image of post متغیر در rust" /><h4 id="تعریف-متغیر">تعریف متغیر +</h4><p>در هر زبانی تعریف متغیر سینتکس خودش را دارد. مثلا اگر زبان های خانواده c را کار کرده باشید (مثل c++, c#) متوجه می‌شوید که نوع داده‌ای متغیر، قبل از اسم آن تعریف می‌شود. و یا مثلا توی زبان پایتون تعریف نوع داده‌ای -یک متغیر حتی اهمیتی هم ندارد!</p> -<blockquote> -<p>انواع نوع داده یا +یک متغیر حتی اهمیتی هم ندارد!</p> +<blockquote> +<p>انواع نوع داده یا date types -را توی پست بعدی می‌نویسم</p> -</blockquote> -<p>توی زبان +را توی پست بعدی می‌نویسم</p> +</blockquote> +<p>توی زبان rust بعد از اسم متغیر، نوع آن نوشته می‌شود. مثلا برای تعریف یک متغیر عددی به اندازه یک بایت از کلمه کلیدی -<code>i8</code> +<code>i8</code> بعد اسم استفاده می‌کنیم. البته قبل از اسم هر متغیر هم ما باید از کلمه کلیدی -<code>let</code> -استفاده کنیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="c1">//let name: type = value; -</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="kd">let</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="متغیر-های-تغییرپذیر">متغیر های تغییرپذیر</h4> -<p>توی زبان +<code>let</code> +استفاده کنیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="c1">//let name: type = value; +</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="kd">let</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="متغیر-های-تغییرپذیر">متغیر های تغییرپذیر +</h4><p>توی زبان rust هر متغیری که تعریف می‌کنیم غیر قابل تغیر است. توی مثال بالا من پیشفرض مقدار 22 را برای متغیر age قرار داده‌ام، حالا اگر بخواهم مقدار آن را -به 23 تغیر بدهم به ارور می‌خورم</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt">10 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">error</span><span class="p">[</span><span class="n">E0384</span><span class="p">]</span>: <span class="nc">cannot</span><span class="w"> </span><span class="n">assign</span><span class="w"> </span><span class="n">twice</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">immutable</span><span class="w"> </span><span class="n">variable</span><span class="w"> </span><span class="err">`</span><span class="n">age</span><span class="err">`</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">-</span>-&gt; <span class="nc">src</span><span class="o">/</span><span class="n">main</span><span class="p">.</span><span class="n">rs</span>:<span class="mi">3</span>:<span class="mi">5</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">---</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">first</span><span class="w"> </span><span class="n">assignment</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="err">`</span><span class="n">age</span><span class="err">`</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">help</span>: <span class="nc">consider</span><span class="w"> </span><span class="n">making</span><span class="w"> </span><span class="n">this</span><span class="w"> </span><span class="n">binding</span><span class="w"> </span><span class="n">mutable</span>: <span class="err">`</span><span class="k">mut</span><span class="w"> </span><span class="n">age</span><span class="err">`</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="mi">3</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">^^^^^^^^</span><span class="w"> </span><span class="n">cannot</span><span class="w"> </span><span class="n">assign</span><span class="w"> </span><span class="n">twice</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">immutable</span><span class="w"> </span><span class="n">variable</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><p>خب برای همین اگر می‌خواهیم مقدار متغیری را تغییر +به 23 تغیر بدهم به ارور می‌خورم</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">error</span><span class="p">[</span><span class="n">E0384</span><span class="p">]</span>: <span class="nc">cannot</span><span class="w"> </span><span class="n">assign</span><span class="w"> </span><span class="n">twice</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">immutable</span><span class="w"> </span><span class="n">variable</span><span class="w"> </span><span class="err">`</span><span class="n">age</span><span class="err">`</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">-</span>-&gt; <span class="nc">src</span><span class="o">/</span><span class="n">main</span><span class="p">.</span><span class="n">rs</span>:<span class="mi">3</span>:<span class="mi">5</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">---</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">first</span><span class="w"> </span><span class="n">assignment</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="err">`</span><span class="n">age</span><span class="err">`</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">help</span>: <span class="nc">consider</span><span class="w"> </span><span class="n">making</span><span class="w"> </span><span class="n">this</span><span class="w"> </span><span class="n">binding</span><span class="w"> </span><span class="n">mutable</span>: <span class="err">`</span><span class="k">mut</span><span class="w"> </span><span class="n">age</span><span class="err">`</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="mi">3</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">^^^^^^^^</span><span class="w"> </span><span class="n">cannot</span><span class="w"> </span><span class="n">assign</span><span class="w"> </span><span class="n">twice</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">immutable</span><span class="w"> </span><span class="n">variable</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><p>خب برای همین اگر می‌خواهیم مقدار متغیری را تغییر بدهیم آن را باید از اول مشخص کنیم. مشخص کردن آن با کلمه کلیدی -<code>mut</code> +<code>mut</code> بعد از کلمه -<code>let</code> +<code>let</code> است. کلمه mut مخفف -<strong>mutable</strong> +<strong>mutable</strong> به معنی -<strong>قابل تغییر</strong> -است. خب بیایید اینکار را برای مثال اولیه انجام بدهیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div> - - - Rust - https://bit-orbit.github.io/rust/ - Sun, 31 Dec 2023 00:00:00 +0000 - - https://bit-orbit.github.io/rust/ - <img src="https://bit-orbit.github.io/images/post/rust.png" alt="Featured image of post Rust" /><p>من مدتی هست که دارم زبان +<strong>قابل تغییر</strong> +است. خب بیایید اینکار را برای مثال اولیه انجام بدهیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div>Rusthttps://bit-orbit.github.io/rust/Sun, 31 Dec 2023 00:00:00 +0000https://bit-orbit.github.io/rust/<img src="https://bit-orbit.github.io/images/post/rust.png" alt="Featured image of post Rust" /><p>من مدتی هست که دارم زبان rust رو یاد می‌گیرم، توی این تایمی که خودم یادش می‌گیرم، یک خلاصه‌ای هم از آموزش هایی که می‌بینم رو اینجا در پست های مجزا می‌نویسم. اینطوری هم برای خودم نوت دارم و هم -شما :)</p> -<p>هر پست آموزش +شما :)</p> +<p>هر پست آموزش rust که می‌نویسم رو اینجا لیست می‌کنم که -به راحتی در دسترس باشند.</p> -<blockquote> -<p>بعنوان نکته بگم که توی این مجموعه از پست ها، قرار نیست +به راحتی در دسترس باشند.</p> +<blockquote> +<p>بعنوان نکته بگم که توی این مجموعه از پست ها، قرار نیست برنامه نویسی را از صفر یاد بگیریم، صرفا سینتکس زبان rust -را یاد می‌گیریم.</p> -</blockquote> -<hr> -<ul> -<li><a class="link" href="https://bit-orbit.github.io/p/%d9%85%d8%aa%d8%ba%db%8c%d8%b1-%d8%af%d8%b1-rust/" >متغییر ها در rust</a></li> -</ul> - - - - - +را یاد می‌گیریم.</p> +</blockquote> +<hr> +<ul> +<li><a class="link" href="https://bit-orbit.github.io/p/%d9%85%d8%aa%d8%ba%db%8c%d8%b1-%d8%af%d8%b1-rust/" >متغییر ها در rust</a></li> +</ul> \ No newline at end of file diff --git a/docs/categories/rust/page/1/index.html b/docs/categories/rust/page/1/index.html index 67e6ab3..7088ce6 100644 --- a/docs/categories/rust/page/1/index.html +++ b/docs/categories/rust/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/categories/rust/ - - - - - - +https://bit-orbit.github.io/categories/rust/ + \ No newline at end of file diff --git a/docs/categories/software-engineering/index.html b/docs/categories/software-engineering/index.html index 613dd05..e0453b9 100644 --- a/docs/categories/software-engineering/index.html +++ b/docs/categories/software-engineering/index.html @@ -1,559 +1,37 @@ - - - - -Category: Software Engineering - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Categories - -

- -
-
-

1 صفحه

-

Software Engineering

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Category: Software Engineering - bit-orbit +

Categories

1 صفحه

Software Engineering

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git a/docs/categories/software-engineering/index.xml b/docs/categories/software-engineering/index.xml index 7ea7a9a..f182603 100644 --- a/docs/categories/software-engineering/index.xml +++ b/docs/categories/software-engineering/index.xml @@ -1,92 +1,73 @@ - - - - Software Engineering on bit-orbit - https://bit-orbit.github.io/categories/software-engineering/ - Recent content in Software Engineering on bit-orbit - Hugo -- gohugo.io - fa - Fri, 03 Nov 2023 00:21:46 +0330 - تفاوت Staticlink و Dynamiclink در زبان های برنامه نویسی - https://bit-orbit.github.io/p/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-staticlink-%D9%88-dynamiclink-%D8%AF%D8%B1-%D8%B2%D8%A8%D8%A7%D9%86-%D9%87%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C/ - Fri, 03 Nov 2023 00:21:46 +0330 - - https://bit-orbit.github.io/p/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-staticlink-%D9%88-dynamiclink-%D8%AF%D8%B1-%D8%B2%D8%A8%D8%A7%D9%86-%D9%87%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C/ - <img src="https://bit-orbit.github.io/images/post/staticvsdynamic.jpg" alt="Featured image of post تفاوت Staticlink و Dynamiclink در زبان های برنامه نویسی" /><p>یکسری مفاهیمی در برنامه نویسی داریم که من تصمیم داریم درباره آنها توی چند پست توضیح بدم، اولین مورد +Software Engineering on bit-orbithttps://bit-orbit.github.io/categories/software-engineering/Recent content in Software Engineering on bit-orbitHugo -- gohugo.iofaFri, 03 Nov 2023 00:21:46 +0330تفاوت Staticlink و Dynamiclink در زبان های برنامه نویسیhttps://bit-orbit.github.io/p/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-staticlink-%D9%88-dynamiclink-%D8%AF%D8%B1-%D8%B2%D8%A8%D8%A7%D9%86-%D9%87%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C/Fri, 03 Nov 2023 00:21:46 +0330https://bit-orbit.github.io/p/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-staticlink-%D9%88-dynamiclink-%D8%AF%D8%B1-%D8%B2%D8%A8%D8%A7%D9%86-%D9%87%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C/<img src="https://bit-orbit.github.io/images/post/staticvsdynamic.jpg" alt="Featured image of post تفاوت Staticlink و Dynamiclink در زبان های برنامه نویسی" /><p>یکسری مفاهیمی در برنامه نویسی داریم که من تصمیم داریم درباره آنها توی چند پست توضیح بدم، اولین مورد که شامل این پست می‌شه تفاوت static linking و dynamic linking در زبان های برامه نویسی هست‌ش. مفاهیم دیگه‌ای که داخل پست های بعدی می‌نویسم چیز هایی مثل -<strong>static type, dynamic type, compiler language, interpreter language</strong> و &hellip; -خواهد بود.</p> -<hr> -<ul> -<li> -<p>دو مفهموم +<strong>static type, dynamic type, compiler language, interpreter language</strong> و &hellip; +خواهد بود.</p> +<hr> +<ul> +<li> +<p>دو مفهموم static linking و dynamic linking -چه هستند؟</p> -</li> -<li> -<p>هر کدام چه مشکلات و فوایدی دارند؟</p> -</li> -</ul> -<hr> -<p>ما در نوشتن برنامه ها معمولا از لایبراری های زیادی استفاده می‌کنیم، حتی یک برانامه ساده. +چه هستند؟</p> +</li> +<li> +<p>هر کدام چه مشکلات و فوایدی دارند؟</p> +</li> +</ul> +<hr> +<p>ما در نوشتن برنامه ها معمولا از لایبراری های زیادی استفاده می‌کنیم، حتی یک برانامه ساده. سیستم ما برای اجرای یک برنامه، کد برنامه رو به ماشین-کد تبدیل می‌کنه و بعد خط به خط -اون ها رو اجرا می‌کنه.</p> -<p>اصطلاح +اون ها رو اجرا می‌کنه.</p> +<p>اصطلاح linking به روندی گفته می‌شود که کد شما به اشیاء(کد و داده) های خارجی برای استفاده از انها اشاره کند. معمولا دو روش برای اینکار وجود دارد، static linking(لینک کردن ایستا), -dynamic linking(لینک کردن پویا).</p> -<blockquote> -<p>static linking -زمانی اتفاق می‌افتد که کامپایلر منابع خارجی(لایبراری) ها را داخل فایل اجرایی برنامه کپی کند</p> -</blockquote> -<p>در واقع در این روش برنامه شما تمامی لایبراری هایی که شما در کد استفاده کردین رو +dynamic linking(لینک کردن پویا).</p> +<blockquote> +<p>static linking +زمانی اتفاق می‌افتد که کامپایلر منابع خارجی(لایبراری) ها را داخل فایل اجرایی برنامه کپی کند</p> +</blockquote> +<p>در واقع در این روش برنامه شما تمامی لایبراری هایی که شما در کد استفاده کردین رو با کد شما درون یک فایل اجرایی کامپایل می‌کند، زمانی که برنامه اجرا شود، تمامی لایبراری های -مورد نیازش وارد مموری کامپیوتر می‌شود.</p> -<p>فایده هایی که می‌تونم بهش اشاره کنم</p> -<ul> -<li>توی منتشر کردن برنامه به دیگران، مشکل نصب کامپوننت ها رو دیگه ندارن، و به راحتی اجرا می‌کنند.</li> -<li>ممکنه برنامه اندکی سریع تر اجرا بشه</li> -</ul> -<p>این روش واقعا خوبیه ولی خب معایب خودش رو هم داره</p> -<ul> -<li>فایل اجرایی حجم زیادی‌تری نسب‌ت به لینک کردن پویا داره</li> -<li>وقتی برنامه اجرا بشه، بخاطر اینکه همه لایبراری و داده های مورد نیاز داخل همان فایل اجرایی بود، برنامه رم زیادی استفاده می‌کنه.</li> -<li>اگر لایبراری های مورد استفاده تغییر کنند، برنامه نویس باید مجدد برنامه رو کامپایل و منتشر کنه</li> -</ul> -<blockquote> -<p>dynamic linking +مورد نیازش وارد مموری کامپیوتر می‌شود.</p> +<p>فایده هایی که می‌تونم بهش اشاره کنم</p> +<ul> +<li>توی منتشر کردن برنامه به دیگران، مشکل نصب کامپوننت ها رو دیگه ندارن، و به راحتی اجرا می‌کنند.</li> +<li>ممکنه برنامه اندکی سریع تر اجرا بشه</li> +</ul> +<p>این روش واقعا خوبیه ولی خب معایب خودش رو هم داره</p> +<ul> +<li>فایل اجرایی حجم زیادی‌تری نسب‌ت به لینک کردن پویا داره</li> +<li>وقتی برنامه اجرا بشه، بخاطر اینکه همه لایبراری و داده های مورد نیاز داخل همان فایل اجرایی بود، برنامه رم زیادی استفاده می‌کنه.</li> +<li>اگر لایبراری های مورد استفاده تغییر کنند، برنامه نویس باید مجدد برنامه رو کامپایل و منتشر کنه</li> +</ul> +<blockquote> +<p>dynamic linking لینک کردن پویا زمانی است که نام لایبراری خارجی در زمان اجرا وارد فایل اجرایی می‌شود. -و اینکه فقط در این زمان است که لایبراری مورد نیاز وارد مموری می‌شود.</p> -</blockquote> -<p>در این مواقع لایبراری ها باید در سیستم عامل از قبل نصب شده باشند، و یا در موقغ نصب برنامه جدید +و اینکه فقط در این زمان است که لایبراری مورد نیاز وارد مموری می‌شود.</p> +</blockquote> +<p>در این مواقع لایبراری ها باید در سیستم عامل از قبل نصب شده باشند، و یا در موقغ نصب برنامه جدید اون لایبراری ها نصب شوند. و اگر هر تغییری در لایبرار رخ بده، برنامه نویس نیاز نیست دوباره برنامه رو -کامپایل و منتشر کند، فقط لایبراری مورد نیاز اپدیت می‌شود.</p> -<p>این روش هم مزیت های خودش رو داره، مثلا:</p> -<ul> -<li>حجم فایل های اجرایی خیلی کمتری داره</li> -<li>تا زمانی که نیاز به لایبراری نشده باشد(اگر در کد نویسی رعایت شده باشه) لایبراری ها رم اشغال نمی‌کنند.</li> -</ul> -<p>مهمترین عیبی که می‌تونه این روش داشته باشه اینه که -حذف شدن و یا خراب شدن لایبراری باعث می‌شه برنامه دیگه اجرا نشه.</p> -<hr> -<blockquote> -<p>این مطلب خلاصه‌ای کلی بود برای آشنایی با این دو مفهموم +کامپایل و منتشر کند، فقط لایبراری مورد نیاز اپدیت می‌شود.</p> +<p>این روش هم مزیت های خودش رو داره، مثلا:</p> +<ul> +<li>حجم فایل های اجرایی خیلی کمتری داره</li> +<li>تا زمانی که نیاز به لایبراری نشده باشد(اگر در کد نویسی رعایت شده باشه) لایبراری ها رم اشغال نمی‌کنند.</li> +</ul> +<p>مهمترین عیبی که می‌تونه این روش داشته باشه اینه که +حذف شدن و یا خراب شدن لایبراری باعث می‌شه برنامه دیگه اجرا نشه.</p> +<hr> +<blockquote> +<p>این مطلب خلاصه‌ای کلی بود برای آشنایی با این دو مفهموم برای مطالعه بیشتر این -<a class="link" href="https://blog.hubspot.com/website/static-vs-dynamic-linking#static-linking" target="_blank" rel="noopener" - >لینک</a> -می‌تونه مفید باشه.</p> -</blockquote> -<hr> - - - - - +<a class="link" href="https://blog.hubspot.com/website/static-vs-dynamic-linking#static-linking" target="_blank" rel="noopener" +>لینک</a> +می‌تونه مفید باشه.</p> +</blockquote> +<hr> \ No newline at end of file diff --git a/docs/categories/software-engineering/page/1/index.html b/docs/categories/software-engineering/page/1/index.html index 412ccfb..f3e9196 100644 --- a/docs/categories/software-engineering/page/1/index.html +++ b/docs/categories/software-engineering/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/categories/software-engineering/ - - - - - - +https://bit-orbit.github.io/categories/software-engineering/ + \ No newline at end of file diff --git a/docs/categories/tech/index.html b/docs/categories/tech/index.html index 0e22f48..dd14f70 100644 --- a/docs/categories/tech/index.html +++ b/docs/categories/tech/index.html @@ -1,642 +1,38 @@ - - - - -Category: Tech - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Categories - -

- -
-
-

9 صفحه

-

Tech

- -
-
-
- -
- - - - - - - - - - - -
- - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Category: Tech - bit-orbit +

Categories

9 صفحه

Tech

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git a/docs/categories/tech/index.xml b/docs/categories/tech/index.xml index 2f95a40..e92a178 100644 --- a/docs/categories/tech/index.xml +++ b/docs/categories/tech/index.xml @@ -1,193 +1,164 @@ - - - - Tech on bit-orbit - https://bit-orbit.github.io/categories/tech/ - Recent content in Tech on bit-orbit - Hugo -- gohugo.io - fa - Fri, 09 Feb 2024 01:49:42 +0330 - Linux File Locking چیست؟ - https://bit-orbit.github.io/p/linux-file-locking-%DA%86%DB%8C%D8%B3%D8%AA/ - Fri, 09 Feb 2024 01:49:42 +0330 - - https://bit-orbit.github.io/p/linux-file-locking-%DA%86%DB%8C%D8%B3%D8%AA/ - <img src="https://bit-orbit.github.io/images/post/flilock.jpeg" alt="Featured image of post Linux File Locking چیست؟" /><p>بیایید قبل از اینکه راه حل را ببینیم، اول مشکل را دقیق تر برسی کنیم. +Tech on bit-orbithttps://bit-orbit.github.io/categories/tech/Recent content in Tech on bit-orbitHugo -- gohugo.iofaFri, 09 Feb 2024 01:49:42 +0330Linux File Locking چیست؟https://bit-orbit.github.io/p/linux-file-locking-%DA%86%DB%8C%D8%B3%D8%AA/Fri, 09 Feb 2024 01:49:42 +0330https://bit-orbit.github.io/p/linux-file-locking-%DA%86%DB%8C%D8%B3%D8%AA/<img src="https://bit-orbit.github.io/images/post/flilock.jpeg" alt="Featured image of post Linux File Locking چیست؟" /><p>بیایید قبل از اینکه راه حل را ببینیم، اول مشکل را دقیق تر برسی کنیم. به این فکر کنید که شما یک فایلی دارید که شامل یک عدد است که اشاره می‌کند به مقدار اعتباری که کاربر در حسابش دارد. حالا اگر قرار باشد یک پورسه اون مقدار را بر اساس ارائه سرویسی، از حساب کاربر کم کند، و پروسه دیگری به دلیل افزایش اعتبار، مقداری را به حساب -کاربر اضافه کند، چه مشکلاتی اتفاق می‌افتد؟</p> -<p>برای اینکه دقیق تر بشیم، این روند رو باهم پیش می‌بریم. +کاربر اضافه کند، چه مشکلاتی اتفاق می‌افتد؟</p> +<p>برای اینکه دقیق تر بشیم، این روند رو باهم پیش می‌بریم. فرض کنید فایلی به اسم amount.txt مقدار 100 داخلش نوشته شده است. و دو پروسه کم و اضافه کردن را اجرا می‌کنیم. توی این مثال،‌ ما می‌خواهیم مقدار 20 از حساب کاربر کم و مقدار 50 به حساب کاربر -اضافه کنیم، پس ما انتظار داریم در انتها فایل ما مقدار 130 را درونش ذخیره کرده باشد.</p> -<ul> -<li>پروسه اول فایل را می‌خواند و مقدار 100 را در حاظه‌اش نگه می‌دارد</li> -<li>پروسه دوم فایل را می‌خواند و مقدار 100 را در حاظه‌اش نگه می‌دارد</li> -<li>پروسه اول مقدار 20 را از 100 کم می‌کند و مقدار 80 را در حافظه ذخیره می‌کند</li> -<li>پروسه دوم مقدار 50 را به 100 اضافه می‌کند و مقدار 150 را در حافظه ذخیره می‌کند</li> -<li>پروسه اول مقدار 80 را در فایل ذخیره می‌کند</li> -<li>پروسه دوم مقدار 150 را در فایل ذخیره می‌کند</li> -</ul> -<p>همینطور که همه ما انتظار داشتیم، ما باید در این فایل مقدار 130 را ذخیره می‌کردیم، +اضافه کنیم، پس ما انتظار داریم در انتها فایل ما مقدار 130 را درونش ذخیره کرده باشد.</p> +<ul> +<li>پروسه اول فایل را می‌خواند و مقدار 100 را در حاظه‌اش نگه می‌دارد</li> +<li>پروسه دوم فایل را می‌خواند و مقدار 100 را در حاظه‌اش نگه می‌دارد</li> +<li>پروسه اول مقدار 20 را از 100 کم می‌کند و مقدار 80 را در حافظه ذخیره می‌کند</li> +<li>پروسه دوم مقدار 50 را به 100 اضافه می‌کند و مقدار 150 را در حافظه ذخیره می‌کند</li> +<li>پروسه اول مقدار 80 را در فایل ذخیره می‌کند</li> +<li>پروسه دوم مقدار 150 را در فایل ذخیره می‌کند</li> +</ul> +<p>همینطور که همه ما انتظار داشتیم، ما باید در این فایل مقدار 130 را ذخیره می‌کردیم، اما پروسه های ما به دلیل اینکه هیچ همکاری و یا هیچ مکانیزمی دیگری ندارند که این مقدار ها را به یکدیگر اطلاع دهند، مشکل -<a class="link" href="https://en.wikipedia.org/wiki/Race_condition#Software" target="_blank" rel="noopener" - >Race condition</a> -رخ می‌دهد.</p> -<p>یکی از راه حل های این مشکل +<a class="link" href="https://en.wikipedia.org/wiki/Race_condition#Software" target="_blank" rel="noopener" +>Race condition</a> +رخ می‌دهد.</p> +<p>یکی از راه حل های این مشکل lock کردن فایل توسط هر پروسه است، که به این کار file locking -گفته می‌شود.</p> -<p><strong>file locking</strong> -یک مکانیزم برای کنترل دسترسی چندین پروسه به یک فایل است.</p> -<blockquote> -<p>توی لینوکس یکی از دستورات خطرناکی که داریم دستور +گفته می‌شود.</p> +<p><strong>file locking</strong> +یک مکانیزم برای کنترل دسترسی چندین پروسه به یک فایل است.</p> +<blockquote> +<p>توی لینوکس یکی از دستورات خطرناکی که داریم دستور sudo rm -rf / است. وقتی این دستور را اجرا کنیم کل فایل های لینوکس ما حذف می‌شود. دلیل اینکار این است که لینوکس به صورت پیشفرض فایل های باز شده را lock -نمی‌کند.</p> -</blockquote> -<p>با اینحال لینوکس دو مکانیزم مختلف -<em>advisory</em> و <em>mandatory</em> -را پشتیبانی می‌کند.</p> -<blockquote> -<p>توی این پست بیشتر تمرکز من روی مکانیزم +نمی‌کند.</p> +</blockquote> +<p>با اینحال لینوکس دو مکانیزم مختلف +<em>advisory</em> و <em>mandatory</em> +را پشتیبانی می‌کند.</p> +<blockquote> +<p>توی این پست بیشتر تمرکز من روی مکانیزم advisory locking(مشورتی) -است.</p> -</blockquote> -<p>این روش به این شکل عمل می‌کند که هیچ پروسه‌ای مجبور به اجرای این روش نیست و اگر حتی +است.</p> +</blockquote> +<p>این روش به این شکل عمل می‌کند که هیچ پروسه‌ای مجبور به اجرای این روش نیست و اگر حتی فایل توسط یک پروسه‌ای lock شده باشد، باز هم پروسه های دیگر می‌توانند به lock بودن فایل اهمیت ندهند و مقدار آن را تغییر دهند. این اتفاق به این دلیل می‌افتد که advisory lock -توسط سیستم عامل و یا فایل سیستم انجام نمی‌شود.</p> -<p>خب بیایید با یک مثال این فرایند را برسی کنیم. مثل مثال قبلی فرض کنید ما مقدار 100 +توسط سیستم عامل و یا فایل سیستم انجام نمی‌شود.</p> +<p>خب بیایید با یک مثال این فرایند را برسی کنیم. مثل مثال قبلی فرض کنید ما مقدار 100 را داخل فایل amount.txt -داریم و می‌خواهیم مقدار 20 از آن کم و مقدار 50 به آن اضافه کنیم.</p> -<ul> -<li>پروسه اول قبل از خواندن فایل، فایل را لاک می‌کند</li> -<li>پروسه دوم برای لاک کردن فایل اقدام می‌کند و از جایی که پروسه اول از پیش فایل را لاک کرده است، برای آزاد شدن لاک صبر می‌کند</li> -<li>پروسه اول مقدار 20 را از 100 کم می‌کند و مقدار 80 را درون فایل می‌نویسد</li> -<li>پروسه اول لاک فایل را آزاد می‌کند.</li> -<li>پروسه دوم فایل را لاک و مقدار جدید 80 را از فایل می‌خواند</li> -<li>پروسه دوم مقدار 50 را به 80 اضافه و مقدار 120 را درون فایل می‌نویسد</li> -<li>پروسه دوم لاک فایل را آزاد می‌کند تا پروسه های دیگر بتوانند با فایل کار کنند.</li> -</ul> -<hr> -<p>اگر شما می‌خواهید این مکانیزم را روی یک فایل اجرا کنید، دستور +داریم و می‌خواهیم مقدار 20 از آن کم و مقدار 50 به آن اضافه کنیم.</p> +<ul> +<li>پروسه اول قبل از خواندن فایل، فایل را لاک می‌کند</li> +<li>پروسه دوم برای لاک کردن فایل اقدام می‌کند و از جایی که پروسه اول از پیش فایل را لاک کرده است، برای آزاد شدن لاک صبر می‌کند</li> +<li>پروسه اول مقدار 20 را از 100 کم می‌کند و مقدار 80 را درون فایل می‌نویسد</li> +<li>پروسه اول لاک فایل را آزاد می‌کند.</li> +<li>پروسه دوم فایل را لاک و مقدار جدید 80 را از فایل می‌خواند</li> +<li>پروسه دوم مقدار 50 را به 80 اضافه و مقدار 120 را درون فایل می‌نویسد</li> +<li>پروسه دوم لاک فایل را آزاد می‌کند تا پروسه های دیگر بتوانند با فایل کار کنند.</li> +</ul> +<hr> +<p>اگر شما می‌خواهید این مکانیزم را روی یک فایل اجرا کنید، دستور flock -برای شما اینکار را خواهد کرد.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">flock <span class="o">[</span>options<span class="o">]</span> file<span class="p">|</span>directory <span class="nb">command</span> <span class="o">[</span>arguments<span class="o">]</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>این کامند در حالت عادی از شما یک فایل و یک دستور خواهد گرفت و مکانیزم +برای شما اینکار را خواهد کرد.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">flock <span class="o">[</span>options<span class="o">]</span> file<span class="p">|</span>directory <span class="nb">command</span> <span class="o">[</span>arguments<span class="o">]</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>این کامند در حالت عادی از شما یک فایل و یک دستور خواهد گرفت و مکانیزم advisory lock -را روی ان فایل اجرا خواهد کرد.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">flock /tmp/fli <span class="nb">echo</span> 12&gt;/tmp/fli -</span></span></code></pre></td></tr></table> -</div> -</div><p>برای اینکه روند را بهتر درک کنیم یک فایل +را روی ان فایل اجرا خواهد کرد.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">flock /tmp/fli <span class="nb">echo</span> 12&gt;/tmp/fli +</span></span></code></pre></td></tr></table> +</div> +</div><p>برای اینکه روند را بهتر درک کنیم یک فایل bash -می‌نویسیم که بتوانیم مثال اولیه را روی آن اجرا کنیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt">10 -</span><span class="lnt">11 -</span><span class="lnt">12 -</span><span class="lnt">13 -</span><span class="lnt">14 -</span><span class="lnt">15 -</span><span class="lnt">16 -</span><span class="lnt">17 -</span><span class="lnt">18 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="cp">#!/bin/bash -</span></span></span><span class="line"><span class="cl"><span class="cp"></span><span class="nv">file</span><span class="o">=</span><span class="s2">&#34;balance.dat&#34;</span> -</span></span><span class="line"><span class="cl"><span class="nv">value</span><span class="o">=</span><span class="k">$(</span>cat <span class="nv">$file</span><span class="k">)</span> -</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Read current balance:</span><span class="nv">$value</span><span class="s2">&#34;</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl"><span class="c1">#sleep 10 seconds to simulate business calculation</span> -</span></span><span class="line"><span class="cl"><span class="nv">progress</span><span class="o">=</span><span class="m">10</span> -</span></span><span class="line"><span class="cl"><span class="k">while</span> <span class="o">[[</span> <span class="nv">$progress</span> -lt <span class="m">101</span> <span class="o">]]</span><span class="p">;</span> <span class="k">do</span> -</span></span><span class="line"><span class="cl"> <span class="nb">echo</span> -n -e <span class="s2">&#34;\033[77DCalculating new balance..</span><span class="nv">$progress</span><span class="s2">%&#34;</span> -</span></span><span class="line"><span class="cl"> sleep <span class="m">1</span> -</span></span><span class="line"><span class="cl"> <span class="nv">progress</span><span class="o">=</span><span class="k">$((</span><span class="m">10</span><span class="o">+</span>progress<span class="k">))</span> -</span></span><span class="line"><span class="cl"><span class="k">done</span> -</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;&#34;</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl"><span class="nv">value</span><span class="o">=</span><span class="k">$((</span>value+<span class="nv">$1</span><span class="k">))</span> -</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Write new balance (</span><span class="nv">$value</span><span class="s2">) back to </span><span class="nv">$file</span><span class="s2">.&#34;</span> -</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="nv">$value</span> &gt; <span class="s2">&#34;</span><span class="nv">$file</span><span class="s2">&#34;</span> -</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Done.&#34;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>ما این فایل را همزمان با دو ترمینال اجرا می‌کنیم.</p> -<p><img src="https://bit-orbit.github.io/images/post/advisory_lock.gif" - - - - loading="lazy" - - alt="advisory lock" - - -></p> -<p>همینطور که می‌بینید پروسه دوم برای اینکه محتوای فایل را تغییر دهد، باید صبر کند تا لاک فایل -آزاد شود.</p> -<hr> -<p>این پست خلاصه‌ای بود از -<a class="link" href="https://www.baeldung.com/linux/file-locking" target="_blank" rel="noopener" - >این بلاگ</a> +می‌نویسیم که بتوانیم مثال اولیه را روی آن اجرا کنیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="cp">#!/bin/bash +</span></span></span><span class="line"><span class="cl"><span class="cp"></span><span class="nv">file</span><span class="o">=</span><span class="s2">&#34;balance.dat&#34;</span> +</span></span><span class="line"><span class="cl"><span class="nv">value</span><span class="o">=</span><span class="k">$(</span>cat <span class="nv">$file</span><span class="k">)</span> +</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Read current balance:</span><span class="nv">$value</span><span class="s2">&#34;</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="c1">#sleep 10 seconds to simulate business calculation</span> +</span></span><span class="line"><span class="cl"><span class="nv">progress</span><span class="o">=</span><span class="m">10</span> +</span></span><span class="line"><span class="cl"><span class="k">while</span> <span class="o">[[</span> <span class="nv">$progress</span> -lt <span class="m">101</span> <span class="o">]]</span><span class="p">;</span> <span class="k">do</span> +</span></span><span class="line"><span class="cl"> <span class="nb">echo</span> -n -e <span class="s2">&#34;\033[77DCalculating new balance..</span><span class="nv">$progress</span><span class="s2">%&#34;</span> +</span></span><span class="line"><span class="cl"> sleep <span class="m">1</span> +</span></span><span class="line"><span class="cl"> <span class="nv">progress</span><span class="o">=</span><span class="k">$((</span><span class="m">10</span><span class="o">+</span>progress<span class="k">))</span> +</span></span><span class="line"><span class="cl"><span class="k">done</span> +</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;&#34;</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="nv">value</span><span class="o">=</span><span class="k">$((</span>value+<span class="nv">$1</span><span class="k">))</span> +</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Write new balance (</span><span class="nv">$value</span><span class="s2">) back to </span><span class="nv">$file</span><span class="s2">.&#34;</span> +</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="nv">$value</span> &gt; <span class="s2">&#34;</span><span class="nv">$file</span><span class="s2">&#34;</span> +</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Done.&#34;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>ما این فایل را همزمان با دو ترمینال اجرا می‌کنیم.</p> +<p><img src="https://bit-orbit.github.io/images/post/advisory_lock.gif" +loading="lazy" +alt="advisory lock" +></p> +<p>همینطور که می‌بینید پروسه دوم برای اینکه محتوای فایل را تغییر دهد، باید صبر کند تا لاک فایل +آزاد شود.</p> +<hr> +<p>این پست خلاصه‌ای بود از +<a class="link" href="https://www.baeldung.com/linux/file-locking" target="_blank" rel="noopener" +>این بلاگ</a> که هر دو نوع advisory lock و mandatory lock -را توضیح می‌دهد.</p> -<p>برای من سوال بود که من چطور می‌توانم مکانیزمی که +را توضیح می‌دهد.</p> +<p>برای من سوال بود که من چطور می‌توانم مکانیزمی که flock استفاده می‌کند را در برنامه های خودم پیاده سازی کنم، و خب نتیجه این بود که معمولا برای advisory lock هر زبانی یک کتابخانه استاندار دارد توی -<a class="link" href="https://docs.python.org/3/library/fcntl.html" target="_blank" rel="noopener" - >پایتون کتابخانه</a> -<code>fcntl</code> -اینکار را انجام می‌دهد.</p> - - - - از گوگل به تلگرام! - https://bit-orbit.github.io/p/%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/ - Mon, 18 Dec 2023 00:08:38 +0330 - - https://bit-orbit.github.io/p/%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/ - <img src="https://bit-orbit.github.io/images/post/colab.jpg" alt="Featured image of post از گوگل به تلگرام!" /><p>به احتمال زیاد سایت +<a class="link" href="https://docs.python.org/3/library/fcntl.html" target="_blank" rel="noopener" +>پایتون کتابخانه</a> +<code>fcntl</code> +اینکار را انجام می‌دهد.</p>از گوگل به تلگرام!https://bit-orbit.github.io/p/%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/Mon, 18 Dec 2023 00:08:38 +0330https://bit-orbit.github.io/p/%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/<img src="https://bit-orbit.github.io/images/post/colab.jpg" alt="Featured image of post از گوگل به تلگرام!" /><p>به احتمال زیاد سایت google colab رو می‌شناسید، این سایت برای کسانی که پایتون کار می‌کنند یک معجزه‌ست. خیلی راحت شما می‌توانید کد پایتون خود @@ -197,30 +168,30 @@ google colab این سرویس گوگل واقعا کار رو راحت می‌کنه. حالا فرض کنید این فایل رو باید با تیم به اشتراک بگذارید، خیلی راحت این سروریس به گوگل درایو شما متصل می‌شه -و فایل رو براتون آپلود می‌کنه.</p> -<p>اما من توی این پست می‌خواهم کار متفاوتی با این سرویس +و فایل رو براتون آپلود می‌کنه.</p> +<p>اما من توی این پست می‌خواهم کار متفاوتی با این سرویس انجام بدم، جای اینکه فایل‌م رو توی گوگل درایو آپلود کنم می‌خواهم که یک پلی لیست موزیک راک رو که فایل با فرمت zip هست رو روی google colab دانلود کنم و بعد با همین کولب فایل -ها را استخراج و به تلگرام اپلود کنم.</p> -<p>اینو بگم که خب روی کولب خیلی تریک های جالب دیگه‌ای هم +ها را استخراج و به تلگرام اپلود کنم.</p> +<p>اینو بگم که خب روی کولب خیلی تریک های جالب دیگه‌ای هم می‌زنند، مثلا من یه تایمی به کولب ssh می‌کردم و بعنوان vpn -استفاده می‌کردم.</p> -<hr> -<p>ادرس سرویس +استفاده می‌کردم.</p> +<hr> +<p>ادرس سرویس google colab -<a class="link" href="https://colab.research.google.com/" target="_blank" rel="noopener" - >این</a> +<a class="link" href="https://colab.research.google.com/" target="_blank" rel="noopener" +>این</a> هست، ولی من یک اسکریپت نوشتم که به اون نیاز داریم برای همین -<a class="link" href="https://colab.research.google.com/github/shabane/upload-to-telegram/blob/master/upload_to_telegram.ipynb" target="_blank" rel="noopener" - >این لینک</a> +<a class="link" href="https://colab.research.google.com/github/shabane/upload-to-telegram/blob/master/upload_to_telegram.ipynb" target="_blank" rel="noopener" +>این لینک</a> رو باز کنید تا اسکریپتی که من نوشته‌م توی colab @@ -228,237 +199,204 @@ colab jupyter کار کرده باشین این محیط باید براتون خیلی آشنا باشه. اگر نه، خیلی ساده بگم، این محیط دستورات پایتون رو -براتون روی سروس های گوگل ران می‌کنه :)</p> -<p>خب ما یه فایل این برای مثالمون نیاز داریم، من یک پلی +براتون روی سروس های گوگل ران می‌کنه :)</p> +<p>خب ما یه فایل این برای مثالمون نیاز داریم، من یک پلی لیست راک از AC/DC -که از تورنت می‌گیرم رو برای اینکار استفاده می‌کنم.</p> -<p>اول من فایل رو باید دانلود کنم، من از تورنت برای دانلود +که از تورنت می‌گیرم رو برای اینکار استفاده می‌کنم.</p> +<p>اول من فایل رو باید دانلود کنم، من از تورنت برای دانلود موزیک، فیلم و &hellip; استفاده می‌کنم. پس کافیه لینک تورنت رو به برنامه aria2c بدم و یا فایل رو با یک سایت دانلودر تورنت دانلود کنم و لینک‌ش رو بدم به برنامه -wget</p> -<p>برای اینکه دستورات خودتون رو اجرا کنید از بالای سایت +wget</p> +<p>برای اینکه دستورات خودتون رو اجرا کنید از بالای سایت گزینه -<em>+ code</em> +<em>+ code</em> رو بزنید تا یک code snipp جدید براتون باز کنه. توی این قسمت فقط می‌شه کد های پایتون رو اجرا کرد ولی اگه از علامت -<strong>!</strong> +<strong>!</strong> قبل از دستور استفاده کنیم اون رو بعنوان دستور bash اجرا خواهد کرد. و خب بیس سیستم عامل هم دبیان هست -و دستورات دبیانی رو اجرا می‌کنه.</p> -<p>پس اگه مستقیم قرار بود فایل رو از تورنت بگیرم باید برنامه +و دستورات دبیانی رو اجرا می‌کنه.</p> +<p>پس اگه مستقیم قرار بود فایل رو از تورنت بگیرم باید برنامه aria2 -رو نصب می‌کردم. برای نصب کافیه این دستور رو بزنیم</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!sudo apt-get install aria2 -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>دقت کنید که از علامت -<code>!</code> -قبل از دستور استفاده کردم.</p> -</blockquote> -<p>بعد از نصب، لینک رو می‌دیم به برنامه تا فایل ها رو برامون -دانلود کنه.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!aria2c <span class="s1">&#39;&lt;your magnet link&gt;&#39;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>به این دقت کنید که برنامه با کامند +رو نصب می‌کردم. برای نصب کافیه این دستور رو بزنیم</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!sudo apt-get install aria2 +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>دقت کنید که از علامت +<code>!</code> +قبل از دستور استفاده کردم.</p> +</blockquote> +<p>بعد از نصب، لینک رو می‌دیم به برنامه تا فایل ها رو برامون +دانلود کنه.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!aria2c <span class="s1">&#39;&lt;your magnet link&gt;&#39;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>به این دقت کنید که برنامه با کامند aria2c اجرا می‌شه. ولی با به اسم aria2 -نصب می‌شه.</p> -</blockquote> -<p>و یا اینکه لینک دانلود مستقیم رو به برنامه +نصب می‌شه.</p> +</blockquote> +<p>و یا اینکه لینک دانلود مستقیم رو به برنامه wget می‌دیم. این برنامه به صورت دیفالت نصب هست و لازم نیست -کار خاصی بکنیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!wget <span class="s1">&#39;&lt;your file link&gt;&#39;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p><img src="https://bit-orbit.github.io/images/post/wgetcolab.jpg" - - - - loading="lazy" - - alt="from google to telegram as cloud" - - -></p> -<p>بعد از اینکه فایل روی سرور گوگل دانلود شد کافیه فایل -رو به تلگرام آپلود کنیم! ولی قبل‌ش چند کاری هست که باید -باهم بکنیم.</p> -<ul> -<li>فایل من زیپه پس باید استخراج کنم.</li> -<li>فایل ها توی دایرکتوری های تو در تو قرار دارند، و باید همه فایل های مورد نظرم رو که توی این مورد +کار خاصی بکنیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!wget <span class="s1">&#39;&lt;your file link&gt;&#39;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p><img src="https://bit-orbit.github.io/images/post/wgetcolab.jpg" +loading="lazy" +alt="from google to telegram as cloud" +></p> +<p>بعد از اینکه فایل روی سرور گوگل دانلود شد کافیه فایل +رو به تلگرام آپلود کنیم! ولی قبل‌ش چند کاری هست که باید +باهم بکنیم.</p> +<ul> +<li>فایل من زیپه پس باید استخراج کنم.</li> +<li>فایل ها توی دایرکتوری های تو در تو قرار دارند، و باید همه فایل های مورد نظرم رو که توی این مورد mp3 هستند رو بیارم داخل پوشه‌ای که اسکریپت دیفالت آنجا ران -می‌شه.</li> -<li>نیاز به یک کانال تلگرام دارم که فایل ها مستقیم اونجا -اپلود بشوند</li> -<li>یک توکن ربات تلگرام هم نیازه که با استفاده از دسترسی -ربات به کانال، فایل ها رو اپلود کنیم.</li> -</ul> -<p>خب برای اسختراج فایل ها خیلی ساده از کامند -<code>unzip</code> -و اسم فایل جلوی این کامند استفاده می‌کنیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!unzip &lt;your file name&gt; -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>با کامند -<code>ls</code> -نام فایلی که دانلود کردین رو می‌تونید ببینید.</p> -</blockquote> -<p><img src="https://bit-orbit.github.io/images/post/unzipcolab.jpg" - - - - loading="lazy" - - alt="uizip in colab" - - -></p> -<p>با اجرای کامند -<code>tree</code> -می‌تونید دایرکتوری های تو در تو رو ببینید.</p> -<p><img src="https://bit-orbit.github.io/images/post/treecolab.jpg" - - - - loading="lazy" - - alt="tree in colab" - - -></p> -<p>توی این مرحله من همه فایل های +می‌شه.</li> +<li>نیاز به یک کانال تلگرام دارم که فایل ها مستقیم اونجا +اپلود بشوند</li> +<li>یک توکن ربات تلگرام هم نیازه که با استفاده از دسترسی +ربات به کانال، فایل ها رو اپلود کنیم.</li> +</ul> +<p>خب برای اسختراج فایل ها خیلی ساده از کامند +<code>unzip</code> +و اسم فایل جلوی این کامند استفاده می‌کنیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!unzip &lt;your file name&gt; +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>با کامند +<code>ls</code> +نام فایلی که دانلود کردین رو می‌تونید ببینید.</p> +</blockquote> +<p><img src="https://bit-orbit.github.io/images/post/unzipcolab.jpg" +loading="lazy" +alt="uizip in colab" +></p> +<p>با اجرای کامند +<code>tree</code> +می‌تونید دایرکتوری های تو در تو رو ببینید.</p> +<p><img src="https://bit-orbit.github.io/images/post/treecolab.jpg" +loading="lazy" +alt="tree in colab" +></p> +<p>توی این مرحله من همه فایل های mp3 رو باید بیارم توی پوشه اصلی که اسکریپت‌ اپلود اجرا میشه، دلیل این کار این هست که این اسکریپ‌ت فقط فایل های mp3 -داخل همین پوشه رو پیدا و اپلود می‌کنه.</p> -<p>برای انتقال این فایل ها از پوشه های تو در تو به یک پوشه از کامند -<code>find</code> +داخل همین پوشه رو پیدا و اپلود می‌کنه.</p> +<p>برای انتقال این فایل ها از پوشه های تو در تو به یک پوشه از کامند +<code>find</code> استفاده می‌کنم و هر فایل که پیدا می‌شه رو با کامند -<code>mv</code> -به پوشه اصلی‌مون انتقال می‌دم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!find . -type f -iname <span class="s1">&#39;*mp3&#39;</span> -exec mv <span class="o">{}</span> . <span class="se">\;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>بیایید سوییچ های این دستور رو بهتون بگم</p> -<ul> -<li>type-</li> -</ul> -<p>این سوییچ انواع نوع فایل ها رو مشخص می‌کنه. مثلا شما می‌تونید دنبال یک دایرکتوری، فایل، سوکت و &hellip; بگردین</p> -<ul> -<li>iname-</li> -</ul> -<p>این سویچ که مشخص هست نام فایل رو ازتون می‌گیره که شما می‌تونید پترن ریجکس بدین بهش. +<code>mv</code> +به پوشه اصلی‌مون انتقال می‌دم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!find . -type f -iname <span class="s1">&#39;*mp3&#39;</span> -exec mv <span class="o">{}</span> . <span class="se">\;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>بیایید سوییچ های این دستور رو بهتون بگم</p> +<ul> +<li>type-</li> +</ul> +<p>این سوییچ انواع نوع فایل ها رو مشخص می‌کنه. مثلا شما می‌تونید دنبال یک دایرکتوری، فایل، سوکت و &hellip; بگردین</p> +<ul> +<li>iname-</li> +</ul> +<p>این سویچ که مشخص هست نام فایل رو ازتون می‌گیره که شما می‌تونید پترن ریجکس بدین بهش. و اون -<strong>i</strong> -مشخص می‌کنه که نام فایل به کوچیکی و بزرگی حساس نباشه.</p> -<ul> -<li>exec-</li> -</ul> -<p>یک کامندی رو ازتون می‌گیره و روی تک تک ریزالت های جست و جو اون کامند رو اجرا می‌کنه. +<strong>i</strong> +مشخص می‌کنه که نام فایل به کوچیکی و بزرگی حساس نباشه.</p> +<ul> +<li>exec-</li> +</ul> +<p>یک کامندی رو ازتون می‌گیره و روی تک تک ریزالت های جست و جو اون کامند رو اجرا می‌کنه. من کامند -<code>mv</code> +<code>mv</code> رو دادم که برای انتقال فایل استفاده می‌شه. علامت های -<strong>{}</strong> -هم یک متغییر هست که نام فایل تک به تک جای اون قرار می‌گیره.</p> -<blockquote> -<p>پایان سوییچ +<strong>{}</strong> +هم یک متغییر هست که نام فایل تک به تک جای اون قرار می‌گیره.</p> +<blockquote> +<p>پایان سوییچ exec همیشه با -<code>;\</code> -مشخص می‌شه.</p> -</blockquote> -<p>خب تا اینجا که خیلی ساده بود،‌ نه؟</p> -<p>مرحله آخر اینه که یک ربات با -<a class="link" href="https://t.me/BotFather" target="_blank" rel="noopener" - >این ربات</a> -بسازین، و بعد اون رو عضو یک کانالی که می‌سازید بکنید، کانال رو فعلا پابلیک بسازید و یک یوزرنیم بهش بدین.</p> -<p>توکن ربات رو کپی کنید و توی اسکریپت من، جایی که نوشته -<your token> +<code>;\</code> +مشخص می‌شه.</p> +</blockquote> +<p>خب تا اینجا که خیلی ساده بود،‌ نه؟</p> +<p>مرحله آخر اینه که یک ربات با +<a class="link" href="https://t.me/BotFather" target="_blank" rel="noopener" +>این ربات</a> +بسازین، و بعد اون رو عضو یک کانالی که می‌سازید بکنید، کانال رو فعلا پابلیک بسازید و یک یوزرنیم بهش بدین.</p> +<p>توکن ربات رو کپی کنید و توی اسکریپت من، جایی که نوشته +<your token> وارد کنید و توی قسمت -<chat id> -هم ایدی کانالتون رو با علامت @ اول جایگذاری کنید.</p> -<p><img src="https://bit-orbit.github.io/images/post/acdccolab.jpg" - - - - loading="lazy" - - alt="ac and dc telegram channel" - - -></p> -<blockquote> -<p>اگه کانال پرایوت دارید باید بجای ای‌دی کانال از +<chat id> +هم ایدی کانالتون رو با علامت @ اول جایگذاری کنید.</p> +<p><img src="https://bit-orbit.github.io/images/post/acdccolab.jpg" +loading="lazy" +alt="ac and dc telegram channel" +></p> +<blockquote> +<p>اگه کانال پرایوت دارید باید بجای ای‌دی کانال از chatid -استفاده کنید، که یک ای‌دی عددی هست.</p> -</blockquote> -<p><strong>تمام</strong>!‌ -کافیه برنامه رو اجرا کنید و کانال تلگرامتون رو نگاه کنید :)</p> -<blockquote> -<p>اگه خیلی زیاد دارین فایل اپلود می‌کنید احتمالا تلگرام ارور +استفاده کنید، که یک ای‌دی عددی هست.</p> +</blockquote> +<p><strong>تمام</strong>!‌ +کافیه برنامه رو اجرا کنید و کانال تلگرامتون رو نگاه کنید :)</p> +<blockquote> +<p>اگه خیلی زیاد دارین فایل اپلود می‌کنید احتمالا تلگرام ارور flood mood بهتون بده. توی این مورد کافیه فقط صبر کنید، اسکریپت از اجرا قطع نمی‌شه و روی همون فایل مجددا اجرا می‌شه -تا بالاخره فایل اپلود بشه.</p> -</blockquote> -<blockquote> -<p>هرچیزی رو می‌تونید آپلود کنید ولی دقت کنید که ربات ها محدودیت حجم اپلود دارن که نهایتش 50MB هست</p> -</blockquote> -<blockquote> -<p>اینم بگم که توی اسکریپت اگه +تا بالاخره فایل اپلود بشه.</p> +</blockquote> +<blockquote> +<p>هرچیزی رو می‌تونید آپلود کنید ولی دقت کنید که ربات ها محدودیت حجم اپلود دارن که نهایتش 50MB هست</p> +</blockquote> +<blockquote> +<p>اینم بگم که توی اسکریپت اگه mp3 -رو به چیز دیگه‌ای تغییر بدین، اسکریپت به دنبال اون پسوند ها خواهد گشت.</p> -</blockquote> - - - - cloud را به خانه خود ببرید! - https://bit-orbit.github.io/p/cloud-%D8%B1%D8%A7-%D8%A8%D9%87-%D8%AE%D8%A7%D9%86%D9%87-%D8%AE%D9%88%D8%AF-%D8%A8%D8%A8%D8%B1%DB%8C%D8%AF/ - Mon, 11 Dec 2023 01:39:34 +0330 - - https://bit-orbit.github.io/p/cloud-%D8%B1%D8%A7-%D8%A8%D9%87-%D8%AE%D8%A7%D9%86%D9%87-%D8%AE%D9%88%D8%AF-%D8%A8%D8%A8%D8%B1%DB%8C%D8%AF/ - <img src="https://bit-orbit.github.io/images/post/umbrel.webp" alt="Featured image of post cloud را به خانه خود ببرید!" /><h3 id="چطور-این-ایده-به-ذهن-من-رسید-">چطور این ایده به ذهن من رسید ؟</h3> -<p>جریان این ایده به این شکل بود که خب ما ایرانی ها اینترنت +رو به چیز دیگه‌ای تغییر بدین، اسکریپت به دنبال اون پسوند ها خواهد گشت.</p> +</blockquote>cloud را به خانه خود ببرید!https://bit-orbit.github.io/p/cloud-%D8%B1%D8%A7-%D8%A8%D9%87-%D8%AE%D8%A7%D9%86%D9%87-%D8%AE%D9%88%D8%AF-%D8%A8%D8%A8%D8%B1%DB%8C%D8%AF/Mon, 11 Dec 2023 01:39:34 +0330https://bit-orbit.github.io/p/cloud-%D8%B1%D8%A7-%D8%A8%D9%87-%D8%AE%D8%A7%D9%86%D9%87-%D8%AE%D9%88%D8%AF-%D8%A8%D8%A8%D8%B1%DB%8C%D8%AF/<img src="https://bit-orbit.github.io/images/post/umbrel.webp" alt="Featured image of post cloud را به خانه خود ببرید!" /><h3 id="چطور-این-ایده-به-ذهن-من-رسید-">چطور این ایده به ذهن من رسید ؟ +</h3><p>جریان این ایده به این شکل بود که خب ما ایرانی ها اینترنت به شدت محدود شده‌ای داریم، برای همین ما برای استفاده از اینترنت از vpn @@ -471,100 +409,82 @@ ip vpn رو که به هزار زحمت وصل شده بود، قطع کنیم. خب چاره چیه؟ اینکه اگه یک سیستم توی خونه یا شرکت دارین -که همیشه روشنه رو تبدیل به یک سرور کنیم :)</p> -<p>توی این فکر بودم که نیازم رو به چنین سیستم عاملی حس کردم، بعد کمی نیاز های دیگه رو بهش اضافه کردم و یه پست +که همیشه روشنه رو تبدیل به یک سرور کنیم :)</p> +<p>توی این فکر بودم که نیازم رو به چنین سیستم عاملی حس کردم، بعد کمی نیاز های دیگه رو بهش اضافه کردم و یه پست داخل تلگرام نوشتم، یکی کامنت گذاشت و خب این سیستم عامل -را معرفی کرد.</p> -<hr> -<h3 id="umbrel-چیست-">umbrel چیست ؟</h3> -<p>درواقع +را معرفی کرد.</p> +<hr> +<h3 id="umbrel-چیست-">umbrel چیست ؟ +</h3><p>درواقع umbrel یک سیستم عامل است، زمانی که شما این سیستم عامل را نصب کنید، یک صفحه وب در اختیار شما می‌گذارد و شما از طریق این صفحه درون مرورگر خود می‌توانید به سیستم دسترسی داشته باشید. برای مثلا می‌توانید سرویس های مختلف و ابزار های -مختلف را روی +مختلف را روی umbrel -نصب و یا کانفیگ کنید.</p> -<p>سرویس هایی که +نصب و یا کانفیگ کنید.</p> +<p>سرویس هایی که umbrel ارائه می‌دهد تقریبا همان سرویس هایی هستند که شما در طول -روز از نسخه های تجاری آنها استفاده می‌کنید.</p> -<p>اگه دقیق تر بخواهم بگم، این سیستم عامل یک +روز از نسخه های تجاری آنها استفاده می‌کنید.</p> +<p>اگه دقیق تر بخواهم بگم، این سیستم عامل یک store در اختیار کاربران‌ش قرار می‌ده. و خب این یکی از مهم ترین کار هایی است که این سیستم عامل انجام می‌ده چرا که اگر این استور وجود نداشت، شما شخصا باید فرایند کانفیگ و نصب سرویس ها را به عهده می‌گرفتید(این کار یک متخصص دواپس -هست، خیلی هم جالیه)</p> -<p><img src="https://bit-orbit.github.io/images/post/umbrelstore.jpg" - - - - loading="lazy" - - alt="umbrel store" - - -></p> -<hr> -<h3 id="umbrel-چه-نیازی-را-برطرف-میکند-">umbrel چه نیازی را برطرف می‌کند ؟</h3> -<p>وقتی از سرویس های تحت اینترنت استفاده می‌کنید، +هست، خیلی هم جالیه)</p> +<p><img src="https://bit-orbit.github.io/images/post/umbrelstore.jpg" +loading="lazy" +alt="umbrel store" +></p> +<hr> +<h3 id="umbrel-چه-نیازی-را-برطرف-میکند-">umbrel چه نیازی را برطرف می‌کند ؟ +</h3><p>وقتی از سرویس های تحت اینترنت استفاده می‌کنید، به احتمال زیاد شما کالای اون شرکتی هستید که ابزار را در اختیارتون قرار داده است. اگر دقت کنیم می‌بینیم که این شرکت ها بسیاری کاربر دارند و خب برای ارائه درست خدمت به کاربرانشون سرور های زیادی اجاره می‌کنند سرویس ها رو دائم اپدیت و بهتر می‌کنند -و خب سرویس های متعددی هم ارائه می‌کنند.</p> -<p>همه این کار ها نیاز به هزینه های زیادی دارند، +و خب سرویس های متعددی هم ارائه می‌کنند.</p> +<p>همه این کار ها نیاز به هزینه های زیادی دارند، بودجه این شرکت ها فقط و فقط با تبلیغات تامین نمی‌شود بلکه با فروش اطلاعات کاربرانشون(خود ما) به شرکت ها و دولت ها -تامین می‌شود.</p> -<p><img src="https://bit-orbit.github.io/images/post/zuker.jpg" - - - - loading="lazy" - - alt="zukerberg spying" - - -></p> -<p>و البته اگر حتی شما برای سرویسی که استفاده می‌کنید +تامین می‌شود.</p> +<p><img src="https://bit-orbit.github.io/images/post/zuker.jpg" +loading="lazy" +alt="zukerberg spying" +></p> +<p>و البته اگر حتی شما برای سرویسی که استفاده می‌کنید هزینه‌ای پرداخت کنید، مثلا برای استفاده از گوگل دایو ماهانه هزینه هم پرداخت کنید، باز هم مشکلاتی وجود دارد، مثلا قانونا گوگل مالک فایلی است که شما روی سرور هایش -آپلود می‌کنید.</p> -<p>در چنین مواقعی هست که اصطلاح +آپلود می‌کنید.</p> +<p>در چنین مواقعی هست که اصطلاح self-hosting سرویس ها استفاده می‌شود. به این معنی که سرویس هایی که شما روزانه از آن استفاده می‌کنید را خودتان راه اندازی -کنید. اما اینکار نیاز به دانش بالایی داره.</p> -<p>سیستم عامل +کنید. اما اینکار نیاز به دانش بالایی داره.</p> +<p>سیستم عامل umbrel این کار را ساده کرده است، با این تفاوت که قبلا شما باید برای استفاده چند ابزار روی یک سرور، باید سرور رو به درستی کانفیگ می‌کردین سپس ابزار ها را کانفیگ، و بعد سرویس ها راه اجرا می‌کردین. اما الان فقط با یک کلیک شما سرویس توییتر خود را -راه اندازی می‌کنید!</p> -<p><img src="https://bit-orbit.github.io/images/post/umbrelselfhosting.jpg" - - - - loading="lazy" - - alt="umbrel self hosting" - - -></p> -<hr> -<h3 id="umbrel-به-روی-سیستم-عامل-دسکتاپ">umbrel به روی سیستم عامل دسکتاپ</h3> -<p>نصب +راه اندازی می‌کنید!</p> +<p><img src="https://bit-orbit.github.io/images/post/umbrelselfhosting.jpg" +loading="lazy" +alt="umbrel self hosting" +></p> +<hr> +<h3 id="umbrel-به-روی-سیستم-عامل-دسکتاپ">umbrel به روی سیستم عامل دسکتاپ +</h3><p>نصب umbrel بسیاز سادهست فقط کافیه یک سیستم عامل debian رو روی سیستمتون داشته باشید، یک ترمینال باز کنید و کامند -نصب را بزنید، با یک کامند این سیستم نصب می‌شه.</p> -<p>ولی خب اگر سیستم عاملی ندارید که بر پایه +نصب را بزنید، با یک کامند این سیستم نصب می‌شه.</p> +<p>ولی خب اگر سیستم عاملی ندارید که بر پایه debain باشه، می‌شه به سادگی روی ماشین مجازی یک دبیان نصب کنید، حالت شبکه اون سیستم عامل رو @@ -581,10 +501,10 @@ IP debain که umbrel -را روی ان نصب کردین را وارد کنید و تمام!</p> -<hr> -<h3 id="umbrel-به-روی-رزبری-پای">umbrel به روی رزبری پای</h3> -<p>رزبری پای! یک سخت افزار کوچک که تقریبا یک کامپیوتر کامل +را روی ان نصب کردین را وارد کنید و تمام!</p> +<hr> +<h3 id="umbrel-به-روی-رزبری-پای">umbrel به روی رزبری پای +</h3><p>رزبری پای! یک سخت افزار کوچک که تقریبا یک کامپیوتر کامل است! البته که قدرت پردازش بالایی ندارد ولی در IOT استفاده زیادی دارد. با توجه به اینکه پردازنده های @@ -596,24 +516,18 @@ umbrel را نصب کرد، برای همین سیستم عامل umbrel یک نسخه مخصوص برای رزبری پای دارد، کافیست آن را دانلود و -به روی ربزی خود نصب کنید.</p> -<p>به این دقت کنید که خب سعنی کنید یک هارد اکسترنال به +به روی ربزی خود نصب کنید.</p> +<p>به این دقت کنید که خب سعنی کنید یک هارد اکسترنال به رزبری متصل کنید که فضای کافی برای سروریسی مانند next cloud -داشته باشید.</p> -<p><img src="https://bit-orbit.github.io/images/post/umbrelonressbery.jpg" - - - - loading="lazy" - - alt="umbrel on ressbery pi" - - -></p> -<hr> -<h3 id="umbrel-بروی-سرور-شخصی">umbrel بروی سرور شخصی</h3> -<p>به سادگی اچرای یک کامند! کافیست فقط سیستم عامل +داشته باشید.</p> +<p><img src="https://bit-orbit.github.io/images/post/umbrelonressbery.jpg" +loading="lazy" +alt="umbrel on ressbery pi" +></p> +<hr> +<h3 id="umbrel-بروی-سرور-شخصی">umbrel بروی سرور شخصی +</h3><p>به سادگی اچرای یک کامند! کافیست فقط سیستم عامل سرورتون debain و یا کلا بر پایه @@ -622,10 +536,10 @@ debian ubuntu باشه. کامند اجرا را وارد کنید و بعد از اتمام فرایند نصب، IP -سرور را وارد مرورگر کنید، تمام!</p> -<hr> -<h3 id="دستگاه-umbrel">دستگاه umbrel</h3> -<p>شرکت سازنده +سرور را وارد مرورگر کنید، تمام!</p> +<hr> +<h3 id="دستگاه-umbrel">دستگاه umbrel +</h3><p>شرکت سازنده umbrel به جز سیستم عامل، یک دستگاهی طراحی کرده است که به صورت پیشفرض سیستم عامل @@ -637,35 +551,29 @@ umbrel به روی rassbery PI استفاده می‌کنید، شما نیاز به یک فن دارید تا این دستگاه -را دائم خنک کند، از طرفی خود فن هم باید خنک شود.</p> -<p>اینجاست که این دستگاه رو برای شرکت یا خانه‌ شما مناسب‌تر -می‌کند(مطمئن باشید تبلیغ نمی‌کنم)</p> -<p><img src="https://bit-orbit.github.io/images/post/umbreldevice.jpg" - - - - loading="lazy" - - alt="umbrel device" - - -></p> -<hr> -<h3 id="umbrel-چطور-کار-میکند-">umbrel چطور کار می‌کند ؟</h3> -<p>اگه بخواهم کمی فنی‌تر وارد ماجرا بشم، همونطور که گفت +را دائم خنک کند، از طرفی خود فن هم باید خنک شود.</p> +<p>اینجاست که این دستگاه رو برای شرکت یا خانه‌ شما مناسب‌تر +می‌کند(مطمئن باشید تبلیغ نمی‌کنم)</p> +<p><img src="https://bit-orbit.github.io/images/post/umbreldevice.jpg" +loading="lazy" +alt="umbrel device" +></p> +<hr> +<h3 id="umbrel-چطور-کار-میکند-">umbrel چطور کار می‌کند ؟ +</h3><p>اگه بخواهم کمی فنی‌تر وارد ماجرا بشم، همونطور که گفت این سیستم عامل بهترین ویژگی که ارائه می‌کند store آن است. البته که اینجا store به معنی فروشگاه نیست، بلکه شبیه یک بازاری است که همه -اجناس‌ش رایگان است :)</p> -<p>سرویس های +اجناس‌ش رایگان است :)</p> +<p>سرویس های umbrel همه سرویس هایی هستند که به صورت منبع باز در اختیار همه قرار گرفته است، این سرویس ها برای اجرا شدن نیاز به شخصی دارد که دانش کافی از سرور داشته باشد و خب نحوه کانفیگ -کردن هر کدام از ابزار ها و سرویس ها را بداند.</p> -<p>دانلود و نصب هر سرویس به صورت جدگانه ممکن است به مشکلات +کردن هر کدام از ابزار ها و سرویس ها را بداند.</p> +<p>دانلود و نصب هر سرویس به صورت جدگانه ممکن است به مشکلات متعددی برخورد کند، مثلا در نصب سرویسی مثل nexcloud شما ممکن است نیاز به ورژن خاصی از @@ -674,11 +582,11 @@ php nginx برای اجرای اسکریپت های php -هم واقعا به اندازه زیادی دردسر دارد.</p> -<p>اینجاست که داکر وارد ماجرا می‌شود! +هم واقعا به اندازه زیادی دردسر دارد.</p> +<p>اینجاست که داکر وارد ماجرا می‌شود! umbrel -از قبل تمامی سرویس ها را داکرایز کرده است.</p> -<p>داکرایز به چه معنیست؟ +از قبل تمامی سرویس ها را داکرایز کرده است.</p> +<p>داکرایز به چه معنیست؟ درواقع به این فکر کنید که شما یک برنامه را می‌خواهید نصب کنید، این سرویس توسط سازنده آن از ورژن خاصی از زبان مشخصی، لایبراری و فایل هایی استفاده کرده است که پیشفرض @@ -689,8 +597,8 @@ image قرار داده است، و بعد کافیست شما آن فایل را به برنامه docker engine -بدهید، آن برنامه باید بدون هیچ مشکلی اجرا شود.</p> -<p>سیستم عامل +بدهید، آن برنامه باید بدون هیچ مشکلی اجرا شود.</p> +<p>سیستم عامل umbrel دقیقا چنین کاری می‌کند. تمامی image @@ -698,20 +606,14 @@ image store برای شما شما لیست می‌کند، شما کافیست که دکمه install -را بزنید، بنگ! سرویس شما آماده است :)</p> -<p><img src="https://bit-orbit.github.io/images/post/umbreldocker.jpg" - - - - loading="lazy" - - alt="umbrel dockeriz" - - -></p> -<hr> -<h3 id="امنیت">امنیت</h3> -<p>اگر +را بزنید، بنگ! سرویس شما آماده است :)</p> +<p><img src="https://bit-orbit.github.io/images/post/umbreldocker.jpg" +loading="lazy" +alt="umbrel dockeriz" +></p> +<hr> +<h3 id="امنیت">امنیت +</h3><p>اگر umbrel را به روی چیزی به جز سرور دارید، حتی اگر برای آن یک دامنه هم بگیرید، @@ -721,8 +623,8 @@ umbrel tor به آن متصل شوید و یا یک VPN -سرور داخل شبکه داخلی خود راه اندازی کنید.</p> -<p>البته +سرور داخل شبکه داخلی خود راه اندازی کنید.</p> +<p>البته umbrel به جز tor @@ -732,60 +634,54 @@ VPN tailscale که مستقیم به روی umbrel -نصب می‌شود.</p> -<p><img src="https://bit-orbit.github.io/images/post/tailscalaumbrel.jpg" - - - - loading="lazy" - - alt="tailscala umbrel" - - -></p> -<hr> -<h3 id="سرویس-های-کاربردی-umbrel">سرویس های کاربردی umbrel</h3> -<ul> -<li>matrix</li> -</ul> -<blockquote> -<p>خیلی ساده بگم، می‌تونید با این سرویس +نصب می‌شود.</p> +<p><img src="https://bit-orbit.github.io/images/post/tailscalaumbrel.jpg" +loading="lazy" +alt="tailscala umbrel" +></p> +<hr> +<h3 id="سرویس-های-کاربردی-umbrel">سرویس های کاربردی umbrel +</h3><ul> +<li>matrix</li> +</ul> +<blockquote> +<p>خیلی ساده بگم، می‌تونید با این سرویس telegtam خودتون رو راه اندازی کنید. برای اینکه بیشتر درباراه این سرویس بدونید، -<a class="link" href="https://www.wiregeek.ir/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/" target="_blank" rel="noopener" - >این پست</a> -من را بخوانید.</p> -</blockquote> -<ul> -<li>nextcloud</li> -</ul> -<blockquote> -<p>خیلی شبیه به گوگل درایو است، به جز نسخه وب +<a class="link" href="https://www.wiregeek.ir/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/" target="_blank" rel="noopener" +>این پست</a> +من را بخوانید.</p> +</blockquote> +<ul> +<li>nextcloud</li> +</ul> +<blockquote> +<p>خیلی شبیه به گوگل درایو است، به جز نسخه وب حتی یک اپ اندروید هم دارد که می‌توانید آدرس nextcloud را درون آن وارد کنید و از هرکحا به فضای خودتون دسترسی داشته باشید. و خب حتی بعنوان ادمین -برای افراد خانواده و یا شرکت‌تون اکانت بسازید، و فضای شخصی خودشان را در اختیارشان قرار بدین.</p> -</blockquote> -<ul> -<li>qbittorrent</li> -</ul> -<blockquote> -<p>اگر تورنت را می‌شناسید، قطعا این کلاینت معروف را هم باید +برای افراد خانواده و یا شرکت‌تون اکانت بسازید، و فضای شخصی خودشان را در اختیارشان قرار بدین.</p> +</blockquote> +<ul> +<li>qbittorrent</li> +</ul> +<blockquote> +<p>اگر تورنت را می‌شناسید، قطعا این کلاینت معروف را هم باید بشناسید، این کلاینت یک نسخه وب دارد که داخل فروشگاه umbrel قرار دارد. فایل های خود را برای دانلود به این کلاینت بدین و در زمانی که از اینرنت استفاده نمی‌کنید مثلا 2 تا 7 صبح -آن ها را بگذارید تا دانلود بشوند.</p> -</blockquote> -<ul> -<li>pi-hole</li> -</ul> -<blockquote> -<p>برای خلاص شدن از تبلیغات اینترنت کافیه این سرویس +آن ها را بگذارید تا دانلود بشوند.</p> +</blockquote> +<ul> +<li>pi-hole</li> +</ul> +<blockquote> +<p>برای خلاص شدن از تبلیغات اینترنت کافیه این سرویس DNS را به روی umbrel @@ -793,13 +689,13 @@ umbrel DHCP را تنظیم کنید که IP -این سرویس را به دیگر دستگاه های شبکه بدهد.</p> -</blockquote> -<ul> -<li>Jellyfin</li> -</ul> -<blockquote> -<p>یکی از نیاز های واقعا اساسی من، این سرویس است. +این سرویس را به دیگر دستگاه های شبکه بدهد.</p> +</blockquote> +<ul> +<li>Jellyfin</li> +</ul> +<blockquote> +<p>یکی از نیاز های واقعا اساسی من، این سرویس است. فیلم هایی که می‌بینم، و یا قرار است که ببینم‌شون رو می‌تونم با این سرویس به درستی دنبال کنم. در اصل این سرویس برای پخش کردن فیلم ها ساخته شده‌ است. @@ -809,172 +705,130 @@ jellyfin فیلم ها رو تماشا کنید، مثلا اگر تلویزیون هوشمند دارید کافیست از طریق مرورگر آن وارد umbrel -خود بشین.</p> -</blockquote> -<p>-snapdrop</p> -<blockquote> -<p>سرویس خیلی ساده‌ای است که برای انتقال فایل داخل -شبکه لوکال استفاده می‌شود.</p> -</blockquote> -<ul> -<li>whoogle search</li> -</ul> -<blockquote> -<p>البته +خود بشین.</p> +</blockquote> +<p>-snapdrop</p> +<blockquote> +<p>سرویس خیلی ساده‌ای است که برای انتقال فایل داخل +شبکه لوکال استفاده می‌شود.</p> +</blockquote> +<ul> +<li>whoogle search</li> +</ul> +<blockquote> +<p>البته whoogle یک موتور جست و جوی meta است، به این معنی که خودش وب را خزش نمی‌کند و از موتور های جست و جوی دیگر برای نتیجه جست و جوی شما استفاده -می‌کند.</p> -</blockquote> -<ul> -<li>LlamaGPT</li> -</ul> -<blockquote> -<p>چیزی شبیه +می‌کند.</p> +</blockquote> +<ul> +<li>LlamaGPT</li> +</ul> +<blockquote> +<p>چیزی شبیه ChatGPT -ولی افلاین و کاملا خصوصی.</p> -</blockquote> -<hr> -<h3 id="راه-اندازی-سرویس-های-شخصی">راه اندازی سرویس های شخصی</h3> -<p>خیلی از سرویس ها هنوز به +ولی افلاین و کاملا خصوصی.</p> +</blockquote> +<hr> +<h3 id="راه-اندازی-سرویس-های-شخصی">راه اندازی سرویس های شخصی +</h3><p>خیلی از سرویس ها هنوز به umbrel اضافه نشده. اضافه کردن سرویس به خود store -هم کار سختی نیستی، کافیه فقط داکرایز کردن رو بلد باشین.</p> -<ul> -<li>cache server</li> -</ul> -<p>کش سرور ها معمولا با +هم کار سختی نیستی، کافیه فقط داکرایز کردن رو بلد باشین.</p> +<ul> +<li>cache server</li> +</ul> +<p>کش سرور ها معمولا با transparent proxy بدون اینکه کاربران متوجه پروکسی بشوند پیاده سازی می‌شوند. -کار آنها کاهش مصرف ترافیک است.</p> -<p>یکی از سرویس هایی که خیلی از شرکت ها برای کاهش هزینه های +کار آنها کاهش مصرف ترافیک است.</p> +<p>یکی از سرویس هایی که خیلی از شرکت ها برای کاهش هزینه های اینرنت و یا خب برای بهبود سرعت اینترنت می‌کنند، ارائه cache server -هست.</p> -<p>خیلی خلاصه بگم کش سرور محتوایی که کاربران بازدید می‌کنند +هست.</p> +<p>خیلی خلاصه بگم کش سرور محتوایی که کاربران بازدید می‌کنند را درون خود برای مدتی و با شرایطی از پیش تعیین شده نگه ‌می‌دارد و هر بار که کاربران به محتوای قبلی درخواست بدهند، دیگر آن ریکوئست تا سایت اصلی نمی‌رود و خود -کش سرور که در شبکه داخلی است جواب آن را می‌دهد</p> -<p><img src="https://bit-orbit.github.io/images/post/cacheumber.jpg" - - - - loading="lazy" - - alt="cache server" - - -></p> -<hr> - - - - چرا لینوکس رو دوست دارم؟ - https://bit-orbit.github.io/p/%DA%86%D8%B1%D8%A7-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D8%B1%D9%88-%D8%AF%D9%88%D8%B3%D8%AA-%D8%AF%D8%A7%D8%B1%D9%85/ - Fri, 07 Jul 2023 02:45:19 +0330 - - https://bit-orbit.github.io/p/%DA%86%D8%B1%D8%A7-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D8%B1%D9%88-%D8%AF%D9%88%D8%B3%D8%AA-%D8%AF%D8%A7%D8%B1%D9%85/ - <img src="https://bit-orbit.github.io/images/post/ill.png" alt="Featured image of post چرا لینوکس رو دوست دارم؟" /><p>دوست داشتن لینوکس واقعا دلایل زیادی داره و احتمالا هر کسی به دلیل خاصی لینوکس رو دوست داره. -مثلا یکی ممکنه آزادی‌اش رو دوست داشته باشه یکی دیگه از پکیج منیجر علاقه رو به لینوکس پیدا کرده باشه و &hellip;</p> -<p>من ترمینال قدرتمند لینوکس رو دوست دارم، چیزی که هیچوقت توی ویندوز تجربه نکرده بودم. -یکی زیبایی های ترمینال برای من ترکیب ریزالت برنامه‌های مختلف با یکدیگر و بدست اوردن نتیجه جدیده</p> -<p>مثلا بابام برای چندین پست فرستاد که هر پست شامل چهار یا پنج لینکه که من باید همه‌ش رو دانلود کنم، +کش سرور که در شبکه داخلی است جواب آن را می‌دهد</p> +<p><img src="https://bit-orbit.github.io/images/post/cacheumber.jpg" +loading="lazy" +alt="cache server" +></p> +<hr>چرا لینوکس رو دوست دارم؟https://bit-orbit.github.io/p/%DA%86%D8%B1%D8%A7-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D8%B1%D9%88-%D8%AF%D9%88%D8%B3%D8%AA-%D8%AF%D8%A7%D8%B1%D9%85/Fri, 07 Jul 2023 02:45:19 +0330https://bit-orbit.github.io/p/%DA%86%D8%B1%D8%A7-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D8%B1%D9%88-%D8%AF%D9%88%D8%B3%D8%AA-%D8%AF%D8%A7%D8%B1%D9%85/<img src="https://bit-orbit.github.io/images/post/ill.png" alt="Featured image of post چرا لینوکس رو دوست دارم؟" /><p>دوست داشتن لینوکس واقعا دلایل زیادی داره و احتمالا هر کسی به دلیل خاصی لینوکس رو دوست داره. +مثلا یکی ممکنه آزادی‌اش رو دوست داشته باشه یکی دیگه از پکیج منیجر علاقه رو به لینوکس پیدا کرده باشه و &hellip;</p> +<p>من ترمینال قدرتمند لینوکس رو دوست دارم، چیزی که هیچوقت توی ویندوز تجربه نکرده بودم. +یکی زیبایی های ترمینال برای من ترکیب ریزالت برنامه‌های مختلف با یکدیگر و بدست اوردن نتیجه جدیده</p> +<p>مثلا بابام برای چندین پست فرستاد که هر پست شامل چهار یا پنج لینکه که من باید همه‌ش رو دانلود کنم، درحالت عادی اگر روی ویندوز بودم خب باید هر لینک رو کپی می‌کردم و بعد وارد دانلود منیجر می‌کردم برای دانلود. -ولی خب ما مجهزیم به قدرت ترمینال لینوکس :)</p> -<p><img src="https://bit-orbit.github.io/images/post/tfiles.jpg" - - - - loading="lazy" - - alt="telegram-post-contain-links" - - -></p> -<p>خب من کاری که می‌کنم اینه که متن پست ها رو کپی می‌کنم و توی یک فایل می‌ریزم -اینطوری هم متن های فارسی پست ها و هم لینک های فایل ها رو دارم</p> -<p><img src="https://bit-orbit.github.io/images/post/ffiles2.jpg" - - - - loading="lazy" - - alt="save-links-to-file" - - -></p> -<p>بعد با دستور +ولی خب ما مجهزیم به قدرت ترمینال لینوکس :)</p> +<p><img src="https://bit-orbit.github.io/images/post/tfiles.jpg" +loading="lazy" +alt="telegram-post-contain-links" +></p> +<p>خب من کاری که می‌کنم اینه که متن پست ها رو کپی می‌کنم و توی یک فایل می‌ریزم +اینطوری هم متن های فارسی پست ها و هم لینک های فایل ها رو دارم</p> +<p><img src="https://bit-orbit.github.io/images/post/ffiles2.jpg" +loading="lazy" +alt="save-links-to-file" +></p> +<p>بعد با دستور grep با یک پترن ساده regex همه لینک ها رو از متن های فارسی جدا می‌کنم و داخل یک فایل دیگه می‌ریزم. این پترن به این شکل هست که می‌گه هر خطی که اولش http -باشه رو پیدا کن.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">cat dl.txt <span class="p">|</span> egrep <span class="s1">&#39;^http&#39;</span> &gt; dl.lst -</span></span></code></pre></td></tr></table> -</div> -</div><p><img src="https://bit-orbit.github.io/images/post/tfiles3.jpg" - - - - loading="lazy" - - alt="save-links-to-file" - - -></p> -<p>و تمام، همه لینک ها رو یکجا آماده دارم، حالا کافیه با یک دستور همه فایل -ها رو دانلود کنم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">wget -c -i dl.lst -</span></span></code></pre></td></tr></table> -</div> -</div><p>خب بعد از دانلود شدن فایل ها، یک مشکلی که دارم این هست که هر پست شامل تمامی درس های یکی از فصل هایی هست +باشه رو پیدا کن.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">cat dl.txt <span class="p">|</span> egrep <span class="s1">&#39;^http&#39;</span> &gt; dl.lst +</span></span></code></pre></td></tr></table> +</div> +</div><p><img src="https://bit-orbit.github.io/images/post/tfiles3.jpg" +loading="lazy" +alt="save-links-to-file" +></p> +<p>و تمام، همه لینک ها رو یکجا آماده دارم، حالا کافیه با یک دستور همه فایل +ها رو دانلود کنم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">wget -c -i dl.lst +</span></span></code></pre></td></tr></table> +</div> +</div><p>خب بعد از دانلود شدن فایل ها، یک مشکلی که دارم این هست که هر پست شامل تمامی درس های یکی از فصل هایی هست که بابام می‌بینه. من باید فایل ها رو براساس فصل هاشون داخل دایرکتوری های مشخص خودش قرار بدم. اینم یک راهکار خیلی ساده داره. اسم فایل ها به این شکل هست که فصل رو داخلش نوشته -<code>Option402-J04-01.mp4</code> -کافیه با یه وایلد کارت هر فصل رو جدا کنم و داخل دایرکتوری خودش بریزم</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span><span class="lnt">3 -</span><span class="lnt">4 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mv Option402-J04* j04 -</span></span><span class="line"><span class="cl">mv Option402-J05* j05 -</span></span><span class="line"><span class="cl">mv Option402-J06* j06 -</span></span><span class="line"><span class="cl">mv Option402-J07* j07 -</span></span></code></pre></td></tr></table> -</div> -</div><p>این یک مثال ساده‌ای بود که می‌تونستم بزنم برای -توضیح اینکه چرا لینوکس برام جذاب تره و کارم رو ساده تر می‌کنه.</p> - - - - ارتباط غیر متمرکز و در لحظه با پروتکل ماتریکس - https://bit-orbit.github.io/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/ - Sat, 01 Oct 2022 01:46:23 +0330 - - https://bit-orbit.github.io/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/ - <img src="https://bit-orbit.github.io/images/post/matrix.jpg" alt="Featured image of post ارتباط غیر متمرکز و در لحظه با پروتکل ماتریکس" /><p>ماتریکس یک پروتکل آزاد است! به این معنی که شما میتوانید از این پروتکل برای +<code>Option402-J04-01.mp4</code> +کافیه با یه وایلد کارت هر فصل رو جدا کنم و داخل دایرکتوری خودش بریزم</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mv Option402-J04* j04 +</span></span><span class="line"><span class="cl">mv Option402-J05* j05 +</span></span><span class="line"><span class="cl">mv Option402-J06* j06 +</span></span><span class="line"><span class="cl">mv Option402-J07* j07 +</span></span></code></pre></td></tr></table> +</div> +</div><p>این یک مثال ساده‌ای بود که می‌تونستم بزنم برای +توضیح اینکه چرا لینوکس برام جذاب تره و کارم رو ساده تر می‌کنه.</p>ارتباط غیر متمرکز و در لحظه با پروتکل ماتریکسhttps://bit-orbit.github.io/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/Sat, 01 Oct 2022 01:46:23 +0330https://bit-orbit.github.io/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/<img src="https://bit-orbit.github.io/images/post/matrix.jpg" alt="Featured image of post ارتباط غیر متمرکز و در لحظه با پروتکل ماتریکس" /><p>ماتریکس یک پروتکل آزاد است! به این معنی که شما میتوانید از این پروتکل برای ارتباطات تحت شبکه مانند پیامرسان، اینترنت چیز ها (IoT) و هر چیز دیگری @@ -982,76 +836,58 @@ http های این پروتکل، رمزنگاری سر تا سر (E2E) است، این ویژگی باعث میشود حتی سرور های ماتریکس که داده های ما را -منتقل میکنند هم توانایی دسترسی به داده ها را نداشته باشند.</p> -<h3 id="پیام-رسان-ماتریکس">پیام رسان ماتریکس</h3> -<p>یکی از اصلی ترین استفاده های ماتریکس، پیامرسان است. +منتقل میکنند هم توانایی دسترسی به داده ها را نداشته باشند.</p> +<h3 id="پیام-رسان-ماتریکس">پیام رسان ماتریکس +</h3><p>یکی از اصلی ترین استفاده های ماتریکس، پیامرسان است. این پیامرسان به صورت غیر متمرکز عمل میکند. با این روش سانسور/فیلتر شدن سرور هایی که پیام ها را ذخیره و منتقل میکنند غیر ممکن میشود! چرا که این سرور ها قابل تغییر هستند و هر زمان که یکی از این سرور ها سانسور شود، شما همچنان میتوانید با سرور دیگری مجدد اکانت بسازید و در ارتباط بمانید. -و یا حتی از سرور خودتان استفاده کنید!</p> -<h3 id="ماتریکس-چگونه-کار-میکند">ماتریکس چگونه کار میکند؟</h3> -<p>هر سرور در ماتریکس -<em>HomeServer</em> +و یا حتی از سرور خودتان استفاده کنید!</p> +<h3 id="ماتریکس-چگونه-کار-میکند">ماتریکس چگونه کار میکند؟ +</h3><p>هر سرور در ماتریکس +<em>HomeServer</em> نامیده میشود، شما به عنوان -<em>Client</em> +<em>Client</em> انتخاب میکنید از هر HomeServer -که میخواهید استفاده کنید.</p> -<p>HomeServer +که میخواهید استفاده کنید.</p> +<p>HomeServer ها میتوانند سرور های عمومی مثل سروری که خود -<a class="link" href="matrix.org" ><strong>ماتریکس</strong></a> +<a class="link" href="matrix.org" ><strong>ماتریکس</strong></a> راه اندازی کرده است باشد و یا میتواند سرور های -<strong>شخصی خودتان</strong> -باشد.</p> -<p><a class="link" href="https://bit-orbit.github.io/images/post/page2-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page2-768x768.png" - - - - loading="lazy" - - alt="matrix-homeserver" - - -></a></p> -<p>زمانی که شما از یک +<strong>شخصی خودتان</strong> +باشد.</p> +<p><a class="link" href="https://bit-orbit.github.io/images/post/page2-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page2-768x768.png" +loading="lazy" +alt="matrix-homeserver" +></a></p> +<p>زمانی که شما از یک HomeServer استفاده میکنید، این به آن معنی است که کلاینت شما به اکانتتان در آن HomeServer -متصل میشود.</p> -<p><a class="link" href="https://bit-orbit.github.io/images/post/page3-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page3-768x768.png" - - - - loading="lazy" - - alt="matrix-homeserver" - - -></a></p> -<p>زمانی که شما پیامی ارسال میکنید، پیامتان به +متصل میشود.</p> +<p><a class="link" href="https://bit-orbit.github.io/images/post/page3-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page3-768x768.png" +loading="lazy" +alt="matrix-homeserver" +></a></p> +<p>زمانی که شما پیامی ارسال میکنید، پیامتان به HomeServer شما ارسال میشود، HomeServer -بعد از دریافت پیام از شما، آن را به کاربران مشترک در آن روم ارسال میکند.</p> -<blockquote> -<p>در ماتریکس هر نوع چت(شخصی و یا گروه) را +بعد از دریافت پیام از شما، آن را به کاربران مشترک در آن روم ارسال میکند.</p> +<blockquote> +<p>در ماتریکس هر نوع چت(شخصی و یا گروه) را room -مینامند</p> -</blockquote> -<p><a class="link" href="https://bit-orbit.github.io/images/post/page4-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page4-768x768.png" - - - - loading="lazy" - - alt="matrix-homeserver" - - -></a></p> -<p>در واقع زمانی که شما پیامی ارسال میکنید +مینامند</p> +</blockquote> +<p><a class="link" href="https://bit-orbit.github.io/images/post/page4-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page4-768x768.png" +loading="lazy" +alt="matrix-homeserver" +></a></p> +<p>در واقع زمانی که شما پیامی ارسال میکنید HomeServer پیام را برای کاربران ارسال میکند. این کاربران ممکن است کاربران همان HomeServer @@ -1065,47 +901,41 @@ Homeserver HomerServer های دیگر ارسال خواهد کرد. و آن HomeServer -پیام را دریافت و به کاربران مربوطه ارسال خواهد کرد.</p> -<p><a class="link" href="https://bit-orbit.github.io/images/post/page6-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page6-768x768.png" - - - - loading="lazy" - - alt="matrix-homeserver" - - -></a></p> -<blockquote> -<p>زمانی که شما پیامی را برای کاربر +پیام را دریافت و به کاربران مربوطه ارسال خواهد کرد.</p> +<p><a class="link" href="https://bit-orbit.github.io/images/post/page6-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page6-768x768.png" +loading="lazy" +alt="matrix-homeserver" +></a></p> +<blockquote> +<p>زمانی که شما پیامی را برای کاربر HomeServer دیگری ارسال میکنید، پیام شما تنها در HomeServer خودتان ذخیره نخواهد شد. بلکه در HomeServer -کاربری/کاربرانی که پیام را به آن ارسال کرده اید هم ذخیره میشود.</p> -</blockquote> -<h3 id="اصطلاحات-در-ماتریکس">اصطلاحات در ماتریکس</h3> -<p>در ماتریکس چند اصطلاح وجود دارد که آشنایی با آنها به درک بهتر این پروتکل کمک میکند.</p> -<ul> -<li> -<p>HomeServer: +کاربری/کاربرانی که پیام را به آن ارسال کرده اید هم ذخیره میشود.</p> +</blockquote> +<h3 id="اصطلاحات-در-ماتریکس">اصطلاحات در ماتریکس +</h3><p>در ماتریکس چند اصطلاح وجود دارد که آشنایی با آنها به درک بهتر این پروتکل کمک میکند.</p> +<ul> +<li> +<p>HomeServer: سروری که شما در آن اکانت خود را میسازید. این سرور پیام های شما را ذخیره -و ارسال میکند.</p> -</li> -<li> -<p>Client: +و ارسال میکند.</p> +</li> +<li> +<p>Client: برای اینکه کاربران بتوانند از ماتریکس استفاده کنند، باید از ابزاری که از این -پروتکل بهره میبرد استفاده کنند. به اینگونه از ابزار ها کلاینت گفته میشود.</p> -</li> -<li> -<p>Event: +پروتکل بهره میبرد استفاده کنند. به اینگونه از ابزار ها کلاینت گفته میشود.</p> +</li> +<li> +<p>Event: هر نوع داده ای که توسط ماتریکس ارسال شود -<em>event</em> -نامیده میشود. برای مثال ممکن است شما پیام ارسال کنید و یا به یک پیام واکنش نشان دهید.</p> -</li> -<li> -<p>Room: +<em>event</em> +نامیده میشود. برای مثال ممکن است شما پیام ارسال کنید و یا به یک پیام واکنش نشان دهید.</p> +</li> +<li> +<p>Room: قسمتی است که کاربر با آن event ها را دریافت و ارسال میکند. @@ -1116,10 +946,10 @@ room room میتوانند event -ها را دریافت کنند.</p> -</li> -<li> -<p>Space: +ها را دریافت کنند.</p> +</li> +<li> +<p>Space: Space نوعی خاصی از room @@ -1127,105 +957,96 @@ room room ها است. space -میتواند هم شامل گروه و هم کاربران عادی شود.</p> -</li> -<li> -<p>Bridge: +میتواند هم شامل گروه و هم کاربران عادی شود.</p> +</li> +<li> +<p>Bridge: پل یا Bridge به راهکاری گفته میشود که شما میتوانید با استفاده از آن بین ماتریکس و پیامرسان های دیگر چت کنید. برای مثال شما با استفاده از Brdige تلگرام -میتوانید با ماتریکس به کاربران تلگرام پیام ارسال و دریافت کنید.</p> -</li> -</ul> -<h3 id="چگونه-از-ماتریکس-استفاده-کنیم">چگونه از ماتریکس استفاده کنیم؟</h3> -<p>برای استفاده از ماتریکس، شما کافیست یکی از کلاینت های آن را نصب و به یک +میتوانید با ماتریکس به کاربران تلگرام پیام ارسال و دریافت کنید.</p> +</li> +</ul> +<h3 id="چگونه-از-ماتریکس-استفاده-کنیم">چگونه از ماتریکس استفاده کنیم؟ +</h3><p>برای استفاده از ماتریکس، شما کافیست یکی از کلاینت های آن را نصب و به یک HomeServer -متصل شوید.</p> -<p>یکی از محبوب ترین کلاینت ها، کلاینت -<a class="link" href="https://element.io/" target="_blank" rel="noopener" - >Element</a> +متصل شوید.</p> +<p>یکی از محبوب ترین کلاینت ها، کلاینت +<a class="link" href="https://element.io/" target="_blank" rel="noopener" +>Element</a> است، که شامل نسخه -<a class="link" href="https://play.google.com/store/apps/details?id=im.vector.app" target="_blank" rel="noopener" - >Android</a>، -<a class="link" href="https://apps.apple.com/app/vector/id1083446067" target="_blank" rel="noopener" - >IOS</a>، -<a class="link" href="https://element.io/get-started#downloads" target="_blank" rel="noopener" - >Windows, Linux، Mac</a> +<a class="link" href="https://play.google.com/store/apps/details?id=im.vector.app" target="_blank" rel="noopener" +>Android</a>، +<a class="link" href="https://apps.apple.com/app/vector/id1083446067" target="_blank" rel="noopener" +>IOS</a>، +<a class="link" href="https://element.io/get-started#downloads" target="_blank" rel="noopener" +>Windows, Linux، Mac</a> و البته -<a class="link" href="https://app.element.io/" target="_blank" rel="noopener" - >نسخه تحت وب میشود</a>.</p> -<p>استفاده از المنت مانند هر پیامرسان دیگری ساده است، اما اگر نیاز به کمک دارید -<a class="link" href="https://static.element.io/pdfs/element-user-guide.pdf" target="_blank" rel="noopener" - >این لینک</a> -میتواند کمکتان کند.</p> -<h3 id="چطور-از-سرور-شخصی-خودمان-استفاده-کنیم">چطور از سرور شخصی خودمان استفاده کنیم؟</h3> -<p>شما مجبور نیستید سرویس ماتریکس را روی سرور شخصی خودتان اجرا کنید مگر اینکه:</p> -<ul> -<li>سرور های عمومی ماتریکس سانسور و از دسترس خارج شده باشند</li> -<li>و یا شاید نگران دیتایی هستید که روی سرور های -عمومی ماتریکس از طرف شما ذخیره میشود!(گرچه پیام ها تماما رمزنگاری سر تا سر میشود)</li> -<li>و یا حتی شاید میخواهید پیام رسان داخلی شرکت/خانه خودتان را داشته باشید</li> -<li>و یا البته ممکن است بخواهید +<a class="link" href="https://app.element.io/" target="_blank" rel="noopener" +>نسخه تحت وب میشود</a>.</p> +<p>استفاده از المنت مانند هر پیامرسان دیگری ساده است، اما اگر نیاز به کمک دارید +<a class="link" href="https://static.element.io/pdfs/element-user-guide.pdf" target="_blank" rel="noopener" +>این لینک</a> +میتواند کمکتان کند.</p> +<h3 id="چطور-از-سرور-شخصی-خودمان-استفاده-کنیم">چطور از سرور شخصی خودمان استفاده کنیم؟ +</h3><p>شما مجبور نیستید سرویس ماتریکس را روی سرور شخصی خودتان اجرا کنید مگر اینکه:</p> +<ul> +<li>سرور های عمومی ماتریکس سانسور و از دسترس خارج شده باشند</li> +<li>و یا شاید نگران دیتایی هستید که روی سرور های +عمومی ماتریکس از طرف شما ذخیره میشود!(گرچه پیام ها تماما رمزنگاری سر تا سر میشود)</li> +<li>و یا حتی شاید میخواهید پیام رسان داخلی شرکت/خانه خودتان را داشته باشید</li> +<li>و یا البته ممکن است بخواهید Bridge -بسازید.</li> -</ul> -<p>نسخه سرور ماتریکس -<a class="link" href="https://github.com/matrix-org/synapse" target="_blank" rel="noopener" - ><em>Synapse</em></a> +بسازید.</li> +</ul> +<p>نسخه سرور ماتریکس +<a class="link" href="https://github.com/matrix-org/synapse" target="_blank" rel="noopener" +><em>Synapse</em></a> نام دارد، شما میتوانید با استفاده از -<a class="link" href="https://hub.docker.com/r/matrixdotorg/synapse/" target="_blank" rel="noopener" - >ایمیج داکر رسمی ماتریکس</a>، -سرور شخصی خودتان را اجرا کنید.</p> -<h3 id="نتیجه-گیری">نتیجه گیری</h3> -<p>هدف من از نوشتن این پست در این روز های تلخ این بود که ابزاری را معرفی کنم +<a class="link" href="https://hub.docker.com/r/matrixdotorg/synapse/" target="_blank" rel="noopener" +>ایمیج داکر رسمی ماتریکس</a>، +سرور شخصی خودتان را اجرا کنید.</p> +<h3 id="نتیجه-گیری">نتیجه گیری +</h3><p>هدف من از نوشتن این پست در این روز های تلخ این بود که ابزاری را معرفی کنم تا ما با وجود قطعی های متعدد اینترنت و قطع دسترسی ما از سرور های خارجی، کماکان -در ارتباط نگهدارد و صدایمان را&hellip;</p> -<p>اگر روزی دسترسی ما از اینترنت قطع شد، کاری که لازم است برای در ارتباط ماندن انجام بدهیم -این است که یک سرویس ماتریکس داخلی راه اندازی کنیم.</p> -<hr> - - - - در لینوکس چیست؟ TTY - https://bit-orbit.github.io/p/%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA-tty/ - Mon, 31 Jan 2022 19:57:05 +0330 - - https://bit-orbit.github.io/p/%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA-tty/ - <img src="https://bit-orbit.github.io/images/post/tty.jpg" alt="Featured image of post در لینوکس چیست؟ TTY " /><div dir='rtl' style='font-size:x-large'> -<p>شما باید درباره اصطلاح +در ارتباط نگهدارد و صدایمان را&hellip;</p> +<p>اگر روزی دسترسی ما از اینترنت قطع شد، کاری که لازم است برای در ارتباط ماندن انجام بدهیم +این است که یک سرویس ماتریکس داخلی راه اندازی کنیم.</p> +<hr> در لینوکس چیست؟ TTYhttps://bit-orbit.github.io/p/%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA-tty/Mon, 31 Jan 2022 19:57:05 +0330https://bit-orbit.github.io/p/%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA-tty/<img src="https://bit-orbit.github.io/images/post/tty.jpg" alt="Featured image of post در لینوکس چیست؟ TTY " /><div dir='rtl' style='font-size:x-large'> +<p>شما باید درباره اصطلاح tty زمانی که به لینوکس و یونیکس آمد، شنیده باشید. اما tty -چیست؟</p> -<p>آیا برای شما به عنوان یک کاربر دستکتاپ مفید است؟</p> -<p>به آن نیاز دارید؟ می‌توانید با آن چه کار کنید؟</p> -<p>اجازه دهید هر چیز ضروری برای آشنا کردن شما با اصطلاح +چیست؟</p> +<p>آیا برای شما به عنوان یک کاربر دستکتاپ مفید است؟</p> +<p>به آن نیاز دارید؟ می‌توانید با آن چه کار کنید؟</p> +<p>اجازه دهید هر چیز ضروری برای آشنا کردن شما با اصطلاح tty -را در این پست برسی کنیم.</p> -<p>به یاد داشته باشید که پاسخ قطعی برای این سوال وجود ندارد، +را در این پست برسی کنیم.</p> +<p>به یاد داشته باشید که پاسخ قطعی برای این سوال وجود ندارد، اما به نحوه تعامل دستگاه های input/output(ورودی/خروجی) -در گذشته ربط دارد.</p> -<p>برای اینکه تصویری شفاف از آن داشته باشید باید کمی از تاریخ‌ش را بدانید.</p> -<h3 id="تاریخ-پشت-اصطلاح-tty">تاریخ پشت اصطلاح tty</h3> -<p>همه چیز از یک -<em>teleprinter</em> -در سال 1830 شروع شد.</p> -<p>teleprinter +در گذشته ربط دارد.</p> +<p>برای اینکه تصویری شفاف از آن داشته باشید باید کمی از تاریخ‌ش را بدانید.</p> +<h3 id="تاریخ-پشت-اصطلاح-tty">تاریخ پشت اصطلاح tty +</h3><p>همه چیز از یک +<em>teleprinter</em> +در سال 1830 شروع شد.</p> +<p>teleprinter به شما اجازه می‌داد که از طریق سیم پیام ارسال و دریافت کنید. teleprinter جایگزینی برای ارطبات مورس کد بود در آن دو اپراتور برای ارطبات با یکدیگر مود نیاز بود. اما در teleprinter -فقط به یک اپراتور برای ارسال پیام نیاز داشت. درحالی که +فقط به یک اپراتور برای ارسال پیام نیاز داشت. درحالی که teleprinter یک صفحه کلید مدرن نداشت، بعد ها سیستم آن توسط Donald Murray به یک صفحه کلید -<em>teletypewriter</em> -تکامل یافت.</p> -<p>Murray +<em>teletypewriter</em> +تکامل یافت.</p> +<p>Murray زحمت اپراتور ها را برای ارسال و پیام را کاهش داد و این امکان را برای teletypeprinter @@ -1235,16 +1056,11 @@ teletypewriter tty نام کوتاه شده teletypewrite -است.</p> -<p><img src="https://bit-orbit.github.io/images/post/teletypewrite.jpg" - - - - loading="lazy" - - -></p> -<p>تفاوت بین +است.</p> +<p><img src="https://bit-orbit.github.io/images/post/teletypewrite.jpg" +loading="lazy" +></p> +<p>تفاوت بین teletypewrite و typewriter @@ -1255,89 +1071,77 @@ teletypewriter ارطبات سریع تری را تا اکنون برای انسال بدون استفاده از کامپیوتر مقدور کرده است. و اینجا جایی است که tty -بوجود آمد.</p> -<h3 id="مفهوم-مدرن">مفهوم مدرن</h3> -<p>اکنون شما باید متعجب شده باشید که چطور +بوجود آمد.</p> +<h3 id="مفهوم-مدرن">مفهوم مدرن +</h3><p>اکنون شما باید متعجب شده باشید که چطور tty -به لینوکس و کامپیوتر مدرن آمده است.</p> -<p>بسیار خب، برای شروع، زمانی که +به لینوکس و کامپیوتر مدرن آمده است.</p> +<p>بسیار خب، برای شروع، زمانی که teletypewriter به بازار رسید، چند سال بعد ترانزیستور های نیمه هادی(نیمه رسانا) توسعه داده شد که به میکروپروسسور(micro proccessor) -هایی تبدیل شدند که کامپیوتر را ممکن می‌کرند.</p> -<p>کامپیوتر های اولیه مفهومی به اسم صفحه کلید نداشتند. -<a class="link" href="https://en.wikipedia.org/wiki/Punched_card" target="_blank" rel="noopener" - >کارت های پانج</a> -روش ورودی دادن به کامپیوتر ها بود</p> -<p><img src="https://bit-orbit.github.io/images/post/punch-card.jpg" - - - - loading="lazy" - - alt="card-punch" - - -></p> -<p>درحالی که کامپیوتر ها توسعه پیدا می‌کردند، بالاخره کارت های پانچ با +هایی تبدیل شدند که کامپیوتر را ممکن می‌کرند.</p> +<p>کامپیوتر های اولیه مفهومی به اسم صفحه کلید نداشتند. +<a class="link" href="https://en.wikipedia.org/wiki/Punched_card" target="_blank" rel="noopener" +>کارت های پانج</a> +روش ورودی دادن به کامپیوتر ها بود</p> +<p><img src="https://bit-orbit.github.io/images/post/punch-card.jpg" +loading="lazy" +alt="card-punch" +></p> +<p>درحالی که کامپیوتر ها توسعه پیدا می‌کردند، بالاخره کارت های پانچ با teletypewriter -به عنوان دستگاه <em><strong><u>ورودی/خروجی</u></strong></em> مناسب جایگزین شد.    </p> -<p><img src="https://bit-orbit.github.io/images/post/pc-tty.jpg" - - - - loading="lazy" - - alt="LGP-30 computer in 1956 with a TTY attached to it" - - -></p> -<p>با توسعه تکنولوژی +به عنوان دستگاه <em><strong><u>ورودی/خروجی</u></strong></em> مناسب جایگزین شد.    </p> +<p><img src="https://bit-orbit.github.io/images/post/pc-tty.jpg" +loading="lazy" +alt="LGP-30 computer in 1956 with a TTY attached to it" +></p> +<p>با توسعه تکنولوژی teletypewriter ها با استفاده از الکترونیک مجازی شدند. پس شما به یک tty فیزیکی، مکانیکی نیاز پیدا نمی‌کنید، بلکه به یک tty -مجازی، الکترونیکی نیاز دارید.</p> -<p>اوایل کامپیوتر ها صفحه نمایش هم نداشتند. چیز ها بجای نمایش داده شدن بروی صفحه نمایش +مجازی، الکترونیکی نیاز دارید.</p> +<p>اوایل کامپیوتر ها صفحه نمایش هم نداشتند. چیز ها بجای نمایش داده شدن بروی صفحه نمایش (که وجود نداشت) به روی کاغذ چاپ می‌شدند. به همین دلیل شما بجای دیدن اصطلاح -<code>display</code> +<code>display</code> اصطلاح -<code>print</code> +<code>print</code> را می‌بینید. ویدیو ها به عنوان تکنولوژی پیشرفته به ترمینال(پایانه) ها اضافه شد. به عبارت دیگر شما باید درباره ترمینال های ویدیویی شنیده باشید. یا شما می‌توانید -آن ها را ترمینال های فیزیکی بنامید.</p> -<p>سپس اینها به ترمینال های نرم افزاری شبیه سازی شده تکامل پیدا کردند که با قابلیت ها و +آن ها را ترمینال های فیزیکی بنامید.</p> +<p>سپس اینها به ترمینال های نرم افزاری شبیه سازی شده تکامل پیدا کردند که با قابلیت ها و ویژگی های تسوسعه یافته‌ای همرا بود. این چیزی است که شما آن را terminal emulator -می‌نامید.</p> -<p>برای نمونه ترمینال -<a class="link" href="https://en.wikipedia.org/wiki/GNOME_Terminal" target="_blank" rel="noopener" - >گنوم -(Gnome)</a> +می‌نامید.</p> +<p>برای نمونه ترمینال +<a class="link" href="https://en.wikipedia.org/wiki/GNOME_Terminal" target="_blank" rel="noopener" +>گنوم +(Gnome)</a> یا -<a class="link" href="https://konsole.kde.org/" target="_blank" rel="noopener" - >کنسول -(Konsole)</a> -<a class="link" href="https://itsfoss.com/linux-terminal-emulators/" target="_blank" rel="noopener" - >چنتا از بهترین ترمینال هایی هستند که می‌توانید برای لینوکس پیدا کنید.</a></p> -<h3 id="بسیارخب-tty-در-لینوکس-چیست">بسیارخب tty در لینوکس چیست؟</h3> -<p>زمانی که +<a class="link" href="https://konsole.kde.org/" target="_blank" rel="noopener" +>کنسول +(Konsole)</a> +<a class="link" href="https://itsfoss.com/linux-terminal-emulators/" target="_blank" rel="noopener" +>چنتا از بهترین ترمینال هایی هستند که می‌توانید برای لینوکس پیدا کنید.</a></p> +<h3 id="بسیارخب-tty-در-لینوکس-چیست">بسیارخب tty در لینوکس چیست؟ +</h3><p>زمانی که tty به لینوکس و یونیکس آمد، یک دستگاه مستقل در یونیکس و لینوکس بود گاهی tty به یک دستگاه ورودی فیزیکی مانند serial port(درگاه سریال) اشاره می‌کرد، و گاهی به ترمینال های مجازی اشاره می‌کرد که به کاربران اجازه تعامل با -سیستم را می‌داد.</p> -<p>tty +سیستم را می‌داد.</p> +<p>tty یک زیر سیستم در لینوکس و یونیکس است که مدریت فرایند، ویرایش خط و مدیریت نشست ها را در سطح کرنل از طریق درایور های tty -ممکن می‌کند.</p> -<p>از دیدگاه برنامه نویسی شما باید در این موضوع عمیق تر شوید. اما محدوده این +ممکن می‌کند.</p> +<p>از دیدگاه برنامه نویسی شما باید در این موضوع عمیق تر شوید. اما محدوده این پست را در نظر بگیرید، این مقاله باید یک توضیح ساده برای درک بهتر باشد. در حقیقت، هر گاه یک ترمینال را باز می‌کنیم یا هر نوع shell @@ -1346,136 +1150,110 @@ shell با tty مجازی که -<em>PTY</em> +<em>PTY</em> یا -<em>pseudo-tty</em> -هم شناخته می‌شوند، تعامل خواهد داشت.</p> -<p>شما می‌توانید +<em>pseudo-tty</em> +هم شناخته می‌شوند، تعامل خواهد داشت.</p> +<p>شما می‌توانید tty را در ترمینال تایپ کنید و pty -مرتبط را پیدا کنید.</p> -<h3 id="چگونه-به-tty-در-لینوکس-دسترسی-داشته-باشیم">چگونه به tty در لینوکس دسترسی داشته باشیم؟</h3> -<p><img src="https://bit-orbit.github.io/images/post/ubuntu-tty.png" - - - - loading="lazy" - - alt="tty-in-ubuntu" - - -></p> -<p>دسترسی به +مرتبط را پیدا کنید.</p> +<h3 id="چگونه-به-tty-در-لینوکس-دسترسی-داشته-باشیم">چگونه به tty در لینوکس دسترسی داشته باشیم؟ +</h3><p><img src="https://bit-orbit.github.io/images/post/ubuntu-tty.png" +loading="lazy" +alt="tty-in-ubuntu" +></p> +<p>دسترسی به tty در لینوکس ساده است. در حقیت زمانی که هیچ سرنخی از اینکه tty چیست نداشتم، به طور اتفاقی به آن دسترسی پیدا کردم و از اینکه چطوری باید -از آن خارج شوم وحشت زده شدم!</p> -<p>شما می‌توانید با کلید های میانبر زیر در اکثر توزیع های لینوکس به صفحه +از آن خارج شوم وحشت زده شدم!</p> +<p>شما می‌توانید با کلید های میانبر زیر در اکثر توزیع های لینوکس به صفحه tty -دسترسی پیدا کنید.</p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F1</code> – <strong>Lockscreen</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F2</code> – <strong>Desktop Environment</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F3</code> – <strong>TTY3</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F4</code> – <strong>TTY4</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F5</code> – <strong>TT5</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F6</code> – <strong>TTY6</strong></p> -<p>شما می‌توانید حد اکثر به -<u>6</u> +دسترسی پیدا کنید.</p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F1</code> – <strong>Lockscreen</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F2</code> – <strong>Desktop Environment</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F3</code> – <strong>TTY3</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F4</code> – <strong>TTY4</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F5</code> – <strong>TT5</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F6</code> – <strong>TTY6</strong></p> +<p>شما می‌توانید حد اکثر به +<u>6</u> tty دسترسی داشته باشید، با این حال دو تا از اولین کلید های میانبر به صفحه قفل -و محیط دسکتاپ اشاره دارد.</p> -<p><img src="https://bit-orbit.github.io/images/post/ubuntu-tty4.png" - - - - loading="lazy" - - alt="cmd-with-tty" - - -></p> -<p>بنابر این، با باقی کلید های میانبر شما به محیط +و محیط دسکتاپ اشاره دارد.</p> +<p><img src="https://bit-orbit.github.io/images/post/ubuntu-tty4.png" +loading="lazy" +alt="cmd-with-tty" +></p> +<p>بنابر این، با باقی کلید های میانبر شما به محیط command-line -دسترسی می‌گیرید.</p> -<h3 id="چه-زمانی-شما-از-tty-در-لینوکس-استفاده-خواهید-کرد">چه زمانی شما از tty در لینوکس استفاده خواهید کرد؟</h3> -<p>tty -فقط یک گنج تکنیکی نیست. حتی برای کاربرانی مثل من که توسعه دهنده هم نیستند مفید است.</p> -<p>زمانی که محیط گرافیکی فریز می‌شود باید به کار بیاید. در بعضی از مواقع +دسترسی می‌گیرید.</p> +<h3 id="چه-زمانی-شما-از-tty-در-لینوکس-استفاده-خواهید-کرد">چه زمانی شما از tty در لینوکس استفاده خواهید کرد؟ +</h3><p>tty +فقط یک گنج تکنیکی نیست. حتی برای کاربرانی مثل من که توسعه دهنده هم نیستند مفید است.</p> +<p>زمانی که محیط گرافیکی فریز می‌شود باید به کار بیاید. در بعضی از مواقع نصب مجدد محیط گرافیکی با استفاده از tty -می‌تواند مشکل را حل کند.</p> -<p>یا شما می‌توانید +می‌تواند مشکل را حل کند.</p> +<p>یا شما می‌توانید tty را برای انجام کار هایی مثل آپدیت انتخاب کنید جایی که شما نمی‌خواهید مشکلات بصری فرایند -های شما را مختل کند.</p> -<p>بد ترین مورد سناریو، شما می‌تواند زمانی که محیط دستکتاپ جواب نمی‌دهد، برای ریبوت +های شما را مختل کند.</p> +<p>بد ترین مورد سناریو، شما می‌تواند زمانی که محیط دستکتاپ جواب نمی‌دهد، برای ریبوت به tty -مراجعه کنید.</p> -<p>بعضی از کاربران ترجیح می‌دهند که فایل های بزرگ را با +مراجعه کنید.</p> +<p>بعضی از کاربران ترجیح می‌دهند که فایل های بزرگ را با tty -منتقل کنند(من از آنها نیستم)</p> -<h3 id="tty-به-عنوان-یک-دستور-در-لینوکس">tty به عنوان یک دستور در لینوکس</h3> -<p><img src="https://bit-orbit.github.io/images/post/tty-cmd.png" - - - - loading="lazy" - - alt="tty-cmd" - - -></p> -<p>همانطور که در صفحه راهنمای +منتقل کنند(من از آنها نیستم)</p> +<h3 id="tty-به-عنوان-یک-دستور-در-لینوکس">tty به عنوان یک دستور در لینوکس +</h3><p><img src="https://bit-orbit.github.io/images/post/tty-cmd.png" +loading="lazy" +alt="tty-cmd" +></p> +<p>همانطور که در صفحه راهنمای (man page) tty توضیح داده شده است، زمانی که شما tty -را در ترمینال تایپ کنید، نام فایل ترمینال که به وردی استاندارد متصل است را چاپ می‌کند.</p> -<p>به عبارت دیگر برای دانستن عدد +را در ترمینال تایپ کنید، نام فایل ترمینال که به وردی استاندارد متصل است را چاپ می‌کند.</p> +<p>به عبارت دیگر برای دانستن عدد tty که به آن متصل هستید، فقط tty را در ترمینال تایپ کنید. اگر چند کاربر از راه دور به سیستم لینوکس متصل هستند، می‌توانید برای برسی اینکه به چه متصل هستند از کامند -<code>who</code> -استفاده کنید.</p> -<h3 id="خارج-از-ترجمه">خارج از ترجمه</h3> -<p>متن ترجمه شده بود و خب من یک مترجم تخصصی نیستم، من یک برنامه نویسم که بلاگ نویسی +<code>who</code> +استفاده کنید.</p> +<h3 id="خارج-از-ترجمه">خارج از ترجمه +</h3><p>متن ترجمه شده بود و خب من یک مترجم تخصصی نیستم، من یک برنامه نویسم که بلاگ نویسی و ترجمه رو هم دوست دارم، سعی کردم به بهترین نحو متن را ترجمه کنم و در اختیار بقیه بذارم، اگر حس کردین جایی از متن مشکلی داره، خیلی خوشحال می‌شوم -که مشکلم رو بهم بیگید، این کمک بزرگیه.</p> -<p>متن اصلی رو می‌توانید از -<a class="link" href="https://itsfoss.com/what-is-tty-in-linux/" target="_blank" rel="noopener" - >این لینک</a> -بخوانید.</p> -</div> - - - اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش(عکس، استایل، جاوا اسکریپت) - https://bit-orbit.github.io/p/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4%D8%B9%DA%A9%D8%B3-%D8%A7%D8%B3%D8%AA%D8%A7%DB%8C%D9%84-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA/ - Mon, 17 Jan 2022 14:56:14 +0330 - - https://bit-orbit.github.io/p/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4%D8%B9%DA%A9%D8%B3-%D8%A7%D8%B3%D8%AA%D8%A7%DB%8C%D9%84-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA/ - <img src="https://bit-orbit.github.io/images/post/snp.jpg" alt="Featured image of post اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش(عکس، استایل، جاوا اسکریپت)" /><div dir='rtl' style='font-size:23px'> -<p>زمانی که مقاله یا پستی را می‌خوانم، گاهی احساس می‌کنم ممکنه یک مطلب را فراموش کنم. +که مشکلم رو بهم بیگید، این کمک بزرگیه.</p> +<p>متن اصلی رو می‌توانید از +<a class="link" href="https://itsfoss.com/what-is-tty-in-linux/" target="_blank" rel="noopener" +>این لینک</a> +بخوانید.</p> +</div>اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش(عکس، استایل، جاوا اسکریپت)https://bit-orbit.github.io/p/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4%D8%B9%DA%A9%D8%B3-%D8%A7%D8%B3%D8%AA%D8%A7%DB%8C%D9%84-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA/Mon, 17 Jan 2022 14:56:14 +0330https://bit-orbit.github.io/p/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4%D8%B9%DA%A9%D8%B3-%D8%A7%D8%B3%D8%AA%D8%A7%DB%8C%D9%84-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA/<img src="https://bit-orbit.github.io/images/post/snp.jpg" alt="Featured image of post اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش(عکس، استایل، جاوا اسکریپت)" /><div dir='rtl' style='font-size:23px'> +<p>زمانی که مقاله یا پستی را می‌خوانم، گاهی احساس می‌کنم ممکنه یک مطلب را فراموش کنم. مثلا اگه مقاله‌ای از ویرگول درباره یک دستور لینوکس بخوانم، برای اینکه مطلبش را فراموش نکنم باید هرزگاهی به پست سر بزنم و مطالب را مرور کنم. اما فکر کنید مطلب درباره برنامه‌ای باشد که می‌توان با استفاده از آن سانسور را دور زد، -ویرگول احتمالا آن مطلب را حذف می‌کند.</p> -<ul> -<li> -<p>چه راهی برای ذخیره پست پشنهاد می‌کنید که بعدا بتوان آن را بارها مرور کرد؟</p> -</li> -<li> -<p>اگر پست از سایت منبع حذف شود، و یا حتی خود سایت دیگر در دسترس نباشد، -باز هم پستی که ذخیره کرده‌اید در دسترس است؟</p> -</li> -</ul> -<p>در این پست با استفاده از ابزار +ویرگول احتمالا آن مطلب را حذف می‌کند.</p> +<ul> +<li> +<p>چه راهی برای ذخیره پست پشنهاد می‌کنید که بعدا بتوان آن را بارها مرور کرد؟</p> +</li> +<li> +<p>اگر پست از سایت منبع حذف شود، و یا حتی خود سایت دیگر در دسترس نباشد، +باز هم پستی که ذخیره کرده‌اید در دسترس است؟</p> +</li> +</ul> +<p>در این پست با استفاده از ابزار wget یک پست را با تمامی وابستگی هایش مانند عکس ها، فایل های js، @@ -1484,62 +1262,62 @@ css دانلود می‌کنیم و روی سیستم خودمان ذخیره می‌کنیم تا حتی اگر سایت در دسترس نباشد و یا پست -از منبع حذف شد، پست به صورت افلاین در دسترس بماند.</p> -<hr> -<h3 id="wget">wget</h3> -<p>می‌دونید که +از منبع حذف شد، پست به صورت افلاین در دسترس بماند.</p> +<hr> +<h3 id="wget">wget +</h3><p>می‌دونید که wget یک ابزار پیشرفته برای دانلود فایله، قابلیت های زیادی که داره باعث شده بعد از سالها که ابزار های پیشرفته دانلود هم نوشته شدن، همچنان wget استفاده بشه. این برنامه روی اکثر توزیع های لینوکس به صورت دیفالت نصبه پس بیایید بدون تلف کردن وقت -سوییچ های مهم برای میرور کردن یک صفحه سایت رو برسی کنیم.</p> -<p></br></br></p> -<p><strong>Ⅰ.</strong> <code>--adjust-extension</code>, <code>-E</code></p> -<p>شاید شما هم سایتی هایی را دیده باشید که -<em>url</em> +سوییچ های مهم برای میرور کردن یک صفحه سایت رو برسی کنیم.</p> +<p></br></br></p> +<p><strong>Ⅰ.</strong> <code>--adjust-extension</code>, <code>-E</code></p> +<p>شاید شما هم سایتی هایی را دیده باشید که +<em>url</em> صفحه هایشان با پسوند -<code>.asp</code> +<code>.asp</code> به پایان می‌رسند. برای مثال نگاهی به -<a class="link" href="https://www.w3schools.com/python/default.asp" target="_blank" rel="noopener" - >این آدرس</a> +<a class="link" href="https://www.w3schools.com/python/default.asp" target="_blank" rel="noopener" +>این آدرس</a> بیاندازید -<em><a class="link" href="https://www.w3schools.com/python/default.asp" target="_blank" rel="noopener" - >https://www.w3schools.com/python/default.asp</a></em> +<em><a class="link" href="https://www.w3schools.com/python/default.asp" target="_blank" rel="noopener" +>https://www.w3schools.com/python/default.asp</a></em> همانطور که می‌بینید با -<em>asp</em> +<em>asp</em> به پایان می‌رسد. زمانی که شما این صفحه را دانلود کنید، این صفحه بجای پسوند -<em>html.</em> +<em>html.</em> با پسوند -<em>asp.</em> -ذخیره خواهد شد.</p> -<blockquote> -<p>به همین دلیل ما از این سوییچ استفاده می‌کنیم تا صفحه ها را +<em>asp.</em> +ذخیره خواهد شد.</p> +<blockquote> +<p>به همین دلیل ما از این سوییچ استفاده می‌کنیم تا صفحه ها را با پسوند -<em>html.</em> -ذخیره کنیم.</p> -</blockquote> -<div dir='ltr'> -</br> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span><span class="lnt">3 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ https://example.com/some/where -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl"><span class="c1"># where.html</span> -</span></span></code></pre></td></tr></table> -</div> -</div></div> -<p></br></br></p> -<p><strong>Ⅱ.</strong> <code>--span-hosts</code>, <code>-H</code></p> -<p>اگر حتی فقط یک صفحه را میرور می‌کنیم، آن صفحه ممکن است به فایل های خارج از سایت +<em>html.</em> +ذخیره کنیم.</p> +</blockquote> +<div dir='ltr'> +</br> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ https://example.com/some/where +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="c1"># where.html</span> +</span></span></code></pre></td></tr></table> +</div> +</div></div> +<p></br></br></p> +<p><strong>Ⅱ.</strong> <code>--span-hosts</code>, <code>-H</code></p> +<p>اگر حتی فقط یک صفحه را میرور می‌کنیم، آن صفحه ممکن است به فایل های خارج از سایت که به روی یک CDN قرار گرفته اند @@ -1547,1320 +1325,1300 @@ CDN style sheet ها. از اینرو وقتی شما یک صفحه را میرور می‌کنید wget -فایل های خارج از سایت را دانلود نخواهد کرد.</p> -<blockquote> -<p>پوشش دادن فایل های خارج از سایت با استفاده از این سوییچ انجام داده می‌شود. +فایل های خارج از سایت را دانلود نخواهد کرد.</p> +<blockquote> +<p>پوشش دادن فایل های خارج از سایت با استفاده از این سوییچ انجام داده می‌شود. وقتی این سوییچ را روشن کنید wget همه لینک ها از جمله لینک هایی زیر دامنه را هم دانلود خواهد کرد، مگر اینکه عمق -پوشش دادن را محدود کنید.</p> -</blockquote> -<p></br></br></p> -<p><strong>Ⅲ.</strong> <code>--convert-links</code>, <code>-k</code></p> -<p>یک صفحه را که میرور کردیم با توجه به اینکه فایل های پیشیاز مثل عکس و استایل ها را +پوشش دادن را محدود کنید.</p> +</blockquote> +<p></br></br></p> +<p><strong>Ⅲ.</strong> <code>--convert-links</code>, <code>-k</code></p> +<p>یک صفحه را که میرور کردیم با توجه به اینکه فایل های پیشیاز مثل عکس و استایل ها را هم دانلود کردیم، وقتی فایل را با مرورگر باز کنیم همچنان صفحه html ما به فایل های داخل سایت منبع لینک شده است و فایل های پیشنازش را حتی با اینکه -روی سیستم داریم، باز هم از آدرس خارجی دریافت می‌کند و نمایش می‌دهد.</p> -<blockquote> -<p>برای اینکه یک صفحه فایل های پیشنیازش را از فایل هایی که در کنار صفحه اصلی دانلود +روی سیستم داریم، باز هم از آدرس خارجی دریافت می‌کند و نمایش می‌دهد.</p> +<blockquote> +<p>برای اینکه یک صفحه فایل های پیشنیازش را از فایل هایی که در کنار صفحه اصلی دانلود کرده است بگیرد، از این سوییچ استفاده می‌کنیم. این سوییچ تمامی لینک ها را به -لینک های داخلی تبدیل می‌کند و صفحه موقع لود شدن از فایل های داخلی استفاده می‌کند.</p> -</blockquote> -<p></br></br></p> -<p><strong>Ⅳ.</strong> <code>--page-requisites</code>, <code>-p</code></p> -<blockquote> -<p>این سوییچ باعث می‌شود که +لینک های داخلی تبدیل می‌کند و صفحه موقع لود شدن از فایل های داخلی استفاده می‌کند.</p> +</blockquote> +<p></br></br></p> +<p><strong>Ⅳ.</strong> <code>--page-requisites</code>, <code>-p</code></p> +<blockquote> +<p>این سوییچ باعث می‌شود که wget تمامی فایل های ضروری برای درست نمایش داده شدن html -را دانلود کند. این فایل ها شامل عکس ها، استایل ها و یا صدا ها می‌شود.</p> -</blockquote> -<p></br></br></p> -<p><strong>Ⅴ.</strong> <code>--no-directories</code>, <code>-nd</code></p> -<p>به صورت پیشفرض زمانی که صفحه‌ای با این ادرس را دانلود کنیم</p> -<p><code>https://example.com/some/where/page.html</code></p> -<p>برنامه +را دانلود کند. این فایل ها شامل عکس ها، استایل ها و یا صدا ها می‌شود.</p> +</blockquote> +<p></br></br></p> +<p><strong>Ⅴ.</strong> <code>--no-directories</code>, <code>-nd</code></p> +<p>به صورت پیشفرض زمانی که صفحه‌ای با این ادرس را دانلود کنیم</p> +<p><code>https://example.com/some/where/page.html</code></p> +<p>برنامه wget -این صفحه و فایل های مورد نیازش را به این صورت ذخیره خواهد کرد</p> -<p><code>some/where/page.html/.</code></p> -<p>اما با استفاده از سوییچ -<code>nd-</code> -آن صفحه و فایل های مورد نیازش فقط داخل یک دایرکتوری ذخیره خواهد شد. به این صورت</p> -<p><code>page.html/.</code></p> -<blockquote> -<p>با فعال کردن این سوییچ +این صفحه و فایل های مورد نیازش را به این صورت ذخیره خواهد کرد</p> +<p><code>some/where/page.html/.</code></p> +<p>اما با استفاده از سوییچ +<code>nd-</code> +آن صفحه و فایل های مورد نیازش فقط داخل یک دایرکتوری ذخیره خواهد شد. به این صورت</p> +<p><code>page.html/.</code></p> +<blockquote> +<p>با فعال کردن این سوییچ wget صفحه و فایل های پیشنیاز را داخل دایرکتوری فعلی ذخیره خواهد کرد. و اگر -نام یک فایل بیش از یکبار تکرار شود، به نام فایل پسوند اضافه خواهد شد.</p> -</blockquote> -<p></br></br></p> -<h3 id="مثال-کاربردی-و-خروجی">مثال کاربردی و خروجی</h3> -<ul> -<li>برای مثال من یک -<a class="link" href="https://vrgl.ir/c3fVa" target="_blank" rel="noopener" - >پست توی ویرگول</a> +نام یک فایل بیش از یکبار تکرار شود، به نام فایل پسوند اضافه خواهد شد.</p> +</blockquote> +<p></br></br></p> +<h3 id="مثال-کاربردی-و-خروجی">مثال کاربردی و خروجی +</h3><ul> +<li>برای مثال من یک +<a class="link" href="https://vrgl.ir/c3fVa" target="_blank" rel="noopener" +>پست توی ویرگول</a> که آموزش الگوریتم RSA -هست رو دانلود می‌کنم.</li> -</ul> -</br> -</div> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt"> 10 -</span><span class="lnt"> 11 -</span><span class="lnt"> 12 -</span><span class="lnt"> 13 -</span><span class="lnt"> 14 -</span><span class="lnt"> 15 -</span><span class="lnt"> 16 -</span><span class="lnt"> 17 -</span><span class="lnt"> 18 -</span><span class="lnt"> 19 -</span><span class="lnt"> 20 -</span><span class="lnt"> 21 -</span><span class="lnt"> 22 -</span><span class="lnt"> 23 -</span><span class="lnt"> 24 -</span><span class="lnt"> 25 -</span><span class="lnt"> 26 -</span><span class="lnt"> 27 -</span><span class="lnt"> 28 -</span><span class="lnt"> 29 -</span><span class="lnt"> 30 -</span><span class="lnt"> 31 -</span><span class="lnt"> 32 -</span><span class="lnt"> 33 -</span><span class="lnt"> 34 -</span><span class="lnt"> 35 -</span><span class="lnt"> 36 -</span><span class="lnt"> 37 -</span><span class="lnt"> 38 -</span><span class="lnt"> 39 -</span><span class="lnt"> 40 -</span><span class="lnt"> 41 -</span><span class="lnt"> 42 -</span><span class="lnt"> 43 -</span><span class="lnt"> 44 -</span><span class="lnt"> 45 -</span><span class="lnt"> 46 -</span><span class="lnt"> 47 -</span><span class="lnt"> 48 -</span><span class="lnt"> 49 -</span><span class="lnt"> 50 -</span><span class="lnt"> 51 -</span><span class="lnt"> 52 -</span><span class="lnt"> 53 -</span><span class="lnt"> 54 -</span><span class="lnt"> 55 -</span><span class="lnt"> 56 -</span><span class="lnt"> 57 -</span><span class="lnt"> 58 -</span><span class="lnt"> 59 -</span><span class="lnt"> 60 -</span><span class="lnt"> 61 -</span><span class="lnt"> 62 -</span><span class="lnt"> 63 -</span><span class="lnt"> 64 -</span><span class="lnt"> 65 -</span><span class="lnt"> 66 -</span><span class="lnt"> 67 -</span><span class="lnt"> 68 -</span><span class="lnt"> 69 -</span><span class="lnt"> 70 -</span><span class="lnt"> 71 -</span><span class="lnt"> 72 -</span><span class="lnt"> 73 -</span><span class="lnt"> 74 -</span><span class="lnt"> 75 -</span><span class="lnt"> 76 -</span><span class="lnt"> 77 -</span><span class="lnt"> 78 -</span><span class="lnt"> 79 -</span><span class="lnt"> 80 -</span><span class="lnt"> 81 -</span><span class="lnt"> 82 -</span><span class="lnt"> 83 -</span><span class="lnt"> 84 -</span><span class="lnt"> 85 -</span><span class="lnt"> 86 -</span><span class="lnt"> 87 -</span><span class="lnt"> 88 -</span><span class="lnt"> 89 -</span><span class="lnt"> 90 -</span><span class="lnt"> 91 -</span><span class="lnt"> 92 -</span><span class="lnt"> 93 -</span><span class="lnt"> 94 -</span><span class="lnt"> 95 -</span><span class="lnt"> 96 -</span><span class="lnt"> 97 -</span><span class="lnt"> 98 -</span><span class="lnt"> 99 -</span><span class="lnt">100 -</span><span class="lnt">101 -</span><span class="lnt">102 -</span><span class="lnt">103 -</span><span class="lnt">104 -</span><span class="lnt">105 -</span><span class="lnt">106 -</span><span class="lnt">107 -</span><span class="lnt">108 -</span><span class="lnt">109 -</span><span class="lnt">110 -</span><span class="lnt">111 -</span><span class="lnt">112 -</span><span class="lnt">113 -</span><span class="lnt">114 -</span><span class="lnt">115 -</span><span class="lnt">116 -</span><span class="lnt">117 -</span><span class="lnt">118 -</span><span class="lnt">119 -</span><span class="lnt">120 -</span><span class="lnt">121 -</span><span class="lnt">122 -</span><span class="lnt">123 -</span><span class="lnt">124 -</span><span class="lnt">125 -</span><span class="lnt">126 -</span><span class="lnt">127 -</span><span class="lnt">128 -</span><span class="lnt">129 -</span><span class="lnt">130 -</span><span class="lnt">131 -</span><span class="lnt">132 -</span><span class="lnt">133 -</span><span class="lnt">134 -</span><span class="lnt">135 -</span><span class="lnt">136 -</span><span class="lnt">137 -</span><span class="lnt">138 -</span><span class="lnt">139 -</span><span class="lnt">140 -</span><span class="lnt">141 -</span><span class="lnt">142 -</span><span class="lnt">143 -</span><span class="lnt">144 -</span><span class="lnt">145 -</span><span class="lnt">146 -</span><span class="lnt">147 -</span><span class="lnt">148 -</span><span class="lnt">149 -</span><span class="lnt">150 -</span><span class="lnt">151 -</span><span class="lnt">152 -</span><span class="lnt">153 -</span><span class="lnt">154 -</span><span class="lnt">155 -</span><span class="lnt">156 -</span><span class="lnt">157 -</span><span class="lnt">158 -</span><span class="lnt">159 -</span><span class="lnt">160 -</span><span class="lnt">161 -</span><span class="lnt">162 -</span><span class="lnt">163 -</span><span class="lnt">164 -</span><span class="lnt">165 -</span><span class="lnt">166 -</span><span class="lnt">167 -</span><span class="lnt">168 -</span><span class="lnt">169 -</span><span class="lnt">170 -</span><span class="lnt">171 -</span><span class="lnt">172 -</span><span class="lnt">173 -</span><span class="lnt">174 -</span><span class="lnt">175 -</span><span class="lnt">176 -</span><span class="lnt">177 -</span><span class="lnt">178 -</span><span class="lnt">179 -</span><span class="lnt">180 -</span><span class="lnt">181 -</span><span class="lnt">182 -</span><span class="lnt">183 -</span><span class="lnt">184 -</span><span class="lnt">185 -</span><span class="lnt">186 -</span><span class="lnt">187 -</span><span class="lnt">188 -</span><span class="lnt">189 -</span><span class="lnt">190 -</span><span class="lnt">191 -</span><span class="lnt">192 -</span><span class="lnt">193 -</span><span class="lnt">194 -</span><span class="lnt">195 -</span><span class="lnt">196 -</span><span class="lnt">197 -</span><span class="lnt">198 -</span><span class="lnt">199 -</span><span class="lnt">200 -</span><span class="lnt">201 -</span><span class="lnt">202 -</span><span class="lnt">203 -</span><span class="lnt">204 -</span><span class="lnt">205 -</span><span class="lnt">206 -</span><span class="lnt">207 -</span><span class="lnt">208 -</span><span class="lnt">209 -</span><span class="lnt">210 -</span><span class="lnt">211 -</span><span class="lnt">212 -</span><span class="lnt">213 -</span><span class="lnt">214 -</span><span class="lnt">215 -</span><span class="lnt">216 -</span><span class="lnt">217 -</span><span class="lnt">218 -</span><span class="lnt">219 -</span><span class="lnt">220 -</span><span class="lnt">221 -</span><span class="lnt">222 -</span><span class="lnt">223 -</span><span class="lnt">224 -</span><span class="lnt">225 -</span><span class="lnt">226 -</span><span class="lnt">227 -</span><span class="lnt">228 -</span><span class="lnt">229 -</span><span class="lnt">230 -</span><span class="lnt">231 -</span><span class="lnt">232 -</span><span class="lnt">233 -</span><span class="lnt">234 -</span><span class="lnt">235 -</span><span class="lnt">236 -</span><span class="lnt">237 -</span><span class="lnt">238 -</span><span class="lnt">239 -</span><span class="lnt">240 -</span><span class="lnt">241 -</span><span class="lnt">242 -</span><span class="lnt">243 -</span><span class="lnt">244 -</span><span class="lnt">245 -</span><span class="lnt">246 -</span><span class="lnt">247 -</span><span class="lnt">248 -</span><span class="lnt">249 -</span><span class="lnt">250 -</span><span class="lnt">251 -</span><span class="lnt">252 -</span><span class="lnt">253 -</span><span class="lnt">254 -</span><span class="lnt">255 -</span><span class="lnt">256 -</span><span class="lnt">257 -</span><span class="lnt">258 -</span><span class="lnt">259 -</span><span class="lnt">260 -</span><span class="lnt">261 -</span><span class="lnt">262 -</span><span class="lnt">263 -</span><span class="lnt">264 -</span><span class="lnt">265 -</span><span class="lnt">266 -</span><span class="lnt">267 -</span><span class="lnt">268 -</span><span class="lnt">269 -</span><span class="lnt">270 -</span><span class="lnt">271 -</span><span class="lnt">272 -</span><span class="lnt">273 -</span><span class="lnt">274 -</span><span class="lnt">275 -</span><span class="lnt">276 -</span><span class="lnt">277 -</span><span class="lnt">278 -</span><span class="lnt">279 -</span><span class="lnt">280 -</span><span class="lnt">281 -</span><span class="lnt">282 -</span><span class="lnt">283 -</span><span class="lnt">284 -</span><span class="lnt">285 -</span><span class="lnt">286 -</span><span class="lnt">287 -</span><span class="lnt">288 -</span><span class="lnt">289 -</span><span class="lnt">290 -</span><span class="lnt">291 -</span><span class="lnt">292 -</span><span class="lnt">293 -</span><span class="lnt">294 -</span><span class="lnt">295 -</span><span class="lnt">296 -</span><span class="lnt">297 -</span><span class="lnt">298 -</span><span class="lnt">299 -</span><span class="lnt">300 -</span><span class="lnt">301 -</span><span class="lnt">302 -</span><span class="lnt">303 -</span><span class="lnt">304 -</span><span class="lnt">305 -</span><span class="lnt">306 -</span><span class="lnt">307 -</span><span class="lnt">308 -</span><span class="lnt">309 -</span><span class="lnt">310 -</span><span class="lnt">311 -</span><span class="lnt">312 -</span><span class="lnt">313 -</span><span class="lnt">314 -</span><span class="lnt">315 -</span><span class="lnt">316 -</span><span class="lnt">317 -</span><span class="lnt">318 -</span><span class="lnt">319 -</span><span class="lnt">320 -</span><span class="lnt">321 -</span><span class="lnt">322 -</span><span class="lnt">323 -</span><span class="lnt">324 -</span><span class="lnt">325 -</span><span class="lnt">326 -</span><span class="lnt">327 -</span><span class="lnt">328 -</span><span class="lnt">329 -</span><span class="lnt">330 -</span><span class="lnt">331 -</span><span class="lnt">332 -</span><span class="lnt">333 -</span><span class="lnt">334 -</span><span class="lnt">335 -</span><span class="lnt">336 -</span><span class="lnt">337 -</span><span class="lnt">338 -</span><span class="lnt">339 -</span><span class="lnt">340 -</span><span class="lnt">341 -</span><span class="lnt">342 -</span><span class="lnt">343 -</span><span class="lnt">344 -</span><span class="lnt">345 -</span><span class="lnt">346 -</span><span class="lnt">347 -</span><span class="lnt">348 -</span><span class="lnt">349 -</span><span class="lnt">350 -</span><span class="lnt">351 -</span><span class="lnt">352 -</span><span class="lnt">353 -</span><span class="lnt">354 -</span><span class="lnt">355 -</span><span class="lnt">356 -</span><span class="lnt">357 -</span><span class="lnt">358 -</span><span class="lnt">359 -</span><span class="lnt">360 -</span><span class="lnt">361 -</span><span class="lnt">362 -</span><span class="lnt">363 -</span><span class="lnt">364 -</span><span class="lnt">365 -</span><span class="lnt">366 -</span><span class="lnt">367 -</span><span class="lnt">368 -</span><span class="lnt">369 -</span><span class="lnt">370 -</span><span class="lnt">371 -</span><span class="lnt">372 -</span><span class="lnt">373 -</span><span class="lnt">374 -</span><span class="lnt">375 -</span><span class="lnt">376 -</span><span class="lnt">377 -</span><span class="lnt">378 -</span><span class="lnt">379 -</span><span class="lnt">380 -</span><span class="lnt">381 -</span><span class="lnt">382 -</span><span class="lnt">383 -</span><span class="lnt">384 -</span><span class="lnt">385 -</span><span class="lnt">386 -</span><span class="lnt">387 -</span><span class="lnt">388 -</span><span class="lnt">389 -</span><span class="lnt">390 -</span><span class="lnt">391 -</span><span class="lnt">392 -</span><span class="lnt">393 -</span><span class="lnt">394 -</span><span class="lnt">395 -</span><span class="lnt">396 -</span><span class="lnt">397 -</span><span class="lnt">398 -</span><span class="lnt">399 -</span><span class="lnt">400 -</span><span class="lnt">401 -</span><span class="lnt">402 -</span><span class="lnt">403 -</span><span class="lnt">404 -</span><span class="lnt">405 -</span><span class="lnt">406 -</span><span class="lnt">407 -</span><span class="lnt">408 -</span><span class="lnt">409 -</span><span class="lnt">410 -</span><span class="lnt">411 -</span><span class="lnt">412 -</span><span class="lnt">413 -</span><span class="lnt">414 -</span><span class="lnt">415 -</span><span class="lnt">416 -</span><span class="lnt">417 -</span><span class="lnt">418 -</span><span class="lnt">419 -</span><span class="lnt">420 -</span><span class="lnt">421 -</span><span class="lnt">422 -</span><span class="lnt">423 -</span><span class="lnt">424 -</span><span class="lnt">425 -</span><span class="lnt">426 -</span><span class="lnt">427 -</span><span class="lnt">428 -</span><span class="lnt">429 -</span><span class="lnt">430 -</span><span class="lnt">431 -</span><span class="lnt">432 -</span><span class="lnt">433 -</span><span class="lnt">434 -</span><span class="lnt">435 -</span><span class="lnt">436 -</span><span class="lnt">437 -</span><span class="lnt">438 -</span><span class="lnt">439 -</span><span class="lnt">440 -</span><span class="lnt">441 -</span><span class="lnt">442 -</span><span class="lnt">443 -</span><span class="lnt">444 -</span><span class="lnt">445 -</span><span class="lnt">446 -</span><span class="lnt">447 -</span><span class="lnt">448 -</span><span class="lnt">449 -</span><span class="lnt">450 -</span><span class="lnt">451 -</span><span class="lnt">452 -</span><span class="lnt">453 -</span><span class="lnt">454 -</span><span class="lnt">455 -</span><span class="lnt">456 -</span><span class="lnt">457 -</span><span class="lnt">458 -</span><span class="lnt">459 -</span><span class="lnt">460 -</span><span class="lnt">461 -</span><span class="lnt">462 -</span><span class="lnt">463 -</span><span class="lnt">464 -</span><span class="lnt">465 -</span><span class="lnt">466 -</span><span class="lnt">467 -</span><span class="lnt">468 -</span><span class="lnt">469 -</span><span class="lnt">470 -</span><span class="lnt">471 -</span><span class="lnt">472 -</span><span class="lnt">473 -</span><span class="lnt">474 -</span><span class="lnt">475 -</span><span class="lnt">476 -</span><span class="lnt">477 -</span><span class="lnt">478 -</span><span class="lnt">479 -</span><span class="lnt">480 -</span><span class="lnt">481 -</span><span class="lnt">482 -</span><span class="lnt">483 -</span><span class="lnt">484 -</span><span class="lnt">485 -</span><span class="lnt">486 -</span><span class="lnt">487 -</span><span class="lnt">488 -</span><span class="lnt">489 -</span><span class="lnt">490 -</span><span class="lnt">491 -</span><span class="lnt">492 -</span><span class="lnt">493 -</span><span class="lnt">494 -</span><span class="lnt">495 -</span><span class="lnt">496 -</span><span class="lnt">497 -</span><span class="lnt">498 -</span><span class="lnt">499 -</span><span class="lnt">500 -</span><span class="lnt">501 -</span><span class="lnt">502 -</span><span class="lnt">503 -</span><span class="lnt">504 -</span><span class="lnt">505 -</span><span class="lnt">506 -</span><span class="lnt">507 -</span><span class="lnt">508 -</span><span class="lnt">509 -</span><span class="lnt">510 -</span><span class="lnt">511 -</span><span class="lnt">512 -</span><span class="lnt">513 -</span><span class="lnt">514 -</span><span class="lnt">515 -</span><span class="lnt">516 -</span><span class="lnt">517 -</span><span class="lnt">518 -</span><span class="lnt">519 -</span><span class="lnt">520 -</span><span class="lnt">521 -</span><span class="lnt">522 -</span><span class="lnt">523 -</span><span class="lnt">524 -</span><span class="lnt">525 -</span><span class="lnt">526 -</span><span class="lnt">527 -</span><span class="lnt">528 -</span><span class="lnt">529 -</span><span class="lnt">530 -</span><span class="lnt">531 -</span><span class="lnt">532 -</span><span class="lnt">533 -</span><span class="lnt">534 -</span><span class="lnt">535 -</span><span class="lnt">536 -</span><span class="lnt">537 -</span><span class="lnt">538 -</span><span class="lnt">539 -</span><span class="lnt">540 -</span><span class="lnt">541 -</span><span class="lnt">542 -</span><span class="lnt">543 -</span><span class="lnt">544 -</span><span class="lnt">545 -</span><span class="lnt">546 -</span><span class="lnt">547 -</span><span class="lnt">548 -</span><span class="lnt">549 -</span><span class="lnt">550 -</span><span class="lnt">551 -</span><span class="lnt">552 -</span><span class="lnt">553 -</span><span class="lnt">554 -</span><span class="lnt">555 -</span><span class="lnt">556 -</span><span class="lnt">557 -</span><span class="lnt">558 -</span><span class="lnt">559 -</span><span class="lnt">560 -</span><span class="lnt">561 -</span><span class="lnt">562 -</span><span class="lnt">563 -</span><span class="lnt">564 -</span><span class="lnt">565 -</span><span class="lnt">566 -</span><span class="lnt">567 -</span><span class="lnt">568 -</span><span class="lnt">569 -</span><span class="lnt">570 -</span><span class="lnt">571 -</span><span class="lnt">572 -</span><span class="lnt">573 -</span><span class="lnt">574 -</span><span class="lnt">575 -</span><span class="lnt">576 -</span><span class="lnt">577 -</span><span class="lnt">578 -</span><span class="lnt">579 -</span><span class="lnt">580 -</span><span class="lnt">581 -</span><span class="lnt">582 -</span><span class="lnt">583 -</span><span class="lnt">584 -</span><span class="lnt">585 -</span><span class="lnt">586 -</span><span class="lnt">587 -</span><span class="lnt">588 -</span><span class="lnt">589 -</span><span class="lnt">590 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">┌─<span class="o">[</span>loading<span class="o">]</span> <span class="o">[</span>/tmp/virgool<span class="o">]</span> <span class="o">[</span>0<span class="o">]</span> -</span></span><span class="line"><span class="cl">│ -</span></span><span class="line"><span class="cl">└──〉wget -nd -E -p -k -H https://vrgl.ir/c3fVa -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:03-- https://vrgl.ir/c3fVa -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">302</span> Found -</span></span><span class="line"><span class="cl">Location: https://virgool.io/@Novo/rsa-encryption-ao1poasym4cf <span class="o">[</span>following<span class="o">]</span> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:04-- https://virgool.io/@Novo/rsa-encryption-ao1poasym4cf -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/html<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘c3fVa.html’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">c3fVa.html <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 61.30K 200KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:06 <span class="o">(</span><span class="m">200</span> KB/s<span class="o">)</span> - ‘c3fVa.html’ saved <span class="o">[</span>62773<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:06-- https://virgool.io/robots.txt -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>document<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘robots.txt’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">robots.txt <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">484</span> --.-KB/s in 0s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:07 <span class="o">(</span>85.7 MB/s<span class="o">)</span> - ‘robots.txt’ saved <span class="o">[</span>484<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:07-- https://www.googletagmanager.com/robots.txt -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">404</span> Not Found -</span></span><span class="line"><span class="cl">2022-01-18 06:41:08 ERROR 404: Not Found. -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:08-- https://files.virgool.io/robots.txt -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">403</span> Forbidden -</span></span><span class="line"><span class="cl">2022-01-18 06:41:09 ERROR 403: Forbidden. -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:09-- https://static.cloudflareinsights.com/robots.txt -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">522</span> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:26 ERROR 522: <span class="o">(</span>no description<span class="o">)</span>. -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:26-- https://virgool.io/images/favicon.png?v<span class="o">=</span>v2.6.15 -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">9855</span> <span class="o">(</span>9.6K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘favicon.png?v<span class="o">=</span>v2.6.15’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">favicon.png?v<span class="o">=</span>v2.6.15 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 9.62K --.-KB/s in 0.07s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:27 <span class="o">(</span><span class="m">130</span> KB/s<span class="o">)</span> - ‘favicon.png?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>9855/9855<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:27-- https://virgool.io/css/styles.css?v<span class="o">=</span>v2.6.15 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/css<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘styles.css?v<span class="o">=</span>v2.6.15.css’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">styles.css?v<span class="o">=</span>v2.6.15.css <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 903.60K 592KB/s in 1.5s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:28 <span class="o">(</span><span class="m">592</span> KB/s<span class="o">)</span> - ‘styles.css?v<span class="o">=</span>v2.6.15.css’ saved <span class="o">[</span>925284<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:28-- https://virgool.test/robots.txt -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:28-- https://www.googletagmanager.com/ns.html?id<span class="o">=</span>GTM-5GS688K -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/html<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘ns.html?id<span class="o">=</span>GTM-5GS688K.html’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">ns.html?id<span class="o">=</span>GTM-5GS688K.html <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">266</span> --.-KB/s in 0s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:29 <span class="o">(</span>29.4 MB/s<span class="o">)</span> - ‘ns.html?id<span class="o">=</span>GTM-5GS688K.html’ saved <span class="o">[</span>266<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:29-- https://files.virgool.io/upload/users/31434/avatar/1C4LLE.png?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">39194</span> <span class="o">(</span>38K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_ 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 38.28K 173KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:30 <span class="o">(</span><span class="m">173</span> KB/s<span class="o">)</span> - ‘1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>39194/39194<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:30-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/qhokakomwyb5.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">179870</span> <span class="o">(</span>176K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘qhokakomwyb5.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">qhokakomwyb5.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 175.65K 567KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">567</span> KB/s<span class="o">)</span> - ‘qhokakomwyb5.png’ saved <span class="o">[</span>179870/179870<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/v1xnwpnewfys.webp -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">12770</span> <span class="o">(</span>12K<span class="o">)</span> <span class="o">[</span>image/webp<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘v1xnwpnewfys.webp’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">v1xnwpnewfys.webp 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 12.47K --.-KB/s in 0.07s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">180</span> KB/s<span class="o">)</span> - ‘v1xnwpnewfys.webp’ saved <span class="o">[</span>12770/12770<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/d28hpu2detkl.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">92847</span> <span class="o">(</span>91K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘d28hpu2detkl.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">d28hpu2detkl.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 90.67K --.-KB/s in 0.09s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">969</span> KB/s<span class="o">)</span> - ‘d28hpu2detkl.png’ saved <span class="o">[</span>92847/92847<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/rhyykrc8azq0.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">17539</span> <span class="o">(</span>17K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘rhyykrc8azq0.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">rhyykrc8azq0.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 17.13K --.-KB/s in 0.007s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>2.47 MB/s<span class="o">)</span> - ‘rhyykrc8azq0.png’ saved <span class="o">[</span>17539/17539<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/fjtc1ydzkuse.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">108524</span> <span class="o">(</span>106K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘fjtc1ydzkuse.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">fjtc1ydzkuse.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 105.98K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>1.06 MB/s<span class="o">)</span> - ‘fjtc1ydzkuse.png’ saved <span class="o">[</span>108524/108524<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/gfqhgyp18oic.jpeg -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">132085</span> <span class="o">(</span>129K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘gfqhgyp18oic.jpeg’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">gfqhgyp18oic.jpeg 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 128.99K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>1.28 MB/s<span class="o">)</span> - ‘gfqhgyp18oic.jpeg’ saved <span class="o">[</span>132085/132085<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/me0mpjtdmyom.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">113489</span> <span class="o">(</span>111K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘me0mpjtdmyom.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">me0mpjtdmyom.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 110.83K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span><span class="m">814</span> KB/s<span class="o">)</span> - ‘me0mpjtdmyom.png’ saved <span class="o">[</span>113489/113489<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/of7krju6oqzk.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">105746</span> <span class="o">(</span>103K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘of7krju6oqzk.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">of7krju6oqzk.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 103.27K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span>1.25 MB/s<span class="o">)</span> - ‘of7krju6oqzk.png’ saved <span class="o">[</span>105746/105746<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/oqwhflg4gbnq.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">120994</span> <span class="o">(</span>118K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘oqwhflg4gbnq.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">oqwhflg4gbnq.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 118.16K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span>1.14 MB/s<span class="o">)</span> - ‘oqwhflg4gbnq.png’ saved <span class="o">[</span>120994/120994<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/taqjnfnuzxcx.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">122678</span> <span class="o">(</span>120K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘taqjnfnuzxcx.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">taqjnfnuzxcx.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 119.80K --.-KB/s in 0.06s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span>2.00 MB/s<span class="o">)</span> - ‘taqjnfnuzxcx.png’ saved <span class="o">[</span>122678/122678<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/63/posts/qwqrubplfaau/g8vai2incgna.jpeg?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">88292</span> <span class="o">(</span>86K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fre 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 86.22K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span><span class="m">824</span> KB/s<span class="o">)</span> - ‘g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>88292/88292<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/63/avatar/o8jiNe.png?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">32037</span> <span class="o">(</span>31K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_ 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 31.29K --.-KB/s in 0.06s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span><span class="m">558</span> KB/s<span class="o">)</span> - ‘o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>32037/32037<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/31434/posts/e3oydlcfkr5e/figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">30356</span> <span class="o">(</span>30K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fre 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 29.64K --.-KB/s in 0.07s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span><span class="m">401</span> KB/s<span class="o">)</span> - ‘figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>30356/30356<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://files.virgool.io/upload/users/316150/posts/r8rhw88uh1xh/cs1ugyelv3zw.png?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">34459</span> <span class="o">(</span>34K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fres 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 33.65K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span><span class="m">399</span> KB/s<span class="o">)</span> - ‘cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>34459/34459<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://files.virgool.io/upload/users/316150/avatar/8sz7Rs.jpeg?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">14764</span> <span class="o">(</span>14K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 14.42K --.-KB/s in 0.007s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span>2.11 MB/s<span class="o">)</span> - ‘8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>14764/14764<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://virgool.io/js/commons.js?v<span class="o">=</span>v2.6.15 -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/javascript<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘commons.js?v<span class="o">=</span>v2.6.15’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">commons.js?v<span class="o">=</span>v2.6.15 <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 997.55K 337KB/s in 3.0s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:39 <span class="o">(</span><span class="m">337</span> KB/s<span class="o">)</span> - ‘commons.js?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>1021492<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:39-- https://virgool.io/js/main.js?v<span class="o">=</span>v2.6.15 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/javascript<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘main.js?v<span class="o">=</span>v2.6.15’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">main.js?v<span class="o">=</span>v2.6.15 <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 1.21M 580KB/s in 2.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:41 <span class="o">(</span><span class="m">580</span> KB/s<span class="o">)</span> - ‘main.js?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>1267632<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:41-- https://static.cloudflareinsights.com/beacon.min.js/v652eace1692a40cfa3763df669d7439c1639079717194 -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">13970</span> <span class="o">(</span>14K<span class="o">)</span> <span class="o">[</span>text/javascript<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘v652eace1692a40cfa3763df669d7439c1639079717194’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">v652eace1692a40cfa3763df669d743 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 13.64K --.-KB/s in 0.02s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:42 <span class="o">(</span><span class="m">600</span> KB/s<span class="o">)</span> - ‘v652eace1692a40cfa3763df669d7439c1639079717194’ saved <span class="o">[</span>13970/13970<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:42-- https://virgool.io/fonts/vazir/Vazir-Thin.ttf -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">98924</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Thin.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.61K 140KB/s in 0.7s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:43 <span class="o">(</span><span class="m">140</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.ttf’ saved <span class="o">[</span>98924/98924<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:43-- https://virgool.io/fonts/vazir/Vazir-Thin.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Thin.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.80K 276KB/s in 0.4s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:44 <span class="o">(</span><span class="m">276</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.eot?’ saved <span class="o">[</span>99120<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:44-- https://virgool.io/fonts/vazir/Vazir-Thin.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">54068</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Thin.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.80K --.-KB/s in 0.07s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:45 <span class="o">(</span><span class="m">770</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.woff’ saved <span class="o">[</span>54068/54068<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:45-- https://virgool.io/fonts/vazir/Vazir-Thin.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">43000</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Thin.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 41.99K --.-KB/s in 0.006s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:46 <span class="o">(</span>6.59 MB/s<span class="o">)</span> - ‘Vazir-Thin.woff2’ saved <span class="o">[</span>43000/43000<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:46-- https://virgool.io/fonts/vazir/Vazir-Light.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">105360</span> <span class="o">(</span>103K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Light.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 102.89K 478KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:46 <span class="o">(</span><span class="m">478</span> KB/s<span class="o">)</span> - ‘Vazir-Light.ttf’ saved <span class="o">[</span>105360/105360<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:46-- https://virgool.io/fonts/vazir/Vazir-Light.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Light.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 103.09K 470KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:47 <span class="o">(</span><span class="m">470</span> KB/s<span class="o">)</span> - ‘Vazir-Light.eot?’ saved <span class="o">[</span>105562<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:47-- https://virgool.io/fonts/vazir/Vazir-Light.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">59688</span> <span class="o">(</span>58K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Light.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 58.29K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:48 <span class="o">(</span><span class="m">758</span> KB/s<span class="o">)</span> - ‘Vazir-Light.woff’ saved <span class="o">[</span>59688/59688<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:48-- https://virgool.io/fonts/vazir/Vazir-Light.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">48168</span> <span class="o">(</span>47K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Light.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 47.04K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:48 <span class="o">(</span><span class="m">570</span> KB/s<span class="o">)</span> - ‘Vazir-Light.woff2’ saved <span class="o">[</span>48168/48168<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:48-- https://virgool.io/fonts/vazir/Vazir-Regular.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">98376</span> <span class="o">(</span>96K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Regular.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.07K 435KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:49 <span class="o">(</span><span class="m">435</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.ttf’ saved <span class="o">[</span>98376/98376<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:49-- https://virgool.io/fonts/vazir/Vazir-Regular.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Regular.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.26K 285KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:50 <span class="o">(</span><span class="m">285</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.eot?’ saved <span class="o">[</span>98574<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:50-- https://virgool.io/fonts/vazir/Vazir-Regular.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">53744</span> <span class="o">(</span>52K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Regular.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.48K --.-KB/s in 0.05s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:51 <span class="o">(</span>1.10 MB/s<span class="o">)</span> - ‘Vazir-Regular.woff’ saved <span class="o">[</span>53744/53744<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:51-- https://virgool.io/fonts/vazir/Vazir-Regular.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">42744</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Regular.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 41.74K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:51 <span class="o">(</span><span class="m">412</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.woff2’ saved <span class="o">[</span>42744/42744<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:51-- https://virgool.io/fonts/vazir/Vazir-Medium.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">98892</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Medium.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.57K 606KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:52 <span class="o">(</span><span class="m">606</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.ttf’ saved <span class="o">[</span>98892/98892<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:52-- https://virgool.io/fonts/vazir/Vazir-Medium.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Medium.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.78K 347KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:53 <span class="o">(</span><span class="m">347</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.eot?’ saved <span class="o">[</span>99100<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:53-- https://virgool.io/fonts/vazir/Vazir-Medium.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">54120</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Medium.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.85K 125KB/s in 0.4s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:54 <span class="o">(</span><span class="m">125</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.woff’ saved <span class="o">[</span>54120/54120<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:54-- https://virgool.io/fonts/vazir/Vazir-Medium.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">43152</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Medium.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.14K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:54 <span class="o">(</span><span class="m">541</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.woff2’ saved <span class="o">[</span>43152/43152<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:54-- https://virgool.io/fonts/vazir/Vazir-Bold.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">99840</span> <span class="o">(</span>98K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Bold.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 97.50K --.-KB/s in 0.04s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:55 <span class="o">(</span>2.61 MB/s<span class="o">)</span> - ‘Vazir-Bold.ttf’ saved <span class="o">[</span>99840/99840<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:55-- https://virgool.io/fonts/vazir/Vazir-Bold.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Bold.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 97.68K 560KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:56 <span class="o">(</span><span class="m">560</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.eot?’ saved <span class="o">[</span>100026<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:56-- https://virgool.io/fonts/vazir/Vazir-Bold.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">54560</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Bold.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 53.28K --.-KB/s in 0.06s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:56 <span class="o">(</span><span class="m">917</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.woff’ saved <span class="o">[</span>54560/54560<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:56-- https://virgool.io/fonts/vazir/Vazir-Bold.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">43604</span> <span class="o">(</span>43K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Bold.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.58K --.-KB/s in 0.06s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:57 <span class="o">(</span><span class="m">657</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.woff2’ saved <span class="o">[</span>43604/43604<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:57-- https://virgool.io/fonts/vazir/Vazir-Black.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">99772</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Black.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 97.43K --.-KB/s in 0.04s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:57 <span class="o">(</span>2.18 MB/s<span class="o">)</span> - ‘Vazir-Black.ttf’ saved <span class="o">[</span>99772/99772<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:57-- https://virgool.io/fonts/vazir/Vazir-Black.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Black.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 97.63K 478KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:58 <span class="o">(</span><span class="m">478</span> KB/s<span class="o">)</span> - ‘Vazir-Black.eot?’ saved <span class="o">[</span>99974<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:58-- https://virgool.io/fonts/vazir/Vazir-Black.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">54652</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Black.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 53.37K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:59 <span class="o">(</span><span class="m">691</span> KB/s<span class="o">)</span> - ‘Vazir-Black.woff’ saved <span class="o">[</span>54652/54652<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:59-- https://virgool.io/fonts/vazir/Vazir-Black.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">43332</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Black.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.32K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:00 <span class="o">(</span><span class="m">510</span> KB/s<span class="o">)</span> - ‘Vazir-Black.woff2’ saved <span class="o">[</span>43332/43332<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:00-- https://virgool.io/fonts/fontawesome/fa-solid-900.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">202616</span> <span class="o">(</span>198K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">fa-solid-900.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 197.87K 501KB/s in 0.4s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:01 <span class="o">(</span><span class="m">501</span> KB/s<span class="o">)</span> - ‘fa-solid-900.ttf’ saved <span class="o">[</span>202616/202616<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:01-- https://virgool.io/fonts/fontawesome/fa-solid-900.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">404</span> Not Found -</span></span><span class="line"><span class="cl">2022-01-18 06:42:01 ERROR 404: Not Found. -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:01-- https://virgool.io/fonts/fontawesome/fa-solid-900.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">103300</span> <span class="o">(</span>101K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">fa-solid-900.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 100.88K 358KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:02 <span class="o">(</span><span class="m">358</span> KB/s<span class="o">)</span> - ‘fa-solid-900.woff’ saved <span class="o">[</span>103300/103300<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:02-- https://virgool.io/fonts/fontawesome/fa-solid-900.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">79444</span> <span class="o">(</span>78K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">fa-solid-900.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 77.58K 394KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:03 <span class="o">(</span><span class="m">394</span> KB/s<span class="o">)</span> - ‘fa-solid-900.woff2’ saved <span class="o">[</span>79444/79444<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:03-- https://virgool.io/images/icons/plus.svg -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>image/svg+xml<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘plus.svg’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">plus.svg <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">942</span> --.-KB/s in 0.002s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:03 <span class="o">(</span><span class="m">383</span> KB/s<span class="o">)</span> - ‘plus.svg’ saved <span class="o">[</span>942<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:03-- https://virgool.io/images/icons/tick.svg -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>image/svg+xml<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘tick.svg’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">tick.svg <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">942</span> --.-KB/s in 0s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:04 <span class="o">(</span>89.8 MB/s<span class="o">)</span> - ‘tick.svg’ saved <span class="o">[</span>942<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:04-- https://virgool.io/images/typewriter.png -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">172558</span> <span class="o">(</span>169K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘typewriter.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">typewriter.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 168.51K 349KB/s in 0.5s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:05 <span class="o">(</span><span class="m">349</span> KB/s<span class="o">)</span> - ‘typewriter.png’ saved <span class="o">[</span>172558/172558<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:05-- https://virgool.test/images/download-audio.png -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:05-- https://virgool.test/images/download-ebook.png -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. -</span></span><span class="line"><span class="cl">FINISHED --2022-01-18 06:42:05-- -</span></span><span class="line"><span class="cl">Total wall clock time: 1m 2s -</span></span><span class="line"><span class="cl">Downloaded: <span class="m">54</span> files, 6.6M in 14s <span class="o">(</span><span class="m">479</span> KB/s<span class="o">)</span> -</span></span><span class="line"><span class="cl">Converting links in ns.html?id<span class="o">=</span>GTM-5GS688K.html... nothing to <span class="k">do</span>. -</span></span><span class="line"><span class="cl">Converting links in c3fVa.html... 38. -</span></span><span class="line"><span class="cl">31-7 -</span></span><span class="line"><span class="cl">Converting links in styles.css?v<span class="o">=</span>v2.6.15.css... 35. -</span></span><span class="line"><span class="cl">34-1 -</span></span><span class="line"><span class="cl">Converted links in <span class="m">3</span> files in 0.06 seconds. -</span></span></code></pre></td></tr></table> -</div> -</div> - - - پلاگین های کاربردی گنوم - https://bit-orbit.github.io/p/%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C-%DA%AF%D9%86%D9%88%D9%85/ - Fri, 14 Jan 2022 18:18:28 +0330 - - https://bit-orbit.github.io/p/%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C-%DA%AF%D9%86%D9%88%D9%85/ - <img src="https://bit-orbit.github.io/images/post/gp.jpg" alt="Featured image of post پلاگین های کاربردی گنوم " /><div dir='rtl' style="font-size:x-large;"> -<p>اگر مثل من از +هست رو دانلود می‌کنم.</li> +</ul> +</br> +</div> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt"> 10 +</span><span class="lnt"> 11 +</span><span class="lnt"> 12 +</span><span class="lnt"> 13 +</span><span class="lnt"> 14 +</span><span class="lnt"> 15 +</span><span class="lnt"> 16 +</span><span class="lnt"> 17 +</span><span class="lnt"> 18 +</span><span class="lnt"> 19 +</span><span class="lnt"> 20 +</span><span class="lnt"> 21 +</span><span class="lnt"> 22 +</span><span class="lnt"> 23 +</span><span class="lnt"> 24 +</span><span class="lnt"> 25 +</span><span class="lnt"> 26 +</span><span class="lnt"> 27 +</span><span class="lnt"> 28 +</span><span class="lnt"> 29 +</span><span class="lnt"> 30 +</span><span class="lnt"> 31 +</span><span class="lnt"> 32 +</span><span class="lnt"> 33 +</span><span class="lnt"> 34 +</span><span class="lnt"> 35 +</span><span class="lnt"> 36 +</span><span class="lnt"> 37 +</span><span class="lnt"> 38 +</span><span class="lnt"> 39 +</span><span class="lnt"> 40 +</span><span class="lnt"> 41 +</span><span class="lnt"> 42 +</span><span class="lnt"> 43 +</span><span class="lnt"> 44 +</span><span class="lnt"> 45 +</span><span class="lnt"> 46 +</span><span class="lnt"> 47 +</span><span class="lnt"> 48 +</span><span class="lnt"> 49 +</span><span class="lnt"> 50 +</span><span class="lnt"> 51 +</span><span class="lnt"> 52 +</span><span class="lnt"> 53 +</span><span class="lnt"> 54 +</span><span class="lnt"> 55 +</span><span class="lnt"> 56 +</span><span class="lnt"> 57 +</span><span class="lnt"> 58 +</span><span class="lnt"> 59 +</span><span class="lnt"> 60 +</span><span class="lnt"> 61 +</span><span class="lnt"> 62 +</span><span class="lnt"> 63 +</span><span class="lnt"> 64 +</span><span class="lnt"> 65 +</span><span class="lnt"> 66 +</span><span class="lnt"> 67 +</span><span class="lnt"> 68 +</span><span class="lnt"> 69 +</span><span class="lnt"> 70 +</span><span class="lnt"> 71 +</span><span class="lnt"> 72 +</span><span class="lnt"> 73 +</span><span class="lnt"> 74 +</span><span class="lnt"> 75 +</span><span class="lnt"> 76 +</span><span class="lnt"> 77 +</span><span class="lnt"> 78 +</span><span class="lnt"> 79 +</span><span class="lnt"> 80 +</span><span class="lnt"> 81 +</span><span class="lnt"> 82 +</span><span class="lnt"> 83 +</span><span class="lnt"> 84 +</span><span class="lnt"> 85 +</span><span class="lnt"> 86 +</span><span class="lnt"> 87 +</span><span class="lnt"> 88 +</span><span class="lnt"> 89 +</span><span class="lnt"> 90 +</span><span class="lnt"> 91 +</span><span class="lnt"> 92 +</span><span class="lnt"> 93 +</span><span class="lnt"> 94 +</span><span class="lnt"> 95 +</span><span class="lnt"> 96 +</span><span class="lnt"> 97 +</span><span class="lnt"> 98 +</span><span class="lnt"> 99 +</span><span class="lnt">100 +</span><span class="lnt">101 +</span><span class="lnt">102 +</span><span class="lnt">103 +</span><span class="lnt">104 +</span><span class="lnt">105 +</span><span class="lnt">106 +</span><span class="lnt">107 +</span><span class="lnt">108 +</span><span class="lnt">109 +</span><span class="lnt">110 +</span><span class="lnt">111 +</span><span class="lnt">112 +</span><span class="lnt">113 +</span><span class="lnt">114 +</span><span class="lnt">115 +</span><span class="lnt">116 +</span><span class="lnt">117 +</span><span class="lnt">118 +</span><span class="lnt">119 +</span><span class="lnt">120 +</span><span class="lnt">121 +</span><span class="lnt">122 +</span><span class="lnt">123 +</span><span class="lnt">124 +</span><span class="lnt">125 +</span><span class="lnt">126 +</span><span class="lnt">127 +</span><span class="lnt">128 +</span><span class="lnt">129 +</span><span class="lnt">130 +</span><span class="lnt">131 +</span><span class="lnt">132 +</span><span class="lnt">133 +</span><span class="lnt">134 +</span><span class="lnt">135 +</span><span class="lnt">136 +</span><span class="lnt">137 +</span><span class="lnt">138 +</span><span class="lnt">139 +</span><span class="lnt">140 +</span><span class="lnt">141 +</span><span class="lnt">142 +</span><span class="lnt">143 +</span><span class="lnt">144 +</span><span class="lnt">145 +</span><span class="lnt">146 +</span><span class="lnt">147 +</span><span class="lnt">148 +</span><span class="lnt">149 +</span><span class="lnt">150 +</span><span class="lnt">151 +</span><span class="lnt">152 +</span><span class="lnt">153 +</span><span class="lnt">154 +</span><span class="lnt">155 +</span><span class="lnt">156 +</span><span class="lnt">157 +</span><span class="lnt">158 +</span><span class="lnt">159 +</span><span class="lnt">160 +</span><span class="lnt">161 +</span><span class="lnt">162 +</span><span class="lnt">163 +</span><span class="lnt">164 +</span><span class="lnt">165 +</span><span class="lnt">166 +</span><span class="lnt">167 +</span><span class="lnt">168 +</span><span class="lnt">169 +</span><span class="lnt">170 +</span><span class="lnt">171 +</span><span class="lnt">172 +</span><span class="lnt">173 +</span><span class="lnt">174 +</span><span class="lnt">175 +</span><span class="lnt">176 +</span><span class="lnt">177 +</span><span class="lnt">178 +</span><span class="lnt">179 +</span><span class="lnt">180 +</span><span class="lnt">181 +</span><span class="lnt">182 +</span><span class="lnt">183 +</span><span class="lnt">184 +</span><span class="lnt">185 +</span><span class="lnt">186 +</span><span class="lnt">187 +</span><span class="lnt">188 +</span><span class="lnt">189 +</span><span class="lnt">190 +</span><span class="lnt">191 +</span><span class="lnt">192 +</span><span class="lnt">193 +</span><span class="lnt">194 +</span><span class="lnt">195 +</span><span class="lnt">196 +</span><span class="lnt">197 +</span><span class="lnt">198 +</span><span class="lnt">199 +</span><span class="lnt">200 +</span><span class="lnt">201 +</span><span class="lnt">202 +</span><span class="lnt">203 +</span><span class="lnt">204 +</span><span class="lnt">205 +</span><span class="lnt">206 +</span><span class="lnt">207 +</span><span class="lnt">208 +</span><span class="lnt">209 +</span><span class="lnt">210 +</span><span class="lnt">211 +</span><span class="lnt">212 +</span><span class="lnt">213 +</span><span class="lnt">214 +</span><span class="lnt">215 +</span><span class="lnt">216 +</span><span class="lnt">217 +</span><span class="lnt">218 +</span><span class="lnt">219 +</span><span class="lnt">220 +</span><span class="lnt">221 +</span><span class="lnt">222 +</span><span class="lnt">223 +</span><span class="lnt">224 +</span><span class="lnt">225 +</span><span class="lnt">226 +</span><span class="lnt">227 +</span><span class="lnt">228 +</span><span class="lnt">229 +</span><span class="lnt">230 +</span><span class="lnt">231 +</span><span class="lnt">232 +</span><span class="lnt">233 +</span><span class="lnt">234 +</span><span class="lnt">235 +</span><span class="lnt">236 +</span><span class="lnt">237 +</span><span class="lnt">238 +</span><span class="lnt">239 +</span><span class="lnt">240 +</span><span class="lnt">241 +</span><span class="lnt">242 +</span><span class="lnt">243 +</span><span class="lnt">244 +</span><span class="lnt">245 +</span><span class="lnt">246 +</span><span class="lnt">247 +</span><span class="lnt">248 +</span><span class="lnt">249 +</span><span class="lnt">250 +</span><span class="lnt">251 +</span><span class="lnt">252 +</span><span class="lnt">253 +</span><span class="lnt">254 +</span><span class="lnt">255 +</span><span class="lnt">256 +</span><span class="lnt">257 +</span><span class="lnt">258 +</span><span class="lnt">259 +</span><span class="lnt">260 +</span><span class="lnt">261 +</span><span class="lnt">262 +</span><span class="lnt">263 +</span><span class="lnt">264 +</span><span class="lnt">265 +</span><span class="lnt">266 +</span><span class="lnt">267 +</span><span class="lnt">268 +</span><span class="lnt">269 +</span><span class="lnt">270 +</span><span class="lnt">271 +</span><span class="lnt">272 +</span><span class="lnt">273 +</span><span class="lnt">274 +</span><span class="lnt">275 +</span><span class="lnt">276 +</span><span class="lnt">277 +</span><span class="lnt">278 +</span><span class="lnt">279 +</span><span class="lnt">280 +</span><span class="lnt">281 +</span><span class="lnt">282 +</span><span class="lnt">283 +</span><span class="lnt">284 +</span><span class="lnt">285 +</span><span class="lnt">286 +</span><span class="lnt">287 +</span><span class="lnt">288 +</span><span class="lnt">289 +</span><span class="lnt">290 +</span><span class="lnt">291 +</span><span class="lnt">292 +</span><span class="lnt">293 +</span><span class="lnt">294 +</span><span class="lnt">295 +</span><span class="lnt">296 +</span><span class="lnt">297 +</span><span class="lnt">298 +</span><span class="lnt">299 +</span><span class="lnt">300 +</span><span class="lnt">301 +</span><span class="lnt">302 +</span><span class="lnt">303 +</span><span class="lnt">304 +</span><span class="lnt">305 +</span><span class="lnt">306 +</span><span class="lnt">307 +</span><span class="lnt">308 +</span><span class="lnt">309 +</span><span class="lnt">310 +</span><span class="lnt">311 +</span><span class="lnt">312 +</span><span class="lnt">313 +</span><span class="lnt">314 +</span><span class="lnt">315 +</span><span class="lnt">316 +</span><span class="lnt">317 +</span><span class="lnt">318 +</span><span class="lnt">319 +</span><span class="lnt">320 +</span><span class="lnt">321 +</span><span class="lnt">322 +</span><span class="lnt">323 +</span><span class="lnt">324 +</span><span class="lnt">325 +</span><span class="lnt">326 +</span><span class="lnt">327 +</span><span class="lnt">328 +</span><span class="lnt">329 +</span><span class="lnt">330 +</span><span class="lnt">331 +</span><span class="lnt">332 +</span><span class="lnt">333 +</span><span class="lnt">334 +</span><span class="lnt">335 +</span><span class="lnt">336 +</span><span class="lnt">337 +</span><span class="lnt">338 +</span><span class="lnt">339 +</span><span class="lnt">340 +</span><span class="lnt">341 +</span><span class="lnt">342 +</span><span class="lnt">343 +</span><span class="lnt">344 +</span><span class="lnt">345 +</span><span class="lnt">346 +</span><span class="lnt">347 +</span><span class="lnt">348 +</span><span class="lnt">349 +</span><span class="lnt">350 +</span><span class="lnt">351 +</span><span class="lnt">352 +</span><span class="lnt">353 +</span><span class="lnt">354 +</span><span class="lnt">355 +</span><span class="lnt">356 +</span><span class="lnt">357 +</span><span class="lnt">358 +</span><span class="lnt">359 +</span><span class="lnt">360 +</span><span class="lnt">361 +</span><span class="lnt">362 +</span><span class="lnt">363 +</span><span class="lnt">364 +</span><span class="lnt">365 +</span><span class="lnt">366 +</span><span class="lnt">367 +</span><span class="lnt">368 +</span><span class="lnt">369 +</span><span class="lnt">370 +</span><span class="lnt">371 +</span><span class="lnt">372 +</span><span class="lnt">373 +</span><span class="lnt">374 +</span><span class="lnt">375 +</span><span class="lnt">376 +</span><span class="lnt">377 +</span><span class="lnt">378 +</span><span class="lnt">379 +</span><span class="lnt">380 +</span><span class="lnt">381 +</span><span class="lnt">382 +</span><span class="lnt">383 +</span><span class="lnt">384 +</span><span class="lnt">385 +</span><span class="lnt">386 +</span><span class="lnt">387 +</span><span class="lnt">388 +</span><span class="lnt">389 +</span><span class="lnt">390 +</span><span class="lnt">391 +</span><span class="lnt">392 +</span><span class="lnt">393 +</span><span class="lnt">394 +</span><span class="lnt">395 +</span><span class="lnt">396 +</span><span class="lnt">397 +</span><span class="lnt">398 +</span><span class="lnt">399 +</span><span class="lnt">400 +</span><span class="lnt">401 +</span><span class="lnt">402 +</span><span class="lnt">403 +</span><span class="lnt">404 +</span><span class="lnt">405 +</span><span class="lnt">406 +</span><span class="lnt">407 +</span><span class="lnt">408 +</span><span class="lnt">409 +</span><span class="lnt">410 +</span><span class="lnt">411 +</span><span class="lnt">412 +</span><span class="lnt">413 +</span><span class="lnt">414 +</span><span class="lnt">415 +</span><span class="lnt">416 +</span><span class="lnt">417 +</span><span class="lnt">418 +</span><span class="lnt">419 +</span><span class="lnt">420 +</span><span class="lnt">421 +</span><span class="lnt">422 +</span><span class="lnt">423 +</span><span class="lnt">424 +</span><span class="lnt">425 +</span><span class="lnt">426 +</span><span class="lnt">427 +</span><span class="lnt">428 +</span><span class="lnt">429 +</span><span class="lnt">430 +</span><span class="lnt">431 +</span><span class="lnt">432 +</span><span class="lnt">433 +</span><span class="lnt">434 +</span><span class="lnt">435 +</span><span class="lnt">436 +</span><span class="lnt">437 +</span><span class="lnt">438 +</span><span class="lnt">439 +</span><span class="lnt">440 +</span><span class="lnt">441 +</span><span class="lnt">442 +</span><span class="lnt">443 +</span><span class="lnt">444 +</span><span class="lnt">445 +</span><span class="lnt">446 +</span><span class="lnt">447 +</span><span class="lnt">448 +</span><span class="lnt">449 +</span><span class="lnt">450 +</span><span class="lnt">451 +</span><span class="lnt">452 +</span><span class="lnt">453 +</span><span class="lnt">454 +</span><span class="lnt">455 +</span><span class="lnt">456 +</span><span class="lnt">457 +</span><span class="lnt">458 +</span><span class="lnt">459 +</span><span class="lnt">460 +</span><span class="lnt">461 +</span><span class="lnt">462 +</span><span class="lnt">463 +</span><span class="lnt">464 +</span><span class="lnt">465 +</span><span class="lnt">466 +</span><span class="lnt">467 +</span><span class="lnt">468 +</span><span class="lnt">469 +</span><span class="lnt">470 +</span><span class="lnt">471 +</span><span class="lnt">472 +</span><span class="lnt">473 +</span><span class="lnt">474 +</span><span class="lnt">475 +</span><span class="lnt">476 +</span><span class="lnt">477 +</span><span class="lnt">478 +</span><span class="lnt">479 +</span><span class="lnt">480 +</span><span class="lnt">481 +</span><span class="lnt">482 +</span><span class="lnt">483 +</span><span class="lnt">484 +</span><span class="lnt">485 +</span><span class="lnt">486 +</span><span class="lnt">487 +</span><span class="lnt">488 +</span><span class="lnt">489 +</span><span class="lnt">490 +</span><span class="lnt">491 +</span><span class="lnt">492 +</span><span class="lnt">493 +</span><span class="lnt">494 +</span><span class="lnt">495 +</span><span class="lnt">496 +</span><span class="lnt">497 +</span><span class="lnt">498 +</span><span class="lnt">499 +</span><span class="lnt">500 +</span><span class="lnt">501 +</span><span class="lnt">502 +</span><span class="lnt">503 +</span><span class="lnt">504 +</span><span class="lnt">505 +</span><span class="lnt">506 +</span><span class="lnt">507 +</span><span class="lnt">508 +</span><span class="lnt">509 +</span><span class="lnt">510 +</span><span class="lnt">511 +</span><span class="lnt">512 +</span><span class="lnt">513 +</span><span class="lnt">514 +</span><span class="lnt">515 +</span><span class="lnt">516 +</span><span class="lnt">517 +</span><span class="lnt">518 +</span><span class="lnt">519 +</span><span class="lnt">520 +</span><span class="lnt">521 +</span><span class="lnt">522 +</span><span class="lnt">523 +</span><span class="lnt">524 +</span><span class="lnt">525 +</span><span class="lnt">526 +</span><span class="lnt">527 +</span><span class="lnt">528 +</span><span class="lnt">529 +</span><span class="lnt">530 +</span><span class="lnt">531 +</span><span class="lnt">532 +</span><span class="lnt">533 +</span><span class="lnt">534 +</span><span class="lnt">535 +</span><span class="lnt">536 +</span><span class="lnt">537 +</span><span class="lnt">538 +</span><span class="lnt">539 +</span><span class="lnt">540 +</span><span class="lnt">541 +</span><span class="lnt">542 +</span><span class="lnt">543 +</span><span class="lnt">544 +</span><span class="lnt">545 +</span><span class="lnt">546 +</span><span class="lnt">547 +</span><span class="lnt">548 +</span><span class="lnt">549 +</span><span class="lnt">550 +</span><span class="lnt">551 +</span><span class="lnt">552 +</span><span class="lnt">553 +</span><span class="lnt">554 +</span><span class="lnt">555 +</span><span class="lnt">556 +</span><span class="lnt">557 +</span><span class="lnt">558 +</span><span class="lnt">559 +</span><span class="lnt">560 +</span><span class="lnt">561 +</span><span class="lnt">562 +</span><span class="lnt">563 +</span><span class="lnt">564 +</span><span class="lnt">565 +</span><span class="lnt">566 +</span><span class="lnt">567 +</span><span class="lnt">568 +</span><span class="lnt">569 +</span><span class="lnt">570 +</span><span class="lnt">571 +</span><span class="lnt">572 +</span><span class="lnt">573 +</span><span class="lnt">574 +</span><span class="lnt">575 +</span><span class="lnt">576 +</span><span class="lnt">577 +</span><span class="lnt">578 +</span><span class="lnt">579 +</span><span class="lnt">580 +</span><span class="lnt">581 +</span><span class="lnt">582 +</span><span class="lnt">583 +</span><span class="lnt">584 +</span><span class="lnt">585 +</span><span class="lnt">586 +</span><span class="lnt">587 +</span><span class="lnt">588 +</span><span class="lnt">589 +</span><span class="lnt">590 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">┌─<span class="o">[</span>loading<span class="o">]</span> <span class="o">[</span>/tmp/virgool<span class="o">]</span> <span class="o">[</span>0<span class="o">]</span> +</span></span><span class="line"><span class="cl">│ +</span></span><span class="line"><span class="cl">└──〉wget -nd -E -p -k -H https://vrgl.ir/c3fVa +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:03-- https://vrgl.ir/c3fVa +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">302</span> Found +</span></span><span class="line"><span class="cl">Location: https://virgool.io/@Novo/rsa-encryption-ao1poasym4cf <span class="o">[</span>following<span class="o">]</span> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:04-- https://virgool.io/@Novo/rsa-encryption-ao1poasym4cf +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/html<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘c3fVa.html’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">c3fVa.html <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 61.30K 200KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:06 <span class="o">(</span><span class="m">200</span> KB/s<span class="o">)</span> - ‘c3fVa.html’ saved <span class="o">[</span>62773<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:06-- https://virgool.io/robots.txt +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>document<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘robots.txt’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">robots.txt <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">484</span> --.-KB/s in 0s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:07 <span class="o">(</span>85.7 MB/s<span class="o">)</span> - ‘robots.txt’ saved <span class="o">[</span>484<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:07-- https://www.googletagmanager.com/robots.txt +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">404</span> Not Found +</span></span><span class="line"><span class="cl">2022-01-18 06:41:08 ERROR 404: Not Found. +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:08-- https://files.virgool.io/robots.txt +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">403</span> Forbidden +</span></span><span class="line"><span class="cl">2022-01-18 06:41:09 ERROR 403: Forbidden. +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:09-- https://static.cloudflareinsights.com/robots.txt +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">522</span> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:26 ERROR 522: <span class="o">(</span>no description<span class="o">)</span>. +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:26-- https://virgool.io/images/favicon.png?v<span class="o">=</span>v2.6.15 +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">9855</span> <span class="o">(</span>9.6K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘favicon.png?v<span class="o">=</span>v2.6.15’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">favicon.png?v<span class="o">=</span>v2.6.15 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 9.62K --.-KB/s in 0.07s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:27 <span class="o">(</span><span class="m">130</span> KB/s<span class="o">)</span> - ‘favicon.png?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>9855/9855<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:27-- https://virgool.io/css/styles.css?v<span class="o">=</span>v2.6.15 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/css<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘styles.css?v<span class="o">=</span>v2.6.15.css’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">styles.css?v<span class="o">=</span>v2.6.15.css <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 903.60K 592KB/s in 1.5s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:28 <span class="o">(</span><span class="m">592</span> KB/s<span class="o">)</span> - ‘styles.css?v<span class="o">=</span>v2.6.15.css’ saved <span class="o">[</span>925284<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:28-- https://virgool.test/robots.txt +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:28-- https://www.googletagmanager.com/ns.html?id<span class="o">=</span>GTM-5GS688K +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/html<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘ns.html?id<span class="o">=</span>GTM-5GS688K.html’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">ns.html?id<span class="o">=</span>GTM-5GS688K.html <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">266</span> --.-KB/s in 0s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:29 <span class="o">(</span>29.4 MB/s<span class="o">)</span> - ‘ns.html?id<span class="o">=</span>GTM-5GS688K.html’ saved <span class="o">[</span>266<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:29-- https://files.virgool.io/upload/users/31434/avatar/1C4LLE.png?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">39194</span> <span class="o">(</span>38K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_ 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 38.28K 173KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:30 <span class="o">(</span><span class="m">173</span> KB/s<span class="o">)</span> - ‘1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>39194/39194<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:30-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/qhokakomwyb5.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">179870</span> <span class="o">(</span>176K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘qhokakomwyb5.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">qhokakomwyb5.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 175.65K 567KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">567</span> KB/s<span class="o">)</span> - ‘qhokakomwyb5.png’ saved <span class="o">[</span>179870/179870<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/v1xnwpnewfys.webp +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">12770</span> <span class="o">(</span>12K<span class="o">)</span> <span class="o">[</span>image/webp<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘v1xnwpnewfys.webp’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">v1xnwpnewfys.webp 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 12.47K --.-KB/s in 0.07s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">180</span> KB/s<span class="o">)</span> - ‘v1xnwpnewfys.webp’ saved <span class="o">[</span>12770/12770<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/d28hpu2detkl.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">92847</span> <span class="o">(</span>91K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘d28hpu2detkl.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">d28hpu2detkl.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 90.67K --.-KB/s in 0.09s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">969</span> KB/s<span class="o">)</span> - ‘d28hpu2detkl.png’ saved <span class="o">[</span>92847/92847<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/rhyykrc8azq0.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">17539</span> <span class="o">(</span>17K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘rhyykrc8azq0.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">rhyykrc8azq0.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 17.13K --.-KB/s in 0.007s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>2.47 MB/s<span class="o">)</span> - ‘rhyykrc8azq0.png’ saved <span class="o">[</span>17539/17539<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/fjtc1ydzkuse.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">108524</span> <span class="o">(</span>106K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘fjtc1ydzkuse.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">fjtc1ydzkuse.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 105.98K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>1.06 MB/s<span class="o">)</span> - ‘fjtc1ydzkuse.png’ saved <span class="o">[</span>108524/108524<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/gfqhgyp18oic.jpeg +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">132085</span> <span class="o">(</span>129K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘gfqhgyp18oic.jpeg’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">gfqhgyp18oic.jpeg 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 128.99K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>1.28 MB/s<span class="o">)</span> - ‘gfqhgyp18oic.jpeg’ saved <span class="o">[</span>132085/132085<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/me0mpjtdmyom.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">113489</span> <span class="o">(</span>111K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘me0mpjtdmyom.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">me0mpjtdmyom.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 110.83K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span><span class="m">814</span> KB/s<span class="o">)</span> - ‘me0mpjtdmyom.png’ saved <span class="o">[</span>113489/113489<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/of7krju6oqzk.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">105746</span> <span class="o">(</span>103K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘of7krju6oqzk.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">of7krju6oqzk.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 103.27K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span>1.25 MB/s<span class="o">)</span> - ‘of7krju6oqzk.png’ saved <span class="o">[</span>105746/105746<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/oqwhflg4gbnq.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">120994</span> <span class="o">(</span>118K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘oqwhflg4gbnq.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">oqwhflg4gbnq.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 118.16K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span>1.14 MB/s<span class="o">)</span> - ‘oqwhflg4gbnq.png’ saved <span class="o">[</span>120994/120994<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/taqjnfnuzxcx.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">122678</span> <span class="o">(</span>120K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘taqjnfnuzxcx.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">taqjnfnuzxcx.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 119.80K --.-KB/s in 0.06s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span>2.00 MB/s<span class="o">)</span> - ‘taqjnfnuzxcx.png’ saved <span class="o">[</span>122678/122678<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/63/posts/qwqrubplfaau/g8vai2incgna.jpeg?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">88292</span> <span class="o">(</span>86K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fre 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 86.22K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span><span class="m">824</span> KB/s<span class="o">)</span> - ‘g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>88292/88292<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/63/avatar/o8jiNe.png?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">32037</span> <span class="o">(</span>31K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_ 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 31.29K --.-KB/s in 0.06s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span><span class="m">558</span> KB/s<span class="o">)</span> - ‘o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>32037/32037<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/31434/posts/e3oydlcfkr5e/figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">30356</span> <span class="o">(</span>30K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fre 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 29.64K --.-KB/s in 0.07s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span><span class="m">401</span> KB/s<span class="o">)</span> - ‘figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>30356/30356<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://files.virgool.io/upload/users/316150/posts/r8rhw88uh1xh/cs1ugyelv3zw.png?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">34459</span> <span class="o">(</span>34K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fres 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 33.65K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span><span class="m">399</span> KB/s<span class="o">)</span> - ‘cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>34459/34459<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://files.virgool.io/upload/users/316150/avatar/8sz7Rs.jpeg?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">14764</span> <span class="o">(</span>14K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 14.42K --.-KB/s in 0.007s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span>2.11 MB/s<span class="o">)</span> - ‘8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>14764/14764<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://virgool.io/js/commons.js?v<span class="o">=</span>v2.6.15 +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/javascript<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘commons.js?v<span class="o">=</span>v2.6.15’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">commons.js?v<span class="o">=</span>v2.6.15 <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 997.55K 337KB/s in 3.0s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:39 <span class="o">(</span><span class="m">337</span> KB/s<span class="o">)</span> - ‘commons.js?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>1021492<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:39-- https://virgool.io/js/main.js?v<span class="o">=</span>v2.6.15 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/javascript<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘main.js?v<span class="o">=</span>v2.6.15’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">main.js?v<span class="o">=</span>v2.6.15 <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 1.21M 580KB/s in 2.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:41 <span class="o">(</span><span class="m">580</span> KB/s<span class="o">)</span> - ‘main.js?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>1267632<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:41-- https://static.cloudflareinsights.com/beacon.min.js/v652eace1692a40cfa3763df669d7439c1639079717194 +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">13970</span> <span class="o">(</span>14K<span class="o">)</span> <span class="o">[</span>text/javascript<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘v652eace1692a40cfa3763df669d7439c1639079717194’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">v652eace1692a40cfa3763df669d743 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 13.64K --.-KB/s in 0.02s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:42 <span class="o">(</span><span class="m">600</span> KB/s<span class="o">)</span> - ‘v652eace1692a40cfa3763df669d7439c1639079717194’ saved <span class="o">[</span>13970/13970<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:42-- https://virgool.io/fonts/vazir/Vazir-Thin.ttf +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">98924</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Thin.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.61K 140KB/s in 0.7s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:43 <span class="o">(</span><span class="m">140</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.ttf’ saved <span class="o">[</span>98924/98924<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:43-- https://virgool.io/fonts/vazir/Vazir-Thin.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Thin.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.80K 276KB/s in 0.4s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:44 <span class="o">(</span><span class="m">276</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.eot?’ saved <span class="o">[</span>99120<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:44-- https://virgool.io/fonts/vazir/Vazir-Thin.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">54068</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Thin.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.80K --.-KB/s in 0.07s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:45 <span class="o">(</span><span class="m">770</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.woff’ saved <span class="o">[</span>54068/54068<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:45-- https://virgool.io/fonts/vazir/Vazir-Thin.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">43000</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Thin.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 41.99K --.-KB/s in 0.006s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:46 <span class="o">(</span>6.59 MB/s<span class="o">)</span> - ‘Vazir-Thin.woff2’ saved <span class="o">[</span>43000/43000<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:46-- https://virgool.io/fonts/vazir/Vazir-Light.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">105360</span> <span class="o">(</span>103K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Light.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 102.89K 478KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:46 <span class="o">(</span><span class="m">478</span> KB/s<span class="o">)</span> - ‘Vazir-Light.ttf’ saved <span class="o">[</span>105360/105360<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:46-- https://virgool.io/fonts/vazir/Vazir-Light.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Light.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 103.09K 470KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:47 <span class="o">(</span><span class="m">470</span> KB/s<span class="o">)</span> - ‘Vazir-Light.eot?’ saved <span class="o">[</span>105562<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:47-- https://virgool.io/fonts/vazir/Vazir-Light.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">59688</span> <span class="o">(</span>58K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Light.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 58.29K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:48 <span class="o">(</span><span class="m">758</span> KB/s<span class="o">)</span> - ‘Vazir-Light.woff’ saved <span class="o">[</span>59688/59688<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:48-- https://virgool.io/fonts/vazir/Vazir-Light.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">48168</span> <span class="o">(</span>47K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Light.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 47.04K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:48 <span class="o">(</span><span class="m">570</span> KB/s<span class="o">)</span> - ‘Vazir-Light.woff2’ saved <span class="o">[</span>48168/48168<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:48-- https://virgool.io/fonts/vazir/Vazir-Regular.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">98376</span> <span class="o">(</span>96K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Regular.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.07K 435KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:49 <span class="o">(</span><span class="m">435</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.ttf’ saved <span class="o">[</span>98376/98376<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:49-- https://virgool.io/fonts/vazir/Vazir-Regular.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Regular.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.26K 285KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:50 <span class="o">(</span><span class="m">285</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.eot?’ saved <span class="o">[</span>98574<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:50-- https://virgool.io/fonts/vazir/Vazir-Regular.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">53744</span> <span class="o">(</span>52K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Regular.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.48K --.-KB/s in 0.05s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:51 <span class="o">(</span>1.10 MB/s<span class="o">)</span> - ‘Vazir-Regular.woff’ saved <span class="o">[</span>53744/53744<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:51-- https://virgool.io/fonts/vazir/Vazir-Regular.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">42744</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Regular.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 41.74K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:51 <span class="o">(</span><span class="m">412</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.woff2’ saved <span class="o">[</span>42744/42744<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:51-- https://virgool.io/fonts/vazir/Vazir-Medium.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">98892</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Medium.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.57K 606KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:52 <span class="o">(</span><span class="m">606</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.ttf’ saved <span class="o">[</span>98892/98892<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:52-- https://virgool.io/fonts/vazir/Vazir-Medium.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Medium.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.78K 347KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:53 <span class="o">(</span><span class="m">347</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.eot?’ saved <span class="o">[</span>99100<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:53-- https://virgool.io/fonts/vazir/Vazir-Medium.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">54120</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Medium.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.85K 125KB/s in 0.4s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:54 <span class="o">(</span><span class="m">125</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.woff’ saved <span class="o">[</span>54120/54120<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:54-- https://virgool.io/fonts/vazir/Vazir-Medium.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">43152</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Medium.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.14K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:54 <span class="o">(</span><span class="m">541</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.woff2’ saved <span class="o">[</span>43152/43152<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:54-- https://virgool.io/fonts/vazir/Vazir-Bold.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">99840</span> <span class="o">(</span>98K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Bold.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 97.50K --.-KB/s in 0.04s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:55 <span class="o">(</span>2.61 MB/s<span class="o">)</span> - ‘Vazir-Bold.ttf’ saved <span class="o">[</span>99840/99840<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:55-- https://virgool.io/fonts/vazir/Vazir-Bold.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Bold.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 97.68K 560KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:56 <span class="o">(</span><span class="m">560</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.eot?’ saved <span class="o">[</span>100026<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:56-- https://virgool.io/fonts/vazir/Vazir-Bold.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">54560</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Bold.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 53.28K --.-KB/s in 0.06s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:56 <span class="o">(</span><span class="m">917</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.woff’ saved <span class="o">[</span>54560/54560<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:56-- https://virgool.io/fonts/vazir/Vazir-Bold.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">43604</span> <span class="o">(</span>43K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Bold.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.58K --.-KB/s in 0.06s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:57 <span class="o">(</span><span class="m">657</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.woff2’ saved <span class="o">[</span>43604/43604<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:57-- https://virgool.io/fonts/vazir/Vazir-Black.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">99772</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Black.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 97.43K --.-KB/s in 0.04s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:57 <span class="o">(</span>2.18 MB/s<span class="o">)</span> - ‘Vazir-Black.ttf’ saved <span class="o">[</span>99772/99772<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:57-- https://virgool.io/fonts/vazir/Vazir-Black.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Black.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 97.63K 478KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:58 <span class="o">(</span><span class="m">478</span> KB/s<span class="o">)</span> - ‘Vazir-Black.eot?’ saved <span class="o">[</span>99974<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:58-- https://virgool.io/fonts/vazir/Vazir-Black.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">54652</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Black.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 53.37K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:59 <span class="o">(</span><span class="m">691</span> KB/s<span class="o">)</span> - ‘Vazir-Black.woff’ saved <span class="o">[</span>54652/54652<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:59-- https://virgool.io/fonts/vazir/Vazir-Black.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">43332</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Black.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.32K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:00 <span class="o">(</span><span class="m">510</span> KB/s<span class="o">)</span> - ‘Vazir-Black.woff2’ saved <span class="o">[</span>43332/43332<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:00-- https://virgool.io/fonts/fontawesome/fa-solid-900.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">202616</span> <span class="o">(</span>198K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">fa-solid-900.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 197.87K 501KB/s in 0.4s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:01 <span class="o">(</span><span class="m">501</span> KB/s<span class="o">)</span> - ‘fa-solid-900.ttf’ saved <span class="o">[</span>202616/202616<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:01-- https://virgool.io/fonts/fontawesome/fa-solid-900.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">404</span> Not Found +</span></span><span class="line"><span class="cl">2022-01-18 06:42:01 ERROR 404: Not Found. +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:01-- https://virgool.io/fonts/fontawesome/fa-solid-900.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">103300</span> <span class="o">(</span>101K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">fa-solid-900.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 100.88K 358KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:02 <span class="o">(</span><span class="m">358</span> KB/s<span class="o">)</span> - ‘fa-solid-900.woff’ saved <span class="o">[</span>103300/103300<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:02-- https://virgool.io/fonts/fontawesome/fa-solid-900.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">79444</span> <span class="o">(</span>78K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">fa-solid-900.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 77.58K 394KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:03 <span class="o">(</span><span class="m">394</span> KB/s<span class="o">)</span> - ‘fa-solid-900.woff2’ saved <span class="o">[</span>79444/79444<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:03-- https://virgool.io/images/icons/plus.svg +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>image/svg+xml<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘plus.svg’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">plus.svg <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">942</span> --.-KB/s in 0.002s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:03 <span class="o">(</span><span class="m">383</span> KB/s<span class="o">)</span> - ‘plus.svg’ saved <span class="o">[</span>942<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:03-- https://virgool.io/images/icons/tick.svg +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>image/svg+xml<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘tick.svg’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">tick.svg <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">942</span> --.-KB/s in 0s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:04 <span class="o">(</span>89.8 MB/s<span class="o">)</span> - ‘tick.svg’ saved <span class="o">[</span>942<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:04-- https://virgool.io/images/typewriter.png +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">172558</span> <span class="o">(</span>169K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘typewriter.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">typewriter.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 168.51K 349KB/s in 0.5s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:05 <span class="o">(</span><span class="m">349</span> KB/s<span class="o">)</span> - ‘typewriter.png’ saved <span class="o">[</span>172558/172558<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:05-- https://virgool.test/images/download-audio.png +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:05-- https://virgool.test/images/download-ebook.png +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. +</span></span><span class="line"><span class="cl">FINISHED --2022-01-18 06:42:05-- +</span></span><span class="line"><span class="cl">Total wall clock time: 1m 2s +</span></span><span class="line"><span class="cl">Downloaded: <span class="m">54</span> files, 6.6M in 14s <span class="o">(</span><span class="m">479</span> KB/s<span class="o">)</span> +</span></span><span class="line"><span class="cl">Converting links in ns.html?id<span class="o">=</span>GTM-5GS688K.html... nothing to <span class="k">do</span>. +</span></span><span class="line"><span class="cl">Converting links in c3fVa.html... 38. +</span></span><span class="line"><span class="cl">31-7 +</span></span><span class="line"><span class="cl">Converting links in styles.css?v<span class="o">=</span>v2.6.15.css... 35. +</span></span><span class="line"><span class="cl">34-1 +</span></span><span class="line"><span class="cl">Converted links in <span class="m">3</span> files in 0.06 seconds. +</span></span></code></pre></td></tr></table> +</div> +</div> پلاگین های کاربردی گنومhttps://bit-orbit.github.io/p/%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C-%DA%AF%D9%86%D9%88%D9%85/Fri, 14 Jan 2022 18:18:28 +0330https://bit-orbit.github.io/p/%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C-%DA%AF%D9%86%D9%88%D9%85/<img src="https://bit-orbit.github.io/images/post/gp.jpg" alt="Featured image of post پلاگین های کاربردی گنوم " /><div dir='rtl' style="font-size:x-large;"> +<p>اگر مثل من از محیط gnome روی توزیع لینوکس استفاده می‌کنید، احتمالا شیفته سادگی‌اش شدید! اما بیایید چند پلاگین به آن اضافه کنیم تا درضمن داشتن این سادگی، عملکرد این محیط -را توسعه دهیم.</p> -<hr> -<div dir='ltr'> -<h3 id="i-shutdown-timerhttpsextensionsgnomeorgextension4372shutdowntimer">#I <a class="link" href="https://extensions.gnome.org/extension/4372/shutdowntimer/" target="_blank" rel="noopener" - >Shutdown Timer</a></h3> -</div> -<p>در لینوکس به سادگی با یک کامند می‌شود سیستم را زمانبندی کرد که +را توسعه دهیم.</p> +<hr> +<div dir='ltr'> +<h3 id="i-shutdown-timerhttpsextensionsgnomeorgextension4372shutdowntimer">#I <a class="link" href="https://extensions.gnome.org/extension/4372/shutdowntimer/" target="_blank" rel="noopener" +>Shutdown Timer</a> +</h3></div> +<p>در لینوکس به سادگی با یک کامند می‌شود سیستم را زمانبندی کرد که خاموش یا تعلیق شود. -با نصب این پلاگین مجبور به وارد کردن کامند برای خاموش/تعلیق کردن نیستیم!</p> -<p><img src="https://bit-orbit.github.io/images/post/shut.jpg" - - - - loading="lazy" - - alt="shutdown sch" - - -></p> -<hr> -<div dir='ltr'> -<h3 id="ii-application-volume-mixerhttpsextensionsgnomeorgextension3499application-volume-mixer">#II <a class="link" href="https://extensions.gnome.org/extension/3499/application-volume-mixer" target="_blank" rel="noopener" - >Application Volume Mixer</a></h3> -</div> -<p>بار ها شده که نیاز دارم صدای یک برنامه رو کم کنم و صدای برنامه‌ای دیگر را +با نصب این پلاگین مجبور به وارد کردن کامند برای خاموش/تعلیق کردن نیستیم!</p> +<p><img src="https://bit-orbit.github.io/images/post/shut.jpg" +loading="lazy" +alt="shutdown sch" +></p> +<hr> +<div dir='ltr'> +<h3 id="ii-application-volume-mixerhttpsextensionsgnomeorgextension3499application-volume-mixer">#II <a class="link" href="https://extensions.gnome.org/extension/3499/application-volume-mixer" target="_blank" rel="noopener" +>Application Volume Mixer</a> +</h3></div> +<p>بار ها شده که نیاز دارم صدای یک برنامه رو کم کنم و صدای برنامه‌ای دیگر را زیاد. ممکنه بعضی از برنامه ها مانند -<em>vlc</em> +<em>vlc</em> این امکان را خودشان فراهم کرده باشند. اما با این پلاگین شما به راحتی می‌توانید صدای -هر برنامه را به صورت مجزا کنترل کنید.</p> -<p><img src="https://bit-orbit.github.io/images/post/vl.png" - - - - loading="lazy" - - alt="Vulume mixer" - - -></p> -<hr> -<div dir='ltr'> -<h3 id="iii-dash-to-dockhttpsextensionsgnomeorgextension307dash-to-dock">III <a class="link" href="https://extensions.gnome.org/extension/307/dash-to-dock/" target="_blank" rel="noopener" - >dash-to-dock</a></h3> -</div> -<p>task bar +هر برنامه را به صورت مجزا کنترل کنید.</p> +<p><img src="https://bit-orbit.github.io/images/post/vl.png" +loading="lazy" +alt="Vulume mixer" +></p> +<hr> +<div dir='ltr'> +<h3 id="iii-dash-to-dockhttpsextensionsgnomeorgextension307dash-to-dock">III <a class="link" href="https://extensions.gnome.org/extension/307/dash-to-dock/" target="_blank" rel="noopener" +>dash-to-dock</a> +</h3></div> +<p>task bar پیشفرض گنوم بد نیست ولی ظاهر زیبایی هم نداره. اما این پلاگین task bar شما را به dock تبدیل می‌کند. -ظاهر کوچک و زیباتری دارد</p> -<p>به صورت پیشفرض زمانی که یک برنامه +ظاهر کوچک و زیباتری دارد</p> +<p>به صورت پیشفرض زمانی که یک برنامه maximize است dock @@ -2868,246 +2626,178 @@ dock dock پنهان شده است می‌رود dock -ظاهر می‌شود.</p> -<h2 id="dash-to-dockimagespostdash_to_dockjpg"><img src="https://bit-orbit.github.io/images/post/dash_to_dock.jpg" - - - - loading="lazy" - - alt="dash to dock" - - -></h2> -<div dir='ltr'> -<h3 id="iv-clipboard-indicatorhttpsextensionsgnomeorgextension779clipboard-indicator">#IV <a class="link" href="https://extensions.gnome.org/extension/779/clipboard-indicator/" target="_blank" rel="noopener" - >Clipboard Indicator</a></h3> -</div> -<p>فرض کیند متنی را کپی می‌کنیم و بعد از مدتی متن و یا فایل های دیگری را کپی می‌کنیم +ظاهر می‌شود.</p> +<h2 id="dash-to-dockimagespostdash_to_dockjpg"><img src="https://bit-orbit.github.io/images/post/dash_to_dock.jpg" +loading="lazy" +alt="dash to dock" +> +</h2><div dir='ltr'> +<h3 id="iv-clipboard-indicatorhttpsextensionsgnomeorgextension779clipboard-indicator">#IV <a class="link" href="https://extensions.gnome.org/extension/779/clipboard-indicator/" target="_blank" rel="noopener" +>Clipboard Indicator</a> +</h3></div> +<p>فرض کیند متنی را کپی می‌کنیم و بعد از مدتی متن و یا فایل های دیگری را کپی می‌کنیم و بعد از مدتی مجددا به متن اولیه نیاز پیدا کرده‌ایم ولی دیگر در کلیپ برد ما نیست -چرا که داده های بعدی جایگزین متن اولیه در کلیپ برد شده است.</p> -<p>پلاگین -<em>clipboard indicator</em> +چرا که داده های بعدی جایگزین متن اولیه در کلیپ برد شده است.</p> +<p>پلاگین +<em>clipboard indicator</em> هر متنی را که کپی کنیم را در فهرستی ذخیره می‌کند. علاوه به این یک فهرست -<em>favorite</em> +<em>favorite</em> هم در این کلیپ برد وجود دارد که می‌توانید متن هایی را به آن اضافه کنید که دیگر خذف نشوند. -و همچنین از فهرست اصلی جدا باشد.</p> -<p>و شاید بخشی از متنی را به یاد داشته باشید که نیاز دارید ببینید در کلیپ برد هست و یا -نه، برای اینکار هم یک بخش جست و جو وجود دارد.</p> -<h2 id="clipboardimagespostclpjpg"><img src="https://bit-orbit.github.io/images/post/clp.jpg" - - - - loading="lazy" - - alt="Clipboard" - - -></h2> -<div dir='ltr'> -<h3 id="v-net-speedhttpsextensionsgnomeorgextension104netspeed">#V <a class="link" href="https://extensions.gnome.org/extension/104/netspeed/" target="_blank" rel="noopener" - >net speed</a></h3> -</div> -<p>بیشتر مواقع نیاز داریم تا سرعت اینترنت را هنگام استفاده از آن ببینیم. +و همچنین از فهرست اصلی جدا باشد.</p> +<p>و شاید بخشی از متنی را به یاد داشته باشید که نیاز دارید ببینید در کلیپ برد هست و یا +نه، برای اینکار هم یک بخش جست و جو وجود دارد.</p> +<h2 id="clipboardimagespostclpjpg"><img src="https://bit-orbit.github.io/images/post/clp.jpg" +loading="lazy" +alt="Clipboard" +> +</h2><div dir='ltr'> +<h3 id="v-net-speedhttpsextensionsgnomeorgextension104netspeed">#V <a class="link" href="https://extensions.gnome.org/extension/104/netspeed/" target="_blank" rel="noopener" +>net speed</a> +</h3></div> +<p>بیشتر مواقع نیاز داریم تا سرعت اینترنت را هنگام استفاده از آن ببینیم. و یا زمانی که فایلی در شبکه انتقال می‌دهیم نیاز داریم تا سرعت انتقال را در هر لحظه بدانیم. پلاگین NetSpeed -این قابلیت را دارد که سرعت شبکه وایرلس و شبکه سیمی را مجزا نشان دهد.</p> -<p><img src="https://bit-orbit.github.io/images/post/netspeed.png" - - - - loading="lazy" - - alt="netspeed" - - -></p> -<hr> -<div dir='ltr'> -<h3 id="vi-caffeinehttpsextensionsgnomeorgextension517caffeine">#VI <a class="link" href="https://extensions.gnome.org/extension/517/caffeine/" target="_blank" rel="noopener" - >Caffeine</a></h3> -</div> -<p>وقتی برای مدتی به موس و کیبرد دست نزنیم صفحه نمایش خودکار خاموش می‌شود +این قابلیت را دارد که سرعت شبکه وایرلس و شبکه سیمی را مجزا نشان دهد.</p> +<p><img src="https://bit-orbit.github.io/images/post/netspeed.png" +loading="lazy" +alt="netspeed" +></p> +<hr> +<div dir='ltr'> +<h3 id="vi-caffeinehttpsextensionsgnomeorgextension517caffeine">#VI <a class="link" href="https://extensions.gnome.org/extension/517/caffeine/" target="_blank" rel="noopener" +>Caffeine</a> +</h3></div> +<p>وقتی برای مدتی به موس و کیبرد دست نزنیم صفحه نمایش خودکار خاموش می‌شود و بعد از مدتی سیستم به حالت suspend می‌رود. اولین راهی که ذهن ما می‌رسد این است که در تظیمات زمان به تعلیق درامدن سیستم را بیشتر کنیم. اما این روش زمانی که نیازش نداریم کار مفیدی نیست، چرا که ممکن است ساعات ها سیستم بدون هیچ استفاده‌ای روشن بماند. برای همین من این پلاگین را دارم، زمانی که نیاز دارم تا از سیستم دور باشم -کافئین رو روشن می‌کنم و زمانی که نمی‌دونم چی پیش میاد! خاموشش می‌‌کنم.</p> -<p><img src="https://bit-orbit.github.io/images/post/caf.png" - - - - loading="lazy" - - alt="caffein" - - -></p> -<hr> -<div dir='ltr'> -<h3 id="vii-google-searchhttpsextensionsgnomeorgextension4132google-search-provider">#VII <a class="link" href="https://extensions.gnome.org/extension/4132/google-search-provider/" target="_blank" rel="noopener" - >Google Search</a></h3> -</div> -<p>با وجود این اکستنشن شما مجبور به اجرای مرورگر برای جست و جوی یک عبارت نیستید. +کافئین رو روشن می‌کنم و زمانی که نمی‌دونم چی پیش میاد! خاموشش می‌‌کنم.</p> +<p><img src="https://bit-orbit.github.io/images/post/caf.png" +loading="lazy" +alt="caffein" +></p> +<hr> +<div dir='ltr'> +<h3 id="vii-google-searchhttpsextensionsgnomeorgextension4132google-search-provider">#VII <a class="link" href="https://extensions.gnome.org/extension/4132/google-search-provider/" target="_blank" rel="noopener" +>Google Search</a> +</h3></div> +<p>با وجود این اکستنشن شما مجبور به اجرای مرورگر برای جست و جوی یک عبارت نیستید. کافیه عبارت جست و جو رو در منوی overview خود گنوم بنویسید و بعد یکی از پیشنهاد های گوگل را انتخاب کنید. و -یا حتی خود عبارت را جست و جو کنید.</p> -<p><img src="https://extensions.gnome.org/extension-data/screenshots/screenshot_4132.png" - - - - loading="lazy" - - alt="google search" - - -></p> -<hr> -<h3 id="viii-jigglehttpsextensionsgnomeorgextension3438jiggle">#VIII <a class="link" href="https://extensions.gnome.org/extension/3438/jiggle/" target="_blank" rel="noopener" - >Jiggle</a></h3> -<p>کرسر موس رو گم کردین؟ موس رو تکون بدین!</p> -<p><img src="https://bit-orbit.github.io/images/post/screenshot_3438.gif" - - - - loading="lazy" - - alt="Jiggle" - - -></p> -<hr> -<h3 id="ix-custom-hot-cornershttpsextensionsgnomeorgextension1362custom-hot-corners">#IX <a class="link" href="https://extensions.gnome.org/extension/1362/custom-hot-corners/" target="_blank" rel="noopener" - >Custom Hot Corners</a></h3> -<p>یکی از پلاگین های مورد علاقه من، با این پلاگین لبه سیستم را برای یک عمل خاصی تنظیم می‌کنیم که وقتی +یا حتی خود عبارت را جست و جو کنید.</p> +<p><img src="https://extensions.gnome.org/extension-data/screenshots/screenshot_4132.png" +loading="lazy" +alt="google search" +></p> +<hr> +<h3 id="viii-jigglehttpsextensionsgnomeorgextension3438jiggle">#VIII <a class="link" href="https://extensions.gnome.org/extension/3438/jiggle/" target="_blank" rel="noopener" +>Jiggle</a> +</h3><p>کرسر موس رو گم کردین؟ موس رو تکون بدین!</p> +<p><img src="https://bit-orbit.github.io/images/post/screenshot_3438.gif" +loading="lazy" +alt="Jiggle" +></p> +<hr> +<h3 id="ix-custom-hot-cornershttpsextensionsgnomeorgextension1362custom-hot-corners">#IX <a class="link" href="https://extensions.gnome.org/extension/1362/custom-hot-corners/" target="_blank" rel="noopener" +>Custom Hot Corners</a> +</h3><p>یکی از پلاگین های مورد علاقه من، با این پلاگین لبه سیستم را برای یک عمل خاصی تنظیم می‌کنیم که وقتی کرسور موس به سمت آن رفت، آن عمل انجام بشود. مثلا وقتی موس به گوشه سمت بالا برخورد کرد، منوی over view -باز بشود. و یا مثلا نظیم می‌کنیم که وقتی موس به گوشه پایین سمنت چپ بر خورد کرد یک کامند اجرا شود.</p> -<p><img src="https://bit-orbit.github.io/images/post/1.gif" - - - - loading="lazy" - - alt="Custom Hot Corner" - - -></p> -</div> - - - zsh بهترین پلاگین های - https://bit-orbit.github.io/p/zsh-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C/ - Tue, 11 Jan 2022 02:44:12 +0330 - - https://bit-orbit.github.io/p/zsh-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C/ - <img src="https://bit-orbit.github.io/images/post/terminal.jpg" alt="Featured image of post zsh بهترین پلاگین های " /><p>نوشتن یک برنامه کار سختی نیست، بلکه نگه‌داری و آپدیت یک برنامه‌ست، پلاگین این ویژگی را می‌دهد تا به راحتی عملکرد یک برنامه را بی‌افزاییم.</p> -<hr> -<div dir='rtl' style='font-size:25px'> -<h3 id="themeshttpsgithubcomohmyzshohmyzshtreemasterpluginsthemes-"><a class="link" href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/themes" target="_blank" rel="noopener" - >themes</a> #Ⅳ</h3> -<p>انتخاب +باز بشود. و یا مثلا نظیم می‌کنیم که وقتی موس به گوشه پایین سمنت چپ بر خورد کرد یک کامند اجرا شود.</p> +<p><img src="https://bit-orbit.github.io/images/post/1.gif" +loading="lazy" +alt="Custom Hot Corner" +></p> +</div> zsh بهترین پلاگین هایhttps://bit-orbit.github.io/p/zsh-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C/Tue, 11 Jan 2022 02:44:12 +0330https://bit-orbit.github.io/p/zsh-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C/<img src="https://bit-orbit.github.io/images/post/terminal.jpg" alt="Featured image of post zsh بهترین پلاگین های " /><p>نوشتن یک برنامه کار سختی نیست، بلکه نگه‌داری و آپدیت یک برنامه‌ست، پلاگین این ویژگی را می‌دهد تا به راحتی عملکرد یک برنامه را بی‌افزاییم.</p> +<hr> +<div dir='rtl' style='font-size:25px'> +<h3 id="themeshttpsgithubcomohmyzshohmyzshtreemasterpluginsthemes-"><a class="link" href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/themes" target="_blank" rel="noopener" +>themes</a> #Ⅳ +</h3><p>انتخاب بین تم های zsh واقعا کار سختیه!‌ هر تم ظاهر جدیدی به ترمینال شما می‌دهد که -کار کردن در ترمینال را جذاب تر می‌کند.</p> -<p>با استفاده از این پلاگین شما بدون نیاز به تغییر دستی فایل کانفیگ -<code>zshrc.</code>، -می‌توانید تم را تغییر بدین.</p> -<p><img src="https://bit-orbit.github.io/images/post/theme.gif" - - - - loading="lazy" - - alt="theme-plugin" - - -></p> -<blockquote> -<ul> -<li>تغییر به یک تم مشخص</li> -</ul> -<p><code>theme theme_name</code></p> -</blockquote> -<blockquote> -<ul> -<li>تغییر رندم تم</li> -</ul> -<p><code>theme</code></p> -</blockquote> -<blockquote> -<ul> -<li>دیدن لیستی از تم های نصب شده</li> -</ul> -<p><code>lstheme</code></p> -</blockquote> -<hr> -<h3 id="zsh-autosuggestionshttpsgithubcomzsh-userszsh-autosuggestions-"><a class="link" href="https://github.com/zsh-users/zsh-autosuggestions" target="_blank" rel="noopener" - >zsh-autosuggestions</a> #Ⅲ</h3> -<blockquote> -<p><a class="link" href="https://github.com/zsh-users/zsh-autosuggestions" target="_blank" rel="noopener" - >تنها پلاگینی که باید نصب بشه</a></p> -</blockquote> -<p>این یکی از پلاگین هایی است که بدون آن زندگی ممکن نیست!</p> -<p>همانطور که شما دستوری را تایپ می‌کنید، متنی به رنگ خاکستری ظاهر می‌شود که +کار کردن در ترمینال را جذاب تر می‌کند.</p> +<p>با استفاده از این پلاگین شما بدون نیاز به تغییر دستی فایل کانفیگ +<code>zshrc.</code>، +می‌توانید تم را تغییر بدین.</p> +<p><img src="https://bit-orbit.github.io/images/post/theme.gif" +loading="lazy" +alt="theme-plugin" +></p> +<blockquote> +<ul> +<li>تغییر به یک تم مشخص</li> +</ul> +<p><code>theme theme_name</code></p> +</blockquote> +<blockquote> +<ul> +<li>تغییر رندم تم</li> +</ul> +<p><code>theme</code></p> +</blockquote> +<blockquote> +<ul> +<li>دیدن لیستی از تم های نصب شده</li> +</ul> +<p><code>lstheme</code></p> +</blockquote> +<hr> +<h3 id="zsh-autosuggestionshttpsgithubcomzsh-userszsh-autosuggestions-"><a class="link" href="https://github.com/zsh-users/zsh-autosuggestions" target="_blank" rel="noopener" +>zsh-autosuggestions</a> #Ⅲ +</h3><blockquote> +<p><a class="link" href="https://github.com/zsh-users/zsh-autosuggestions" target="_blank" rel="noopener" +>تنها پلاگینی که باید نصب بشه</a></p> +</blockquote> +<p>این یکی از پلاگین هایی است که بدون آن زندگی ممکن نیست!</p> +<p>همانطور که شما دستوری را تایپ می‌کنید، متنی به رنگ خاکستری ظاهر می‌شود که به شما دستورات ممکن را پیشنهاد می‌دهد و یا از history دستور مشابه که قبلا اجرا کرده‌اید را جست و جو می‌کند و پیشنهاد می‌هد. و خب شما را برای تایپ کردن کامل دستور و سوییچ هایش راحت می‌کند. برای اینکه دستور ظاهر شده تایپ شود کافیست کلید -<code>right arrow key</code> +<code>right arrow key</code> یا همان -<code>فلش سمت راست</code> -را فشار دهید.</p> -<p><img src="https://bit-orbit.github.io/images/post/zsh-autosuggestions-gif.gif" - - - - loading="lazy" - - alt="zsh-autosuggestion" - - -></p> -<hr> -<h3 id="sudohttpsgithubcomohmyzshohmyzshtreemasterpluginssudo-"><a class="link" href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/sudo" target="_blank" rel="noopener" - >sudo</a> #Ⅱ</h3> -<p>بار ها اتفاق افتاده دستوری را که نیاز به دسترسی +<code>فلش سمت راست</code> +را فشار دهید.</p> +<p><img src="https://bit-orbit.github.io/images/post/zsh-autosuggestions-gif.gif" +loading="lazy" +alt="zsh-autosuggestion" +></p> +<hr> +<h3 id="sudohttpsgithubcomohmyzshohmyzshtreemasterpluginssudo-"><a class="link" href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/sudo" target="_blank" rel="noopener" +>sudo</a> #Ⅱ +</h3><p>بار ها اتفاق افتاده دستوری را که نیاز به دسترسی root داشته را بدون نوشتن کلمه -<em>sudo</em> +<em>sudo</em> اجرا کرده‌ام، و بعد از دیدن ارور، دستور را دوباره تایپ کردم و کلمه -<em>sudo</em> +<em>sudo</em> را هم به اول دستور اضافه کردم. اما این پلاگین بار تایپ مجدد یک دستور بخاطر فراموش کردن کلمه -<em>sudo</em> +<em>sudo</em> را از دوش ما بر‌ می‌دارد. کافیست بعد از نوشتن و اجرای دستور بدون -<em>sudo</em>، +<em>sudo</em>، دوبار کلید -<code>esc</code> -را بزنید</p> -<p><img src="https://bit-orbit.github.io/images/post/sudo.gif" - - - - loading="lazy" - - alt="zsh-sudo-theme" - - -></p> -<hr> -<h3 id="web-searchhttpsgithubcomohmyzshohmyzshtreemasterpluginsweb-search-"><a class="link" href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/web-search" target="_blank" rel="noopener" - >web-search</a> #Ⅰ</h3> -<p>وقتی با لینوکس کار می‌‌کنید، تمام لحظه ها در ترمینال هستنید. +<code>esc</code> +را بزنید</p> +<p><img src="https://bit-orbit.github.io/images/post/sudo.gif" +loading="lazy" +alt="zsh-sudo-theme" +></p> +<hr> +<h3 id="web-searchhttpsgithubcomohmyzshohmyzshtreemasterpluginsweb-search-"><a class="link" href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/web-search" target="_blank" rel="noopener" +>web-search</a> #Ⅰ +</h3><p>وقتی با لینوکس کار می‌‌کنید، تمام لحظه ها در ترمینال هستنید. فرض کنید سوالی دارید که باید آن را گوگل کنید،‌ شما مجبور می‌شوید مرورگر را باز کنید، یک تب جدید ایجاد کنید و متنتان را سرچ کنید. ولی به این فکر کنید که نیازی به باز کردن مرورگر و یا سوییچ کردن بین ویندوز ها ندارید، @@ -3115,78 +2805,67 @@ root google را در ترمینال تایپ کنید و متن خود را جلو آن بنوسید و در آخر دکمه اینتر را بزنید! -بنگ! گوگل باز می‌شود و حاصل جست و جوی شما آماده است.</p> -<p><img src="https://bit-orbit.github.io/images/post/web-search.gif" - - - - loading="lazy" - - alt="web-search" - - -></p> -</div> -<table> - <thead> - <tr> - <th style="text-align: center">دستور\موتور جست و جو</th> - </tr> - </thead> - <tbody> - <tr> - <td style="text-align: center"><code>bing</code></td> - </tr> - <tr> - <td style="text-align: center"><code>google</code></td> - </tr> - <tr> - <td style="text-align: center"><code>yahoo</code></td> - </tr> - <tr> - <td style="text-align: center"><code>ddg</code> or <code>duckduckgo</code></td> - </tr> - <tr> - <td style="text-align: center"><code>sp</code> or <code>startpage</code></td> - </tr> - <tr> - <td style="text-align: center"><code>yandex</code></td> - </tr> - <tr> - <td style="text-align: center"><code>github</code></td> - </tr> - <tr> - <td style="text-align: center"><code>baidu</code></td> - </tr> - <tr> - <td style="text-align: center"><code>ecosia</code></td> - </tr> - <tr> - <td style="text-align: center"><code>goodreads</code></td> - </tr> - <tr> - <td style="text-align: center"><code>qwant</code></td> - </tr> - <tr> - <td style="text-align: center"><code>givero</code></td> - </tr> - <tr> - <td style="text-align: center"><code>stackoverflow</code></td> - </tr> - <tr> - <td style="text-align: center"><code>wolframalpha</code></td> - </tr> - <tr> - <td style="text-align: center"><code>archive</code></td> - </tr> - <tr> - <td style="text-align: center"><code>scholar</code></td> - </tr> - </tbody> -</table> -<hr> - - - - - +بنگ! گوگل باز می‌شود و حاصل جست و جوی شما آماده است.</p> +<p><img src="https://bit-orbit.github.io/images/post/web-search.gif" +loading="lazy" +alt="web-search" +></p> +</div> +<table> +<thead> +<tr> +<th style="text-align: center">دستور\موتور جست و جو</th> +</tr> +</thead> +<tbody> +<tr> +<td style="text-align: center"><code>bing</code></td> +</tr> +<tr> +<td style="text-align: center"><code>google</code></td> +</tr> +<tr> +<td style="text-align: center"><code>yahoo</code></td> +</tr> +<tr> +<td style="text-align: center"><code>ddg</code> or <code>duckduckgo</code></td> +</tr> +<tr> +<td style="text-align: center"><code>sp</code> or <code>startpage</code></td> +</tr> +<tr> +<td style="text-align: center"><code>yandex</code></td> +</tr> +<tr> +<td style="text-align: center"><code>github</code></td> +</tr> +<tr> +<td style="text-align: center"><code>baidu</code></td> +</tr> +<tr> +<td style="text-align: center"><code>ecosia</code></td> +</tr> +<tr> +<td style="text-align: center"><code>goodreads</code></td> +</tr> +<tr> +<td style="text-align: center"><code>qwant</code></td> +</tr> +<tr> +<td style="text-align: center"><code>givero</code></td> +</tr> +<tr> +<td style="text-align: center"><code>stackoverflow</code></td> +</tr> +<tr> +<td style="text-align: center"><code>wolframalpha</code></td> +</tr> +<tr> +<td style="text-align: center"><code>archive</code></td> +</tr> +<tr> +<td style="text-align: center"><code>scholar</code></td> +</tr> +</tbody> +</table> +<hr> \ No newline at end of file diff --git a/docs/categories/tech/page/1/index.html b/docs/categories/tech/page/1/index.html index 5ea885e..a3ec9bc 100644 --- a/docs/categories/tech/page/1/index.html +++ b/docs/categories/tech/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/categories/tech/ - - - - - - +https://bit-orbit.github.io/categories/tech/ + \ No newline at end of file diff --git a/docs/categories/tech/page/2/index.html b/docs/categories/tech/page/2/index.html index 4c27405..5be5ddf 100644 --- a/docs/categories/tech/page/2/index.html +++ b/docs/categories/tech/page/2/index.html @@ -1,625 +1,38 @@ - - - - -Category: Tech - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Categories - -

- -
-
-

9 صفحه

-

Tech

- -
-
-
- -
- - - - - - - - - -
- - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Category: Tech - Pager 2 - bit-orbit +

Categories

9 صفحه

Tech

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git a/docs/categories/terminal/index.html b/docs/categories/terminal/index.html index 8b3f1eb..f656101 100644 --- a/docs/categories/terminal/index.html +++ b/docs/categories/terminal/index.html @@ -1,559 +1,37 @@ - - - - -Category: Terminal - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Categories - -

- -
-
-

1 صفحه

-

Terminal

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Category: Terminal - bit-orbit +

Categories

1 صفحه

Terminal

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git a/docs/categories/terminal/index.xml b/docs/categories/terminal/index.xml index 787a2b4..03f9c96 100644 --- a/docs/categories/terminal/index.xml +++ b/docs/categories/terminal/index.xml @@ -1,79 +1,65 @@ - - - - Terminal on bit-orbit - https://bit-orbit.github.io/categories/terminal/ - Recent content in Terminal on bit-orbit - Hugo -- gohugo.io - fa - Wed, 06 Mar 2024 23:50:46 +0330 - Crul Paste - https://bit-orbit.github.io/p/crul-paste/ - Wed, 06 Mar 2024 23:50:46 +0330 - - https://bit-orbit.github.io/p/crul-paste/ - <img src="https://bit-orbit.github.io/images/post/curlpaste.jpg" alt="Featured image of post Crul Paste" /><p>اول بیایید ببینم +Terminal on bit-orbithttps://bit-orbit.github.io/categories/terminal/Recent content in Terminal on bit-orbitHugo -- gohugo.iofaWed, 06 Mar 2024 23:50:46 +0330Crul Pastehttps://bit-orbit.github.io/p/crul-paste/Wed, 06 Mar 2024 23:50:46 +0330https://bit-orbit.github.io/p/crul-paste/<img src="https://bit-orbit.github.io/images/post/curlpaste.jpg" alt="Featured image of post Crul Paste" /><p>اول بیایید ببینم FileBin چیه! قبل از اون هم فکر می‌کنم همه بدونیم -<a class="link" href="https://virgool.io/@m_shabane/pastebin-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B1%D8%A7-%D9%87%DA%A9%D8%B1-%D9%87%D8%A7-%D8%B9%D8%A7%D8%B4%D9%82-%D8%A2%D9%86-%D9%87%D8%A7%D8%B3%D8%AA%D9%86%D8%AF-swafqm95gttp" target="_blank" rel="noopener" - >pastebin</a> +<a class="link" href="https://virgool.io/@m_shabane/pastebin-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B1%D8%A7-%D9%87%DA%A9%D8%B1-%D9%87%D8%A7-%D8%B9%D8%A7%D8%B4%D9%82-%D8%A2%D9%86-%D9%87%D8%A7%D8%B3%D8%AA%D9%86%D8%AF-swafqm95gttp" target="_blank" rel="noopener" +>pastebin</a> چیه. اگه نمی‌دونید خیلی ساده باید بگم یک سایتی که فقط روی اون متن به اشتراک می‌ذارن -مثلا ممکنه ارور ها یا حتی سورس یک برنامه باشه!</p> -<p>اما +مثلا ممکنه ارور ها یا حتی سورس یک برنامه باشه!</p> +<p>اما FileBin ها بجای تسکت فایل های شما رو نگهداری می‌کنند و به شما لینکی ارائه می‌کنند که فایل را برای دیگران اشتراک بگذارید، نمونه های زیادی هم وجود داره مثل -<a class="link" href="https://wormhole.app" target="_blank" rel="noopener" - >https://wormhole.app</a></p> -<p>اما خب از اونجایی که من زندگی‌ام رو توی ترمینال می‌گذرونم و ترمینال رو به باز کردن مرورگر برای اشتراک یک فایل ترجیح می‌دم، پس از +<a class="link" href="https://wormhole.app" target="_blank" rel="noopener" +>https://wormhole.app</a></p> +<p>اما خب از اونجایی که من زندگی‌ام رو توی ترمینال می‌گذرونم و ترمینال رو به باز کردن مرورگر برای اشتراک یک فایل ترجیح می‌دم، پس از FileBin هایی استفاده می‌کنم که بتونم تحت ترمینال به سادگی فایلم رو به اشتراک بذارم. برای مثال -<a class="link" href="https://0x0.st" target="_blank" rel="noopener" - >https://0x0.st</a></p> -<p>وقتی این رو سایت رو باز کنید هیچ گزینه‌ای برای انتخاب فایل و آپلود نمی‌بینید! خب پس چطور باید یک فایل را برای سایت آپلود کنید؟ +<a class="link" href="https://0x0.st" target="_blank" rel="noopener" +>https://0x0.st</a></p> +<p>وقتی این رو سایت رو باز کنید هیچ گزینه‌ای برای انتخاب فایل و آپلود نمی‌بینید! خب پس چطور باید یک فایل را برای سایت آپلود کنید؟ کافیه یک ریکوئست HTTP POST خیلی ساده به سایت بزنید که شامل فایتون باشه. این کار رو خیلی ساده می‌شه با curl -انجام داد.</p> -<p>مثلا بیایین اشتراک یک فایل رو ببینیم</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl https://0x0.st -F <span class="nv">file</span><span class="o">=</span>@/path/to/file -</span></span><span class="line"><span class="cl"><span class="c1"># https://0x0.st/zWKo.txt</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>این سایت خیلی خوبه +انجام داد.</p> +<p>مثلا بیایین اشتراک یک فایل رو ببینیم</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl https://0x0.st -F <span class="nv">file</span><span class="o">=</span>@/path/to/file +</span></span><span class="line"><span class="cl"><span class="c1"># https://0x0.st/zWKo.txt</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>این سایت خیلی خوبه اما از زمانی به بعد دیگه این سایت کاری که من نیاز دارم رو کفاف نداد! برای مثال من نیاز دارم فایلم بعد از اولین دانلود از روی سرور حذف بشه و از این مهم تر نیاز داشتم که چندین فایل رو با یک یوزنیم مشخص اپلود کنم که خب شخصی که قرار باشه فایل ها رو دانلود کنه، کافیه از یوزنیم استفاده کنه که راحت تر قابل حفظ کردن و اشتراک گذاشتنه. اینطوری بود که گفتم FileBin -خودم رو بنویسم :)</p> -<hr> -<p><strong>بیایید فیچر ها و روش استفاده ازش رو با هم ببینیم.</strong></p> -<p>فرض کنید شما یک فایل دارید که می‌خواهید با من به اشتراک بگذارید، +خودم رو بنویسم :)</p> +<hr> +<p><strong>بیایید فیچر ها و روش استفاده ازش رو با هم ببینیم.</strong></p> +<p>فرض کنید شما یک فایل دارید که می‌خواهید با من به اشتراک بگذارید، خیلی ساده ترمینال رو باز می‌کنید و با یک دستور فایل رو با یک URL -تقریبا تصادفی منتشر می‌کنید.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">file</span><span class="o">=</span>@/tmp/theFile.fli -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/theFile.fli</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>دقت کنید من از سوییچ +تقریبا تصادفی منتشر می‌کنید.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">file</span><span class="o">=</span>@/tmp/theFile.fli +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/theFile.fli</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>دقت کنید من از سوییچ -L استفاده می‌کنم، دلیل اینکار این هست که خب ممکنه سایت شما رو ریدایرکت کنه. مثلا از @@ -82,206 +68,201 @@ http https. برای همین این سوییچ رو استفاده می‌کنم. با این سوییچ دیگه نیازی نیست https:// -رو هم بنویسیم!</p> -</blockquote> -<p>حالا اگه نیاز دارین که فایلتون بعد از اولین دانلود از روی سرور حذف بشه و دیگه در دسترس نباشه +رو هم بنویسیم!</p> +</blockquote> +<p>حالا اگه نیاز دارین که فایلتون بعد از اولین دانلود از روی سرور حذف بشه و دیگه در دسترس نباشه کافیه از کلمه -<code>once</code> +<code>once</code> بجای -<code>file</code> -استفاده کنید.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@/tmp/theFile.fli -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/theFile_GKug7xb.fli</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>تا اینجای کار همه +<code>file</code> +استفاده کنید.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@/tmp/theFile.fli +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/theFile_GKug7xb.fli</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>تا اینجای کار همه URL های هر فایلی به صورت تصادفی هست و من نیاز دارم که چندین فایل رو زیر یک یوزنیم مشخص مثل -<code>arya</code> +<code>arya</code> قرار بدم. اینطوری وقتی قراره یک فایل رو برای همکارم توی شرکت بفرستم خیلی ساده ازش درخواست می‌کنم در سایت به ادرس -<code>/arya</code> +<code>/arya</code> بره. حالا چطوری اینکارو بکنیم خیلی ساده بجای -<code>once</code> +<code>once</code> یا -<code>file</code>, +<code>file</code>, همون -<code>username</code> -رو می‌نویسیم(توی مثال من از نام <strong><em>arya</em></strong> استفاده می‌کنیم)</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">arya</span><span class="o">=</span>@/tmp/pic.jpg -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/arya</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>تا اینجای کار مثلا شما چند بار چند فایل مختلف رو زیر یک یوزنیم قرار دادین -حالا چطور میشه همه اونها رو باهم دانلود کرد؟</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir/arya <span class="p">|</span> wget -i - -</span></span></code></pre></td></tr></table> -</div> -</div><p>حالا به این فکر کنید که یکنفر میاد و با یوزنیم های معقول ریکوئست میزنه به سایت و +<code>username</code> +رو می‌نویسیم(توی مثال من از نام <strong><em>arya</em></strong> استفاده می‌کنیم)</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">arya</span><span class="o">=</span>@/tmp/pic.jpg +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/arya</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>تا اینجای کار مثلا شما چند بار چند فایل مختلف رو زیر یک یوزنیم قرار دادین +حالا چطور میشه همه اونها رو باهم دانلود کرد؟</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir/arya <span class="p">|</span> wget -i - +</span></span></code></pre></td></tr></table> +</div> +</div><p>حالا به این فکر کنید که یکنفر میاد و با یوزنیم های معقول ریکوئست میزنه به سایت و فایل های بقیه رو دانلود می‌کنه، اینجاست که پسورد به کار میاد. برای گذاشتن پسورد روی هر فایل کافیه توی خود URL سایت پسورد رو بعنوان http parametr -بنویسد.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L <span class="s1">&#39;octocat.ir/?password=12345678&#39;</span> -F <span class="nv">once</span><span class="o">=</span>@/Desktop/TopSecret.fli -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/file/TopSecret/?password=12345678</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>اینجا دقت کنید که باید از کوتیشن استفاده کنیم چون علامت مساوی و علامت سوال رو bash وایلد کارد می‌بینه.</p> -</blockquote> -<p>برای دانلود هر فایلی هم که پسورد داره کافیه دقیقا مثل مثال قبلی عمل کنید و پسورد رو توی +بنویسد.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L <span class="s1">&#39;octocat.ir/?password=12345678&#39;</span> -F <span class="nv">once</span><span class="o">=</span>@/Desktop/TopSecret.fli +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/file/TopSecret/?password=12345678</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>اینجا دقت کنید که باید از کوتیشن استفاده کنیم چون علامت مساوی و علامت سوال رو bash وایلد کارد می‌بینه.</p> +</blockquote> +<p>برای دانلود هر فایلی هم که پسورد داره کافیه دقیقا مثل مثال قبلی عمل کنید و پسورد رو توی http parametr -وارد کنید</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ wget <span class="s1">&#39;octocat.ir/file/TopSecret/?password=12345678&#39;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>براتون سواله که چرا پسورد روی توی +وارد کنید</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ wget <span class="s1">&#39;octocat.ir/file/TopSecret/?password=12345678&#39;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>براتون سواله که چرا پسورد روی توی URL گذاشتم؟ می‌شد که مثلا توی http header پسورد بگیریم و بدیم، پس چرا توی -URL?</p> -<p>اینکار برای این هست که دسترسی به فایل ساده باشه. مثلا من وقتی می‌خام فایلی رو برای همکارم بفرستم +URL?</p> +<p>اینکار برای این هست که دسترسی به فایل ساده باشه. مثلا من وقتی می‌خام فایلی رو برای همکارم بفرستم و خب فرض کنم همکار من از header ها چیزی نمی‌دونه، و فقط با یک کلیک باید بتونه به فایل دسترسی پیدا کنه، اینجاست که من فقط یک URL -به اون می‌گم :)</p> -<hr> -<p>بعضی از ابزار ها +به اون می‌گم :)</p> +<hr> +<p>بعضی از ابزار ها hackable هستند! این به معنی ضعف امنیتی نیست، بلکه به این اشاره می‌کنه ابزار به روشی طراحی -شده که کاربران می‌تونند خارج از هدف اصلی اون ابزار از اون استفاه کنند.</p> -<p>برای مثال ابزار که من درست کردم برای اشتراک فایل هست، اما بنظرتون میشه یک دایرکتوری و یا یک متن رو هم باهاش به اشتراک گذاشت؟</p> -<p>قطعا! اما چطوری؟</p> -<p>برای اینکه یک دایرکتوری با تمامی ساب دایرکتوری هاش رو بفرستین +شده که کاربران می‌تونند خارج از هدف اصلی اون ابزار از اون استفاه کنند.</p> +<p>برای مثال ابزار که من درست کردم برای اشتراک فایل هست، اما بنظرتون میشه یک دایرکتوری و یا یک متن رو هم باهاش به اشتراک گذاشت؟</p> +<p>قطعا! اما چطوری؟</p> +<p>برای اینکه یک دایرکتوری با تمامی ساب دایرکتوری هاش رو بفرستین کافیه از -<code>tar</code> -استفاده کنید.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ tar -cf - ~/Pictures <span class="p">|</span> curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@- -</span></span><span class="line"><span class="cl"><span class="c1"># &#39;octocat.ir/file/_nUiuRPW/</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>با اینکار با استفاده از +<code>tar</code> +استفاده کنید.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ tar -cf - ~/Pictures <span class="p">|</span> curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@- +</span></span><span class="line"><span class="cl"><span class="c1"># &#39;octocat.ir/file/_nUiuRPW/</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>با اینکار با استفاده از tar تمامی فایل ها و دایرکتوری های مثلا پوشه -<em>~/Pictures</em> +<em>~/Pictures</em> رو به آرشیو -<code>tar</code> +<code>tar</code> تبدیل می‌کنید و بعد خروجی رو بعنوان ورودی به -<code>curl</code> -می‌فرستین.</p> -<p>حالا به این فکر کنید که بخواهیم یک متن رو منتشر کنیم، راهکار دقیقا مشابه قبلیه. +<code>curl</code> +می‌فرستین.</p> +<p>حالا به این فکر کنید که بخواهیم یک متن رو منتشر کنیم، راهکار دقیقا مشابه قبلیه. به این شکل که یک متن رو با استفاده از -<code>echo</code> +<code>echo</code> به ورودی استاندارد -<code>curl</code> -می‌فرستیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ <span class="nb">echo</span> <span class="s1">&#39;Some Random Text&#39;</span> <span class="p">|</span> curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@- -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/file/-_W00DSbS/</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>اینطوری خیلی راحت می‌شه خروجی هر کامندی رو روی به اشتراک گذاشت</p> -</blockquote> -<hr> -<p>سایت من توی آدرس +<code>curl</code> +می‌فرستیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ <span class="nb">echo</span> <span class="s1">&#39;Some Random Text&#39;</span> <span class="p">|</span> curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@- +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/file/-_W00DSbS/</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>اینطوری خیلی راحت می‌شه خروجی هر کامندی رو روی به اشتراک گذاشت</p> +</blockquote> +<hr> +<p>سایت من توی آدرس octocat.ir -در دسترسه، خوشحال می‌شم ازش استفاده کنید :)</p> -<blockquote> -<p>اینو بدونید که سایت به صورت دیفالت فایل ها رو برای 24 ساعت نگه‌میداره</p> -</blockquote> -<p>این سرویس رو منبع باز روی -<a class="link" href="https://github.com/shabane/CurlPaste/" target="_blank" rel="noopener" - >گیتهاب</a> -گذاشتم، اگه چیزی خواستید می‌تونید بهش اضافه کنید و یا مشکلاتش رو پچ کنید.</p> -<p>و اگه می‌خواهید برای خودتون این سرویس رو بیارید بالا از ایمیج داکر استفاده کنید</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">docker run -p 80:80 mshabane/curlpaste:latest -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>اگه نیاز دارین تا فایل ها برای تایم بالاتری نگه‌داری بشه، متغییر -<em>HOURS</em> +در دسترسه، خوشحال می‌شم ازش استفاده کنید :)</p> +<blockquote> +<p>اینو بدونید که سایت به صورت دیفالت فایل ها رو برای 24 ساعت نگه‌میداره</p> +</blockquote> +<p>این سرویس رو منبع باز روی +<a class="link" href="https://github.com/shabane/CurlPaste/" target="_blank" rel="noopener" +>گیتهاب</a> +گذاشتم، اگه چیزی خواستید می‌تونید بهش اضافه کنید و یا مشکلاتش رو پچ کنید.</p> +<p>و اگه می‌خواهید برای خودتون این سرویس رو بیارید بالا از ایمیج داکر استفاده کنید</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">docker run -p 80:80 mshabane/curlpaste:latest +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>اگه نیاز دارین تا فایل ها برای تایم بالاتری نگه‌داری بشه، متغییر +<em>HOURS</em> داخل فایل -<em>.env</em> -رو تغییر بدین.</p> -</blockquote> -<hr> -<p>ایده های دیگه‌ای هم برای سایت دارم، برای مثال اینکه کاربر بتونه زمان انقضای +<em>.env</em> +رو تغییر بدین.</p> +</blockquote> +<hr> +<p>ایده های دیگه‌ای هم برای سایت دارم، برای مثال اینکه کاربر بتونه زمان انقضای هر فایل رو خودش مشخص کنه. -مثلا به این شکل</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -L octocat.ir -F <span class="nv">arya_1</span><span class="o">=</span>/path/to/file -</span></span></code></pre></td></tr></table> -</div> -</div><p>اینطوری میشه یک زمان انقضا بر اساس ساعت برای هر فایل ایجاد کرد.</p> -<p>و خب همچنین میشه یک کوتاه کننده لینک هم بهش اضافه کنم، و لینک های کوتاه شده رو -ریدایرکت کنم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -L octocat.ir -F <span class="nv">url</span><span class="o">=</span><span class="s1">&#39;https://example.com/some/looooong/url/&#39;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>اگه اینها رو اضافه کنم، این پست رو اپدیت می‌کنم ولی خوشحال می‌شم شما -توی این پروژه مشارکت کنید.</p> - - - - - +مثلا به این شکل</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -L octocat.ir -F <span class="nv">arya_1</span><span class="o">=</span>/path/to/file +</span></span></code></pre></td></tr></table> +</div> +</div><p>اینطوری میشه یک زمان انقضا بر اساس ساعت برای هر فایل ایجاد کرد.</p> +<p>و خب همچنین میشه یک کوتاه کننده لینک هم بهش اضافه کنم، و لینک های کوتاه شده رو +ریدایرکت کنم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -L octocat.ir -F <span class="nv">url</span><span class="o">=</span><span class="s1">&#39;https://example.com/some/looooong/url/&#39;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>اگه اینها رو اضافه کنم، این پست رو اپدیت می‌کنم ولی خوشحال می‌شم شما +توی این پروژه مشارکت کنید.</p> \ No newline at end of file diff --git a/docs/categories/terminal/page/1/index.html b/docs/categories/terminal/page/1/index.html index 1e72182..f8eebfe 100644 --- a/docs/categories/terminal/page/1/index.html +++ b/docs/categories/terminal/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/categories/terminal/ - - - - - - +https://bit-orbit.github.io/categories/terminal/ + \ No newline at end of file diff --git a/docs/contact/index.html b/docs/contact/index.html index 26a195d..e361d33 100644 --- a/docs/contact/index.html +++ b/docs/contact/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/about/ - - - - - - +https://bit-orbit.github.io/about/ + \ No newline at end of file diff --git a/docs/en/404.html b/docs/en/404.html index 92a3389..72f4ef6 100644 --- a/docs/en/404.html +++ b/docs/en/404.html @@ -1,210 +1,9 @@ - - - - -404 Page not found - - - - - - - - - - - - - - - -
- -
-
-

Not Found

-

This page does not exist

-
-
- - -
- Built with Hugo
- Theme Stack designed by Jimmy -
-
- - -
-
- - - - - +404 Page not found +

Not Found

This page does not exist

Built with Hugo
Theme Stack designed by Jimmy
\ No newline at end of file diff --git a/docs/en/categories/index.html b/docs/en/categories/index.html index e08bc49..d45b91d 100644 --- a/docs/en/categories/index.html +++ b/docs/en/categories/index.html @@ -1,282 +1,9 @@ - - - - -Categories - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Section - -

- -
-
-

0 pages

-

Categories

- -
-
-
- - -
- -
-
- - -
- Built with Hugo
- Theme Stack designed by Jimmy -
-
- - -
-
- - - - - +Categories +

Section

0 pages

Categories

Built with Hugo
Theme Stack designed by Jimmy
\ No newline at end of file diff --git a/docs/en/categories/index.xml b/docs/en/categories/index.xml index f1e8e93..200c11f 100644 --- a/docs/en/categories/index.xml +++ b/docs/en/categories/index.xml @@ -1,10 +1 @@ - - - - Categories on bit-orbit - https://bit-orbit.github.io/en/categories/ - Recent content in Categories on bit-orbit - Hugo -- gohugo.io - en - - +Categories on bit-orbithttps://bit-orbit.github.io/en/categories/Recent content in Categories on bit-orbitHugo -- gohugo.ioen \ No newline at end of file diff --git a/docs/en/categories/page/1/index.html b/docs/en/categories/page/1/index.html index 9780637..d96468c 100644 --- a/docs/en/categories/page/1/index.html +++ b/docs/en/categories/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/en/categories/ - - - - - - +https://bit-orbit.github.io/en/categories/ + \ No newline at end of file diff --git a/docs/en/index.html b/docs/en/index.html index f47c913..0526f80 100644 --- a/docs/en/index.html +++ b/docs/en/index.html @@ -1,270 +1,9 @@ - - - - - -bit-orbit - - - - - - - - - - - - - - - -
- - - - -
- - - - - -
- -
-
- - -
- Built with Hugo
- Theme Stack designed by Jimmy -
-
- -
-
- - - - - +bit-orbit +
Built with Hugo
Theme Stack designed by Jimmy
\ No newline at end of file diff --git a/docs/en/index.xml b/docs/en/index.xml index 9c3f73c..7707e06 100644 --- a/docs/en/index.xml +++ b/docs/en/index.xml @@ -1,10 +1 @@ - - - - bit-orbit - https://bit-orbit.github.io/en/ - Recent content on bit-orbit - Hugo -- gohugo.io - en - - +bit-orbithttps://bit-orbit.github.io/en/Recent content on bit-orbitHugo -- gohugo.ioen \ No newline at end of file diff --git a/docs/en/page/1/index.html b/docs/en/page/1/index.html index 4b54207..a2979a6 100644 --- a/docs/en/page/1/index.html +++ b/docs/en/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/en/ - - - - - - +https://bit-orbit.github.io/en/ + \ No newline at end of file diff --git a/docs/en/sitemap.xml b/docs/en/sitemap.xml index 2195a51..58c9cf3 100644 --- a/docs/en/sitemap.xml +++ b/docs/en/sitemap.xml @@ -1,41 +1 @@ - - - - https://bit-orbit.github.io/en/ - - - - https://bit-orbit.github.io/en/categories/ - - - - https://bit-orbit.github.io/en/tags/ - - - - +https://bit-orbit.github.io/en/https://bit-orbit.github.io/en/categories/https://bit-orbit.github.io/en/tags/ \ No newline at end of file diff --git a/docs/en/tags/index.html b/docs/en/tags/index.html index 7eb548c..2990f02 100644 --- a/docs/en/tags/index.html +++ b/docs/en/tags/index.html @@ -1,282 +1,9 @@ - - - - -Tags - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Section - -

- -
-
-

0 pages

-

Tags

- -
-
-
- - -
- -
-
- - -
- Built with Hugo
- Theme Stack designed by Jimmy -
-
- - -
-
- - - - - +Tags +

Section

0 pages

Tags

Built with Hugo
Theme Stack designed by Jimmy
\ No newline at end of file diff --git a/docs/en/tags/index.xml b/docs/en/tags/index.xml index a2ebcee..a806259 100644 --- a/docs/en/tags/index.xml +++ b/docs/en/tags/index.xml @@ -1,10 +1 @@ - - - - Tags on bit-orbit - https://bit-orbit.github.io/en/tags/ - Recent content in Tags on bit-orbit - Hugo -- gohugo.io - en - - +Tags on bit-orbithttps://bit-orbit.github.io/en/tags/Recent content in Tags on bit-orbitHugo -- gohugo.ioen \ No newline at end of file diff --git a/docs/en/tags/page/1/index.html b/docs/en/tags/page/1/index.html index 521d101..1b60db9 100644 --- a/docs/en/tags/page/1/index.html +++ b/docs/en/tags/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/en/tags/ - - - - - - +https://bit-orbit.github.io/en/tags/ + \ No newline at end of file diff --git a/docs/fa/index.html b/docs/fa/index.html index 2522758..d7cd93b 100644 --- a/docs/fa/index.html +++ b/docs/fa/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/ - - - - - - +https://bit-orbit.github.io/ + \ No newline at end of file diff --git a/docs/fa/sitemap.xml b/docs/fa/sitemap.xml index b1f282e..6524a4e 100644 --- a/docs/fa/sitemap.xml +++ b/docs/fa/sitemap.xml @@ -1,369 +1 @@ - - - - https://bit-orbit.github.io/tags/etc/resolve.conf/ - 2024-08-01T03:03:46+03:30 - - https://bit-orbit.github.io/tags/etc/systemd/resolved.conf/ - 2024-08-01T03:03:46+03:30 - - https://bit-orbit.github.io/tags/arya-shabane/ - 2024-08-01T03:03:46+03:30 - - https://bit-orbit.github.io/ - 2024-08-01T03:03:46+03:30 - - - - https://bit-orbit.github.io/categories/ - 2024-08-01T03:03:46+03:30 - - - - https://bit-orbit.github.io/tags/dns-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3/ - 2024-08-01T03:03:46+03:30 - - https://bit-orbit.github.io/p/etc/resolve.conf/ - 2024-08-01T03:03:46+03:30 - - https://bit-orbit.github.io/categories/linux/ - 2024-08-01T03:03:46+03:30 - - https://bit-orbit.github.io/tags/m_shabane/ - 2024-08-01T03:03:46+03:30 - - https://bit-orbit.github.io/categories/network/ - 2024-08-01T03:03:46+03:30 - - https://bit-orbit.github.io/post/ - 2024-08-01T03:03:46+03:30 - - https://bit-orbit.github.io/tags/ - 2024-08-01T03:03:46+03:30 - - - - https://bit-orbit.github.io/tags/%DA%A9%D8%A7%D9%86%D9%81%DB%8C%DA%AF-%DA%A9%D8%B1%D8%AF%D9%86-dns-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3/ - 2024-08-01T03:03:46+03:30 - - https://bit-orbit.github.io/categories/programming/ - 2024-07-27T18:27:21+03:30 - - https://bit-orbit.github.io/p/transpiler-%D8%AA%D8%B1%D8%AC%D9%85%D9%87-%DA%A9%D8%AF-c-%D8%A8%D9%87-bash/ - 2024-07-27T18:27:21+03:30 - - https://bit-orbit.github.io/tags/0x0.st/ - 2024-03-06T23:50:46+03:30 - - https://bit-orbit.github.io/p/crul-paste/ - 2024-03-06T23:50:46+03:30 - - https://bit-orbit.github.io/tags/curl-paste/ - 2024-03-06T23:50:46+03:30 - - https://bit-orbit.github.io/tags/curlpaste/ - 2024-03-06T23:50:46+03:30 - - https://bit-orbit.github.io/tags/paste-file-with-curl/ - 2024-03-06T23:50:46+03:30 - - https://bit-orbit.github.io/categories/projects/ - 2024-03-06T23:50:46+03:30 - - https://bit-orbit.github.io/categories/python/ - 2024-03-06T23:50:46+03:30 - - https://bit-orbit.github.io/categories/terminal/ - 2024-03-06T23:50:46+03:30 - - https://bit-orbit.github.io/tags/%D8%A7%D9%BE%D9%84%D9%88%D8%AF-%D9%85%D9%88%D9%82%D8%AA-%D9%81%D8%A7%DB%8C%D9%84/ - 2024-03-06T23:50:46+03:30 - - https://bit-orbit.github.io/tags/%D8%B4%DB%8C%D8%B1-%DA%A9%D8%B1%D8%AF%D9%86-%D9%81%D8%A7%DB%8C%D9%84/ - 2024-03-06T23:50:46+03:30 - - https://bit-orbit.github.io/tags/%D9%81%D8%A7%DB%8C%D9%84-%D8%A8%DB%8C%D9%86-%D8%A8%D8%A7-curl/ - 2024-03-06T23:50:46+03:30 - - https://bit-orbit.github.io/tags/file-locking-%DA%86%DB%8C%D8%B3%D8%AA/ - 2024-02-09T01:49:42+03:30 - - https://bit-orbit.github.io/tags/file-locking-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA/ - 2024-02-09T01:49:42+03:30 - - https://bit-orbit.github.io/tags/how-to-lock-file-in-linux/ - 2024-02-09T01:49:42+03:30 - - https://bit-orbit.github.io/p/linux-file-locking-%DA%86%DB%8C%D8%B3%D8%AA/ - 2024-02-09T01:49:42+03:30 - - https://bit-orbit.github.io/categories/tech/ - 2024-02-09T01:49:42+03:30 - - https://bit-orbit.github.io/tags/what-is-file-locking-in-linux/ - 2024-02-09T01:49:42+03:30 - - https://bit-orbit.github.io/tags/%D9%84%D8%A7%DA%A9-%DA%A9%D8%B1%D8%AF%D9%86-%D9%81%D8%A7%DB%8C%D9%84-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA/ - 2024-02-09T01:49:42+03:30 - - https://bit-orbit.github.io/tags/rust/ - 2024-01-03T01:30:52+03:30 - - https://bit-orbit.github.io/categories/rust/ - 2024-01-03T01:30:52+03:30 - - https://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-rust/ - 2024-01-03T01:30:52+03:30 - - https://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B1%D8%A7%D8%B3%D8%AA/ - 2024-01-03T01:30:52+03:30 - - https://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%B2%D8%A8%D8%A7%D9%86-rust/ - 2024-01-03T01:30:52+03:30 - - https://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-rust/ - 2024-01-03T01:30:52+03:30 - - https://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-%D8%B1%D8%A7%D8%B3%D8%AA/ - 2024-01-03T01:30:52+03:30 - - https://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%B2%D8%A8%D8%A7%D9%86-%D8%B1%D8%A7%D8%B3%D8%AA/ - 2024-01-03T01:30:52+03:30 - - https://bit-orbit.github.io/p/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%D9%88%D9%84%DB%8C%D9%87-%D8%AF%D8%B1-rust/ - 2024-01-03T01:30:52+03:30 - - https://bit-orbit.github.io/p/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-rust/ - 2024-01-01T01:39:05+03:30 - - https://bit-orbit.github.io/page/ - 2023-12-31T00:00:00+00:00 - - https://bit-orbit.github.io/rust/ - 2023-12-31T00:00:00+00:00 - - https://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-rust/ - 2023-12-31T00:00:00+00:00 - - https://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-%D8%B1%D8%A7%D8%B3%D8%AA/ - 2023-12-31T00:00:00+00:00 - - https://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-rust/ - 2023-12-31T00:00:00+00:00 - - https://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-%D8%B1%D8%A7%D8%B3%D8%AA/ - 2023-12-31T00:00:00+00:00 - - https://bit-orbit.github.io/tags/--/ - 2023-12-27T16:39:27+03:30 - - https://bit-orbit.github.io/tags/forkbomb-%DA%86%DB%8C%D8%B3%D8%AA/ - 2023-12-27T16:39:27+03:30 - - https://bit-orbit.github.io/tags/infinite-recursion/ - 2023-12-27T16:39:27+03:30 - - https://bit-orbit.github.io/tags/recursion/ - 2023-12-27T16:39:27+03:30 - - https://bit-orbit.github.io/tags/%D8%A2%D8%B1%DB%8C%D8%A7-%D8%B4%D8%A8%D8%A7%D9%86%D9%87/ - 2023-12-27T16:39:27+03:30 - - https://bit-orbit.github.io/tags/%D8%B1%DB%8C%DA%A9%D8%B1%D8%B4%D9%86-%D8%A8%DB%8C%D9%86%D9%87%D8%A7%DB%8C%D8%AA/ - 2023-12-27T16:39:27+03:30 - - https://bit-orbit.github.io/p/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B7%D9%88%D8%B1-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF/ - 2023-12-27T16:39:27+03:30 - - https://bit-orbit.github.io/tags/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%88%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA/ - 2023-12-27T16:39:27+03:30 - - https://bit-orbit.github.io/categories/cloud/ - 2023-12-18T00:08:38+03:30 - - https://bit-orbit.github.io/tags/%D8%A7%D9%BE%D9%84%D9%88%D8%AF-%D9%81%D8%A7%DB%8C%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85-%D8%A8%D8%AF%D9%88%D9%86-%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF/ - 2023-12-18T00:08:38+03:30 - - https://bit-orbit.github.io/tags/%D8%A7%D9%BE%D9%84%D9%88%D8%AF-%D9%81%D8%A7%DB%8C%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85-%D8%A8%D8%AF%D9%88%D9%86-%D9%86%DB%8C%D8%A7%D8%B2-%D8%A8%D9%87-%D8%B3%D8%B1%D9%88%D8%B1/ - 2023-12-18T00:08:38+03:30 - - https://bit-orbit.github.io/p/%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/ - 2023-12-18T00:08:38+03:30 - - https://bit-orbit.github.io/tags/%DA%86%D8%B7%D9%88%D8%B1%DB%8C-%D8%A8%D8%A7-%D8%B3%D8%B1%D9%88%D8%B1-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85-%D9%81%D8%A7%DB%8C%D9%84-%D8%A7%D9%BE%D9%84%D9%88%D8%AF-%DA%A9%D9%86%DB%8C%D9%85/ - 2023-12-18T00:08:38+03:30 - - https://bit-orbit.github.io/tags/%D9%86%D8%AD%D9%88%D9%87-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%DA%A9%D9%88%D9%84%D8%A8/ - 2023-12-18T00:08:38+03:30 - - https://bit-orbit.github.io/p/cloud-%D8%B1%D8%A7-%D8%A8%D9%87-%D8%AE%D8%A7%D9%86%D9%87-%D8%AE%D9%88%D8%AF-%D8%A8%D8%A8%D8%B1%DB%8C%D8%AF/ - 2023-12-11T01:39:34+03:30 - - https://bit-orbit.github.io/tags/umbrel-os-%DA%86%DB%8C%D8%B3%D8%AA/ - 2023-12-11T01:39:34+03:30 - - https://bit-orbit.github.io/tags/what-is-umbrel-os/ - 2023-12-11T01:39:34+03:30 - - https://bit-orbit.github.io/tags/%DA%86%D8%B7%D9%88%D8%B1-cloud-%D8%AF%D8%B1-%D8%AE%D8%A7%D9%86%D9%87-%D8%AF%D8%A7%D8%B4%D8%AA%D9%87-%D8%A8%D8%A7%D8%B4%DB%8C%D9%85/ - 2023-12-11T01:39:34+03:30 - - https://bit-orbit.github.io/tags/%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-%D8%B9%D8%A7%D9%85%D9%84-umbrel-%D8%AC%DB%8C%D8%B3%D8%AA/ - 2023-12-11T01:39:34+03:30 - - https://bit-orbit.github.io/categories/software-engineering/ - 2023-11-03T00:21:46+03:30 - - https://bit-orbit.github.io/tags/static-linking-vs-dynamic-linking/ - 2023-11-03T00:21:46+03:30 - - https://bit-orbit.github.io/p/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-staticlink-%D9%88-dynamiclink-%D8%AF%D8%B1-%D8%B2%D8%A8%D8%A7%D9%86-%D9%87%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C/ - 2023-11-03T00:21:46+03:30 - - https://bit-orbit.github.io/tags/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-%D8%A8%DB%8C%D9%86-static-linking-%D9%88-dynamic-linking/ - 2023-11-03T00:21:46+03:30 - - https://bit-orbit.github.io/tags/%D9%81%D8%B1%D9%82-%D8%A8%DB%8C%D9%86-static-linking-%D9%88-dynamic-linking-%DA%86%DB%8C%D8%B3%D8%AA/ - 2023-11-03T00:21:46+03:30 - - https://bit-orbit.github.io/tags/download-with-wget/ - 2023-07-07T02:45:19+03:30 - - https://bit-orbit.github.io/tags/linux/ - 2023-07-07T02:45:19+03:30 - - https://bit-orbit.github.io/tags/regex/ - 2023-07-07T02:45:19+03:30 - - https://bit-orbit.github.io/tags/wget/ - 2023-07-07T02:45:19+03:30 - - https://bit-orbit.github.io/tags/why-i-love-linux/ - 2023-07-07T02:45:19+03:30 - - https://bit-orbit.github.io/p/%DA%86%D8%B1%D8%A7-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D8%B1%D9%88-%D8%AF%D9%88%D8%B3%D8%AA-%D8%AF%D8%A7%D8%B1%D9%85/ - 2023-07-07T02:45:19+03:30 - - https://bit-orbit.github.io/p/blade-runner/ - 2023-06-24T22:02:35+03:30 - - https://bit-orbit.github.io/categories/movie/ - 2023-06-24T22:02:35+03:30 - - https://bit-orbit.github.io/tags/decenterlize/ - 2022-10-01T01:46:23+03:30 - - https://bit-orbit.github.io/gallery/rick-and-morty/ - 2022-10-01T01:46:23+03:30 - - https://bit-orbit.github.io/gallery/ - 2022-10-01T01:46:23+03:30 - - https://bit-orbit.github.io/tags/messenger/ - 2022-10-01T01:46:23+03:30 - - https://bit-orbit.github.io/tags/open-source/ - 2022-10-01T01:46:23+03:30 - - https://bit-orbit.github.io/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/ - 2022-10-01T01:46:23+03:30 - - https://bit-orbit.github.io/tags/%D9%BE%DB%8C%D8%A7%D9%85%D8%B1%D8%B3%D8%A7%D9%86/ - 2022-10-01T01:46:23+03:30 - - https://bit-orbit.github.io/tags/%D8%AC%D8%A7%DB%8C%DA%AF%D8%B2%DB%8C%D9%86_%D8%A8%D8%B1%D8%A7%DB%8C_%D9%88%D8%A7%D8%AA%D8%B3%D8%A7%D9%BE_%D9%88_%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/ - 2022-10-01T01:46:23+03:30 - - https://bit-orbit.github.io/tags/%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3_%DA%86%DB%8C%D8%B3%D8%AA/ - 2022-10-01T01:46:23+03:30 - - https://bit-orbit.github.io/p/%DA%A9%D9%BE%DB%8C-%DA%A9%D8%B1%D8%AF%D9%86-%D8%B1%DB%8C%D8%B2%D8%A7%D9%84%D8%AA-%D9%BE%D8%A7%DB%8C%D9%BE-%D8%A8%D9%87-%DA%A9%D9%84%DB%8C%D9%BE-%D8%A8%D8%B1%D8%AF/ - 2022-05-01T04:48:44+04:30 - - https://bit-orbit.github.io/p/%D8%B3%D8%A7%D8%AE%D8%AA-%DA%A9%D9%88%D8%AA%D8%A7%D9%87-%DA%A9%D9%86%D9%86%D8%AF%D9%87-%D9%84%DB%8C%D9%86%DA%A9-%D8%A8%D8%A7-%DA%AF%DB%8C%D8%AA%D9%87%D8%A7%D8%A8-%D9%BE%DB%8C%D8%AC%D8%B2/ - 2022-03-22T22:41:20+00:00 - - https://bit-orbit.github.io/p/%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA-tty/ - 2022-01-31T19:57:05+03:30 - - https://bit-orbit.github.io/tags/linux-terminal/ - 2022-01-31T19:57:05+03:30 - - https://bit-orbit.github.io/tags/terminal/ - 2022-01-31T19:57:05+03:30 - - https://bit-orbit.github.io/tags/tty/ - 2022-01-31T19:57:05+03:30 - - https://bit-orbit.github.io/tags/tty-%DA%86%DB%8C%D8%B3%D8%AA/ - 2022-01-31T19:57:05+03:30 - - https://bit-orbit.github.io/tags/tty-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA/ - 2022-01-31T19:57:05+03:30 - - https://bit-orbit.github.io/tags/how-to-snapshot-a-single-site-page/ - 2022-01-17T14:56:14+03:30 - - https://bit-orbit.github.io/tags/mirror-a-single-web-page/ - 2022-01-17T14:56:14+03:30 - - https://bit-orbit.github.io/tags/tech/ - 2022-01-17T14:56:14+03:30 - - https://bit-orbit.github.io/tags/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA/ - 2022-01-17T14:56:14+03:30 - - https://bit-orbit.github.io/tags/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4/ - 2022-01-17T14:56:14+03:30 - - https://bit-orbit.github.io/p/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4%D8%B9%DA%A9%D8%B3-%D8%A7%D8%B3%D8%AA%D8%A7%DB%8C%D9%84-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA/ - 2022-01-17T14:56:14+03:30 - - https://bit-orbit.github.io/p/%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C-%DA%AF%D9%86%D9%88%D9%85/ - 2022-01-14T18:18:28+03:30 - - https://bit-orbit.github.io/p/zsh-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C/ - 2022-01-11T02:44:12+03:30 - - https://bit-orbit.github.io/tags/bash/ - 2022-01-11T02:44:12+03:30 - - https://bit-orbit.github.io/tags/zsh/ - 2022-01-11T02:44:12+03:30 - - https://bit-orbit.github.io/archives/ - 2019-05-28T00:00:00+00:00 - - https://bit-orbit.github.io/about/ - 2020-10-09T00:00:00+00:00 - - https://bit-orbit.github.io/links/ - - https://bit-orbit.github.io/search/ - - +https://bit-orbit.github.io/2024-09-09T13:23:06+03:30https://bit-orbit.github.io/post/2024-09-09T13:23:06+03:30https://bit-orbit.github.io/p/%D9%85%D8%A7%D9%86%D8%AA-%DA%A9%D8%B1%D8%AF%D9%86-%D8%AF%D8%A7%DB%8C%D8%B1%DA%A9%D8%AA%D9%88%D8%B1%DB%8C-%D8%B3%D8%B1%D9%88%D8%B1-%D8%B1%D9%88%DB%8C-%D8%AF%D8%A7%DB%8C%D8%B1%DA%A9%D8%AA%D9%88%D8%B1%DB%8C-%D9%84%D9%88%DA%A9%D8%A7%D9%84/2024-09-09T13:23:06+03:30https://bit-orbit.github.io/tags/etc/resolve.conf/2024-08-01T03:03:46+03:30https://bit-orbit.github.io/tags/etc/systemd/resolved.conf/2024-08-01T03:03:46+03:30https://bit-orbit.github.io/tags/arya-shabane/2024-08-01T03:03:46+03:30https://bit-orbit.github.io/categories/2024-08-01T03:03:46+03:30https://bit-orbit.github.io/tags/dns-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3/2024-08-01T03:03:46+03:30https://bit-orbit.github.io/p/etc/resolve.conf/2024-08-01T03:03:46+03:30https://bit-orbit.github.io/categories/linux/2024-08-01T03:03:46+03:30https://bit-orbit.github.io/tags/m_shabane/2024-08-01T03:03:46+03:30https://bit-orbit.github.io/categories/network/2024-08-01T03:03:46+03:30https://bit-orbit.github.io/tags/2024-08-01T03:03:46+03:30https://bit-orbit.github.io/tags/%DA%A9%D8%A7%D9%86%D9%81%DB%8C%DA%AF-%DA%A9%D8%B1%D8%AF%D9%86-dns-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3/2024-08-01T03:03:46+03:30https://bit-orbit.github.io/categories/programming/2024-07-27T18:27:21+03:30https://bit-orbit.github.io/p/transpiler-%D8%AA%D8%B1%D8%AC%D9%85%D9%87-%DA%A9%D8%AF-c-%D8%A8%D9%87-bash/2024-07-27T18:27:21+03:30https://bit-orbit.github.io/tags/0x0.st/2024-03-06T23:50:46+03:30https://bit-orbit.github.io/p/crul-paste/2024-03-06T23:50:46+03:30https://bit-orbit.github.io/tags/curl-paste/2024-03-06T23:50:46+03:30https://bit-orbit.github.io/tags/curlpaste/2024-03-06T23:50:46+03:30https://bit-orbit.github.io/tags/paste-file-with-curl/2024-03-06T23:50:46+03:30https://bit-orbit.github.io/categories/projects/2024-03-06T23:50:46+03:30https://bit-orbit.github.io/categories/python/2024-03-06T23:50:46+03:30https://bit-orbit.github.io/categories/terminal/2024-03-06T23:50:46+03:30https://bit-orbit.github.io/tags/%D8%A7%D9%BE%D9%84%D9%88%D8%AF-%D9%85%D9%88%D9%82%D8%AA-%D9%81%D8%A7%DB%8C%D9%84/2024-03-06T23:50:46+03:30https://bit-orbit.github.io/tags/%D8%B4%DB%8C%D8%B1-%DA%A9%D8%B1%D8%AF%D9%86-%D9%81%D8%A7%DB%8C%D9%84/2024-03-06T23:50:46+03:30https://bit-orbit.github.io/tags/%D9%81%D8%A7%DB%8C%D9%84-%D8%A8%DB%8C%D9%86-%D8%A8%D8%A7-curl/2024-03-06T23:50:46+03:30https://bit-orbit.github.io/tags/file-locking-%DA%86%DB%8C%D8%B3%D8%AA/2024-02-09T01:49:42+03:30https://bit-orbit.github.io/tags/file-locking-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA/2024-02-09T01:49:42+03:30https://bit-orbit.github.io/tags/how-to-lock-file-in-linux/2024-02-09T01:49:42+03:30https://bit-orbit.github.io/p/linux-file-locking-%DA%86%DB%8C%D8%B3%D8%AA/2024-02-09T01:49:42+03:30https://bit-orbit.github.io/categories/tech/2024-02-09T01:49:42+03:30https://bit-orbit.github.io/tags/what-is-file-locking-in-linux/2024-02-09T01:49:42+03:30https://bit-orbit.github.io/tags/%D9%84%D8%A7%DA%A9-%DA%A9%D8%B1%D8%AF%D9%86-%D9%81%D8%A7%DB%8C%D9%84-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA/2024-02-09T01:49:42+03:30https://bit-orbit.github.io/tags/rust/2024-01-03T01:30:52+03:30https://bit-orbit.github.io/categories/rust/2024-01-03T01:30:52+03:30https://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-rust/2024-01-03T01:30:52+03:30https://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B1%D8%A7%D8%B3%D8%AA/2024-01-03T01:30:52+03:30https://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%B2%D8%A8%D8%A7%D9%86-rust/2024-01-03T01:30:52+03:30https://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-rust/2024-01-03T01:30:52+03:30https://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-%D8%B1%D8%A7%D8%B3%D8%AA/2024-01-03T01:30:52+03:30https://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%B2%D8%A8%D8%A7%D9%86-%D8%B1%D8%A7%D8%B3%D8%AA/2024-01-03T01:30:52+03:30https://bit-orbit.github.io/p/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%D9%88%D9%84%DB%8C%D9%87-%D8%AF%D8%B1-rust/2024-01-03T01:30:52+03:30https://bit-orbit.github.io/p/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-rust/2024-01-01T01:39:05+03:30https://bit-orbit.github.io/page/2023-12-31T00:00:00+00:00https://bit-orbit.github.io/rust/2023-12-31T00:00:00+00:00https://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-rust/2023-12-31T00:00:00+00:00https://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-%D8%B1%D8%A7%D8%B3%D8%AA/2023-12-31T00:00:00+00:00https://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-rust/2023-12-31T00:00:00+00:00https://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-%D8%B1%D8%A7%D8%B3%D8%AA/2023-12-31T00:00:00+00:00https://bit-orbit.github.io/tags/--/2023-12-27T16:39:27+03:30https://bit-orbit.github.io/tags/forkbomb-%DA%86%DB%8C%D8%B3%D8%AA/2023-12-27T16:39:27+03:30https://bit-orbit.github.io/tags/infinite-recursion/2023-12-27T16:39:27+03:30https://bit-orbit.github.io/tags/recursion/2023-12-27T16:39:27+03:30https://bit-orbit.github.io/tags/%D8%A2%D8%B1%DB%8C%D8%A7-%D8%B4%D8%A8%D8%A7%D9%86%D9%87/2023-12-27T16:39:27+03:30https://bit-orbit.github.io/tags/%D8%B1%DB%8C%DA%A9%D8%B1%D8%B4%D9%86-%D8%A8%DB%8C%D9%86%D9%87%D8%A7%DB%8C%D8%AA/2023-12-27T16:39:27+03:30https://bit-orbit.github.io/p/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B7%D9%88%D8%B1-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF/2023-12-27T16:39:27+03:30https://bit-orbit.github.io/tags/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%88%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA/2023-12-27T16:39:27+03:30https://bit-orbit.github.io/categories/cloud/2023-12-18T00:08:38+03:30https://bit-orbit.github.io/tags/%D8%A7%D9%BE%D9%84%D9%88%D8%AF-%D9%81%D8%A7%DB%8C%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85-%D8%A8%D8%AF%D9%88%D9%86-%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF/2023-12-18T00:08:38+03:30https://bit-orbit.github.io/tags/%D8%A7%D9%BE%D9%84%D9%88%D8%AF-%D9%81%D8%A7%DB%8C%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85-%D8%A8%D8%AF%D9%88%D9%86-%D9%86%DB%8C%D8%A7%D8%B2-%D8%A8%D9%87-%D8%B3%D8%B1%D9%88%D8%B1/2023-12-18T00:08:38+03:30https://bit-orbit.github.io/p/%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/2023-12-18T00:08:38+03:30https://bit-orbit.github.io/tags/%DA%86%D8%B7%D9%88%D8%B1%DB%8C-%D8%A8%D8%A7-%D8%B3%D8%B1%D9%88%D8%B1-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85-%D9%81%D8%A7%DB%8C%D9%84-%D8%A7%D9%BE%D9%84%D9%88%D8%AF-%DA%A9%D9%86%DB%8C%D9%85/2023-12-18T00:08:38+03:30https://bit-orbit.github.io/tags/%D9%86%D8%AD%D9%88%D9%87-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%DA%A9%D9%88%D9%84%D8%A8/2023-12-18T00:08:38+03:30https://bit-orbit.github.io/p/cloud-%D8%B1%D8%A7-%D8%A8%D9%87-%D8%AE%D8%A7%D9%86%D9%87-%D8%AE%D9%88%D8%AF-%D8%A8%D8%A8%D8%B1%DB%8C%D8%AF/2023-12-11T01:39:34+03:30https://bit-orbit.github.io/tags/umbrel-os-%DA%86%DB%8C%D8%B3%D8%AA/2023-12-11T01:39:34+03:30https://bit-orbit.github.io/tags/what-is-umbrel-os/2023-12-11T01:39:34+03:30https://bit-orbit.github.io/tags/%DA%86%D8%B7%D9%88%D8%B1-cloud-%D8%AF%D8%B1-%D8%AE%D8%A7%D9%86%D9%87-%D8%AF%D8%A7%D8%B4%D8%AA%D9%87-%D8%A8%D8%A7%D8%B4%DB%8C%D9%85/2023-12-11T01:39:34+03:30https://bit-orbit.github.io/tags/%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-%D8%B9%D8%A7%D9%85%D9%84-umbrel-%D8%AC%DB%8C%D8%B3%D8%AA/2023-12-11T01:39:34+03:30https://bit-orbit.github.io/categories/software-engineering/2023-11-03T00:21:46+03:30https://bit-orbit.github.io/tags/static-linking-vs-dynamic-linking/2023-11-03T00:21:46+03:30https://bit-orbit.github.io/p/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-staticlink-%D9%88-dynamiclink-%D8%AF%D8%B1-%D8%B2%D8%A8%D8%A7%D9%86-%D9%87%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C/2023-11-03T00:21:46+03:30https://bit-orbit.github.io/tags/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-%D8%A8%DB%8C%D9%86-static-linking-%D9%88-dynamic-linking/2023-11-03T00:21:46+03:30https://bit-orbit.github.io/tags/%D9%81%D8%B1%D9%82-%D8%A8%DB%8C%D9%86-static-linking-%D9%88-dynamic-linking-%DA%86%DB%8C%D8%B3%D8%AA/2023-11-03T00:21:46+03:30https://bit-orbit.github.io/tags/download-with-wget/2023-07-07T02:45:19+03:30https://bit-orbit.github.io/tags/linux/2023-07-07T02:45:19+03:30https://bit-orbit.github.io/tags/regex/2023-07-07T02:45:19+03:30https://bit-orbit.github.io/tags/wget/2023-07-07T02:45:19+03:30https://bit-orbit.github.io/tags/why-i-love-linux/2023-07-07T02:45:19+03:30https://bit-orbit.github.io/p/%DA%86%D8%B1%D8%A7-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D8%B1%D9%88-%D8%AF%D9%88%D8%B3%D8%AA-%D8%AF%D8%A7%D8%B1%D9%85/2023-07-07T02:45:19+03:30https://bit-orbit.github.io/p/blade-runner/2023-06-24T22:02:35+03:30https://bit-orbit.github.io/categories/movie/2023-06-24T22:02:35+03:30https://bit-orbit.github.io/tags/decenterlize/2022-10-01T01:46:23+03:30https://bit-orbit.github.io/gallery/rick-and-morty/2022-10-01T01:46:23+03:30https://bit-orbit.github.io/gallery/2022-10-01T01:46:23+03:30https://bit-orbit.github.io/tags/messenger/2022-10-01T01:46:23+03:30https://bit-orbit.github.io/tags/open-source/2022-10-01T01:46:23+03:30https://bit-orbit.github.io/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/2022-10-01T01:46:23+03:30https://bit-orbit.github.io/tags/%D9%BE%DB%8C%D8%A7%D9%85%D8%B1%D8%B3%D8%A7%D9%86/2022-10-01T01:46:23+03:30https://bit-orbit.github.io/tags/%D8%AC%D8%A7%DB%8C%DA%AF%D8%B2%DB%8C%D9%86_%D8%A8%D8%B1%D8%A7%DB%8C_%D9%88%D8%A7%D8%AA%D8%B3%D8%A7%D9%BE_%D9%88_%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/2022-10-01T01:46:23+03:30https://bit-orbit.github.io/tags/%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3_%DA%86%DB%8C%D8%B3%D8%AA/2022-10-01T01:46:23+03:30https://bit-orbit.github.io/p/%DA%A9%D9%BE%DB%8C-%DA%A9%D8%B1%D8%AF%D9%86-%D8%B1%DB%8C%D8%B2%D8%A7%D9%84%D8%AA-%D9%BE%D8%A7%DB%8C%D9%BE-%D8%A8%D9%87-%DA%A9%D9%84%DB%8C%D9%BE-%D8%A8%D8%B1%D8%AF/2022-05-01T04:48:44+04:30https://bit-orbit.github.io/p/%D8%B3%D8%A7%D8%AE%D8%AA-%DA%A9%D9%88%D8%AA%D8%A7%D9%87-%DA%A9%D9%86%D9%86%D8%AF%D9%87-%D9%84%DB%8C%D9%86%DA%A9-%D8%A8%D8%A7-%DA%AF%DB%8C%D8%AA%D9%87%D8%A7%D8%A8-%D9%BE%DB%8C%D8%AC%D8%B2/2022-03-22T22:41:20+00:00https://bit-orbit.github.io/p/%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA-tty/2022-01-31T19:57:05+03:30https://bit-orbit.github.io/tags/linux-terminal/2022-01-31T19:57:05+03:30https://bit-orbit.github.io/tags/terminal/2022-01-31T19:57:05+03:30https://bit-orbit.github.io/tags/tty/2022-01-31T19:57:05+03:30https://bit-orbit.github.io/tags/tty-%DA%86%DB%8C%D8%B3%D8%AA/2022-01-31T19:57:05+03:30https://bit-orbit.github.io/tags/tty-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA/2022-01-31T19:57:05+03:30https://bit-orbit.github.io/tags/how-to-snapshot-a-single-site-page/2022-01-17T14:56:14+03:30https://bit-orbit.github.io/tags/mirror-a-single-web-page/2022-01-17T14:56:14+03:30https://bit-orbit.github.io/tags/tech/2022-01-17T14:56:14+03:30https://bit-orbit.github.io/tags/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA/2022-01-17T14:56:14+03:30https://bit-orbit.github.io/tags/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4/2022-01-17T14:56:14+03:30https://bit-orbit.github.io/p/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4%D8%B9%DA%A9%D8%B3-%D8%A7%D8%B3%D8%AA%D8%A7%DB%8C%D9%84-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA/2022-01-17T14:56:14+03:30https://bit-orbit.github.io/p/%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C-%DA%AF%D9%86%D9%88%D9%85/2022-01-14T18:18:28+03:30https://bit-orbit.github.io/p/zsh-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C/2022-01-11T02:44:12+03:30https://bit-orbit.github.io/tags/bash/2022-01-11T02:44:12+03:30https://bit-orbit.github.io/tags/zsh/2022-01-11T02:44:12+03:30https://bit-orbit.github.io/archives/2019-05-28T00:00:00+00:00https://bit-orbit.github.io/about/2020-10-09T00:00:00+00:00https://bit-orbit.github.io/links/https://bit-orbit.github.io/search/ \ No newline at end of file diff --git a/docs/gallery/index.html b/docs/gallery/index.html index 393103e..da36175 100644 --- a/docs/gallery/index.html +++ b/docs/gallery/index.html @@ -1,559 +1,37 @@ - - - - -Galleries - - - - - - - - - - - - - - - -
- - - - -
-
-

- - بخش - -

- -
-
-

1 صفحه

-

Galleries

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Galleries +

بخش

1 صفحه

Galleries

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git a/docs/gallery/index.xml b/docs/gallery/index.xml index 5ffd5d3..cd899a6 100644 --- a/docs/gallery/index.xml +++ b/docs/gallery/index.xml @@ -1,33 +1,10 @@ - - - - Galleries on bit-orbit - https://bit-orbit.github.io/gallery/ - Recent content in Galleries on bit-orbit - Hugo -- gohugo.io - fa - Sat, 01 Oct 2022 01:46:23 +0330 - fsdfd - https://bit-orbit.github.io/gallery/rick-and-morty/ - Sat, 01 Oct 2022 01:46:23 +0330 - - https://bit-orbit.github.io/gallery/rick-and-morty/ - <img src="https://bit-orbit.github.io/images/post/matrix.jpg" alt="Featured image of post fsdfd" /><p><img src="https://bit-orbit.github.io/gallery/rick-and-morty/a.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/gallery/rick-and-morty/a_hu18203028458765281991.png 480w, https://bit-orbit.github.io/gallery/rick-and-morty/a_hu640960131545633292.png 1024w" - loading="lazy" - - alt="p" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> - - - - - +Galleries on bit-orbithttps://bit-orbit.github.io/gallery/Recent content in Galleries on bit-orbitHugo -- gohugo.iofaSat, 01 Oct 2022 01:46:23 +0330fsdfdhttps://bit-orbit.github.io/gallery/rick-and-morty/Sat, 01 Oct 2022 01:46:23 +0330https://bit-orbit.github.io/gallery/rick-and-morty/<img src="https://bit-orbit.github.io/images/post/matrix.jpg" alt="Featured image of post fsdfd" /><p><img src="https://bit-orbit.github.io/gallery/rick-and-morty/a.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/gallery/rick-and-morty/a_hu18203028458765281991.png 480w, https://bit-orbit.github.io/gallery/rick-and-morty/a_hu640960131545633292.png 1024w" +loading="lazy" +alt="p" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> \ No newline at end of file diff --git a/docs/gallery/page/1/index.html b/docs/gallery/page/1/index.html index cd62c55..e0623a6 100644 --- a/docs/gallery/page/1/index.html +++ b/docs/gallery/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/gallery/ - - - - - - +https://bit-orbit.github.io/gallery/ + \ No newline at end of file diff --git a/docs/gallery/rick-and-morty/index.html b/docs/gallery/rick-and-morty/index.html index 5d29468..253037a 100644 --- a/docs/gallery/rick-and-morty/index.html +++ b/docs/gallery/rick-and-morty/index.html @@ -1,616 +1,22 @@ - - - - -fsdfd - - - - - - - - - - - - - - - - -
- - - -
-
-
-
- - - Featured image of post fsdfd - - -
- - -
- - - - -
-

- fsdfd -

- - -
- - - - - -
- -
- - - - - - - - - - -
- - - -
- - - - - - - - - -
- -
- - - -
- -
- -
- - -

p

- -
- - -
- - - - - -
- - - - - - - - - Licensed under CC BY-NC-SA 4.0 -
-
- - - -
- - - - - - - - - - -
-
- - -comments powered by Disqus -
- - - - - - - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - - - - -
-
- - - - - +fsdfd +
Featured image of post fsdfd

fsdfd

+
+

p

+Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git a/docs/images/post/OIG2 (2).jpeg b/docs/images/post/OIG2 (2).jpeg new file mode 100644 index 0000000000000000000000000000000000000000..c2b2762ad842770c58559e20c22e965d848cf03d GIT binary patch literal 236468 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 z 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 literal 0 HcmV?d00001 diff --git a/docs/images/post/OIG2.jpg b/docs/images/post/OIG2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..49aa67e3874ba1591a34bd6cd6ae050a3f7aa750 GIT binary patch literal 147813 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�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%0ALXUvnB>)iIGReA}rz} zvP8+snF#F6yAsmK8x)P14#+k4(s1Y*FK@!@0pdvC2NOc{`lnBg%vn`amZXiWGn%0}K8Ke`-JK`9E`N zQhpiBK_j7&Bl4Y&D{VZ*^#q`;MDZ`jMM>X^DPotW<|H=$?iS-XrHWms;`MotqVgP) z`C)evNh?eUB=ynekAtXmuUb!e?G%Q8E`)qG$njSzSre~d-1B+vLgI?ATRtKcDy2vU zwAwc@>ZRMO^sYn-v}(fR0G-dc2~{ZQrY`M$o$>rRzs1xXjsY+qwKPhDc9u3Ur7G|GT5bP zVpKuce+-$vFj7q*k~b1H;h*x!=MQ~OsZ@KbL8{GldX|&7i9Ng zPH#D1!c0<`7gX9O5TuQyK@mBceP$xBlaNWnZKbJ2RQC74`L{&InQbF}uc#R6YDpT# zn~uQr1%!|cP~?1M0AdNvI}4B8nu}!K#?zEhoCQ73@z^!m>Y+iu==V=8g5DyOk;3RS z#8WU6S%}Z%@>T{E{iCeXnrWNKjY%>}FltCL#jBUpEv8nZFeWyWnSra)waZ+%vu!CQ zLO~gjL9CgFPlvC<=54D?LU$S-;$PCN+5Xz^Gjxdt3U!d9CN>8>9S%`8>^WD4)Y$}K5a>VpL_tO6kMlhvz@T(-1;N=zApq{T+}_1lQGe%=+Y z2qY>6tGVGL)Tpd|97E!!-V13#m{I(SNP>|-2pWwabp1q}lv=y}AU@-gYNdWze+hxg zF9I@8NaiO*{F_#+MqqYOG3*i(K{8DubPR(sWOhGe3Ouh>cK(tDQmOpqj+0ZE&m(Xj z`ay10Kb$eMIdv=#quN69j;soL7bjD3Vn$I>P3$rPb4{VWYEkpx+@!{xYX{`TCNxOv zKUZY|+#*C_%ks~Bu~nzNr|Q_UOQH9*p`~zmd(qracy#yP-VSunv&rzRAtf**PiYj4 zhQiXQlLN8s*hHZ!kOgENx>iQVlXs_{&Cfh{6r|(aYnIL(wJYSJObX|}n-d&AHe|XQauq=TSNF%V2NZlYF$H1wL4o+8vHm58x zI#dXk7(vy^0K|bC5yrSr$g#^>2^|AcsI4LKcWDDylh;NB!a_izXRC|1XU&1aEvD9} z-yWxTZY~j=lwarh9eUP3aD9X3r;PP%7`i^m*{Gd2wwDaZZ79lnK8!k^=2o4IMv*#2 zou36pTPwqJa!hGC=P}$vC4%HheRffkvUIF&te4U_hJzPKi-TYyxoex7a@y|txIoNy zIln8J-SrPV@(hhc<`|02w(8Ba6#-Eh%v8J;URfr-OgxT_l(&tXJG=nB6Q;;sgg?>+>+w? zX2V4bpL(=&N{eTREosaKKQ;_29>-OCtx~j72I5(>6+udzfqKHfD%&I4Gpk z@OlAZQ6@Vn)vL=AOh!`rN#H&HFD$m>C&r}S*H^u_2NgX%pW!WaSd~pX>6~dh8?1yX zaZY0_IaX*$lb3rDK!6E3_PZd(X1j|w2#sydP2VAe5krcU{2ZU*%Lo@Jl6*A}R7FZe zjy0zkaZxdr%^ahU5}Utdeo%8z6(=n!*%?R{i%j+{mysY$RO@ z?eBaF+G)L@iF|j3G4ZgnM*jD}c5FHZH&?&r*n{MDpR4LBQ*HWw7=pO(Ft1%Rlfsnw z7a%`37`;WE!^x56R^Mp=WP5kQOe za8R1TP}g&gCouQUej%FUulxrMA&8HhEGMP9&uZC_a*`hAl0u#BDkk zuA~8Oz_3zasxgTKl#@|NsL~!uUn-nvUDX0stZ5!5W>QC{*%1S4zlUz>`D7%lqTp1V zN($)6f+W5OYl6l>8DpdgYVPq*@Q1TvvGEn*muLR~Aad;fe~67~?_(Li=FqH< zW1c+B^C>RC2qdbsr=IN{DC@4COom%Y@nw~tVDb&N%0h-I16(=B2DMc}HYbg6hwKX3 z^>4wRT8B-bg9SxcMj1^cpH*>En#WTicM`5%A`}+{#0ZKE>SP@|OUX&8?ec8S+N+X> ze7nTJs4L`Jq6YI`ubb#p4yGw2@nq4|ly!QOm>NKyA+d6w05 zdry#KK717gVV71y)G`ujmfaeOBu3}!-?&EY`89qFe57b`ru6k4ZTuRxHnnDmg{My6 zqtc&T{{Rv5d1=w;E{Z>B@Y?ZAnb_p}FtCnikmZu4i(}JW$sz|^6@2d_@YLb4`m5CG zJ4(KR{QZ38>zuv21i~%O@=2PW8ZgoceqnU<-YIE{UK4b7aW535hZLoU)7teKJjXY8 znYoVPlc2}}um`vB{{V|zqEl`}q$mgac{e$A z*-=W9QJ%ZEf-5Y)=}W`mbZNu2xSrpI*QEKfavLiAL-Ir?t@Zn3z+`*5_{nx=_)}5u zCXPuOA+;^b!>t1TEkI_?z($!dk~&ehcGke<2}SCt!8mZF+`&PRa!|P=gze zQYG*ZMCRWFROL?gIs;)eJ)PgowiVrs#Ux}h{%-S@_9MLe?0j2R5PompmrUB_lA556 zXSyANdJah;BWJM3TvvJOdX~t*DLpDzgnd{SksLaUd?_mirrWOJ8#^5UcN%-u&`2yn z%K|}i0CJjv+BU(fz!iJAK*>{;Bjny9N|jiB#oAI56KlgD3`ZJ>Ck}9|q}GSAsW(E% zNf?p<5hv6Fiio9Zdt1%5s@@<{ppm2l5)vsqMvsEgC*ry9Yzh?ROI;Z_`sW-GIM3dIybuc+=aV_hd#wnBz}832l;QjNX3AN6Nw211XP)> zrQ+VmWz$wb0Z7nLWWg4-Hq*q3r^5L(k^Rl@O{5)vF&j8bnA+ymbX>hq2})26L}CJC zYxy7dH0L>gb;#}%^wA%p$6ik@}842ys zz2a@&w1nPL6bj9-us~J3CNUkT-?VKG56)Ts-rz`BSRz3HiX5j+G$d7*rH0y)@YI)^ z#4KU9mlY-M%P-0)XQBQhyCkxbfTNr-IeMe~NA9KRClJV*z}u)kZ`sDuRC$feFLGG8 z#0aF}n!J_J>0P7ndzXC~f#v4$t_d?;ax+K2A`?pjH2#zRAHj^Ra`I(*tDjzsYqK89 z;qw4iovy(pN{A$!hGukutMRORqqJex3>}(-4K%RS=%57X*#u?|yfSo2sH^wl>{CYF z^&t>4l6IMZ3F=^D1&&1lt>t_f+GE&VL6ZOq7WJl=;Wiqu^C-l`0;3Rvl?WJ|Y)iO?QjfQ>k zWBv?cX04Wu80wJMY%wpQj)_>*#$8M=7?p1(l{9JIJ`~#ehL_SM@Sewa*$Z5c!x(sn zGv#_m?Ee6mI9!v5gbv3t2b1z7wqeRUHgGFlMCrll-Xmc~wpHWF(ph1EO>kV31X*GMHgq<^`~t z6;4`g;hjUh^%PrC8V@rcR~TK@5G6-5tujqV7n(7|JCa0&9NlV?A1`0VgWBU>AtO?H z-wpL;qi?g~Om)1lv>|8KH~mA;S)TSmIUYYI8jW7#73v{bo$r7ok%?GA)(II?E+f71 zS@yaeH#d$#ZgT6|Bxtj1!MGE31gIobl#ZBIphW`#T)Kpbwx|geuPo#f|Bh0ld7&T5`)H<4r@ibx3E~IIOtl3JO{{RLl&GR=zxKRF( zbkZ}KsQ1CKBN+lflc@j+Ig^kcOla0;-yP1%Gz@u%t4#9Kgy?q=d&BZfL#YafU>&mK zXwbzeNTnxyn$^kq08P8KG3b$`g-9oLTv<5}$L8ms2t=agE0pG7jH4#d)tLH+hCdWV zB9Yqcxpx#jZnrXFe2tI{I}kzoXTVLa(Uh#`i|g&k#oBz!T2EsJq{>>aglRIO zUq1PP@&r&nL?c@g=RDnUM|kR*x1auD?*$+^p*DR3l0 zO46u-QbZb%;Xl(&H5q!lSiO_btV%Byzrtnz0CRaG2n0s-ikT*=Aj#Fn`P+u=`-@Zp zV^E=x8I1CCdyBA(s|52G^@(-43F!hl($3fJBK8Zqzp610^F!VF;~7zUX?EiL)(DQOhE zQSEynWw|G}JSr(HQN@eJ;pR~z*RS&`<`r=zW7Ke@0z?V`M&R}N+kf2h-Z(;%w1X)j zK*nT5R1C*!&p#LD0je!^FaH3k@O*EY86wyFD*picjTB{TNU9qS;&5@>ig5Y6QT9)V z0Y}9O``F~XvMsNd6BFVqd=Q%M&#C(V03! zq9s*grBRWOoQK<23JQ$pp1Qo!+rpj_QXNX&oH4ByFBh66h$Fl;Tv5XwQaiG4H)cCL z%>5XPRv=r&%hZh9`+I6v32E$uC*vha=f+X2{! zG|EkQNgqeeI=sIJ*TCed8g>+Wgyw#>Pn)Xd;+)FKy_*0M^Wa+nYZi9q-)uo8oSsA%vtf1Q$5@Z4bgd}G*ftaLr zxR865C&VRfS2Z1cBSu?QY^!5|c_?^-X#y!U^8=sU*nvw<$)RQZyEns_Z5pgn_W- z>LZSErdmAPiKscg6 zta0FbURN|S`(~99UN1CVvv(8-fh^Y`_-(YV(&Z^p7cGG)NielxIfJKQdgqlwIZj|e zBq+flC13?4XB$CryPN7VYQ0g9yRPdlgp1s_>Yoaq6q|7 z+`QWqNBEDBWu-$9(hnExA;LTdQEGEFxv+30Wi=@fU=m|l%=WmI;7nc6F!DUVYXcP4QIKt3q3egQmM< zBGLo)2`+}Vi>7vK#AxnBMLWwz8Kk>D7b4M3lho=!2QXPS6XH^1+&>ihh^z_HII-gK zRhpLEzTPU)%d`rroX2}=ep`E8NC5TuyQZ1(7B>6yHtnRXq@6@_~^# z$j)|qp?ONFCw^d!M)$6X2~7?|P3Dqf3_Kg$B3q|+dzl(yye#)NsaPMvJj=;G^$fmYSeADN1Gw;x82v48t>{~6 z6;q9@)m%>zufDe7Qe#WP}uL9l|4|HyH=XtGCUNtEA_E{{Vy&*B@4v7~;&^xVHU2 zxS>r0Vn=U#v26jhgN!U{L`7Wx0N~d`E#3yS2Q()m{YoOP2NZjpt;_*JqGN!emONC- zpHKHAM(p~!-hJDlB#55oP1TD;5`QX8YXu;Wd|ndNR!Q6R44ktT8q&BKj&yd#!HOFL zE`Y*PWc9O>Aa)iVs8Z4ifJu{}8(xZ&hGKHr8cSPT17IJH=N;w<7x(}=p~!3Hsd0XA z{;BNRbcb(%+g+dwrxMB9PZ|{y^=eMNj=wSH9nvNS*ka(4zD9%U>w5gB?_2vrhN0wC zW$)ZQ9#vQ_ppalF9yyGjJ>_wil$+@%cuBGq%Zqm{Tv~xQ6igtRl%x~OIgV(X_R3Bf3F$<1sG|l5 z8SHQvWZx3(`nx@o(XZ?O0FXu7m@eH(79<&!TDrBtO$4TbCS=8G;r{>;GtAvQc)4ZH zV95scwGkZ~hTULnlNE`PlZJDID)qt)f@h{zL;Pl^d3rVz#I*E*+*Jb%m%gt zwP-mx^~vQYZ1k4EvXes_siQ|%f64fnGc{zoF}PksE(uWLl>N}hG-O=NZcp6}R}ZNB z_nS>s8tOP@^pt-IQCvRtFF{Ba?UHje>v_pB2V-^Hg=9@2c5m`)D9N?m>NITbZEfw% z)z7mZm%c#ajN5nBYomv?An?_K`%fl)Q4uJqEmehFx~ryD6TkpEfMOiqiGDR`^*VTpYxG57ULR^YJH#L{zp09ZpwL^ zK~khyiAaN5QV9Zrnd-_{#rZ{?UIK~ANJPd_GqJ*XWQFqpUok566&TjCPEK$Azruog zR`NMrRLpQwg>jDBjA~EI*&cg)P*75i<9K~0g|F>-i$dwJjE-nQFbSt~#2*p(c^~qG z@bIjUH9c-Xfyx3h82W*qs|%Osz8ZuCn?_(y=>=C)Gg`HWYD)~Ae8x;EIe2#`Qo|fF zJ_l`hK#FJP^@lXFPAbd;6rd6Kyp&;xJ9jq}5m0`I-5=6c?j0_VFD{SnM-@hYiXnW> z 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 C9Bc*v literal 0 HcmV?d00001 diff --git a/docs/images/post/dc.jpg b/docs/images/post/dc.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f762a10c182fe49282514eaecbfc2d5b88d69d1a GIT binary patch literal 167577 zcmcee1z1#F*Y}6+Zl$}Kp<7Z~x;uvM89D?crMslNyFo-jq`MUqX_Q6;M83gW@7w!{ z?|I+r``&lFu3^qTd+oi>IeYEjUjMT%Zx?Uh18@}|Dm(j4-+#mp;5+IoEhVY{R0N|egSxfGZT26nj<>Bru?BQW& zCCnovWNpRA3*z7t0P=G13Rv@S2nz6;bMOHLxUH=$1$g*{fUv$0rGGZZ@<(&#kbmlw z(;NZ;yF=|Y`1Fp#||t9 z+?>C94A9UCZ^9bNwS*ZLTADlBSVL^hx%v3PKTKkZz|Q7QU`Vi~rmBL~T~m70ZaTt? z0CS1J)n_gsTYhGx88>tdOamV_lV$QY1UpnBOILF%iC=bB(%fp2KMW-Se?K9qrUv}k zVo6ti((N8ud%ffY{1r*P01?5UWZ}xy}ub+%BXAov}@YyBq5BLOI#;6 zLm&Bm8rHMR+*tfdwU2&;P%fz&apm9Hp|6W7VMHoE3T`3G%CoFp6+2{Y7NUG_V@5J_ zaOJ+J@;5sxP1T3L9F@+bIepst3M4g{#aG7mtc^gKio%648iDv!)+BIXTl;T@mNN3c z9E}cmuV_&rjEQL9-+Y1aml#BTM@!#2<>U!d^%*Hw;0eoCJhngd?26+h>k2%ZE_rG`?P8EFm zcXk$!ZM{WI)%3f^t=_4vQ()w_=RZNB!Zo%JDl;2n)p_)HJ55#1pAUkJbj`$SB7N$m zf)rB^p#?|OLdZFLnZx4%(Q;4uo2j|K+sXbpl*YE4y*DLu_MmJ2XJT39p6##gW&t*t zoNmt!6RJ%gy#HYb0Kl>R9OmNxewdqE{tAkJH^u>*cVoQ3=4Z{|5+{g@HPp-89V}@B zc7}T2S8y`70aHu6gUz8X?$p-qE>6@kV2GWKGuYkA%NACJ8_3Pe0RnP>__RPEVQ!Ex zAGd*U(H{C!6FF>i5NI-1)#-OU~k?`}xhZ$WQo zWhrd!;_hS)wYR&w8C>?RU>m!;TVM|La0h!UL%@#Kbay>ii{16h_1~J|xPG|$XKVI$ z&Jd`%vn5zT#uCH{bot?yDeO_)U8Re=H@S+PrMt`BGcwfxLtJ4qo}Gmw*i=%13sxKY z54BD0oUL7g3$5;ED{q!REvbLAq=wzYKOV7~yNf4mUW0XQ;|X?$!0zvz1NMJStszCf z-4sg?cSmpI{|{IGSNnh5iN9v%pJ9Y=F##Fw&La>|{&ikcT83KsE+EXEp%7{fO-X8LNgyQ&7B?@D zn_CDZ1Oo928QdL$xOqT74}s9X_e%i8yK5Jf09_YGNIPd6D6BJFAog7$3IU1+*viSp z+3G*K_tSlZf8#zd1g`M+8vus{KnQ`02f)go!iT^G11jpY*ER2bNWdS}w~|odYMq~` z=;3NMLLYKhW<@;OoDh0_+dc11TwKTAsEE`YJ!G;vu+DE7hiPzpOzM4jU1OWlqfx0R zkrOWaFo@DSr-~8t{q6Y1)K@)2o{h&2m;R8t#3#`#pTD~?=g!N>AuC%T$0zJF&+pQ) z2)R1?2~HzxWm6uYq^_GMcG>tr9b9&35!1NIRz8INef zM`IKN#Bfr5M7|)a&eOB-TNb0OT0ckD!qnhuBz(+GD9>hQ;-tdF{$vxYf=zAY`Q|8o zj=qqHjR~HmxJJRi+T?31bSzgP&k9tK|I7Hct4%VaS(2A9esFE?7f9>~$`&Ou>1$NH zc6&wP@4gcEroDg2RP^drce+E>RF~tN1R!R8U$(1E3XGzEi5~ROo)v6Ik@^UQy$t`d zeMB{@_PsJQ@2+Z!Sv5BSVLL^oljB!z(>3@0H`OSN(zg$?3+#B5TSGS7N~gP76)!tT z51-h;BftURibCL&VNXOJNCtcQ6bx{1w}?2fr-s3X42K98BA_e+hxTJ&P~hC1LPUTE zyZ}<%RmDamMkGWuw9guPyHt#9u=k$qh3fhA}NqKh%mY)>s!3X*f>_K zU5&qTv6;?NvkcJmt^yUJ9#99Um9LSn7XIibfxNuDIGujYqMVj4PF$`Ib}p_EE=zYu zu0Ladfg1>m0@(MTaRB=bi-fxpNlsW*pd&IW%zq>#6gW6UGoT63=+`k2K3wfT_61w7 zLjLQ$L4lZemqT!Od*Fe9-$y(wToW6L-@KdUj=s*XxGhtU?PyafZ$5e9p zLjT(XB2*+>$g2{;A>+;*G@PDK+63nDLCP1lM8Z@o!(G#91sMW6~2###@i{D&x^F14!EvPh~*nwW!|cLB)1wy)SFIekk^tbQik7f$P+b-r*m4v zNj=ejelON;wu@U1-9sRj?Pck>J^97S);FvWmsV><)12+*Y+N^?Ow-3`ek-9*EnuGYT24osLE2>@Y-zN#H8mi zvkBZB8dFU?$?;6FWVFLKG8PY7%-%RT6P=Y7V$27gshkXA_Z1D&s>WY8Y-cH6KTqRo zwy?&$)W3-?#Ct*=zTj$2)=El5@t(-j5dAbwn^kv9<9WeG`!ntWa))49Qmmpcxz14a z7hFZ5Lzd+yDwOGzqX~izXY8ptNGm@1ElbI>T+Ta@L77jFHa;Uh9T`J-LQHa|6ZB~D zLkGgU*wrGZd$J4Y&Jiz|!y)~*O@c)F$n!8(Ov6~w`5P+`r{+KSqSIR7{9py*KMWk8 z>EGw<|HKL)kP|ixVXR>KGft>AJzQNKeW<1Hfb|0v8ZItS7%!+{3q$T7(185_2>^k- zeBAsnXz>0#1p0_ulV)ib<_6-S{jv16S1+@vUIeK9=R?@_3kAPpjR z!>fd_UNL9s7af1oDKaGHdM3T-P2Z47J{1NieOzswurAYN^J&%1h%|j3`f8^_`LOS! zaY-GsSwMyX!~DAct(daJJ^TVbc0MBDrM&!`L(D6bH`s;W=zx>G2`Ea>$7zx`0^fzz zYZ=>IcfY&(!l*Ix{BB?AMcNS+8ec1&nLL9^=kM6f+ycfQ67#vG?rN^mtNCK0MZukZP`*^Dpa*J9QsZ zi~SucTVp~DLHbaf_Wi;IDwK@Zxxo6z%3BfI3FLFHlIydWgQ*y)4Evz>(?s z{%mJ&G~jin*AvYaF4>f6DbNkO@w0w0-)9f8r;Xxq^R3)Qw~Hv!Y#2lsHx_xZKfH=N zF@Rz}2=lMWwW&A0T3a&WfS)5pB`s`AwCB)eJIhg$7K7AIeNE=?z!{^1E(p^yR3!2J`$-hGWb^F`f|)JYH$Malk@bKdLwxu zV`>HSD0rQ%UUM}?q;xi2;zF_!DHe`Ma4?_tx!o@;#oa9w{>~n_a3C%++D|kQ!NF(* z2l$Of{}MKLOC1VoM06l35E&T}_7ea@-LEzX;Sn(@(E*wO4}b+g8XyV8`ExEu0wTbs z^uNIjqsdmJZn^HjwZwCY=3-Qa7-jM+j5R-C1_oLJ&GSw3jl&K9BVhg!WCo6X0d2uV*XQVF9%pD7?bnw)e*BL|3P92MW6iNbtA;5Iktm*TLBnMP!W0KS03 zy^tB$N~lKD9U4VQy{}gsFWf53I@Wt5SS1*4isWBMALr6zycy!j&X94WoL-Pab;Th@ zhB9$qr`_<2)x}(W%qN6L52R78HLOL2>vNg=U#+(a+U{+I@cMD1s>vShU`}%SNPOC6 zB=Wetzb#(7s;DdaUG5tOa!s7p>iv(IymX{hdyti71(Ew-rWTSj#CK%y*gl3FOA4`F z%3QWfMk=c*GaWH(=G)^nsBE5`KH9HV83xM>#*Z=N6md-Q7=qZ%Q;q{hyGPjub5Jih zNZ{)NEV1)dtyON#qC&iMZ3VZi(1p@BEd=vDJ85L|cP<|1eZDn2WWMnZ)Aa#z`bgeIf}?bE^~nK|Cfc|>Cr#h8 zS?=e8vF55g!tcVGPOPYhRY$s5;jgPogR7P9-%dwBbH`cUW$;@?({~gK?+(J(kxJB#iF-&Ju9Wud%^m;9(@H`=v&sNLzOS5`8`N~xGmiyTb2}zIlXO9e1 zVOXe>3uHf3OhB)%dzd876UBPfzRhiUN;l{{O?b_yckmrKRO_mbN}zIO_LB~4uR_o0 zKK$p`kG@rtwczvF5k--x6xr@MQnF;BosRp`yhfWM+lvQ2v=gyKWb=Q@F>h(S=QJ;r z+k-4_c)*2c$m~$2QEY3XT)bC1PS>l<@3tH)s}?sLK7OnDs$IH?{s6_du=#2box<<6 z1|R4XDphDulHu2eWuf_@?ae5}K=sFGTlQ9R3VUBam43;W*8INwijIDfVVQuPwe3O5 zsu#JkH@W>~R{Xv_k(XDELg+ZI#9*d8&RiO0&@)JZU;%>5j0*K+i}c0?r#H@{i|$_V zvQq+vVejf56H}(uS0R6h*gVbj!ThNv9;f!Jw|mDdx~u91-jDm>u;?Cw#0;pD(QX6Z2Ku!CUzaksPQo7!4B( zj{J4Gmk2gXl8}lj*>*QGJJfuJHW&;HO6WacX zJ%8m{|B^iajKY7xy1y$BKhhETL4n)bK3m;|Xld(*!i)}FJ6Ef=1@UsnV!Wxo%i5r` z)M-Ie_Rjc{Sapznl(wxSo0OG(7=6Av!r;3pcfHS!lrf8m1KSFCIb^;9dX!!=*Dp~s zr217pW)x3%Pyx@Y(f__420B`{`+mS7o!Uq*+Ya zjB1MR>2pnnti?B`T!C8_MNHP1S4(80cod*=I1SV-EzC?yw!OvB*=AJY!{>^Ik$Pvy z#QFQa#vcY{=DWDGbr_CvF*k7VS6)1>(=mP>h3!_MgTK-7tlWySMJ_d|cGC4ta)7^q z-Z9d#V!NX|X+U)<-6Lo9iOA3NXByy2;KN4h;VW(sWS(esM?68ohYo0~WTNn9mqg9}%pqz4rD z%@JekMvi#LLiX$?lhcmk}xZnXCXk<4DxJg}_Yj&CE8 z`Q*;YH-s@6OtI^ZfF`-Lh9XUE*LrBCaBCci9^+EL-}&XHn1XA$ea?X{yqIorX?Z z`b8}}H;GiF{gEQ}nIB8~ZqR|$()iC&`=JlLdZYJiK$|{J3VP;jwLH<2xfqkasdBnJ zN+Pq;&twn9QKjszp`Iec%!dWo2XRiE`wRoiH&S){wq+~`Grc!~2?X!S?NnEW^0R{K zZ%I1|T>>=%%s+he9jEf#Wmonq$zATz-&NO-f3B=~JeIXW-K;n4A3D-GJ+D5=Y@qu* zHr)H-6NpshvAXxXf9R78zsSwQtFH@_b$DU&)q&LlD%^wdh6PHs8KxFX4+z@}$}Uzr z11NR(#JN_i+NOt!;CQ`~|J{-yCB}fu`1hOF< z%gkZ1Rp=!HAcRr_~e}~Vlc#qGNW`r6cD!{EnRM8INvFMF=Jy4sflCv)eF^P&= zyfmSk^BlU&Gp2iOUh(<~`5xUyLH>v6LQ9HO3#SXatxs=Ea&cymHiA~fQ4e3*y|CAm z@lHOZ*+XXV%tbf)lT1Xqd^(FrMzky-3DFMz42ca`)fOl~pKw zG?9^g(dDRxDcfydJs`o)SU3NOf1971a5P$ghEHl&O%bqbxcs?C7nQ1|?*0m^#a=-C z=na$ho+Gg;Q|d_CV@9P>;>^jBXLt+2QSRS!q{Bm*H!pu>QPHq0D&p^`K?(W?$%^!0^w&E%JKdT!arj0_YnLk0tP4ix)fNh6#N7j90a8QRRV+yC;i!z zizUSMZ#@C^{;UNbuKdd%^E*c%f2+v#-*oA3DHLon`T=9H8cHh9Ov8_Yq4;u3(urU2 zR!7eI~sCbqhC3^de?faHqpncr8WX5@#029i`}b9x;jRS4coHNH-qbmzml&f5~;nd$)M;fjx2w% zj@mAWvoWCq->@i;=&^^w3%yDAltz4z9^4SP^7s^4Af%1_JGA$P&&v0KP3A++Q&;Jh zK@!_EB*U;ir%{ZD**9nOcW(9|d9uAr_x$bis)k|c6mtANvIQ5cVNsB&?5sMH8B7$Ip+Uv0Ts^WAYSpZ9;wg7w{)FtEX|omvjjgi)O_xNq zY2&J5!1%ckzRe+aiKXL4=>WwTKbFzl*8TE6E2u=-3-^J}M^p_hdMZBO7vdqw)$Bs+ zCGzt}^&o-@U6wQ^&hv=U_(z^Z+KjFljF0p0$x%yxl(r1=^KfQjNXQTt#B2KUC3j22 z@Kf+AE#XoK>tIrE{_02ZLdexNm4Rc*iAE|On;ukxxe6jZzNQG%x&;SVPKPVgAX2t@ ztq+@Wgp1}7-uE6AiVjP?C6#|n$U8BuTy>Z&_8q(3iuKBanO^dvqYXuFpGxbw` z1(j&(X?9&cAGY#SS+j1sSiOt4=Bvryg;+rvyZ~8#|JC6K#1p`z0V6xrcb-{m0rr*)^ zY2jnYw41S&@*1bjgYC|YT5=rKzcUl2Jl;hb1q0&W5$W}d6)?uY)VTj5VI+T9!BjiG z{{~_1B2K5i3AH?nQE| zOGbqZEnJ}W{34Cihk8;@Tor-|pyqfl>GhzR@wyVrwd+%?N*23sc6}2RD7)fjZx%5& zjSLr@BCbNI8F)c9W3BjUF8ylC78IDMA?3t96*?0{kXSfchVfLp2XbE5?oh&o+bY$k z?7mfDW74Ld%~~r}6RmUEbKgI$-n@zFwqlHMOzO$;pL9j{KP>O|Q0+9hsK9MB-o0hk ziaMHm>gEYv9zAj|qPu#*6e3fb$#lPpo|3VzZIyNZOKyWtW^j>Ccon+r&{}_N{&vRo zb!m=!UH@QTpS|1CYl0xO{?@#)hzR;F)gpxsFYCl(_h-9G@ETh~Gllt(B+(%V;X_t}ScbT<^tGlQ2q#~G&AY>R;>4|6=&DVf+AS6qnv zD9NJv+mmOvPDnEKhh2{ZdNTlP)Uc)BwV4fZfpzCQ?H9r<;q@8$Y@bsl+l1$cGC<81 zXgKIS!Ak_+dyA(|b(gvkuR>P2*ASzQ0At24FDL09128r`;Te~Xz@Ad2ED>mOY+H}- z6^G$`%Sij8t;I$aboJr{n{9Lcx`IoFNO7A0n_@*k@LmDim(TP5-(ZSgER0wlKZ%8% zO&WJO$+3O7qPC7IL2B?jvF`Rffd5~KMGvICgBb$B{XdB%34y@2_rNw5$x#1**3T^v z+(1ECruk>i1p>hozhBV$-vH--Vpi`~0>pN;Yr|Mk6i5rS2}Tj#*Me?UDqL``AI!ZH5I)s!l7^~)$Fm3R)KJa=YUv90do2R80hsoBaS_WLwIT-dc{#Y}l zYO=|<4H{WaHhCKtAGF+>m?4qi^U8a$wV}Voo>UM4H+FGWpqLXWAo4s!95>OmN;^c7 zdtn6;!s?s|=TDh ztywZ;Y=JLQny1a3_IZ{D)|3zdqXFcpui`Ig8XNK2x*ng*#kjIdnpHMflFFps^Rx*3 z5>$V^V^zvC6@~Jlr)^8Rn6$mr3+@9>3MLIjqZSK8l;bA0hPoW|Ib(IJq{pgnwQ1~w zq3#(;Jbc4VT(y1Bz_2?pE!vvDvd06?Nf6;KYmh%ami zL}$!A->~D#px`)Ps%WIxy#I??!Z2p>|MRP+zvRAu$)n$aCA(i(ca}5~0^(4QE-RzS zIdyu2^H0F~$9F~lwd_awH#Q0UV#@z5`}rA+3Nm-0_#^j%0%iZ8lQWylBwUQ9Bx+mCnj%a3}wFiLk%ctt;5 zAPh#7Pb*81@jbM+)2eST(24t0JSVo(@b-p$@yyG>NGrzWus}`hn z896+{2z7n6UOu*jirOCWst(4+z^#gh;qD6Lw&+GA-`6 z@x@JEErNb7+)x(C^;c7fAX-G~4fHQ+Z&a8^mjlH$R#bbz^qZHYl#dz|X;2iVpw~F( zK!M*|=K?VU8G$gwAX0mJ=9QmVa#2ZR2-5*;=XE^3FF;n1=D{6E$r;k|Su4MT4JLac zhQI>?HR*VZIluGDk22qMiP4n^eQ)dU^Ureheq1b_Igy{H9 zx?0i&4VE9S#e5yn<<-v5OB)(JZtvK@yYG@Y7=}jmf`HQN9tTO{ zfqEG=e!k6jqmVdJk|IdhMGTaoe>YYe!?ZGk5sy!JyYPYB6SZ#tH|M#Yk~qt%`g_^b zhr@6}VJxdv`1dT+pRm8|wU1)X%4SgXP-2=R6bH;w_;ijT>HT~E`Gsl3qmu+Q_K92mCy zw})wlvkBR?;U6n9blQq^FC+SYE7++u6WsUqXhYW5r>kLBn8vO#L<)6HL8BQm-rz;5 zqe|v8q-VSTyx4Z+1~|D|qKt6qy2@<^q4&yj|LU<`e$%iS&Bj;jf?`M}c^E0;9TS=R zMISE6E@MGLD4C4q+%`re^q~f4SMZrDaRRGZ^7f3`XU=FGNpa@>g1qha!x>rC9b%mF zc+REP_p%E$!PQ2dTUjRc`zZAu*#aNCH^T~RfapB@xCZ>hv%TZ8J^a)9*NdANGgc?n zVw>(LUp|prr zc48u=vi(l;6;Lb?ZtM#^~AG8V^4t$miz=Tz0y8S|c~Y&s+A zn%!YaookXNg6_1?hADIG6o1)@K-|u;OSg7Q9RuaeIh+Bq5CPz2RgD9 zL~>sd=?yPZ4Z-534-YsH8LYRu$;~1R@NQQCp#T&lBxEE+6l5f1R1_3cbUX}nG&FP~ z99&F1Qlfigq(r17_bHiZ?o%*OkdV@H(lRi!u(7k&cC1?F_e{Np_@K6x}hyVmQTG+b_I0QVn+kU_XY|}by7YU3}zdo=-L?i$*3hG@c z?DMM}_7@Hw0TBro01y9%$*Lc?O} zhzAn#fx#?^NLo#^@#V3lYdvvLLh>{LtRFZ8c-R)oUv9$T(SUFz)y>_ggA-xKM^hhw z#}c>80NAzMUBl@DphhEnPxO&q}OiDyB{gt87g;j*TXSa%0M$5 zxlTTeQBefcdBks2HL#~kU$Papa~D;-P+UUAJ`Oo&wd!WZDIpO3f1mm{;%hu(NH}M3O<+FJlITCpEQXOLV>P*U1__c_7bWi(O4~!%x zSiP-MXYlaHVNIEzcV*G?j1$y=fR0b(ya*wQ<8ko#2WAvc$COVQh7(w3_WWgrva8x? z-+3-H%UX0+YULI$R~gBcXodAx(h3u+0Uhuo32c~?d4PK#$HJl@u)SMec(2$d+~mag z4RzCjG8|;Sq#$r81$^qAx7qQcO;vwdsUOwCE=#X#{?m>XMk zQcFT;i;>9_{)l@suc|Vw+e%M*7;(iW!m+%gwxZSKcrXH@vKninm_e2r2QrDBT$=j& zT0@{lU$oAF2c}Xv$qq?m+8ILI`ZObr-CyB^KavA$KWz1V83&`;(wh%8nNDBYTE$>0 zg`T-1bY)_i8bxUsaPNf4DL{|;h(SEM}M5Tx#xH|Y8FtqsH+)uB{0kBwQFoI}?jm$2R`iwoRO*g3#r zU!9|nMlQx9Fe$oD=UnqxS`z#1^myy*MMd|$<|d04Ctokfd6Vc>|0LTk;aNWkh;mS1 zVhOR_7_T8>&p&}|INa)e?HD~~I-l$J5KUy#3H=QndR>q1PYqtQMKqyJTO^B>{@o_* zmMv1dG+kHvUlu(Rg!rnl)n`=;aO^ffy#5k>+NhCXGOZo2rg{^lKIm4B3D4{A`LlED zn~0?$VKWI4etc?FUf+@0jFjV?-$(w246CWo|CLr^UfJ{s%VWNnx&7&)vwO`o;_UO7 zm0y@}E9cML#BFB1_W%UO7C@|-e8co3^or8k=b!)eeD?D zTCN(g#h@9AqfJa7J}`Q1+e#}xvFiA3PML}K978F@>*A!kA--D3u2B%I&Lcyve-2=* z7w(qb)1H@6sTS74oNbmG-!xU-@SaGf%;t_HPfkD}pOf|_En_8RS4SJ|e=fD4!)X;k zfU(1TLhirSrB@fDnm=hAo;sYIZn9*CW&e4?!&-eDcY`f`!FFdIGu>FVyJovw)`}Az zdU`{WwrfY%Q^CdV!&a} zaEP>%o(3+5O#cW{G;vMv0P=+Prjb&BvzOj=UFZ=$WH$gM#1V8DSboTkGx>I3(|Sy( zG(zw6O?jHlblUbLp_ImzSf3v)LsojjyR2-L5*;f#X&%1`sHhAXB4cUG0AI@T&0AUI zc3Wjhg$GkUAKwRf+xG5LJ$Ox*=emZw1X+V9^`J|6IUATiAM>fs=7}&Aav3S%uf7x> z4qE`zM7Cr=#FKT04yH~?mh!aHCudDZ4;(R7p-IZmRHd?FEfYozb+NSwsgwevPG7$~ zU{N8yd9qE~KR(+Vd1Cp=U^ZS=UwLV&gZ|nhR8{axAvVF@he16{;(N|Gt*FOywgu&TXAjvFjGQs-e9{L~GRs4d|9_$5O~=H=?lNoz;ir==;c zntaaXnGSkit(sKT94m_}QwRIQ^noHFZF|;AfmKBHN}uH=XrbRxT7O&i$)452HsG04mvG>KH$t@5YZl4Tt?HeSg_sQ?5 ze-fAMqHhW30;GQztZ6=ydg<%HIZwW(5*-rD&soLduC09cPdA7XQS_ z(D~^(T>8b$gJF^OuIShhgXZZzml@Y@!Q!UAIgK780xs{)p=%-+CNnL8js6j1-&T#7 zg}>^bKTqqCQGZiqs5{CwdHJ;JW55k2D~r(;{wZyu*EDb7!c!UL~DPmfGK6rVcuq_zfA@R&zV(Zdy9n_mqYo$A=$kMXL}P1ooQjFQzl$J_m`DbFaZg0He`b(DEB ztyxk_Y0s{^?jlLrWy*)L99??yyvmu)XiTE3_!eMjvKedGYI>?lR#kE)@GbAfrnW@t z$bFN#wV4u1hX-N-vC6x1q#^C2sQ{8DD$10;8_Utb%(If+=MIS!6ig;Qv6;CR2iiz@ zwj?FTuNGT2+ zI-JESHW&_Vf_0wxDoLf$_JIL-hh~A|orQrlUISO9J`9W7RvkWjWf*Xbldd5eTq-JX=2#ZT3w0FT8xfr_^}xqOTpFgdg> z-{eKXzMXD6<-g2tM-hv%w9r%URlQU8QQV-ACZ)qRbgZT)Y>O@0&}FCNxm57wu(UDW zhys5G^wBl*mRe8-YU)xAn@FMwll(Jjlm zsOPnfE1&n?%{2s$$GU`G?xkvEO|~BdzIfXck;m_7`(TAh%sWM@5iAku!8c~PDk7+_ z#Jx$s;3rTP>2pTDk}cHid#2W;#pt*+wR}vjNqZA-cN!ROI)B>juM)Y_^T$RqLQ(m-R=iexQk~dA2;!sAXAsA4eweqmZi6myKNpkFn=A7Th0>>;CWa*Z?Hm@V ziMVnSF(anni@F=ETt61{Qtj!~l`*&)5i}ipLF$Jh*(MLYJI>gNUZKBmtTrYXzrPab z8uZk(cQ4SB-jlxp{l)>$jX0-cr#tuHAUWs@hsm>B0K%3#=(K7~n`1L!Za4YV!BkUw|yW zQ)w7zE)N;A_8}E0X2{$tw6=b2H?sOpIS{N*%Iv?>#r*Y>> z&tp#e^R!FGPLIVl#QlOF6%r;S2GRN@;Ng4L9Nv&D*nux&DsAh8)Qxmi?3C?MG>WO$ zl;p-=NHUcbUyFA1-+bEJilodmJHGG1YOfo6sPaDHRi46jWZZsr<*Q~+l+wvFVT}5v zde=3Y6CAp116G|)8Hl5xM#DPOC%aEqy;`3P$UG8!#I&??Q5Da2wKZPl?UY}xv=E5W zYtrR#J2{QTG*;%bY()^<-vv1mmle((p+iFEOw5e~OFdpLwu?9Ebz=wicCR+Z=WbkL zipuEL=}WX{G@sQKs9E1&q&fOJeO|uwNczTI`1C9-g-e>d9yQvLL$`5K>Y~B%fNXk6Z`peA>l$<^ut1RfS8jt7s=^RmBfg^MXZtuO{) zh&yc6Hyrg(%CiW-yQF#`uhS-A_}PT2U!%gLvx)^>FCA1*PSOO( zI2Gac4Mmj4jk ztB}r596WhiY}}@4hIxZb6;xw{|7ddQjBeeIu|{T4S51jg89+!U`beC=(w zSvRqwn{SCh8$_*M53_bPO;_TM+w+;$!dO1+**^bT zQ6wKzwXL0#y{#|3)#CEIg5F0Hqu*`P)y)xbwq7|EJ`I60sT!NJe;qVLh&d7y{29g6 zVywZM!!Ia+VVjM$#6yvojyCP}YY|g*<49xYE|&vow!YG4+>!hCE9au0SZUfg!m148 zvqfr;{7hgh-=O5->~Yhl=#d&BqLAUR9L}hNqnP2LeLad-oNX~Pt=wrcvt&&ne0h1< zVpotl|2$IH^FaSx@)7S@;_||r8s|IT;lwn92B-Kz!o|6#Z~589&&T48-vgH;wrpk= zR)I%VKA`6d;K%#}QZZ`nVHadaaM1qIm}IOPAEGutsv;Y4(T|{G2es;R9lZpm>YC4B zSZzrd9pANI;ON>C*Z2flW@~q>Lt{zG^_Lj#6^=Ll6LxAiYV_QlDWGLpbE-I}#R~%WJj=tse zRrqxt!d9228Dwvh*&);D&C_}OYv`#h6ThAt{j2)VY=P+ltZWQCJir%%B92WgxxyZk zv??8b_v(Rqw*d9LwC?kejy7{>I$r-PcMYIKI~|0y@*^iWn`?UU?70n}v&W%csF_Z% zV(n%h{BXNgdG%LInT@R1OHH5mKM)%PS>-EQKf)HujUIg}VOgpY83q-;&_+cc3FrIP z!t#PEP|w!%_ovH%3juqGLGBI!-r{t`<2sCy7C@Z zM%Dc8tYX?6TlUVb&oWs)CU76S1;u7@<@B7b0(U?rvQ{Kq&@Zd;U?+|f@F5p9iUna; zz4_xF!pYnP$ALFkCWQproXRxqltkCq7vVahw@V};;~sBg`g#hpBwiWPd;om4Tt-}{ zTPK{cj!P}}YG!KOQ2%AUkt^Ur{)`M)@w$D{WP67SO(T-jinpk%R6Zu6xVY4+^izyN z%4kmy0A7my4C_RTNCnWhY)T{GrzW%lk6N1L?l5bq0_j>zH*pCG5Fd)}>p16?oh^O$ z%$mO^s1A>S@M?^Wt3FaADHU+;7I|=xBuIw0o|#mS76v_g6AB%jP(briI2aco<9Vi| zsBckmvau{xx>6KLr%ZyG2C}i9e>ZuqRFf#z88S}`1QCF{jS@^dj(N>>9j1bJ4p=xp z>_lcHZQ*x?`&ytmhGgzWCL}#@g1oBF-v&SB+|_$gUpr>Lxk-&6mJD#TL44O`Ib%qK zG^NAA8q$H}p%&dn+tkYoBIqm9Zp{c@&)ms9pghRjIoKj}%d5;2VO+^l zMq$86ZOZcPS|rRrDQB=NU=T$dcT}n+b8ruMES`pKipW-!iHnXjYEX@?*V^nQLr5Yq z0xwKg7L)ppXNF?(p_CW_52MZWyrZ>|IE6xS`Sw`TVz_qic0+g%^%zSMDT|96D6Vy> zVbHH!uSx|b6i?$PkcGgd=_Z~DE#;uF#eJks+}X`Ipo`ndgwS;*PqEv`;f*kKYm9Rr zICU*JKg>~mpd_B7^~eW0!Riw>gUv72gXD9C@UTT2AkB8fpMUJeX_h|a108Z?kWmVf zM~Atl^yum46OQ*8AL7ga7My)L8U&A|V__Vj8(($P8{id@1PVlyt{A1_ zIBfHpj7%dOFR0gjNvk;bCs725mqyB^)U{LVTY4!bgpj;a-WE=jRZ!D&x9#;+L$2jQ z`!aLIbllU?8hazvLZt?~sS<-&tw`5W`f6QJ$bngkn;X!cbW$>TMI@DF1gk zx5dRu@t3{10WRJ?y5~Jt0kV20l$ZgxfI+caK+`cod`P6Mg5BbCHC|`K@e+OR1|)cD zMIl$^08e?nS+y~>{e%@Lohh)i*L^4lBmCj2le!g1rECD#v33<~(o&S%6wdx-sN>MB z8(nVaOOu%RR#mgzMAD^h)t5YqFMff6gGp}`2QagaLDTG^%;wUQY^IWEjNtfcM~_&6 zwC@3k1&1Ay_c9#8I;ir9p`*T{-5)qX!cBPmNLX7_*;hW|BmFeFgObm`w8h4_RL?JY zTu(dbrd>ufygPzP+{bp*$kkHm+z!}jjpbaOItm}im`TAYpfL_)<9BOgFGd4m(V@-V zUze-k#%o@-D*L`=FW>}v$WwFjz4N#Q@K~(Ynyh6mwcY~cJznu>Fy^>` zPS>2`6*zjjP7U@Hv>WtA%RQ{i=LVSJm2t?G&q^uGIU5K(xTafL^#LmZIVGD4EwAOP zpen;|ZHdY_8TgTA%0@*N<7Me-SI@ZQHa&Txr_v{P4cm?n>qKPSJOtfeO?*3Dh=W%# zN$)crQ&@Pf#0AzXmZoR$Ol89I*5^hS65YpWJ(Es%AB)w&c=)n%?PR1wZtdE=fl=@PaHDsb3ZU|X0URu%w62$oY+G-8?jq{HRzns zp+%^iEI@O8r^!i?PuG}xsv@tn)yo>W~arL|L}#jFYJxHBK??EN1ARY0o0?x?Z{ zrmznh=4Yk0V!KsT&>qh}4!w#qp?xBlD}P1xezWtId#$fi)#6QButP3V`l{!GRHz=g zr{}?8FlRi+2d~2QrRDyU@?hNe9)|JWV*Ib6a8mLb0Xda({Qm%?#imK99csO6lq@2+ zM4xMWPnyJ?utCD^*Us6mTCJ)bb5gx^!QA>Lh2I0`ZMF{UVAf7wJrFe!JHF55$W%mV z`o91w0)rzGYj@~+gY!R2`FedPtJ=^jh8}NxS3}3?g6Yha7Q zzJtn46}6&3xb+hSI(#J*0wW3_5=w*y13yN*}KPNIaAw4s$ ztY1e%1}`qXizyfwz3Q#({L+a$7}s06*I(BbCaq-W2=^rlBqn2(?)JV;L~|{6y>CX! zKC8xR-@B!%7avnL@<$)dJu_N`I`{IEdWuAxrE5@7SK=}oo4!|$^{eHer1|N zR?F5RlDq5vr|fK@3m0&P>O&9AT3lA8RX3{9zf!P~r-V3EQx*cw-<*=$#}t9fODECKkaoI4%WIgR zZ+$J^tK*(MmM5$;e#vNhUsrK#^WI=GDmAsnwP~wcgwg2s{(M|VChP0oY-srX*J)^M z%-zXN+T)4lY%8nMsurrttI`4>fQW&ZCiaJ-@&hdusZAFKX4(0c?{w?asE}7!yQ6E( zV|9ZYHXm-+pkRFm(k`!s>^kkTlFq6WD!{RNy1q6_OPI^yxg~SXY!=o1nq{SrOH!ip zeEU<#t!pXOs%g}w5^w_%E(H_I&}sO=h;o;}KC8=S`aIlY)8~4HP@<)aR#n$pY>yMB z-ixf?(bd!)OibjTqteXtxplKC2)52h5g44yt`5Pn&!5$?t7Bfhv-8Z*r5PAj5y+%( z?6m1trb{>ufHxg>SUo*ICNZs-)hn_zXl5DEJx-l>Q%d+{T}dlDATmt6Y_X|y?KjqJ zXHehNsgXj4W;SZ#XFH$LvnX}2*lgMJ+xA%f)uzrE=vQ8L3zsRR0RpW$)IH~fa$|{e zGaY2F>v^afbyk{<4`Jl;3dI7qJ)>=P53AYBBp4>gbc3w4-?iy&V3z*?qt5M-_Uf{bvnDsm6CZ&|-q-t*DteD!*)^_y8{i^t>)^j_HcVboMvaot;NYj{9X{zuS?STwkWu`%e$K04R1L$E!7Iy z?TyS_LEX^FqQkQ*YN{&r9sd9;9oEvz54Ou9$bGM0>ael1?|Hg*s?MjOW;oYT=Ep3! z$ZSQst|l`^khbF8V-PfG9%U$Umb0NN?FyB4vFs;`c;;pgw6}biOZV0S?ghHG#ARxk})kBR9`lb*+k-vtaHm z)-eZ1JoBqUN)q}|6QP_t_^z+%{K1)+cQtoeN$NJ%tB@h-y#6xoP#Y)B3j6@uj?(e- z)1{hjBjRo8()GC+Ow!1yUxsXG`nt@wmK5PIBn;uQw%p&c&pxiQPUk-xuV*(kJQEex z95bbx8~Imr+=n!*)b0T>v`;tC&Dio)wR16o)j@GU$gUv0=b5LMBzm=|wB?3YM@#5l zPbt<)u3${Q{{XR8g}i0dU2%?y;j!B`XuDq(Jz%V@%*q@2&7h8ktF=7riD=LpRV;DM zwngeOC|#KM-VB4#VE2)Z)z9rjh5Wo&j#Ue9Gj$V`>&SXt>%job?y(!9%e^J^q~QJdaU zm8!@uEC&5=3bPq-tr05Wf35Mc2Ig#FCQ41b*6RIx!+A~ua3&`8-F>Z{8kFfHJUR$0 z^)M#2zN^pF3o_6v89j1~YNkMmcXHrar$fC*m2}x|tU6VHI%99}kc5>sHr$jvup0n4j?`cxk3b>XdIUa+;RX(e0&aN5jK5z!HrrDA1 z2qqwSiTNTcyJB%9~Xf zweZAE%(*7%QC|K9qSoEg@p$DLe$P81jf);Wwy5T_JxW)*`H)D)VNCS*LFr}4&!VI2 zyhT${xh#fU_WpAWN?!!qdYc-a=i6a??>lModFrW73MP2@qaevEn%MavV!Hq*m%<|^ z&0OWZcF%IycsgCj>eZ`@i(L_TYMydL{ddljF>BAsNp$oUg$`lHkJi3Jm@z#p>35~Z zL?T%(n^){VOWo7+c?^$1>4vQ;DU#xtCI<-=^Y$s=np+E6?0^WHyGuR++7@nNVCN~F zH*TTyDgj+xFs2ZG&*w^L`oElXn;m9pj*fhBPKVb1Qo6OSlxS6VIz-GnDtC7&Iia{Xn zWApX&>GBo40}nP{%VMnT}qoUz7;c`|rfO)yiXbysVh#k-Z>HwY})|y$_LD5}rUc?afzo@}wCdmFO}w zWqhy)sGg}iG@2e)GNR&~6D+7wy9YI99`e@nOMiM_name-k@f15*o)Uv!(>S|>-U?Q#gtWz?RuVbZzLCP}EH0w}!HfBsxys6>A(g?3)Td78j)W*xBUY!J}xCRK?%CgN{h<0dR zOMFLk7k5c)WyP~ygwc~GeRoIU<|vN0!D`-k*|5-|3}d^A*Znu7+KP5kjWtA2)`Utd zK!j4i%_(EjipaSQi@Y})0g<19=Ca131k6&tW9GZ8X-nB$EG^$Wn4a$DLzfod3@gVG z`>!cLr94*O1$QV6tyqlmV_7`=-jmh(GNwxFsxime4i;txf|T|~Z(9>v6HC&?;I>Xe zHGH4T>75MpAq6W~NWQ^ElX=~Vw`RRhos@LPa}P?0*(L(&5Hz&v^2&?hje8YMW^a4V z)Io-JF8V*P=+UuG(p-p)ox}ttJih8djGnJ)S=wyI^S=7F(YIEW925CI5~69s1EK|t zSy_lXmuXwFpmg`oN@hY~oNE#%HnRA7XNp>gnZGH0RhwGoTniLd>lS@4&^_BTQk{(Z z#;lBgN)Z-$YejjutANF*vi#4=zLo5^Y~y0!_NFh*sHA0Fj_Bxqu0gm(maNfzp&QiC z!?GlR#l5kVi4r+i4;0>`Hfx-g*JmPC&aiBPD=K*Cdp%7rK`O$rQ`Iwqrh)MrE3ql3 zeQg!=PmuYynED^pw|wu7&#kYApXVv4U>Pk{bw$hBtv(0YiWYSuuP!{x24oowUD~Sd zn;e%iyH#qD*{3Ia+xf}`NJ3cthcUKV*wE9_(AsB@r+eu4xDlZRB12*Zrh;0vz@N`P zGgsbyj^~lV#HDVAHG1n@4Tw|#tk}C`OKVFyb-6^P;TJ&*1l1kI2GX6!`7V~tvCoz= z?bT7NN;8v&StpyUT;JXI*~8(o8};8z;2Sb5o~y!)*3>kJ(GQ+{q$lipSlO9%eV2#M zuBDS=YN$da=Shfvp!37nbGLCrS~4f0iga?W0wfK`K85}=IkS3lW!5*>R-ITu5i%Ir zbB@)AYTLdvDWd-X)AYxz-cgLvYr79lrTX_pJ@Oxy%KpRXJl-ZsSh{tPEl(9i0L(ad zS4KV0jflwYJy;r3l`{mVfOd+jbTzU%7BVXzHq-G0-?bIpidFc@fKMkm*RD`D+;wp4 zpLNlRbL7P7#8>kkp9fDTM5x#JzmvD0?7baqdMmn{c{EZg=&q<3lkHns3%|+?>9^@^ zCkwMBy$W(x&1lS!Yht3JQN6lw0UgT_2 z$r~5Oj|I`-(&)=EI~qQ7wgRn`^yAj?%wC1*|x}6P!i9=*vL*d zua)KegEiFmeJx1i%3A6|R3J*0A#(2YNXS9oMO5)_Tb!bxcR6~rvBl?I{Tj5OJtaQO zM?cXg%R@Md(rU*|itdhQ6v@4lX$1Q_G}C)WSARmlny6B)faT;T(wk`fdbswU+^p$S z5m0i*4MTRKMcuNz>Zf|Ge(u{csWb}PRJoxKI`#&AJ_!!U)~gh3THNvQL}jB=gb_6@ zfgrG25c>OoCG3m8m8A$Kp-q0^$e zwdLzU%x@`mY*Z^!0~Gnjm%}wPh*$$!Il3GEEoNr~u;`Y96DKmxHY22t$6w#=HPs6* z*?JKf^z{7Cq^yknhGO`huNqfDYDfqOh{QZnS~RPa^~!8T+Nop?j}L2OjggWXY?jxt z#q0dBEvA}0MR(QsWS62WC=rQ{lUx%f<+_TAC6%SJ&8wF!TO9*MISRFpD*a{T-1He< zR=kt$2!eP3U`8g;rut~~OgTX|(wC%f^6T2MR?KrcizU_U3pMgaA?m9W_PBm*>+@}l07ndP2+f5ol@SbE zRRv}%wQI7~ptP#mjwztRcsN_={Kp4gsGgT;`rn)@q^5Xc&0!-RKF?c>M zePOm0Wa7S@lTUyJyCMi>kw6aKT{dDa9mdX@NZ9bwEJt zj2pK8nepn-+2*KBL|HN2CMPGtea$N_F70LmYsD(7F;8bwO!kIkM>+RXW)pESZ50QN zpsTr}ZqUhEB3)W6Bv}Gos{&4*?qETbq!uZ108Y-|(|$W#EUrwKGO%!rNtYB9ONL=L zb-P7LDvFLET~IpIRIZCCTyt5Xt35u)&R5#Y&rzwvOVD}#Vc4JxiEVzdTbUivqS2X_ zg9tc?g#xsaqGkJkPWbIuZFkskOrb|62H9A|vTat3w&-fnx1hzYY8sT4)$F2F$8g7U zBJ5t_&_=J1>sSh#xSTDuN@&cwwArWJa%2D600;pB5C8xG=mmgLB}*zKTT+0q zDgYJ$1&bwuqC(P%KrN5}1%-tfSSm7&QpEr*hyVqVMH!X~FpXNNKnrAZ=nDXn(NQL$ zDKjHlps=B4qd4ePSV^SL$)ZU_u`?reR#J&pZ!Bk_QlS*()ict`D>G8$#$$HXQi~RE z7aY5Sp&Cg=vP#UWgPhBD-D*;pk-U z7RG%2wYNQm)Xr%cn8TK2*Q>U3jPF{v8@&9!*M4w|ETk7L1>SR;5i^c+l&kFNWb<8g zZ=Y6qcD?!Ma|#4ma@kct-+R@P>zPc|)Ms!@5Lm&U zJW^}X>D3Wq9$tOAYf8K2WvVJ>*+jfIW}`ai&pkE6m#4Pv2wcv5H+8#i@`#exq=+e-Dd3dj*b6qkfg2GUSOc}$UtDuccbfA_P^5ed=-tt`NmgH8lgw*H7 zoXq<=+JefI2{AOn>q;e-#FeQT(&riFd2g4mwIx!(1WArZZCfZTGHE2$%&c?Idt&Zl zZ$d0kiObC|r*~0c(I#`ysIxd-+naN9tpY4i$;Z#tt?HVR+C!bX5SiUdsWbo)NM{>! zYON-!Sj63m08j%fVJ#3r3uMnlB+S*8fhx)YCUz`Yoh3>jWx5j_^{Z4Rlu-dKfJjuIk14)wH`erpeuWH>P*i^o7o<#-!Bey%Biz zvz~~zIyrRICp(tB*v_Txo%OpRypqz+deugGcc~_0TFtW?qGn*@iC4VWTc&Kb64bMw zOJK)KGbbr^(4Sdhs>#REJswk4WW=hSeF~gIuO=yf%n<-Z*%N-M1 z>!`V^m799!60>YG&xfNpy(%F&blR3!&mNuT9W8{jP)mB}olNRgh-1&#&6<{HS}a_S zw3;PE)Dd>aep$xC!e@-O3bq9#Z>=S%7D^c|rsh&rSd))ET%%R2vo4}$@3!hyl33Ik zves7SX+mes!&Xg8(xuH#a%-opvQ29U%cLaHL7a31a`N-l!+AAPdiC)2?|0Erj<+)8 z)@&+ewx&6DRf(QnefIIol32If)5GZR*A`SwYYUZ23YfcZIpxyOl3}kmorP4x>UHvV z>t=+x*0E+e_OVi;TfF5h38|Fl=i!E%yYt_xactVAcb!<6@%uLvLO0W#Nbnec$EP~6Du6*e{q2_Z#!zC_5h7`A5=2@}C`&0K zTBlrPB?2okOH?GDem<_1omvq8+5iXv0}ucJ0LdrYOEdUaLBw3({3lfVI z6%x<^C=$e3pokQaR^??2B)R~w03=zhWHJ`qgrK@Zh8G#EeQ#tQ5QYACX2hR=a)DF%X()x8l3vkQnD2kMVZvpUG!^Q_~rtV z>$fcPndzyH+CzDgB?zz?(%E|LQduD;>G%kvF@U(_FETmf0&^ zB+g0Cty>{AB9JqyshV9(CF#ysvR0sV=^S&s^66BF)Jp=%R+imy$XR-0B7u8ed6yXI zTL`+59Qq8?dtEi>z!Kc(5L%X!6)ZH8$uu)o>v`#&@W4T3wFwlu+0FnonX8&2i@VJ% zWo}hhP)Cpy)b8JgBCi?TUGE@y_!mdDc=3IhX3QB51!&zyS zl8S+>=-kyOJeTb>%4;(xpX}Wt2^7HrUmJ>i(Wn0qcd&@lJ4%0ZwN>!2U=G&eZDAZMp7q2)SGpOrsbvf@C z&Mmg%P(wQHo@rA$idul_m>Ov5q_d5fnYs%GYHP1Km1a|Ms+mezs9UAh(&vdLHA1sl zS$gN47@L~0zL%CnXoYEarflUBV|5hGxhA^f7Az&O*0q~vCbf$emg$YoX{pajH6ewU zYzt&8G~Tg|>z&+SwjCL+Xt=jfSzOF(c+p)o#uCS;mSXQM;v%N5*|RXXy4Ja&cjwcV z`Vy~Aap$0^sBI*O#p!ODvO$}>5fypfJvVb{xt?7tN|vVd&Sd22c3YH%nbO@{O-yEL zYS>nz%il>TnswF2F$+3LcZ7*R_`&ws{~+Z&#hB zB(-ZnW_%v5pwwh8x^s<72D2i>wQ(#Y(A3y#GmlG+TCyQ+(I|-vEG=g;ku8%=hK$LZ zrPP^}w_1}+B!f$tZDSdwnb9j@qDr!A;h9T%^~};-;R`L@Oz>p7#&s&SVZ0K{n|ktQ z7VoyBQ#wctXVJ@^S-DqUInv8*g^Q*pH?K#Xm>S<)^YjI)8RL&n4nBWHMYkE#OD%xA zbDX;CzXXIXj@^{8cYGM_#~INrTxVBW@8`_|#m64@*^qPHUH0u#;%B?(Ss*U*=UTe= zc)5x!YoC|ZRTid2)4y!YW@C4SkW%k6o|;;~qf$xZ_F6*TyimHjvSwMVASt}e)f?t2 ztg}8JYOF2wd9syhWQj{|NVh0bvQ_nYlT$xG+ie;`OJygcghbO_dU=v9nWi+x^D z&(HSisnaqbvaCu<)oNxM&T3Vc6sriH4{oY~0-z}=b?NWrgQ49Suf7ccE4LY?!J1?{byr6N1f#{hXye?m~ujazwmRy=S!cMzyNTl1)Na1tx0l$ zm{Ai7X=QGul_?;!4nian=SMn+E@w@WXXbOIRs<0@!IFGn`Q9?&#yBzYvTSVc(`TqN z*M5@*cG>H;`7i!g8KKDXU!68|zxeAbXJ0z&tZa)sWei-C4kjD{(Zm?v55~@;3xg9O z#Z_5HKu`BnB^BDvQxb}KbY5A9eSC{Y)6y*IgVLKhC}kIbQ}^&il_pJHws#27Y<#*RMkxAp1ylM_;hle2g4? z7}?p+C*oq@#mF#XV~)DA5pz~@qFcvs5LB+xGRODDO7Gcth00kN>vao_75+wz)yG67*kX{5t zCI{zVl&Lsnk#~DtrpC#^hwS+#E2Ts?x!-x~ zyo(bpXRgk6zgy?3_^NQ?=dQ+jg9pk5GeI9PlMuxWs6rF);^D!AKR=OTs1^f-6M!>B zyA+HJfEA#&2E}fLSq0F-F(@IHzEz5BvL(ZeolS&e=V_DYLl4;pSaY`cGBIQ2kE*V# ziHAGwFnsNEvx6tjzIBHp#LFkIqwjrXYykX>=Shbn!SbdiSo_jD6^s7>11RctdNGQ) z1#qebpv%FSRW79#|IC` z_?c5Ie4ppw0mG3Y&bmxof1P2$ljm9Ap@c<>XU|>w7{6Qr6?rNJIoQX}#&=%_%6PeB z;K7pHA!P5!9R%Y%tCe!t@iShwR=8Blfx#940B93tu?W^6$w6!-)wsP{TO;wTG$#09 z%hXGKN}L0!M@+p1>es=C=W^lu*Ig!87QRWHsK?LGh|+cS+F<$X*Q^;fclWOA;^f~t zeCj`^BUqlaDULoI=x3O~`A-#Y$BTm#8yUTEgu4E{@Vh_IHmQK49IO;|d0BdyP<6+K z>Nw+xVMk3`*;}#LP%W&(_JB&g5z?$8@HoRdm~?(AIX}fy^USz@BMr{jrgc*-V`0II zHcwm*F6ZM2@MHYz;)w$;ci*p3e4jg9Ir)G`p^(K^0Dv6vgbYml>tOj@N0&3w{9HKV zJl4%TSaQa7(&Ayt!56FJuB;-jTzGHR7~xn@F0pJa#I(I^1mK9)Wb*6KNRwg+BhTjP zEHfiV5b97s!-Np{L0BaJ0O~h;Y>FzP=);Sj=F4_dIOaZjV3;w!pONIk+&z5jsJ=^$ z_n-)D8Limrwlrn}LGhEyVa~wH__=sB03*SN3R$PA78^Qo)<=pMR{(c$RS0zp*BxF! zD~J{$*0F7+#JY+$OK}+yXI`WjGP>+nrWxi?es}9EXO+SkTs9!H9V+wg_gBtDY73tZ zE-j@K70x}6@Z?ySaEu=YPm|V_K6mQAdVC^0vrff1D)h^MM;MJW$sS+gVIF$QxS4wz z;Ka_P12!gEmb?A!Y zXrvtQ%V}OdiZB^uXGKalaGj}>JOF^&(1 z8x9Op1M9ak5r-EBQNO+9<*`0&165pH?re|@OzE%><+{#6sVXq8R|5cyAG;s`~wXJ=JgM_FMsDBstN-GEwAV!HtcI)5b+x zJFTN+5!XwD4q68B$CFhKx&{N{VTxs3eoMZxax9Yp$>Ss7#K&n$V|*VDFh3*DNbK17 zFkn6W7zWEFby1#V9`OfHooMWGj!n?XKu8b;7S<@;C5@A=Fr1PYVW$*P+K!4&mlE7E zN3@3AGb#&7=B|hOKOxh;mAKUV8&g77Rgn%6(H|F&7);5lI+Z zY%7dG=0PXG0(G1=k2=!~0N}`QXIFs22xSY!$0m}ZYu2(_j%D2(Aj+LaL0cp?KbJlB|04fo#XFj_h`$o+7&l?L}%JlSe!@>$Gv2xw0}T z`C(>4gm~$aO*);LpPnQ^mzKPH+4-j);_XmXdmx$ed|#VOqd3_(xW=iM56F2xB)mYz z34n}fin4Su!Oq@()rLMcACTd}@i6>cjyQPW6vd~@**)Y~!3~?<8U0sT=cfRFI*lM$WmrcBY!aYk17bHI?v+I(C_NqcFS z5UV0M>#xjU$#CJp^&2}lFl26!#}ciW!PtX?D}#tQZ}ZMoukqBObA@ktJ%A1(s>HB| zj^d=Xqw)%-nKlBfTGXzWVx*T6bdm!TM{X<7{t`iU9mEnxGC;cs^_t6(6qOwabwks} zFblZ2%#w!Tt<5FVSrc;|v@NKyRBQ$&NEZ%T36$h~_38}l=V1C=7(gJ$ipa-087T7` zY;sw)v5b5GX z){2B?IMhd>O@wu$p&T(;N-^Ay+$IO9EprCe3Q?G@LAR~>+KQ}ONa|RbISAs~$Tx?uiTp8bZiz0ci zM&`aqF2cC~01ENSoWG6dX@?sZJBY)qLK<95*b9L&umVi6#DAo-BIDp13l=5GbF>xL zj@Q}2bW)dGfmI6W(&TiKgmA@WC|9tP!Yi1X4dYwiXzM<@LqU2Z5ebB*(#=9`ILMtPC+9FG40DB5x^Kgp$rSa)zG z2_upl@$^>FrMsPc_0@yZXtMmu;3CaFP?xH0wd!dt3=-yIw3IQ zCrD62f9Sik)2TMmaN)(yGaoI37XUbMet?T8aJjl$K#I?YD{yV*m%`+@>&KUMNQVIs zRag*7SSoe%&LXGpt|aDIN3WX-Oh`o8NBN{NFZsEFgtNnSXj znP*r=ut*j*i&m0Xf;eNZ92GwqqRw%$+dZid#+8^f#Fdkb*xAEgrAU9xxJct@rLNbc z11|Ebfrpt?WG$=963;Zm;TghXryp^#3bIA~--c>;TirMFo-?Dn%Q*J~{#Cb(<6zIz z&XB%92pd46*5$H3A$UO6lRi!#)-j*vO12V zq^inQ61{jtk~9bV&@r)UB>aEN{@#ILLUdq7%@jA7Q(0j zbocfwsf&`dV-jf5qWsxXa3x7qBG#nQ#y>55QmQJQ-#V9RqvW(XpB~+9W#u)m%JMrC z+A5fHQkq)RR%)qM)jN=Wb1RX4)0pInM4lj)5(HeKKGIT1Z-{@J9bhmz^rJtV>2%-J zf2L?7*Ku#?Kh=2u0P!s3@Q^|dn+6~U1`K2oug1#wnL9|+IyM~HRn!fy^nr&WvVOoO zjcfiA#pkX_mUF<)sKsqSeJNQS5p2%^lng6bVo9Tw4r;9t1aZewD+{&Q?fET>#?iG> z*Yn%6&&}HFO^izRK+3S{c>cFX`x*^HZ3XBhg6gxad$3p@C5-1*-Y}8}yuTb`pXSF| zjwAyUJ^uhQ+GszG^ZrZ0Zs@;|@_D#V^ZsxA;e(ZK-v&XQrXt4}N5S#(2G7`rXhy*p z8X{6U>N;R{Fl4v{d1DR?YWtPC2M`m2Ft=DUljP6={)9y~v8?kJ7{gmXJXsxRthU(4;m}Fw! zK^Y1zXJ-z2?}kfCT}HQY6EnzgGqSwLve3)uVI?j{VriZtnGSbK#p>P;3^AA^S>x^I zTshr|cpl4ElD_;4|W%`FPphNhhq21_Guxn#8L3Ghac(5?Q#X1{{VYr^Q;X zybiiy^1AW;Ueo!x4e$pvwcbDhBCrZ1{z8BUl~o*%duAGuG+&h{ps!9ig0x!-n@(@N z*esJtC;CapCD`__6Ro9?+o@A*mZ$8@wj!E0N#(moY9RBnj#ZX9lq6zRiwMgggOe!; zylgI4+HP$eAyt9HhY3=4IB|YI*Z?Tem>#t9iO~#mdmjdVV;BI_>Llj7PKYDVkRlvM zV{4YMAOJG0nPOBy)unU#bs8jKb<-?WrH-OZlEX$gbNqw8PFa8_}Rs_8%g?Q@VV!x6OP;DT#Kv#VlNf4a*bu- z>Mei~I*JOzPp7fLS})FwHY?GJ(n}pUVohR69l2+o<=yPW&m%WaBS|E^F$cDHvHNz` zJ(u;^F_1<=w9{IWrM9_~LuxfthT5V@85c0)2M~^4xW8q&OJpM|e z8p=SxQbM-S=S`J!qk|h47XWOdSCHuxoakpj0mXB5$%K6>bQtRTjHbXXz!&q61}Njw z+cU>bI_Y66$8NcbtWiZ$Ibz+VsJ1g(Yb4}=$u2y-yV`U!;~x7YAARED8u)@3tHT=V zR@@h(o;gLx?bQoqO*r&667~?{OgSEL?3~tM(u`A9IkH0=D3>9Payd+lvRg(EUk(DU zl2)~69tKww)Q){X#k(84-Z1In#)+AuIVlCxZ{ z%HvoHca87`#G6;Mxwts^=^E44%>-$zhTbyx=~Rl<%Jc+6@}y=3jVe~HR-uk{sSGi! z6s!LLl6`tb1ZX_khR&OkY4&j0$xMT{oRHGLrf%>Bi}E#y>!rb!(gUhqF&%wQ&16f^ z%N2yN8Agv`7v(TiwjFFOfO0(2nN1h4jU9{-#Z!mc=M`Ei^&YxZjvqZLfrICG3}?8F zc_fX7sbBv9ARHwzbG+Aa^@~ooqJlmtsoZe~LY_r%BHVOGQH!b7cR>S1l%iywI&`Z; z9XgbS!yn@W06QdYCjS6^xsvQpBNUEokn~TY{fw*{R+?E%pQn9?g{r*?=}%VVo5&`# zvq5?(qmgBb>O6MR5n+0mSrP;qfnw3H(!2HzS@^FX=T5l=I||K@o)JcL5SA#)!v;nu z%_V0PR#MsPIv8-`V&|0{ca({sWm*)tx!P|!@d^;=Bl4*v5vBD-SbQuIuDK(M!O63+23kcy6bu2L@pcXod3`rT+ zMys@kX~_=xZ%c8mM{d5~j(*Z-Nn;6Sa@h=$G#Lv!Hg{fbNlBmd z4viUr_Zy_5#5XvXAhi^bJWE-tY+{-lDi(U=+F6G~HJLsf0zg7w%_Q7|5tgl$$nfNO z*$lbo6C?Rp0tHFhJ#hTYM~1YgBKSUAjlI8QioRNb*>W#{adwPCwdu*OuK}TQy;*PTAlY~b%CW@~ zN3VjtTIm#Y6PDVuG_x};m$&-Xb(dRWpDx}@XcOG7&hOmOwlQ$I+d9UukV7<|NazrI z{T4t$g{n6e-5D=at*lD*>F?mTO4K*nWt%Sp^01UR$5zJ}iW;-FZPW!{imIJ5j5r9z zF_bYNAk)K=4>{+j71hh+8DHa$IMG6gWLLAaOQK++#d;|Lj8`$hutQu`SR;lStIDOg zq&SiLRg)3kPxNYe4#d7p(@N*cN4C?DRq>nHJ*1~QVE+I^d0ZH(QCMIoVQn`csHh4LtqTOAb~pn06$sMWN}2bV@krg z6mmn;FP@GzBhPQ4m4`%W5+Mq)wJ3jZNgh_oDZ-*J$*ac?_^PFPwWy_9(DGw0D4ChN zj(OTUHukG8?+aOxn4NtIWtK@Ks~@*xo-_0r-(ktXodD1(t&YeT2q48Ki(?K)w40Y+ z+uD@PquFlbI8xfW$sIMfF~$cOPsdkSW&Z$UxWSs;AjMc#SXDtF5tXgSHAbm4uuB~w zgn9Bo9UK_AG61XB2rx3sJ4+(4%JNZ?6|F1?@YlqKD(wwwl-9K|6<9eE%TjSFzB6~( zD*eJGveOgP#ig(bjk5m$56GdOgxZL-o%;`f6WG9e>>k_!8Ll8|1OEV`wQBa-cX_?T za?VPN9i*B$BdQ9VAmqz1A(Vv29eIi_H!@^-Tu&>=BxUHV7vflt?;VRVQ$qnBeCv3G zgQI`|1Ohm^<4_q<=h!Tv(V~hNX{B9Gze94Qb#=NA^O|#0i(MUm&ZIoUM=7^Fva=iz z;UgC!GD2_$jai|QUYn<8twqzy&Adthk7GLo=YOKf`Y2Wf2?Hvs0c6^TXC=n5Blj87 zTF4`{6x!y79ek0T>U5AyF_pj)FG#V?$Mr)Hz?P+AW<~@Qz{`rd<6?U9Ow7I+Qu+AU z00V$&q=NXQ9Rb^IE$>3+N)8FZ0*L|zUGD?=^2|Q9mA|4yZ_Ij~eIILBQ z9gRnXiBZ(#@yZohTy-F2KQvni)-`J96&&ZK_z1}4)!TAoDgr=5kXUpv78OWUrpkCi z5tZRuBUXp9Vt6tps>Ss6YQf6(O5$Jjrs8`Rq$5kBuMMp>cDU zzN%Qr&jnaEGiR?Vpm+h70cY>L4$bXbuvL|nzd?Y)&_5K~(%R2nwHp-B?&6jy)^TDp zlPt%{&VZB=<~lJ)Tvdyyp?If^f8)6F42B(h*^O&|&!MloPIT#j&W1+6?XPNCP)sSL zQMHAhy_qEJU=S@>=xQd_(X(5fY<5j)Y|SUJVq;R3yW&dLs%`f0k%iYdwP%`JXL>eL z#%oJfSX`Fqk1@w$EA_2FrUY!cJOjVew0~ctH>71EPQe(MnGI+jqHv@5(4lWy`hCPw z$8NldDo-5nPalR>SR<8u1*w%DAzm2cu??qo`Y>d8GCZp5YMr@fp|9T6m3o+TFcUwu zoJ_Z*mIv-atrMICWleffs{`#@ncU^Kr=888)$I068oM=Rou!TgOzUKbL8{~N@ZL|z zEZ?5XTm6z}voywQ7<0CNQ8;as_Ahp_3<|j9=jadV-gXWv46R?nG;daIdeh<>tf>a) zZD;xxi;-`1a=~&LBa%0ZVQzT;06vU#;+8TB(z6pmn!3vSOL9u`V&`5)437bYgsF0! zxNKgU+;hh=_KZ(s7=qINqEcEwMn+OGsxJ=0&FO5MJ_BJdAE>C{xw2;UU4XC**tMvWH`1ZA*843E{I==18;Ta6prtak6o%rGb%zy>9K94oGovaH=5#I!1x} zS;Olq->EW71`&u%1_M(dX)oX@B;2 zic_@K%l`mg_aoU^xeKMCQb?>?de$0KVtX<=gCwm!95_J{;sjh7)&b;V%Ms&uw^AIn zWS`8VB7=y|I|s3!=nwvbU`)1b2e2h}&(O)+H+|T$({^P2J;RYayAv~5?r9mx^%{Ny z56K}3ox0$Dgn?vFT>^ecCknxX4DMKoOhecptH&j4OFfr)`$-GKEH)=yYTUMD*hf~g z#VD^i&bn-7!YFID8fT2*&mfE^*JBm&Sq*WL39V1Oox@ z)*L{ESm$a{mQ!c_1c`hQ3AsJr`puuR&tGuU%7QHF%x-(gQ$tU8wX)L2$_5M=&Lo0S z9C5q?I_Fac)>m0X@%T8+T2=UP=bwGMd+)zx`|cC(v7UN4(qSb2h1t6g?3`CFAFkAy z3HBsOJMZ}YzDdTtl8kfRd79KVwzdiEK6l^g`X)z#N{sLH?Q^hIgsUxU0oKRtmKtus zNtDNBUFLfUXSoU)h{%qXhb*yTVonlEU@GLMK#^5c{{TZr3~_BH$?)Zbl^P~p1+Izh z=lzTRh5Pnq9}mjtBN0UjQ;ekh_D&Zr4tpoqf6_TSBhf70)x@3toI8witwJHsV7RR@ zk~wY4bM*J`^cbz}oF4o2)(i)}#DT$rRG+*Dx0}~$&=HS@FV7APB;-Sl&CB4F5?)m~ z`W)+}#b_;y3e6-3U6!8BM~LI$9cW}=;KM2a>(@ju3D-g|`P3*`vo^kUSeai4IQiR_ ze@eiU`gZKE7;%KQ6YXET1{vVIi4iS zoF`3JZy7oI95`^|V*LFby}LU}_rCpljwjCj5OO>x8L-2SfD{ph^WoMJD&WD3oI-w0 zWe{TLg0V#wlD3-4ym6r=)rgpM1aPb~M9RTM#&Su;C;;6+BEQPv$RHlUI5XXO#nd&o zvGSQMTD=64alJNz?viR(p*ZW(=S~|AAnjgRztP|7^OM8tU!NJBs@=Ic`Rmut(*{0z z_v;Qmcb>b?NRl>t^v&x#&tALr=f3mLoEYa95DekFZdqwcsKqfyQVBO>WBwUY9N`U+ zJg~weN)hrYo;e|CZdSQ!!u|~xVE3J|&r1EMWdyC}{| zB8#kOnECYY?aQ=J?O5e)%(DAA)2YV?JSq>JdKo@<`W%9HeCby`b<#@Gf8dPr%h!zP zL}5sX5&nJvWmOSH3ZmkuTKR2yrzDfcuQFbia&zXzWod+vil_(qtN^f5lBU+eqlcDd_0|jrzVr0`KSXa`;4sVWB?OZrJaR4S zuN^ze^RyBqfak1=6Ca$fgtK?sEGA4CaF#eTTVG`f$b#bJs&I~%8Zt>A`0D@}*M(h< zr01U7OWF%;iq!F$mi49nnoq( z?VrDg4jk{Xh;!H@0PQo|P92;TXf3|oZ^@FtK(FFhek!&WLoPOV*)ZY2%v|@Ls9%;- zop%tjxi`a)kB1OrV=gWzAYs5PPv$s!W$9C?(7+N<(Dl?w6oTSSb@~`GL9U9z0IAnX zq;=FPzzDNj9Su9x*l$y5sINZLknippWRi39^!f|A&bk<%6BUq#>=H;gG8|l9g}0K6R0xR~XUwf;X?!k*Wl< zR-}KIkMk{b;j%*1))~|CmKIPvC0Qb#y2Tu64B1Xu*acpWMHHYcNnX2A39g|>jp-%7 zvql!9=C^k8+Lm@{GqQdUfLp7cv$Vm3;%9#Q?9JLAU70~HbHCHF#=w}(+Q`$y?_n0? zJpd8M=5wz;dg=@+10o559v2l%XX2F3;jUC=DziuAfr_@H(P_jwY8N!gMQU%j6@Dei zxb^xe7S@3g$1bWpZHOd+qKZ1v+o&=`FqAmrFrZ~XvCgp>02*SOiNnvlA=3 z6WMZm`USCp3gE#XMj!{%@MAw|jyum-v7B+zqE#^kVOdxVwVeg6ge(mgmR^wMd#~`vGpv$t_7Cf8C}1-e;4y zW^C`jU1H=S*w1GbV2^zyRg$dQ)~om|Hz7*x9B{l~Z|gvW&4UMl0R zg1+Q@j|LodlRP+rG5{FW`T+&Xry&g+BiGk)i6a;@g6elXd-;`48l38*#$t{w9D6$T z^%Ur8wa=5JQtS;w{T+7C!!wb~S6#v^a=p{t-Rvydb|G?Al@`3R08jb^-Mq^`rr5p5 zo<}x2C0n;)kN39Dv%ttjvDS4QUyjbEzT{P**Id*80G2AY;f5rN%^0<}sd9+oLO&aj z)EgmHXG4HE&Z>iyx7+)eaWH&1;DQh;<;!2EKv&Doas_7bBzgv&V*qhi*+u-SJ|_n{ zqschl(~425`t7|dg=d*y|5*2Je6W|UG42Lb@07O0acEx*D_7yfYsBQS{YicOtNahenwN6g4 z7XV9;wZj0BC01UQIA3->!f1S zkR?W2i!kV_#6*fm!-6iQ3laDM##YYPIsw!YRI;e&_ z7%N_>%i-vv=Svm1D#vL&$ejr7v`VX{wYI2=Mh}t$kBy3sVZop2>LaMmR}_l|OlXOR z6xZ8bM7-YT8g5wM&#LK@l|{LOo~%*pQux$Z{dMsM5>uCHYCBw_UDT8%+Q`rPTQ(c| zgwejbwdEM!3r&ClSsNx_o>@9&c=hye*HvV7nR;wY>#nkK*HyB}0tmkrT-cPzLd>GI zV)7uSR_aBTSC=y`BJ~4K6+~tk7xP7lqCILhyoTs4i;aOMS+Vfqhsbi0ZFuKPoL*jg zB!Z1gb@g$&@rJU!a@u-4%4A6O!sJk8maN~hPgZ^0qE1BHSYsEQl9Dv? zZn7MwCdU8>7mR5(dRI&}qFKq#{5TlE$E;h>!(PlLIY3f6i~(FYvKQn6%EBwdUx?2G zjgXHb3biC@qOpFOtjV&9Gce?jB9w4)shw8_Os6BRnF1gqQ>NzCI&t9O%NaOu_=ZM@ zDZTDu$rACg&Mio~6uGO`!(uG}v?^yZAIx>!i$y}Vp?B5mw;{%cmcB&l@CgeD~0$+^bSqFot{Rs8L@}y_;Tf)MqSFWs?4{biCg4R zJaK|15rtafbx~EI<(HewizX)q9A<2MpEU;4M=QxNv0^Oo z)CSp&x|{?HuS+nbaKj|_r)R$p8~$6S{xM_u2Gd9y8#MNj)V3~ylZ}$ZwK=8n4Hq`afi*^41$oW1T>!(=7e80bSiaU!cU8%>C!cs|>N|x71Ik^61l7?!= z1@paKL=oaK%VIesk)?`Vo1~ZK-^*pLyEF#bk*>)MkmZx#cxAP1Nyo@?QgJc943`+| z45OzLWq}@as}tNYKX-;4*Mpu3cRAg$#5jr6$*OBy#f4*n2trZxfL6^t)wX8C+(%{@-XVytfiG*y5`gV|44M z44?tyrdg54N+Qeg&#gHyILp%!@CkAjp2y~orVRyE+~&5O*!7caDsTv29c#5Wmo^e> zBZS9c=i5p8%F;Rwi~F$Gg@u*mu|j*yOA(Ph_fb+DmMcVjIJqVk;;a1vt179(lu0?; zmdaAvc;0=s>iuk0vOEz?NsL&W7@1*soiSM=pU>)owy5E$7k0$o1SIZV-sH znqjay{7h2sy^^ewG>npL+ANe>oyo?{W?q;#yij?=vH3m&q#t0<~ZxF#EnGm* zn7U!5tI0K|B|-=pT3wy3jo`T;1{{HeJ{jWM^XqHNp+bP0b#pAs>|ucUfw}g<5QN=+S-BD ziG{b#D3R_pDK>UYlE~+_!<=Yb__@`yZH8(j+FFu(GBJxByS5Xklabq1RCK?otPVB| zg(oR3=Phqvw^4^JEm;*SEug_wl%yiYaXs$)k#bz;a4Yv**v{v_UF*eS1W^{MoH{+8 zrrkT#@7C+`@)lGu&mE}Da->S@(G0eRa4iQh*Njkb35QRRk(!*1ndDS^534iFpnI)Y z-g-H(Y1$T7ki`4b6EoO)((K%{z~F0fK5@Z3OnS+3e~ya`t1c1LsnJDRgOOkIFrD7| z5dQ#IA1aCE4Y@ma3IxcpLmg`N;sAmOK<~h)+1l*a`cjAVrK2%AMPezXlD;H575@NP z$+h$8Hnl%52#X(5M`}BfepexhT}bf4!jZ=BZ#JMt8AeJ7Y>i{e0t^m~3(PfHAmhhq z)eX^7#q75wW|n@#@*<`~WW;vA4ia&Z?D71O<&(9?G6fxZCQ;A~I_M20E6t-*ky3SK$mG7$nL}X9cMXd(GWUl&a*YCw8 zEVV6k*wZnkMS);wn!duG(_SFG3~|V^0vK9J>T&ItG~aX;@-ZkyaSkZgWF}J)jEvP} zxyGLTdJ@iPJ*=}TwWV1E+qa&-={vyJ+Ps_Xhn5mfM;Q}g`Ps+B_}JMnr1K_t3;FSF zKGbwaOgeCalu(j5g?kI@eV42B=W|m0-B`_Y$pSN{nt2v*FG(Bn;xPQVsy&L#&HI zBtrs3B1m;sb{B~9YjRCOfTs>u8CfLxJhS2W%%UvQU!1-(81hLbc9j}Q8c~3uBfO23 zpv9N{5xp5>EV0^?IF+R1YeHK5bB^*``knT}c{Pi5S}RZyBx)=!(i0d+DN9xrMQmJ< zR}n20fJmw<9<@~3U3s?p^|NxjU&nZhG;%=uRzWMwVmmxY<}ZZJhdAy`I--gMBq-`Q z$ekiGV+908DM89<^j1T%vIMC*5f*vjH7+Jjv&G&sb~3z@&np5lXOU>d*pkLL{G<_; zz^=aIz+#&s%~S)6Ps3I?-$^u^{cK}fbCB2PJcnl`s#~~=(z6_p%#bCx_LO8qS}D0P zx`UAdDA$I)K(jV?QaL5pNJTS#y!U4nP3M%|8I z>|}nSp2fiuDO5o5G!`NeXXFw|UZpIClGwasYf@5cuI(F0&`VhD+91urRKqG{{TH!u`12(dlJme1W6gHgy*bGR#%Ex&}*ZOs@7QLOA6F)X{~E?_G<4g!@Y}@ zPkHPK*rc>3)wQ`;Uawg!CDSB+3iLn(Mmnlo!306%fJo3%NbKAOzz;E|*Ik(!!&GP+ zW>B!Dw)cA~&$YAQiGUn*G4k=p8?erR{MmD_EHLMdH7;AMW}0HOtIr(6ZU~D8ajkaK z56dI{F8!+;50bz7KhX1c-7RGCL296qHN%JjT!f{DxBGvprHa-;1shLhk19L8oimfU zEjXX_8A{An ze4Mt&JN6&+NlrEc-*us>Vkz}-=VJyUt1E-w>4HRgEJb3xvFkV49mwr9iCRJIF)1iI zSMR0v0so$Hu>z4uY+P`!Yt1x z&uY>TdnfcHip(H))mHu2$Q1 z{(CVjc4Js=MnH_l$f+_oWsFA@Iu_mftomB_WCsRVB)dSj-twEJLDtL4y=R9U3Vhdh*3%I!fjSid_w=_EMmh{h`eCjv>O7FK+3}hbL#i8BQOE zJ)CFmu5p&zY*OFZGBsJ%fdsO*VZmnO^{r|7tyGL%7Z&Eh=K$cymb&Z6#!#|Tnk28f zuPhxHS{S2}GN}Z5$@h_-x`f5Fa)A_8X4eX|aN><>Y%j|BwPm=dV0%X+~FD z5~OI09BUT7vum^*dy(`vw&G*&UYj+P?U8`Oeg6PMntYHllsGJV z4nq#v2*?hHY7TiqY&5mfd_N9W7Z_vUD#*7h+ISsoPa;lUIsX7=vm6N(RMyp=wRrWF z8&9;M{!PtSRDqycv5DqLNCHJg0mM09ZDzs;$a3~LVG_Aq21baCxrIn&P|aI6n(0T5 zit)6iA7Al;#;XljKg+4tiIbK-{&_YU$*NP<-9!6L z(_sq!mHY40H-2DLEBBx>ymkje1}aGq3-MZwnwwqSwSQfV=wO^!iK^G3tEH}LHFZX{ zu2*s3ZQW^LO2s8b5?~qB$S^NaigO%L!oFP(o*^8oJF2+XhLmtAFjM-b6;Cl%ypVc67 z-%*WzsOO=I0$}*~G8e#Oh|_^9L#(T`gy*yMaA640WE#tBIF`OENEM=3risL{S%T$F zj-&b&o=>w4D$5O>UhcbFf=Hx*s;5CpqJ9oyXT?yn2*s6UQ3b#H*0ik#1C}ExZp}T9 zk{xHxfR<_ESr&zKG<}Znk!y$rOqeo1!OO5^Li~d{=c-h-a5z^SF_oYf?_AGPD+U66_76w6o~;HYELJ zk+6~%Kc-zj2pLOZ^QcFC`|RRp?Ee4;bTAk;60@+zV5=Z>WtdpdR*U)XJE)H|ow%_u zl;>cBUFI;TnrP&bSv!tMWP>#p46(!D#rb{{BqQ_kf=MGDXUNiJ@*>&ooeC%`jIyfA zm@3tx&^%xp>s-fcQ>9v15&U|ll12=gh-A zqU&#b^&S)7pk7gt!zdZ8J4c5mrq&&qfssnb{A-whJC;6+acQ+9o=A&+4DQ{O$rAuV z3QPWlfAx3l6k(80teabJU$bmE(8(mI8Y$w6AYqN8dg2=kaBr04pLuu`uZ)cnlI&^6*IwnI65G z5$akh@zsWSe=1;(?u$vVicuVLj=*_)d1QXXo}qGQKJjv@7zS;O$EA#Bzj@z%_v_Fr zWA+lQlVD9z>`W|AV9Z>TjzRua&Ofx7RU@}yhq+h_l_Qxg8!_BsGs%sYuvMd;XY>j< zG}@zA$ARFd35lz`b=A^XggW&QOcDVUyHE3~D-mmjQ>@S^X#5BpkBuPI!3EWxthU3p zJ!tDxSrRyfIUz``MyHb=zQp8 zDIv{pIYlij^7q?LEW>ke{FnMfOC@_RBT7keB(uRLt{uI4ZmcmUS!aR%0=U6frNNcf zB-i7_@KB0GC`5718^QQ#lq{;Sgxu;$3*f;UBw;%Ix(I9wg5b*8WtOdI5+|rNRQ3M= z^Olyjgqoeck+GuQO|-GxzdI!&NSb+OFOeSPITTSsjPiJQmNNpzDaAwQdF!#Bm<$Bx zbj*PkNmysB7&BS@hikd_T+H~fx-45Ndf2trcY6wp-)iu*Gg*(uM}q+%V9LUy={3Tv z)vDE&vO^>*Qh24Tu;`*#B}(;(w-)M-nr4k5Xk8BCaY z4Ku9l)-~G*uJf)>XKwpRc}2M0%aY_7UFPq%m%6yY#3+T}h)xzqKY=l1t1Os4CJ@=z zN(iR5v7@IH?@|lVAy2CDGVC_CDajPfatUonE?U@WV5JVqj6oa#VFjaT^|EMWg)n4b zMg??^J|U;KR#+?QuhffICavI}gVe39&}*dC$;sv{+>+Q<2_^j=#n9c?U?B&Qyp zNMRZ_lY35TB~huJbL9JpcCx<5f4ST=%`}!JX(#sQwPJIs)$US@E9Ach0|VAwgVl30 zNYi_ccd?0xd-%EBA0mcCITW3Xn_Kz%9QW(ge?0?Z3VAp(^$IW)zkWPy1~Rx9V7B(- zo zvtDUrupU`C6x!K#J3r=oT@HRWEl%Z<8Nrilxg?OmJX6zf3MdyO zcP`RHlGj=-LG|4H%gdf$<#X}5qC4%KlO3@(_bkn`+RF0C?cZd=KOfD6gTGqT-RoLf z4P^GLlJ;9>@K}N8o=N*s?CQ9xMs$GXOz-^{Chh(NbSR1c06c2ou4%Me2$fZBuWI8p z2c6Q@MOk;TMlciuB9ck{E1ZZ-pqQh|gwB>Aty5XC(_1FRTN=ESOA945j0*mHTqe7+ z#f7&QKiMqPFGaKP6#oFNMR)`J&w2dr_WuBBYh$sU?ta$ymn_(jnTt1g#=aNtx0I$q zV#TI?ShtbHG4U9Up@riwl49e?^PGe#`9A_2fPlX|92wkzdwFX z6=HdXnXhg3-}NWiO|ge({{T_;_BL`{{-bF9{&BFoWzEY1=x%dz(Usl1?kI#t07+&f zzkleB)Y&@ttz`LUjZEI{$kHoNoU<`$i8BbX7wU${bIm<{%0M!J0|T1ujL3#Q@?l+U zt>rkZ4Ho6Q9yKk;zi442J*Iw$eW?UGvarb9NgbBm4o_QUJ?l2zQhM`g?ZUq6y2#Rp zC4q_%kcw|hkXKr^4YNgFs?eWQoO}B5l)04u04=S%t8I1!$`9d|;brU3qQSd3WH@u* zxG-g1Zm~8Dtc`)Kx2&M?Mynul**-&x4s=4~ts7-)H*Cd{f@?IY;=GGu&8pG#L*x;% z?1A{EEZf`HB?siFG4sX)`b2vLoh4Hl0xY!=abOmjTi>HhT9asLKwyz9J&|Et%q+F~ zR)zGvXKBm!Yq;L+Ztb+22e_83%_H-fY%F3&;ydB7xpLfviD_hjLt@OQw*~$BC%kO* z#T5lvHDhFZmvco)n$9j$G=+M5dM6mpuz)MT;NZu=b5|zjNETcI8Qqxc#aVBNm!?TX zW5(o3^RtX;nzk&<`VzRoGq|u|BNU8ANhwEqXyt&a$o+-{$yN1S(!VjUwbpVYzZ<37 zox5yJ{Z{AwKfLw%h8;fhIVR7C?BwpePTM;qpN_{n zQ{7toO?-poWM;V#>@k>SWhQLwWp<}ygKfFS##WW55UR&bdeCwGrD7L6YnyF@Bnq@D z0CTA}mZjEc-WP?kGaGK!Pl}He>#VQh#0m-cBkH~`4DDDD;H`_2%E>BDsTJl}>KFq- zaV+Y0`hG?K0MSRj8~5D}?7OW#>OHz|6O-=mNxIzaxgP%jOS}I7xSOl{ixOQehQhZW zo$frI+8Y<8xh(HHH=~aIlNZROvtmKgViAc-j9WjEORcob?TLdm?G5|(36n16Z;B33 z*WRr7Fku*>!mg|7S!qiSrq;_IRyy&!sl7=DkURXsQKNRIb~B*fqR66+1bBlxCPsTG z9z$RlWfN-aSl6tT?7?GAwU=r(Q*EQzL$Q->Ug?^7X<5G=eU`>+vc;9?q+jRROEj|l z8LD$IF7a5Na{Yo&>7INMRx=Pyv_-n|xH6XJm7R&jYG!lVr~@^pyLe)Cv?`wAY1#65 z+$LAfyn!YR;nARPi9Girg3MQx#Mfj(4V(Bw#Scu!)#~+GSJ8*23WfB?uUhK^IpWUs{RCwh-+XW*W>Z4XY&8OY-Z?sXZ_Gu-&ON@5xM{UnFL+o^veHl1noV{gTdp z9Dqu`88x){ONF-QtR8<&B92i%W*-0R~ zcVktTJ8zW7Fp5#uZ8)a8jCB71Bpm?Y;mE#>Me3bRo~BynKOdXGaAb-xRu)!`>)O|) z?Pcv&zfRFIyMEGHl0}wV5C~@8%LeXEt8FJchO*fsLh&DE$@X!Z+0PCz{QT&PG9qqr zo#XXa-4i**70l-#iT*&+W$av@%*hwQou8BB!Y_^hlRDBB9!54uii7V|M>a{aPnL}t zMm91qRq616D~thDe9_+Ke4c3zcE1Xu5COfu^>pE~^06XjxXV9MChkq|lD5|Muw z36e^`0y47oXC)B;3Up8oC#OXb`FgKKVTOpL)Sq1zyPM?rMk@L1$yNYXmQa3IR#jfH za=UieaE`%=Wspc@XZ=~@ae+m6DLrEFOjye#tm7Ohwk))vRnPA`%F6lJZ_KQ5v@=HE zUO7qo-E}!mrsG-HmH`zyix1k^>~aY2Mbs>hdlwny6uwl~+@xT5tSqXFoks&98r|3_ zG?Ev+v00aBb}f0fHSY6RrodYl;(U_F>IpB5y+wt4I4~#>V=g;%s)3`1I4anPtoam= zD?D0Ty63J0Yim)mtkz8VR=m3Hx?F-u>${ktb0#i#+$CSVE^~F9$@8Ko2M^CRu!U`g z%M_K4IOxl$#=(axHGWdqTec;6Z0A6DiXB%Lvr>A(R5{wr2{@)XUPB=#26}&hK$F%HeqDAlIe*dn{{H${=hq_yYcA~~+7`{DZaF{M z9fKjV_5tip>L%LQc}`W!F9putMVs`GA}Yrtc`lq`*G#rR48D9qIyog~z`3e5={{W9Rl~q@&na6py&tWcCLl_w=+jp1Jl$8dgbM%}rBO4nO zcK8ox7GX6R_q&hW+5Z4W0+uC|VacHl)HX!PWAx8JB1;&NTubluNZBWYC&=tIi>+bu zHj(JJx50~wAqsE~&%zY2w5SdM1zfL=9+N7$70KK0w-TH<3^;StZ!6*e4kjThin?svptC&~Rd`qXrQ;RLKa=lNh9aMi_29u*@Ze`tA|J^5}{YR@6|ZOP$xqLC50dm5G5X*~vp;`CA_bMt@G`u^uqQ z$mT=SAWu$Y3^9o*mJ0k_QPigC{lPgNS8YlDgl`rkIqeTszm>7^aWFSnF@i5&|Jncu0Rj;L0s!|v@CV~O z4|nq)jO(p`#xu5Aj3W-tPr^g5C*WSESIx=!naSw&T!{{v@^Wa(;8QrFuDIk%I@gj((JcV>uy{@tLz+Sf@ujn}RiFiN4jt39Cap zygD8CzY;iMh8^5)Z)J;YWlp9xOcVYts><|bosfs=2f9o0tG=~>2}c9y6J?|a^LrW1Y-fNIdeo#M#< z06Ou1JMq*w%J>d+@u2U11YzL$IQkrIey-BFVNjax9eLqq-*rqKn0`GY2Wq>sPN-vc zucfPMd{&J|x*eX)d@VkOw$*6&J(=_Kf^X`#^KkTDhFFgu^Z9D=ry0|J>(bUOu{*vy z-%|;jHhAl=n7<}iQ0u+Tk9JyX=z}-tjdj;q-1#`e3<%A#weA?#TR60}X~yvrdfvpt z4-3l5_-f9)HTh7kwQBsCI&ZzDe_f#dElq1HUkeq@ym#(-eRbE1Dd5kN+wyb2(NinE z^xgx*=jOy82lej(HLjMNb^1MZt@=NkTJU1p)lYqE&Gp_l(_SlU{9BHc>i+=2QJ-72 z`7QTLeQdt_FWEnz&bu;{@2>Bujo#Hsw$@y6%QtB$*IJtLa7&CWxI@A5*@6>mcDALy zi(_0;vHUtHI(ejLRKxZVzGz>AsoGq%&Xa(GCP*H*2lXm*3gwD zu;7)NK!hc*Mr$lPFmb%6$&zV}5OcldmFUZ2xV9_-Dqz6{!QWk3T%n!!M!y>^Yml(U zQ?r6IL9GRHMzt#+9rR=1csTm8s?e?LRx^#gXSEsgf639gpHE*v)Rqqz>oG!uJ+w%WajO2@!~E86hJu*NX3 z?h{{F`s#HsV8;HQL5-mfo9h;pv*0oZ@vFY>F?sT=Q9xsi62SdQYD=pRRmg6|e z{{S`!_f1yklC|RE#)^bG7<(8cW7f$I`j#O#w%ZO1R@JOVo#p5C(22 zop-spz3+RkwYunzE1Ii@6GwJg-p6~gBaPvAH$J|;zN=yK+& zt7v7MRq$fB|q{{liIl7huH5wI%74WYSsB`Q`nDhp4)T1?wDq~yho0;t!ovlotEm#zUy8`A@iz7 zzVoc_saK}snV=JHDm9sYt_fcFEuTizF+^^00;pC z5di`K_kZJ`rH)U|_t!)8y${K@-+=tiP?a2!>UV!97r744LLNu9{7e&zxb!;KxwTvv zBKI(PAA+>uk8{V5k-*=QFu~?{z1&u~Fyx#u=;ZgbKMRMU*{XCS7(#H%W&CUcG4l*F zNjDDm>sa7{#T>ogBMdV8Ye<@ewYu90ibc&_>!~eD@U-!?uZwK!qP8ED?`&zVs#`Bn z>sOnX`h7+n?$38hf`Q3sN#jV+$r4ewFb-Xvo? zUcXOGcC}81YHOn(2P3}Kh7)i+_2OZlIN8%$gtKSy*E)wo^H((tlUl{2>#bp7E0PoI z>Th=B`fR?N>0X939T{`Xm11jJ4AyUE55l|Ai*~Hn+kdLvTW`TLvcy2wL#Z6^*v6db zK5H!Go5A6}ym15NAuQMR4Auic_|ngymileDVCp@p^`|F+K6F<>E$6=-&F`kIPR~+3 zO89T<>tpr1ep0z0HJX2D1(~_6y*|49{OjdB2u(*C_1O4?-_qrL_S$cKYB;PLSiAUZ z82E0Ke>ooeTn^s)?nnL!hw?rG=D(!z4~ONU#i;H>P>lT^0Qw$D^p3WeCxKgKDXYo*I@PDH~91n zSOJSd5tjUB8Cy+dd%gGEm6~R?joUlkK6S4~5~3JCSqvoJZG#$t$H&RXTXbgoFrVjn zVUlSz)g$QOfr~?}qc?@C$9`@>^l&)b5k?ZB9;OquLO3OJY>>sHovAA<`CE?+GQ+0( zoddTVtYZmWxM3=?%COB~+TIpw+W2sJo&(r~V+mfa1#xLyo@}JK*_+LbRQcC)xrLSL z=W&*m!w5Ux`_@?Pt!2Rr5jEJF>S4h)O~1gm6q~*{Y@2`)Ft~JH@(fdWo>5A zheB^~Ix@ZwmWj5@M#Lv1rLS(=+%n~cErYhT9+s5Fc{;O_(eK3B-)r{V`qmESErKQK zo#M`UCmuD|e3qA+=w_y&jd%OegTc#zwYQf9-yLzuDTA{YT%CybB4wXn7%P*->#vsq zHw-Yr*>TMeCcps1Mr)_nqk!`C7R&F;AM!-VLUaBXvMtQUj_`eHL92+ zH)ptOTGoLc!JP-s&&qc?9to{j*1kS;1heBoug}NN&1>@2F|BI^4Py3*&=`6o+V&?U zd@BcQ^%za=Yg*Q#))LljUQ0cz7!ojALC);iw;{;#F0;Ob zwpetmuRG>VT3^7+)L_!qpKY6c7H87ooA0L#Ium{*dUE&~INIqkxMO=}$71`v%Vh4? z=UmY8IiDTxs+bR!n&?X&H3ABd#zzY((bEYvhiHC8>am#a_jRoAKW2MZ6_og+7xGtpsl=( zKKIX;3Lp1;hze9Gx)f%c=Itw4>wf(fr3GjUP*AkFYF;b4tw%1ECoZewG~XxAo1tpW z2P9_EcG;nCcHKOUKKIX=5Bs+pLqS36QM09JYAOiJ0_`epjPsXD)_Sd1Z_!GEpeBQWEdXx-dYkKX z4?k7j8r1HpZkKdkAyBqcc9(yA7Nz35s@8AQbScTHQ?z^el5=h3N}H!N9FTKqyKK>Z z-bSB$=gWl->2&*Mt`IUs&$T#gnCG5N6;_rembPwXe~44a)$+T;D_gp$7fI;6MGI^6 zyZhj!c&_TaLv;HsBJDTL`jq*4j#yiH8kF5Rw49KqE{nGEU}u%#j<;1|@+D2sq5UqO zWn0=rGM7^c%bz6cP5vNSyuC*@-bST4X7;+y-xvN_$r-d=x03_N&^q0wo2nDj z%Y_cGsV6w3 z4hlV0O#;>wsJvmgkvDjDzjq{N(RSSw`4BvfKIqxHp?7DUSH)f;=<;EFT`r$sjvD3C z76U?|+S=Ox01~Uo_40S=eESQu`z=QOYsYocwOygzR<-qqedRvaNaz$@p-u62u(kO# zx=v^pKvP@!m3bl`KG?SAe^&7$qD z4*+C|&*DuDB)$GRsrB8yDj3x1bK=n=!dO_q>}-2fJ=+~7-ENCIe%8qzuW zACS49Lc$xbn$&u&lrIr|VarO?wOygzSBSo_?y7E)&?vh?o2?$)KmgOkxCHwfLuYC* zy}N~MY=iLbDg{MI=)88(TXu)I*)|61`{E_>gO? z+y)Z%2M{@`9jdEnKc!cQ6sWrksre&H(N)2CRN;4rYxjJuDhk@@&jU1Fq-2yE*zH+_ zO(&9-ISU<7ooZ&BZ{F!2bSSNOWZ6K;H+F}1W}80H*4P_DEiB02YO6~R*!|1x7(*>7 zhLR+y&-nxwhP9rnWede#JC>CyLWQB-SBSh-?Ky_5N_fveMN?ht{ue!wa8g0XN1NBpuZf%on zTVxvSE!9@>DUaiasy4%UwPFTB0%b?vpRJZPhN**+(O}Z$}*$-uNJ3|~T zB(l-HHeHqWFK1-z#>_dxS4#f?TlUL7!5S|Kc!#Q@h2pOn%fnObwFRYVe^sq`u2b!H z-2#Djl{Yfh&6KodnI9e__@?%b(TdOE8b_+Jva`hdaO!FnL8e{7QrV}~F~79C%U1@q zvnblyIpj-?a&MY^jjpn_wso;KXBhZx4KSvh3}dkdak~|$3+o>I5X5iPg*Uqu-W|8y z$S7;=blqjyn_z7iZ85g5ntYJ3?Jl!v#0JG_x(Aa3CXAXwi>B=d$*H2Fjndz`78=%I z&p64qMFTg0T*ooBt6t|cz^6Txxv;dfJ)w@U#fhwM3I70fIrV!BzOJ<%w?gq&DuBs@ zUuEGf`YlUOy3*yXc#c}G)H($X>2`%GRTN#~4y#%61`k|>*)_31PXuXNLCv>I+|JKs zY)HdtS`ILajT$P6eFE_Uo95|M6fJ1!c8hPhd<6$1tuR^JTRzUr{20C!Xgfp2wR_6y zs*ASrcJeg0E}te;-SGX??pZeIpl0n(?9{QfYb@VdkC6RQ?DjqGf;RR3;c7zt@73%V zRp2dV=w2vZFCc%UhPKwT^*p((O4R0NG_>Y6#-@M!7f58~vKCA$?t) zPD#7r=z(y>wPkiDTE5TdQ~<#ihN+{nSXD9jciH~s5o&OXoDcs1(ox5!bz5Lg z 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 A(*OVf literal 0 HcmV?d00001 diff --git a/docs/index.html b/docs/index.html index fbeedd6..c0804aa 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,960 +1,54 @@ - - - - - -bit-orbit - - - - - - - - - - - - - - - -

- - - - -
- - - - - -
- - -
-
-
- - - Featured image of post etc/resolve.conf/ - - -
- - -
- - - - -
-

- etc/resolve.conf/ -

- - -

- در لینوکس کوئری های DNS مسیر خاص خودشون رو سفر می‌کنند تا به جواب برسند. این پست حداقل این مسیر را در یک سیستم توضیح می‌دهد. -

- -
- - - - - -
- -
- - - - - - - - - - -
- - - -
- - - - - - - - - -
- -
- - - -
- -
-
- - - - - -
-
-
- - - Featured image of post Crul Paste - - -
- - -
- - - - -
-

- Crul Paste -

- - -

- curl paste یک FileBin تحت ترمینال برای گیک ها! -

- -
- - - - - -
- -
- - - - - - - - - - -
- - - -
- - - - - - - - - -
- -
- - - -
- -
-
- - - - - - - -
- - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- -
-
- - - - - +bit-orbit +
Featured image of post etc/resolve.conf/

etc/resolve.conf/

در لینوکس کوئری های DNS مسیر خاص خودشون رو سفر می‌کنند تا به جواب برسند. این پست حداقل این مسیر را در یک سیستم توضیح می‌دهد.

+
+
قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git a/docs/index.xml b/docs/index.xml index 51919dd..9d7bfa2 100644 --- a/docs/index.xml +++ b/docs/index.xml @@ -1,32 +1,168 @@ - - - - bit-orbit - https://bit-orbit.github.io/ - Recent content on bit-orbit - Hugo -- gohugo.io - fa - Thu, 01 Aug 2024 03:03:46 +0330 - etc/resolve.conf/ - https://bit-orbit.github.io/p/etc/resolve.conf/ - Thu, 01 Aug 2024 03:03:46 +0330 - - https://bit-orbit.github.io/p/etc/resolve.conf/ - <img src="https://bit-orbit.github.io/images/post/OIG4.jpeg" alt="Featured image of post etc/resolve.conf/" /><span style='font-size: 25px'> -<h3 id="مقدمه">مقدمه</h3> -<p>همیشه موقع ویرایش فایل -<em>resolve.conf</em> +bit-orbithttps://bit-orbit.github.io/Recent content on bit-orbitHugo -- gohugo.iofaMon, 09 Sep 2024 13:23:06 +0330مانت کردن دایرکتوری سرور روی دایرکتوری لوکالhttps://bit-orbit.github.io/p/%D9%85%D8%A7%D9%86%D8%AA-%DA%A9%D8%B1%D8%AF%D9%86-%D8%AF%D8%A7%DB%8C%D8%B1%DA%A9%D8%AA%D9%88%D8%B1%DB%8C-%D8%B3%D8%B1%D9%88%D8%B1-%D8%B1%D9%88%DB%8C-%D8%AF%D8%A7%DB%8C%D8%B1%DA%A9%D8%AA%D9%88%D8%B1%DB%8C-%D9%84%D9%88%DA%A9%D8%A7%D9%84/Mon, 09 Sep 2024 13:23:06 +0330https://bit-orbit.github.io/p/%D9%85%D8%A7%D9%86%D8%AA-%DA%A9%D8%B1%D8%AF%D9%86-%D8%AF%D8%A7%DB%8C%D8%B1%DA%A9%D8%AA%D9%88%D8%B1%DB%8C-%D8%B3%D8%B1%D9%88%D8%B1-%D8%B1%D9%88%DB%8C-%D8%AF%D8%A7%DB%8C%D8%B1%DA%A9%D8%AA%D9%88%D8%B1%DB%8C-%D9%84%D9%88%DA%A9%D8%A7%D9%84/<img src="https://bit-orbit.github.io/images/post/dc.jpg" alt="Featured image of post مانت کردن دایرکتوری سرور روی دایرکتوری لوکال" /><div dir='rtl' style="font-size: 25px;"> +<p>من همیشه برای کپی کردن فایل هام بین سرور و سیستمم از +<a class="link" href="http://www.wirenerd.ir/tools/scp/scp/" target="_blank" rel="noopener" +>scp</a> +استفاده می‌کنم. +البته گاهی هم با +FileZilla +به صورت گرافیکی کارم رو راه می‌اندازم.</p> +<p>ما برای ارتباط با یک سرور معمولا از سرویس +ssh +استفاده می‌کنیم. و خب احتمال می‌دم شما روی سرورتون این سرویس رو داشته باشین.</p> +<p>توی این پست ما دایرکتوری +home +یوزری که بهش دستری داریم رو روی یکی از دایکتوری های سیستم لوکالمون ماونت می‌کنیم +و بعد از اون مثل یک دایرکتوری عادی که روی هارد هست استفاده می‌کنیم.</p> +<p>با اینکار شما از طریق هر فایل منیجر که دارید مثل +Gnome Files +می‌تونید به دایرکتوری دسترسی داشته باشید. +حتی با ترمینال می‌تونید +cd +کنید به اون مسیر و دقیقا مثل یک فایل سیستم لوکال باهاش کار کنید.</p> +<hr> +<p>قدم اول نصب ابزاری هست که این کار رو برای ما انجام می‌ده، +توی هر توزیعی اسم این ابزار ممکنه متفاوت باشه ولی توی اوبونتو +<code>sshfs</code> +هست و با +apt +نصب می‌شه.</p> +<p>خب برای اینکه فایل سیتم رو ماونت کنیم باید یک مسیر +روی سیستم لوکال مشخص کنیم که فایل سیستم سرور روی اون +ماونت بشه. این مسیر هر جایی می‌تونه باشه فقط دقت کنید که دسترسی +سطح کاربری خودتون رو بهش بدین. +مسیرانتخابی من +<span dir='ltr'><code>/media/arya/cloud</code></span> +هست.</p> +<p>حالا ما فرض می‌کنیم یوزری که روی سرور بهش دسترسی داریم +arya +هست، پس مثل +ssh، +از اسم این یوزر قبل از ادرس سرور استفاده می‌کنم.</p> +<p>و مثل ابزار +<a class="link" href="http://www.wirenerd.ir/tools/mount/mount/" target="_blank" rel="noopener" +>mount</a> +می‌تونیم با فلگ +<code>o-</code> +آپشن هایی رو برای ماونت مشخص کنیم.</p> +<p>توی این مثال من مسیر +<span dir='ltr'><code>/home/arya</code></span> +که دایرکتوری +home +کاربر +arya +که روی سرور هست رو +به دایرکتوری +<span dir='ltr'><code>/media/arya/cloud</code></span> +که دایرکتوری لوکال من هست +متصل می‌کنم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># -o OptionsList, user@serverAddress :SourcePath #PathToMount</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">sudo sshfs -o reconnect,allow_other arya@server.wiregeek.ir:/home/arya /media/arya/cloud +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>می‌تونیم بجای مسیر دایرکتوری سرور یک اسپیس بذاریم، اینطوری پیشفرض همون دایرکتوری +home +رو استفاده می‌کنه.</p> +</blockquote> +<ul> +<li> +<p>من دو آپشن برای ماونت مشخص کردم +اولین +reconnect +هست که برای زمانی استفاده می‌شه که کانکشن شما با سرور قطع می‌شه +و این ابزار این کانکشن رو دوباره ایجاد می‌کنه</p> +</li> +<li> +<p>دومین که +allow_other +هست برای این استفاده می‌شه که به دیگر کاربران سیستم هم اجازه +دسترسی به اون دایرکتوری رو بده.</p> +</li> +</ul> +<p>بعد از انجام اینکار ها، +دایرکتوری شما آماده استفاده‌ست. کافیه به مسیری که فایل سیستم رو داخل اون +ماونت کردین برین، توی مثال ما +<span dir='ltr'><code>/media/arya/cloud</code></span> +بود.</p> +<hr> +<p>بعد از همه اینها اگه نیاز شد تا این فایل سیستم رو +unmount(جدا) +کنید، خیلی ساده می‌تونید از ابزار +<a class="link" href="https://linux.die.net/man/8/umount" target="_blank" rel="noopener" +>umount</a> +و در ادامه اون مسیر دایرکتوری که فایل سیستم روی اون ماونت شده +استفاده کنید.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">sudo umount /media/arya/cloud +</span></span></code></pre></td></tr></table> +</div> +</div><hr> +<p>حتی می‌تونید فایل سیستم را در زمان روشن شدن سیستم ماونت کنید. +اینکار خیلی ساده با فایل +<span dir='ltr'><code>/etc/fstab</code></span> +و سینتکس این فایل انجام می‌شه. +فقط +file system type +رو باید +sshfs +بنویسید.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># /etc/fstab</span> +</span></span><span class="line"><span class="cl"><span class="c1"># &lt;file system&gt; &lt;mount point&gt; &lt;type&gt; &lt;options&gt; &lt;dump&gt; &lt;pass&gt;</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">arya@server.wiregeek.ir:/home/arya/ /media/arya/cloud/ sshfs allow_other,reconnec +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>یادتون باشه که برای اینکار حتما از قبل کلید پابلیک سیستمون رو داخل سرور کپی کرده باشید.</p> +</blockquote> +<hr> +<p>برای اینکه همش پسورد مزاحمتون نباشه و موقع استارتاپ فایل سیستم روی سیستم شما ماونت بشه +باید کلید پابلیک خودتون رو کپی کرده باشید داخل سرور. برای اینکار از ابزار +ssh-copy-id +استفاده کنید.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">ssh-copy-id arya@server.wiregeek.ir +</span></span></code></pre></td></tr></table> +</div> +</div></div>etc/resolve.conf/https://bit-orbit.github.io/p/etc/resolve.conf/Thu, 01 Aug 2024 03:03:46 +0330https://bit-orbit.github.io/p/etc/resolve.conf/<img src="https://bit-orbit.github.io/images/post/OIG4.jpeg" alt="Featured image of post etc/resolve.conf/" /><span style='font-size: 25px'> +<h3 id="مقدمه">مقدمه +</h3><p>همیشه موقع ویرایش فایل +<em>resolve.conf</em> برام سوال بود که گزین های دیگه‌ای که توی این فایل تنظیم شده‌اند چکاری انجام می‌دهند. درواقع من همیشه دستور -<code>namveserver</code> +<code>namveserver</code> را برای تغییر سرور -<em>dns</em> +<em>dns</em> ویرایش می‌کردم. اما دستور هایی دیگه‌ای هم برای این فایل وجود دارد که لیست آنها در -<code>man resolve.conf</code> -توضیح داده شده است.</p> -<p>توی این پست من بعضی از دستورات این فایل را توضیح می‌دم.</p> -<blockquote> -<p>در مرحله اول یادتون باشه لینوکس هایی که +<code>man resolve.conf</code> +توضیح داده شده است.</p> +<p>توی این پست من بعضی از دستورات این فایل را توضیح می‌دم.</p> +<blockquote> +<p>در مرحله اول یادتون باشه لینوکس هایی که systemd دارند، معمولا از سرویس systemd-resolved @@ -36,48 +172,48 @@ DNS resolve می‌کند و سپس آنها را کش می‌کند که یک دامنه را چندین بار resolve -نکند.</p> -</blockquote> -<blockquote> -<p>یک دامنه حد اقل از <em>دو</em> بخش تشکیل می‌شود.</p> -<ol> -<li>TLD</li> -<li>Domain</li> -</ol> -</blockquote> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span><span class="lnt">3 -</span><span class="lnt">4 -</span><span class="lnt">5 -</span><span class="lnt">6 -</span><span class="lnt">7 -</span><span class="lnt">8 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">bin.example.com -</span></span><span class="line"><span class="cl">│ │ │ -</span></span><span class="line"><span class="cl">│ │ └─► TDL(Top Level Domain) -</span></span><span class="line"><span class="cl">│ │ -</span></span><span class="line"><span class="cl">│ └───────► Domain -</span></span><span class="line"><span class="cl">│ -</span></span><span class="line"><span class="cl">└─────────────► SubDomain -</span></span><span class="line"><span class="cl"> -</span></span></code></pre></td></tr></table> -</div> -</div><hr> -<h3 id="دستورات">دستورات</h3> -<ul> -<li> -<p>1 <code>nameserver</code></p> -<p>این دستور برای تعیین +نکند.</p> +</blockquote> +<blockquote> +<p>یک دامنه حد اقل از <em>دو</em> بخش تشکیل می‌شود.</p> +<ol> +<li>TLD</li> +<li>Domain</li> +</ol> +</blockquote> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span><span class="lnt">8 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">bin.example.com +</span></span><span class="line"><span class="cl">│ │ │ +</span></span><span class="line"><span class="cl">│ │ └─► TDL(Top Level Domain) +</span></span><span class="line"><span class="cl">│ │ +</span></span><span class="line"><span class="cl">│ └───────► Domain +</span></span><span class="line"><span class="cl">│ +</span></span><span class="line"><span class="cl">└─────────────► SubDomain +</span></span><span class="line"><span class="cl"> +</span></span></code></pre></td></tr></table> +</div> +</div><hr> +<h3 id="دستورات">دستورات +</h3><ul> +<li> +<p>1 <code>nameserver</code></p> +<p>این دستور برای تعیین IP یک سرور DNS -استفاده می‌شود.(در واقع اینجا منظورم یک سرویسی است که به نامه دامنه ها پاسخ دهد که به آن NS می‌گویم.)</p> -<p>شما می‌توانید تا حداقل سه +استفاده می‌شود.(در واقع اینجا منظورم یک سرویسی است که به نامه دامنه ها پاسخ دهد که به آن NS می‌گویم.)</p> +<p>شما می‌توانید تا حداقل سه IP لیست کنید، و resolver @@ -86,68 +222,68 @@ resolver NS جواب گو نباشد، از دیگر NS -های لیست شده استفاده خواهد شد.</p> -<p>اگر به همین ترتیب هر یک از +های لیست شده استفاده خواهد شد.</p> +<p>اگر به همین ترتیب هر یک از NS -ها جوابگو نباشد، کوئری ها از اول شروع می‌شود تا به حداکثر تعداد کوئری تعیین شده برسد.</p> -<p>برای مثال من می‌توانم چند +ها جوابگو نباشد، کوئری ها از اول شروع می‌شود تا به حداکثر تعداد کوئری تعیین شده برسد.</p> +<p>برای مثال من می‌توانم چند NS -مختلف را برای خودم تعیین کنم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">nameserver 1.1.1.1 -</span></span><span class="line"><span class="cl">nameserver 8.8.8.8 -</span></span></code></pre></td></tr></table> -</div> -</div></li> -</ul> -<hr> -<ul> -<li> -<p>2 <code>options</code></p> -<p>برای این دستور متغیر های مختلفی را می‌توان تعیین کرد.</p> -<ul> -<li> -<p>2.1 <code>ndots</code></p> -<ul> -<li> -<p>حداقل هر دامنه‌ای در سطح اینترنت یک نقطه دارد، برای مثال +مختلف را برای خودم تعیین کنم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">nameserver 1.1.1.1 +</span></span><span class="line"><span class="cl">nameserver 8.8.8.8 +</span></span></code></pre></td></tr></table> +</div> +</div></li> +</ul> +<hr> +<ul> +<li> +<p>2 <code>options</code></p> +<p>برای این دستور متغیر های مختلفی را می‌توان تعیین کرد.</p> +<ul> +<li> +<p>2.1 <code>ndots</code></p> +<ul> +<li> +<p>حداقل هر دامنه‌ای در سطح اینترنت یک نقطه دارد، برای مثال google.com یک نقطه دارد. شما می‌توانید با این متغیر تعین کنید که دامنه‌های در سطح اینترنت باید چند نقطه داشته باشند، هر نقطه نشانه ساب دامنه‌ است. -برای مثال به صورت پیشفرض این متغیر <em>1</em> تنظیم شده است. +برای مثال به صورت پیشفرض این متغیر <em>1</em> تنظیم شده است. به این معنی است که هر دامنه‌ای یک نقطه داشت، این دامنه در سطح اینترنت است. ولی اگر شما مقدار این متغیر را 2 تنظیم کنید، دامنه‌ای مثل -<code>google.com</code> +<code>google.com</code> بعنوان دامنه لوکال تشخیص داده خواهد شد و -<code>hostname</code> +<code>hostname</code> شما به اول دامنه اضافه خواهد شد. مثلا اگر -<code>hostname</code> +<code>hostname</code> شما -<code>arya</code> +<code>arya</code> باشد، دامنه به این شکل کوئری زده خواهد شد -<code>google.com.arya</code></p> -<p>در صورتی که شما برای جست و جوی یک دامنه از هیچ -<strong>TLD</strong> +<code>google.com.arya</code></p> +<p>در صورتی که شما برای جست و جوی یک دامنه از هیچ +<strong>TLD</strong> استفاده نکید، از -<code>hostname</code> +<code>hostname</code> و یا از مقداری که برای -<code>search</code> -مشخص کرده‌اید استفاده خواهد شد.</p> -</li> -</ul> -</li> -<li> -<p>2.2 <code>timeout</code></p> -<ul> -<li>این متغیر تعیین می‌کند که +<code>search</code> +مشخص کرده‌اید استفاده خواهد شد.</p> +</li> +</ul> +</li> +<li> +<p>2.2 <code>timeout</code></p> +<ul> +<li>این متغیر تعیین می‌کند که resolver چه مقدار زمانی باید منتظر جواب از سمت NS @@ -155,19 +291,19 @@ NS NS جواب نداد، از NS -های بعدی سوال کند.</li> -</ul> -</li> -<li> -<p>2.3 <code>attempts</code></p> -<ul> -<li>این متغیر تعین می‌کند که +های بعدی سوال کند.</li> +</ul> +</li> +<li> +<p>2.3 <code>attempts</code></p> +<ul> +<li>این متغیر تعین می‌کند که resolver در صورت جواب ندادن توسط NS -باید در نهایت چند کوئری دیگر ارسال کند.</li> -</ul> -<p>برای مثال اگر اولین +باید در نهایت چند کوئری دیگر ارسال کند.</li> +</ul> +<p>برای مثال اگر اولین NS پاسخ نداد، سوال از NS @@ -178,12 +314,12 @@ attempts attempts مجوع سوال ها از همه NS -ها است.)</p> -</li> -<li> -<p>2.4 <code>rotate</code></p> -<ul> -<li>به صورت پیشفرض کوئری های +ها است.)</p> +</li> +<li> +<p>2.4 <code>rotate</code></p> +<ul> +<li>به صورت پیشفرض کوئری های DNS همه برای اولین NS @@ -194,50 +330,50 @@ NS ها تقسیم کنیم، کافیست از این متغیر استفاده کنیم. اینکار باعث می‌شود که هر کوئری ها به صورت چرخشی به ترتیب به NS -های لیست شده ارسال شود.</li> -</ul> -</li> -</ul> -</li> -</ul> -<hr> -<ul> -<li>3 <code>search</code> +های لیست شده ارسال شود.</li> +</ul> +</li> +</ul> +</li> +</ul> +<hr> +<ul> +<li>3 <code>search</code> همانطور که در مثال بالا گفتم، ما نام دامنه ها را تنظیم می‌کنیم که حداقل وقتی یک نقطه دارند، resolver آنها را دامنه‌ در سطح اینترنت در نظر بگیرد و به NS کوئری بزند. ولی اگر هیچ نقطه‌ای نداشت و یا شما -<code>ndots</code> +<code>ndots</code> را بیشتر یا مساوی با 2 نتظیم کرده باشید، -<code>hostname</code> +<code>hostname</code> سیستم شما به آخر آن دامنه اضافه خواهد شد و یک دامنه داخلی (local) تلقی خواهد شد. اما اگر می‌خواهید قبل از اضافه شدن -<code>hostname</code> -به آن چیز دیگری اضافه کنید، کافیست متغیر سرچ را تعریف کنید و یک یا چند مقدار برای آن تعیین کنید.</li> -</ul> -<hr> -<h3 id="سرویس-systemd-resolve">سرویس systemd-resolve</h3> -<p>اگر به فایل +<code>hostname</code> +به آن چیز دیگری اضافه کنید، کافیست متغیر سرچ را تعریف کنید و یک یا چند مقدار برای آن تعیین کنید.</li> +</ul> +<hr> +<h3 id="سرویس-systemd-resolve">سرویس systemd-resolve +</h3><p>اگر به فایل /etc/resolve.conf نگاه کنید، می‌بینید که یک ns برای شما تنظیم شده است که IP -آن داخلی است.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl"># cat /etc/resolve.conf -</span></span><span class="line"><span class="cl">nameserver 127.0.0.53 -</span></span></code></pre></td></tr></table> -</div> -</div><p>همانطور که توی نکته‌ای در مقدمه این پست گفتم، +آن داخلی است.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl"># cat /etc/resolve.conf +</span></span><span class="line"><span class="cl">nameserver 127.0.0.53 +</span></span></code></pre></td></tr></table> +</div> +</div><p>همانطور که توی نکته‌ای در مقدمه این پست گفتم، سیستم عاملی هایی که از systemd استفاده می‌کنند معمولا سرویس @@ -249,115 +385,107 @@ IP 127.0.0.53 و 127.0.0.54 -شنود می‌کند.</p> -<p>این سرویس خودش یک کانفیگ در -<code>etc/ststemd/resolved.conf/</code> -دارد.</p> -<p>اگر داخل این فایل را نگاه کنیم، می‌بنیم که در قسمت +شنود می‌کند.</p> +<p>این سرویس خودش یک کانفیگ در +<code>etc/ststemd/resolved.conf/</code> +دارد.</p> +<p>اگر داخل این فایل را نگاه کنیم، می‌بنیم که در قسمت ‌DNS می‌توان NS های بالاتر را وارد کرد، اینکار باعث می‌شود که سیستم شما وقتی یک دامنه را در حافظه کش خود نداشت، از NS -های بالاتر که در این فایل تنظیم شده است سوال کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">[Resolve] -</span></span><span class="line"><span class="cl">DNS=1.1.1.1 8.8.8.8 -</span></span></code></pre></td></tr></table> -</div> -</div><p>ابته تاکید کنم در صورتی از این +های بالاتر که در این فایل تنظیم شده است سوال کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">[Resolve] +</span></span><span class="line"><span class="cl">DNS=1.1.1.1 8.8.8.8 +</span></span></code></pre></td></tr></table> +</div> +</div><p>ابته تاکید کنم در صورتی از این NS ها استفاده می‌شود که شما ‌از 127.0.0.53 و 127.0.0.54 در کانفیگ /etc/resolve.conf -استفاده کرده باشید.</p> -<blockquote> -<p>تفاوت 127.0.0.54 این است که هر کوئری را مستقیم به +استفاده کرده باشید.</p> +<blockquote> +<p>تفاوت 127.0.0.54 این است که هر کوئری را مستقیم به NS بالاتر ارسال خواهد کرد و از دیتای کش شده استفاده نمی‌کند. -ولی 127.0.0.53 از قابلیت کش استفاده می‌کند.</p> -</blockquote> -<hr> -<h3 id="مثال">مثال</h3> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt">10 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">nameserver 1.1.1.1 -</span></span><span class="line"><span class="cl">nameserver 8.8.8.8 -</span></span><span class="line"><span class="cl">nameserver 9.9.9.9 -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">options ndots:1 -</span></span><span class="line"><span class="cl">options timeout:2 -</span></span><span class="line"><span class="cl">options attempts:3 -</span></span><span class="line"><span class="cl">options rotate -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">search server1 server2 -</span></span></code></pre></td></tr></table> -</div> -</div><hr> -<h3 id="سخنی-با-شما">سخنی با شما</h3> -<p>این را بگم که +ولی 127.0.0.53 از قابلیت کش استفاده می‌کند.</p> +</blockquote> +<hr> +<h3 id="مثال">مثال +</h3><div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">nameserver 1.1.1.1 +</span></span><span class="line"><span class="cl">nameserver 8.8.8.8 +</span></span><span class="line"><span class="cl">nameserver 9.9.9.9 +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">options ndots:1 +</span></span><span class="line"><span class="cl">options timeout:2 +</span></span><span class="line"><span class="cl">options attempts:3 +</span></span><span class="line"><span class="cl">options rotate +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">search server1 server2 +</span></span></code></pre></td></tr></table> +</div> +</div><hr> +<h3 id="سخنی-با-شما">سخنی با شما +</h3><p>این را بگم که DNS به صورت recursive(بازگشتی) عمل می‌کنه، این یعنی وقتی شما یک کوئری ارسال می‌کنید، این کوئری هر بار به یک سرور بالاتر ارسال می‌شود تا در نهایت به جواب برسه. و خب این موضوع خودش در نهایت یک جریان -خیلی جالب داره که امیدوارم یک روز اون رو هم بنویسم :)</p> -</span> - - - Transpiler | ترجمه کد C به Bash - https://bit-orbit.github.io/p/transpiler-%D8%AA%D8%B1%D8%AC%D9%85%D9%87-%DA%A9%D8%AF-c-%D8%A8%D9%87-bash/ - Sat, 27 Jul 2024 18:27:21 +0330 - - https://bit-orbit.github.io/p/transpiler-%D8%AA%D8%B1%D8%AC%D9%85%D9%87-%DA%A9%D8%AF-c-%D8%A8%D9%87-bash/ - <img src="https://bit-orbit.github.io/images/post/transpiler.jpg" alt="Featured image of post Transpiler | ترجمه کد C به Bash" /><span style='font-size: 25px'> -<p>همان‌طور که می‌دانید، کامپایلرها سورس کد ما که به یک زبان سطح بالا نوشته شده است را به یک زبان سطح پایین‌تر ترجمه می‌کنند. برای مثال، کامپایلر کدی که به زبان +خیلی جالب داره که امیدوارم یک روز اون رو هم بنویسم :)</p> +</span>Transpiler | ترجمه کد C به Bashhttps://bit-orbit.github.io/p/transpiler-%D8%AA%D8%B1%D8%AC%D9%85%D9%87-%DA%A9%D8%AF-c-%D8%A8%D9%87-bash/Sat, 27 Jul 2024 18:27:21 +0330https://bit-orbit.github.io/p/transpiler-%D8%AA%D8%B1%D8%AC%D9%85%D9%87-%DA%A9%D8%AF-c-%D8%A8%D9%87-bash/<img src="https://bit-orbit.github.io/images/post/transpiler.jpg" alt="Featured image of post Transpiler | ترجمه کد C به Bash" /><span style='font-size: 25px'> +<p>همان‌طور که می‌دانید، کامپایلرها سورس کد ما که به یک زبان سطح بالا نوشته شده است را به یک زبان سطح پایین‌تر ترجمه می‌کنند. برای مثال، کامپایلر کدی که به زبان C نوشته شده است را به زبان اسمبلی ترجمه می‌کند. همچنین باید ذکر کنم که در زبان C، -پس از ترجمه به اسمبلی، کد به زبان ماشین که می‌تواند مستقیماً روی سخت‌افزار اجرا شود، ترجمه می‌شود.</p> -<p>اما ما نرم افزاری داریم که سورس کد را به یک سورس کد دیگر ترجمه می‌کند، به این نوع نرم افزار ها +پس از ترجمه به اسمبلی، کد به زبان ماشین که می‌تواند مستقیماً روی سخت‌افزار اجرا شود، ترجمه می‌شود.</p> +<p>اما ما نرم افزاری داریم که سورس کد را به یک سورس کد دیگر ترجمه می‌کند، به این نوع نرم افزار ها transpiler گفته می‌شود. برای مثال شما یک کد را به زبان پایتون نوشته‌اید را می‌توانید با برنامه مشخصی تبدیل کنید به زبان -JavaScrip.</p> -<p>اگر به نظرتون +JavaScrip.</p> +<p>اگر به نظرتون Bash سینتکس سختی داره، خب کافیه C بلد باشین و کدتون رو به زبان C بنویسید، و با -<a class="link" href="https://pnut.sh/" target="_blank" rel="noopener" - >Pnut.sh</a> +<a class="link" href="https://pnut.sh/" target="_blank" rel="noopener" +>Pnut.sh</a> به Bash -ترجمه کنید!</p> -<p>البته محدودیت هایی وجود داره</p> -<ul> -<li>عدد اعشار, goto, switch ساپورت نمی‌شود.</li> -<li>همچنین نمی‌توان یک متغییر را رفرنس کرد(&amp;)</li> -</ul> -<p>البته باید در نظر داشت که +ترجمه کنید!</p> +<p>البته محدودیت هایی وجود داره</p> +<ul> +<li>عدد اعشار, goto, switch ساپورت نمی‌شود.</li> +<li>همچنین نمی‌توان یک متغییر را رفرنس کرد(&amp;)</li> +</ul> +<p>البته باید در نظر داشت که Bash جایگزین C @@ -366,77 +494,69 @@ C نوشته شده رو نمی‌شود به Bash ترجمه کرد. با این حال اینکار برای تبدیل بعضی از کد های ساده به یک کد -پرتابل می‌تواند مفید باشد</p> -</span> - - - Crul Paste - https://bit-orbit.github.io/p/crul-paste/ - Wed, 06 Mar 2024 23:50:46 +0330 - - https://bit-orbit.github.io/p/crul-paste/ - <img src="https://bit-orbit.github.io/images/post/curlpaste.jpg" alt="Featured image of post Crul Paste" /><p>اول بیایید ببینم +پرتابل می‌تواند مفید باشد</p> +</span>Crul Pastehttps://bit-orbit.github.io/p/crul-paste/Wed, 06 Mar 2024 23:50:46 +0330https://bit-orbit.github.io/p/crul-paste/<img src="https://bit-orbit.github.io/images/post/curlpaste.jpg" alt="Featured image of post Crul Paste" /><p>اول بیایید ببینم FileBin چیه! قبل از اون هم فکر می‌کنم همه بدونیم -<a class="link" href="https://virgool.io/@m_shabane/pastebin-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B1%D8%A7-%D9%87%DA%A9%D8%B1-%D9%87%D8%A7-%D8%B9%D8%A7%D8%B4%D9%82-%D8%A2%D9%86-%D9%87%D8%A7%D8%B3%D8%AA%D9%86%D8%AF-swafqm95gttp" target="_blank" rel="noopener" - >pastebin</a> +<a class="link" href="https://virgool.io/@m_shabane/pastebin-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B1%D8%A7-%D9%87%DA%A9%D8%B1-%D9%87%D8%A7-%D8%B9%D8%A7%D8%B4%D9%82-%D8%A2%D9%86-%D9%87%D8%A7%D8%B3%D8%AA%D9%86%D8%AF-swafqm95gttp" target="_blank" rel="noopener" +>pastebin</a> چیه. اگه نمی‌دونید خیلی ساده باید بگم یک سایتی که فقط روی اون متن به اشتراک می‌ذارن -مثلا ممکنه ارور ها یا حتی سورس یک برنامه باشه!</p> -<p>اما +مثلا ممکنه ارور ها یا حتی سورس یک برنامه باشه!</p> +<p>اما FileBin ها بجای تسکت فایل های شما رو نگهداری می‌کنند و به شما لینکی ارائه می‌کنند که فایل را برای دیگران اشتراک بگذارید، نمونه های زیادی هم وجود داره مثل -<a class="link" href="https://wormhole.app" target="_blank" rel="noopener" - >https://wormhole.app</a></p> -<p>اما خب از اونجایی که من زندگی‌ام رو توی ترمینال می‌گذرونم و ترمینال رو به باز کردن مرورگر برای اشتراک یک فایل ترجیح می‌دم، پس از +<a class="link" href="https://wormhole.app" target="_blank" rel="noopener" +>https://wormhole.app</a></p> +<p>اما خب از اونجایی که من زندگی‌ام رو توی ترمینال می‌گذرونم و ترمینال رو به باز کردن مرورگر برای اشتراک یک فایل ترجیح می‌دم، پس از FileBin هایی استفاده می‌کنم که بتونم تحت ترمینال به سادگی فایلم رو به اشتراک بذارم. برای مثال -<a class="link" href="https://0x0.st" target="_blank" rel="noopener" - >https://0x0.st</a></p> -<p>وقتی این رو سایت رو باز کنید هیچ گزینه‌ای برای انتخاب فایل و آپلود نمی‌بینید! خب پس چطور باید یک فایل را برای سایت آپلود کنید؟ +<a class="link" href="https://0x0.st" target="_blank" rel="noopener" +>https://0x0.st</a></p> +<p>وقتی این رو سایت رو باز کنید هیچ گزینه‌ای برای انتخاب فایل و آپلود نمی‌بینید! خب پس چطور باید یک فایل را برای سایت آپلود کنید؟ کافیه یک ریکوئست HTTP POST خیلی ساده به سایت بزنید که شامل فایتون باشه. این کار رو خیلی ساده می‌شه با curl -انجام داد.</p> -<p>مثلا بیایین اشتراک یک فایل رو ببینیم</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl https://0x0.st -F <span class="nv">file</span><span class="o">=</span>@/path/to/file -</span></span><span class="line"><span class="cl"><span class="c1"># https://0x0.st/zWKo.txt</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>این سایت خیلی خوبه +انجام داد.</p> +<p>مثلا بیایین اشتراک یک فایل رو ببینیم</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl https://0x0.st -F <span class="nv">file</span><span class="o">=</span>@/path/to/file +</span></span><span class="line"><span class="cl"><span class="c1"># https://0x0.st/zWKo.txt</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>این سایت خیلی خوبه اما از زمانی به بعد دیگه این سایت کاری که من نیاز دارم رو کفاف نداد! برای مثال من نیاز دارم فایلم بعد از اولین دانلود از روی سرور حذف بشه و از این مهم تر نیاز داشتم که چندین فایل رو با یک یوزنیم مشخص اپلود کنم که خب شخصی که قرار باشه فایل ها رو دانلود کنه، کافیه از یوزنیم استفاده کنه که راحت تر قابل حفظ کردن و اشتراک گذاشتنه. اینطوری بود که گفتم FileBin -خودم رو بنویسم :)</p> -<hr> -<p><strong>بیایید فیچر ها و روش استفاده ازش رو با هم ببینیم.</strong></p> -<p>فرض کنید شما یک فایل دارید که می‌خواهید با من به اشتراک بگذارید، +خودم رو بنویسم :)</p> +<hr> +<p><strong>بیایید فیچر ها و روش استفاده ازش رو با هم ببینیم.</strong></p> +<p>فرض کنید شما یک فایل دارید که می‌خواهید با من به اشتراک بگذارید، خیلی ساده ترمینال رو باز می‌کنید و با یک دستور فایل رو با یک URL -تقریبا تصادفی منتشر می‌کنید.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">file</span><span class="o">=</span>@/tmp/theFile.fli -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/theFile.fli</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>دقت کنید من از سوییچ +تقریبا تصادفی منتشر می‌کنید.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">file</span><span class="o">=</span>@/tmp/theFile.fli +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/theFile.fli</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>دقت کنید من از سوییچ -L استفاده می‌کنم، دلیل اینکار این هست که خب ممکنه سایت شما رو ریدایرکت کنه. مثلا از @@ -445,632 +565,582 @@ http https. برای همین این سوییچ رو استفاده می‌کنم. با این سوییچ دیگه نیازی نیست https:// -رو هم بنویسیم!</p> -</blockquote> -<p>حالا اگه نیاز دارین که فایلتون بعد از اولین دانلود از روی سرور حذف بشه و دیگه در دسترس نباشه +رو هم بنویسیم!</p> +</blockquote> +<p>حالا اگه نیاز دارین که فایلتون بعد از اولین دانلود از روی سرور حذف بشه و دیگه در دسترس نباشه کافیه از کلمه -<code>once</code> +<code>once</code> بجای -<code>file</code> -استفاده کنید.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@/tmp/theFile.fli -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/theFile_GKug7xb.fli</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>تا اینجای کار همه +<code>file</code> +استفاده کنید.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@/tmp/theFile.fli +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/theFile_GKug7xb.fli</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>تا اینجای کار همه URL های هر فایلی به صورت تصادفی هست و من نیاز دارم که چندین فایل رو زیر یک یوزنیم مشخص مثل -<code>arya</code> +<code>arya</code> قرار بدم. اینطوری وقتی قراره یک فایل رو برای همکارم توی شرکت بفرستم خیلی ساده ازش درخواست می‌کنم در سایت به ادرس -<code>/arya</code> +<code>/arya</code> بره. حالا چطوری اینکارو بکنیم خیلی ساده بجای -<code>once</code> +<code>once</code> یا -<code>file</code>, +<code>file</code>, همون -<code>username</code> -رو می‌نویسیم(توی مثال من از نام <strong><em>arya</em></strong> استفاده می‌کنیم)</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">arya</span><span class="o">=</span>@/tmp/pic.jpg -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/arya</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>تا اینجای کار مثلا شما چند بار چند فایل مختلف رو زیر یک یوزنیم قرار دادین -حالا چطور میشه همه اونها رو باهم دانلود کرد؟</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir/arya <span class="p">|</span> wget -i - -</span></span></code></pre></td></tr></table> -</div> -</div><p>حالا به این فکر کنید که یکنفر میاد و با یوزنیم های معقول ریکوئست میزنه به سایت و +<code>username</code> +رو می‌نویسیم(توی مثال من از نام <strong><em>arya</em></strong> استفاده می‌کنیم)</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">arya</span><span class="o">=</span>@/tmp/pic.jpg +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/arya</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>تا اینجای کار مثلا شما چند بار چند فایل مختلف رو زیر یک یوزنیم قرار دادین +حالا چطور میشه همه اونها رو باهم دانلود کرد؟</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir/arya <span class="p">|</span> wget -i - +</span></span></code></pre></td></tr></table> +</div> +</div><p>حالا به این فکر کنید که یکنفر میاد و با یوزنیم های معقول ریکوئست میزنه به سایت و فایل های بقیه رو دانلود می‌کنه، اینجاست که پسورد به کار میاد. برای گذاشتن پسورد روی هر فایل کافیه توی خود URL سایت پسورد رو بعنوان http parametr -بنویسد.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L <span class="s1">&#39;octocat.ir/?password=12345678&#39;</span> -F <span class="nv">once</span><span class="o">=</span>@/Desktop/TopSecret.fli -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/file/TopSecret/?password=12345678</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>اینجا دقت کنید که باید از کوتیشن استفاده کنیم چون علامت مساوی و علامت سوال رو bash وایلد کارد می‌بینه.</p> -</blockquote> -<p>برای دانلود هر فایلی هم که پسورد داره کافیه دقیقا مثل مثال قبلی عمل کنید و پسورد رو توی +بنویسد.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L <span class="s1">&#39;octocat.ir/?password=12345678&#39;</span> -F <span class="nv">once</span><span class="o">=</span>@/Desktop/TopSecret.fli +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/file/TopSecret/?password=12345678</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>اینجا دقت کنید که باید از کوتیشن استفاده کنیم چون علامت مساوی و علامت سوال رو bash وایلد کارد می‌بینه.</p> +</blockquote> +<p>برای دانلود هر فایلی هم که پسورد داره کافیه دقیقا مثل مثال قبلی عمل کنید و پسورد رو توی http parametr -وارد کنید</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ wget <span class="s1">&#39;octocat.ir/file/TopSecret/?password=12345678&#39;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>براتون سواله که چرا پسورد روی توی +وارد کنید</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ wget <span class="s1">&#39;octocat.ir/file/TopSecret/?password=12345678&#39;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>براتون سواله که چرا پسورد روی توی URL گذاشتم؟ می‌شد که مثلا توی http header پسورد بگیریم و بدیم، پس چرا توی -URL?</p> -<p>اینکار برای این هست که دسترسی به فایل ساده باشه. مثلا من وقتی می‌خام فایلی رو برای همکارم بفرستم +URL?</p> +<p>اینکار برای این هست که دسترسی به فایل ساده باشه. مثلا من وقتی می‌خام فایلی رو برای همکارم بفرستم و خب فرض کنم همکار من از header ها چیزی نمی‌دونه، و فقط با یک کلیک باید بتونه به فایل دسترسی پیدا کنه، اینجاست که من فقط یک URL -به اون می‌گم :)</p> -<hr> -<p>بعضی از ابزار ها +به اون می‌گم :)</p> +<hr> +<p>بعضی از ابزار ها hackable هستند! این به معنی ضعف امنیتی نیست، بلکه به این اشاره می‌کنه ابزار به روشی طراحی -شده که کاربران می‌تونند خارج از هدف اصلی اون ابزار از اون استفاه کنند.</p> -<p>برای مثال ابزار که من درست کردم برای اشتراک فایل هست، اما بنظرتون میشه یک دایرکتوری و یا یک متن رو هم باهاش به اشتراک گذاشت؟</p> -<p>قطعا! اما چطوری؟</p> -<p>برای اینکه یک دایرکتوری با تمامی ساب دایرکتوری هاش رو بفرستین +شده که کاربران می‌تونند خارج از هدف اصلی اون ابزار از اون استفاه کنند.</p> +<p>برای مثال ابزار که من درست کردم برای اشتراک فایل هست، اما بنظرتون میشه یک دایرکتوری و یا یک متن رو هم باهاش به اشتراک گذاشت؟</p> +<p>قطعا! اما چطوری؟</p> +<p>برای اینکه یک دایرکتوری با تمامی ساب دایرکتوری هاش رو بفرستین کافیه از -<code>tar</code> -استفاده کنید.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ tar -cf - ~/Pictures <span class="p">|</span> curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@- -</span></span><span class="line"><span class="cl"><span class="c1"># &#39;octocat.ir/file/_nUiuRPW/</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>با اینکار با استفاده از +<code>tar</code> +استفاده کنید.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ tar -cf - ~/Pictures <span class="p">|</span> curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@- +</span></span><span class="line"><span class="cl"><span class="c1"># &#39;octocat.ir/file/_nUiuRPW/</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>با اینکار با استفاده از tar تمامی فایل ها و دایرکتوری های مثلا پوشه -<em>~/Pictures</em> +<em>~/Pictures</em> رو به آرشیو -<code>tar</code> +<code>tar</code> تبدیل می‌کنید و بعد خروجی رو بعنوان ورودی به -<code>curl</code> -می‌فرستین.</p> -<p>حالا به این فکر کنید که بخواهیم یک متن رو منتشر کنیم، راهکار دقیقا مشابه قبلیه. +<code>curl</code> +می‌فرستین.</p> +<p>حالا به این فکر کنید که بخواهیم یک متن رو منتشر کنیم، راهکار دقیقا مشابه قبلیه. به این شکل که یک متن رو با استفاده از -<code>echo</code> +<code>echo</code> به ورودی استاندارد -<code>curl</code> -می‌فرستیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ <span class="nb">echo</span> <span class="s1">&#39;Some Random Text&#39;</span> <span class="p">|</span> curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@- -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/file/-_W00DSbS/</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>اینطوری خیلی راحت می‌شه خروجی هر کامندی رو روی به اشتراک گذاشت</p> -</blockquote> -<hr> -<p>سایت من توی آدرس +<code>curl</code> +می‌فرستیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ <span class="nb">echo</span> <span class="s1">&#39;Some Random Text&#39;</span> <span class="p">|</span> curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@- +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/file/-_W00DSbS/</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>اینطوری خیلی راحت می‌شه خروجی هر کامندی رو روی به اشتراک گذاشت</p> +</blockquote> +<hr> +<p>سایت من توی آدرس octocat.ir -در دسترسه، خوشحال می‌شم ازش استفاده کنید :)</p> -<blockquote> -<p>اینو بدونید که سایت به صورت دیفالت فایل ها رو برای 24 ساعت نگه‌میداره</p> -</blockquote> -<p>این سرویس رو منبع باز روی -<a class="link" href="https://github.com/shabane/CurlPaste/" target="_blank" rel="noopener" - >گیتهاب</a> -گذاشتم، اگه چیزی خواستید می‌تونید بهش اضافه کنید و یا مشکلاتش رو پچ کنید.</p> -<p>و اگه می‌خواهید برای خودتون این سرویس رو بیارید بالا از ایمیج داکر استفاده کنید</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">docker run -p 80:80 mshabane/curlpaste:latest -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>اگه نیاز دارین تا فایل ها برای تایم بالاتری نگه‌داری بشه، متغییر -<em>HOURS</em> +در دسترسه، خوشحال می‌شم ازش استفاده کنید :)</p> +<blockquote> +<p>اینو بدونید که سایت به صورت دیفالت فایل ها رو برای 24 ساعت نگه‌میداره</p> +</blockquote> +<p>این سرویس رو منبع باز روی +<a class="link" href="https://github.com/shabane/CurlPaste/" target="_blank" rel="noopener" +>گیتهاب</a> +گذاشتم، اگه چیزی خواستید می‌تونید بهش اضافه کنید و یا مشکلاتش رو پچ کنید.</p> +<p>و اگه می‌خواهید برای خودتون این سرویس رو بیارید بالا از ایمیج داکر استفاده کنید</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">docker run -p 80:80 mshabane/curlpaste:latest +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>اگه نیاز دارین تا فایل ها برای تایم بالاتری نگه‌داری بشه، متغییر +<em>HOURS</em> داخل فایل -<em>.env</em> -رو تغییر بدین.</p> -</blockquote> -<hr> -<p>ایده های دیگه‌ای هم برای سایت دارم، برای مثال اینکه کاربر بتونه زمان انقضای +<em>.env</em> +رو تغییر بدین.</p> +</blockquote> +<hr> +<p>ایده های دیگه‌ای هم برای سایت دارم، برای مثال اینکه کاربر بتونه زمان انقضای هر فایل رو خودش مشخص کنه. -مثلا به این شکل</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -L octocat.ir -F <span class="nv">arya_1</span><span class="o">=</span>/path/to/file -</span></span></code></pre></td></tr></table> -</div> -</div><p>اینطوری میشه یک زمان انقضا بر اساس ساعت برای هر فایل ایجاد کرد.</p> -<p>و خب همچنین میشه یک کوتاه کننده لینک هم بهش اضافه کنم، و لینک های کوتاه شده رو -ریدایرکت کنم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -L octocat.ir -F <span class="nv">url</span><span class="o">=</span><span class="s1">&#39;https://example.com/some/looooong/url/&#39;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>اگه اینها رو اضافه کنم، این پست رو اپدیت می‌کنم ولی خوشحال می‌شم شما -توی این پروژه مشارکت کنید.</p> - - - - Linux File Locking چیست؟ - https://bit-orbit.github.io/p/linux-file-locking-%DA%86%DB%8C%D8%B3%D8%AA/ - Fri, 09 Feb 2024 01:49:42 +0330 - - https://bit-orbit.github.io/p/linux-file-locking-%DA%86%DB%8C%D8%B3%D8%AA/ - <img src="https://bit-orbit.github.io/images/post/flilock.jpeg" alt="Featured image of post Linux File Locking چیست؟" /><p>بیایید قبل از اینکه راه حل را ببینیم، اول مشکل را دقیق تر برسی کنیم. +مثلا به این شکل</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -L octocat.ir -F <span class="nv">arya_1</span><span class="o">=</span>/path/to/file +</span></span></code></pre></td></tr></table> +</div> +</div><p>اینطوری میشه یک زمان انقضا بر اساس ساعت برای هر فایل ایجاد کرد.</p> +<p>و خب همچنین میشه یک کوتاه کننده لینک هم بهش اضافه کنم، و لینک های کوتاه شده رو +ریدایرکت کنم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -L octocat.ir -F <span class="nv">url</span><span class="o">=</span><span class="s1">&#39;https://example.com/some/looooong/url/&#39;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>اگه اینها رو اضافه کنم، این پست رو اپدیت می‌کنم ولی خوشحال می‌شم شما +توی این پروژه مشارکت کنید.</p>Linux File Locking چیست؟https://bit-orbit.github.io/p/linux-file-locking-%DA%86%DB%8C%D8%B3%D8%AA/Fri, 09 Feb 2024 01:49:42 +0330https://bit-orbit.github.io/p/linux-file-locking-%DA%86%DB%8C%D8%B3%D8%AA/<img src="https://bit-orbit.github.io/images/post/flilock.jpeg" alt="Featured image of post Linux File Locking چیست؟" /><p>بیایید قبل از اینکه راه حل را ببینیم، اول مشکل را دقیق تر برسی کنیم. به این فکر کنید که شما یک فایلی دارید که شامل یک عدد است که اشاره می‌کند به مقدار اعتباری که کاربر در حسابش دارد. حالا اگر قرار باشد یک پورسه اون مقدار را بر اساس ارائه سرویسی، از حساب کاربر کم کند، و پروسه دیگری به دلیل افزایش اعتبار، مقداری را به حساب -کاربر اضافه کند، چه مشکلاتی اتفاق می‌افتد؟</p> -<p>برای اینکه دقیق تر بشیم، این روند رو باهم پیش می‌بریم. +کاربر اضافه کند، چه مشکلاتی اتفاق می‌افتد؟</p> +<p>برای اینکه دقیق تر بشیم، این روند رو باهم پیش می‌بریم. فرض کنید فایلی به اسم amount.txt مقدار 100 داخلش نوشته شده است. و دو پروسه کم و اضافه کردن را اجرا می‌کنیم. توی این مثال،‌ ما می‌خواهیم مقدار 20 از حساب کاربر کم و مقدار 50 به حساب کاربر -اضافه کنیم، پس ما انتظار داریم در انتها فایل ما مقدار 130 را درونش ذخیره کرده باشد.</p> -<ul> -<li>پروسه اول فایل را می‌خواند و مقدار 100 را در حاظه‌اش نگه می‌دارد</li> -<li>پروسه دوم فایل را می‌خواند و مقدار 100 را در حاظه‌اش نگه می‌دارد</li> -<li>پروسه اول مقدار 20 را از 100 کم می‌کند و مقدار 80 را در حافظه ذخیره می‌کند</li> -<li>پروسه دوم مقدار 50 را به 100 اضافه می‌کند و مقدار 150 را در حافظه ذخیره می‌کند</li> -<li>پروسه اول مقدار 80 را در فایل ذخیره می‌کند</li> -<li>پروسه دوم مقدار 150 را در فایل ذخیره می‌کند</li> -</ul> -<p>همینطور که همه ما انتظار داشتیم، ما باید در این فایل مقدار 130 را ذخیره می‌کردیم، +اضافه کنیم، پس ما انتظار داریم در انتها فایل ما مقدار 130 را درونش ذخیره کرده باشد.</p> +<ul> +<li>پروسه اول فایل را می‌خواند و مقدار 100 را در حاظه‌اش نگه می‌دارد</li> +<li>پروسه دوم فایل را می‌خواند و مقدار 100 را در حاظه‌اش نگه می‌دارد</li> +<li>پروسه اول مقدار 20 را از 100 کم می‌کند و مقدار 80 را در حافظه ذخیره می‌کند</li> +<li>پروسه دوم مقدار 50 را به 100 اضافه می‌کند و مقدار 150 را در حافظه ذخیره می‌کند</li> +<li>پروسه اول مقدار 80 را در فایل ذخیره می‌کند</li> +<li>پروسه دوم مقدار 150 را در فایل ذخیره می‌کند</li> +</ul> +<p>همینطور که همه ما انتظار داشتیم، ما باید در این فایل مقدار 130 را ذخیره می‌کردیم، اما پروسه های ما به دلیل اینکه هیچ همکاری و یا هیچ مکانیزمی دیگری ندارند که این مقدار ها را به یکدیگر اطلاع دهند، مشکل -<a class="link" href="https://en.wikipedia.org/wiki/Race_condition#Software" target="_blank" rel="noopener" - >Race condition</a> -رخ می‌دهد.</p> -<p>یکی از راه حل های این مشکل +<a class="link" href="https://en.wikipedia.org/wiki/Race_condition#Software" target="_blank" rel="noopener" +>Race condition</a> +رخ می‌دهد.</p> +<p>یکی از راه حل های این مشکل lock کردن فایل توسط هر پروسه است، که به این کار file locking -گفته می‌شود.</p> -<p><strong>file locking</strong> -یک مکانیزم برای کنترل دسترسی چندین پروسه به یک فایل است.</p> -<blockquote> -<p>توی لینوکس یکی از دستورات خطرناکی که داریم دستور +گفته می‌شود.</p> +<p><strong>file locking</strong> +یک مکانیزم برای کنترل دسترسی چندین پروسه به یک فایل است.</p> +<blockquote> +<p>توی لینوکس یکی از دستورات خطرناکی که داریم دستور sudo rm -rf / است. وقتی این دستور را اجرا کنیم کل فایل های لینوکس ما حذف می‌شود. دلیل اینکار این است که لینوکس به صورت پیشفرض فایل های باز شده را lock -نمی‌کند.</p> -</blockquote> -<p>با اینحال لینوکس دو مکانیزم مختلف -<em>advisory</em> و <em>mandatory</em> -را پشتیبانی می‌کند.</p> -<blockquote> -<p>توی این پست بیشتر تمرکز من روی مکانیزم +نمی‌کند.</p> +</blockquote> +<p>با اینحال لینوکس دو مکانیزم مختلف +<em>advisory</em> و <em>mandatory</em> +را پشتیبانی می‌کند.</p> +<blockquote> +<p>توی این پست بیشتر تمرکز من روی مکانیزم advisory locking(مشورتی) -است.</p> -</blockquote> -<p>این روش به این شکل عمل می‌کند که هیچ پروسه‌ای مجبور به اجرای این روش نیست و اگر حتی +است.</p> +</blockquote> +<p>این روش به این شکل عمل می‌کند که هیچ پروسه‌ای مجبور به اجرای این روش نیست و اگر حتی فایل توسط یک پروسه‌ای lock شده باشد، باز هم پروسه های دیگر می‌توانند به lock بودن فایل اهمیت ندهند و مقدار آن را تغییر دهند. این اتفاق به این دلیل می‌افتد که advisory lock -توسط سیستم عامل و یا فایل سیستم انجام نمی‌شود.</p> -<p>خب بیایید با یک مثال این فرایند را برسی کنیم. مثل مثال قبلی فرض کنید ما مقدار 100 +توسط سیستم عامل و یا فایل سیستم انجام نمی‌شود.</p> +<p>خب بیایید با یک مثال این فرایند را برسی کنیم. مثل مثال قبلی فرض کنید ما مقدار 100 را داخل فایل amount.txt -داریم و می‌خواهیم مقدار 20 از آن کم و مقدار 50 به آن اضافه کنیم.</p> -<ul> -<li>پروسه اول قبل از خواندن فایل، فایل را لاک می‌کند</li> -<li>پروسه دوم برای لاک کردن فایل اقدام می‌کند و از جایی که پروسه اول از پیش فایل را لاک کرده است، برای آزاد شدن لاک صبر می‌کند</li> -<li>پروسه اول مقدار 20 را از 100 کم می‌کند و مقدار 80 را درون فایل می‌نویسد</li> -<li>پروسه اول لاک فایل را آزاد می‌کند.</li> -<li>پروسه دوم فایل را لاک و مقدار جدید 80 را از فایل می‌خواند</li> -<li>پروسه دوم مقدار 50 را به 80 اضافه و مقدار 120 را درون فایل می‌نویسد</li> -<li>پروسه دوم لاک فایل را آزاد می‌کند تا پروسه های دیگر بتوانند با فایل کار کنند.</li> -</ul> -<hr> -<p>اگر شما می‌خواهید این مکانیزم را روی یک فایل اجرا کنید، دستور +داریم و می‌خواهیم مقدار 20 از آن کم و مقدار 50 به آن اضافه کنیم.</p> +<ul> +<li>پروسه اول قبل از خواندن فایل، فایل را لاک می‌کند</li> +<li>پروسه دوم برای لاک کردن فایل اقدام می‌کند و از جایی که پروسه اول از پیش فایل را لاک کرده است، برای آزاد شدن لاک صبر می‌کند</li> +<li>پروسه اول مقدار 20 را از 100 کم می‌کند و مقدار 80 را درون فایل می‌نویسد</li> +<li>پروسه اول لاک فایل را آزاد می‌کند.</li> +<li>پروسه دوم فایل را لاک و مقدار جدید 80 را از فایل می‌خواند</li> +<li>پروسه دوم مقدار 50 را به 80 اضافه و مقدار 120 را درون فایل می‌نویسد</li> +<li>پروسه دوم لاک فایل را آزاد می‌کند تا پروسه های دیگر بتوانند با فایل کار کنند.</li> +</ul> +<hr> +<p>اگر شما می‌خواهید این مکانیزم را روی یک فایل اجرا کنید، دستور flock -برای شما اینکار را خواهد کرد.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">flock <span class="o">[</span>options<span class="o">]</span> file<span class="p">|</span>directory <span class="nb">command</span> <span class="o">[</span>arguments<span class="o">]</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>این کامند در حالت عادی از شما یک فایل و یک دستور خواهد گرفت و مکانیزم +برای شما اینکار را خواهد کرد.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">flock <span class="o">[</span>options<span class="o">]</span> file<span class="p">|</span>directory <span class="nb">command</span> <span class="o">[</span>arguments<span class="o">]</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>این کامند در حالت عادی از شما یک فایل و یک دستور خواهد گرفت و مکانیزم advisory lock -را روی ان فایل اجرا خواهد کرد.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">flock /tmp/fli <span class="nb">echo</span> 12&gt;/tmp/fli -</span></span></code></pre></td></tr></table> -</div> -</div><p>برای اینکه روند را بهتر درک کنیم یک فایل +را روی ان فایل اجرا خواهد کرد.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">flock /tmp/fli <span class="nb">echo</span> 12&gt;/tmp/fli +</span></span></code></pre></td></tr></table> +</div> +</div><p>برای اینکه روند را بهتر درک کنیم یک فایل bash -می‌نویسیم که بتوانیم مثال اولیه را روی آن اجرا کنیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt">10 -</span><span class="lnt">11 -</span><span class="lnt">12 -</span><span class="lnt">13 -</span><span class="lnt">14 -</span><span class="lnt">15 -</span><span class="lnt">16 -</span><span class="lnt">17 -</span><span class="lnt">18 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="cp">#!/bin/bash -</span></span></span><span class="line"><span class="cl"><span class="cp"></span><span class="nv">file</span><span class="o">=</span><span class="s2">&#34;balance.dat&#34;</span> -</span></span><span class="line"><span class="cl"><span class="nv">value</span><span class="o">=</span><span class="k">$(</span>cat <span class="nv">$file</span><span class="k">)</span> -</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Read current balance:</span><span class="nv">$value</span><span class="s2">&#34;</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl"><span class="c1">#sleep 10 seconds to simulate business calculation</span> -</span></span><span class="line"><span class="cl"><span class="nv">progress</span><span class="o">=</span><span class="m">10</span> -</span></span><span class="line"><span class="cl"><span class="k">while</span> <span class="o">[[</span> <span class="nv">$progress</span> -lt <span class="m">101</span> <span class="o">]]</span><span class="p">;</span> <span class="k">do</span> -</span></span><span class="line"><span class="cl"> <span class="nb">echo</span> -n -e <span class="s2">&#34;\033[77DCalculating new balance..</span><span class="nv">$progress</span><span class="s2">%&#34;</span> -</span></span><span class="line"><span class="cl"> sleep <span class="m">1</span> -</span></span><span class="line"><span class="cl"> <span class="nv">progress</span><span class="o">=</span><span class="k">$((</span><span class="m">10</span><span class="o">+</span>progress<span class="k">))</span> -</span></span><span class="line"><span class="cl"><span class="k">done</span> -</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;&#34;</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl"><span class="nv">value</span><span class="o">=</span><span class="k">$((</span>value+<span class="nv">$1</span><span class="k">))</span> -</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Write new balance (</span><span class="nv">$value</span><span class="s2">) back to </span><span class="nv">$file</span><span class="s2">.&#34;</span> -</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="nv">$value</span> &gt; <span class="s2">&#34;</span><span class="nv">$file</span><span class="s2">&#34;</span> -</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Done.&#34;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>ما این فایل را همزمان با دو ترمینال اجرا می‌کنیم.</p> -<p><img src="https://bit-orbit.github.io/images/post/advisory_lock.gif" - - - - loading="lazy" - - alt="advisory lock" - - -></p> -<p>همینطور که می‌بینید پروسه دوم برای اینکه محتوای فایل را تغییر دهد، باید صبر کند تا لاک فایل -آزاد شود.</p> -<hr> -<p>این پست خلاصه‌ای بود از -<a class="link" href="https://www.baeldung.com/linux/file-locking" target="_blank" rel="noopener" - >این بلاگ</a> +می‌نویسیم که بتوانیم مثال اولیه را روی آن اجرا کنیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="cp">#!/bin/bash +</span></span></span><span class="line"><span class="cl"><span class="cp"></span><span class="nv">file</span><span class="o">=</span><span class="s2">&#34;balance.dat&#34;</span> +</span></span><span class="line"><span class="cl"><span class="nv">value</span><span class="o">=</span><span class="k">$(</span>cat <span class="nv">$file</span><span class="k">)</span> +</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Read current balance:</span><span class="nv">$value</span><span class="s2">&#34;</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="c1">#sleep 10 seconds to simulate business calculation</span> +</span></span><span class="line"><span class="cl"><span class="nv">progress</span><span class="o">=</span><span class="m">10</span> +</span></span><span class="line"><span class="cl"><span class="k">while</span> <span class="o">[[</span> <span class="nv">$progress</span> -lt <span class="m">101</span> <span class="o">]]</span><span class="p">;</span> <span class="k">do</span> +</span></span><span class="line"><span class="cl"> <span class="nb">echo</span> -n -e <span class="s2">&#34;\033[77DCalculating new balance..</span><span class="nv">$progress</span><span class="s2">%&#34;</span> +</span></span><span class="line"><span class="cl"> sleep <span class="m">1</span> +</span></span><span class="line"><span class="cl"> <span class="nv">progress</span><span class="o">=</span><span class="k">$((</span><span class="m">10</span><span class="o">+</span>progress<span class="k">))</span> +</span></span><span class="line"><span class="cl"><span class="k">done</span> +</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;&#34;</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="nv">value</span><span class="o">=</span><span class="k">$((</span>value+<span class="nv">$1</span><span class="k">))</span> +</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Write new balance (</span><span class="nv">$value</span><span class="s2">) back to </span><span class="nv">$file</span><span class="s2">.&#34;</span> +</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="nv">$value</span> &gt; <span class="s2">&#34;</span><span class="nv">$file</span><span class="s2">&#34;</span> +</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Done.&#34;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>ما این فایل را همزمان با دو ترمینال اجرا می‌کنیم.</p> +<p><img src="https://bit-orbit.github.io/images/post/advisory_lock.gif" +loading="lazy" +alt="advisory lock" +></p> +<p>همینطور که می‌بینید پروسه دوم برای اینکه محتوای فایل را تغییر دهد، باید صبر کند تا لاک فایل +آزاد شود.</p> +<hr> +<p>این پست خلاصه‌ای بود از +<a class="link" href="https://www.baeldung.com/linux/file-locking" target="_blank" rel="noopener" +>این بلاگ</a> که هر دو نوع advisory lock و mandatory lock -را توضیح می‌دهد.</p> -<p>برای من سوال بود که من چطور می‌توانم مکانیزمی که +را توضیح می‌دهد.</p> +<p>برای من سوال بود که من چطور می‌توانم مکانیزمی که flock استفاده می‌کند را در برنامه های خودم پیاده سازی کنم، و خب نتیجه این بود که معمولا برای advisory lock هر زبانی یک کتابخانه استاندار دارد توی -<a class="link" href="https://docs.python.org/3/library/fcntl.html" target="_blank" rel="noopener" - >پایتون کتابخانه</a> -<code>fcntl</code> -اینکار را انجام می‌دهد.</p> - - - - انواع داده های اولیه در rust - https://bit-orbit.github.io/p/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%D9%88%D9%84%DB%8C%D9%87-%D8%AF%D8%B1-rust/ - Wed, 03 Jan 2024 01:30:52 +0330 - - https://bit-orbit.github.io/p/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%D9%88%D9%84%DB%8C%D9%87-%D8%AF%D8%B1-rust/ - <img src="https://bit-orbit.github.io/images/post/rustdatatypes.jpg" alt="Featured image of post انواع داده های اولیه در rust" /><p>هر زبان برنامه نویسی انواعی از داده ها رو داره، مثلا +<a class="link" href="https://docs.python.org/3/library/fcntl.html" target="_blank" rel="noopener" +>پایتون کتابخانه</a> +<code>fcntl</code> +اینکار را انجام می‌دهد.</p>انواع داده های اولیه در rusthttps://bit-orbit.github.io/p/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%D9%88%D9%84%DB%8C%D9%87-%D8%AF%D8%B1-rust/Wed, 03 Jan 2024 01:30:52 +0330https://bit-orbit.github.io/p/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%D9%88%D9%84%DB%8C%D9%87-%D8%AF%D8%B1-rust/<img src="https://bit-orbit.github.io/images/post/rustdatatypes.jpg" alt="Featured image of post انواع داده های اولیه در rust" /><p>هر زبان برنامه نویسی انواعی از داده ها رو داره، مثلا داده های عددی، کاراکتر و یا رشته‌ای از کاراکتر ها. زبان rust هم انواع داده‌ای زیادی رو پشتیبانی می‌کنه و خب حتی اگر جایی کمبودی حس کردین، می‌توانید ساختار داده‌ی خودتان -را بسازید.</p> -<blockquote> -<p>‌ انواع داده ترجمه‌ی کلمه +را بسازید.</p> +<blockquote> +<p>‌ انواع داده ترجمه‌ی کلمه data type هست. و خب برای من استفاده از کلمه انگلیسی‌اش خیلی راحت -تره.</p> -</blockquote> -<h4 id="نوع-داده-عدد-صحیح">نوع داده عدد صحیح</h4> -<p>همینطور که می‌دونید عدد صحیح از منفی بی‌نهایت تا مثبت -بی‌نهایت است(بدون هیچ علامت کسر، رادیکال و بدون اعشار).</p> -<p>این نوع داده در +تره.</p> +</blockquote> +<h4 id="نوع-داده-عدد-صحیح">نوع داده عدد صحیح +</h4><p>همینطور که می‌دونید عدد صحیح از منفی بی‌نهایت تا مثبت +بی‌نهایت است(بدون هیچ علامت کسر، رادیکال و بدون اعشار).</p> +<p>این نوع داده در rust -به این صورت است</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">variable_name</span>: <span class="kt">i32</span> <span class="o">=</span><span class="w"> </span><span class="o">-</span><span class="mi">2147483648</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">variable_name</span>: <span class="kt">i32</span> <span class="o">=</span><span class="w"> </span><span class="mi">2147483647</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><p>به این باید دقت کنیم که هر متغییری مقداری فضا نیاز دارد +به این صورت است</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">variable_name</span>: <span class="kt">i32</span> <span class="o">=</span><span class="w"> </span><span class="o">-</span><span class="mi">2147483648</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">variable_name</span>: <span class="kt">i32</span> <span class="o">=</span><span class="w"> </span><span class="mi">2147483647</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><p>به این باید دقت کنیم که هر متغییری مقداری فضا نیاز دارد برای مثال این نوع داده که داده اصلی است به پنج صورت پیاده سازی می‌شود i8, i16, i32, i64, i128 اعداد پس از کاراکتر i نشان دهنده تعداد بیت هایی است که این نوع متغییر می‌تواند -اشغال کند. مثلا i128 می‌تواند به اندازه 128 بیت فضا اشغال کند.</p> -<h4 id="نوع-داده-عدد-اعشاری">نوع داده عدد اعشاری</h4> -<p>این نوع داده هم مثل نوع عدد صحیح است اما با این تفاوت که اعداد اعشاری را درون خودش ذخیره می‌کند</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">variable_name</span>: <span class="kt">f32</span> <span class="o">=</span><span class="w"> </span><span class="mf">3.14</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">variable_name</span>: <span class="kt">f32</span> <span class="o">=</span><span class="w"> </span><span class="o">-</span><span class="mf">3.14</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="نوع-داده-کاراکتر">نوع داده کاراکتر</h4> -<p>کاراکتر نوع داده‌ای است که فقط یک مقدار از حروف الفبا یا عدد و یا سیمبول را می‌تواند درون +اشغال کند. مثلا i128 می‌تواند به اندازه 128 بیت فضا اشغال کند.</p> +<h4 id="نوع-داده-عدد-اعشاری">نوع داده عدد اعشاری +</h4><p>این نوع داده هم مثل نوع عدد صحیح است اما با این تفاوت که اعداد اعشاری را درون خودش ذخیره می‌کند</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">variable_name</span>: <span class="kt">f32</span> <span class="o">=</span><span class="w"> </span><span class="mf">3.14</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">variable_name</span>: <span class="kt">f32</span> <span class="o">=</span><span class="w"> </span><span class="o">-</span><span class="mf">3.14</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="نوع-داده-کاراکتر">نوع داده کاراکتر +</h4><p>کاراکتر نوع داده‌ای است که فقط یک مقدار از حروف الفبا یا عدد و یا سیمبول را می‌تواند درون خودش ذخیره کند. پس باید به اندازه 8 بیت فضا اشغال کند اما به دلیل اینکه کاراکتر های زبان های دیگر را هم بتواند ذخیره کند از انکدینگ(encoding) utf-16 -استفاده می‌کند که 16 بیت فضا اشغال می‌کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">a</span>: <span class="kt">char</span> <span class="o">=</span><span class="w"> </span><span class="sc">&#39;a&#39;</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="داده-stringرشتهای-از-کاراکتر-ها">داده string(رشته‌ای از کاراکتر ها)</h4> -<p>String +استفاده می‌کند که 16 بیت فضا اشغال می‌کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">a</span>: <span class="kt">char</span> <span class="o">=</span><span class="w"> </span><span class="sc">&#39;a&#39;</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="داده-stringرشتهای-از-کاراکتر-ها">داده string(رشته‌ای از کاراکتر ها) +</h4><p>String نوع داده‌ای است که درواقع رشته‌ای از کاراکتر ها را درون یک نوع vector -ذخیره می‌کند.</p> -<blockquote> -<p>این نکته را هم بگم که +ذخیره می‌کند.</p> +<blockquote> +<p>این نکته را هم بگم که encoding رشته UTF-8 -است. به این معنی که هر نوع کاراکتری را می‌تواند داخل خودش ذخیره کند حتی ایموجی.</p> -</blockquote> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">heart</span>: <span class="nb">String</span> <span class="o">=</span><span class="w"> </span><span class="nb">String</span>::<span class="n">from</span><span class="p">(</span><span class="s">&#34;♥&#34;</span><span class="p">);</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="نوع-داده-منطقی">نوع داده منطقی</h4> -<p>نوع داده منطقی به اسم +است. به این معنی که هر نوع کاراکتری را می‌تواند داخل خودش ذخیره کند حتی ایموجی.</p> +</blockquote> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">heart</span>: <span class="nb">String</span> <span class="o">=</span><span class="w"> </span><span class="nb">String</span>::<span class="n">from</span><span class="p">(</span><span class="s">&#34;♥&#34;</span><span class="p">);</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="نوع-داده-منطقی">نوع داده منطقی +</h4><p>نوع داده منطقی به اسم boolian است. این نوع مقدار هایt true و یا false -را ذخیره می‌کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">is_good</span>: <span class="kt">bool</span> <span class="o">=</span><span class="w"> </span><span class="kc">true</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="نوع-داده-ترکیبی">نوع داده ترکیبی</h4> -<p>این نوع داده ها را توی پست های مجزا توضیح می‌دم.</p> -<ul> -<li>tuple</li> -<li>array</li> -<li>list</li> -<li>vector</li> -</ul> - - - - متغیر در rust - https://bit-orbit.github.io/p/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-rust/ - Mon, 01 Jan 2024 01:39:05 +0330 - - https://bit-orbit.github.io/p/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-rust/ - <img src="https://bit-orbit.github.io/images/post/datatypes-rust.jpg" alt="Featured image of post متغیر در rust" /><h4 id="تعریف-متغیر">تعریف متغیر</h4> -<p>در هر زبانی تعریف متغیر سینتکس خودش را دارد. +را ذخیره می‌کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">is_good</span>: <span class="kt">bool</span> <span class="o">=</span><span class="w"> </span><span class="kc">true</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="نوع-داده-ترکیبی">نوع داده ترکیبی +</h4><p>این نوع داده ها را توی پست های مجزا توضیح می‌دم.</p> +<ul> +<li>tuple</li> +<li>array</li> +<li>list</li> +<li>vector</li> +</ul>متغیر در rusthttps://bit-orbit.github.io/p/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-rust/Mon, 01 Jan 2024 01:39:05 +0330https://bit-orbit.github.io/p/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-rust/<img src="https://bit-orbit.github.io/images/post/datatypes-rust.jpg" alt="Featured image of post متغیر در rust" /><h4 id="تعریف-متغیر">تعریف متغیر +</h4><p>در هر زبانی تعریف متغیر سینتکس خودش را دارد. مثلا اگر زبان های خانواده c را کار کرده باشید (مثل c++, c#) متوجه می‌شوید که نوع داده‌ای متغیر، قبل از اسم آن تعریف می‌شود. و یا مثلا توی زبان پایتون تعریف نوع داده‌ای -یک متغیر حتی اهمیتی هم ندارد!</p> -<blockquote> -<p>انواع نوع داده یا +یک متغیر حتی اهمیتی هم ندارد!</p> +<blockquote> +<p>انواع نوع داده یا date types -را توی پست بعدی می‌نویسم</p> -</blockquote> -<p>توی زبان +را توی پست بعدی می‌نویسم</p> +</blockquote> +<p>توی زبان rust بعد از اسم متغیر، نوع آن نوشته می‌شود. مثلا برای تعریف یک متغیر عددی به اندازه یک بایت از کلمه کلیدی -<code>i8</code> +<code>i8</code> بعد اسم استفاده می‌کنیم. البته قبل از اسم هر متغیر هم ما باید از کلمه کلیدی -<code>let</code> -استفاده کنیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="c1">//let name: type = value; -</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="kd">let</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="متغیر-های-تغییرپذیر">متغیر های تغییرپذیر</h4> -<p>توی زبان +<code>let</code> +استفاده کنیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="c1">//let name: type = value; +</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="kd">let</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="متغیر-های-تغییرپذیر">متغیر های تغییرپذیر +</h4><p>توی زبان rust هر متغیری که تعریف می‌کنیم غیر قابل تغیر است. توی مثال بالا من پیشفرض مقدار 22 را برای متغیر age قرار داده‌ام، حالا اگر بخواهم مقدار آن را -به 23 تغیر بدهم به ارور می‌خورم</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt">10 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">error</span><span class="p">[</span><span class="n">E0384</span><span class="p">]</span>: <span class="nc">cannot</span><span class="w"> </span><span class="n">assign</span><span class="w"> </span><span class="n">twice</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">immutable</span><span class="w"> </span><span class="n">variable</span><span class="w"> </span><span class="err">`</span><span class="n">age</span><span class="err">`</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">-</span>-&gt; <span class="nc">src</span><span class="o">/</span><span class="n">main</span><span class="p">.</span><span class="n">rs</span>:<span class="mi">3</span>:<span class="mi">5</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">---</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">first</span><span class="w"> </span><span class="n">assignment</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="err">`</span><span class="n">age</span><span class="err">`</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">help</span>: <span class="nc">consider</span><span class="w"> </span><span class="n">making</span><span class="w"> </span><span class="n">this</span><span class="w"> </span><span class="n">binding</span><span class="w"> </span><span class="n">mutable</span>: <span class="err">`</span><span class="k">mut</span><span class="w"> </span><span class="n">age</span><span class="err">`</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="mi">3</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">^^^^^^^^</span><span class="w"> </span><span class="n">cannot</span><span class="w"> </span><span class="n">assign</span><span class="w"> </span><span class="n">twice</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">immutable</span><span class="w"> </span><span class="n">variable</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><p>خب برای همین اگر می‌خواهیم مقدار متغیری را تغییر +به 23 تغیر بدهم به ارور می‌خورم</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">error</span><span class="p">[</span><span class="n">E0384</span><span class="p">]</span>: <span class="nc">cannot</span><span class="w"> </span><span class="n">assign</span><span class="w"> </span><span class="n">twice</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">immutable</span><span class="w"> </span><span class="n">variable</span><span class="w"> </span><span class="err">`</span><span class="n">age</span><span class="err">`</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">-</span>-&gt; <span class="nc">src</span><span class="o">/</span><span class="n">main</span><span class="p">.</span><span class="n">rs</span>:<span class="mi">3</span>:<span class="mi">5</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">---</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">first</span><span class="w"> </span><span class="n">assignment</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="err">`</span><span class="n">age</span><span class="err">`</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">help</span>: <span class="nc">consider</span><span class="w"> </span><span class="n">making</span><span class="w"> </span><span class="n">this</span><span class="w"> </span><span class="n">binding</span><span class="w"> </span><span class="n">mutable</span>: <span class="err">`</span><span class="k">mut</span><span class="w"> </span><span class="n">age</span><span class="err">`</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="mi">3</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">^^^^^^^^</span><span class="w"> </span><span class="n">cannot</span><span class="w"> </span><span class="n">assign</span><span class="w"> </span><span class="n">twice</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">immutable</span><span class="w"> </span><span class="n">variable</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><p>خب برای همین اگر می‌خواهیم مقدار متغیری را تغییر بدهیم آن را باید از اول مشخص کنیم. مشخص کردن آن با کلمه کلیدی -<code>mut</code> +<code>mut</code> بعد از کلمه -<code>let</code> +<code>let</code> است. کلمه mut مخفف -<strong>mutable</strong> +<strong>mutable</strong> به معنی -<strong>قابل تغییر</strong> -است. خب بیایید اینکار را برای مثال اولیه انجام بدهیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div> - - - Rust - https://bit-orbit.github.io/rust/ - Sun, 31 Dec 2023 00:00:00 +0000 - - https://bit-orbit.github.io/rust/ - <img src="https://bit-orbit.github.io/images/post/rust.png" alt="Featured image of post Rust" /><p>من مدتی هست که دارم زبان +<strong>قابل تغییر</strong> +است. خب بیایید اینکار را برای مثال اولیه انجام بدهیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div>Rusthttps://bit-orbit.github.io/rust/Sun, 31 Dec 2023 00:00:00 +0000https://bit-orbit.github.io/rust/<img src="https://bit-orbit.github.io/images/post/rust.png" alt="Featured image of post Rust" /><p>من مدتی هست که دارم زبان rust رو یاد می‌گیرم، توی این تایمی که خودم یادش می‌گیرم، یک خلاصه‌ای هم از آموزش هایی که می‌بینم رو اینجا در پست های مجزا می‌نویسم. اینطوری هم برای خودم نوت دارم و هم -شما :)</p> -<p>هر پست آموزش +شما :)</p> +<p>هر پست آموزش rust که می‌نویسم رو اینجا لیست می‌کنم که -به راحتی در دسترس باشند.</p> -<blockquote> -<p>بعنوان نکته بگم که توی این مجموعه از پست ها، قرار نیست +به راحتی در دسترس باشند.</p> +<blockquote> +<p>بعنوان نکته بگم که توی این مجموعه از پست ها، قرار نیست برنامه نویسی را از صفر یاد بگیریم، صرفا سینتکس زبان rust -را یاد می‌گیریم.</p> -</blockquote> -<hr> -<ul> -<li><a class="link" href="https://bit-orbit.github.io/p/%d9%85%d8%aa%d8%ba%db%8c%d8%b1-%d8%af%d8%b1-rust/" >متغییر ها در rust</a></li> -</ul> - - - - فورک بمب چیست و چطور کار می‌کند؟ - https://bit-orbit.github.io/p/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B7%D9%88%D8%B1-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF/ - Wed, 27 Dec 2023 16:39:27 +0330 - - https://bit-orbit.github.io/p/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B7%D9%88%D8%B1-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF/ - <img src="https://bit-orbit.github.io/images/post/fork_bomb.jpg" alt="Featured image of post فورک بمب چیست و چطور کار می‌کند؟" /><p>اوایل که لینوکس نصب کرده بودم کامند هایی که توی +را یاد می‌گیریم.</p> +</blockquote> +<hr> +<ul> +<li><a class="link" href="https://bit-orbit.github.io/p/%d9%85%d8%aa%d8%ba%db%8c%d8%b1-%d8%af%d8%b1-rust/" >متغییر ها در rust</a></li> +</ul>فورک بمب چیست و چطور کار می‌کند؟https://bit-orbit.github.io/p/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B7%D9%88%D8%B1-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF/Wed, 27 Dec 2023 16:39:27 +0330https://bit-orbit.github.io/p/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B7%D9%88%D8%B1-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF/<img src="https://bit-orbit.github.io/images/post/fork_bomb.jpg" alt="Featured image of post فورک بمب چیست و چطور کار می‌کند؟" /><p>اوایل که لینوکس نصب کرده بودم کامند هایی که توی فروم های مختلف می‌دیدم و برای من جدید بود را دوست داشتم یاد بگیرم و بدانم کار آنها چی هست، برای همین هر کامندی را که می‌دیدم در @@ -1079,313 +1149,286 @@ rust هر کامندی اشتباهه بود. یکی از این کامند ها که اجرا کرده بودم، به اسم فورک بمب (fork bomb) -شناخته می‌شود. کامند به این صورت هست</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>:<span class="p">&amp;</span> <span class="o">}</span><span class="p">;</span>: -</span></span></code></pre></td></tr></table> -</div> -</div><p>اگر این کامند را اجرا کنید(امیدوارم تا الان نکرده باشید) تقریبا زیر یک دقیقه سیستم شما -هنگ می‌کند و مجبور می‌شوید سیستم را ریبوت کنید.</p> -<hr> -<p>توی این پست ساختار این کامند را تشریح می‌کنم و باهم +شناخته می‌شود. کامند به این صورت هست</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>:<span class="p">&amp;</span> <span class="o">}</span><span class="p">;</span>: +</span></span></code></pre></td></tr></table> +</div> +</div><p>اگر این کامند را اجرا کنید(امیدوارم تا الان نکرده باشید) تقریبا زیر یک دقیقه سیستم شما +هنگ می‌کند و مجبور می‌شوید سیستم را ریبوت کنید.</p> +<hr> +<p>توی این پست ساختار این کامند را تشریح می‌کنم و باهم کمی bash -یاد می‌گیریم.</p> -<p>بیایید اول با مفهوم +یاد می‌گیریم.</p> +<p>بیایید اول با مفهوم recustion آشنا بشیم، زمانی که یک قطعه کد خودش اجرا کند، recusion می‌گویم. مثلا شما یک فانکشن می‌نویسید به اسم -<em>fn</em> +<em>fn</em> و توی بدنه فانکشن فقط خود همین فانکشن را صدا می‌‌کنید، به این کار call recursion گفته می‌شود. فورک بمب دقیقا همین کار را می‌کند. به این -معنی که خودش را دائم اجرا می‌کند!</p> -<p>به این فکر کنید که وقتی یک پراسس خودش را اجرا می‌کند +معنی که خودش را دائم اجرا می‌کند!</p> +<p>به این فکر کنید که وقتی یک پراسس خودش را اجرا می‌کند ،مجدد پراسس های اجرا شده توسط اون هم دائم خودشان را اجرا می‌کنند، و دوباره هر پروسه‌ای که اجرا می‌شود بازم خودش را اجرا می‌کند و این روند تا زمانی که رم و پردازنده سیستم تحمل -داشته باشد ادامه دارد.</p> -<blockquote> -<p>درختی که می‌بینید را اجرای فورک بمب درنظر بگیرید، +داشته باشد ادامه دارد.</p> +<blockquote> +<p>درختی که می‌بینید را اجرای فورک بمب درنظر بگیرید، هر ستاره یک پروسه جدید است که توسط پروسه قبلی اجرا شده، و خودش هم دو پروسه جدید باز می‌کند و هر یک از پروسه ها -هم همین روند را ادامه می‌دهند.</p> -</blockquote> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt">10 -</span><span class="lnt">11 -</span><span class="lnt">12 -</span><span class="lnt">13 -</span><span class="lnt">14 -</span><span class="lnt">15 -</span><span class="lnt">16 -</span><span class="lnt">17 -</span><span class="lnt">18 -</span><span class="lnt">19 -</span><span class="lnt">20 -</span><span class="lnt">21 -</span><span class="lnt">22 -</span><span class="lnt">23 -</span><span class="lnt">24 -</span><span class="lnt">25 -</span><span class="lnt">26 -</span><span class="lnt">27 -</span><span class="lnt">28 -</span><span class="lnt">29 -</span><span class="lnt">30 -</span><span class="lnt">31 -</span><span class="lnt">32 -</span><span class="lnt">33 -</span><span class="lnt">34 -</span><span class="lnt">35 -</span><span class="lnt">36 -</span><span class="lnt">37 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w">   </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w">   </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><p>من برای اینکه سیستم‌ خودم هنگ نکند فورک بمب را روی داکر +هم همین روند را ادامه می‌دهند.</p> +</blockquote> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span><span class="lnt">19 +</span><span class="lnt">20 +</span><span class="lnt">21 +</span><span class="lnt">22 +</span><span class="lnt">23 +</span><span class="lnt">24 +</span><span class="lnt">25 +</span><span class="lnt">26 +</span><span class="lnt">27 +</span><span class="lnt">28 +</span><span class="lnt">29 +</span><span class="lnt">30 +</span><span class="lnt">31 +</span><span class="lnt">32 +</span><span class="lnt">33 +</span><span class="lnt">34 +</span><span class="lnt">35 +</span><span class="lnt">36 +</span><span class="lnt">37 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w">   </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w">   </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><p>من برای اینکه سیستم‌ خودم هنگ نکند فورک بمب را روی داکر اجرا کردم و خب حتی یک ثانیه هم طول نکشید و آن کانتینر -کاملا هنگ کرد.</p> -<blockquote> -<p>قبل از اجرا -<a class="link" href="https://bit-orbit.github.io/images/post/forkbomb_docker0.jpg" ><img src="https://bit-orbit.github.io/images/post/forkbomb_docker0.jpg" - - - - loading="lazy" - - alt="forkbomb on docker" - - -></a></p> -</blockquote> -<blockquote> -<p>زمان اجرا -<a class="link" href="https://bit-orbit.github.io/images/post/forkbomb_docker.jpg" ><img src="https://bit-orbit.github.io/images/post/forkbomb_docker.jpg" - - - - loading="lazy" - - alt="forkbomb on docker" - - -></a></p> -</blockquote> -<hr> -<p>بیایید وارد کد بشیم، این علامت ها و کاراکتر ها چی هستند؟</p> -<!-- برای تعریف یک فانکشن توی +کاملا هنگ کرد.</p> +<blockquote> +<p>قبل از اجرا +<a class="link" href="https://bit-orbit.github.io/images/post/forkbomb_docker0.jpg" ><img src="https://bit-orbit.github.io/images/post/forkbomb_docker0.jpg" +loading="lazy" +alt="forkbomb on docker" +></a></p> +</blockquote> +<blockquote> +<p>زمان اجرا +<a class="link" href="https://bit-orbit.github.io/images/post/forkbomb_docker.jpg" ><img src="https://bit-orbit.github.io/images/post/forkbomb_docker.jpg" +loading="lazy" +alt="forkbomb on docker" +></a></p> +</blockquote> +<hr> +<p>بیایید وارد کد بشیم، این علامت ها و کاراکتر ها چی هستند؟</p> +<!-- برای تعریف یک فانکشن توی bash -ما به این صورت عمل می‌کنیم که اول اسم فانکشن بعد پرانتز -و بعد کرلی براکت(توی فارسی می‌گیم آکولاد) و داخل کرلی +ما به این صورت عمل می‌کنیم که اول اسم فانکشن بعد پرانتز +و بعد کرلی براکت(توی فارسی می‌گیم آکولاد) و داخل کرلی براکت ما قطعه کد را می‌نویسیم. مثلا برای فانکشنی که یک اسم را روی صفحه چاپ کنه به این صورت عمل می‌کنیم - ```bash -pname(){ echo 'foo'; } -``` --> -<p>اگه دقت کنید اولین کاراکتر فورک بمب، علامت -<code>:</code> +pname(){ echo 'foo'; } +``` --> +<p>اگه دقت کنید اولین کاراکتر فورک بمب، علامت +<code>:</code> است. این علامت اسم فانکشن ما است. برخلاف قانون تعریف نام برای متغییر ها توی bash، می‌توانیم از کاراتر های یونیکد هم برای تعریف نام فانکشن استفاده کنیم، مثلا یک -کاراکتر چینی یا حتی ایموجی!</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span><span class="lnt">3 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">雨<span class="o">(){</span> <span class="nb">echo</span> <span class="s1">&#39;rain&#39;</span><span class="p">;</span> <span class="o">}</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">❤️<span class="o">(){</span> <span class="nb">echo</span> <span class="s1">&#39;love&#39;</span><span class="p">;</span> <span class="o">}</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>خب در ادامه علامت های -<code>()</code> +کاراکتر چینی یا حتی ایموجی!</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">雨<span class="o">(){</span> <span class="nb">echo</span> <span class="s1">&#39;rain&#39;</span><span class="p">;</span> <span class="o">}</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">❤️<span class="o">(){</span> <span class="nb">echo</span> <span class="s1">&#39;love&#39;</span><span class="p">;</span> <span class="o">}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>خب در ادامه علامت های +<code>()</code> را می‌بینیم، توی bash برای تعریف فانکشن قبل از اسم فانکشن هیچ کلمه کلیدی مثل fn, def, void و &hellip; نیاز نیست، فقط بجای آن باید -<strong>بعد از اسم فانکشن</strong> -پرانتز ها را بگذارید.</p> -<p>مثل خیلی از زبان های برنامه نویسی، بدنه فانکشن توی -کرلی براکت تعریف می‌شود.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){}</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>پس تا اینجا ما یک فانکشن ساده با نام -<code>:</code> -تعریف کردیم.</p> -<p>داخل بدنه این فانکشن، اسمی که برای فانکشن قرار دادیم +<strong>بعد از اسم فانکشن</strong> +پرانتز ها را بگذارید.</p> +<p>مثل خیلی از زبان های برنامه نویسی، بدنه فانکشن توی +کرلی براکت تعریف می‌شود.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>پس تا اینجا ما یک فانکشن ساده با نام +<code>:</code> +تعریف کردیم.</p> +<p>داخل بدنه این فانکشن، اسمی که برای فانکشن قرار دادیم همان -<code>:</code> +<code>:</code> را می‌نویسیم. با اینکار دقیقا call recursion را انجام دادیم، و باعث شدیم که برنامه خودش را -توی هر اجرا مجدد اجرا کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> : <span class="o">}</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>دقت کنید توی سینتکس +توی هر اجرا مجدد اجرا کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> : <span class="o">}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>دقت کنید توی سینتکس bash -حتما باید یک فاصله برای کدی که داخلی کرلی براکت می‌نویسم قرار بدیم</p> -</blockquote> -<p>علامت -<code>|</code> +حتما باید یک فاصله برای کدی که داخلی کرلی براکت می‌نویسم قرار بدیم</p> +</blockquote> +<p>علامت +<code>|</code> به اسم پایپ شناخته می‌شود، وظیفه این علامت دادن خروجی یک کامند بعنوان ورودی به یک کامند دیگر هست، حلا دقت کنید که ما خروجی اجرای -<code>:</code> -را به خودش می‌دهیم. دقیقا به این شکل</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>: <span class="o">}</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>با این علامت هر پروسه دو بار پروسه جدیدی از خودش می‌سازد +<code>:</code> +را به خودش می‌دهیم. دقیقا به این شکل</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>: <span class="o">}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>با این علامت هر پروسه دو بار پروسه جدیدی از خودش می‌سازد اگر از این علامت استفاده نکنیم، پروسه ما به صورت خطی خودش را اجرا خواهد کرد، اینطوری کد ما با یک حلقه -<code>while</code> -تفاوتی زیادی نخواهد داشت.</p> -<p>علامت -<code>&amp;</code> +<code>while</code> +تفاوتی زیادی نخواهد داشت.</p> +<p>علامت +<code>&amp;</code> اجرای یک کامند را به بکگراند(پس زمینه) می‌برد. برای مثال بعد از اجرای یک دستور باید صبر کنید پروسه آن تمام شود تا بتوانید دستور بعدی را اجرا کنید. ولی اگر از علامت -<code>&amp;</code> +<code>&amp;</code> بعد از هر دستور استفاده کنید، دیگر نیاز نیست صبر کنید تا روند اجرای آن برنامه تمام شود. درواقع با علامت -<code>&amp;</code> +<code>&amp;</code> شما می‌توانید هر برنامه را در بکگراند اجرا کنید. حالا توی فورک بمب این علامت باعث می‌شود تا فانشکنی که اجرا کردین درحالی که کارش به اتمام -نرسیده است، فانکشن بعدی اجرا بشود.</p> -<p><img src="https://bit-orbit.github.io/images/post/forkbomb_and.jpg" - - - - loading="lazy" - - alt="& in bash" - - -></p> -<p>و بعد علامت -<code>;</code> +نرسیده است، فانکشن بعدی اجرا بشود.</p> +<p><img src="https://bit-orbit.github.io/images/post/forkbomb_and.jpg" +loading="lazy" +alt="& in bash" +></p> +<p>و بعد علامت +<code>;</code> را می‌بینیم. این علامت کامند ها را از هم جدا می‌کند. مثلا شما می‌توانید چند کامند مختلف را توی یک خط بنویسید. توی فورک بمب این علامت فانکشنی که تعریف کردین را از -دستور بعدی(که اجرا کننده اون فانکشن هست)جدا می‌کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s1">&#39;foo&#39;</span><span class="p">;</span> <span class="nb">echo</span> <span class="s1">&#39;bar&#39;</span><span class="p">;</span> <span class="nb">echo</span> <span class="s1">&#39;baz&#39;</span><span class="p">;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>آخرین علامتی که توی فورک بمب داریم همون علامت -<code>:</code> +دستور بعدی(که اجرا کننده اون فانکشن هست)جدا می‌کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s1">&#39;foo&#39;</span><span class="p">;</span> <span class="nb">echo</span> <span class="s1">&#39;bar&#39;</span><span class="p">;</span> <span class="nb">echo</span> <span class="s1">&#39;baz&#39;</span><span class="p">;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>آخرین علامتی که توی فورک بمب داریم همون علامت +<code>:</code> یا همون اسمی هست که برای فانکشن قرار دادیم. خیلی ساده توی bash -برای اجرای یک فانکشن فقط اسم‌ش را می‌نویسیم.</p> -<p>و تمام! ما یاد گرفتیم چطور فورک بمب رو بنویسیم و دیگه -نیاز نیست حفظ‌ش کنیم :)</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>:<span class="p">&amp;</span> <span class="o">}</span><span class="p">;</span>: -</span></span></code></pre></td></tr></table> -</div> -</div> - - - از گوگل به تلگرام! - https://bit-orbit.github.io/p/%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/ - Mon, 18 Dec 2023 00:08:38 +0330 - - https://bit-orbit.github.io/p/%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/ - <img src="https://bit-orbit.github.io/images/post/colab.jpg" alt="Featured image of post از گوگل به تلگرام!" /><p>به احتمال زیاد سایت +برای اجرای یک فانکشن فقط اسم‌ش را می‌نویسیم.</p> +<p>و تمام! ما یاد گرفتیم چطور فورک بمب رو بنویسیم و دیگه +نیاز نیست حفظ‌ش کنیم :)</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>:<span class="p">&amp;</span> <span class="o">}</span><span class="p">;</span>: +</span></span></code></pre></td></tr></table> +</div> +</div>از گوگل به تلگرام!https://bit-orbit.github.io/p/%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/Mon, 18 Dec 2023 00:08:38 +0330https://bit-orbit.github.io/p/%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/<img src="https://bit-orbit.github.io/images/post/colab.jpg" alt="Featured image of post از گوگل به تلگرام!" /><p>به احتمال زیاد سایت google colab رو می‌شناسید، این سایت برای کسانی که پایتون کار می‌کنند یک معجزه‌ست. خیلی راحت شما می‌توانید کد پایتون خود @@ -1395,30 +1438,30 @@ google colab این سرویس گوگل واقعا کار رو راحت می‌کنه. حالا فرض کنید این فایل رو باید با تیم به اشتراک بگذارید، خیلی راحت این سروریس به گوگل درایو شما متصل می‌شه -و فایل رو براتون آپلود می‌کنه.</p> -<p>اما من توی این پست می‌خواهم کار متفاوتی با این سرویس +و فایل رو براتون آپلود می‌کنه.</p> +<p>اما من توی این پست می‌خواهم کار متفاوتی با این سرویس انجام بدم، جای اینکه فایل‌م رو توی گوگل درایو آپلود کنم می‌خواهم که یک پلی لیست موزیک راک رو که فایل با فرمت zip هست رو روی google colab دانلود کنم و بعد با همین کولب فایل -ها را استخراج و به تلگرام اپلود کنم.</p> -<p>اینو بگم که خب روی کولب خیلی تریک های جالب دیگه‌ای هم +ها را استخراج و به تلگرام اپلود کنم.</p> +<p>اینو بگم که خب روی کولب خیلی تریک های جالب دیگه‌ای هم می‌زنند، مثلا من یه تایمی به کولب ssh می‌کردم و بعنوان vpn -استفاده می‌کردم.</p> -<hr> -<p>ادرس سرویس +استفاده می‌کردم.</p> +<hr> +<p>ادرس سرویس google colab -<a class="link" href="https://colab.research.google.com/" target="_blank" rel="noopener" - >این</a> +<a class="link" href="https://colab.research.google.com/" target="_blank" rel="noopener" +>این</a> هست، ولی من یک اسکریپت نوشتم که به اون نیاز داریم برای همین -<a class="link" href="https://colab.research.google.com/github/shabane/upload-to-telegram/blob/master/upload_to_telegram.ipynb" target="_blank" rel="noopener" - >این لینک</a> +<a class="link" href="https://colab.research.google.com/github/shabane/upload-to-telegram/blob/master/upload_to_telegram.ipynb" target="_blank" rel="noopener" +>این لینک</a> رو باز کنید تا اسکریپتی که من نوشته‌م توی colab @@ -1426,237 +1469,204 @@ colab jupyter کار کرده باشین این محیط باید براتون خیلی آشنا باشه. اگر نه، خیلی ساده بگم، این محیط دستورات پایتون رو -براتون روی سروس های گوگل ران می‌کنه :)</p> -<p>خب ما یه فایل این برای مثالمون نیاز داریم، من یک پلی +براتون روی سروس های گوگل ران می‌کنه :)</p> +<p>خب ما یه فایل این برای مثالمون نیاز داریم، من یک پلی لیست راک از AC/DC -که از تورنت می‌گیرم رو برای اینکار استفاده می‌کنم.</p> -<p>اول من فایل رو باید دانلود کنم، من از تورنت برای دانلود +که از تورنت می‌گیرم رو برای اینکار استفاده می‌کنم.</p> +<p>اول من فایل رو باید دانلود کنم، من از تورنت برای دانلود موزیک، فیلم و &hellip; استفاده می‌کنم. پس کافیه لینک تورنت رو به برنامه aria2c بدم و یا فایل رو با یک سایت دانلودر تورنت دانلود کنم و لینک‌ش رو بدم به برنامه -wget</p> -<p>برای اینکه دستورات خودتون رو اجرا کنید از بالای سایت +wget</p> +<p>برای اینکه دستورات خودتون رو اجرا کنید از بالای سایت گزینه -<em>+ code</em> +<em>+ code</em> رو بزنید تا یک code snipp جدید براتون باز کنه. توی این قسمت فقط می‌شه کد های پایتون رو اجرا کرد ولی اگه از علامت -<strong>!</strong> +<strong>!</strong> قبل از دستور استفاده کنیم اون رو بعنوان دستور bash اجرا خواهد کرد. و خب بیس سیستم عامل هم دبیان هست -و دستورات دبیانی رو اجرا می‌کنه.</p> -<p>پس اگه مستقیم قرار بود فایل رو از تورنت بگیرم باید برنامه +و دستورات دبیانی رو اجرا می‌کنه.</p> +<p>پس اگه مستقیم قرار بود فایل رو از تورنت بگیرم باید برنامه aria2 -رو نصب می‌کردم. برای نصب کافیه این دستور رو بزنیم</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!sudo apt-get install aria2 -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>دقت کنید که از علامت -<code>!</code> -قبل از دستور استفاده کردم.</p> -</blockquote> -<p>بعد از نصب، لینک رو می‌دیم به برنامه تا فایل ها رو برامون -دانلود کنه.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!aria2c <span class="s1">&#39;&lt;your magnet link&gt;&#39;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>به این دقت کنید که برنامه با کامند +رو نصب می‌کردم. برای نصب کافیه این دستور رو بزنیم</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!sudo apt-get install aria2 +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>دقت کنید که از علامت +<code>!</code> +قبل از دستور استفاده کردم.</p> +</blockquote> +<p>بعد از نصب، لینک رو می‌دیم به برنامه تا فایل ها رو برامون +دانلود کنه.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!aria2c <span class="s1">&#39;&lt;your magnet link&gt;&#39;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>به این دقت کنید که برنامه با کامند aria2c اجرا می‌شه. ولی با به اسم aria2 -نصب می‌شه.</p> -</blockquote> -<p>و یا اینکه لینک دانلود مستقیم رو به برنامه +نصب می‌شه.</p> +</blockquote> +<p>و یا اینکه لینک دانلود مستقیم رو به برنامه wget می‌دیم. این برنامه به صورت دیفالت نصب هست و لازم نیست -کار خاصی بکنیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!wget <span class="s1">&#39;&lt;your file link&gt;&#39;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p><img src="https://bit-orbit.github.io/images/post/wgetcolab.jpg" - - - - loading="lazy" - - alt="from google to telegram as cloud" - - -></p> -<p>بعد از اینکه فایل روی سرور گوگل دانلود شد کافیه فایل -رو به تلگرام آپلود کنیم! ولی قبل‌ش چند کاری هست که باید -باهم بکنیم.</p> -<ul> -<li>فایل من زیپه پس باید استخراج کنم.</li> -<li>فایل ها توی دایرکتوری های تو در تو قرار دارند، و باید همه فایل های مورد نظرم رو که توی این مورد +کار خاصی بکنیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!wget <span class="s1">&#39;&lt;your file link&gt;&#39;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p><img src="https://bit-orbit.github.io/images/post/wgetcolab.jpg" +loading="lazy" +alt="from google to telegram as cloud" +></p> +<p>بعد از اینکه فایل روی سرور گوگل دانلود شد کافیه فایل +رو به تلگرام آپلود کنیم! ولی قبل‌ش چند کاری هست که باید +باهم بکنیم.</p> +<ul> +<li>فایل من زیپه پس باید استخراج کنم.</li> +<li>فایل ها توی دایرکتوری های تو در تو قرار دارند، و باید همه فایل های مورد نظرم رو که توی این مورد mp3 هستند رو بیارم داخل پوشه‌ای که اسکریپت دیفالت آنجا ران -می‌شه.</li> -<li>نیاز به یک کانال تلگرام دارم که فایل ها مستقیم اونجا -اپلود بشوند</li> -<li>یک توکن ربات تلگرام هم نیازه که با استفاده از دسترسی -ربات به کانال، فایل ها رو اپلود کنیم.</li> -</ul> -<p>خب برای اسختراج فایل ها خیلی ساده از کامند -<code>unzip</code> -و اسم فایل جلوی این کامند استفاده می‌کنیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!unzip &lt;your file name&gt; -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>با کامند -<code>ls</code> -نام فایلی که دانلود کردین رو می‌تونید ببینید.</p> -</blockquote> -<p><img src="https://bit-orbit.github.io/images/post/unzipcolab.jpg" - - - - loading="lazy" - - alt="uizip in colab" - - -></p> -<p>با اجرای کامند -<code>tree</code> -می‌تونید دایرکتوری های تو در تو رو ببینید.</p> -<p><img src="https://bit-orbit.github.io/images/post/treecolab.jpg" - - - - loading="lazy" - - alt="tree in colab" - - -></p> -<p>توی این مرحله من همه فایل های +می‌شه.</li> +<li>نیاز به یک کانال تلگرام دارم که فایل ها مستقیم اونجا +اپلود بشوند</li> +<li>یک توکن ربات تلگرام هم نیازه که با استفاده از دسترسی +ربات به کانال، فایل ها رو اپلود کنیم.</li> +</ul> +<p>خب برای اسختراج فایل ها خیلی ساده از کامند +<code>unzip</code> +و اسم فایل جلوی این کامند استفاده می‌کنیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!unzip &lt;your file name&gt; +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>با کامند +<code>ls</code> +نام فایلی که دانلود کردین رو می‌تونید ببینید.</p> +</blockquote> +<p><img src="https://bit-orbit.github.io/images/post/unzipcolab.jpg" +loading="lazy" +alt="uizip in colab" +></p> +<p>با اجرای کامند +<code>tree</code> +می‌تونید دایرکتوری های تو در تو رو ببینید.</p> +<p><img src="https://bit-orbit.github.io/images/post/treecolab.jpg" +loading="lazy" +alt="tree in colab" +></p> +<p>توی این مرحله من همه فایل های mp3 رو باید بیارم توی پوشه اصلی که اسکریپت‌ اپلود اجرا میشه، دلیل این کار این هست که این اسکریپ‌ت فقط فایل های mp3 -داخل همین پوشه رو پیدا و اپلود می‌کنه.</p> -<p>برای انتقال این فایل ها از پوشه های تو در تو به یک پوشه از کامند -<code>find</code> +داخل همین پوشه رو پیدا و اپلود می‌کنه.</p> +<p>برای انتقال این فایل ها از پوشه های تو در تو به یک پوشه از کامند +<code>find</code> استفاده می‌کنم و هر فایل که پیدا می‌شه رو با کامند -<code>mv</code> -به پوشه اصلی‌مون انتقال می‌دم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!find . -type f -iname <span class="s1">&#39;*mp3&#39;</span> -exec mv <span class="o">{}</span> . <span class="se">\;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>بیایید سوییچ های این دستور رو بهتون بگم</p> -<ul> -<li>type-</li> -</ul> -<p>این سوییچ انواع نوع فایل ها رو مشخص می‌کنه. مثلا شما می‌تونید دنبال یک دایرکتوری، فایل، سوکت و &hellip; بگردین</p> -<ul> -<li>iname-</li> -</ul> -<p>این سویچ که مشخص هست نام فایل رو ازتون می‌گیره که شما می‌تونید پترن ریجکس بدین بهش. +<code>mv</code> +به پوشه اصلی‌مون انتقال می‌دم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!find . -type f -iname <span class="s1">&#39;*mp3&#39;</span> -exec mv <span class="o">{}</span> . <span class="se">\;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>بیایید سوییچ های این دستور رو بهتون بگم</p> +<ul> +<li>type-</li> +</ul> +<p>این سوییچ انواع نوع فایل ها رو مشخص می‌کنه. مثلا شما می‌تونید دنبال یک دایرکتوری، فایل، سوکت و &hellip; بگردین</p> +<ul> +<li>iname-</li> +</ul> +<p>این سویچ که مشخص هست نام فایل رو ازتون می‌گیره که شما می‌تونید پترن ریجکس بدین بهش. و اون -<strong>i</strong> -مشخص می‌کنه که نام فایل به کوچیکی و بزرگی حساس نباشه.</p> -<ul> -<li>exec-</li> -</ul> -<p>یک کامندی رو ازتون می‌گیره و روی تک تک ریزالت های جست و جو اون کامند رو اجرا می‌کنه. +<strong>i</strong> +مشخص می‌کنه که نام فایل به کوچیکی و بزرگی حساس نباشه.</p> +<ul> +<li>exec-</li> +</ul> +<p>یک کامندی رو ازتون می‌گیره و روی تک تک ریزالت های جست و جو اون کامند رو اجرا می‌کنه. من کامند -<code>mv</code> +<code>mv</code> رو دادم که برای انتقال فایل استفاده می‌شه. علامت های -<strong>{}</strong> -هم یک متغییر هست که نام فایل تک به تک جای اون قرار می‌گیره.</p> -<blockquote> -<p>پایان سوییچ +<strong>{}</strong> +هم یک متغییر هست که نام فایل تک به تک جای اون قرار می‌گیره.</p> +<blockquote> +<p>پایان سوییچ exec همیشه با -<code>;\</code> -مشخص می‌شه.</p> -</blockquote> -<p>خب تا اینجا که خیلی ساده بود،‌ نه؟</p> -<p>مرحله آخر اینه که یک ربات با -<a class="link" href="https://t.me/BotFather" target="_blank" rel="noopener" - >این ربات</a> -بسازین، و بعد اون رو عضو یک کانالی که می‌سازید بکنید، کانال رو فعلا پابلیک بسازید و یک یوزرنیم بهش بدین.</p> -<p>توکن ربات رو کپی کنید و توی اسکریپت من، جایی که نوشته -<your token> +<code>;\</code> +مشخص می‌شه.</p> +</blockquote> +<p>خب تا اینجا که خیلی ساده بود،‌ نه؟</p> +<p>مرحله آخر اینه که یک ربات با +<a class="link" href="https://t.me/BotFather" target="_blank" rel="noopener" +>این ربات</a> +بسازین، و بعد اون رو عضو یک کانالی که می‌سازید بکنید، کانال رو فعلا پابلیک بسازید و یک یوزرنیم بهش بدین.</p> +<p>توکن ربات رو کپی کنید و توی اسکریپت من، جایی که نوشته +<your token> وارد کنید و توی قسمت -<chat id> -هم ایدی کانالتون رو با علامت @ اول جایگذاری کنید.</p> -<p><img src="https://bit-orbit.github.io/images/post/acdccolab.jpg" - - - - loading="lazy" - - alt="ac and dc telegram channel" - - -></p> -<blockquote> -<p>اگه کانال پرایوت دارید باید بجای ای‌دی کانال از +<chat id> +هم ایدی کانالتون رو با علامت @ اول جایگذاری کنید.</p> +<p><img src="https://bit-orbit.github.io/images/post/acdccolab.jpg" +loading="lazy" +alt="ac and dc telegram channel" +></p> +<blockquote> +<p>اگه کانال پرایوت دارید باید بجای ای‌دی کانال از chatid -استفاده کنید، که یک ای‌دی عددی هست.</p> -</blockquote> -<p><strong>تمام</strong>!‌ -کافیه برنامه رو اجرا کنید و کانال تلگرامتون رو نگاه کنید :)</p> -<blockquote> -<p>اگه خیلی زیاد دارین فایل اپلود می‌کنید احتمالا تلگرام ارور +استفاده کنید، که یک ای‌دی عددی هست.</p> +</blockquote> +<p><strong>تمام</strong>!‌ +کافیه برنامه رو اجرا کنید و کانال تلگرامتون رو نگاه کنید :)</p> +<blockquote> +<p>اگه خیلی زیاد دارین فایل اپلود می‌کنید احتمالا تلگرام ارور flood mood بهتون بده. توی این مورد کافیه فقط صبر کنید، اسکریپت از اجرا قطع نمی‌شه و روی همون فایل مجددا اجرا می‌شه -تا بالاخره فایل اپلود بشه.</p> -</blockquote> -<blockquote> -<p>هرچیزی رو می‌تونید آپلود کنید ولی دقت کنید که ربات ها محدودیت حجم اپلود دارن که نهایتش 50MB هست</p> -</blockquote> -<blockquote> -<p>اینم بگم که توی اسکریپت اگه +تا بالاخره فایل اپلود بشه.</p> +</blockquote> +<blockquote> +<p>هرچیزی رو می‌تونید آپلود کنید ولی دقت کنید که ربات ها محدودیت حجم اپلود دارن که نهایتش 50MB هست</p> +</blockquote> +<blockquote> +<p>اینم بگم که توی اسکریپت اگه mp3 -رو به چیز دیگه‌ای تغییر بدین، اسکریپت به دنبال اون پسوند ها خواهد گشت.</p> -</blockquote> - - - - cloud را به خانه خود ببرید! - https://bit-orbit.github.io/p/cloud-%D8%B1%D8%A7-%D8%A8%D9%87-%D8%AE%D8%A7%D9%86%D9%87-%D8%AE%D9%88%D8%AF-%D8%A8%D8%A8%D8%B1%DB%8C%D8%AF/ - Mon, 11 Dec 2023 01:39:34 +0330 - - https://bit-orbit.github.io/p/cloud-%D8%B1%D8%A7-%D8%A8%D9%87-%D8%AE%D8%A7%D9%86%D9%87-%D8%AE%D9%88%D8%AF-%D8%A8%D8%A8%D8%B1%DB%8C%D8%AF/ - <img src="https://bit-orbit.github.io/images/post/umbrel.webp" alt="Featured image of post cloud را به خانه خود ببرید!" /><h3 id="چطور-این-ایده-به-ذهن-من-رسید-">چطور این ایده به ذهن من رسید ؟</h3> -<p>جریان این ایده به این شکل بود که خب ما ایرانی ها اینترنت +رو به چیز دیگه‌ای تغییر بدین، اسکریپت به دنبال اون پسوند ها خواهد گشت.</p> +</blockquote>cloud را به خانه خود ببرید!https://bit-orbit.github.io/p/cloud-%D8%B1%D8%A7-%D8%A8%D9%87-%D8%AE%D8%A7%D9%86%D9%87-%D8%AE%D9%88%D8%AF-%D8%A8%D8%A8%D8%B1%DB%8C%D8%AF/Mon, 11 Dec 2023 01:39:34 +0330https://bit-orbit.github.io/p/cloud-%D8%B1%D8%A7-%D8%A8%D9%87-%D8%AE%D8%A7%D9%86%D9%87-%D8%AE%D9%88%D8%AF-%D8%A8%D8%A8%D8%B1%DB%8C%D8%AF/<img src="https://bit-orbit.github.io/images/post/umbrel.webp" alt="Featured image of post cloud را به خانه خود ببرید!" /><h3 id="چطور-این-ایده-به-ذهن-من-رسید-">چطور این ایده به ذهن من رسید ؟ +</h3><p>جریان این ایده به این شکل بود که خب ما ایرانی ها اینترنت به شدت محدود شده‌ای داریم، برای همین ما برای استفاده از اینترنت از vpn @@ -1669,100 +1679,82 @@ ip vpn رو که به هزار زحمت وصل شده بود، قطع کنیم. خب چاره چیه؟ اینکه اگه یک سیستم توی خونه یا شرکت دارین -که همیشه روشنه رو تبدیل به یک سرور کنیم :)</p> -<p>توی این فکر بودم که نیازم رو به چنین سیستم عاملی حس کردم، بعد کمی نیاز های دیگه رو بهش اضافه کردم و یه پست +که همیشه روشنه رو تبدیل به یک سرور کنیم :)</p> +<p>توی این فکر بودم که نیازم رو به چنین سیستم عاملی حس کردم، بعد کمی نیاز های دیگه رو بهش اضافه کردم و یه پست داخل تلگرام نوشتم، یکی کامنت گذاشت و خب این سیستم عامل -را معرفی کرد.</p> -<hr> -<h3 id="umbrel-چیست-">umbrel چیست ؟</h3> -<p>درواقع +را معرفی کرد.</p> +<hr> +<h3 id="umbrel-چیست-">umbrel چیست ؟ +</h3><p>درواقع umbrel یک سیستم عامل است، زمانی که شما این سیستم عامل را نصب کنید، یک صفحه وب در اختیار شما می‌گذارد و شما از طریق این صفحه درون مرورگر خود می‌توانید به سیستم دسترسی داشته باشید. برای مثلا می‌توانید سرویس های مختلف و ابزار های -مختلف را روی +مختلف را روی umbrel -نصب و یا کانفیگ کنید.</p> -<p>سرویس هایی که +نصب و یا کانفیگ کنید.</p> +<p>سرویس هایی که umbrel ارائه می‌دهد تقریبا همان سرویس هایی هستند که شما در طول -روز از نسخه های تجاری آنها استفاده می‌کنید.</p> -<p>اگه دقیق تر بخواهم بگم، این سیستم عامل یک +روز از نسخه های تجاری آنها استفاده می‌کنید.</p> +<p>اگه دقیق تر بخواهم بگم، این سیستم عامل یک store در اختیار کاربران‌ش قرار می‌ده. و خب این یکی از مهم ترین کار هایی است که این سیستم عامل انجام می‌ده چرا که اگر این استور وجود نداشت، شما شخصا باید فرایند کانفیگ و نصب سرویس ها را به عهده می‌گرفتید(این کار یک متخصص دواپس -هست، خیلی هم جالیه)</p> -<p><img src="https://bit-orbit.github.io/images/post/umbrelstore.jpg" - - - - loading="lazy" - - alt="umbrel store" - - -></p> -<hr> -<h3 id="umbrel-چه-نیازی-را-برطرف-میکند-">umbrel چه نیازی را برطرف می‌کند ؟</h3> -<p>وقتی از سرویس های تحت اینترنت استفاده می‌کنید، +هست، خیلی هم جالیه)</p> +<p><img src="https://bit-orbit.github.io/images/post/umbrelstore.jpg" +loading="lazy" +alt="umbrel store" +></p> +<hr> +<h3 id="umbrel-چه-نیازی-را-برطرف-میکند-">umbrel چه نیازی را برطرف می‌کند ؟ +</h3><p>وقتی از سرویس های تحت اینترنت استفاده می‌کنید، به احتمال زیاد شما کالای اون شرکتی هستید که ابزار را در اختیارتون قرار داده است. اگر دقت کنیم می‌بینیم که این شرکت ها بسیاری کاربر دارند و خب برای ارائه درست خدمت به کاربرانشون سرور های زیادی اجاره می‌کنند سرویس ها رو دائم اپدیت و بهتر می‌کنند -و خب سرویس های متعددی هم ارائه می‌کنند.</p> -<p>همه این کار ها نیاز به هزینه های زیادی دارند، +و خب سرویس های متعددی هم ارائه می‌کنند.</p> +<p>همه این کار ها نیاز به هزینه های زیادی دارند، بودجه این شرکت ها فقط و فقط با تبلیغات تامین نمی‌شود بلکه با فروش اطلاعات کاربرانشون(خود ما) به شرکت ها و دولت ها -تامین می‌شود.</p> -<p><img src="https://bit-orbit.github.io/images/post/zuker.jpg" - - - - loading="lazy" - - alt="zukerberg spying" - - -></p> -<p>و البته اگر حتی شما برای سرویسی که استفاده می‌کنید +تامین می‌شود.</p> +<p><img src="https://bit-orbit.github.io/images/post/zuker.jpg" +loading="lazy" +alt="zukerberg spying" +></p> +<p>و البته اگر حتی شما برای سرویسی که استفاده می‌کنید هزینه‌ای پرداخت کنید، مثلا برای استفاده از گوگل دایو ماهانه هزینه هم پرداخت کنید، باز هم مشکلاتی وجود دارد، مثلا قانونا گوگل مالک فایلی است که شما روی سرور هایش -آپلود می‌کنید.</p> -<p>در چنین مواقعی هست که اصطلاح +آپلود می‌کنید.</p> +<p>در چنین مواقعی هست که اصطلاح self-hosting سرویس ها استفاده می‌شود. به این معنی که سرویس هایی که شما روزانه از آن استفاده می‌کنید را خودتان راه اندازی -کنید. اما اینکار نیاز به دانش بالایی داره.</p> -<p>سیستم عامل +کنید. اما اینکار نیاز به دانش بالایی داره.</p> +<p>سیستم عامل umbrel این کار را ساده کرده است، با این تفاوت که قبلا شما باید برای استفاده چند ابزار روی یک سرور، باید سرور رو به درستی کانفیگ می‌کردین سپس ابزار ها را کانفیگ، و بعد سرویس ها راه اجرا می‌کردین. اما الان فقط با یک کلیک شما سرویس توییتر خود را -راه اندازی می‌کنید!</p> -<p><img src="https://bit-orbit.github.io/images/post/umbrelselfhosting.jpg" - - - - loading="lazy" - - alt="umbrel self hosting" - - -></p> -<hr> -<h3 id="umbrel-به-روی-سیستم-عامل-دسکتاپ">umbrel به روی سیستم عامل دسکتاپ</h3> -<p>نصب +راه اندازی می‌کنید!</p> +<p><img src="https://bit-orbit.github.io/images/post/umbrelselfhosting.jpg" +loading="lazy" +alt="umbrel self hosting" +></p> +<hr> +<h3 id="umbrel-به-روی-سیستم-عامل-دسکتاپ">umbrel به روی سیستم عامل دسکتاپ +</h3><p>نصب umbrel بسیاز سادهست فقط کافیه یک سیستم عامل debian رو روی سیستمتون داشته باشید، یک ترمینال باز کنید و کامند -نصب را بزنید، با یک کامند این سیستم نصب می‌شه.</p> -<p>ولی خب اگر سیستم عاملی ندارید که بر پایه +نصب را بزنید، با یک کامند این سیستم نصب می‌شه.</p> +<p>ولی خب اگر سیستم عاملی ندارید که بر پایه debain باشه، می‌شه به سادگی روی ماشین مجازی یک دبیان نصب کنید، حالت شبکه اون سیستم عامل رو @@ -1779,10 +1771,10 @@ IP debain که umbrel -را روی ان نصب کردین را وارد کنید و تمام!</p> -<hr> -<h3 id="umbrel-به-روی-رزبری-پای">umbrel به روی رزبری پای</h3> -<p>رزبری پای! یک سخت افزار کوچک که تقریبا یک کامپیوتر کامل +را روی ان نصب کردین را وارد کنید و تمام!</p> +<hr> +<h3 id="umbrel-به-روی-رزبری-پای">umbrel به روی رزبری پای +</h3><p>رزبری پای! یک سخت افزار کوچک که تقریبا یک کامپیوتر کامل است! البته که قدرت پردازش بالایی ندارد ولی در IOT استفاده زیادی دارد. با توجه به اینکه پردازنده های @@ -1794,24 +1786,18 @@ umbrel را نصب کرد، برای همین سیستم عامل umbrel یک نسخه مخصوص برای رزبری پای دارد، کافیست آن را دانلود و -به روی ربزی خود نصب کنید.</p> -<p>به این دقت کنید که خب سعنی کنید یک هارد اکسترنال به +به روی ربزی خود نصب کنید.</p> +<p>به این دقت کنید که خب سعنی کنید یک هارد اکسترنال به رزبری متصل کنید که فضای کافی برای سروریسی مانند next cloud -داشته باشید.</p> -<p><img src="https://bit-orbit.github.io/images/post/umbrelonressbery.jpg" - - - - loading="lazy" - - alt="umbrel on ressbery pi" - - -></p> -<hr> -<h3 id="umbrel-بروی-سرور-شخصی">umbrel بروی سرور شخصی</h3> -<p>به سادگی اچرای یک کامند! کافیست فقط سیستم عامل +داشته باشید.</p> +<p><img src="https://bit-orbit.github.io/images/post/umbrelonressbery.jpg" +loading="lazy" +alt="umbrel on ressbery pi" +></p> +<hr> +<h3 id="umbrel-بروی-سرور-شخصی">umbrel بروی سرور شخصی +</h3><p>به سادگی اچرای یک کامند! کافیست فقط سیستم عامل سرورتون debain و یا کلا بر پایه @@ -1820,10 +1806,10 @@ debian ubuntu باشه. کامند اجرا را وارد کنید و بعد از اتمام فرایند نصب، IP -سرور را وارد مرورگر کنید، تمام!</p> -<hr> -<h3 id="دستگاه-umbrel">دستگاه umbrel</h3> -<p>شرکت سازنده +سرور را وارد مرورگر کنید، تمام!</p> +<hr> +<h3 id="دستگاه-umbrel">دستگاه umbrel +</h3><p>شرکت سازنده umbrel به جز سیستم عامل، یک دستگاهی طراحی کرده است که به صورت پیشفرض سیستم عامل @@ -1835,35 +1821,29 @@ umbrel به روی rassbery PI استفاده می‌کنید، شما نیاز به یک فن دارید تا این دستگاه -را دائم خنک کند، از طرفی خود فن هم باید خنک شود.</p> -<p>اینجاست که این دستگاه رو برای شرکت یا خانه‌ شما مناسب‌تر -می‌کند(مطمئن باشید تبلیغ نمی‌کنم)</p> -<p><img src="https://bit-orbit.github.io/images/post/umbreldevice.jpg" - - - - loading="lazy" - - alt="umbrel device" - - -></p> -<hr> -<h3 id="umbrel-چطور-کار-میکند-">umbrel چطور کار می‌کند ؟</h3> -<p>اگه بخواهم کمی فنی‌تر وارد ماجرا بشم، همونطور که گفت +را دائم خنک کند، از طرفی خود فن هم باید خنک شود.</p> +<p>اینجاست که این دستگاه رو برای شرکت یا خانه‌ شما مناسب‌تر +می‌کند(مطمئن باشید تبلیغ نمی‌کنم)</p> +<p><img src="https://bit-orbit.github.io/images/post/umbreldevice.jpg" +loading="lazy" +alt="umbrel device" +></p> +<hr> +<h3 id="umbrel-چطور-کار-میکند-">umbrel چطور کار می‌کند ؟ +</h3><p>اگه بخواهم کمی فنی‌تر وارد ماجرا بشم، همونطور که گفت این سیستم عامل بهترین ویژگی که ارائه می‌کند store آن است. البته که اینجا store به معنی فروشگاه نیست، بلکه شبیه یک بازاری است که همه -اجناس‌ش رایگان است :)</p> -<p>سرویس های +اجناس‌ش رایگان است :)</p> +<p>سرویس های umbrel همه سرویس هایی هستند که به صورت منبع باز در اختیار همه قرار گرفته است، این سرویس ها برای اجرا شدن نیاز به شخصی دارد که دانش کافی از سرور داشته باشد و خب نحوه کانفیگ -کردن هر کدام از ابزار ها و سرویس ها را بداند.</p> -<p>دانلود و نصب هر سرویس به صورت جدگانه ممکن است به مشکلات +کردن هر کدام از ابزار ها و سرویس ها را بداند.</p> +<p>دانلود و نصب هر سرویس به صورت جدگانه ممکن است به مشکلات متعددی برخورد کند، مثلا در نصب سرویسی مثل nexcloud شما ممکن است نیاز به ورژن خاصی از @@ -1872,11 +1852,11 @@ php nginx برای اجرای اسکریپت های php -هم واقعا به اندازه زیادی دردسر دارد.</p> -<p>اینجاست که داکر وارد ماجرا می‌شود! +هم واقعا به اندازه زیادی دردسر دارد.</p> +<p>اینجاست که داکر وارد ماجرا می‌شود! umbrel -از قبل تمامی سرویس ها را داکرایز کرده است.</p> -<p>داکرایز به چه معنیست؟ +از قبل تمامی سرویس ها را داکرایز کرده است.</p> +<p>داکرایز به چه معنیست؟ درواقع به این فکر کنید که شما یک برنامه را می‌خواهید نصب کنید، این سرویس توسط سازنده آن از ورژن خاصی از زبان مشخصی، لایبراری و فایل هایی استفاده کرده است که پیشفرض @@ -1887,8 +1867,8 @@ image قرار داده است، و بعد کافیست شما آن فایل را به برنامه docker engine -بدهید، آن برنامه باید بدون هیچ مشکلی اجرا شود.</p> -<p>سیستم عامل +بدهید، آن برنامه باید بدون هیچ مشکلی اجرا شود.</p> +<p>سیستم عامل umbrel دقیقا چنین کاری می‌کند. تمامی image @@ -1896,20 +1876,14 @@ image store برای شما شما لیست می‌کند، شما کافیست که دکمه install -را بزنید، بنگ! سرویس شما آماده است :)</p> -<p><img src="https://bit-orbit.github.io/images/post/umbreldocker.jpg" - - - - loading="lazy" - - alt="umbrel dockeriz" - - -></p> -<hr> -<h3 id="امنیت">امنیت</h3> -<p>اگر +را بزنید، بنگ! سرویس شما آماده است :)</p> +<p><img src="https://bit-orbit.github.io/images/post/umbreldocker.jpg" +loading="lazy" +alt="umbrel dockeriz" +></p> +<hr> +<h3 id="امنیت">امنیت +</h3><p>اگر umbrel را به روی چیزی به جز سرور دارید، حتی اگر برای آن یک دامنه هم بگیرید، @@ -1919,8 +1893,8 @@ umbrel tor به آن متصل شوید و یا یک VPN -سرور داخل شبکه داخلی خود راه اندازی کنید.</p> -<p>البته +سرور داخل شبکه داخلی خود راه اندازی کنید.</p> +<p>البته umbrel به جز tor @@ -1930,60 +1904,54 @@ VPN tailscale که مستقیم به روی umbrel -نصب می‌شود.</p> -<p><img src="https://bit-orbit.github.io/images/post/tailscalaumbrel.jpg" - - - - loading="lazy" - - alt="tailscala umbrel" - - -></p> -<hr> -<h3 id="سرویس-های-کاربردی-umbrel">سرویس های کاربردی umbrel</h3> -<ul> -<li>matrix</li> -</ul> -<blockquote> -<p>خیلی ساده بگم، می‌تونید با این سرویس +نصب می‌شود.</p> +<p><img src="https://bit-orbit.github.io/images/post/tailscalaumbrel.jpg" +loading="lazy" +alt="tailscala umbrel" +></p> +<hr> +<h3 id="سرویس-های-کاربردی-umbrel">سرویس های کاربردی umbrel +</h3><ul> +<li>matrix</li> +</ul> +<blockquote> +<p>خیلی ساده بگم، می‌تونید با این سرویس telegtam خودتون رو راه اندازی کنید. برای اینکه بیشتر درباراه این سرویس بدونید، -<a class="link" href="https://www.wiregeek.ir/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/" target="_blank" rel="noopener" - >این پست</a> -من را بخوانید.</p> -</blockquote> -<ul> -<li>nextcloud</li> -</ul> -<blockquote> -<p>خیلی شبیه به گوگل درایو است، به جز نسخه وب +<a class="link" href="https://www.wiregeek.ir/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/" target="_blank" rel="noopener" +>این پست</a> +من را بخوانید.</p> +</blockquote> +<ul> +<li>nextcloud</li> +</ul> +<blockquote> +<p>خیلی شبیه به گوگل درایو است، به جز نسخه وب حتی یک اپ اندروید هم دارد که می‌توانید آدرس nextcloud را درون آن وارد کنید و از هرکحا به فضای خودتون دسترسی داشته باشید. و خب حتی بعنوان ادمین -برای افراد خانواده و یا شرکت‌تون اکانت بسازید، و فضای شخصی خودشان را در اختیارشان قرار بدین.</p> -</blockquote> -<ul> -<li>qbittorrent</li> -</ul> -<blockquote> -<p>اگر تورنت را می‌شناسید، قطعا این کلاینت معروف را هم باید +برای افراد خانواده و یا شرکت‌تون اکانت بسازید، و فضای شخصی خودشان را در اختیارشان قرار بدین.</p> +</blockquote> +<ul> +<li>qbittorrent</li> +</ul> +<blockquote> +<p>اگر تورنت را می‌شناسید، قطعا این کلاینت معروف را هم باید بشناسید، این کلاینت یک نسخه وب دارد که داخل فروشگاه umbrel قرار دارد. فایل های خود را برای دانلود به این کلاینت بدین و در زمانی که از اینرنت استفاده نمی‌کنید مثلا 2 تا 7 صبح -آن ها را بگذارید تا دانلود بشوند.</p> -</blockquote> -<ul> -<li>pi-hole</li> -</ul> -<blockquote> -<p>برای خلاص شدن از تبلیغات اینترنت کافیه این سرویس +آن ها را بگذارید تا دانلود بشوند.</p> +</blockquote> +<ul> +<li>pi-hole</li> +</ul> +<blockquote> +<p>برای خلاص شدن از تبلیغات اینترنت کافیه این سرویس DNS را به روی umbrel @@ -1991,13 +1959,13 @@ umbrel DHCP را تنظیم کنید که IP -این سرویس را به دیگر دستگاه های شبکه بدهد.</p> -</blockquote> -<ul> -<li>Jellyfin</li> -</ul> -<blockquote> -<p>یکی از نیاز های واقعا اساسی من، این سرویس است. +این سرویس را به دیگر دستگاه های شبکه بدهد.</p> +</blockquote> +<ul> +<li>Jellyfin</li> +</ul> +<blockquote> +<p>یکی از نیاز های واقعا اساسی من، این سرویس است. فیلم هایی که می‌بینم، و یا قرار است که ببینم‌شون رو می‌تونم با این سرویس به درستی دنبال کنم. در اصل این سرویس برای پخش کردن فیلم ها ساخته شده‌ است. @@ -2007,253 +1975,202 @@ jellyfin فیلم ها رو تماشا کنید، مثلا اگر تلویزیون هوشمند دارید کافیست از طریق مرورگر آن وارد umbrel -خود بشین.</p> -</blockquote> -<p>-snapdrop</p> -<blockquote> -<p>سرویس خیلی ساده‌ای است که برای انتقال فایل داخل -شبکه لوکال استفاده می‌شود.</p> -</blockquote> -<ul> -<li>whoogle search</li> -</ul> -<blockquote> -<p>البته +خود بشین.</p> +</blockquote> +<p>-snapdrop</p> +<blockquote> +<p>سرویس خیلی ساده‌ای است که برای انتقال فایل داخل +شبکه لوکال استفاده می‌شود.</p> +</blockquote> +<ul> +<li>whoogle search</li> +</ul> +<blockquote> +<p>البته whoogle یک موتور جست و جوی meta است، به این معنی که خودش وب را خزش نمی‌کند و از موتور های جست و جوی دیگر برای نتیجه جست و جوی شما استفاده -می‌کند.</p> -</blockquote> -<ul> -<li>LlamaGPT</li> -</ul> -<blockquote> -<p>چیزی شبیه +می‌کند.</p> +</blockquote> +<ul> +<li>LlamaGPT</li> +</ul> +<blockquote> +<p>چیزی شبیه ChatGPT -ولی افلاین و کاملا خصوصی.</p> -</blockquote> -<hr> -<h3 id="راه-اندازی-سرویس-های-شخصی">راه اندازی سرویس های شخصی</h3> -<p>خیلی از سرویس ها هنوز به +ولی افلاین و کاملا خصوصی.</p> +</blockquote> +<hr> +<h3 id="راه-اندازی-سرویس-های-شخصی">راه اندازی سرویس های شخصی +</h3><p>خیلی از سرویس ها هنوز به umbrel اضافه نشده. اضافه کردن سرویس به خود store -هم کار سختی نیستی، کافیه فقط داکرایز کردن رو بلد باشین.</p> -<ul> -<li>cache server</li> -</ul> -<p>کش سرور ها معمولا با +هم کار سختی نیستی، کافیه فقط داکرایز کردن رو بلد باشین.</p> +<ul> +<li>cache server</li> +</ul> +<p>کش سرور ها معمولا با transparent proxy بدون اینکه کاربران متوجه پروکسی بشوند پیاده سازی می‌شوند. -کار آنها کاهش مصرف ترافیک است.</p> -<p>یکی از سرویس هایی که خیلی از شرکت ها برای کاهش هزینه های +کار آنها کاهش مصرف ترافیک است.</p> +<p>یکی از سرویس هایی که خیلی از شرکت ها برای کاهش هزینه های اینرنت و یا خب برای بهبود سرعت اینترنت می‌کنند، ارائه cache server -هست.</p> -<p>خیلی خلاصه بگم کش سرور محتوایی که کاربران بازدید می‌کنند +هست.</p> +<p>خیلی خلاصه بگم کش سرور محتوایی که کاربران بازدید می‌کنند را درون خود برای مدتی و با شرایطی از پیش تعیین شده نگه ‌می‌دارد و هر بار که کاربران به محتوای قبلی درخواست بدهند، دیگر آن ریکوئست تا سایت اصلی نمی‌رود و خود -کش سرور که در شبکه داخلی است جواب آن را می‌دهد</p> -<p><img src="https://bit-orbit.github.io/images/post/cacheumber.jpg" - - - - loading="lazy" - - alt="cache server" - - -></p> -<hr> - - - - تفاوت Staticlink و Dynamiclink در زبان های برنامه نویسی - https://bit-orbit.github.io/p/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-staticlink-%D9%88-dynamiclink-%D8%AF%D8%B1-%D8%B2%D8%A8%D8%A7%D9%86-%D9%87%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C/ - Fri, 03 Nov 2023 00:21:46 +0330 - - https://bit-orbit.github.io/p/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-staticlink-%D9%88-dynamiclink-%D8%AF%D8%B1-%D8%B2%D8%A8%D8%A7%D9%86-%D9%87%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C/ - <img src="https://bit-orbit.github.io/images/post/staticvsdynamic.jpg" alt="Featured image of post تفاوت Staticlink و Dynamiclink در زبان های برنامه نویسی" /><p>یکسری مفاهیمی در برنامه نویسی داریم که من تصمیم داریم درباره آنها توی چند پست توضیح بدم، اولین مورد +کش سرور که در شبکه داخلی است جواب آن را می‌دهد</p> +<p><img src="https://bit-orbit.github.io/images/post/cacheumber.jpg" +loading="lazy" +alt="cache server" +></p> +<hr>تفاوت Staticlink و Dynamiclink در زبان های برنامه نویسیhttps://bit-orbit.github.io/p/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-staticlink-%D9%88-dynamiclink-%D8%AF%D8%B1-%D8%B2%D8%A8%D8%A7%D9%86-%D9%87%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C/Fri, 03 Nov 2023 00:21:46 +0330https://bit-orbit.github.io/p/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-staticlink-%D9%88-dynamiclink-%D8%AF%D8%B1-%D8%B2%D8%A8%D8%A7%D9%86-%D9%87%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C/<img src="https://bit-orbit.github.io/images/post/staticvsdynamic.jpg" alt="Featured image of post تفاوت Staticlink و Dynamiclink در زبان های برنامه نویسی" /><p>یکسری مفاهیمی در برنامه نویسی داریم که من تصمیم داریم درباره آنها توی چند پست توضیح بدم، اولین مورد که شامل این پست می‌شه تفاوت static linking و dynamic linking در زبان های برامه نویسی هست‌ش. مفاهیم دیگه‌ای که داخل پست های بعدی می‌نویسم چیز هایی مثل -<strong>static type, dynamic type, compiler language, interpreter language</strong> و &hellip; -خواهد بود.</p> -<hr> -<ul> -<li> -<p>دو مفهموم +<strong>static type, dynamic type, compiler language, interpreter language</strong> و &hellip; +خواهد بود.</p> +<hr> +<ul> +<li> +<p>دو مفهموم static linking و dynamic linking -چه هستند؟</p> -</li> -<li> -<p>هر کدام چه مشکلات و فوایدی دارند؟</p> -</li> -</ul> -<hr> -<p>ما در نوشتن برنامه ها معمولا از لایبراری های زیادی استفاده می‌کنیم، حتی یک برانامه ساده. +چه هستند؟</p> +</li> +<li> +<p>هر کدام چه مشکلات و فوایدی دارند؟</p> +</li> +</ul> +<hr> +<p>ما در نوشتن برنامه ها معمولا از لایبراری های زیادی استفاده می‌کنیم، حتی یک برانامه ساده. سیستم ما برای اجرای یک برنامه، کد برنامه رو به ماشین-کد تبدیل می‌کنه و بعد خط به خط -اون ها رو اجرا می‌کنه.</p> -<p>اصطلاح +اون ها رو اجرا می‌کنه.</p> +<p>اصطلاح linking به روندی گفته می‌شود که کد شما به اشیاء(کد و داده) های خارجی برای استفاده از انها اشاره کند. معمولا دو روش برای اینکار وجود دارد، static linking(لینک کردن ایستا), -dynamic linking(لینک کردن پویا).</p> -<blockquote> -<p>static linking -زمانی اتفاق می‌افتد که کامپایلر منابع خارجی(لایبراری) ها را داخل فایل اجرایی برنامه کپی کند</p> -</blockquote> -<p>در واقع در این روش برنامه شما تمامی لایبراری هایی که شما در کد استفاده کردین رو +dynamic linking(لینک کردن پویا).</p> +<blockquote> +<p>static linking +زمانی اتفاق می‌افتد که کامپایلر منابع خارجی(لایبراری) ها را داخل فایل اجرایی برنامه کپی کند</p> +</blockquote> +<p>در واقع در این روش برنامه شما تمامی لایبراری هایی که شما در کد استفاده کردین رو با کد شما درون یک فایل اجرایی کامپایل می‌کند، زمانی که برنامه اجرا شود، تمامی لایبراری های -مورد نیازش وارد مموری کامپیوتر می‌شود.</p> -<p>فایده هایی که می‌تونم بهش اشاره کنم</p> -<ul> -<li>توی منتشر کردن برنامه به دیگران، مشکل نصب کامپوننت ها رو دیگه ندارن، و به راحتی اجرا می‌کنند.</li> -<li>ممکنه برنامه اندکی سریع تر اجرا بشه</li> -</ul> -<p>این روش واقعا خوبیه ولی خب معایب خودش رو هم داره</p> -<ul> -<li>فایل اجرایی حجم زیادی‌تری نسب‌ت به لینک کردن پویا داره</li> -<li>وقتی برنامه اجرا بشه، بخاطر اینکه همه لایبراری و داده های مورد نیاز داخل همان فایل اجرایی بود، برنامه رم زیادی استفاده می‌کنه.</li> -<li>اگر لایبراری های مورد استفاده تغییر کنند، برنامه نویس باید مجدد برنامه رو کامپایل و منتشر کنه</li> -</ul> -<blockquote> -<p>dynamic linking +مورد نیازش وارد مموری کامپیوتر می‌شود.</p> +<p>فایده هایی که می‌تونم بهش اشاره کنم</p> +<ul> +<li>توی منتشر کردن برنامه به دیگران، مشکل نصب کامپوننت ها رو دیگه ندارن، و به راحتی اجرا می‌کنند.</li> +<li>ممکنه برنامه اندکی سریع تر اجرا بشه</li> +</ul> +<p>این روش واقعا خوبیه ولی خب معایب خودش رو هم داره</p> +<ul> +<li>فایل اجرایی حجم زیادی‌تری نسب‌ت به لینک کردن پویا داره</li> +<li>وقتی برنامه اجرا بشه، بخاطر اینکه همه لایبراری و داده های مورد نیاز داخل همان فایل اجرایی بود، برنامه رم زیادی استفاده می‌کنه.</li> +<li>اگر لایبراری های مورد استفاده تغییر کنند، برنامه نویس باید مجدد برنامه رو کامپایل و منتشر کنه</li> +</ul> +<blockquote> +<p>dynamic linking لینک کردن پویا زمانی است که نام لایبراری خارجی در زمان اجرا وارد فایل اجرایی می‌شود. -و اینکه فقط در این زمان است که لایبراری مورد نیاز وارد مموری می‌شود.</p> -</blockquote> -<p>در این مواقع لایبراری ها باید در سیستم عامل از قبل نصب شده باشند، و یا در موقغ نصب برنامه جدید +و اینکه فقط در این زمان است که لایبراری مورد نیاز وارد مموری می‌شود.</p> +</blockquote> +<p>در این مواقع لایبراری ها باید در سیستم عامل از قبل نصب شده باشند، و یا در موقغ نصب برنامه جدید اون لایبراری ها نصب شوند. و اگر هر تغییری در لایبرار رخ بده، برنامه نویس نیاز نیست دوباره برنامه رو -کامپایل و منتشر کند، فقط لایبراری مورد نیاز اپدیت می‌شود.</p> -<p>این روش هم مزیت های خودش رو داره، مثلا:</p> -<ul> -<li>حجم فایل های اجرایی خیلی کمتری داره</li> -<li>تا زمانی که نیاز به لایبراری نشده باشد(اگر در کد نویسی رعایت شده باشه) لایبراری ها رم اشغال نمی‌کنند.</li> -</ul> -<p>مهمترین عیبی که می‌تونه این روش داشته باشه اینه که -حذف شدن و یا خراب شدن لایبراری باعث می‌شه برنامه دیگه اجرا نشه.</p> -<hr> -<blockquote> -<p>این مطلب خلاصه‌ای کلی بود برای آشنایی با این دو مفهموم +کامپایل و منتشر کند، فقط لایبراری مورد نیاز اپدیت می‌شود.</p> +<p>این روش هم مزیت های خودش رو داره، مثلا:</p> +<ul> +<li>حجم فایل های اجرایی خیلی کمتری داره</li> +<li>تا زمانی که نیاز به لایبراری نشده باشد(اگر در کد نویسی رعایت شده باشه) لایبراری ها رم اشغال نمی‌کنند.</li> +</ul> +<p>مهمترین عیبی که می‌تونه این روش داشته باشه اینه که +حذف شدن و یا خراب شدن لایبراری باعث می‌شه برنامه دیگه اجرا نشه.</p> +<hr> +<blockquote> +<p>این مطلب خلاصه‌ای کلی بود برای آشنایی با این دو مفهموم برای مطالعه بیشتر این -<a class="link" href="https://blog.hubspot.com/website/static-vs-dynamic-linking#static-linking" target="_blank" rel="noopener" - >لینک</a> -می‌تونه مفید باشه.</p> -</blockquote> -<hr> - - - - چرا لینوکس رو دوست دارم؟ - https://bit-orbit.github.io/p/%DA%86%D8%B1%D8%A7-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D8%B1%D9%88-%D8%AF%D9%88%D8%B3%D8%AA-%D8%AF%D8%A7%D8%B1%D9%85/ - Fri, 07 Jul 2023 02:45:19 +0330 - - https://bit-orbit.github.io/p/%DA%86%D8%B1%D8%A7-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D8%B1%D9%88-%D8%AF%D9%88%D8%B3%D8%AA-%D8%AF%D8%A7%D8%B1%D9%85/ - <img src="https://bit-orbit.github.io/images/post/ill.png" alt="Featured image of post چرا لینوکس رو دوست دارم؟" /><p>دوست داشتن لینوکس واقعا دلایل زیادی داره و احتمالا هر کسی به دلیل خاصی لینوکس رو دوست داره. -مثلا یکی ممکنه آزادی‌اش رو دوست داشته باشه یکی دیگه از پکیج منیجر علاقه رو به لینوکس پیدا کرده باشه و &hellip;</p> -<p>من ترمینال قدرتمند لینوکس رو دوست دارم، چیزی که هیچوقت توی ویندوز تجربه نکرده بودم. -یکی زیبایی های ترمینال برای من ترکیب ریزالت برنامه‌های مختلف با یکدیگر و بدست اوردن نتیجه جدیده</p> -<p>مثلا بابام برای چندین پست فرستاد که هر پست شامل چهار یا پنج لینکه که من باید همه‌ش رو دانلود کنم، +<a class="link" href="https://blog.hubspot.com/website/static-vs-dynamic-linking#static-linking" target="_blank" rel="noopener" +>لینک</a> +می‌تونه مفید باشه.</p> +</blockquote> +<hr>چرا لینوکس رو دوست دارم؟https://bit-orbit.github.io/p/%DA%86%D8%B1%D8%A7-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D8%B1%D9%88-%D8%AF%D9%88%D8%B3%D8%AA-%D8%AF%D8%A7%D8%B1%D9%85/Fri, 07 Jul 2023 02:45:19 +0330https://bit-orbit.github.io/p/%DA%86%D8%B1%D8%A7-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D8%B1%D9%88-%D8%AF%D9%88%D8%B3%D8%AA-%D8%AF%D8%A7%D8%B1%D9%85/<img src="https://bit-orbit.github.io/images/post/ill.png" alt="Featured image of post چرا لینوکس رو دوست دارم؟" /><p>دوست داشتن لینوکس واقعا دلایل زیادی داره و احتمالا هر کسی به دلیل خاصی لینوکس رو دوست داره. +مثلا یکی ممکنه آزادی‌اش رو دوست داشته باشه یکی دیگه از پکیج منیجر علاقه رو به لینوکس پیدا کرده باشه و &hellip;</p> +<p>من ترمینال قدرتمند لینوکس رو دوست دارم، چیزی که هیچوقت توی ویندوز تجربه نکرده بودم. +یکی زیبایی های ترمینال برای من ترکیب ریزالت برنامه‌های مختلف با یکدیگر و بدست اوردن نتیجه جدیده</p> +<p>مثلا بابام برای چندین پست فرستاد که هر پست شامل چهار یا پنج لینکه که من باید همه‌ش رو دانلود کنم، درحالت عادی اگر روی ویندوز بودم خب باید هر لینک رو کپی می‌کردم و بعد وارد دانلود منیجر می‌کردم برای دانلود. -ولی خب ما مجهزیم به قدرت ترمینال لینوکس :)</p> -<p><img src="https://bit-orbit.github.io/images/post/tfiles.jpg" - - - - loading="lazy" - - alt="telegram-post-contain-links" - - -></p> -<p>خب من کاری که می‌کنم اینه که متن پست ها رو کپی می‌کنم و توی یک فایل می‌ریزم -اینطوری هم متن های فارسی پست ها و هم لینک های فایل ها رو دارم</p> -<p><img src="https://bit-orbit.github.io/images/post/ffiles2.jpg" - - - - loading="lazy" - - alt="save-links-to-file" - - -></p> -<p>بعد با دستور +ولی خب ما مجهزیم به قدرت ترمینال لینوکس :)</p> +<p><img src="https://bit-orbit.github.io/images/post/tfiles.jpg" +loading="lazy" +alt="telegram-post-contain-links" +></p> +<p>خب من کاری که می‌کنم اینه که متن پست ها رو کپی می‌کنم و توی یک فایل می‌ریزم +اینطوری هم متن های فارسی پست ها و هم لینک های فایل ها رو دارم</p> +<p><img src="https://bit-orbit.github.io/images/post/ffiles2.jpg" +loading="lazy" +alt="save-links-to-file" +></p> +<p>بعد با دستور grep با یک پترن ساده regex همه لینک ها رو از متن های فارسی جدا می‌کنم و داخل یک فایل دیگه می‌ریزم. این پترن به این شکل هست که می‌گه هر خطی که اولش http -باشه رو پیدا کن.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">cat dl.txt <span class="p">|</span> egrep <span class="s1">&#39;^http&#39;</span> &gt; dl.lst -</span></span></code></pre></td></tr></table> -</div> -</div><p><img src="https://bit-orbit.github.io/images/post/tfiles3.jpg" - - - - loading="lazy" - - alt="save-links-to-file" - - -></p> -<p>و تمام، همه لینک ها رو یکجا آماده دارم، حالا کافیه با یک دستور همه فایل -ها رو دانلود کنم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">wget -c -i dl.lst -</span></span></code></pre></td></tr></table> -</div> -</div><p>خب بعد از دانلود شدن فایل ها، یک مشکلی که دارم این هست که هر پست شامل تمامی درس های یکی از فصل هایی هست +باشه رو پیدا کن.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">cat dl.txt <span class="p">|</span> egrep <span class="s1">&#39;^http&#39;</span> &gt; dl.lst +</span></span></code></pre></td></tr></table> +</div> +</div><p><img src="https://bit-orbit.github.io/images/post/tfiles3.jpg" +loading="lazy" +alt="save-links-to-file" +></p> +<p>و تمام، همه لینک ها رو یکجا آماده دارم، حالا کافیه با یک دستور همه فایل +ها رو دانلود کنم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">wget -c -i dl.lst +</span></span></code></pre></td></tr></table> +</div> +</div><p>خب بعد از دانلود شدن فایل ها، یک مشکلی که دارم این هست که هر پست شامل تمامی درس های یکی از فصل هایی هست که بابام می‌بینه. من باید فایل ها رو براساس فصل هاشون داخل دایرکتوری های مشخص خودش قرار بدم. اینم یک راهکار خیلی ساده داره. اسم فایل ها به این شکل هست که فصل رو داخلش نوشته -<code>Option402-J04-01.mp4</code> -کافیه با یه وایلد کارت هر فصل رو جدا کنم و داخل دایرکتوری خودش بریزم</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span><span class="lnt">3 -</span><span class="lnt">4 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mv Option402-J04* j04 -</span></span><span class="line"><span class="cl">mv Option402-J05* j05 -</span></span><span class="line"><span class="cl">mv Option402-J06* j06 -</span></span><span class="line"><span class="cl">mv Option402-J07* j07 -</span></span></code></pre></td></tr></table> -</div> -</div><p>این یک مثال ساده‌ای بود که می‌تونستم بزنم برای -توضیح اینکه چرا لینوکس برام جذاب تره و کارم رو ساده تر می‌کنه.</p> - - - - Blade Runner - https://bit-orbit.github.io/p/blade-runner/ - Sat, 24 Jun 2023 22:02:35 +0330 - - https://bit-orbit.github.io/p/blade-runner/ - <img src="https://bit-orbit.github.io/p/blade-runner/37.png" alt="Featured image of post Blade Runner" /><p>پشت فیلم +<code>Option402-J04-01.mp4</code> +کافیه با یه وایلد کارت هر فصل رو جدا کنم و داخل دایرکتوری خودش بریزم</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mv Option402-J04* j04 +</span></span><span class="line"><span class="cl">mv Option402-J05* j05 +</span></span><span class="line"><span class="cl">mv Option402-J06* j06 +</span></span><span class="line"><span class="cl">mv Option402-J07* j07 +</span></span></code></pre></td></tr></table> +</div> +</div><p>این یک مثال ساده‌ای بود که می‌تونستم بزنم برای +توضیح اینکه چرا لینوکس برام جذاب تره و کارم رو ساده تر می‌کنه.</p>Blade Runnerhttps://bit-orbit.github.io/p/blade-runner/Sat, 24 Jun 2023 22:02:35 +0330https://bit-orbit.github.io/p/blade-runner/<img src="https://bit-orbit.github.io/p/blade-runner/37.png" alt="Featured image of post Blade Runner" /><p>پشت فیلم blade runner ایده جذابی هست که من خیلی دوست دارم. کلیت داستان به این شکل هست که دنیا تونسته از انسان @@ -2261,14 +2178,14 @@ clone هایی بسازه و از اونها برای پیشرفت و کار های سخت استفاده کنه، مثلا توی جنگ بجای سرباز واقعی استفاده می‌شن، اگه قراره ماموریت خطرناکی مثل اکتشاف توی فضا و یا دستگیری یک مجرم خطرناک کسی رو بفرستن، -چی بهتر از یه کلون که جون انسان واقعی به خطر نیوفته؟</p> -<p>اما از جایی به بعد کلون ها تغییر می‌کنند و دیگه برده بودن رو قبول نمی‌کنن، +چی بهتر از یه کلون که جون انسان واقعی به خطر نیوفته؟</p> +<p>اما از جایی به بعد کلون ها تغییر می‌کنند و دیگه برده بودن رو قبول نمی‌کنن، سعی می‌کنن فرار کنند و دستور انسان ها سرپیچی کنند. اما اینکار هم فایده‌ای نداره، چون انسان ها کلون های دیگه‌ای می‌سازند که کارشون پیدا کردن و کشتن کلون هایی هست که فرار کردن، به این شغل که مامولا شغل کلون ها هست می‌گن -blade runner.</p> -<p>این روند یکم شبیه یک +blade runner.</p> +<p>این روند یکم شبیه یک loop هست، ساخت clone @@ -2279,1177 +2196,831 @@ clone clone ها فرار می‌کنند و دوباره clone -های دیگه‌ای میان سراغ اینها.</p> -<p>باید بگم که +های دیگه‌ای میان سراغ اینها.</p> +<p>باید بگم که balde runner چندین سری فیلم هست، -حتی یک سریال انیمیشنی هم داره.</p> -<hr> -<p><img src="https://bit-orbit.github.io/p/blade-runner/1.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/1_hu18203028458765281991.png 480w, https://bit-orbit.github.io/p/blade-runner/1_hu640960131545633292.png 1024w" - loading="lazy" - - alt="blade runner 1" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/2.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/2_hu4178962394613322091.png 480w, https://bit-orbit.github.io/p/blade-runner/2_hu16711218221384379251.png 1024w" - loading="lazy" - - alt="blade runner 2" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/3.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/3_hu5609019162047173584.png 480w, https://bit-orbit.github.io/p/blade-runner/3_hu10217638583400693183.png 1024w" - loading="lazy" - - alt="blade runner 3" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/4.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/4_hu5282573958070938966.png 480w, https://bit-orbit.github.io/p/blade-runner/4_hu4482592906922858564.png 1024w" - loading="lazy" - - alt="blade runner 4" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/5.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/5_hu2506888640986000463.png 480w, https://bit-orbit.github.io/p/blade-runner/5_hu14496052156153432936.png 1024w" - loading="lazy" - - alt="blade runner 5" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/6.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/6_hu10830826830489925101.png 480w, https://bit-orbit.github.io/p/blade-runner/6_hu6736199323060390766.png 1024w" - loading="lazy" - - alt="blade runner 6" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/7.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/7_hu7985689059426135154.png 480w, https://bit-orbit.github.io/p/blade-runner/7_hu11432963024129874521.png 1024w" - loading="lazy" - - alt="blade runner 7" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/8.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/8_hu4012554199744743050.png 480w, https://bit-orbit.github.io/p/blade-runner/8_hu8202217306378929282.png 1024w" - loading="lazy" - - alt="blade runner 8" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/9.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/9_hu15196113375778977307.png 480w, https://bit-orbit.github.io/p/blade-runner/9_hu15870904207399095068.png 1024w" - loading="lazy" - - alt="blade runner 9" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/10.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/10_hu12618574808288748938.png 480w, https://bit-orbit.github.io/p/blade-runner/10_hu3754466868428096437.png 1024w" - loading="lazy" - - alt="blade runner 10" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/11.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/11_hu11410618264927909791.png 480w, https://bit-orbit.github.io/p/blade-runner/11_hu4277845410507795162.png 1024w" - loading="lazy" - - alt="blade runner 11" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/12.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/12_hu3215006993020594134.png 480w, https://bit-orbit.github.io/p/blade-runner/12_hu14782705020137182551.png 1024w" - loading="lazy" - - alt="blade runner 12" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/13.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/13_hu4232052633755214396.png 480w, https://bit-orbit.github.io/p/blade-runner/13_hu1346923444079228958.png 1024w" - loading="lazy" - - alt="blade runner 13" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/14.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/14_hu6781889161464007647.png 480w, https://bit-orbit.github.io/p/blade-runner/14_hu5858317841221136074.png 1024w" - loading="lazy" - - alt="blade runner 14" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/15.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/15_hu10739297907183961586.png 480w, https://bit-orbit.github.io/p/blade-runner/15_hu4676734704812020313.png 1024w" - loading="lazy" - - alt="blade runner 15" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/16.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/16_hu3808253778841193055.png 480w, https://bit-orbit.github.io/p/blade-runner/16_hu5492897964783807333.png 1024w" - loading="lazy" - - alt="blade runner 16" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/17.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/17_hu15906018156274302476.png 480w, https://bit-orbit.github.io/p/blade-runner/17_hu9261422108566517811.png 1024w" - loading="lazy" - - alt="blade runner 17" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/18.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/18_hu15131318335002406021.png 480w, https://bit-orbit.github.io/p/blade-runner/18_hu2714024725375581381.png 1024w" - loading="lazy" - - alt="blade runner 18" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/19.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/19_hu15917001927459466555.png 480w, https://bit-orbit.github.io/p/blade-runner/19_hu7138664998729935235.png 1024w" - loading="lazy" - - alt="blade runner 19" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/20.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/20_hu12851721143569399755.png 480w, https://bit-orbit.github.io/p/blade-runner/20_hu17782052457319326651.png 1024w" - loading="lazy" - - alt="blade runner 20" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/21.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/21_hu11834245209561571419.png 480w, https://bit-orbit.github.io/p/blade-runner/21_hu14820715527791141841.png 1024w" - loading="lazy" - - alt="blade runner 21" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/22.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/22_hu9465551851937469165.png 480w, https://bit-orbit.github.io/p/blade-runner/22_hu11135687547915466301.png 1024w" - loading="lazy" - - alt="blade runner 22" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/23.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/23_hu8775898688435684639.png 480w, https://bit-orbit.github.io/p/blade-runner/23_hu12045446326187223604.png 1024w" - loading="lazy" - - alt="blade runner 23" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/24.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/24_hu11294028215810436705.png 480w, https://bit-orbit.github.io/p/blade-runner/24_hu18231892368219913679.png 1024w" - loading="lazy" - - alt="blade runner 24" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/25.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/25_hu8761348975154971042.png 480w, https://bit-orbit.github.io/p/blade-runner/25_hu11619135011095841436.png 1024w" - loading="lazy" - - alt="blade runner 25" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/26.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/26_hu12440180780663804535.png 480w, https://bit-orbit.github.io/p/blade-runner/26_hu5713483712705107807.png 1024w" - loading="lazy" - - alt="blade runner 26" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/27.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/27_hu9071525693992834621.png 480w, https://bit-orbit.github.io/p/blade-runner/27_hu7726486096834551096.png 1024w" - loading="lazy" - - alt="blade runner 27" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/28.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/28_hu11320496635163544245.png 480w, https://bit-orbit.github.io/p/blade-runner/28_hu11331001432335218241.png 1024w" - loading="lazy" - - alt="blade runner 28" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/29.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/29_hu17546110262762349629.png 480w, https://bit-orbit.github.io/p/blade-runner/29_hu7015101591688597602.png 1024w" - loading="lazy" - - alt="blade runner 29" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/30.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/30_hu15249851528067745990.png 480w, https://bit-orbit.github.io/p/blade-runner/30_hu8044846373972211628.png 1024w" - loading="lazy" - - alt="blade runner 30" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/31.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/31_hu16636699931134635318.png 480w, https://bit-orbit.github.io/p/blade-runner/31_hu3359540856338574783.png 1024w" - loading="lazy" - - alt="blade runner 31" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/32.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/32_hu10145312805175734704.png 480w, https://bit-orbit.github.io/p/blade-runner/32_hu3309584826581134280.png 1024w" - loading="lazy" - - alt="blade runner 32" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/33.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/33_hu337644318686516906.png 480w, https://bit-orbit.github.io/p/blade-runner/33_hu14654175255314197039.png 1024w" - loading="lazy" - - alt="blade runner 33" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/34.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/34_hu15189323557078556399.png 480w, https://bit-orbit.github.io/p/blade-runner/34_hu16363268471537170182.png 1024w" - loading="lazy" - - alt="blade runner 34" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/35.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/35_hu8322119150285037296.png 480w, https://bit-orbit.github.io/p/blade-runner/35_hu533810586026253092.png 1024w" - loading="lazy" - - alt="blade runner 35" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/36.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/36_hu4862540847732595212.png 480w, https://bit-orbit.github.io/p/blade-runner/36_hu17551721700503129844.png 1024w" - loading="lazy" - - alt="blade runner 36" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/37.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/37_hu13555456324091659085.png 480w, https://bit-orbit.github.io/p/blade-runner/37_hu17478514556830379674.png 1024w" - loading="lazy" - - alt="blade runner 37" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/38.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/38_hu12194633382067857783.png 480w, https://bit-orbit.github.io/p/blade-runner/38_hu2277895787698302016.png 1024w" - loading="lazy" - - alt="blade runner 38" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/39.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/39_hu12337681532498135604.png 480w, https://bit-orbit.github.io/p/blade-runner/39_hu5115865521917594662.png 1024w" - loading="lazy" - - alt="blade runner 39" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/40.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/40_hu3124527645647928171.png 480w, https://bit-orbit.github.io/p/blade-runner/40_hu5916975982205344367.png 1024w" - loading="lazy" - - alt="blade runner 40" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/41.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/41_hu14134359656351733033.png 480w, https://bit-orbit.github.io/p/blade-runner/41_hu13715766593884564825.png 1024w" - loading="lazy" - - alt="blade runner 41" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/42.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/42_hu6373522469713299337.png 480w, https://bit-orbit.github.io/p/blade-runner/42_hu16712772082313524707.png 1024w" - loading="lazy" - - alt="blade runner 42" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/43.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/43_hu133280902362998775.png 480w, https://bit-orbit.github.io/p/blade-runner/43_hu9137137028374640853.png 1024w" - loading="lazy" - - alt="blade runner 43" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/44.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/44_hu6510622330663816696.png 480w, https://bit-orbit.github.io/p/blade-runner/44_hu6165608683585085195.png 1024w" - loading="lazy" - - alt="blade runner 44" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/45.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/45_hu1699412177626236516.png 480w, https://bit-orbit.github.io/p/blade-runner/45_hu1979519427043577753.png 1024w" - loading="lazy" - - alt="blade runner 45" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/46.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/46_hu16083489802403887560.png 480w, https://bit-orbit.github.io/p/blade-runner/46_hu8408815140995077934.png 1024w" - loading="lazy" - - alt="blade runner 46" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/47.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/47_hu18398919809836666953.png 480w, https://bit-orbit.github.io/p/blade-runner/47_hu2667296751264683546.png 1024w" - loading="lazy" - - alt="blade runner 47" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/48.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/48_hu14993772505347617599.png 480w, https://bit-orbit.github.io/p/blade-runner/48_hu10682812941153677363.png 1024w" - loading="lazy" - - alt="blade runner 48" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/49.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/49_hu16411694887249070859.png 480w, https://bit-orbit.github.io/p/blade-runner/49_hu16240301775673342794.png 1024w" - loading="lazy" - - alt="blade runner 49" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/50.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/50_hu8503803600664312732.png 480w, https://bit-orbit.github.io/p/blade-runner/50_hu12368446158085776281.png 1024w" - loading="lazy" - - alt="blade runner 50" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/51.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/51_hu11126887880842881081.png 480w, https://bit-orbit.github.io/p/blade-runner/51_hu233188108159875576.png 1024w" - loading="lazy" - - alt="blade runner 51" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/52.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/52_hu11431950899460230050.png 480w, https://bit-orbit.github.io/p/blade-runner/52_hu7298926683432624726.png 1024w" - loading="lazy" - - alt="blade runner 52" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/53.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/53_hu13228039747128200342.png 480w, https://bit-orbit.github.io/p/blade-runner/53_hu16111526649218680588.png 1024w" - loading="lazy" - - alt="blade runner 53" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/54.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/54_hu9342162793044175734.png 480w, https://bit-orbit.github.io/p/blade-runner/54_hu15024151033432483079.png 1024w" - loading="lazy" - - alt="blade runner 54" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/55.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/55_hu12321936001541439659.png 480w, https://bit-orbit.github.io/p/blade-runner/55_hu7429903137234845210.png 1024w" - loading="lazy" - - alt="blade runner 55" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/56.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/56_hu3324342216882080000.png 480w, https://bit-orbit.github.io/p/blade-runner/56_hu13900367100943885646.png 1024w" - loading="lazy" - - alt="blade runner 56" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/57.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/57_hu10899987809346777574.png 480w, https://bit-orbit.github.io/p/blade-runner/57_hu1833878132194999715.png 1024w" - loading="lazy" - - alt="blade runner 57" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/58.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/58_hu2749719750675113407.png 480w, https://bit-orbit.github.io/p/blade-runner/58_hu13712655613043964122.png 1024w" - loading="lazy" - - alt="blade runner 58" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/59.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/59_hu1398855735980946821.png 480w, https://bit-orbit.github.io/p/blade-runner/59_hu1461339919111804308.png 1024w" - loading="lazy" - - alt="blade runner 59" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/60.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/60_hu13599966525084938849.png 480w, https://bit-orbit.github.io/p/blade-runner/60_hu4217891253397448815.png 1024w" - loading="lazy" - - alt="blade runner 60" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/61.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/61_hu2703060499403853830.png 480w, https://bit-orbit.github.io/p/blade-runner/61_hu8604228838678676103.png 1024w" - loading="lazy" - - alt="blade runner 61" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/62.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/62_hu3743067860640072021.png 480w, https://bit-orbit.github.io/p/blade-runner/62_hu13247994899625272284.png 1024w" - loading="lazy" - - alt="blade runner 62" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/63.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/63_hu5521921960590566458.png 480w, https://bit-orbit.github.io/p/blade-runner/63_hu8576871411060827418.png 1024w" - loading="lazy" - - alt="blade runner 63" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/64.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/64_hu7077094138994732059.png 480w, https://bit-orbit.github.io/p/blade-runner/64_hu11639906649533939474.png 1024w" - loading="lazy" - - alt="blade runner 64" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/65.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/65_hu16953234321408972377.png 480w, https://bit-orbit.github.io/p/blade-runner/65_hu3408024607592661017.png 1024w" - loading="lazy" - - alt="blade runner 65" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/66.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/66_hu11459712331105937605.png 480w, https://bit-orbit.github.io/p/blade-runner/66_hu4644537247085346227.png 1024w" - loading="lazy" - - alt="blade runner 66" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/67.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/67_hu9383573372408392686.png 480w, https://bit-orbit.github.io/p/blade-runner/67_hu10769327503186556723.png 1024w" - loading="lazy" - - alt="blade runner 67" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/68.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/68_hu2177780438990668669.png 480w, https://bit-orbit.github.io/p/blade-runner/68_hu18386143906580524418.png 1024w" - loading="lazy" - - alt="blade runner 68" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/69.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/69_hu3922140427780096899.png 480w, https://bit-orbit.github.io/p/blade-runner/69_hu1155080904206925861.png 1024w" - loading="lazy" - - alt="blade runner 69" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/70.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/70_hu15159042566928364666.png 480w, https://bit-orbit.github.io/p/blade-runner/70_hu5835195235087609063.png 1024w" - loading="lazy" - - alt="blade runner 70" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/71.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/71_hu5520131513925869815.png 480w, https://bit-orbit.github.io/p/blade-runner/71_hu766506351619066374.png 1024w" - loading="lazy" - - alt="blade runner 71" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/72.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/72_hu3430491252945314972.png 480w, https://bit-orbit.github.io/p/blade-runner/72_hu15766962828315836446.png 1024w" - loading="lazy" - - alt="blade runner 72" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/73.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/73_hu14789660611827108309.png 480w, https://bit-orbit.github.io/p/blade-runner/73_hu17840206115327690890.png 1024w" - loading="lazy" - - alt="blade runner 73" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/74.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/74_hu1245649257657215050.png 480w, https://bit-orbit.github.io/p/blade-runner/74_hu14591817395085345655.png 1024w" - loading="lazy" - - alt="blade runner 74" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/75.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/75_hu12103176185954374702.png 480w, https://bit-orbit.github.io/p/blade-runner/75_hu11912668943504722471.png 1024w" - loading="lazy" - - alt="blade runner 75" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/76.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/76_hu17826661668559987462.png 480w, https://bit-orbit.github.io/p/blade-runner/76_hu1468709210677229705.png 1024w" - loading="lazy" - - alt="blade runner 76" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/77.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/77_hu6844293341813334299.png 480w, https://bit-orbit.github.io/p/blade-runner/77_hu17430500291569764572.png 1024w" - loading="lazy" - - alt="blade runner 77" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/78.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/78_hu10710751401961735765.png 480w, https://bit-orbit.github.io/p/blade-runner/78_hu16816878939617923975.png 1024w" - loading="lazy" - - alt="blade runner 78" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/79.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/79_hu13480399198147170633.png 480w, https://bit-orbit.github.io/p/blade-runner/79_hu11463438054987216457.png 1024w" - loading="lazy" - - alt="blade runner 79" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/80.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/80_hu15861010109584580541.png 480w, https://bit-orbit.github.io/p/blade-runner/80_hu185002805574539294.png 1024w" - loading="lazy" - - alt="blade runner 80" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/81.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/81_hu7746682545453067471.png 480w, https://bit-orbit.github.io/p/blade-runner/81_hu8795496398668933935.png 1024w" - loading="lazy" - - alt="blade runner 81" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -></p> - - - - fsdfd - https://bit-orbit.github.io/gallery/rick-and-morty/ - Sat, 01 Oct 2022 01:46:23 +0330 - - https://bit-orbit.github.io/gallery/rick-and-morty/ - <img src="https://bit-orbit.github.io/images/post/matrix.jpg" alt="Featured image of post fsdfd" /><p><img src="https://bit-orbit.github.io/gallery/rick-and-morty/a.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/gallery/rick-and-morty/a_hu18203028458765281991.png 480w, https://bit-orbit.github.io/gallery/rick-and-morty/a_hu640960131545633292.png 1024w" - loading="lazy" - - alt="p" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> - - - - ارتباط غیر متمرکز و در لحظه با پروتکل ماتریکس - https://bit-orbit.github.io/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/ - Sat, 01 Oct 2022 01:46:23 +0330 - - https://bit-orbit.github.io/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/ - <img src="https://bit-orbit.github.io/images/post/matrix.jpg" alt="Featured image of post ارتباط غیر متمرکز و در لحظه با پروتکل ماتریکس" /><p>ماتریکس یک پروتکل آزاد است! به این معنی که شما میتوانید از این پروتکل برای +حتی یک سریال انیمیشنی هم داره.</p> +<hr> +<p><img src="https://bit-orbit.github.io/p/blade-runner/1.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/1_hu18203028458765281991.png 480w, https://bit-orbit.github.io/p/blade-runner/1_hu640960131545633292.png 1024w" +loading="lazy" +alt="blade runner 1" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/2.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/2_hu4178962394613322091.png 480w, https://bit-orbit.github.io/p/blade-runner/2_hu16711218221384379251.png 1024w" +loading="lazy" +alt="blade runner 2" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/3.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/3_hu5609019162047173584.png 480w, https://bit-orbit.github.io/p/blade-runner/3_hu10217638583400693183.png 1024w" +loading="lazy" +alt="blade runner 3" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/4.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/4_hu5282573958070938966.png 480w, https://bit-orbit.github.io/p/blade-runner/4_hu4482592906922858564.png 1024w" +loading="lazy" +alt="blade runner 4" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/5.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/5_hu2506888640986000463.png 480w, https://bit-orbit.github.io/p/blade-runner/5_hu14496052156153432936.png 1024w" +loading="lazy" +alt="blade runner 5" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/6.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/6_hu10830826830489925101.png 480w, https://bit-orbit.github.io/p/blade-runner/6_hu6736199323060390766.png 1024w" +loading="lazy" +alt="blade runner 6" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/7.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/7_hu7985689059426135154.png 480w, https://bit-orbit.github.io/p/blade-runner/7_hu11432963024129874521.png 1024w" +loading="lazy" +alt="blade runner 7" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/8.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/8_hu4012554199744743050.png 480w, https://bit-orbit.github.io/p/blade-runner/8_hu8202217306378929282.png 1024w" +loading="lazy" +alt="blade runner 8" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/9.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/9_hu15196113375778977307.png 480w, https://bit-orbit.github.io/p/blade-runner/9_hu15870904207399095068.png 1024w" +loading="lazy" +alt="blade runner 9" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/10.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/10_hu12618574808288748938.png 480w, https://bit-orbit.github.io/p/blade-runner/10_hu3754466868428096437.png 1024w" +loading="lazy" +alt="blade runner 10" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/11.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/11_hu11410618264927909791.png 480w, https://bit-orbit.github.io/p/blade-runner/11_hu4277845410507795162.png 1024w" +loading="lazy" +alt="blade runner 11" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/12.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/12_hu3215006993020594134.png 480w, https://bit-orbit.github.io/p/blade-runner/12_hu14782705020137182551.png 1024w" +loading="lazy" +alt="blade runner 12" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/13.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/13_hu4232052633755214396.png 480w, https://bit-orbit.github.io/p/blade-runner/13_hu1346923444079228958.png 1024w" +loading="lazy" +alt="blade runner 13" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/14.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/14_hu6781889161464007647.png 480w, https://bit-orbit.github.io/p/blade-runner/14_hu5858317841221136074.png 1024w" +loading="lazy" +alt="blade runner 14" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/15.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/15_hu10739297907183961586.png 480w, https://bit-orbit.github.io/p/blade-runner/15_hu4676734704812020313.png 1024w" +loading="lazy" +alt="blade runner 15" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/16.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/16_hu3808253778841193055.png 480w, https://bit-orbit.github.io/p/blade-runner/16_hu5492897964783807333.png 1024w" +loading="lazy" +alt="blade runner 16" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/17.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/17_hu15906018156274302476.png 480w, https://bit-orbit.github.io/p/blade-runner/17_hu9261422108566517811.png 1024w" +loading="lazy" +alt="blade runner 17" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/18.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/18_hu15131318335002406021.png 480w, https://bit-orbit.github.io/p/blade-runner/18_hu2714024725375581381.png 1024w" +loading="lazy" +alt="blade runner 18" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/19.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/19_hu15917001927459466555.png 480w, https://bit-orbit.github.io/p/blade-runner/19_hu7138664998729935235.png 1024w" +loading="lazy" +alt="blade runner 19" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/20.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/20_hu12851721143569399755.png 480w, https://bit-orbit.github.io/p/blade-runner/20_hu17782052457319326651.png 1024w" +loading="lazy" +alt="blade runner 20" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/21.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/21_hu11834245209561571419.png 480w, https://bit-orbit.github.io/p/blade-runner/21_hu14820715527791141841.png 1024w" +loading="lazy" +alt="blade runner 21" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/22.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/22_hu9465551851937469165.png 480w, https://bit-orbit.github.io/p/blade-runner/22_hu11135687547915466301.png 1024w" +loading="lazy" +alt="blade runner 22" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/23.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/23_hu8775898688435684639.png 480w, https://bit-orbit.github.io/p/blade-runner/23_hu12045446326187223604.png 1024w" +loading="lazy" +alt="blade runner 23" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/24.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/24_hu11294028215810436705.png 480w, https://bit-orbit.github.io/p/blade-runner/24_hu18231892368219913679.png 1024w" +loading="lazy" +alt="blade runner 24" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/25.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/25_hu8761348975154971042.png 480w, https://bit-orbit.github.io/p/blade-runner/25_hu11619135011095841436.png 1024w" +loading="lazy" +alt="blade runner 25" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/26.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/26_hu12440180780663804535.png 480w, https://bit-orbit.github.io/p/blade-runner/26_hu5713483712705107807.png 1024w" +loading="lazy" +alt="blade runner 26" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/27.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/27_hu9071525693992834621.png 480w, https://bit-orbit.github.io/p/blade-runner/27_hu7726486096834551096.png 1024w" +loading="lazy" +alt="blade runner 27" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/28.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/28_hu11320496635163544245.png 480w, https://bit-orbit.github.io/p/blade-runner/28_hu11331001432335218241.png 1024w" +loading="lazy" +alt="blade runner 28" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/29.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/29_hu17546110262762349629.png 480w, https://bit-orbit.github.io/p/blade-runner/29_hu7015101591688597602.png 1024w" +loading="lazy" +alt="blade runner 29" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/30.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/30_hu15249851528067745990.png 480w, https://bit-orbit.github.io/p/blade-runner/30_hu8044846373972211628.png 1024w" +loading="lazy" +alt="blade runner 30" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/31.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/31_hu16636699931134635318.png 480w, https://bit-orbit.github.io/p/blade-runner/31_hu3359540856338574783.png 1024w" +loading="lazy" +alt="blade runner 31" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/32.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/32_hu10145312805175734704.png 480w, https://bit-orbit.github.io/p/blade-runner/32_hu3309584826581134280.png 1024w" +loading="lazy" +alt="blade runner 32" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/33.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/33_hu337644318686516906.png 480w, https://bit-orbit.github.io/p/blade-runner/33_hu14654175255314197039.png 1024w" +loading="lazy" +alt="blade runner 33" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/34.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/34_hu15189323557078556399.png 480w, https://bit-orbit.github.io/p/blade-runner/34_hu16363268471537170182.png 1024w" +loading="lazy" +alt="blade runner 34" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/35.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/35_hu8322119150285037296.png 480w, https://bit-orbit.github.io/p/blade-runner/35_hu533810586026253092.png 1024w" +loading="lazy" +alt="blade runner 35" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/36.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/36_hu4862540847732595212.png 480w, https://bit-orbit.github.io/p/blade-runner/36_hu17551721700503129844.png 1024w" +loading="lazy" +alt="blade runner 36" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/37.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/37_hu13555456324091659085.png 480w, https://bit-orbit.github.io/p/blade-runner/37_hu17478514556830379674.png 1024w" +loading="lazy" +alt="blade runner 37" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/38.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/38_hu12194633382067857783.png 480w, https://bit-orbit.github.io/p/blade-runner/38_hu2277895787698302016.png 1024w" +loading="lazy" +alt="blade runner 38" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/39.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/39_hu12337681532498135604.png 480w, https://bit-orbit.github.io/p/blade-runner/39_hu5115865521917594662.png 1024w" +loading="lazy" +alt="blade runner 39" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/40.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/40_hu3124527645647928171.png 480w, https://bit-orbit.github.io/p/blade-runner/40_hu5916975982205344367.png 1024w" +loading="lazy" +alt="blade runner 40" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/41.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/41_hu14134359656351733033.png 480w, https://bit-orbit.github.io/p/blade-runner/41_hu13715766593884564825.png 1024w" +loading="lazy" +alt="blade runner 41" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/42.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/42_hu6373522469713299337.png 480w, https://bit-orbit.github.io/p/blade-runner/42_hu16712772082313524707.png 1024w" +loading="lazy" +alt="blade runner 42" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/43.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/43_hu133280902362998775.png 480w, https://bit-orbit.github.io/p/blade-runner/43_hu9137137028374640853.png 1024w" +loading="lazy" +alt="blade runner 43" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/44.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/44_hu6510622330663816696.png 480w, https://bit-orbit.github.io/p/blade-runner/44_hu6165608683585085195.png 1024w" +loading="lazy" +alt="blade runner 44" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/45.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/45_hu1699412177626236516.png 480w, https://bit-orbit.github.io/p/blade-runner/45_hu1979519427043577753.png 1024w" +loading="lazy" +alt="blade runner 45" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/46.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/46_hu16083489802403887560.png 480w, https://bit-orbit.github.io/p/blade-runner/46_hu8408815140995077934.png 1024w" +loading="lazy" +alt="blade runner 46" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/47.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/47_hu18398919809836666953.png 480w, https://bit-orbit.github.io/p/blade-runner/47_hu2667296751264683546.png 1024w" +loading="lazy" +alt="blade runner 47" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/48.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/48_hu14993772505347617599.png 480w, https://bit-orbit.github.io/p/blade-runner/48_hu10682812941153677363.png 1024w" +loading="lazy" +alt="blade runner 48" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/49.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/49_hu16411694887249070859.png 480w, https://bit-orbit.github.io/p/blade-runner/49_hu16240301775673342794.png 1024w" +loading="lazy" +alt="blade runner 49" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/50.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/50_hu8503803600664312732.png 480w, https://bit-orbit.github.io/p/blade-runner/50_hu12368446158085776281.png 1024w" +loading="lazy" +alt="blade runner 50" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/51.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/51_hu11126887880842881081.png 480w, https://bit-orbit.github.io/p/blade-runner/51_hu233188108159875576.png 1024w" +loading="lazy" +alt="blade runner 51" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/52.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/52_hu11431950899460230050.png 480w, https://bit-orbit.github.io/p/blade-runner/52_hu7298926683432624726.png 1024w" +loading="lazy" +alt="blade runner 52" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/53.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/53_hu13228039747128200342.png 480w, https://bit-orbit.github.io/p/blade-runner/53_hu16111526649218680588.png 1024w" +loading="lazy" +alt="blade runner 53" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/54.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/54_hu9342162793044175734.png 480w, https://bit-orbit.github.io/p/blade-runner/54_hu15024151033432483079.png 1024w" +loading="lazy" +alt="blade runner 54" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/55.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/55_hu12321936001541439659.png 480w, https://bit-orbit.github.io/p/blade-runner/55_hu7429903137234845210.png 1024w" +loading="lazy" +alt="blade runner 55" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/56.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/56_hu3324342216882080000.png 480w, https://bit-orbit.github.io/p/blade-runner/56_hu13900367100943885646.png 1024w" +loading="lazy" +alt="blade runner 56" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/57.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/57_hu10899987809346777574.png 480w, https://bit-orbit.github.io/p/blade-runner/57_hu1833878132194999715.png 1024w" +loading="lazy" +alt="blade runner 57" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/58.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/58_hu2749719750675113407.png 480w, https://bit-orbit.github.io/p/blade-runner/58_hu13712655613043964122.png 1024w" +loading="lazy" +alt="blade runner 58" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/59.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/59_hu1398855735980946821.png 480w, https://bit-orbit.github.io/p/blade-runner/59_hu1461339919111804308.png 1024w" +loading="lazy" +alt="blade runner 59" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/60.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/60_hu13599966525084938849.png 480w, https://bit-orbit.github.io/p/blade-runner/60_hu4217891253397448815.png 1024w" +loading="lazy" +alt="blade runner 60" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/61.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/61_hu2703060499403853830.png 480w, https://bit-orbit.github.io/p/blade-runner/61_hu8604228838678676103.png 1024w" +loading="lazy" +alt="blade runner 61" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/62.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/62_hu3743067860640072021.png 480w, https://bit-orbit.github.io/p/blade-runner/62_hu13247994899625272284.png 1024w" +loading="lazy" +alt="blade runner 62" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/63.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/63_hu5521921960590566458.png 480w, https://bit-orbit.github.io/p/blade-runner/63_hu8576871411060827418.png 1024w" +loading="lazy" +alt="blade runner 63" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/64.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/64_hu7077094138994732059.png 480w, https://bit-orbit.github.io/p/blade-runner/64_hu11639906649533939474.png 1024w" +loading="lazy" +alt="blade runner 64" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/65.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/65_hu16953234321408972377.png 480w, https://bit-orbit.github.io/p/blade-runner/65_hu3408024607592661017.png 1024w" +loading="lazy" +alt="blade runner 65" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/66.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/66_hu11459712331105937605.png 480w, https://bit-orbit.github.io/p/blade-runner/66_hu4644537247085346227.png 1024w" +loading="lazy" +alt="blade runner 66" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/67.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/67_hu9383573372408392686.png 480w, https://bit-orbit.github.io/p/blade-runner/67_hu10769327503186556723.png 1024w" +loading="lazy" +alt="blade runner 67" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/68.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/68_hu2177780438990668669.png 480w, https://bit-orbit.github.io/p/blade-runner/68_hu18386143906580524418.png 1024w" +loading="lazy" +alt="blade runner 68" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/69.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/69_hu3922140427780096899.png 480w, https://bit-orbit.github.io/p/blade-runner/69_hu1155080904206925861.png 1024w" +loading="lazy" +alt="blade runner 69" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/70.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/70_hu15159042566928364666.png 480w, https://bit-orbit.github.io/p/blade-runner/70_hu5835195235087609063.png 1024w" +loading="lazy" +alt="blade runner 70" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/71.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/71_hu5520131513925869815.png 480w, https://bit-orbit.github.io/p/blade-runner/71_hu766506351619066374.png 1024w" +loading="lazy" +alt="blade runner 71" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/72.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/72_hu3430491252945314972.png 480w, https://bit-orbit.github.io/p/blade-runner/72_hu15766962828315836446.png 1024w" +loading="lazy" +alt="blade runner 72" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/73.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/73_hu14789660611827108309.png 480w, https://bit-orbit.github.io/p/blade-runner/73_hu17840206115327690890.png 1024w" +loading="lazy" +alt="blade runner 73" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/74.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/74_hu1245649257657215050.png 480w, https://bit-orbit.github.io/p/blade-runner/74_hu14591817395085345655.png 1024w" +loading="lazy" +alt="blade runner 74" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/75.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/75_hu12103176185954374702.png 480w, https://bit-orbit.github.io/p/blade-runner/75_hu11912668943504722471.png 1024w" +loading="lazy" +alt="blade runner 75" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/76.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/76_hu17826661668559987462.png 480w, https://bit-orbit.github.io/p/blade-runner/76_hu1468709210677229705.png 1024w" +loading="lazy" +alt="blade runner 76" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/77.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/77_hu6844293341813334299.png 480w, https://bit-orbit.github.io/p/blade-runner/77_hu17430500291569764572.png 1024w" +loading="lazy" +alt="blade runner 77" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/78.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/78_hu10710751401961735765.png 480w, https://bit-orbit.github.io/p/blade-runner/78_hu16816878939617923975.png 1024w" +loading="lazy" +alt="blade runner 78" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/79.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/79_hu13480399198147170633.png 480w, https://bit-orbit.github.io/p/blade-runner/79_hu11463438054987216457.png 1024w" +loading="lazy" +alt="blade runner 79" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/80.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/80_hu15861010109584580541.png 480w, https://bit-orbit.github.io/p/blade-runner/80_hu185002805574539294.png 1024w" +loading="lazy" +alt="blade runner 80" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/81.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/81_hu7746682545453067471.png 480w, https://bit-orbit.github.io/p/blade-runner/81_hu8795496398668933935.png 1024w" +loading="lazy" +alt="blade runner 81" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></p>fsdfdhttps://bit-orbit.github.io/gallery/rick-and-morty/Sat, 01 Oct 2022 01:46:23 +0330https://bit-orbit.github.io/gallery/rick-and-morty/<img src="https://bit-orbit.github.io/images/post/matrix.jpg" alt="Featured image of post fsdfd" /><p><img src="https://bit-orbit.github.io/gallery/rick-and-morty/a.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/gallery/rick-and-morty/a_hu18203028458765281991.png 480w, https://bit-orbit.github.io/gallery/rick-and-morty/a_hu640960131545633292.png 1024w" +loading="lazy" +alt="p" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p>ارتباط غیر متمرکز و در لحظه با پروتکل ماتریکسhttps://bit-orbit.github.io/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/Sat, 01 Oct 2022 01:46:23 +0330https://bit-orbit.github.io/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/<img src="https://bit-orbit.github.io/images/post/matrix.jpg" alt="Featured image of post ارتباط غیر متمرکز و در لحظه با پروتکل ماتریکس" /><p>ماتریکس یک پروتکل آزاد است! به این معنی که شما میتوانید از این پروتکل برای ارتباطات تحت شبکه مانند پیامرسان، اینترنت چیز ها (IoT) و هر چیز دیگری @@ -3457,76 +3028,58 @@ balde runner های این پروتکل، رمزنگاری سر تا سر (E2E) است، این ویژگی باعث میشود حتی سرور های ماتریکس که داده های ما را -منتقل میکنند هم توانایی دسترسی به داده ها را نداشته باشند.</p> -<h3 id="پیام-رسان-ماتریکس">پیام رسان ماتریکس</h3> -<p>یکی از اصلی ترین استفاده های ماتریکس، پیامرسان است. +منتقل میکنند هم توانایی دسترسی به داده ها را نداشته باشند.</p> +<h3 id="پیام-رسان-ماتریکس">پیام رسان ماتریکس +</h3><p>یکی از اصلی ترین استفاده های ماتریکس، پیامرسان است. این پیامرسان به صورت غیر متمرکز عمل میکند. با این روش سانسور/فیلتر شدن سرور هایی که پیام ها را ذخیره و منتقل میکنند غیر ممکن میشود! چرا که این سرور ها قابل تغییر هستند و هر زمان که یکی از این سرور ها سانسور شود، شما همچنان میتوانید با سرور دیگری مجدد اکانت بسازید و در ارتباط بمانید. -و یا حتی از سرور خودتان استفاده کنید!</p> -<h3 id="ماتریکس-چگونه-کار-میکند">ماتریکس چگونه کار میکند؟</h3> -<p>هر سرور در ماتریکس -<em>HomeServer</em> +و یا حتی از سرور خودتان استفاده کنید!</p> +<h3 id="ماتریکس-چگونه-کار-میکند">ماتریکس چگونه کار میکند؟ +</h3><p>هر سرور در ماتریکس +<em>HomeServer</em> نامیده میشود، شما به عنوان -<em>Client</em> +<em>Client</em> انتخاب میکنید از هر HomeServer -که میخواهید استفاده کنید.</p> -<p>HomeServer +که میخواهید استفاده کنید.</p> +<p>HomeServer ها میتوانند سرور های عمومی مثل سروری که خود -<a class="link" href="matrix.org" ><strong>ماتریکس</strong></a> +<a class="link" href="matrix.org" ><strong>ماتریکس</strong></a> راه اندازی کرده است باشد و یا میتواند سرور های -<strong>شخصی خودتان</strong> -باشد.</p> -<p><a class="link" href="https://bit-orbit.github.io/images/post/page2-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page2-768x768.png" - - - - loading="lazy" - - alt="matrix-homeserver" - - -></a></p> -<p>زمانی که شما از یک +<strong>شخصی خودتان</strong> +باشد.</p> +<p><a class="link" href="https://bit-orbit.github.io/images/post/page2-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page2-768x768.png" +loading="lazy" +alt="matrix-homeserver" +></a></p> +<p>زمانی که شما از یک HomeServer استفاده میکنید، این به آن معنی است که کلاینت شما به اکانتتان در آن HomeServer -متصل میشود.</p> -<p><a class="link" href="https://bit-orbit.github.io/images/post/page3-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page3-768x768.png" - - - - loading="lazy" - - alt="matrix-homeserver" - - -></a></p> -<p>زمانی که شما پیامی ارسال میکنید، پیامتان به +متصل میشود.</p> +<p><a class="link" href="https://bit-orbit.github.io/images/post/page3-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page3-768x768.png" +loading="lazy" +alt="matrix-homeserver" +></a></p> +<p>زمانی که شما پیامی ارسال میکنید، پیامتان به HomeServer شما ارسال میشود، HomeServer -بعد از دریافت پیام از شما، آن را به کاربران مشترک در آن روم ارسال میکند.</p> -<blockquote> -<p>در ماتریکس هر نوع چت(شخصی و یا گروه) را +بعد از دریافت پیام از شما، آن را به کاربران مشترک در آن روم ارسال میکند.</p> +<blockquote> +<p>در ماتریکس هر نوع چت(شخصی و یا گروه) را room -مینامند</p> -</blockquote> -<p><a class="link" href="https://bit-orbit.github.io/images/post/page4-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page4-768x768.png" - - - - loading="lazy" - - alt="matrix-homeserver" - - -></a></p> -<p>در واقع زمانی که شما پیامی ارسال میکنید +مینامند</p> +</blockquote> +<p><a class="link" href="https://bit-orbit.github.io/images/post/page4-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page4-768x768.png" +loading="lazy" +alt="matrix-homeserver" +></a></p> +<p>در واقع زمانی که شما پیامی ارسال میکنید HomeServer پیام را برای کاربران ارسال میکند. این کاربران ممکن است کاربران همان HomeServer @@ -3540,47 +3093,41 @@ Homeserver HomerServer های دیگر ارسال خواهد کرد. و آن HomeServer -پیام را دریافت و به کاربران مربوطه ارسال خواهد کرد.</p> -<p><a class="link" href="https://bit-orbit.github.io/images/post/page6-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page6-768x768.png" - - - - loading="lazy" - - alt="matrix-homeserver" - - -></a></p> -<blockquote> -<p>زمانی که شما پیامی را برای کاربر +پیام را دریافت و به کاربران مربوطه ارسال خواهد کرد.</p> +<p><a class="link" href="https://bit-orbit.github.io/images/post/page6-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page6-768x768.png" +loading="lazy" +alt="matrix-homeserver" +></a></p> +<blockquote> +<p>زمانی که شما پیامی را برای کاربر HomeServer دیگری ارسال میکنید، پیام شما تنها در HomeServer خودتان ذخیره نخواهد شد. بلکه در HomeServer -کاربری/کاربرانی که پیام را به آن ارسال کرده اید هم ذخیره میشود.</p> -</blockquote> -<h3 id="اصطلاحات-در-ماتریکس">اصطلاحات در ماتریکس</h3> -<p>در ماتریکس چند اصطلاح وجود دارد که آشنایی با آنها به درک بهتر این پروتکل کمک میکند.</p> -<ul> -<li> -<p>HomeServer: +کاربری/کاربرانی که پیام را به آن ارسال کرده اید هم ذخیره میشود.</p> +</blockquote> +<h3 id="اصطلاحات-در-ماتریکس">اصطلاحات در ماتریکس +</h3><p>در ماتریکس چند اصطلاح وجود دارد که آشنایی با آنها به درک بهتر این پروتکل کمک میکند.</p> +<ul> +<li> +<p>HomeServer: سروری که شما در آن اکانت خود را میسازید. این سرور پیام های شما را ذخیره -و ارسال میکند.</p> -</li> -<li> -<p>Client: +و ارسال میکند.</p> +</li> +<li> +<p>Client: برای اینکه کاربران بتوانند از ماتریکس استفاده کنند، باید از ابزاری که از این -پروتکل بهره میبرد استفاده کنند. به اینگونه از ابزار ها کلاینت گفته میشود.</p> -</li> -<li> -<p>Event: +پروتکل بهره میبرد استفاده کنند. به اینگونه از ابزار ها کلاینت گفته میشود.</p> +</li> +<li> +<p>Event: هر نوع داده ای که توسط ماتریکس ارسال شود -<em>event</em> -نامیده میشود. برای مثال ممکن است شما پیام ارسال کنید و یا به یک پیام واکنش نشان دهید.</p> -</li> -<li> -<p>Room: +<em>event</em> +نامیده میشود. برای مثال ممکن است شما پیام ارسال کنید و یا به یک پیام واکنش نشان دهید.</p> +</li> +<li> +<p>Room: قسمتی است که کاربر با آن event ها را دریافت و ارسال میکند. @@ -3591,10 +3138,10 @@ room room میتوانند event -ها را دریافت کنند.</p> -</li> -<li> -<p>Space: +ها را دریافت کنند.</p> +</li> +<li> +<p>Space: Space نوعی خاصی از room @@ -3602,229 +3149,198 @@ room room ها است. space -میتواند هم شامل گروه و هم کاربران عادی شود.</p> -</li> -<li> -<p>Bridge: +میتواند هم شامل گروه و هم کاربران عادی شود.</p> +</li> +<li> +<p>Bridge: پل یا Bridge به راهکاری گفته میشود که شما میتوانید با استفاده از آن بین ماتریکس و پیامرسان های دیگر چت کنید. برای مثال شما با استفاده از Brdige تلگرام -میتوانید با ماتریکس به کاربران تلگرام پیام ارسال و دریافت کنید.</p> -</li> -</ul> -<h3 id="چگونه-از-ماتریکس-استفاده-کنیم">چگونه از ماتریکس استفاده کنیم؟</h3> -<p>برای استفاده از ماتریکس، شما کافیست یکی از کلاینت های آن را نصب و به یک +میتوانید با ماتریکس به کاربران تلگرام پیام ارسال و دریافت کنید.</p> +</li> +</ul> +<h3 id="چگونه-از-ماتریکس-استفاده-کنیم">چگونه از ماتریکس استفاده کنیم؟ +</h3><p>برای استفاده از ماتریکس، شما کافیست یکی از کلاینت های آن را نصب و به یک HomeServer -متصل شوید.</p> -<p>یکی از محبوب ترین کلاینت ها، کلاینت -<a class="link" href="https://element.io/" target="_blank" rel="noopener" - >Element</a> +متصل شوید.</p> +<p>یکی از محبوب ترین کلاینت ها، کلاینت +<a class="link" href="https://element.io/" target="_blank" rel="noopener" +>Element</a> است، که شامل نسخه -<a class="link" href="https://play.google.com/store/apps/details?id=im.vector.app" target="_blank" rel="noopener" - >Android</a>، -<a class="link" href="https://apps.apple.com/app/vector/id1083446067" target="_blank" rel="noopener" - >IOS</a>، -<a class="link" href="https://element.io/get-started#downloads" target="_blank" rel="noopener" - >Windows, Linux، Mac</a> +<a class="link" href="https://play.google.com/store/apps/details?id=im.vector.app" target="_blank" rel="noopener" +>Android</a>، +<a class="link" href="https://apps.apple.com/app/vector/id1083446067" target="_blank" rel="noopener" +>IOS</a>، +<a class="link" href="https://element.io/get-started#downloads" target="_blank" rel="noopener" +>Windows, Linux، Mac</a> و البته -<a class="link" href="https://app.element.io/" target="_blank" rel="noopener" - >نسخه تحت وب میشود</a>.</p> -<p>استفاده از المنت مانند هر پیامرسان دیگری ساده است، اما اگر نیاز به کمک دارید -<a class="link" href="https://static.element.io/pdfs/element-user-guide.pdf" target="_blank" rel="noopener" - >این لینک</a> -میتواند کمکتان کند.</p> -<h3 id="چطور-از-سرور-شخصی-خودمان-استفاده-کنیم">چطور از سرور شخصی خودمان استفاده کنیم؟</h3> -<p>شما مجبور نیستید سرویس ماتریکس را روی سرور شخصی خودتان اجرا کنید مگر اینکه:</p> -<ul> -<li>سرور های عمومی ماتریکس سانسور و از دسترس خارج شده باشند</li> -<li>و یا شاید نگران دیتایی هستید که روی سرور های -عمومی ماتریکس از طرف شما ذخیره میشود!(گرچه پیام ها تماما رمزنگاری سر تا سر میشود)</li> -<li>و یا حتی شاید میخواهید پیام رسان داخلی شرکت/خانه خودتان را داشته باشید</li> -<li>و یا البته ممکن است بخواهید +<a class="link" href="https://app.element.io/" target="_blank" rel="noopener" +>نسخه تحت وب میشود</a>.</p> +<p>استفاده از المنت مانند هر پیامرسان دیگری ساده است، اما اگر نیاز به کمک دارید +<a class="link" href="https://static.element.io/pdfs/element-user-guide.pdf" target="_blank" rel="noopener" +>این لینک</a> +میتواند کمکتان کند.</p> +<h3 id="چطور-از-سرور-شخصی-خودمان-استفاده-کنیم">چطور از سرور شخصی خودمان استفاده کنیم؟ +</h3><p>شما مجبور نیستید سرویس ماتریکس را روی سرور شخصی خودتان اجرا کنید مگر اینکه:</p> +<ul> +<li>سرور های عمومی ماتریکس سانسور و از دسترس خارج شده باشند</li> +<li>و یا شاید نگران دیتایی هستید که روی سرور های +عمومی ماتریکس از طرف شما ذخیره میشود!(گرچه پیام ها تماما رمزنگاری سر تا سر میشود)</li> +<li>و یا حتی شاید میخواهید پیام رسان داخلی شرکت/خانه خودتان را داشته باشید</li> +<li>و یا البته ممکن است بخواهید Bridge -بسازید.</li> -</ul> -<p>نسخه سرور ماتریکس -<a class="link" href="https://github.com/matrix-org/synapse" target="_blank" rel="noopener" - ><em>Synapse</em></a> +بسازید.</li> +</ul> +<p>نسخه سرور ماتریکس +<a class="link" href="https://github.com/matrix-org/synapse" target="_blank" rel="noopener" +><em>Synapse</em></a> نام دارد، شما میتوانید با استفاده از -<a class="link" href="https://hub.docker.com/r/matrixdotorg/synapse/" target="_blank" rel="noopener" - >ایمیج داکر رسمی ماتریکس</a>، -سرور شخصی خودتان را اجرا کنید.</p> -<h3 id="نتیجه-گیری">نتیجه گیری</h3> -<p>هدف من از نوشتن این پست در این روز های تلخ این بود که ابزاری را معرفی کنم +<a class="link" href="https://hub.docker.com/r/matrixdotorg/synapse/" target="_blank" rel="noopener" +>ایمیج داکر رسمی ماتریکس</a>، +سرور شخصی خودتان را اجرا کنید.</p> +<h3 id="نتیجه-گیری">نتیجه گیری +</h3><p>هدف من از نوشتن این پست در این روز های تلخ این بود که ابزاری را معرفی کنم تا ما با وجود قطعی های متعدد اینترنت و قطع دسترسی ما از سرور های خارجی، کماکان -در ارتباط نگهدارد و صدایمان را&hellip;</p> -<p>اگر روزی دسترسی ما از اینترنت قطع شد، کاری که لازم است برای در ارتباط ماندن انجام بدهیم -این است که یک سرویس ماتریکس داخلی راه اندازی کنیم.</p> -<hr> - - - - کپی کردن ریزالت پایپ به کلیپ برد - https://bit-orbit.github.io/p/%DA%A9%D9%BE%DB%8C-%DA%A9%D8%B1%D8%AF%D9%86-%D8%B1%DB%8C%D8%B2%D8%A7%D9%84%D8%AA-%D9%BE%D8%A7%DB%8C%D9%BE-%D8%A8%D9%87-%DA%A9%D9%84%DB%8C%D9%BE-%D8%A8%D8%B1%D8%AF/ - Sun, 01 May 2022 04:48:44 +0430 - - https://bit-orbit.github.io/p/%DA%A9%D9%BE%DB%8C-%DA%A9%D8%B1%D8%AF%D9%86-%D8%B1%DB%8C%D8%B2%D8%A7%D9%84%D8%AA-%D9%BE%D8%A7%DB%8C%D9%BE-%D8%A8%D9%87-%DA%A9%D9%84%DB%8C%D9%BE-%D8%A8%D8%B1%D8%AF/ - <img src="https://bit-orbit.github.io/images/post/cclp.jpg" alt="Featured image of post کپی کردن ریزالت پایپ به کلیپ برد" /><div dir='rtl' style='font-size:23px'> -<p>ما زمانی که برنامه‌ای در ترمینال اجرا می‌کنیم برای کپی کردن ریزالت اون برنامه، با موس تکست رو سلکت می‌کنیم و بعد کپی می‌کنیم. اما می‌دونیم که توی لینوکس ما pipe رو داریم. +در ارتباط نگهدارد و صدایمان را&hellip;</p> +<p>اگر روزی دسترسی ما از اینترنت قطع شد، کاری که لازم است برای در ارتباط ماندن انجام بدهیم +این است که یک سرویس ماتریکس داخلی راه اندازی کنیم.</p> +<hr>کپی کردن ریزالت پایپ به کلیپ بردhttps://bit-orbit.github.io/p/%DA%A9%D9%BE%DB%8C-%DA%A9%D8%B1%D8%AF%D9%86-%D8%B1%DB%8C%D8%B2%D8%A7%D9%84%D8%AA-%D9%BE%D8%A7%DB%8C%D9%BE-%D8%A8%D9%87-%DA%A9%D9%84%DB%8C%D9%BE-%D8%A8%D8%B1%D8%AF/Sun, 01 May 2022 04:48:44 +0430https://bit-orbit.github.io/p/%DA%A9%D9%BE%DB%8C-%DA%A9%D8%B1%D8%AF%D9%86-%D8%B1%DB%8C%D8%B2%D8%A7%D9%84%D8%AA-%D9%BE%D8%A7%DB%8C%D9%BE-%D8%A8%D9%87-%DA%A9%D9%84%DB%8C%D9%BE-%D8%A8%D8%B1%D8%AF/<img src="https://bit-orbit.github.io/images/post/cclp.jpg" alt="Featured image of post کپی کردن ریزالت پایپ به کلیپ برد" /><div dir='rtl' style='font-size:23px'> +<p>ما زمانی که برنامه‌ای در ترمینال اجرا می‌کنیم برای کپی کردن ریزالت اون برنامه، با موس تکست رو سلکت می‌کنیم و بعد کپی می‌کنیم. اما می‌دونیم که توی لینوکس ما pipe رو داریم. پایپ کردن به این معنی است که شما یک برنامه رو اجرا می‌کنید و ریزالت اون برنامه رو بعنوان ورودی به یک برنامه دیگر می‌دهید. -و خب کاش می‌شد با پایپ کردن، متنی کپی بشه!</p> -<p>برنامه‌ای ساده نوشتم که این کار رو برای ما به سادگی انجام بده.</p> -<p>مثلا ما می‌خواهیم لیست فایل ها و دایرکتوری های داخل پوشه /var/ رو کپی کنیم. -می‌دونیم که دستور ls میاد و لیست فایل ها رو می‌گیره، کافیه این رو پایپ کنیم به clp تا این لیست به کلیپ برد کپی بشه.</p> -<p><code>ls /var | clp</code></p> -<p>برای نصب این چند دستور رو می‌تونید اجرا کنید:</p> -<div dir='ltr'> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span><span class="lnt">3 -</span><span class="lnt">4 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">cd</span> /tmp/ <span class="o">&amp;&amp;</span> wget <span class="s1">&#39;https://raw.githubusercontent.com/shabane/clp/master/clp.py&#39;</span> -</span></span><span class="line"><span class="cl">cp clp.py ~/.local/bin/clp -</span></span><span class="line"><span class="cl">chmod +x ~/.local/bin/clp -</span></span><span class="line"><span class="cl">clp -h -</span></span></code></pre></td></tr></table> -</div> -</div></div> -<br> -<p>و خب می‌تونید برای دیدن مثال ها ریپوی گیتهاب برنامه رو هم ببینید</p> -<p><a class="link" href="https://github.com/shabane/clp" target="_blank" rel="noopener" - >https://github.com/shabane/clp</a></p> -</div> - - - ساخت کوتاه کننده لینک با گیتهاب پیجز - https://bit-orbit.github.io/p/%D8%B3%D8%A7%D8%AE%D8%AA-%DA%A9%D9%88%D8%AA%D8%A7%D9%87-%DA%A9%D9%86%D9%86%D8%AF%D9%87-%D9%84%DB%8C%D9%86%DA%A9-%D8%A8%D8%A7-%DA%AF%DB%8C%D8%AA%D9%87%D8%A7%D8%A8-%D9%BE%DB%8C%D8%AC%D8%B2/ - Tue, 22 Mar 2022 22:41:20 +0000 - - https://bit-orbit.github.io/p/%D8%B3%D8%A7%D8%AE%D8%AA-%DA%A9%D9%88%D8%AA%D8%A7%D9%87-%DA%A9%D9%86%D9%86%D8%AF%D9%87-%D9%84%DB%8C%D9%86%DA%A9-%D8%A8%D8%A7-%DA%AF%DB%8C%D8%AA%D9%87%D8%A7%D8%A8-%D9%BE%DB%8C%D8%AC%D8%B2/ - <img src="https://bit-orbit.github.io/images/post/carbon_r7tm.jpg" alt="Featured image of post ساخت کوتاه کننده لینک با گیتهاب پیجز" /><div dir='rtl' style='font-size: x-large'> -<p>شاید تا به حال از کوتاه کننده های لینک استفاده کرده باشید، -اما ایا سایت <em>کوتاه کننده لینک</em> خودتون رو درست کردین؟</p> -<p>گیتهاب پیجز یک سرور رایگان برای دیپلوی سایت های ایستا است. +و خب کاش می‌شد با پایپ کردن، متنی کپی بشه!</p> +<p>برنامه‌ای ساده نوشتم که این کار رو برای ما به سادگی انجام بده.</p> +<p>مثلا ما می‌خواهیم لیست فایل ها و دایرکتوری های داخل پوشه /var/ رو کپی کنیم. +می‌دونیم که دستور ls میاد و لیست فایل ها رو می‌گیره، کافیه این رو پایپ کنیم به clp تا این لیست به کلیپ برد کپی بشه.</p> +<p><code>ls /var | clp</code></p> +<p>برای نصب این چند دستور رو می‌تونید اجرا کنید:</p> +<div dir='ltr'> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">cd</span> /tmp/ <span class="o">&amp;&amp;</span> wget <span class="s1">&#39;https://raw.githubusercontent.com/shabane/clp/master/clp.py&#39;</span> +</span></span><span class="line"><span class="cl">cp clp.py ~/.local/bin/clp +</span></span><span class="line"><span class="cl">chmod +x ~/.local/bin/clp +</span></span><span class="line"><span class="cl">clp -h +</span></span></code></pre></td></tr></table> +</div> +</div></div> +<br> +<p>و خب می‌تونید برای دیدن مثال ها ریپوی گیتهاب برنامه رو هم ببینید</p> +<p><a class="link" href="https://github.com/shabane/clp" target="_blank" rel="noopener" +>https://github.com/shabane/clp</a></p> +</div>ساخت کوتاه کننده لینک با گیتهاب پیجزhttps://bit-orbit.github.io/p/%D8%B3%D8%A7%D8%AE%D8%AA-%DA%A9%D9%88%D8%AA%D8%A7%D9%87-%DA%A9%D9%86%D9%86%D8%AF%D9%87-%D9%84%DB%8C%D9%86%DA%A9-%D8%A8%D8%A7-%DA%AF%DB%8C%D8%AA%D9%87%D8%A7%D8%A8-%D9%BE%DB%8C%D8%AC%D8%B2/Tue, 22 Mar 2022 22:41:20 +0000https://bit-orbit.github.io/p/%D8%B3%D8%A7%D8%AE%D8%AA-%DA%A9%D9%88%D8%AA%D8%A7%D9%87-%DA%A9%D9%86%D9%86%D8%AF%D9%87-%D9%84%DB%8C%D9%86%DA%A9-%D8%A8%D8%A7-%DA%AF%DB%8C%D8%AA%D9%87%D8%A7%D8%A8-%D9%BE%DB%8C%D8%AC%D8%B2/<img src="https://bit-orbit.github.io/images/post/carbon_r7tm.jpg" alt="Featured image of post ساخت کوتاه کننده لینک با گیتهاب پیجز" /><div dir='rtl' style='font-size: x-large'> +<p>شاید تا به حال از کوتاه کننده های لینک استفاده کرده باشید، +اما ایا سایت <em>کوتاه کننده لینک</em> خودتون رو درست کردین؟</p> +<p>گیتهاب پیجز یک سرور رایگان برای دیپلوی سایت های ایستا است. در واقع شما می‌توانید صفحه های html رو توی ریپو قرار بدین و این سایت اون صفحه ها رو به رایگان -برای شما نمایش می‌دهد.</p> -<p>از همین قابلیت برای ساخت یک +برای شما نمایش می‌دهد.</p> +<p>از همین قابلیت برای ساخت یک url redirector استفاده کردم، و با کمی جاوا اسکریپت یک صفحه درست کردم که وقتی شما با مرورگر اون رو باز می‌کنید، -مرورگر شما به صورت خودکار به یک آدرس متفاوت منتقل خواهد شد.</p> -<p>ولی مشکل اینجاست که شما هر بار باید کلی +مرورگر شما به صورت خودکار به یک آدرس متفاوت منتقل خواهد شد.</p> +<p>ولی مشکل اینجاست که شما هر بار باید کلی html, css -رو خودتان تغییر بدین و بعد قطعه کد جاوا اسکریپت رو اضافه کنید.</p> -<hr> -<div> -<h2> -<img style="width: 5%;" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABmJLR0QA/wD/AP+gvaeTAAAE50lEQVRoge2aW2wUVRiAvzPbC2BSuYTL7laDCYEIgZgCMWpILLuFpMYHNPapRHvZECHWQoQSLmYRAlaMtI032G25v0AiL0ignbUmqBiDxIBoEIw+tLstSMFGge7uzO/D7jZtKWXa7tbS7Pd49sx//m/OzOzM+Q+ksYjXq+H1aqkeRqUy+Ax932INrRYkW6Ay5PacTdVYKRHJDRx0ihnZJYri3mOok6ZNe6stv+TPZI+ZVJHc746NN+90rgeqgAkgdxE+iI+0AdR44A5QrU3I2d3yfNHdZI2dNBFHwP8yQh0wMx6619m/f5akVYm2qdVdehilZLjjD1vEEWjIQ8waYEmsRS503w8iKrfpwKyWZSVXE/3tum+JghpQefGmsyitMugqvTCcPIYs4tQPThGi74KsAWzATYHtoY6cjykqMhyBhjxMsw7FXGzG7GD+qr+6DxZRTr1hpSipBmYAooQj4Qzbhhv5JW0jIjLv2LGsW1M6KxC2AI8DYYS6e5Fx2zsKizun6b7pGaidwBuABgSVyKutBZ7v+8aafOpIzrjMe1tRVABZwN8odky6mVN3uagonDIRh97gBrMWmBtrEd3E9nabu/SXhef3ZgZv21Yr2BYXjID67F44e2tHYXHnQHFzm/2zTIOdwGuxsFxTGptaXeXHkyri1PfNFrSPgJfiTVc0Tda1LPWcAnA2+l2iUQvMSwiKUBEq8PxqNREAZ8C3VIQaUPPj2QU007a2paDk0rBEnjz76aRoV1YVsJbY1N9CUT3pZs6ey0VF4fvOJFxVwtrWgvIvByPQi2Zvht1wliqldiBMBaIK1WCE1Za2wtIbgxPxejXnC08Ui2I3yDTAVMLRqBl5p335m9ennzn0mE3rWo9SVcA44F9EPpwQubvrWmFF15AlehA7idlekNVABtAh8F7I1vIJ+d6oJRGH7rvY7/SKKPtX9cVKeB9wACZwIIpsuu72tCdDoC+5Tfvnm5qxB8EVa5FLQbdngUURvwCIUq+EXGUnAOyN9YuUJnXAc/Fu58RUFaFlZedTIdAXe6B+hRL5AiDoLr8v74yBDk5IOHRfAchp4o9TUWwMLS07kox/ZKuEXGUnHLr/gb9ber22TzS/Bi4C1RFb15yQqzwprxUPw6H7mhy6r8lK3wFnJMGPi1ZFaPYu7u8mSy3KbbWn9Q+eEZcYHCn/chsp0iKjjbTIaCMtMtpIi4w20iKjjbTIaMO6SLPX0iv//4Wl5Bae35sZum37Ad1/JmLr2nEjf80/qU4shuhWe1qakdBt7UVgAVCVaWRfsQf8KxFJaW0FIOj2FATdngIrfQcUsQfqV8QDNompngXOAQ4lHHIE6r+1N9YvGn661kjk8iDGzHJQvzMS/Kb1GSXqdVDXEVymMn5yNvkPTW/8fGrIVX7YMLJmI7INCAOlGajfHU0+76xTddlJEzjtn+zQ62tNZVyIS3QIVAZtrXn99R/wOp/ZvH9i2DA2MgqWTMUW3dyrNDEYkQT9LGL/poR1iYT7W8ROrNIPxiEWR/b0vKyNKJXty8t/ftixQykr1PSXcFLLCnBVKTYnvazQkzFR6OnJIEpvT2Mz5vS6vrtX+7tLb6YSjkaUrB/q0y9dDO1LvDxdCzwVD33SMMyK9uWeP+ARKE/3ZExsGOjJI7+Foy8juakm9YzQNqcxw39CC6i8SsB1XwAAAABJRU5ErkJggg==" alt="carbon carbon-link-shortener arya-shabane shabane mohamad-shabane"> +رو خودتان تغییر بدین و بعد قطعه کد جاوا اسکریپت رو اضافه کنید.</p> +<hr> +<div> +<h2> +<img style="width: 5%;" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABmJLR0QA/wD/AP+gvaeTAAAE50lEQVRoge2aW2wUVRiAvzPbC2BSuYTL7laDCYEIgZgCMWpILLuFpMYHNPapRHvZECHWQoQSLmYRAlaMtI032G25v0AiL0ignbUmqBiDxIBoEIw+tLstSMFGge7uzO/D7jZtKWXa7tbS7Pd49sx//m/OzOzM+Q+ksYjXq+H1aqkeRqUy+Ax932INrRYkW6Ay5PacTdVYKRHJDRx0ihnZJYri3mOok6ZNe6stv+TPZI+ZVJHc746NN+90rgeqgAkgdxE+iI+0AdR44A5QrU3I2d3yfNHdZI2dNBFHwP8yQh0wMx6619m/f5akVYm2qdVdehilZLjjD1vEEWjIQ8waYEmsRS503w8iKrfpwKyWZSVXE/3tum+JghpQefGmsyitMugqvTCcPIYs4tQPThGi74KsAWzATYHtoY6cjykqMhyBhjxMsw7FXGzG7GD+qr+6DxZRTr1hpSipBmYAooQj4Qzbhhv5JW0jIjLv2LGsW1M6KxC2AI8DYYS6e5Fx2zsKizun6b7pGaidwBuABgSVyKutBZ7v+8aafOpIzrjMe1tRVABZwN8odky6mVN3uagonDIRh97gBrMWmBtrEd3E9nabu/SXhef3ZgZv21Yr2BYXjID67F44e2tHYXHnQHFzm/2zTIOdwGuxsFxTGptaXeXHkyri1PfNFrSPgJfiTVc0Tda1LPWcAnA2+l2iUQvMSwiKUBEq8PxqNREAZ8C3VIQaUPPj2QU007a2paDk0rBEnjz76aRoV1YVsJbY1N9CUT3pZs6ey0VF4fvOJFxVwtrWgvIvByPQi2Zvht1wliqldiBMBaIK1WCE1Za2wtIbgxPxejXnC08Ui2I3yDTAVMLRqBl5p335m9ennzn0mE3rWo9SVcA44F9EPpwQubvrWmFF15AlehA7idlekNVABtAh8F7I1vIJ+d6oJRGH7rvY7/SKKPtX9cVKeB9wACZwIIpsuu72tCdDoC+5Tfvnm5qxB8EVa5FLQbdngUURvwCIUq+EXGUnAOyN9YuUJnXAc/Fu58RUFaFlZedTIdAXe6B+hRL5AiDoLr8v74yBDk5IOHRfAchp4o9TUWwMLS07kox/ZKuEXGUnHLr/gb9ber22TzS/Bi4C1RFb15yQqzwprxUPw6H7mhy6r8lK3wFnJMGPi1ZFaPYu7u8mSy3KbbWn9Q+eEZcYHCn/chsp0iKjjbTIaCMtMtpIi4w20iKjjbTIaMO6SLPX0iv//4Wl5Bae35sZum37Ad1/JmLr2nEjf80/qU4shuhWe1qakdBt7UVgAVCVaWRfsQf8KxFJaW0FIOj2FATdngIrfQcUsQfqV8QDNompngXOAQ4lHHIE6r+1N9YvGn661kjk8iDGzHJQvzMS/Kb1GSXqdVDXEVymMn5yNvkPTW/8fGrIVX7YMLJmI7INCAOlGajfHU0+76xTddlJEzjtn+zQ62tNZVyIS3QIVAZtrXn99R/wOp/ZvH9i2DA2MgqWTMUW3dyrNDEYkQT9LGL/poR1iYT7W8ROrNIPxiEWR/b0vKyNKJXty8t/ftixQykr1PSXcFLLCnBVKTYnvazQkzFR6OnJIEpvT2Mz5vS6vrtX+7tLb6YSjkaUrB/q0y9dDO1LvDxdCzwVD33SMMyK9uWeP+ARKE/3ZExsGOjJI7+Foy8juakm9YzQNqcxw39CC6i8SsB1XwAAAABJRU5ErkJggg==" alt="carbon carbon-link-shortener arya-shabane shabane mohamad-shabane"> Carbon -</h2> -</div> -<p><a class="link" href="https://bit-orbit.github.io/images/post/scarbon.jpg" ><img src="https://bit-orbit.github.io/images/post/scarbon.jpg" - - - - loading="lazy" - - alt="carbon-shot" - - -></a></p> -<p>من یک برنامه کوتاه کننده لینک درست کردم که +</h2> +</div> +<p><a class="link" href="https://bit-orbit.github.io/images/post/scarbon.jpg" ><img src="https://bit-orbit.github.io/images/post/scarbon.jpg" +loading="lazy" +alt="carbon-shot" +></a></p> +<p>من یک برنامه کوتاه کننده لینک درست کردم که زمانی که شما برنامه رو اجرا کنید، فایل های مورد نیاز رو برای شما -می‌سازه.</p> -<p>برنامه رو که اجرا کنید یک +می‌سازه.</p> +<p>برنامه رو که اجرا کنید یک CLI -اجرا خواهد شد و از شما چند ورودی را درخواست خواهد کرد.</p> -<p>اولین ورودی لینک طولانی است که -شما نیاز دارید آن را کوتاه کنید.</p> -<p>در قدم دوم، برنامه یک نام که همان لینک کوتاه شده است را از شما خواهد گرفت، +اجرا خواهد شد و از شما چند ورودی را درخواست خواهد کرد.</p> +<p>اولین ورودی لینک طولانی است که +شما نیاز دارید آن را کوتاه کنید.</p> +<p>در قدم دوم، برنامه یک نام که همان لینک کوتاه شده است را از شما خواهد گرفت، این نام را اگر به صورت خالی رها کنید، یک نام تصادفی بر اساس فایل کانفیگ -در نظر گرفته خواهد شد.</p> -<p>شاید سایت هایی را دیده باشید که از کاربر می‌خواند برای بازکردن لینک +در نظر گرفته خواهد شد.</p> +<p>شاید سایت هایی را دیده باشید که از کاربر می‌خواند برای بازکردن لینک روی یک دکمه کلیک کنند، و در این فرصت که کاربر هنوز وارد لیک اصلی نشده است، تبلیغاتی را به آنها نمایش می‌دهند. پس سوال سوم این خواهد بود که آیا کاربر باید برای وارد شدن به لینک اصلی، دکمه‌ای را بزند و یا به صورت -خودکار وارد آن شود؟</p> -<p>سوال سوم از شما یک عنوان می‌خواهد که برای هدر سایت +خودکار وارد آن شود؟</p> +<p>سوال سوم از شما یک عنوان می‌خواهد که برای هدر سایت از آن استفاده کند، البته اگر تم سایت را کاستومایز کنید، این عنوان -در هر جایی ممکن است قرار بگیرد.</p> -<p>و آخرین سوال از شما یک توضیح برای لینک می‌خواهد. ممکن شما +در هر جایی ممکن است قرار بگیرد.</p> +<p>و آخرین سوال از شما یک توضیح برای لینک می‌خواهد. ممکن شما بخواهید قبل از اینکه کاربر وارد لینک اصلی شود یک متنی را بخواند. -این توضیحات به کاربر نمایش داده خواهد شد.</p> -<p>برنامه کربن را منبع باز داخل این -<a class="link" href="https://shabane.github.io/carbon/on_open" target="_blank" rel="noopener" - >آدرس</a> -در گیتهاب قرار دادم، امیدوارم که مفید باشه.</p> -<hr> -<h2 id="deployment">Deployment</h2> -<p>البته همینطور که می‌دانید نیاز نیست حتما از گیتهاب پیجز برای +این توضیحات به کاربر نمایش داده خواهد شد.</p> +<p>برنامه کربن را منبع باز داخل این +<a class="link" href="https://shabane.github.io/carbon/on_open" target="_blank" rel="noopener" +>آدرس</a> +در گیتهاب قرار دادم، امیدوارم که مفید باشه.</p> +<hr> +<h2 id="deployment">Deployment +</h2><p>البته همینطور که می‌دانید نیاز نیست حتما از گیتهاب پیجز برای دیپلوی استفاده کنید. و تنها مشکلی که در این قضیه هست لینک هایی هست که تولید می‌شوند، این لینک ها به ساب دامین اکانت شما متصل می‌شوند، پس حفظ آن ها برای شما ساده است :) -اما نکته اینجاست که کافیست شما یک دامنه ثبت کنید.</p> -<p>راه دوم این است که با یک وب سرور مثل +اما نکته اینجاست که کافیست شما یک دامنه ثبت کنید.</p> +<p>راه دوم این است که با یک وب سرور مثل nginx این سایت را مستقر کنید، و هرگاه نیاز به ساخت لینک کوتاه داشتید، -برنامه رو اجرا کنید.</p> -<hr> -<h2 id="theme">Theme</h2> -<p>من هیچ وقت دیزانر خوبی نبودم و به همین دلیل تم اصلی سایت ساده‌س. +برنامه رو اجرا کنید.</p> +<hr> +<h2 id="theme">Theme +</h2><p>من هیچ وقت دیزانر خوبی نبودم و به همین دلیل تم اصلی سایت ساده‌س. شما می‌توانید به راحتی تم خودتان رو بسازید، کافیه که -<a class="link" href="https://github.com/shabane/carbon/blob/master/documentation/theme.md" target="_blank" rel="noopener" - >داکیومنت ساخت</a> +<a class="link" href="https://github.com/shabane/carbon/blob/master/documentation/theme.md" target="_blank" rel="noopener" +>داکیومنت ساخت</a> تم رو مطالعه کنید. فقط و فقط چند تگ و فایل هست که باید ازش درون تم استفاده کنید، اگر تمی ساختید که -قشنگتر از تم اصلی هست، خوشحال می‌شم به ریپو اصلی پوش کنید.</p> -</div> - - - در لینوکس چیست؟ TTY - https://bit-orbit.github.io/p/%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA-tty/ - Mon, 31 Jan 2022 19:57:05 +0330 - - https://bit-orbit.github.io/p/%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA-tty/ - <img src="https://bit-orbit.github.io/images/post/tty.jpg" alt="Featured image of post در لینوکس چیست؟ TTY " /><div dir='rtl' style='font-size:x-large'> -<p>شما باید درباره اصطلاح +قشنگتر از تم اصلی هست، خوشحال می‌شم به ریپو اصلی پوش کنید.</p> +</div> در لینوکس چیست؟ TTYhttps://bit-orbit.github.io/p/%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA-tty/Mon, 31 Jan 2022 19:57:05 +0330https://bit-orbit.github.io/p/%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA-tty/<img src="https://bit-orbit.github.io/images/post/tty.jpg" alt="Featured image of post در لینوکس چیست؟ TTY " /><div dir='rtl' style='font-size:x-large'> +<p>شما باید درباره اصطلاح tty زمانی که به لینوکس و یونیکس آمد، شنیده باشید. اما tty -چیست؟</p> -<p>آیا برای شما به عنوان یک کاربر دستکتاپ مفید است؟</p> -<p>به آن نیاز دارید؟ می‌توانید با آن چه کار کنید؟</p> -<p>اجازه دهید هر چیز ضروری برای آشنا کردن شما با اصطلاح +چیست؟</p> +<p>آیا برای شما به عنوان یک کاربر دستکتاپ مفید است؟</p> +<p>به آن نیاز دارید؟ می‌توانید با آن چه کار کنید؟</p> +<p>اجازه دهید هر چیز ضروری برای آشنا کردن شما با اصطلاح tty -را در این پست برسی کنیم.</p> -<p>به یاد داشته باشید که پاسخ قطعی برای این سوال وجود ندارد، +را در این پست برسی کنیم.</p> +<p>به یاد داشته باشید که پاسخ قطعی برای این سوال وجود ندارد، اما به نحوه تعامل دستگاه های input/output(ورودی/خروجی) -در گذشته ربط دارد.</p> -<p>برای اینکه تصویری شفاف از آن داشته باشید باید کمی از تاریخ‌ش را بدانید.</p> -<h3 id="تاریخ-پشت-اصطلاح-tty">تاریخ پشت اصطلاح tty</h3> -<p>همه چیز از یک -<em>teleprinter</em> -در سال 1830 شروع شد.</p> -<p>teleprinter +در گذشته ربط دارد.</p> +<p>برای اینکه تصویری شفاف از آن داشته باشید باید کمی از تاریخ‌ش را بدانید.</p> +<h3 id="تاریخ-پشت-اصطلاح-tty">تاریخ پشت اصطلاح tty +</h3><p>همه چیز از یک +<em>teleprinter</em> +در سال 1830 شروع شد.</p> +<p>teleprinter به شما اجازه می‌داد که از طریق سیم پیام ارسال و دریافت کنید. teleprinter جایگزینی برای ارطبات مورس کد بود در آن دو اپراتور برای ارطبات با یکدیگر مود نیاز بود. اما در teleprinter -فقط به یک اپراتور برای ارسال پیام نیاز داشت. درحالی که +فقط به یک اپراتور برای ارسال پیام نیاز داشت. درحالی که teleprinter یک صفحه کلید مدرن نداشت، بعد ها سیستم آن توسط Donald Murray به یک صفحه کلید -<em>teletypewriter</em> -تکامل یافت.</p> -<p>Murray +<em>teletypewriter</em> +تکامل یافت.</p> +<p>Murray زحمت اپراتور ها را برای ارسال و پیام را کاهش داد و این امکان را برای teletypeprinter @@ -3834,16 +3350,11 @@ teletypewriter tty نام کوتاه شده teletypewrite -است.</p> -<p><img src="https://bit-orbit.github.io/images/post/teletypewrite.jpg" - - - - loading="lazy" - - -></p> -<p>تفاوت بین +است.</p> +<p><img src="https://bit-orbit.github.io/images/post/teletypewrite.jpg" +loading="lazy" +></p> +<p>تفاوت بین teletypewrite و typewriter @@ -3854,89 +3365,77 @@ teletypewriter ارطبات سریع تری را تا اکنون برای انسال بدون استفاده از کامپیوتر مقدور کرده است. و اینجا جایی است که tty -بوجود آمد.</p> -<h3 id="مفهوم-مدرن">مفهوم مدرن</h3> -<p>اکنون شما باید متعجب شده باشید که چطور +بوجود آمد.</p> +<h3 id="مفهوم-مدرن">مفهوم مدرن +</h3><p>اکنون شما باید متعجب شده باشید که چطور tty -به لینوکس و کامپیوتر مدرن آمده است.</p> -<p>بسیار خب، برای شروع، زمانی که +به لینوکس و کامپیوتر مدرن آمده است.</p> +<p>بسیار خب، برای شروع، زمانی که teletypewriter به بازار رسید، چند سال بعد ترانزیستور های نیمه هادی(نیمه رسانا) توسعه داده شد که به میکروپروسسور(micro proccessor) -هایی تبدیل شدند که کامپیوتر را ممکن می‌کرند.</p> -<p>کامپیوتر های اولیه مفهومی به اسم صفحه کلید نداشتند. -<a class="link" href="https://en.wikipedia.org/wiki/Punched_card" target="_blank" rel="noopener" - >کارت های پانج</a> -روش ورودی دادن به کامپیوتر ها بود</p> -<p><img src="https://bit-orbit.github.io/images/post/punch-card.jpg" - - - - loading="lazy" - - alt="card-punch" - - -></p> -<p>درحالی که کامپیوتر ها توسعه پیدا می‌کردند، بالاخره کارت های پانچ با +هایی تبدیل شدند که کامپیوتر را ممکن می‌کرند.</p> +<p>کامپیوتر های اولیه مفهومی به اسم صفحه کلید نداشتند. +<a class="link" href="https://en.wikipedia.org/wiki/Punched_card" target="_blank" rel="noopener" +>کارت های پانج</a> +روش ورودی دادن به کامپیوتر ها بود</p> +<p><img src="https://bit-orbit.github.io/images/post/punch-card.jpg" +loading="lazy" +alt="card-punch" +></p> +<p>درحالی که کامپیوتر ها توسعه پیدا می‌کردند، بالاخره کارت های پانچ با teletypewriter -به عنوان دستگاه <em><strong><u>ورودی/خروجی</u></strong></em> مناسب جایگزین شد.    </p> -<p><img src="https://bit-orbit.github.io/images/post/pc-tty.jpg" - - - - loading="lazy" - - alt="LGP-30 computer in 1956 with a TTY attached to it" - - -></p> -<p>با توسعه تکنولوژی +به عنوان دستگاه <em><strong><u>ورودی/خروجی</u></strong></em> مناسب جایگزین شد.    </p> +<p><img src="https://bit-orbit.github.io/images/post/pc-tty.jpg" +loading="lazy" +alt="LGP-30 computer in 1956 with a TTY attached to it" +></p> +<p>با توسعه تکنولوژی teletypewriter ها با استفاده از الکترونیک مجازی شدند. پس شما به یک tty فیزیکی، مکانیکی نیاز پیدا نمی‌کنید، بلکه به یک tty -مجازی، الکترونیکی نیاز دارید.</p> -<p>اوایل کامپیوتر ها صفحه نمایش هم نداشتند. چیز ها بجای نمایش داده شدن بروی صفحه نمایش +مجازی، الکترونیکی نیاز دارید.</p> +<p>اوایل کامپیوتر ها صفحه نمایش هم نداشتند. چیز ها بجای نمایش داده شدن بروی صفحه نمایش (که وجود نداشت) به روی کاغذ چاپ می‌شدند. به همین دلیل شما بجای دیدن اصطلاح -<code>display</code> +<code>display</code> اصطلاح -<code>print</code> +<code>print</code> را می‌بینید. ویدیو ها به عنوان تکنولوژی پیشرفته به ترمینال(پایانه) ها اضافه شد. به عبارت دیگر شما باید درباره ترمینال های ویدیویی شنیده باشید. یا شما می‌توانید -آن ها را ترمینال های فیزیکی بنامید.</p> -<p>سپس اینها به ترمینال های نرم افزاری شبیه سازی شده تکامل پیدا کردند که با قابلیت ها و +آن ها را ترمینال های فیزیکی بنامید.</p> +<p>سپس اینها به ترمینال های نرم افزاری شبیه سازی شده تکامل پیدا کردند که با قابلیت ها و ویژگی های تسوسعه یافته‌ای همرا بود. این چیزی است که شما آن را terminal emulator -می‌نامید.</p> -<p>برای نمونه ترمینال -<a class="link" href="https://en.wikipedia.org/wiki/GNOME_Terminal" target="_blank" rel="noopener" - >گنوم -(Gnome)</a> +می‌نامید.</p> +<p>برای نمونه ترمینال +<a class="link" href="https://en.wikipedia.org/wiki/GNOME_Terminal" target="_blank" rel="noopener" +>گنوم +(Gnome)</a> یا -<a class="link" href="https://konsole.kde.org/" target="_blank" rel="noopener" - >کنسول -(Konsole)</a> -<a class="link" href="https://itsfoss.com/linux-terminal-emulators/" target="_blank" rel="noopener" - >چنتا از بهترین ترمینال هایی هستند که می‌توانید برای لینوکس پیدا کنید.</a></p> -<h3 id="بسیارخب-tty-در-لینوکس-چیست">بسیارخب tty در لینوکس چیست؟</h3> -<p>زمانی که +<a class="link" href="https://konsole.kde.org/" target="_blank" rel="noopener" +>کنسول +(Konsole)</a> +<a class="link" href="https://itsfoss.com/linux-terminal-emulators/" target="_blank" rel="noopener" +>چنتا از بهترین ترمینال هایی هستند که می‌توانید برای لینوکس پیدا کنید.</a></p> +<h3 id="بسیارخب-tty-در-لینوکس-چیست">بسیارخب tty در لینوکس چیست؟ +</h3><p>زمانی که tty به لینوکس و یونیکس آمد، یک دستگاه مستقل در یونیکس و لینوکس بود گاهی tty به یک دستگاه ورودی فیزیکی مانند serial port(درگاه سریال) اشاره می‌کرد، و گاهی به ترمینال های مجازی اشاره می‌کرد که به کاربران اجازه تعامل با -سیستم را می‌داد.</p> -<p>tty +سیستم را می‌داد.</p> +<p>tty یک زیر سیستم در لینوکس و یونیکس است که مدریت فرایند، ویرایش خط و مدیریت نشست ها را در سطح کرنل از طریق درایور های tty -ممکن می‌کند.</p> -<p>از دیدگاه برنامه نویسی شما باید در این موضوع عمیق تر شوید. اما محدوده این +ممکن می‌کند.</p> +<p>از دیدگاه برنامه نویسی شما باید در این موضوع عمیق تر شوید. اما محدوده این پست را در نظر بگیرید، این مقاله باید یک توضیح ساده برای درک بهتر باشد. در حقیقت، هر گاه یک ترمینال را باز می‌کنیم یا هر نوع shell @@ -3945,136 +3444,110 @@ shell با tty مجازی که -<em>PTY</em> +<em>PTY</em> یا -<em>pseudo-tty</em> -هم شناخته می‌شوند، تعامل خواهد داشت.</p> -<p>شما می‌توانید +<em>pseudo-tty</em> +هم شناخته می‌شوند، تعامل خواهد داشت.</p> +<p>شما می‌توانید tty را در ترمینال تایپ کنید و pty -مرتبط را پیدا کنید.</p> -<h3 id="چگونه-به-tty-در-لینوکس-دسترسی-داشته-باشیم">چگونه به tty در لینوکس دسترسی داشته باشیم؟</h3> -<p><img src="https://bit-orbit.github.io/images/post/ubuntu-tty.png" - - - - loading="lazy" - - alt="tty-in-ubuntu" - - -></p> -<p>دسترسی به +مرتبط را پیدا کنید.</p> +<h3 id="چگونه-به-tty-در-لینوکس-دسترسی-داشته-باشیم">چگونه به tty در لینوکس دسترسی داشته باشیم؟ +</h3><p><img src="https://bit-orbit.github.io/images/post/ubuntu-tty.png" +loading="lazy" +alt="tty-in-ubuntu" +></p> +<p>دسترسی به tty در لینوکس ساده است. در حقیت زمانی که هیچ سرنخی از اینکه tty چیست نداشتم، به طور اتفاقی به آن دسترسی پیدا کردم و از اینکه چطوری باید -از آن خارج شوم وحشت زده شدم!</p> -<p>شما می‌توانید با کلید های میانبر زیر در اکثر توزیع های لینوکس به صفحه +از آن خارج شوم وحشت زده شدم!</p> +<p>شما می‌توانید با کلید های میانبر زیر در اکثر توزیع های لینوکس به صفحه tty -دسترسی پیدا کنید.</p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F1</code> – <strong>Lockscreen</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F2</code> – <strong>Desktop Environment</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F3</code> – <strong>TTY3</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F4</code> – <strong>TTY4</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F5</code> – <strong>TT5</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F6</code> – <strong>TTY6</strong></p> -<p>شما می‌توانید حد اکثر به -<u>6</u> +دسترسی پیدا کنید.</p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F1</code> – <strong>Lockscreen</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F2</code> – <strong>Desktop Environment</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F3</code> – <strong>TTY3</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F4</code> – <strong>TTY4</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F5</code> – <strong>TT5</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F6</code> – <strong>TTY6</strong></p> +<p>شما می‌توانید حد اکثر به +<u>6</u> tty دسترسی داشته باشید، با این حال دو تا از اولین کلید های میانبر به صفحه قفل -و محیط دسکتاپ اشاره دارد.</p> -<p><img src="https://bit-orbit.github.io/images/post/ubuntu-tty4.png" - - - - loading="lazy" - - alt="cmd-with-tty" - - -></p> -<p>بنابر این، با باقی کلید های میانبر شما به محیط +و محیط دسکتاپ اشاره دارد.</p> +<p><img src="https://bit-orbit.github.io/images/post/ubuntu-tty4.png" +loading="lazy" +alt="cmd-with-tty" +></p> +<p>بنابر این، با باقی کلید های میانبر شما به محیط command-line -دسترسی می‌گیرید.</p> -<h3 id="چه-زمانی-شما-از-tty-در-لینوکس-استفاده-خواهید-کرد">چه زمانی شما از tty در لینوکس استفاده خواهید کرد؟</h3> -<p>tty -فقط یک گنج تکنیکی نیست. حتی برای کاربرانی مثل من که توسعه دهنده هم نیستند مفید است.</p> -<p>زمانی که محیط گرافیکی فریز می‌شود باید به کار بیاید. در بعضی از مواقع +دسترسی می‌گیرید.</p> +<h3 id="چه-زمانی-شما-از-tty-در-لینوکس-استفاده-خواهید-کرد">چه زمانی شما از tty در لینوکس استفاده خواهید کرد؟ +</h3><p>tty +فقط یک گنج تکنیکی نیست. حتی برای کاربرانی مثل من که توسعه دهنده هم نیستند مفید است.</p> +<p>زمانی که محیط گرافیکی فریز می‌شود باید به کار بیاید. در بعضی از مواقع نصب مجدد محیط گرافیکی با استفاده از tty -می‌تواند مشکل را حل کند.</p> -<p>یا شما می‌توانید +می‌تواند مشکل را حل کند.</p> +<p>یا شما می‌توانید tty را برای انجام کار هایی مثل آپدیت انتخاب کنید جایی که شما نمی‌خواهید مشکلات بصری فرایند -های شما را مختل کند.</p> -<p>بد ترین مورد سناریو، شما می‌تواند زمانی که محیط دستکتاپ جواب نمی‌دهد، برای ریبوت +های شما را مختل کند.</p> +<p>بد ترین مورد سناریو، شما می‌تواند زمانی که محیط دستکتاپ جواب نمی‌دهد، برای ریبوت به tty -مراجعه کنید.</p> -<p>بعضی از کاربران ترجیح می‌دهند که فایل های بزرگ را با +مراجعه کنید.</p> +<p>بعضی از کاربران ترجیح می‌دهند که فایل های بزرگ را با tty -منتقل کنند(من از آنها نیستم)</p> -<h3 id="tty-به-عنوان-یک-دستور-در-لینوکس">tty به عنوان یک دستور در لینوکس</h3> -<p><img src="https://bit-orbit.github.io/images/post/tty-cmd.png" - - - - loading="lazy" - - alt="tty-cmd" - - -></p> -<p>همانطور که در صفحه راهنمای +منتقل کنند(من از آنها نیستم)</p> +<h3 id="tty-به-عنوان-یک-دستور-در-لینوکس">tty به عنوان یک دستور در لینوکس +</h3><p><img src="https://bit-orbit.github.io/images/post/tty-cmd.png" +loading="lazy" +alt="tty-cmd" +></p> +<p>همانطور که در صفحه راهنمای (man page) tty توضیح داده شده است، زمانی که شما tty -را در ترمینال تایپ کنید، نام فایل ترمینال که به وردی استاندارد متصل است را چاپ می‌کند.</p> -<p>به عبارت دیگر برای دانستن عدد +را در ترمینال تایپ کنید، نام فایل ترمینال که به وردی استاندارد متصل است را چاپ می‌کند.</p> +<p>به عبارت دیگر برای دانستن عدد tty که به آن متصل هستید، فقط tty را در ترمینال تایپ کنید. اگر چند کاربر از راه دور به سیستم لینوکس متصل هستند، می‌توانید برای برسی اینکه به چه متصل هستند از کامند -<code>who</code> -استفاده کنید.</p> -<h3 id="خارج-از-ترجمه">خارج از ترجمه</h3> -<p>متن ترجمه شده بود و خب من یک مترجم تخصصی نیستم، من یک برنامه نویسم که بلاگ نویسی +<code>who</code> +استفاده کنید.</p> +<h3 id="خارج-از-ترجمه">خارج از ترجمه +</h3><p>متن ترجمه شده بود و خب من یک مترجم تخصصی نیستم، من یک برنامه نویسم که بلاگ نویسی و ترجمه رو هم دوست دارم، سعی کردم به بهترین نحو متن را ترجمه کنم و در اختیار بقیه بذارم، اگر حس کردین جایی از متن مشکلی داره، خیلی خوشحال می‌شوم -که مشکلم رو بهم بیگید، این کمک بزرگیه.</p> -<p>متن اصلی رو می‌توانید از -<a class="link" href="https://itsfoss.com/what-is-tty-in-linux/" target="_blank" rel="noopener" - >این لینک</a> -بخوانید.</p> -</div> - - - اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش(عکس، استایل، جاوا اسکریپت) - https://bit-orbit.github.io/p/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4%D8%B9%DA%A9%D8%B3-%D8%A7%D8%B3%D8%AA%D8%A7%DB%8C%D9%84-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA/ - Mon, 17 Jan 2022 14:56:14 +0330 - - https://bit-orbit.github.io/p/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4%D8%B9%DA%A9%D8%B3-%D8%A7%D8%B3%D8%AA%D8%A7%DB%8C%D9%84-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA/ - <img src="https://bit-orbit.github.io/images/post/snp.jpg" alt="Featured image of post اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش(عکس، استایل، جاوا اسکریپت)" /><div dir='rtl' style='font-size:23px'> -<p>زمانی که مقاله یا پستی را می‌خوانم، گاهی احساس می‌کنم ممکنه یک مطلب را فراموش کنم. +که مشکلم رو بهم بیگید، این کمک بزرگیه.</p> +<p>متن اصلی رو می‌توانید از +<a class="link" href="https://itsfoss.com/what-is-tty-in-linux/" target="_blank" rel="noopener" +>این لینک</a> +بخوانید.</p> +</div>اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش(عکس، استایل، جاوا اسکریپت)https://bit-orbit.github.io/p/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4%D8%B9%DA%A9%D8%B3-%D8%A7%D8%B3%D8%AA%D8%A7%DB%8C%D9%84-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA/Mon, 17 Jan 2022 14:56:14 +0330https://bit-orbit.github.io/p/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4%D8%B9%DA%A9%D8%B3-%D8%A7%D8%B3%D8%AA%D8%A7%DB%8C%D9%84-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA/<img src="https://bit-orbit.github.io/images/post/snp.jpg" alt="Featured image of post اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش(عکس، استایل، جاوا اسکریپت)" /><div dir='rtl' style='font-size:23px'> +<p>زمانی که مقاله یا پستی را می‌خوانم، گاهی احساس می‌کنم ممکنه یک مطلب را فراموش کنم. مثلا اگه مقاله‌ای از ویرگول درباره یک دستور لینوکس بخوانم، برای اینکه مطلبش را فراموش نکنم باید هرزگاهی به پست سر بزنم و مطالب را مرور کنم. اما فکر کنید مطلب درباره برنامه‌ای باشد که می‌توان با استفاده از آن سانسور را دور زد، -ویرگول احتمالا آن مطلب را حذف می‌کند.</p> -<ul> -<li> -<p>چه راهی برای ذخیره پست پشنهاد می‌کنید که بعدا بتوان آن را بارها مرور کرد؟</p> -</li> -<li> -<p>اگر پست از سایت منبع حذف شود، و یا حتی خود سایت دیگر در دسترس نباشد، -باز هم پستی که ذخیره کرده‌اید در دسترس است؟</p> -</li> -</ul> -<p>در این پست با استفاده از ابزار +ویرگول احتمالا آن مطلب را حذف می‌کند.</p> +<ul> +<li> +<p>چه راهی برای ذخیره پست پشنهاد می‌کنید که بعدا بتوان آن را بارها مرور کرد؟</p> +</li> +<li> +<p>اگر پست از سایت منبع حذف شود، و یا حتی خود سایت دیگر در دسترس نباشد، +باز هم پستی که ذخیره کرده‌اید در دسترس است؟</p> +</li> +</ul> +<p>در این پست با استفاده از ابزار wget یک پست را با تمامی وابستگی هایش مانند عکس ها، فایل های js، @@ -4083,62 +3556,62 @@ css دانلود می‌کنیم و روی سیستم خودمان ذخیره می‌کنیم تا حتی اگر سایت در دسترس نباشد و یا پست -از منبع حذف شد، پست به صورت افلاین در دسترس بماند.</p> -<hr> -<h3 id="wget">wget</h3> -<p>می‌دونید که +از منبع حذف شد، پست به صورت افلاین در دسترس بماند.</p> +<hr> +<h3 id="wget">wget +</h3><p>می‌دونید که wget یک ابزار پیشرفته برای دانلود فایله، قابلیت های زیادی که داره باعث شده بعد از سالها که ابزار های پیشرفته دانلود هم نوشته شدن، همچنان wget استفاده بشه. این برنامه روی اکثر توزیع های لینوکس به صورت دیفالت نصبه پس بیایید بدون تلف کردن وقت -سوییچ های مهم برای میرور کردن یک صفحه سایت رو برسی کنیم.</p> -<p></br></br></p> -<p><strong>Ⅰ.</strong> <code>--adjust-extension</code>, <code>-E</code></p> -<p>شاید شما هم سایتی هایی را دیده باشید که -<em>url</em> +سوییچ های مهم برای میرور کردن یک صفحه سایت رو برسی کنیم.</p> +<p></br></br></p> +<p><strong>Ⅰ.</strong> <code>--adjust-extension</code>, <code>-E</code></p> +<p>شاید شما هم سایتی هایی را دیده باشید که +<em>url</em> صفحه هایشان با پسوند -<code>.asp</code> +<code>.asp</code> به پایان می‌رسند. برای مثال نگاهی به -<a class="link" href="https://www.w3schools.com/python/default.asp" target="_blank" rel="noopener" - >این آدرس</a> +<a class="link" href="https://www.w3schools.com/python/default.asp" target="_blank" rel="noopener" +>این آدرس</a> بیاندازید -<em><a class="link" href="https://www.w3schools.com/python/default.asp" target="_blank" rel="noopener" - >https://www.w3schools.com/python/default.asp</a></em> +<em><a class="link" href="https://www.w3schools.com/python/default.asp" target="_blank" rel="noopener" +>https://www.w3schools.com/python/default.asp</a></em> همانطور که می‌بینید با -<em>asp</em> +<em>asp</em> به پایان می‌رسد. زمانی که شما این صفحه را دانلود کنید، این صفحه بجای پسوند -<em>html.</em> +<em>html.</em> با پسوند -<em>asp.</em> -ذخیره خواهد شد.</p> -<blockquote> -<p>به همین دلیل ما از این سوییچ استفاده می‌کنیم تا صفحه ها را +<em>asp.</em> +ذخیره خواهد شد.</p> +<blockquote> +<p>به همین دلیل ما از این سوییچ استفاده می‌کنیم تا صفحه ها را با پسوند -<em>html.</em> -ذخیره کنیم.</p> -</blockquote> -<div dir='ltr'> -</br> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span><span class="lnt">3 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ https://example.com/some/where -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl"><span class="c1"># where.html</span> -</span></span></code></pre></td></tr></table> -</div> -</div></div> -<p></br></br></p> -<p><strong>Ⅱ.</strong> <code>--span-hosts</code>, <code>-H</code></p> -<p>اگر حتی فقط یک صفحه را میرور می‌کنیم، آن صفحه ممکن است به فایل های خارج از سایت +<em>html.</em> +ذخیره کنیم.</p> +</blockquote> +<div dir='ltr'> +</br> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ https://example.com/some/where +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="c1"># where.html</span> +</span></span></code></pre></td></tr></table> +</div> +</div></div> +<p></br></br></p> +<p><strong>Ⅱ.</strong> <code>--span-hosts</code>, <code>-H</code></p> +<p>اگر حتی فقط یک صفحه را میرور می‌کنیم، آن صفحه ممکن است به فایل های خارج از سایت که به روی یک CDN قرار گرفته اند @@ -4146,1320 +3619,1300 @@ CDN style sheet ها. از اینرو وقتی شما یک صفحه را میرور می‌کنید wget -فایل های خارج از سایت را دانلود نخواهد کرد.</p> -<blockquote> -<p>پوشش دادن فایل های خارج از سایت با استفاده از این سوییچ انجام داده می‌شود. +فایل های خارج از سایت را دانلود نخواهد کرد.</p> +<blockquote> +<p>پوشش دادن فایل های خارج از سایت با استفاده از این سوییچ انجام داده می‌شود. وقتی این سوییچ را روشن کنید wget همه لینک ها از جمله لینک هایی زیر دامنه را هم دانلود خواهد کرد، مگر اینکه عمق -پوشش دادن را محدود کنید.</p> -</blockquote> -<p></br></br></p> -<p><strong>Ⅲ.</strong> <code>--convert-links</code>, <code>-k</code></p> -<p>یک صفحه را که میرور کردیم با توجه به اینکه فایل های پیشیاز مثل عکس و استایل ها را +پوشش دادن را محدود کنید.</p> +</blockquote> +<p></br></br></p> +<p><strong>Ⅲ.</strong> <code>--convert-links</code>, <code>-k</code></p> +<p>یک صفحه را که میرور کردیم با توجه به اینکه فایل های پیشیاز مثل عکس و استایل ها را هم دانلود کردیم، وقتی فایل را با مرورگر باز کنیم همچنان صفحه html ما به فایل های داخل سایت منبع لینک شده است و فایل های پیشنازش را حتی با اینکه -روی سیستم داریم، باز هم از آدرس خارجی دریافت می‌کند و نمایش می‌دهد.</p> -<blockquote> -<p>برای اینکه یک صفحه فایل های پیشنیازش را از فایل هایی که در کنار صفحه اصلی دانلود +روی سیستم داریم، باز هم از آدرس خارجی دریافت می‌کند و نمایش می‌دهد.</p> +<blockquote> +<p>برای اینکه یک صفحه فایل های پیشنیازش را از فایل هایی که در کنار صفحه اصلی دانلود کرده است بگیرد، از این سوییچ استفاده می‌کنیم. این سوییچ تمامی لینک ها را به -لینک های داخلی تبدیل می‌کند و صفحه موقع لود شدن از فایل های داخلی استفاده می‌کند.</p> -</blockquote> -<p></br></br></p> -<p><strong>Ⅳ.</strong> <code>--page-requisites</code>, <code>-p</code></p> -<blockquote> -<p>این سوییچ باعث می‌شود که +لینک های داخلی تبدیل می‌کند و صفحه موقع لود شدن از فایل های داخلی استفاده می‌کند.</p> +</blockquote> +<p></br></br></p> +<p><strong>Ⅳ.</strong> <code>--page-requisites</code>, <code>-p</code></p> +<blockquote> +<p>این سوییچ باعث می‌شود که wget تمامی فایل های ضروری برای درست نمایش داده شدن html -را دانلود کند. این فایل ها شامل عکس ها، استایل ها و یا صدا ها می‌شود.</p> -</blockquote> -<p></br></br></p> -<p><strong>Ⅴ.</strong> <code>--no-directories</code>, <code>-nd</code></p> -<p>به صورت پیشفرض زمانی که صفحه‌ای با این ادرس را دانلود کنیم</p> -<p><code>https://example.com/some/where/page.html</code></p> -<p>برنامه +را دانلود کند. این فایل ها شامل عکس ها، استایل ها و یا صدا ها می‌شود.</p> +</blockquote> +<p></br></br></p> +<p><strong>Ⅴ.</strong> <code>--no-directories</code>, <code>-nd</code></p> +<p>به صورت پیشفرض زمانی که صفحه‌ای با این ادرس را دانلود کنیم</p> +<p><code>https://example.com/some/where/page.html</code></p> +<p>برنامه wget -این صفحه و فایل های مورد نیازش را به این صورت ذخیره خواهد کرد</p> -<p><code>some/where/page.html/.</code></p> -<p>اما با استفاده از سوییچ -<code>nd-</code> -آن صفحه و فایل های مورد نیازش فقط داخل یک دایرکتوری ذخیره خواهد شد. به این صورت</p> -<p><code>page.html/.</code></p> -<blockquote> -<p>با فعال کردن این سوییچ +این صفحه و فایل های مورد نیازش را به این صورت ذخیره خواهد کرد</p> +<p><code>some/where/page.html/.</code></p> +<p>اما با استفاده از سوییچ +<code>nd-</code> +آن صفحه و فایل های مورد نیازش فقط داخل یک دایرکتوری ذخیره خواهد شد. به این صورت</p> +<p><code>page.html/.</code></p> +<blockquote> +<p>با فعال کردن این سوییچ wget صفحه و فایل های پیشنیاز را داخل دایرکتوری فعلی ذخیره خواهد کرد. و اگر -نام یک فایل بیش از یکبار تکرار شود، به نام فایل پسوند اضافه خواهد شد.</p> -</blockquote> -<p></br></br></p> -<h3 id="مثال-کاربردی-و-خروجی">مثال کاربردی و خروجی</h3> -<ul> -<li>برای مثال من یک -<a class="link" href="https://vrgl.ir/c3fVa" target="_blank" rel="noopener" - >پست توی ویرگول</a> +نام یک فایل بیش از یکبار تکرار شود، به نام فایل پسوند اضافه خواهد شد.</p> +</blockquote> +<p></br></br></p> +<h3 id="مثال-کاربردی-و-خروجی">مثال کاربردی و خروجی +</h3><ul> +<li>برای مثال من یک +<a class="link" href="https://vrgl.ir/c3fVa" target="_blank" rel="noopener" +>پست توی ویرگول</a> که آموزش الگوریتم RSA -هست رو دانلود می‌کنم.</li> -</ul> -</br> -</div> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt"> 10 -</span><span class="lnt"> 11 -</span><span class="lnt"> 12 -</span><span class="lnt"> 13 -</span><span class="lnt"> 14 -</span><span class="lnt"> 15 -</span><span class="lnt"> 16 -</span><span class="lnt"> 17 -</span><span class="lnt"> 18 -</span><span class="lnt"> 19 -</span><span class="lnt"> 20 -</span><span class="lnt"> 21 -</span><span class="lnt"> 22 -</span><span class="lnt"> 23 -</span><span class="lnt"> 24 -</span><span class="lnt"> 25 -</span><span class="lnt"> 26 -</span><span class="lnt"> 27 -</span><span class="lnt"> 28 -</span><span class="lnt"> 29 -</span><span class="lnt"> 30 -</span><span class="lnt"> 31 -</span><span class="lnt"> 32 -</span><span class="lnt"> 33 -</span><span class="lnt"> 34 -</span><span class="lnt"> 35 -</span><span class="lnt"> 36 -</span><span class="lnt"> 37 -</span><span class="lnt"> 38 -</span><span class="lnt"> 39 -</span><span class="lnt"> 40 -</span><span class="lnt"> 41 -</span><span class="lnt"> 42 -</span><span class="lnt"> 43 -</span><span class="lnt"> 44 -</span><span class="lnt"> 45 -</span><span class="lnt"> 46 -</span><span class="lnt"> 47 -</span><span class="lnt"> 48 -</span><span class="lnt"> 49 -</span><span class="lnt"> 50 -</span><span class="lnt"> 51 -</span><span class="lnt"> 52 -</span><span class="lnt"> 53 -</span><span class="lnt"> 54 -</span><span class="lnt"> 55 -</span><span class="lnt"> 56 -</span><span class="lnt"> 57 -</span><span class="lnt"> 58 -</span><span class="lnt"> 59 -</span><span class="lnt"> 60 -</span><span class="lnt"> 61 -</span><span class="lnt"> 62 -</span><span class="lnt"> 63 -</span><span class="lnt"> 64 -</span><span class="lnt"> 65 -</span><span class="lnt"> 66 -</span><span class="lnt"> 67 -</span><span class="lnt"> 68 -</span><span class="lnt"> 69 -</span><span class="lnt"> 70 -</span><span class="lnt"> 71 -</span><span class="lnt"> 72 -</span><span class="lnt"> 73 -</span><span class="lnt"> 74 -</span><span class="lnt"> 75 -</span><span class="lnt"> 76 -</span><span class="lnt"> 77 -</span><span class="lnt"> 78 -</span><span class="lnt"> 79 -</span><span class="lnt"> 80 -</span><span class="lnt"> 81 -</span><span class="lnt"> 82 -</span><span class="lnt"> 83 -</span><span class="lnt"> 84 -</span><span class="lnt"> 85 -</span><span class="lnt"> 86 -</span><span class="lnt"> 87 -</span><span class="lnt"> 88 -</span><span class="lnt"> 89 -</span><span class="lnt"> 90 -</span><span class="lnt"> 91 -</span><span class="lnt"> 92 -</span><span class="lnt"> 93 -</span><span class="lnt"> 94 -</span><span class="lnt"> 95 -</span><span class="lnt"> 96 -</span><span class="lnt"> 97 -</span><span class="lnt"> 98 -</span><span class="lnt"> 99 -</span><span class="lnt">100 -</span><span class="lnt">101 -</span><span class="lnt">102 -</span><span class="lnt">103 -</span><span class="lnt">104 -</span><span class="lnt">105 -</span><span class="lnt">106 -</span><span class="lnt">107 -</span><span class="lnt">108 -</span><span class="lnt">109 -</span><span class="lnt">110 -</span><span class="lnt">111 -</span><span class="lnt">112 -</span><span class="lnt">113 -</span><span class="lnt">114 -</span><span class="lnt">115 -</span><span class="lnt">116 -</span><span class="lnt">117 -</span><span class="lnt">118 -</span><span class="lnt">119 -</span><span class="lnt">120 -</span><span class="lnt">121 -</span><span class="lnt">122 -</span><span class="lnt">123 -</span><span class="lnt">124 -</span><span class="lnt">125 -</span><span class="lnt">126 -</span><span class="lnt">127 -</span><span class="lnt">128 -</span><span class="lnt">129 -</span><span class="lnt">130 -</span><span class="lnt">131 -</span><span class="lnt">132 -</span><span class="lnt">133 -</span><span class="lnt">134 -</span><span class="lnt">135 -</span><span class="lnt">136 -</span><span class="lnt">137 -</span><span class="lnt">138 -</span><span class="lnt">139 -</span><span class="lnt">140 -</span><span class="lnt">141 -</span><span class="lnt">142 -</span><span class="lnt">143 -</span><span class="lnt">144 -</span><span class="lnt">145 -</span><span class="lnt">146 -</span><span class="lnt">147 -</span><span class="lnt">148 -</span><span class="lnt">149 -</span><span class="lnt">150 -</span><span class="lnt">151 -</span><span class="lnt">152 -</span><span class="lnt">153 -</span><span class="lnt">154 -</span><span class="lnt">155 -</span><span class="lnt">156 -</span><span class="lnt">157 -</span><span class="lnt">158 -</span><span class="lnt">159 -</span><span class="lnt">160 -</span><span class="lnt">161 -</span><span class="lnt">162 -</span><span class="lnt">163 -</span><span class="lnt">164 -</span><span class="lnt">165 -</span><span class="lnt">166 -</span><span class="lnt">167 -</span><span class="lnt">168 -</span><span class="lnt">169 -</span><span class="lnt">170 -</span><span class="lnt">171 -</span><span class="lnt">172 -</span><span class="lnt">173 -</span><span class="lnt">174 -</span><span class="lnt">175 -</span><span class="lnt">176 -</span><span class="lnt">177 -</span><span class="lnt">178 -</span><span class="lnt">179 -</span><span class="lnt">180 -</span><span class="lnt">181 -</span><span class="lnt">182 -</span><span class="lnt">183 -</span><span class="lnt">184 -</span><span class="lnt">185 -</span><span class="lnt">186 -</span><span class="lnt">187 -</span><span class="lnt">188 -</span><span class="lnt">189 -</span><span class="lnt">190 -</span><span class="lnt">191 -</span><span class="lnt">192 -</span><span class="lnt">193 -</span><span class="lnt">194 -</span><span class="lnt">195 -</span><span class="lnt">196 -</span><span class="lnt">197 -</span><span class="lnt">198 -</span><span class="lnt">199 -</span><span class="lnt">200 -</span><span class="lnt">201 -</span><span class="lnt">202 -</span><span class="lnt">203 -</span><span class="lnt">204 -</span><span class="lnt">205 -</span><span class="lnt">206 -</span><span class="lnt">207 -</span><span class="lnt">208 -</span><span class="lnt">209 -</span><span class="lnt">210 -</span><span class="lnt">211 -</span><span class="lnt">212 -</span><span class="lnt">213 -</span><span class="lnt">214 -</span><span class="lnt">215 -</span><span class="lnt">216 -</span><span class="lnt">217 -</span><span class="lnt">218 -</span><span class="lnt">219 -</span><span class="lnt">220 -</span><span class="lnt">221 -</span><span class="lnt">222 -</span><span class="lnt">223 -</span><span class="lnt">224 -</span><span class="lnt">225 -</span><span class="lnt">226 -</span><span class="lnt">227 -</span><span class="lnt">228 -</span><span class="lnt">229 -</span><span class="lnt">230 -</span><span class="lnt">231 -</span><span class="lnt">232 -</span><span class="lnt">233 -</span><span class="lnt">234 -</span><span class="lnt">235 -</span><span class="lnt">236 -</span><span class="lnt">237 -</span><span class="lnt">238 -</span><span class="lnt">239 -</span><span class="lnt">240 -</span><span class="lnt">241 -</span><span class="lnt">242 -</span><span class="lnt">243 -</span><span class="lnt">244 -</span><span class="lnt">245 -</span><span class="lnt">246 -</span><span class="lnt">247 -</span><span class="lnt">248 -</span><span class="lnt">249 -</span><span class="lnt">250 -</span><span class="lnt">251 -</span><span class="lnt">252 -</span><span class="lnt">253 -</span><span class="lnt">254 -</span><span class="lnt">255 -</span><span class="lnt">256 -</span><span class="lnt">257 -</span><span class="lnt">258 -</span><span class="lnt">259 -</span><span class="lnt">260 -</span><span class="lnt">261 -</span><span class="lnt">262 -</span><span class="lnt">263 -</span><span class="lnt">264 -</span><span class="lnt">265 -</span><span class="lnt">266 -</span><span class="lnt">267 -</span><span class="lnt">268 -</span><span class="lnt">269 -</span><span class="lnt">270 -</span><span class="lnt">271 -</span><span class="lnt">272 -</span><span class="lnt">273 -</span><span class="lnt">274 -</span><span class="lnt">275 -</span><span class="lnt">276 -</span><span class="lnt">277 -</span><span class="lnt">278 -</span><span class="lnt">279 -</span><span class="lnt">280 -</span><span class="lnt">281 -</span><span class="lnt">282 -</span><span class="lnt">283 -</span><span class="lnt">284 -</span><span class="lnt">285 -</span><span class="lnt">286 -</span><span class="lnt">287 -</span><span class="lnt">288 -</span><span class="lnt">289 -</span><span class="lnt">290 -</span><span class="lnt">291 -</span><span class="lnt">292 -</span><span class="lnt">293 -</span><span class="lnt">294 -</span><span class="lnt">295 -</span><span class="lnt">296 -</span><span class="lnt">297 -</span><span class="lnt">298 -</span><span class="lnt">299 -</span><span class="lnt">300 -</span><span class="lnt">301 -</span><span class="lnt">302 -</span><span class="lnt">303 -</span><span class="lnt">304 -</span><span class="lnt">305 -</span><span class="lnt">306 -</span><span class="lnt">307 -</span><span class="lnt">308 -</span><span class="lnt">309 -</span><span class="lnt">310 -</span><span class="lnt">311 -</span><span class="lnt">312 -</span><span class="lnt">313 -</span><span class="lnt">314 -</span><span class="lnt">315 -</span><span class="lnt">316 -</span><span class="lnt">317 -</span><span class="lnt">318 -</span><span class="lnt">319 -</span><span class="lnt">320 -</span><span class="lnt">321 -</span><span class="lnt">322 -</span><span class="lnt">323 -</span><span class="lnt">324 -</span><span class="lnt">325 -</span><span class="lnt">326 -</span><span class="lnt">327 -</span><span class="lnt">328 -</span><span class="lnt">329 -</span><span class="lnt">330 -</span><span class="lnt">331 -</span><span class="lnt">332 -</span><span class="lnt">333 -</span><span class="lnt">334 -</span><span class="lnt">335 -</span><span class="lnt">336 -</span><span class="lnt">337 -</span><span class="lnt">338 -</span><span class="lnt">339 -</span><span class="lnt">340 -</span><span class="lnt">341 -</span><span class="lnt">342 -</span><span class="lnt">343 -</span><span class="lnt">344 -</span><span class="lnt">345 -</span><span class="lnt">346 -</span><span class="lnt">347 -</span><span class="lnt">348 -</span><span class="lnt">349 -</span><span class="lnt">350 -</span><span class="lnt">351 -</span><span class="lnt">352 -</span><span class="lnt">353 -</span><span class="lnt">354 -</span><span class="lnt">355 -</span><span class="lnt">356 -</span><span class="lnt">357 -</span><span class="lnt">358 -</span><span class="lnt">359 -</span><span class="lnt">360 -</span><span class="lnt">361 -</span><span class="lnt">362 -</span><span class="lnt">363 -</span><span class="lnt">364 -</span><span class="lnt">365 -</span><span class="lnt">366 -</span><span class="lnt">367 -</span><span class="lnt">368 -</span><span class="lnt">369 -</span><span class="lnt">370 -</span><span class="lnt">371 -</span><span class="lnt">372 -</span><span class="lnt">373 -</span><span class="lnt">374 -</span><span class="lnt">375 -</span><span class="lnt">376 -</span><span class="lnt">377 -</span><span class="lnt">378 -</span><span class="lnt">379 -</span><span class="lnt">380 -</span><span class="lnt">381 -</span><span class="lnt">382 -</span><span class="lnt">383 -</span><span class="lnt">384 -</span><span class="lnt">385 -</span><span class="lnt">386 -</span><span class="lnt">387 -</span><span class="lnt">388 -</span><span class="lnt">389 -</span><span class="lnt">390 -</span><span class="lnt">391 -</span><span class="lnt">392 -</span><span class="lnt">393 -</span><span class="lnt">394 -</span><span class="lnt">395 -</span><span class="lnt">396 -</span><span class="lnt">397 -</span><span class="lnt">398 -</span><span class="lnt">399 -</span><span class="lnt">400 -</span><span class="lnt">401 -</span><span class="lnt">402 -</span><span class="lnt">403 -</span><span class="lnt">404 -</span><span class="lnt">405 -</span><span class="lnt">406 -</span><span class="lnt">407 -</span><span class="lnt">408 -</span><span class="lnt">409 -</span><span class="lnt">410 -</span><span class="lnt">411 -</span><span class="lnt">412 -</span><span class="lnt">413 -</span><span class="lnt">414 -</span><span class="lnt">415 -</span><span class="lnt">416 -</span><span class="lnt">417 -</span><span class="lnt">418 -</span><span class="lnt">419 -</span><span class="lnt">420 -</span><span class="lnt">421 -</span><span class="lnt">422 -</span><span class="lnt">423 -</span><span class="lnt">424 -</span><span class="lnt">425 -</span><span class="lnt">426 -</span><span class="lnt">427 -</span><span class="lnt">428 -</span><span class="lnt">429 -</span><span class="lnt">430 -</span><span class="lnt">431 -</span><span class="lnt">432 -</span><span class="lnt">433 -</span><span class="lnt">434 -</span><span class="lnt">435 -</span><span class="lnt">436 -</span><span class="lnt">437 -</span><span class="lnt">438 -</span><span class="lnt">439 -</span><span class="lnt">440 -</span><span class="lnt">441 -</span><span class="lnt">442 -</span><span class="lnt">443 -</span><span class="lnt">444 -</span><span class="lnt">445 -</span><span class="lnt">446 -</span><span class="lnt">447 -</span><span class="lnt">448 -</span><span class="lnt">449 -</span><span class="lnt">450 -</span><span class="lnt">451 -</span><span class="lnt">452 -</span><span class="lnt">453 -</span><span class="lnt">454 -</span><span class="lnt">455 -</span><span class="lnt">456 -</span><span class="lnt">457 -</span><span class="lnt">458 -</span><span class="lnt">459 -</span><span class="lnt">460 -</span><span class="lnt">461 -</span><span class="lnt">462 -</span><span class="lnt">463 -</span><span class="lnt">464 -</span><span class="lnt">465 -</span><span class="lnt">466 -</span><span class="lnt">467 -</span><span class="lnt">468 -</span><span class="lnt">469 -</span><span class="lnt">470 -</span><span class="lnt">471 -</span><span class="lnt">472 -</span><span class="lnt">473 -</span><span class="lnt">474 -</span><span class="lnt">475 -</span><span class="lnt">476 -</span><span class="lnt">477 -</span><span class="lnt">478 -</span><span class="lnt">479 -</span><span class="lnt">480 -</span><span class="lnt">481 -</span><span class="lnt">482 -</span><span class="lnt">483 -</span><span class="lnt">484 -</span><span class="lnt">485 -</span><span class="lnt">486 -</span><span class="lnt">487 -</span><span class="lnt">488 -</span><span class="lnt">489 -</span><span class="lnt">490 -</span><span class="lnt">491 -</span><span class="lnt">492 -</span><span class="lnt">493 -</span><span class="lnt">494 -</span><span class="lnt">495 -</span><span class="lnt">496 -</span><span class="lnt">497 -</span><span class="lnt">498 -</span><span class="lnt">499 -</span><span class="lnt">500 -</span><span class="lnt">501 -</span><span class="lnt">502 -</span><span class="lnt">503 -</span><span class="lnt">504 -</span><span class="lnt">505 -</span><span class="lnt">506 -</span><span class="lnt">507 -</span><span class="lnt">508 -</span><span class="lnt">509 -</span><span class="lnt">510 -</span><span class="lnt">511 -</span><span class="lnt">512 -</span><span class="lnt">513 -</span><span class="lnt">514 -</span><span class="lnt">515 -</span><span class="lnt">516 -</span><span class="lnt">517 -</span><span class="lnt">518 -</span><span class="lnt">519 -</span><span class="lnt">520 -</span><span class="lnt">521 -</span><span class="lnt">522 -</span><span class="lnt">523 -</span><span class="lnt">524 -</span><span class="lnt">525 -</span><span class="lnt">526 -</span><span class="lnt">527 -</span><span class="lnt">528 -</span><span class="lnt">529 -</span><span class="lnt">530 -</span><span class="lnt">531 -</span><span class="lnt">532 -</span><span class="lnt">533 -</span><span class="lnt">534 -</span><span class="lnt">535 -</span><span class="lnt">536 -</span><span class="lnt">537 -</span><span class="lnt">538 -</span><span class="lnt">539 -</span><span class="lnt">540 -</span><span class="lnt">541 -</span><span class="lnt">542 -</span><span class="lnt">543 -</span><span class="lnt">544 -</span><span class="lnt">545 -</span><span class="lnt">546 -</span><span class="lnt">547 -</span><span class="lnt">548 -</span><span class="lnt">549 -</span><span class="lnt">550 -</span><span class="lnt">551 -</span><span class="lnt">552 -</span><span class="lnt">553 -</span><span class="lnt">554 -</span><span class="lnt">555 -</span><span class="lnt">556 -</span><span class="lnt">557 -</span><span class="lnt">558 -</span><span class="lnt">559 -</span><span class="lnt">560 -</span><span class="lnt">561 -</span><span class="lnt">562 -</span><span class="lnt">563 -</span><span class="lnt">564 -</span><span class="lnt">565 -</span><span class="lnt">566 -</span><span class="lnt">567 -</span><span class="lnt">568 -</span><span class="lnt">569 -</span><span class="lnt">570 -</span><span class="lnt">571 -</span><span class="lnt">572 -</span><span class="lnt">573 -</span><span class="lnt">574 -</span><span class="lnt">575 -</span><span class="lnt">576 -</span><span class="lnt">577 -</span><span class="lnt">578 -</span><span class="lnt">579 -</span><span class="lnt">580 -</span><span class="lnt">581 -</span><span class="lnt">582 -</span><span class="lnt">583 -</span><span class="lnt">584 -</span><span class="lnt">585 -</span><span class="lnt">586 -</span><span class="lnt">587 -</span><span class="lnt">588 -</span><span class="lnt">589 -</span><span class="lnt">590 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">┌─<span class="o">[</span>loading<span class="o">]</span> <span class="o">[</span>/tmp/virgool<span class="o">]</span> <span class="o">[</span>0<span class="o">]</span> -</span></span><span class="line"><span class="cl">│ -</span></span><span class="line"><span class="cl">└──〉wget -nd -E -p -k -H https://vrgl.ir/c3fVa -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:03-- https://vrgl.ir/c3fVa -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">302</span> Found -</span></span><span class="line"><span class="cl">Location: https://virgool.io/@Novo/rsa-encryption-ao1poasym4cf <span class="o">[</span>following<span class="o">]</span> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:04-- https://virgool.io/@Novo/rsa-encryption-ao1poasym4cf -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/html<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘c3fVa.html’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">c3fVa.html <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 61.30K 200KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:06 <span class="o">(</span><span class="m">200</span> KB/s<span class="o">)</span> - ‘c3fVa.html’ saved <span class="o">[</span>62773<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:06-- https://virgool.io/robots.txt -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>document<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘robots.txt’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">robots.txt <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">484</span> --.-KB/s in 0s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:07 <span class="o">(</span>85.7 MB/s<span class="o">)</span> - ‘robots.txt’ saved <span class="o">[</span>484<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:07-- https://www.googletagmanager.com/robots.txt -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">404</span> Not Found -</span></span><span class="line"><span class="cl">2022-01-18 06:41:08 ERROR 404: Not Found. -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:08-- https://files.virgool.io/robots.txt -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">403</span> Forbidden -</span></span><span class="line"><span class="cl">2022-01-18 06:41:09 ERROR 403: Forbidden. -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:09-- https://static.cloudflareinsights.com/robots.txt -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">522</span> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:26 ERROR 522: <span class="o">(</span>no description<span class="o">)</span>. -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:26-- https://virgool.io/images/favicon.png?v<span class="o">=</span>v2.6.15 -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">9855</span> <span class="o">(</span>9.6K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘favicon.png?v<span class="o">=</span>v2.6.15’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">favicon.png?v<span class="o">=</span>v2.6.15 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 9.62K --.-KB/s in 0.07s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:27 <span class="o">(</span><span class="m">130</span> KB/s<span class="o">)</span> - ‘favicon.png?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>9855/9855<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:27-- https://virgool.io/css/styles.css?v<span class="o">=</span>v2.6.15 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/css<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘styles.css?v<span class="o">=</span>v2.6.15.css’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">styles.css?v<span class="o">=</span>v2.6.15.css <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 903.60K 592KB/s in 1.5s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:28 <span class="o">(</span><span class="m">592</span> KB/s<span class="o">)</span> - ‘styles.css?v<span class="o">=</span>v2.6.15.css’ saved <span class="o">[</span>925284<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:28-- https://virgool.test/robots.txt -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:28-- https://www.googletagmanager.com/ns.html?id<span class="o">=</span>GTM-5GS688K -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/html<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘ns.html?id<span class="o">=</span>GTM-5GS688K.html’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">ns.html?id<span class="o">=</span>GTM-5GS688K.html <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">266</span> --.-KB/s in 0s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:29 <span class="o">(</span>29.4 MB/s<span class="o">)</span> - ‘ns.html?id<span class="o">=</span>GTM-5GS688K.html’ saved <span class="o">[</span>266<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:29-- https://files.virgool.io/upload/users/31434/avatar/1C4LLE.png?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">39194</span> <span class="o">(</span>38K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_ 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 38.28K 173KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:30 <span class="o">(</span><span class="m">173</span> KB/s<span class="o">)</span> - ‘1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>39194/39194<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:30-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/qhokakomwyb5.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">179870</span> <span class="o">(</span>176K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘qhokakomwyb5.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">qhokakomwyb5.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 175.65K 567KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">567</span> KB/s<span class="o">)</span> - ‘qhokakomwyb5.png’ saved <span class="o">[</span>179870/179870<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/v1xnwpnewfys.webp -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">12770</span> <span class="o">(</span>12K<span class="o">)</span> <span class="o">[</span>image/webp<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘v1xnwpnewfys.webp’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">v1xnwpnewfys.webp 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 12.47K --.-KB/s in 0.07s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">180</span> KB/s<span class="o">)</span> - ‘v1xnwpnewfys.webp’ saved <span class="o">[</span>12770/12770<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/d28hpu2detkl.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">92847</span> <span class="o">(</span>91K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘d28hpu2detkl.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">d28hpu2detkl.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 90.67K --.-KB/s in 0.09s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">969</span> KB/s<span class="o">)</span> - ‘d28hpu2detkl.png’ saved <span class="o">[</span>92847/92847<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/rhyykrc8azq0.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">17539</span> <span class="o">(</span>17K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘rhyykrc8azq0.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">rhyykrc8azq0.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 17.13K --.-KB/s in 0.007s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>2.47 MB/s<span class="o">)</span> - ‘rhyykrc8azq0.png’ saved <span class="o">[</span>17539/17539<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/fjtc1ydzkuse.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">108524</span> <span class="o">(</span>106K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘fjtc1ydzkuse.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">fjtc1ydzkuse.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 105.98K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>1.06 MB/s<span class="o">)</span> - ‘fjtc1ydzkuse.png’ saved <span class="o">[</span>108524/108524<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/gfqhgyp18oic.jpeg -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">132085</span> <span class="o">(</span>129K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘gfqhgyp18oic.jpeg’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">gfqhgyp18oic.jpeg 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 128.99K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>1.28 MB/s<span class="o">)</span> - ‘gfqhgyp18oic.jpeg’ saved <span class="o">[</span>132085/132085<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/me0mpjtdmyom.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">113489</span> <span class="o">(</span>111K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘me0mpjtdmyom.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">me0mpjtdmyom.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 110.83K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span><span class="m">814</span> KB/s<span class="o">)</span> - ‘me0mpjtdmyom.png’ saved <span class="o">[</span>113489/113489<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/of7krju6oqzk.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">105746</span> <span class="o">(</span>103K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘of7krju6oqzk.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">of7krju6oqzk.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 103.27K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span>1.25 MB/s<span class="o">)</span> - ‘of7krju6oqzk.png’ saved <span class="o">[</span>105746/105746<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/oqwhflg4gbnq.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">120994</span> <span class="o">(</span>118K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘oqwhflg4gbnq.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">oqwhflg4gbnq.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 118.16K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span>1.14 MB/s<span class="o">)</span> - ‘oqwhflg4gbnq.png’ saved <span class="o">[</span>120994/120994<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/taqjnfnuzxcx.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">122678</span> <span class="o">(</span>120K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘taqjnfnuzxcx.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">taqjnfnuzxcx.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 119.80K --.-KB/s in 0.06s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span>2.00 MB/s<span class="o">)</span> - ‘taqjnfnuzxcx.png’ saved <span class="o">[</span>122678/122678<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/63/posts/qwqrubplfaau/g8vai2incgna.jpeg?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">88292</span> <span class="o">(</span>86K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fre 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 86.22K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span><span class="m">824</span> KB/s<span class="o">)</span> - ‘g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>88292/88292<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/63/avatar/o8jiNe.png?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">32037</span> <span class="o">(</span>31K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_ 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 31.29K --.-KB/s in 0.06s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span><span class="m">558</span> KB/s<span class="o">)</span> - ‘o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>32037/32037<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/31434/posts/e3oydlcfkr5e/figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">30356</span> <span class="o">(</span>30K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fre 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 29.64K --.-KB/s in 0.07s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span><span class="m">401</span> KB/s<span class="o">)</span> - ‘figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>30356/30356<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://files.virgool.io/upload/users/316150/posts/r8rhw88uh1xh/cs1ugyelv3zw.png?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">34459</span> <span class="o">(</span>34K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fres 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 33.65K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span><span class="m">399</span> KB/s<span class="o">)</span> - ‘cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>34459/34459<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://files.virgool.io/upload/users/316150/avatar/8sz7Rs.jpeg?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">14764</span> <span class="o">(</span>14K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 14.42K --.-KB/s in 0.007s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span>2.11 MB/s<span class="o">)</span> - ‘8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>14764/14764<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://virgool.io/js/commons.js?v<span class="o">=</span>v2.6.15 -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/javascript<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘commons.js?v<span class="o">=</span>v2.6.15’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">commons.js?v<span class="o">=</span>v2.6.15 <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 997.55K 337KB/s in 3.0s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:39 <span class="o">(</span><span class="m">337</span> KB/s<span class="o">)</span> - ‘commons.js?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>1021492<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:39-- https://virgool.io/js/main.js?v<span class="o">=</span>v2.6.15 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/javascript<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘main.js?v<span class="o">=</span>v2.6.15’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">main.js?v<span class="o">=</span>v2.6.15 <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 1.21M 580KB/s in 2.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:41 <span class="o">(</span><span class="m">580</span> KB/s<span class="o">)</span> - ‘main.js?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>1267632<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:41-- https://static.cloudflareinsights.com/beacon.min.js/v652eace1692a40cfa3763df669d7439c1639079717194 -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">13970</span> <span class="o">(</span>14K<span class="o">)</span> <span class="o">[</span>text/javascript<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘v652eace1692a40cfa3763df669d7439c1639079717194’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">v652eace1692a40cfa3763df669d743 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 13.64K --.-KB/s in 0.02s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:42 <span class="o">(</span><span class="m">600</span> KB/s<span class="o">)</span> - ‘v652eace1692a40cfa3763df669d7439c1639079717194’ saved <span class="o">[</span>13970/13970<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:42-- https://virgool.io/fonts/vazir/Vazir-Thin.ttf -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">98924</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Thin.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.61K 140KB/s in 0.7s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:43 <span class="o">(</span><span class="m">140</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.ttf’ saved <span class="o">[</span>98924/98924<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:43-- https://virgool.io/fonts/vazir/Vazir-Thin.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Thin.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.80K 276KB/s in 0.4s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:44 <span class="o">(</span><span class="m">276</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.eot?’ saved <span class="o">[</span>99120<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:44-- https://virgool.io/fonts/vazir/Vazir-Thin.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">54068</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Thin.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.80K --.-KB/s in 0.07s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:45 <span class="o">(</span><span class="m">770</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.woff’ saved <span class="o">[</span>54068/54068<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:45-- https://virgool.io/fonts/vazir/Vazir-Thin.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">43000</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Thin.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 41.99K --.-KB/s in 0.006s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:46 <span class="o">(</span>6.59 MB/s<span class="o">)</span> - ‘Vazir-Thin.woff2’ saved <span class="o">[</span>43000/43000<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:46-- https://virgool.io/fonts/vazir/Vazir-Light.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">105360</span> <span class="o">(</span>103K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Light.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 102.89K 478KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:46 <span class="o">(</span><span class="m">478</span> KB/s<span class="o">)</span> - ‘Vazir-Light.ttf’ saved <span class="o">[</span>105360/105360<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:46-- https://virgool.io/fonts/vazir/Vazir-Light.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Light.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 103.09K 470KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:47 <span class="o">(</span><span class="m">470</span> KB/s<span class="o">)</span> - ‘Vazir-Light.eot?’ saved <span class="o">[</span>105562<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:47-- https://virgool.io/fonts/vazir/Vazir-Light.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">59688</span> <span class="o">(</span>58K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Light.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 58.29K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:48 <span class="o">(</span><span class="m">758</span> KB/s<span class="o">)</span> - ‘Vazir-Light.woff’ saved <span class="o">[</span>59688/59688<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:48-- https://virgool.io/fonts/vazir/Vazir-Light.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">48168</span> <span class="o">(</span>47K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Light.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 47.04K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:48 <span class="o">(</span><span class="m">570</span> KB/s<span class="o">)</span> - ‘Vazir-Light.woff2’ saved <span class="o">[</span>48168/48168<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:48-- https://virgool.io/fonts/vazir/Vazir-Regular.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">98376</span> <span class="o">(</span>96K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Regular.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.07K 435KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:49 <span class="o">(</span><span class="m">435</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.ttf’ saved <span class="o">[</span>98376/98376<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:49-- https://virgool.io/fonts/vazir/Vazir-Regular.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Regular.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.26K 285KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:50 <span class="o">(</span><span class="m">285</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.eot?’ saved <span class="o">[</span>98574<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:50-- https://virgool.io/fonts/vazir/Vazir-Regular.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">53744</span> <span class="o">(</span>52K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Regular.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.48K --.-KB/s in 0.05s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:51 <span class="o">(</span>1.10 MB/s<span class="o">)</span> - ‘Vazir-Regular.woff’ saved <span class="o">[</span>53744/53744<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:51-- https://virgool.io/fonts/vazir/Vazir-Regular.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">42744</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Regular.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 41.74K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:51 <span class="o">(</span><span class="m">412</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.woff2’ saved <span class="o">[</span>42744/42744<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:51-- https://virgool.io/fonts/vazir/Vazir-Medium.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">98892</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Medium.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.57K 606KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:52 <span class="o">(</span><span class="m">606</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.ttf’ saved <span class="o">[</span>98892/98892<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:52-- https://virgool.io/fonts/vazir/Vazir-Medium.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Medium.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.78K 347KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:53 <span class="o">(</span><span class="m">347</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.eot?’ saved <span class="o">[</span>99100<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:53-- https://virgool.io/fonts/vazir/Vazir-Medium.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">54120</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Medium.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.85K 125KB/s in 0.4s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:54 <span class="o">(</span><span class="m">125</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.woff’ saved <span class="o">[</span>54120/54120<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:54-- https://virgool.io/fonts/vazir/Vazir-Medium.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">43152</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Medium.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.14K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:54 <span class="o">(</span><span class="m">541</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.woff2’ saved <span class="o">[</span>43152/43152<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:54-- https://virgool.io/fonts/vazir/Vazir-Bold.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">99840</span> <span class="o">(</span>98K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Bold.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 97.50K --.-KB/s in 0.04s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:55 <span class="o">(</span>2.61 MB/s<span class="o">)</span> - ‘Vazir-Bold.ttf’ saved <span class="o">[</span>99840/99840<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:55-- https://virgool.io/fonts/vazir/Vazir-Bold.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Bold.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 97.68K 560KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:56 <span class="o">(</span><span class="m">560</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.eot?’ saved <span class="o">[</span>100026<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:56-- https://virgool.io/fonts/vazir/Vazir-Bold.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">54560</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Bold.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 53.28K --.-KB/s in 0.06s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:56 <span class="o">(</span><span class="m">917</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.woff’ saved <span class="o">[</span>54560/54560<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:56-- https://virgool.io/fonts/vazir/Vazir-Bold.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">43604</span> <span class="o">(</span>43K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Bold.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.58K --.-KB/s in 0.06s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:57 <span class="o">(</span><span class="m">657</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.woff2’ saved <span class="o">[</span>43604/43604<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:57-- https://virgool.io/fonts/vazir/Vazir-Black.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">99772</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Black.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 97.43K --.-KB/s in 0.04s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:57 <span class="o">(</span>2.18 MB/s<span class="o">)</span> - ‘Vazir-Black.ttf’ saved <span class="o">[</span>99772/99772<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:57-- https://virgool.io/fonts/vazir/Vazir-Black.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Black.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 97.63K 478KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:58 <span class="o">(</span><span class="m">478</span> KB/s<span class="o">)</span> - ‘Vazir-Black.eot?’ saved <span class="o">[</span>99974<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:58-- https://virgool.io/fonts/vazir/Vazir-Black.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">54652</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Black.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 53.37K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:59 <span class="o">(</span><span class="m">691</span> KB/s<span class="o">)</span> - ‘Vazir-Black.woff’ saved <span class="o">[</span>54652/54652<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:59-- https://virgool.io/fonts/vazir/Vazir-Black.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">43332</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Black.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.32K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:00 <span class="o">(</span><span class="m">510</span> KB/s<span class="o">)</span> - ‘Vazir-Black.woff2’ saved <span class="o">[</span>43332/43332<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:00-- https://virgool.io/fonts/fontawesome/fa-solid-900.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">202616</span> <span class="o">(</span>198K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">fa-solid-900.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 197.87K 501KB/s in 0.4s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:01 <span class="o">(</span><span class="m">501</span> KB/s<span class="o">)</span> - ‘fa-solid-900.ttf’ saved <span class="o">[</span>202616/202616<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:01-- https://virgool.io/fonts/fontawesome/fa-solid-900.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">404</span> Not Found -</span></span><span class="line"><span class="cl">2022-01-18 06:42:01 ERROR 404: Not Found. -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:01-- https://virgool.io/fonts/fontawesome/fa-solid-900.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">103300</span> <span class="o">(</span>101K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">fa-solid-900.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 100.88K 358KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:02 <span class="o">(</span><span class="m">358</span> KB/s<span class="o">)</span> - ‘fa-solid-900.woff’ saved <span class="o">[</span>103300/103300<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:02-- https://virgool.io/fonts/fontawesome/fa-solid-900.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">79444</span> <span class="o">(</span>78K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">fa-solid-900.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 77.58K 394KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:03 <span class="o">(</span><span class="m">394</span> KB/s<span class="o">)</span> - ‘fa-solid-900.woff2’ saved <span class="o">[</span>79444/79444<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:03-- https://virgool.io/images/icons/plus.svg -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>image/svg+xml<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘plus.svg’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">plus.svg <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">942</span> --.-KB/s in 0.002s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:03 <span class="o">(</span><span class="m">383</span> KB/s<span class="o">)</span> - ‘plus.svg’ saved <span class="o">[</span>942<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:03-- https://virgool.io/images/icons/tick.svg -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>image/svg+xml<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘tick.svg’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">tick.svg <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">942</span> --.-KB/s in 0s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:04 <span class="o">(</span>89.8 MB/s<span class="o">)</span> - ‘tick.svg’ saved <span class="o">[</span>942<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:04-- https://virgool.io/images/typewriter.png -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">172558</span> <span class="o">(</span>169K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘typewriter.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">typewriter.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 168.51K 349KB/s in 0.5s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:05 <span class="o">(</span><span class="m">349</span> KB/s<span class="o">)</span> - ‘typewriter.png’ saved <span class="o">[</span>172558/172558<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:05-- https://virgool.test/images/download-audio.png -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:05-- https://virgool.test/images/download-ebook.png -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. -</span></span><span class="line"><span class="cl">FINISHED --2022-01-18 06:42:05-- -</span></span><span class="line"><span class="cl">Total wall clock time: 1m 2s -</span></span><span class="line"><span class="cl">Downloaded: <span class="m">54</span> files, 6.6M in 14s <span class="o">(</span><span class="m">479</span> KB/s<span class="o">)</span> -</span></span><span class="line"><span class="cl">Converting links in ns.html?id<span class="o">=</span>GTM-5GS688K.html... nothing to <span class="k">do</span>. -</span></span><span class="line"><span class="cl">Converting links in c3fVa.html... 38. -</span></span><span class="line"><span class="cl">31-7 -</span></span><span class="line"><span class="cl">Converting links in styles.css?v<span class="o">=</span>v2.6.15.css... 35. -</span></span><span class="line"><span class="cl">34-1 -</span></span><span class="line"><span class="cl">Converted links in <span class="m">3</span> files in 0.06 seconds. -</span></span></code></pre></td></tr></table> -</div> -</div> - - - پلاگین های کاربردی گنوم - https://bit-orbit.github.io/p/%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C-%DA%AF%D9%86%D9%88%D9%85/ - Fri, 14 Jan 2022 18:18:28 +0330 - - https://bit-orbit.github.io/p/%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C-%DA%AF%D9%86%D9%88%D9%85/ - <img src="https://bit-orbit.github.io/images/post/gp.jpg" alt="Featured image of post پلاگین های کاربردی گنوم " /><div dir='rtl' style="font-size:x-large;"> -<p>اگر مثل من از +هست رو دانلود می‌کنم.</li> +</ul> +</br> +</div> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt"> 10 +</span><span class="lnt"> 11 +</span><span class="lnt"> 12 +</span><span class="lnt"> 13 +</span><span class="lnt"> 14 +</span><span class="lnt"> 15 +</span><span class="lnt"> 16 +</span><span class="lnt"> 17 +</span><span class="lnt"> 18 +</span><span class="lnt"> 19 +</span><span class="lnt"> 20 +</span><span class="lnt"> 21 +</span><span class="lnt"> 22 +</span><span class="lnt"> 23 +</span><span class="lnt"> 24 +</span><span class="lnt"> 25 +</span><span class="lnt"> 26 +</span><span class="lnt"> 27 +</span><span class="lnt"> 28 +</span><span class="lnt"> 29 +</span><span class="lnt"> 30 +</span><span class="lnt"> 31 +</span><span class="lnt"> 32 +</span><span class="lnt"> 33 +</span><span class="lnt"> 34 +</span><span class="lnt"> 35 +</span><span class="lnt"> 36 +</span><span class="lnt"> 37 +</span><span class="lnt"> 38 +</span><span class="lnt"> 39 +</span><span class="lnt"> 40 +</span><span class="lnt"> 41 +</span><span class="lnt"> 42 +</span><span class="lnt"> 43 +</span><span class="lnt"> 44 +</span><span class="lnt"> 45 +</span><span class="lnt"> 46 +</span><span class="lnt"> 47 +</span><span class="lnt"> 48 +</span><span class="lnt"> 49 +</span><span class="lnt"> 50 +</span><span class="lnt"> 51 +</span><span class="lnt"> 52 +</span><span class="lnt"> 53 +</span><span class="lnt"> 54 +</span><span class="lnt"> 55 +</span><span class="lnt"> 56 +</span><span class="lnt"> 57 +</span><span class="lnt"> 58 +</span><span class="lnt"> 59 +</span><span class="lnt"> 60 +</span><span class="lnt"> 61 +</span><span class="lnt"> 62 +</span><span class="lnt"> 63 +</span><span class="lnt"> 64 +</span><span class="lnt"> 65 +</span><span class="lnt"> 66 +</span><span class="lnt"> 67 +</span><span class="lnt"> 68 +</span><span class="lnt"> 69 +</span><span class="lnt"> 70 +</span><span class="lnt"> 71 +</span><span class="lnt"> 72 +</span><span class="lnt"> 73 +</span><span class="lnt"> 74 +</span><span class="lnt"> 75 +</span><span class="lnt"> 76 +</span><span class="lnt"> 77 +</span><span class="lnt"> 78 +</span><span class="lnt"> 79 +</span><span class="lnt"> 80 +</span><span class="lnt"> 81 +</span><span class="lnt"> 82 +</span><span class="lnt"> 83 +</span><span class="lnt"> 84 +</span><span class="lnt"> 85 +</span><span class="lnt"> 86 +</span><span class="lnt"> 87 +</span><span class="lnt"> 88 +</span><span class="lnt"> 89 +</span><span class="lnt"> 90 +</span><span class="lnt"> 91 +</span><span class="lnt"> 92 +</span><span class="lnt"> 93 +</span><span class="lnt"> 94 +</span><span class="lnt"> 95 +</span><span class="lnt"> 96 +</span><span class="lnt"> 97 +</span><span class="lnt"> 98 +</span><span class="lnt"> 99 +</span><span class="lnt">100 +</span><span class="lnt">101 +</span><span class="lnt">102 +</span><span class="lnt">103 +</span><span class="lnt">104 +</span><span class="lnt">105 +</span><span class="lnt">106 +</span><span class="lnt">107 +</span><span class="lnt">108 +</span><span class="lnt">109 +</span><span class="lnt">110 +</span><span class="lnt">111 +</span><span class="lnt">112 +</span><span class="lnt">113 +</span><span class="lnt">114 +</span><span class="lnt">115 +</span><span class="lnt">116 +</span><span class="lnt">117 +</span><span class="lnt">118 +</span><span class="lnt">119 +</span><span class="lnt">120 +</span><span class="lnt">121 +</span><span class="lnt">122 +</span><span class="lnt">123 +</span><span class="lnt">124 +</span><span class="lnt">125 +</span><span class="lnt">126 +</span><span class="lnt">127 +</span><span class="lnt">128 +</span><span class="lnt">129 +</span><span class="lnt">130 +</span><span class="lnt">131 +</span><span class="lnt">132 +</span><span class="lnt">133 +</span><span class="lnt">134 +</span><span class="lnt">135 +</span><span class="lnt">136 +</span><span class="lnt">137 +</span><span class="lnt">138 +</span><span class="lnt">139 +</span><span class="lnt">140 +</span><span class="lnt">141 +</span><span class="lnt">142 +</span><span class="lnt">143 +</span><span class="lnt">144 +</span><span class="lnt">145 +</span><span class="lnt">146 +</span><span class="lnt">147 +</span><span class="lnt">148 +</span><span class="lnt">149 +</span><span class="lnt">150 +</span><span class="lnt">151 +</span><span class="lnt">152 +</span><span class="lnt">153 +</span><span class="lnt">154 +</span><span class="lnt">155 +</span><span class="lnt">156 +</span><span class="lnt">157 +</span><span class="lnt">158 +</span><span class="lnt">159 +</span><span class="lnt">160 +</span><span class="lnt">161 +</span><span class="lnt">162 +</span><span class="lnt">163 +</span><span class="lnt">164 +</span><span class="lnt">165 +</span><span class="lnt">166 +</span><span class="lnt">167 +</span><span class="lnt">168 +</span><span class="lnt">169 +</span><span class="lnt">170 +</span><span class="lnt">171 +</span><span class="lnt">172 +</span><span class="lnt">173 +</span><span class="lnt">174 +</span><span class="lnt">175 +</span><span class="lnt">176 +</span><span class="lnt">177 +</span><span class="lnt">178 +</span><span class="lnt">179 +</span><span class="lnt">180 +</span><span class="lnt">181 +</span><span class="lnt">182 +</span><span class="lnt">183 +</span><span class="lnt">184 +</span><span class="lnt">185 +</span><span class="lnt">186 +</span><span class="lnt">187 +</span><span class="lnt">188 +</span><span class="lnt">189 +</span><span class="lnt">190 +</span><span class="lnt">191 +</span><span class="lnt">192 +</span><span class="lnt">193 +</span><span class="lnt">194 +</span><span class="lnt">195 +</span><span class="lnt">196 +</span><span class="lnt">197 +</span><span class="lnt">198 +</span><span class="lnt">199 +</span><span class="lnt">200 +</span><span class="lnt">201 +</span><span class="lnt">202 +</span><span class="lnt">203 +</span><span class="lnt">204 +</span><span class="lnt">205 +</span><span class="lnt">206 +</span><span class="lnt">207 +</span><span class="lnt">208 +</span><span class="lnt">209 +</span><span class="lnt">210 +</span><span class="lnt">211 +</span><span class="lnt">212 +</span><span class="lnt">213 +</span><span class="lnt">214 +</span><span class="lnt">215 +</span><span class="lnt">216 +</span><span class="lnt">217 +</span><span class="lnt">218 +</span><span class="lnt">219 +</span><span class="lnt">220 +</span><span class="lnt">221 +</span><span class="lnt">222 +</span><span class="lnt">223 +</span><span class="lnt">224 +</span><span class="lnt">225 +</span><span class="lnt">226 +</span><span class="lnt">227 +</span><span class="lnt">228 +</span><span class="lnt">229 +</span><span class="lnt">230 +</span><span class="lnt">231 +</span><span class="lnt">232 +</span><span class="lnt">233 +</span><span class="lnt">234 +</span><span class="lnt">235 +</span><span class="lnt">236 +</span><span class="lnt">237 +</span><span class="lnt">238 +</span><span class="lnt">239 +</span><span class="lnt">240 +</span><span class="lnt">241 +</span><span class="lnt">242 +</span><span class="lnt">243 +</span><span class="lnt">244 +</span><span class="lnt">245 +</span><span class="lnt">246 +</span><span class="lnt">247 +</span><span class="lnt">248 +</span><span class="lnt">249 +</span><span class="lnt">250 +</span><span class="lnt">251 +</span><span class="lnt">252 +</span><span class="lnt">253 +</span><span class="lnt">254 +</span><span class="lnt">255 +</span><span class="lnt">256 +</span><span class="lnt">257 +</span><span class="lnt">258 +</span><span class="lnt">259 +</span><span class="lnt">260 +</span><span class="lnt">261 +</span><span class="lnt">262 +</span><span class="lnt">263 +</span><span class="lnt">264 +</span><span class="lnt">265 +</span><span class="lnt">266 +</span><span class="lnt">267 +</span><span class="lnt">268 +</span><span class="lnt">269 +</span><span class="lnt">270 +</span><span class="lnt">271 +</span><span class="lnt">272 +</span><span class="lnt">273 +</span><span class="lnt">274 +</span><span class="lnt">275 +</span><span class="lnt">276 +</span><span class="lnt">277 +</span><span class="lnt">278 +</span><span class="lnt">279 +</span><span class="lnt">280 +</span><span class="lnt">281 +</span><span class="lnt">282 +</span><span class="lnt">283 +</span><span class="lnt">284 +</span><span class="lnt">285 +</span><span class="lnt">286 +</span><span class="lnt">287 +</span><span class="lnt">288 +</span><span class="lnt">289 +</span><span class="lnt">290 +</span><span class="lnt">291 +</span><span class="lnt">292 +</span><span class="lnt">293 +</span><span class="lnt">294 +</span><span class="lnt">295 +</span><span class="lnt">296 +</span><span class="lnt">297 +</span><span class="lnt">298 +</span><span class="lnt">299 +</span><span class="lnt">300 +</span><span class="lnt">301 +</span><span class="lnt">302 +</span><span class="lnt">303 +</span><span class="lnt">304 +</span><span class="lnt">305 +</span><span class="lnt">306 +</span><span class="lnt">307 +</span><span class="lnt">308 +</span><span class="lnt">309 +</span><span class="lnt">310 +</span><span class="lnt">311 +</span><span class="lnt">312 +</span><span class="lnt">313 +</span><span class="lnt">314 +</span><span class="lnt">315 +</span><span class="lnt">316 +</span><span class="lnt">317 +</span><span class="lnt">318 +</span><span class="lnt">319 +</span><span class="lnt">320 +</span><span class="lnt">321 +</span><span class="lnt">322 +</span><span class="lnt">323 +</span><span class="lnt">324 +</span><span class="lnt">325 +</span><span class="lnt">326 +</span><span class="lnt">327 +</span><span class="lnt">328 +</span><span class="lnt">329 +</span><span class="lnt">330 +</span><span class="lnt">331 +</span><span class="lnt">332 +</span><span class="lnt">333 +</span><span class="lnt">334 +</span><span class="lnt">335 +</span><span class="lnt">336 +</span><span class="lnt">337 +</span><span class="lnt">338 +</span><span class="lnt">339 +</span><span class="lnt">340 +</span><span class="lnt">341 +</span><span class="lnt">342 +</span><span class="lnt">343 +</span><span class="lnt">344 +</span><span class="lnt">345 +</span><span class="lnt">346 +</span><span class="lnt">347 +</span><span class="lnt">348 +</span><span class="lnt">349 +</span><span class="lnt">350 +</span><span class="lnt">351 +</span><span class="lnt">352 +</span><span class="lnt">353 +</span><span class="lnt">354 +</span><span class="lnt">355 +</span><span class="lnt">356 +</span><span class="lnt">357 +</span><span class="lnt">358 +</span><span class="lnt">359 +</span><span class="lnt">360 +</span><span class="lnt">361 +</span><span class="lnt">362 +</span><span class="lnt">363 +</span><span class="lnt">364 +</span><span class="lnt">365 +</span><span class="lnt">366 +</span><span class="lnt">367 +</span><span class="lnt">368 +</span><span class="lnt">369 +</span><span class="lnt">370 +</span><span class="lnt">371 +</span><span class="lnt">372 +</span><span class="lnt">373 +</span><span class="lnt">374 +</span><span class="lnt">375 +</span><span class="lnt">376 +</span><span class="lnt">377 +</span><span class="lnt">378 +</span><span class="lnt">379 +</span><span class="lnt">380 +</span><span class="lnt">381 +</span><span class="lnt">382 +</span><span class="lnt">383 +</span><span class="lnt">384 +</span><span class="lnt">385 +</span><span class="lnt">386 +</span><span class="lnt">387 +</span><span class="lnt">388 +</span><span class="lnt">389 +</span><span class="lnt">390 +</span><span class="lnt">391 +</span><span class="lnt">392 +</span><span class="lnt">393 +</span><span class="lnt">394 +</span><span class="lnt">395 +</span><span class="lnt">396 +</span><span class="lnt">397 +</span><span class="lnt">398 +</span><span class="lnt">399 +</span><span class="lnt">400 +</span><span class="lnt">401 +</span><span class="lnt">402 +</span><span class="lnt">403 +</span><span class="lnt">404 +</span><span class="lnt">405 +</span><span class="lnt">406 +</span><span class="lnt">407 +</span><span class="lnt">408 +</span><span class="lnt">409 +</span><span class="lnt">410 +</span><span class="lnt">411 +</span><span class="lnt">412 +</span><span class="lnt">413 +</span><span class="lnt">414 +</span><span class="lnt">415 +</span><span class="lnt">416 +</span><span class="lnt">417 +</span><span class="lnt">418 +</span><span class="lnt">419 +</span><span class="lnt">420 +</span><span class="lnt">421 +</span><span class="lnt">422 +</span><span class="lnt">423 +</span><span class="lnt">424 +</span><span class="lnt">425 +</span><span class="lnt">426 +</span><span class="lnt">427 +</span><span class="lnt">428 +</span><span class="lnt">429 +</span><span class="lnt">430 +</span><span class="lnt">431 +</span><span class="lnt">432 +</span><span class="lnt">433 +</span><span class="lnt">434 +</span><span class="lnt">435 +</span><span class="lnt">436 +</span><span class="lnt">437 +</span><span class="lnt">438 +</span><span class="lnt">439 +</span><span class="lnt">440 +</span><span class="lnt">441 +</span><span class="lnt">442 +</span><span class="lnt">443 +</span><span class="lnt">444 +</span><span class="lnt">445 +</span><span class="lnt">446 +</span><span class="lnt">447 +</span><span class="lnt">448 +</span><span class="lnt">449 +</span><span class="lnt">450 +</span><span class="lnt">451 +</span><span class="lnt">452 +</span><span class="lnt">453 +</span><span class="lnt">454 +</span><span class="lnt">455 +</span><span class="lnt">456 +</span><span class="lnt">457 +</span><span class="lnt">458 +</span><span class="lnt">459 +</span><span class="lnt">460 +</span><span class="lnt">461 +</span><span class="lnt">462 +</span><span class="lnt">463 +</span><span class="lnt">464 +</span><span class="lnt">465 +</span><span class="lnt">466 +</span><span class="lnt">467 +</span><span class="lnt">468 +</span><span class="lnt">469 +</span><span class="lnt">470 +</span><span class="lnt">471 +</span><span class="lnt">472 +</span><span class="lnt">473 +</span><span class="lnt">474 +</span><span class="lnt">475 +</span><span class="lnt">476 +</span><span class="lnt">477 +</span><span class="lnt">478 +</span><span class="lnt">479 +</span><span class="lnt">480 +</span><span class="lnt">481 +</span><span class="lnt">482 +</span><span class="lnt">483 +</span><span class="lnt">484 +</span><span class="lnt">485 +</span><span class="lnt">486 +</span><span class="lnt">487 +</span><span class="lnt">488 +</span><span class="lnt">489 +</span><span class="lnt">490 +</span><span class="lnt">491 +</span><span class="lnt">492 +</span><span class="lnt">493 +</span><span class="lnt">494 +</span><span class="lnt">495 +</span><span class="lnt">496 +</span><span class="lnt">497 +</span><span class="lnt">498 +</span><span class="lnt">499 +</span><span class="lnt">500 +</span><span class="lnt">501 +</span><span class="lnt">502 +</span><span class="lnt">503 +</span><span class="lnt">504 +</span><span class="lnt">505 +</span><span class="lnt">506 +</span><span class="lnt">507 +</span><span class="lnt">508 +</span><span class="lnt">509 +</span><span class="lnt">510 +</span><span class="lnt">511 +</span><span class="lnt">512 +</span><span class="lnt">513 +</span><span class="lnt">514 +</span><span class="lnt">515 +</span><span class="lnt">516 +</span><span class="lnt">517 +</span><span class="lnt">518 +</span><span class="lnt">519 +</span><span class="lnt">520 +</span><span class="lnt">521 +</span><span class="lnt">522 +</span><span class="lnt">523 +</span><span class="lnt">524 +</span><span class="lnt">525 +</span><span class="lnt">526 +</span><span class="lnt">527 +</span><span class="lnt">528 +</span><span class="lnt">529 +</span><span class="lnt">530 +</span><span class="lnt">531 +</span><span class="lnt">532 +</span><span class="lnt">533 +</span><span class="lnt">534 +</span><span class="lnt">535 +</span><span class="lnt">536 +</span><span class="lnt">537 +</span><span class="lnt">538 +</span><span class="lnt">539 +</span><span class="lnt">540 +</span><span class="lnt">541 +</span><span class="lnt">542 +</span><span class="lnt">543 +</span><span class="lnt">544 +</span><span class="lnt">545 +</span><span class="lnt">546 +</span><span class="lnt">547 +</span><span class="lnt">548 +</span><span class="lnt">549 +</span><span class="lnt">550 +</span><span class="lnt">551 +</span><span class="lnt">552 +</span><span class="lnt">553 +</span><span class="lnt">554 +</span><span class="lnt">555 +</span><span class="lnt">556 +</span><span class="lnt">557 +</span><span class="lnt">558 +</span><span class="lnt">559 +</span><span class="lnt">560 +</span><span class="lnt">561 +</span><span class="lnt">562 +</span><span class="lnt">563 +</span><span class="lnt">564 +</span><span class="lnt">565 +</span><span class="lnt">566 +</span><span class="lnt">567 +</span><span class="lnt">568 +</span><span class="lnt">569 +</span><span class="lnt">570 +</span><span class="lnt">571 +</span><span class="lnt">572 +</span><span class="lnt">573 +</span><span class="lnt">574 +</span><span class="lnt">575 +</span><span class="lnt">576 +</span><span class="lnt">577 +</span><span class="lnt">578 +</span><span class="lnt">579 +</span><span class="lnt">580 +</span><span class="lnt">581 +</span><span class="lnt">582 +</span><span class="lnt">583 +</span><span class="lnt">584 +</span><span class="lnt">585 +</span><span class="lnt">586 +</span><span class="lnt">587 +</span><span class="lnt">588 +</span><span class="lnt">589 +</span><span class="lnt">590 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">┌─<span class="o">[</span>loading<span class="o">]</span> <span class="o">[</span>/tmp/virgool<span class="o">]</span> <span class="o">[</span>0<span class="o">]</span> +</span></span><span class="line"><span class="cl">│ +</span></span><span class="line"><span class="cl">└──〉wget -nd -E -p -k -H https://vrgl.ir/c3fVa +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:03-- https://vrgl.ir/c3fVa +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">302</span> Found +</span></span><span class="line"><span class="cl">Location: https://virgool.io/@Novo/rsa-encryption-ao1poasym4cf <span class="o">[</span>following<span class="o">]</span> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:04-- https://virgool.io/@Novo/rsa-encryption-ao1poasym4cf +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/html<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘c3fVa.html’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">c3fVa.html <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 61.30K 200KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:06 <span class="o">(</span><span class="m">200</span> KB/s<span class="o">)</span> - ‘c3fVa.html’ saved <span class="o">[</span>62773<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:06-- https://virgool.io/robots.txt +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>document<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘robots.txt’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">robots.txt <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">484</span> --.-KB/s in 0s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:07 <span class="o">(</span>85.7 MB/s<span class="o">)</span> - ‘robots.txt’ saved <span class="o">[</span>484<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:07-- https://www.googletagmanager.com/robots.txt +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">404</span> Not Found +</span></span><span class="line"><span class="cl">2022-01-18 06:41:08 ERROR 404: Not Found. +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:08-- https://files.virgool.io/robots.txt +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">403</span> Forbidden +</span></span><span class="line"><span class="cl">2022-01-18 06:41:09 ERROR 403: Forbidden. +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:09-- https://static.cloudflareinsights.com/robots.txt +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">522</span> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:26 ERROR 522: <span class="o">(</span>no description<span class="o">)</span>. +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:26-- https://virgool.io/images/favicon.png?v<span class="o">=</span>v2.6.15 +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">9855</span> <span class="o">(</span>9.6K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘favicon.png?v<span class="o">=</span>v2.6.15’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">favicon.png?v<span class="o">=</span>v2.6.15 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 9.62K --.-KB/s in 0.07s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:27 <span class="o">(</span><span class="m">130</span> KB/s<span class="o">)</span> - ‘favicon.png?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>9855/9855<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:27-- https://virgool.io/css/styles.css?v<span class="o">=</span>v2.6.15 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/css<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘styles.css?v<span class="o">=</span>v2.6.15.css’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">styles.css?v<span class="o">=</span>v2.6.15.css <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 903.60K 592KB/s in 1.5s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:28 <span class="o">(</span><span class="m">592</span> KB/s<span class="o">)</span> - ‘styles.css?v<span class="o">=</span>v2.6.15.css’ saved <span class="o">[</span>925284<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:28-- https://virgool.test/robots.txt +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:28-- https://www.googletagmanager.com/ns.html?id<span class="o">=</span>GTM-5GS688K +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/html<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘ns.html?id<span class="o">=</span>GTM-5GS688K.html’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">ns.html?id<span class="o">=</span>GTM-5GS688K.html <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">266</span> --.-KB/s in 0s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:29 <span class="o">(</span>29.4 MB/s<span class="o">)</span> - ‘ns.html?id<span class="o">=</span>GTM-5GS688K.html’ saved <span class="o">[</span>266<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:29-- https://files.virgool.io/upload/users/31434/avatar/1C4LLE.png?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">39194</span> <span class="o">(</span>38K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_ 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 38.28K 173KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:30 <span class="o">(</span><span class="m">173</span> KB/s<span class="o">)</span> - ‘1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>39194/39194<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:30-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/qhokakomwyb5.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">179870</span> <span class="o">(</span>176K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘qhokakomwyb5.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">qhokakomwyb5.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 175.65K 567KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">567</span> KB/s<span class="o">)</span> - ‘qhokakomwyb5.png’ saved <span class="o">[</span>179870/179870<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/v1xnwpnewfys.webp +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">12770</span> <span class="o">(</span>12K<span class="o">)</span> <span class="o">[</span>image/webp<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘v1xnwpnewfys.webp’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">v1xnwpnewfys.webp 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 12.47K --.-KB/s in 0.07s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">180</span> KB/s<span class="o">)</span> - ‘v1xnwpnewfys.webp’ saved <span class="o">[</span>12770/12770<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/d28hpu2detkl.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">92847</span> <span class="o">(</span>91K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘d28hpu2detkl.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">d28hpu2detkl.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 90.67K --.-KB/s in 0.09s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">969</span> KB/s<span class="o">)</span> - ‘d28hpu2detkl.png’ saved <span class="o">[</span>92847/92847<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/rhyykrc8azq0.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">17539</span> <span class="o">(</span>17K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘rhyykrc8azq0.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">rhyykrc8azq0.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 17.13K --.-KB/s in 0.007s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>2.47 MB/s<span class="o">)</span> - ‘rhyykrc8azq0.png’ saved <span class="o">[</span>17539/17539<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/fjtc1ydzkuse.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">108524</span> <span class="o">(</span>106K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘fjtc1ydzkuse.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">fjtc1ydzkuse.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 105.98K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>1.06 MB/s<span class="o">)</span> - ‘fjtc1ydzkuse.png’ saved <span class="o">[</span>108524/108524<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/gfqhgyp18oic.jpeg +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">132085</span> <span class="o">(</span>129K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘gfqhgyp18oic.jpeg’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">gfqhgyp18oic.jpeg 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 128.99K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>1.28 MB/s<span class="o">)</span> - ‘gfqhgyp18oic.jpeg’ saved <span class="o">[</span>132085/132085<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/me0mpjtdmyom.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">113489</span> <span class="o">(</span>111K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘me0mpjtdmyom.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">me0mpjtdmyom.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 110.83K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span><span class="m">814</span> KB/s<span class="o">)</span> - ‘me0mpjtdmyom.png’ saved <span class="o">[</span>113489/113489<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/of7krju6oqzk.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">105746</span> <span class="o">(</span>103K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘of7krju6oqzk.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">of7krju6oqzk.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 103.27K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span>1.25 MB/s<span class="o">)</span> - ‘of7krju6oqzk.png’ saved <span class="o">[</span>105746/105746<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/oqwhflg4gbnq.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">120994</span> <span class="o">(</span>118K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘oqwhflg4gbnq.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">oqwhflg4gbnq.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 118.16K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span>1.14 MB/s<span class="o">)</span> - ‘oqwhflg4gbnq.png’ saved <span class="o">[</span>120994/120994<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/taqjnfnuzxcx.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">122678</span> <span class="o">(</span>120K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘taqjnfnuzxcx.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">taqjnfnuzxcx.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 119.80K --.-KB/s in 0.06s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span>2.00 MB/s<span class="o">)</span> - ‘taqjnfnuzxcx.png’ saved <span class="o">[</span>122678/122678<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/63/posts/qwqrubplfaau/g8vai2incgna.jpeg?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">88292</span> <span class="o">(</span>86K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fre 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 86.22K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span><span class="m">824</span> KB/s<span class="o">)</span> - ‘g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>88292/88292<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/63/avatar/o8jiNe.png?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">32037</span> <span class="o">(</span>31K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_ 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 31.29K --.-KB/s in 0.06s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span><span class="m">558</span> KB/s<span class="o">)</span> - ‘o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>32037/32037<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/31434/posts/e3oydlcfkr5e/figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">30356</span> <span class="o">(</span>30K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fre 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 29.64K --.-KB/s in 0.07s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span><span class="m">401</span> KB/s<span class="o">)</span> - ‘figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>30356/30356<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://files.virgool.io/upload/users/316150/posts/r8rhw88uh1xh/cs1ugyelv3zw.png?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">34459</span> <span class="o">(</span>34K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fres 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 33.65K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span><span class="m">399</span> KB/s<span class="o">)</span> - ‘cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>34459/34459<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://files.virgool.io/upload/users/316150/avatar/8sz7Rs.jpeg?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">14764</span> <span class="o">(</span>14K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 14.42K --.-KB/s in 0.007s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span>2.11 MB/s<span class="o">)</span> - ‘8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>14764/14764<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://virgool.io/js/commons.js?v<span class="o">=</span>v2.6.15 +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/javascript<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘commons.js?v<span class="o">=</span>v2.6.15’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">commons.js?v<span class="o">=</span>v2.6.15 <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 997.55K 337KB/s in 3.0s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:39 <span class="o">(</span><span class="m">337</span> KB/s<span class="o">)</span> - ‘commons.js?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>1021492<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:39-- https://virgool.io/js/main.js?v<span class="o">=</span>v2.6.15 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/javascript<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘main.js?v<span class="o">=</span>v2.6.15’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">main.js?v<span class="o">=</span>v2.6.15 <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 1.21M 580KB/s in 2.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:41 <span class="o">(</span><span class="m">580</span> KB/s<span class="o">)</span> - ‘main.js?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>1267632<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:41-- https://static.cloudflareinsights.com/beacon.min.js/v652eace1692a40cfa3763df669d7439c1639079717194 +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">13970</span> <span class="o">(</span>14K<span class="o">)</span> <span class="o">[</span>text/javascript<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘v652eace1692a40cfa3763df669d7439c1639079717194’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">v652eace1692a40cfa3763df669d743 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 13.64K --.-KB/s in 0.02s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:42 <span class="o">(</span><span class="m">600</span> KB/s<span class="o">)</span> - ‘v652eace1692a40cfa3763df669d7439c1639079717194’ saved <span class="o">[</span>13970/13970<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:42-- https://virgool.io/fonts/vazir/Vazir-Thin.ttf +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">98924</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Thin.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.61K 140KB/s in 0.7s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:43 <span class="o">(</span><span class="m">140</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.ttf’ saved <span class="o">[</span>98924/98924<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:43-- https://virgool.io/fonts/vazir/Vazir-Thin.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Thin.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.80K 276KB/s in 0.4s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:44 <span class="o">(</span><span class="m">276</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.eot?’ saved <span class="o">[</span>99120<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:44-- https://virgool.io/fonts/vazir/Vazir-Thin.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">54068</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Thin.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.80K --.-KB/s in 0.07s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:45 <span class="o">(</span><span class="m">770</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.woff’ saved <span class="o">[</span>54068/54068<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:45-- https://virgool.io/fonts/vazir/Vazir-Thin.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">43000</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Thin.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 41.99K --.-KB/s in 0.006s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:46 <span class="o">(</span>6.59 MB/s<span class="o">)</span> - ‘Vazir-Thin.woff2’ saved <span class="o">[</span>43000/43000<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:46-- https://virgool.io/fonts/vazir/Vazir-Light.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">105360</span> <span class="o">(</span>103K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Light.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 102.89K 478KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:46 <span class="o">(</span><span class="m">478</span> KB/s<span class="o">)</span> - ‘Vazir-Light.ttf’ saved <span class="o">[</span>105360/105360<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:46-- https://virgool.io/fonts/vazir/Vazir-Light.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Light.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 103.09K 470KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:47 <span class="o">(</span><span class="m">470</span> KB/s<span class="o">)</span> - ‘Vazir-Light.eot?’ saved <span class="o">[</span>105562<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:47-- https://virgool.io/fonts/vazir/Vazir-Light.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">59688</span> <span class="o">(</span>58K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Light.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 58.29K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:48 <span class="o">(</span><span class="m">758</span> KB/s<span class="o">)</span> - ‘Vazir-Light.woff’ saved <span class="o">[</span>59688/59688<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:48-- https://virgool.io/fonts/vazir/Vazir-Light.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">48168</span> <span class="o">(</span>47K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Light.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 47.04K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:48 <span class="o">(</span><span class="m">570</span> KB/s<span class="o">)</span> - ‘Vazir-Light.woff2’ saved <span class="o">[</span>48168/48168<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:48-- https://virgool.io/fonts/vazir/Vazir-Regular.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">98376</span> <span class="o">(</span>96K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Regular.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.07K 435KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:49 <span class="o">(</span><span class="m">435</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.ttf’ saved <span class="o">[</span>98376/98376<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:49-- https://virgool.io/fonts/vazir/Vazir-Regular.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Regular.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.26K 285KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:50 <span class="o">(</span><span class="m">285</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.eot?’ saved <span class="o">[</span>98574<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:50-- https://virgool.io/fonts/vazir/Vazir-Regular.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">53744</span> <span class="o">(</span>52K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Regular.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.48K --.-KB/s in 0.05s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:51 <span class="o">(</span>1.10 MB/s<span class="o">)</span> - ‘Vazir-Regular.woff’ saved <span class="o">[</span>53744/53744<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:51-- https://virgool.io/fonts/vazir/Vazir-Regular.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">42744</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Regular.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 41.74K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:51 <span class="o">(</span><span class="m">412</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.woff2’ saved <span class="o">[</span>42744/42744<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:51-- https://virgool.io/fonts/vazir/Vazir-Medium.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">98892</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Medium.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.57K 606KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:52 <span class="o">(</span><span class="m">606</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.ttf’ saved <span class="o">[</span>98892/98892<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:52-- https://virgool.io/fonts/vazir/Vazir-Medium.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Medium.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.78K 347KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:53 <span class="o">(</span><span class="m">347</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.eot?’ saved <span class="o">[</span>99100<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:53-- https://virgool.io/fonts/vazir/Vazir-Medium.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">54120</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Medium.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.85K 125KB/s in 0.4s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:54 <span class="o">(</span><span class="m">125</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.woff’ saved <span class="o">[</span>54120/54120<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:54-- https://virgool.io/fonts/vazir/Vazir-Medium.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">43152</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Medium.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.14K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:54 <span class="o">(</span><span class="m">541</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.woff2’ saved <span class="o">[</span>43152/43152<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:54-- https://virgool.io/fonts/vazir/Vazir-Bold.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">99840</span> <span class="o">(</span>98K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Bold.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 97.50K --.-KB/s in 0.04s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:55 <span class="o">(</span>2.61 MB/s<span class="o">)</span> - ‘Vazir-Bold.ttf’ saved <span class="o">[</span>99840/99840<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:55-- https://virgool.io/fonts/vazir/Vazir-Bold.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Bold.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 97.68K 560KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:56 <span class="o">(</span><span class="m">560</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.eot?’ saved <span class="o">[</span>100026<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:56-- https://virgool.io/fonts/vazir/Vazir-Bold.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">54560</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Bold.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 53.28K --.-KB/s in 0.06s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:56 <span class="o">(</span><span class="m">917</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.woff’ saved <span class="o">[</span>54560/54560<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:56-- https://virgool.io/fonts/vazir/Vazir-Bold.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">43604</span> <span class="o">(</span>43K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Bold.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.58K --.-KB/s in 0.06s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:57 <span class="o">(</span><span class="m">657</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.woff2’ saved <span class="o">[</span>43604/43604<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:57-- https://virgool.io/fonts/vazir/Vazir-Black.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">99772</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Black.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 97.43K --.-KB/s in 0.04s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:57 <span class="o">(</span>2.18 MB/s<span class="o">)</span> - ‘Vazir-Black.ttf’ saved <span class="o">[</span>99772/99772<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:57-- https://virgool.io/fonts/vazir/Vazir-Black.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Black.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 97.63K 478KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:58 <span class="o">(</span><span class="m">478</span> KB/s<span class="o">)</span> - ‘Vazir-Black.eot?’ saved <span class="o">[</span>99974<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:58-- https://virgool.io/fonts/vazir/Vazir-Black.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">54652</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Black.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 53.37K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:59 <span class="o">(</span><span class="m">691</span> KB/s<span class="o">)</span> - ‘Vazir-Black.woff’ saved <span class="o">[</span>54652/54652<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:59-- https://virgool.io/fonts/vazir/Vazir-Black.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">43332</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Black.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.32K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:00 <span class="o">(</span><span class="m">510</span> KB/s<span class="o">)</span> - ‘Vazir-Black.woff2’ saved <span class="o">[</span>43332/43332<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:00-- https://virgool.io/fonts/fontawesome/fa-solid-900.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">202616</span> <span class="o">(</span>198K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">fa-solid-900.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 197.87K 501KB/s in 0.4s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:01 <span class="o">(</span><span class="m">501</span> KB/s<span class="o">)</span> - ‘fa-solid-900.ttf’ saved <span class="o">[</span>202616/202616<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:01-- https://virgool.io/fonts/fontawesome/fa-solid-900.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">404</span> Not Found +</span></span><span class="line"><span class="cl">2022-01-18 06:42:01 ERROR 404: Not Found. +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:01-- https://virgool.io/fonts/fontawesome/fa-solid-900.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">103300</span> <span class="o">(</span>101K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">fa-solid-900.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 100.88K 358KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:02 <span class="o">(</span><span class="m">358</span> KB/s<span class="o">)</span> - ‘fa-solid-900.woff’ saved <span class="o">[</span>103300/103300<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:02-- https://virgool.io/fonts/fontawesome/fa-solid-900.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">79444</span> <span class="o">(</span>78K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">fa-solid-900.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 77.58K 394KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:03 <span class="o">(</span><span class="m">394</span> KB/s<span class="o">)</span> - ‘fa-solid-900.woff2’ saved <span class="o">[</span>79444/79444<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:03-- https://virgool.io/images/icons/plus.svg +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>image/svg+xml<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘plus.svg’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">plus.svg <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">942</span> --.-KB/s in 0.002s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:03 <span class="o">(</span><span class="m">383</span> KB/s<span class="o">)</span> - ‘plus.svg’ saved <span class="o">[</span>942<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:03-- https://virgool.io/images/icons/tick.svg +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>image/svg+xml<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘tick.svg’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">tick.svg <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">942</span> --.-KB/s in 0s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:04 <span class="o">(</span>89.8 MB/s<span class="o">)</span> - ‘tick.svg’ saved <span class="o">[</span>942<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:04-- https://virgool.io/images/typewriter.png +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">172558</span> <span class="o">(</span>169K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘typewriter.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">typewriter.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 168.51K 349KB/s in 0.5s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:05 <span class="o">(</span><span class="m">349</span> KB/s<span class="o">)</span> - ‘typewriter.png’ saved <span class="o">[</span>172558/172558<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:05-- https://virgool.test/images/download-audio.png +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:05-- https://virgool.test/images/download-ebook.png +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. +</span></span><span class="line"><span class="cl">FINISHED --2022-01-18 06:42:05-- +</span></span><span class="line"><span class="cl">Total wall clock time: 1m 2s +</span></span><span class="line"><span class="cl">Downloaded: <span class="m">54</span> files, 6.6M in 14s <span class="o">(</span><span class="m">479</span> KB/s<span class="o">)</span> +</span></span><span class="line"><span class="cl">Converting links in ns.html?id<span class="o">=</span>GTM-5GS688K.html... nothing to <span class="k">do</span>. +</span></span><span class="line"><span class="cl">Converting links in c3fVa.html... 38. +</span></span><span class="line"><span class="cl">31-7 +</span></span><span class="line"><span class="cl">Converting links in styles.css?v<span class="o">=</span>v2.6.15.css... 35. +</span></span><span class="line"><span class="cl">34-1 +</span></span><span class="line"><span class="cl">Converted links in <span class="m">3</span> files in 0.06 seconds. +</span></span></code></pre></td></tr></table> +</div> +</div> پلاگین های کاربردی گنومhttps://bit-orbit.github.io/p/%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C-%DA%AF%D9%86%D9%88%D9%85/Fri, 14 Jan 2022 18:18:28 +0330https://bit-orbit.github.io/p/%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C-%DA%AF%D9%86%D9%88%D9%85/<img src="https://bit-orbit.github.io/images/post/gp.jpg" alt="Featured image of post پلاگین های کاربردی گنوم " /><div dir='rtl' style="font-size:x-large;"> +<p>اگر مثل من از محیط gnome روی توزیع لینوکس استفاده می‌کنید، احتمالا شیفته سادگی‌اش شدید! اما بیایید چند پلاگین به آن اضافه کنیم تا درضمن داشتن این سادگی، عملکرد این محیط -را توسعه دهیم.</p> -<hr> -<div dir='ltr'> -<h3 id="i-shutdown-timerhttpsextensionsgnomeorgextension4372shutdowntimer">#I <a class="link" href="https://extensions.gnome.org/extension/4372/shutdowntimer/" target="_blank" rel="noopener" - >Shutdown Timer</a></h3> -</div> -<p>در لینوکس به سادگی با یک کامند می‌شود سیستم را زمانبندی کرد که +را توسعه دهیم.</p> +<hr> +<div dir='ltr'> +<h3 id="i-shutdown-timerhttpsextensionsgnomeorgextension4372shutdowntimer">#I <a class="link" href="https://extensions.gnome.org/extension/4372/shutdowntimer/" target="_blank" rel="noopener" +>Shutdown Timer</a> +</h3></div> +<p>در لینوکس به سادگی با یک کامند می‌شود سیستم را زمانبندی کرد که خاموش یا تعلیق شود. -با نصب این پلاگین مجبور به وارد کردن کامند برای خاموش/تعلیق کردن نیستیم!</p> -<p><img src="https://bit-orbit.github.io/images/post/shut.jpg" - - - - loading="lazy" - - alt="shutdown sch" - - -></p> -<hr> -<div dir='ltr'> -<h3 id="ii-application-volume-mixerhttpsextensionsgnomeorgextension3499application-volume-mixer">#II <a class="link" href="https://extensions.gnome.org/extension/3499/application-volume-mixer" target="_blank" rel="noopener" - >Application Volume Mixer</a></h3> -</div> -<p>بار ها شده که نیاز دارم صدای یک برنامه رو کم کنم و صدای برنامه‌ای دیگر را +با نصب این پلاگین مجبور به وارد کردن کامند برای خاموش/تعلیق کردن نیستیم!</p> +<p><img src="https://bit-orbit.github.io/images/post/shut.jpg" +loading="lazy" +alt="shutdown sch" +></p> +<hr> +<div dir='ltr'> +<h3 id="ii-application-volume-mixerhttpsextensionsgnomeorgextension3499application-volume-mixer">#II <a class="link" href="https://extensions.gnome.org/extension/3499/application-volume-mixer" target="_blank" rel="noopener" +>Application Volume Mixer</a> +</h3></div> +<p>بار ها شده که نیاز دارم صدای یک برنامه رو کم کنم و صدای برنامه‌ای دیگر را زیاد. ممکنه بعضی از برنامه ها مانند -<em>vlc</em> +<em>vlc</em> این امکان را خودشان فراهم کرده باشند. اما با این پلاگین شما به راحتی می‌توانید صدای -هر برنامه را به صورت مجزا کنترل کنید.</p> -<p><img src="https://bit-orbit.github.io/images/post/vl.png" - - - - loading="lazy" - - alt="Vulume mixer" - - -></p> -<hr> -<div dir='ltr'> -<h3 id="iii-dash-to-dockhttpsextensionsgnomeorgextension307dash-to-dock">III <a class="link" href="https://extensions.gnome.org/extension/307/dash-to-dock/" target="_blank" rel="noopener" - >dash-to-dock</a></h3> -</div> -<p>task bar +هر برنامه را به صورت مجزا کنترل کنید.</p> +<p><img src="https://bit-orbit.github.io/images/post/vl.png" +loading="lazy" +alt="Vulume mixer" +></p> +<hr> +<div dir='ltr'> +<h3 id="iii-dash-to-dockhttpsextensionsgnomeorgextension307dash-to-dock">III <a class="link" href="https://extensions.gnome.org/extension/307/dash-to-dock/" target="_blank" rel="noopener" +>dash-to-dock</a> +</h3></div> +<p>task bar پیشفرض گنوم بد نیست ولی ظاهر زیبایی هم نداره. اما این پلاگین task bar شما را به dock تبدیل می‌کند. -ظاهر کوچک و زیباتری دارد</p> -<p>به صورت پیشفرض زمانی که یک برنامه +ظاهر کوچک و زیباتری دارد</p> +<p>به صورت پیشفرض زمانی که یک برنامه maximize است dock @@ -5467,246 +4920,178 @@ dock dock پنهان شده است می‌رود dock -ظاهر می‌شود.</p> -<h2 id="dash-to-dockimagespostdash_to_dockjpg"><img src="https://bit-orbit.github.io/images/post/dash_to_dock.jpg" - - - - loading="lazy" - - alt="dash to dock" - - -></h2> -<div dir='ltr'> -<h3 id="iv-clipboard-indicatorhttpsextensionsgnomeorgextension779clipboard-indicator">#IV <a class="link" href="https://extensions.gnome.org/extension/779/clipboard-indicator/" target="_blank" rel="noopener" - >Clipboard Indicator</a></h3> -</div> -<p>فرض کیند متنی را کپی می‌کنیم و بعد از مدتی متن و یا فایل های دیگری را کپی می‌کنیم +ظاهر می‌شود.</p> +<h2 id="dash-to-dockimagespostdash_to_dockjpg"><img src="https://bit-orbit.github.io/images/post/dash_to_dock.jpg" +loading="lazy" +alt="dash to dock" +> +</h2><div dir='ltr'> +<h3 id="iv-clipboard-indicatorhttpsextensionsgnomeorgextension779clipboard-indicator">#IV <a class="link" href="https://extensions.gnome.org/extension/779/clipboard-indicator/" target="_blank" rel="noopener" +>Clipboard Indicator</a> +</h3></div> +<p>فرض کیند متنی را کپی می‌کنیم و بعد از مدتی متن و یا فایل های دیگری را کپی می‌کنیم و بعد از مدتی مجددا به متن اولیه نیاز پیدا کرده‌ایم ولی دیگر در کلیپ برد ما نیست -چرا که داده های بعدی جایگزین متن اولیه در کلیپ برد شده است.</p> -<p>پلاگین -<em>clipboard indicator</em> +چرا که داده های بعدی جایگزین متن اولیه در کلیپ برد شده است.</p> +<p>پلاگین +<em>clipboard indicator</em> هر متنی را که کپی کنیم را در فهرستی ذخیره می‌کند. علاوه به این یک فهرست -<em>favorite</em> +<em>favorite</em> هم در این کلیپ برد وجود دارد که می‌توانید متن هایی را به آن اضافه کنید که دیگر خذف نشوند. -و همچنین از فهرست اصلی جدا باشد.</p> -<p>و شاید بخشی از متنی را به یاد داشته باشید که نیاز دارید ببینید در کلیپ برد هست و یا -نه، برای اینکار هم یک بخش جست و جو وجود دارد.</p> -<h2 id="clipboardimagespostclpjpg"><img src="https://bit-orbit.github.io/images/post/clp.jpg" - - - - loading="lazy" - - alt="Clipboard" - - -></h2> -<div dir='ltr'> -<h3 id="v-net-speedhttpsextensionsgnomeorgextension104netspeed">#V <a class="link" href="https://extensions.gnome.org/extension/104/netspeed/" target="_blank" rel="noopener" - >net speed</a></h3> -</div> -<p>بیشتر مواقع نیاز داریم تا سرعت اینترنت را هنگام استفاده از آن ببینیم. +و همچنین از فهرست اصلی جدا باشد.</p> +<p>و شاید بخشی از متنی را به یاد داشته باشید که نیاز دارید ببینید در کلیپ برد هست و یا +نه، برای اینکار هم یک بخش جست و جو وجود دارد.</p> +<h2 id="clipboardimagespostclpjpg"><img src="https://bit-orbit.github.io/images/post/clp.jpg" +loading="lazy" +alt="Clipboard" +> +</h2><div dir='ltr'> +<h3 id="v-net-speedhttpsextensionsgnomeorgextension104netspeed">#V <a class="link" href="https://extensions.gnome.org/extension/104/netspeed/" target="_blank" rel="noopener" +>net speed</a> +</h3></div> +<p>بیشتر مواقع نیاز داریم تا سرعت اینترنت را هنگام استفاده از آن ببینیم. و یا زمانی که فایلی در شبکه انتقال می‌دهیم نیاز داریم تا سرعت انتقال را در هر لحظه بدانیم. پلاگین NetSpeed -این قابلیت را دارد که سرعت شبکه وایرلس و شبکه سیمی را مجزا نشان دهد.</p> -<p><img src="https://bit-orbit.github.io/images/post/netspeed.png" - - - - loading="lazy" - - alt="netspeed" - - -></p> -<hr> -<div dir='ltr'> -<h3 id="vi-caffeinehttpsextensionsgnomeorgextension517caffeine">#VI <a class="link" href="https://extensions.gnome.org/extension/517/caffeine/" target="_blank" rel="noopener" - >Caffeine</a></h3> -</div> -<p>وقتی برای مدتی به موس و کیبرد دست نزنیم صفحه نمایش خودکار خاموش می‌شود +این قابلیت را دارد که سرعت شبکه وایرلس و شبکه سیمی را مجزا نشان دهد.</p> +<p><img src="https://bit-orbit.github.io/images/post/netspeed.png" +loading="lazy" +alt="netspeed" +></p> +<hr> +<div dir='ltr'> +<h3 id="vi-caffeinehttpsextensionsgnomeorgextension517caffeine">#VI <a class="link" href="https://extensions.gnome.org/extension/517/caffeine/" target="_blank" rel="noopener" +>Caffeine</a> +</h3></div> +<p>وقتی برای مدتی به موس و کیبرد دست نزنیم صفحه نمایش خودکار خاموش می‌شود و بعد از مدتی سیستم به حالت suspend می‌رود. اولین راهی که ذهن ما می‌رسد این است که در تظیمات زمان به تعلیق درامدن سیستم را بیشتر کنیم. اما این روش زمانی که نیازش نداریم کار مفیدی نیست، چرا که ممکن است ساعات ها سیستم بدون هیچ استفاده‌ای روشن بماند. برای همین من این پلاگین را دارم، زمانی که نیاز دارم تا از سیستم دور باشم -کافئین رو روشن می‌کنم و زمانی که نمی‌دونم چی پیش میاد! خاموشش می‌‌کنم.</p> -<p><img src="https://bit-orbit.github.io/images/post/caf.png" - - - - loading="lazy" - - alt="caffein" - - -></p> -<hr> -<div dir='ltr'> -<h3 id="vii-google-searchhttpsextensionsgnomeorgextension4132google-search-provider">#VII <a class="link" href="https://extensions.gnome.org/extension/4132/google-search-provider/" target="_blank" rel="noopener" - >Google Search</a></h3> -</div> -<p>با وجود این اکستنشن شما مجبور به اجرای مرورگر برای جست و جوی یک عبارت نیستید. +کافئین رو روشن می‌کنم و زمانی که نمی‌دونم چی پیش میاد! خاموشش می‌‌کنم.</p> +<p><img src="https://bit-orbit.github.io/images/post/caf.png" +loading="lazy" +alt="caffein" +></p> +<hr> +<div dir='ltr'> +<h3 id="vii-google-searchhttpsextensionsgnomeorgextension4132google-search-provider">#VII <a class="link" href="https://extensions.gnome.org/extension/4132/google-search-provider/" target="_blank" rel="noopener" +>Google Search</a> +</h3></div> +<p>با وجود این اکستنشن شما مجبور به اجرای مرورگر برای جست و جوی یک عبارت نیستید. کافیه عبارت جست و جو رو در منوی overview خود گنوم بنویسید و بعد یکی از پیشنهاد های گوگل را انتخاب کنید. و -یا حتی خود عبارت را جست و جو کنید.</p> -<p><img src="https://extensions.gnome.org/extension-data/screenshots/screenshot_4132.png" - - - - loading="lazy" - - alt="google search" - - -></p> -<hr> -<h3 id="viii-jigglehttpsextensionsgnomeorgextension3438jiggle">#VIII <a class="link" href="https://extensions.gnome.org/extension/3438/jiggle/" target="_blank" rel="noopener" - >Jiggle</a></h3> -<p>کرسر موس رو گم کردین؟ موس رو تکون بدین!</p> -<p><img src="https://bit-orbit.github.io/images/post/screenshot_3438.gif" - - - - loading="lazy" - - alt="Jiggle" - - -></p> -<hr> -<h3 id="ix-custom-hot-cornershttpsextensionsgnomeorgextension1362custom-hot-corners">#IX <a class="link" href="https://extensions.gnome.org/extension/1362/custom-hot-corners/" target="_blank" rel="noopener" - >Custom Hot Corners</a></h3> -<p>یکی از پلاگین های مورد علاقه من، با این پلاگین لبه سیستم را برای یک عمل خاصی تنظیم می‌کنیم که وقتی +یا حتی خود عبارت را جست و جو کنید.</p> +<p><img src="https://extensions.gnome.org/extension-data/screenshots/screenshot_4132.png" +loading="lazy" +alt="google search" +></p> +<hr> +<h3 id="viii-jigglehttpsextensionsgnomeorgextension3438jiggle">#VIII <a class="link" href="https://extensions.gnome.org/extension/3438/jiggle/" target="_blank" rel="noopener" +>Jiggle</a> +</h3><p>کرسر موس رو گم کردین؟ موس رو تکون بدین!</p> +<p><img src="https://bit-orbit.github.io/images/post/screenshot_3438.gif" +loading="lazy" +alt="Jiggle" +></p> +<hr> +<h3 id="ix-custom-hot-cornershttpsextensionsgnomeorgextension1362custom-hot-corners">#IX <a class="link" href="https://extensions.gnome.org/extension/1362/custom-hot-corners/" target="_blank" rel="noopener" +>Custom Hot Corners</a> +</h3><p>یکی از پلاگین های مورد علاقه من، با این پلاگین لبه سیستم را برای یک عمل خاصی تنظیم می‌کنیم که وقتی کرسور موس به سمت آن رفت، آن عمل انجام بشود. مثلا وقتی موس به گوشه سمت بالا برخورد کرد، منوی over view -باز بشود. و یا مثلا نظیم می‌کنیم که وقتی موس به گوشه پایین سمنت چپ بر خورد کرد یک کامند اجرا شود.</p> -<p><img src="https://bit-orbit.github.io/images/post/1.gif" - - - - loading="lazy" - - alt="Custom Hot Corner" - - -></p> -</div> - - - zsh بهترین پلاگین های - https://bit-orbit.github.io/p/zsh-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C/ - Tue, 11 Jan 2022 02:44:12 +0330 - - https://bit-orbit.github.io/p/zsh-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C/ - <img src="https://bit-orbit.github.io/images/post/terminal.jpg" alt="Featured image of post zsh بهترین پلاگین های " /><p>نوشتن یک برنامه کار سختی نیست، بلکه نگه‌داری و آپدیت یک برنامه‌ست، پلاگین این ویژگی را می‌دهد تا به راحتی عملکرد یک برنامه را بی‌افزاییم.</p> -<hr> -<div dir='rtl' style='font-size:25px'> -<h3 id="themeshttpsgithubcomohmyzshohmyzshtreemasterpluginsthemes-"><a class="link" href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/themes" target="_blank" rel="noopener" - >themes</a> #Ⅳ</h3> -<p>انتخاب +باز بشود. و یا مثلا نظیم می‌کنیم که وقتی موس به گوشه پایین سمنت چپ بر خورد کرد یک کامند اجرا شود.</p> +<p><img src="https://bit-orbit.github.io/images/post/1.gif" +loading="lazy" +alt="Custom Hot Corner" +></p> +</div> zsh بهترین پلاگین هایhttps://bit-orbit.github.io/p/zsh-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C/Tue, 11 Jan 2022 02:44:12 +0330https://bit-orbit.github.io/p/zsh-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C/<img src="https://bit-orbit.github.io/images/post/terminal.jpg" alt="Featured image of post zsh بهترین پلاگین های " /><p>نوشتن یک برنامه کار سختی نیست، بلکه نگه‌داری و آپدیت یک برنامه‌ست، پلاگین این ویژگی را می‌دهد تا به راحتی عملکرد یک برنامه را بی‌افزاییم.</p> +<hr> +<div dir='rtl' style='font-size:25px'> +<h3 id="themeshttpsgithubcomohmyzshohmyzshtreemasterpluginsthemes-"><a class="link" href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/themes" target="_blank" rel="noopener" +>themes</a> #Ⅳ +</h3><p>انتخاب بین تم های zsh واقعا کار سختیه!‌ هر تم ظاهر جدیدی به ترمینال شما می‌دهد که -کار کردن در ترمینال را جذاب تر می‌کند.</p> -<p>با استفاده از این پلاگین شما بدون نیاز به تغییر دستی فایل کانفیگ -<code>zshrc.</code>، -می‌توانید تم را تغییر بدین.</p> -<p><img src="https://bit-orbit.github.io/images/post/theme.gif" - - - - loading="lazy" - - alt="theme-plugin" - - -></p> -<blockquote> -<ul> -<li>تغییر به یک تم مشخص</li> -</ul> -<p><code>theme theme_name</code></p> -</blockquote> -<blockquote> -<ul> -<li>تغییر رندم تم</li> -</ul> -<p><code>theme</code></p> -</blockquote> -<blockquote> -<ul> -<li>دیدن لیستی از تم های نصب شده</li> -</ul> -<p><code>lstheme</code></p> -</blockquote> -<hr> -<h3 id="zsh-autosuggestionshttpsgithubcomzsh-userszsh-autosuggestions-"><a class="link" href="https://github.com/zsh-users/zsh-autosuggestions" target="_blank" rel="noopener" - >zsh-autosuggestions</a> #Ⅲ</h3> -<blockquote> -<p><a class="link" href="https://github.com/zsh-users/zsh-autosuggestions" target="_blank" rel="noopener" - >تنها پلاگینی که باید نصب بشه</a></p> -</blockquote> -<p>این یکی از پلاگین هایی است که بدون آن زندگی ممکن نیست!</p> -<p>همانطور که شما دستوری را تایپ می‌کنید، متنی به رنگ خاکستری ظاهر می‌شود که +کار کردن در ترمینال را جذاب تر می‌کند.</p> +<p>با استفاده از این پلاگین شما بدون نیاز به تغییر دستی فایل کانفیگ +<code>zshrc.</code>، +می‌توانید تم را تغییر بدین.</p> +<p><img src="https://bit-orbit.github.io/images/post/theme.gif" +loading="lazy" +alt="theme-plugin" +></p> +<blockquote> +<ul> +<li>تغییر به یک تم مشخص</li> +</ul> +<p><code>theme theme_name</code></p> +</blockquote> +<blockquote> +<ul> +<li>تغییر رندم تم</li> +</ul> +<p><code>theme</code></p> +</blockquote> +<blockquote> +<ul> +<li>دیدن لیستی از تم های نصب شده</li> +</ul> +<p><code>lstheme</code></p> +</blockquote> +<hr> +<h3 id="zsh-autosuggestionshttpsgithubcomzsh-userszsh-autosuggestions-"><a class="link" href="https://github.com/zsh-users/zsh-autosuggestions" target="_blank" rel="noopener" +>zsh-autosuggestions</a> #Ⅲ +</h3><blockquote> +<p><a class="link" href="https://github.com/zsh-users/zsh-autosuggestions" target="_blank" rel="noopener" +>تنها پلاگینی که باید نصب بشه</a></p> +</blockquote> +<p>این یکی از پلاگین هایی است که بدون آن زندگی ممکن نیست!</p> +<p>همانطور که شما دستوری را تایپ می‌کنید، متنی به رنگ خاکستری ظاهر می‌شود که به شما دستورات ممکن را پیشنهاد می‌دهد و یا از history دستور مشابه که قبلا اجرا کرده‌اید را جست و جو می‌کند و پیشنهاد می‌هد. و خب شما را برای تایپ کردن کامل دستور و سوییچ هایش راحت می‌کند. برای اینکه دستور ظاهر شده تایپ شود کافیست کلید -<code>right arrow key</code> +<code>right arrow key</code> یا همان -<code>فلش سمت راست</code> -را فشار دهید.</p> -<p><img src="https://bit-orbit.github.io/images/post/zsh-autosuggestions-gif.gif" - - - - loading="lazy" - - alt="zsh-autosuggestion" - - -></p> -<hr> -<h3 id="sudohttpsgithubcomohmyzshohmyzshtreemasterpluginssudo-"><a class="link" href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/sudo" target="_blank" rel="noopener" - >sudo</a> #Ⅱ</h3> -<p>بار ها اتفاق افتاده دستوری را که نیاز به دسترسی +<code>فلش سمت راست</code> +را فشار دهید.</p> +<p><img src="https://bit-orbit.github.io/images/post/zsh-autosuggestions-gif.gif" +loading="lazy" +alt="zsh-autosuggestion" +></p> +<hr> +<h3 id="sudohttpsgithubcomohmyzshohmyzshtreemasterpluginssudo-"><a class="link" href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/sudo" target="_blank" rel="noopener" +>sudo</a> #Ⅱ +</h3><p>بار ها اتفاق افتاده دستوری را که نیاز به دسترسی root داشته را بدون نوشتن کلمه -<em>sudo</em> +<em>sudo</em> اجرا کرده‌ام، و بعد از دیدن ارور، دستور را دوباره تایپ کردم و کلمه -<em>sudo</em> +<em>sudo</em> را هم به اول دستور اضافه کردم. اما این پلاگین بار تایپ مجدد یک دستور بخاطر فراموش کردن کلمه -<em>sudo</em> +<em>sudo</em> را از دوش ما بر‌ می‌دارد. کافیست بعد از نوشتن و اجرای دستور بدون -<em>sudo</em>، +<em>sudo</em>، دوبار کلید -<code>esc</code> -را بزنید</p> -<p><img src="https://bit-orbit.github.io/images/post/sudo.gif" - - - - loading="lazy" - - alt="zsh-sudo-theme" - - -></p> -<hr> -<h3 id="web-searchhttpsgithubcomohmyzshohmyzshtreemasterpluginsweb-search-"><a class="link" href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/web-search" target="_blank" rel="noopener" - >web-search</a> #Ⅰ</h3> -<p>وقتی با لینوکس کار می‌‌کنید، تمام لحظه ها در ترمینال هستنید. +<code>esc</code> +را بزنید</p> +<p><img src="https://bit-orbit.github.io/images/post/sudo.gif" +loading="lazy" +alt="zsh-sudo-theme" +></p> +<hr> +<h3 id="web-searchhttpsgithubcomohmyzshohmyzshtreemasterpluginsweb-search-"><a class="link" href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/web-search" target="_blank" rel="noopener" +>web-search</a> #Ⅰ +</h3><p>وقتی با لینوکس کار می‌‌کنید، تمام لحظه ها در ترمینال هستنید. فرض کنید سوالی دارید که باید آن را گوگل کنید،‌ شما مجبور می‌شوید مرورگر را باز کنید، یک تب جدید ایجاد کنید و متنتان را سرچ کنید. ولی به این فکر کنید که نیازی به باز کردن مرورگر و یا سوییچ کردن بین ویندوز ها ندارید، @@ -5714,143 +5099,97 @@ root google را در ترمینال تایپ کنید و متن خود را جلو آن بنوسید و در آخر دکمه اینتر را بزنید! -بنگ! گوگل باز می‌شود و حاصل جست و جوی شما آماده است.</p> -<p><img src="https://bit-orbit.github.io/images/post/web-search.gif" - - - - loading="lazy" - - alt="web-search" - - -></p> -</div> -<table> - <thead> - <tr> - <th style="text-align: center">دستور\موتور جست و جو</th> - </tr> - </thead> - <tbody> - <tr> - <td style="text-align: center"><code>bing</code></td> - </tr> - <tr> - <td style="text-align: center"><code>google</code></td> - </tr> - <tr> - <td style="text-align: center"><code>yahoo</code></td> - </tr> - <tr> - <td style="text-align: center"><code>ddg</code> or <code>duckduckgo</code></td> - </tr> - <tr> - <td style="text-align: center"><code>sp</code> or <code>startpage</code></td> - </tr> - <tr> - <td style="text-align: center"><code>yandex</code></td> - </tr> - <tr> - <td style="text-align: center"><code>github</code></td> - </tr> - <tr> - <td style="text-align: center"><code>baidu</code></td> - </tr> - <tr> - <td style="text-align: center"><code>ecosia</code></td> - </tr> - <tr> - <td style="text-align: center"><code>goodreads</code></td> - </tr> - <tr> - <td style="text-align: center"><code>qwant</code></td> - </tr> - <tr> - <td style="text-align: center"><code>givero</code></td> - </tr> - <tr> - <td style="text-align: center"><code>stackoverflow</code></td> - </tr> - <tr> - <td style="text-align: center"><code>wolframalpha</code></td> - </tr> - <tr> - <td style="text-align: center"><code>archive</code></td> - </tr> - <tr> - <td style="text-align: center"><code>scholar</code></td> - </tr> - </tbody> -</table> -<hr> - - - - Archives - https://bit-orbit.github.io/archives/ - Tue, 28 May 2019 00:00:00 +0000 - - https://bit-orbit.github.io/archives/ - - - - About - https://bit-orbit.github.io/about/ - Thu, 28 Feb 2019 00:00:00 +0000 - - https://bit-orbit.github.io/about/ - <p>من از هر پلتفرمی که بتونم داخلش متن بنویسم به عنوان وبلاگ استفاده می‌کنم، +بنگ! گوگل باز می‌شود و حاصل جست و جوی شما آماده است.</p> +<p><img src="https://bit-orbit.github.io/images/post/web-search.gif" +loading="lazy" +alt="web-search" +></p> +</div> +<table> +<thead> +<tr> +<th style="text-align: center">دستور\موتور جست و جو</th> +</tr> +</thead> +<tbody> +<tr> +<td style="text-align: center"><code>bing</code></td> +</tr> +<tr> +<td style="text-align: center"><code>google</code></td> +</tr> +<tr> +<td style="text-align: center"><code>yahoo</code></td> +</tr> +<tr> +<td style="text-align: center"><code>ddg</code> or <code>duckduckgo</code></td> +</tr> +<tr> +<td style="text-align: center"><code>sp</code> or <code>startpage</code></td> +</tr> +<tr> +<td style="text-align: center"><code>yandex</code></td> +</tr> +<tr> +<td style="text-align: center"><code>github</code></td> +</tr> +<tr> +<td style="text-align: center"><code>baidu</code></td> +</tr> +<tr> +<td style="text-align: center"><code>ecosia</code></td> +</tr> +<tr> +<td style="text-align: center"><code>goodreads</code></td> +</tr> +<tr> +<td style="text-align: center"><code>qwant</code></td> +</tr> +<tr> +<td style="text-align: center"><code>givero</code></td> +</tr> +<tr> +<td style="text-align: center"><code>stackoverflow</code></td> +</tr> +<tr> +<td style="text-align: center"><code>wolframalpha</code></td> +</tr> +<tr> +<td style="text-align: center"><code>archive</code></td> +</tr> +<tr> +<td style="text-align: center"><code>scholar</code></td> +</tr> +</tbody> +</table> +<hr>Archiveshttps://bit-orbit.github.io/archives/Tue, 28 May 2019 00:00:00 +0000https://bit-orbit.github.io/archives/Abouthttps://bit-orbit.github.io/about/Thu, 28 Feb 2019 00:00:00 +0000https://bit-orbit.github.io/about/<p>من از هر پلتفرمی که بتونم داخلش متن بنویسم به عنوان وبلاگ استفاده می‌کنم، حتی شاید یه روزی از pastebin -برای همین کار استفاده کنم (=</p> -<p>این هم یکی از وبلاگ های منه :)</p> -<p>علاقه‌ام سمت کار های کامپیوتری مثل توسعه نرم افزار و کانفیگ ابزار ها مختلف برای ساخت -یک سرویسه.</p> -<p>از خودم هم بخواهم بگم، من یه دانشجوی نرم افزار هستم، +برای همین کار استفاده کنم (=</p> +<p>این هم یکی از وبلاگ های منه :)</p> +<p>علاقه‌ام سمت کار های کامپیوتری مثل توسعه نرم افزار و کانفیگ ابزار ها مختلف برای ساخت +یک سرویسه.</p> +<p>از خودم هم بخواهم بگم، من یه دانشجوی نرم افزار هستم، لینوکسی‌ام و زبان اصلی‌ام پایتونه، و خب کم‌کم دارم مهارجت می‌کنم به زبان -rust.</p> -<p>با +rust.</p> +<p>با django سایت و api می‌نویسم، ولی همینکار رو به زودی با rust -پیش می‌برم.</p> - - - - Links - https://bit-orbit.github.io/links/ - Mon, 01 Jan 0001 00:00:00 +0000 - - https://bit-orbit.github.io/links/ - <!-- +پیش می‌برم.</p>Linkshttps://bit-orbit.github.io/links/Mon, 01 Jan 0001 00:00:00 +0000https://bit-orbit.github.io/links/<!-- To use this feature, add `links` section to frontmatter. - -This page's frontmatter: - +This page's frontmatter: ```yaml links: - - title: GitHub - description: GitHub is the world's largest software development platform. - website: https://github.com - image: https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png - - title: TypeScript - description: TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. - website: https://www.typescriptlang.org - image: ts-logo-128.jpg -``` --> -<!-- `image` field accepts both local and external images. --> - - - Search - https://bit-orbit.github.io/search/ - Mon, 01 Jan 0001 00:00:00 +0000 - - https://bit-orbit.github.io/search/ - - - - - +- title: GitHub +description: GitHub is the world's largest software development platform. +website: https://github.com +image: https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png +- title: TypeScript +description: TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. +website: https://www.typescriptlang.org +image: ts-logo-128.jpg +``` --> +<!-- `image` field accepts both local and external images. -->Searchhttps://bit-orbit.github.io/search/Mon, 01 Jan 0001 00:00:00 +0000https://bit-orbit.github.io/search/ \ No newline at end of file diff --git a/docs/links/index.html b/docs/links/index.html index 8e84e86..1f8a3f5 100644 --- a/docs/links/index.html +++ b/docs/links/index.html @@ -1,584 +1,21 @@ - - - - -Links - - - - - - - - - - - - - - - -
- - - -
-
-
- -
- - -
-

- Links -

- - -
- - - - - -
- - - -
- - - - - - - - - -
- -
- - - -
- -
- -
- - - - -
- - -
- - - -
- - - - - - - - - Licensed under CC BY-NC-SA 4.0 -
-
- - - -
- - -
- - - - - - - - - -
- - - - - - - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - - - - -
-
- - - - - +Links +

Links

+
+Licensed under CC BY-NC-SA 4.0
قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git a/docs/p/blade-runner/index.html b/docs/p/blade-runner/index.html index 45f2a44..492e54e 100644 --- a/docs/p/blade-runner/index.html +++ b/docs/p/blade-runner/index.html @@ -1,382 +1,17 @@ - - - - -Blade Runner - - - - - - - - - - - - - - - - -
- - - -
-
-
-
- - Featured image of post Blade Runner - - -
- - -
- - - - -
-

- Blade Runner -

- - -
- - - - - -
- -
- - - - - - - - - - -
- - - -
- - - - - - - - - -
- -
- - - -
- -
- -
- - -

پشت فیلم +Blade Runner +

Featured image of post Blade Runner

Blade Runner

+
+

پشت فیلم blade runner ایده جذابی هست که من خیلی دوست دارم. کلیت داستان به این شکل هست که دنیا تونسته از انسان @@ -384,14 +19,12 @@

هایی بسازه و از اونها برای پیشرفت و کار های سخت استفاده کنه، مثلا توی جنگ بجای سرباز واقعی استفاده می‌شن، اگه قراره ماموریت خطرناکی مثل اکتشاف توی فضا و یا دستگیری یک مجرم خطرناک کسی رو بفرستن، -چی بهتر از یه کلون که جون انسان واقعی به خطر نیوفته؟

-

اما از جایی به بعد کلون ها تغییر می‌کنند و دیگه برده بودن رو قبول نمی‌کنن، +چی بهتر از یه کلون که جون انسان واقعی به خطر نیوفته؟

اما از جایی به بعد کلون ها تغییر می‌کنند و دیگه برده بودن رو قبول نمی‌کنن، سعی می‌کنن فرار کنند و دستور انسان ها سرپیچی کنند. اما اینکار هم فایده‌ای نداره، چون انسان ها کلون های دیگه‌ای می‌سازند که کارشون پیدا کردن و کشتن کلون هایی هست که فرار کردن، به این شغل که مامولا شغل کلون ها هست می‌گن -blade runner.

-

این روند یکم شبیه یک +blade runner.

این روند یکم شبیه یک loop هست، ساخت clone @@ -402,1362 +35,55 @@

clone ها فرار می‌کنند و دوباره clone -های دیگه‌ای میان سراغ اینها.

-

باید بگم که +های دیگه‌ای میان سراغ اینها.

باید بگم که balde runner چندین سری فیلم هست، -حتی یک سریال انیمیشنی هم داره.

-
-

blade runner 1 -blade runner 2

-

blade runner 3 -blade runner 4

-

blade runner 5 -blade runner 6

-

blade runner 7 -blade runner 8

-

blade runner 9 -blade runner 10

-

blade runner 11 -blade runner 12

-

blade runner 13 -blade runner 14

-

blade runner 15 -blade runner 16

-

blade runner 17 -blade runner 18

-

blade runner 19 -blade runner 20

-

blade runner 21 -blade runner 22

-

blade runner 23 -blade runner 24

-

blade runner 25 -blade runner 26

-

blade runner 27 -blade runner 28

-

blade runner 29 -blade runner 30

-

blade runner 31 -blade runner 32

-

blade runner 33 -blade runner 34

-

blade runner 35 -blade runner 36

-

blade runner 37 -blade runner 38

-

blade runner 39 -blade runner 40

-

blade runner 41 -blade runner 42

-

blade runner 43 -blade runner 44

-

blade runner 45 -blade runner 46

-

blade runner 47 -blade runner 48

-

blade runner 49 -blade runner 50

-

blade runner 51 -blade runner 52

-

blade runner 53 -blade runner 54

-

blade runner 55 -blade runner 56

-

blade runner 57 -blade runner 58

-

blade runner 59 -blade runner 60

-

blade runner 61 -blade runner 62

-

blade runner 63 -blade runner 64

-

blade runner 65 -blade runner 66

-

blade runner 67 -blade runner 68

-

blade runner 69 -blade runner 70

-

blade runner 71 -blade runner 72

-

blade runner 73 -blade runner 74

-

blade runner 75 -blade runner 76

-

blade runner 77 -blade runner 78

-

blade runner 79 -blade runner 80

-

blade runner 81

- -

- - -
- - - -
- - - - - - - - - Licensed under CC BY-NC-SA 4.0 -
-
- - - -
- - - - - - - - - - -
-
- - -comments powered by Disqus -
- - - - - - - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - - - - -
-
- - - - - +حتی یک سریال انیمیشنی هم داره.


blade runner 1 +blade runner 2

blade runner 3 +blade runner 4

blade runner 5 +blade runner 6

blade runner 7 +blade runner 8

blade runner 9 +blade runner 10

blade runner 11 +blade runner 12

blade runner 13 +blade runner 14

blade runner 15 +blade runner 16

blade runner 17 +blade runner 18

blade runner 19 +blade runner 20

blade runner 21 +blade runner 22

blade runner 23 +blade runner 24

blade runner 25 +blade runner 26

blade runner 27 +blade runner 28

blade runner 29 +blade runner 30

blade runner 31 +blade runner 32

blade runner 33 +blade runner 34

blade runner 35 +blade runner 36

blade runner 37 +blade runner 38

blade runner 39 +blade runner 40

blade runner 41 +blade runner 42

blade runner 43 +blade runner 44

blade runner 45 +blade runner 46

blade runner 47 +blade runner 48

blade runner 49 +blade runner 50

blade runner 51 +blade runner 52

blade runner 53 +blade runner 54

blade runner 55 +blade runner 56

blade runner 57 +blade runner 58

blade runner 59 +blade runner 60

blade runner 61 +blade runner 62

blade runner 63 +blade runner 64

blade runner 65 +blade runner 66

blade runner 67 +blade runner 68

blade runner 69 +blade runner 70

blade runner 71 +blade runner 72

blade runner 73 +blade runner 74

blade runner 75 +blade runner 76

blade runner 77 +blade runner 78

blade runner 79 +blade runner 80

blade runner 81

+Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git "a/docs/p/cloud-\330\261\330\247-\330\250\331\207-\330\256\330\247\331\206\331\207-\330\256\331\210\330\257-\330\250\330\250\330\261\333\214\330\257/index.html" "b/docs/p/cloud-\330\261\330\247-\330\250\331\207-\330\256\330\247\331\206\331\207-\330\256\331\210\330\257-\330\250\330\250\330\261\333\214\330\257/index.html" index a0f5beb..158e94c 100644 --- "a/docs/p/cloud-\330\261\330\247-\330\250\331\207-\330\256\330\247\331\206\331\207-\330\256\331\210\330\257-\330\250\330\250\330\261\333\214\330\257/index.html" +++ "b/docs/p/cloud-\330\261\330\247-\330\250\331\207-\330\256\330\247\331\206\331\207-\330\256\331\210\330\257-\330\250\330\250\330\261\333\214\330\257/index.html" @@ -1,428 +1,18 @@ - - - - -cloud را به خانه خود ببرید! - - - - - - - - - - - - - - - - -
- - - - -
-
-
-
- - - Featured image of post cloud را به خانه خود ببرید! - - -
- - -
- - - - -
-

- cloud را به خانه خود ببرید! -

- - -
- - - - - -
- -
- - - - - - - - - - -
- - - -
- - - - - - - - - -
- -
- - - -
- -
- -
- - -

چطور این ایده به ذهن من رسید ؟

-

جریان این ایده به این شکل بود که خب ما ایرانی ها اینترنت +cloud را به خانه خود ببرید! +

Featured image of post cloud را به خانه خود ببرید!

cloud را به خانه خود ببرید!

+
+

چطور این ایده به ذهن من رسید ؟

جریان این ایده به این شکل بود که خب ما ایرانی ها اینترنت به شدت محدود شده‌ای داریم، برای همین ما برای استفاده از اینترنت از vpn @@ -435,100 +25,53 @@

چطور این ا vpn رو که به هزار زحمت وصل شده بود، قطع کنیم. خب چاره چیه؟ اینکه اگه یک سیستم توی خونه یا شرکت دارین -که همیشه روشنه رو تبدیل به یک سرور کنیم :)

-

توی این فکر بودم که نیازم رو به چنین سیستم عاملی حس کردم، بعد کمی نیاز های دیگه رو بهش اضافه کردم و یه پست +که همیشه روشنه رو تبدیل به یک سرور کنیم :)

توی این فکر بودم که نیازم رو به چنین سیستم عاملی حس کردم، بعد کمی نیاز های دیگه رو بهش اضافه کردم و یه پست داخل تلگرام نوشتم، یکی کامنت گذاشت و خب این سیستم عامل -را معرفی کرد.

-
-

umbrel چیست ؟

-

درواقع +را معرفی کرد.


umbrel چیست ؟

درواقع umbrel یک سیستم عامل است، زمانی که شما این سیستم عامل را نصب کنید، یک صفحه وب در اختیار شما می‌گذارد و شما از طریق این صفحه درون مرورگر خود می‌توانید به سیستم دسترسی داشته باشید. برای مثلا می‌توانید سرویس های مختلف و ابزار های -مختلف را روی +مختلف را روی umbrel -نصب و یا کانفیگ کنید.

-

سرویس هایی که +نصب و یا کانفیگ کنید.

سرویس هایی که umbrel ارائه می‌دهد تقریبا همان سرویس هایی هستند که شما در طول -روز از نسخه های تجاری آنها استفاده می‌کنید.

-

اگه دقیق تر بخواهم بگم، این سیستم عامل یک +روز از نسخه های تجاری آنها استفاده می‌کنید.

اگه دقیق تر بخواهم بگم، این سیستم عامل یک store در اختیار کاربران‌ش قرار می‌ده. و خب این یکی از مهم ترین کار هایی است که این سیستم عامل انجام می‌ده چرا که اگر این استور وجود نداشت، شما شخصا باید فرایند کانفیگ و نصب سرویس ها را به عهده می‌گرفتید(این کار یک متخصص دواپس -هست، خیلی هم جالیه)

-

umbrel store

-
-

umbrel چه نیازی را برطرف می‌کند ؟

-

وقتی از سرویس های تحت اینترنت استفاده می‌کنید، +هست، خیلی هم جالیه)

umbrel store


umbrel چه نیازی را برطرف می‌کند ؟

وقتی از سرویس های تحت اینترنت استفاده می‌کنید، به احتمال زیاد شما کالای اون شرکتی هستید که ابزار را در اختیارتون قرار داده است. اگر دقت کنیم می‌بینیم که این شرکت ها بسیاری کاربر دارند و خب برای ارائه درست خدمت به کاربرانشون سرور های زیادی اجاره می‌کنند سرویس ها رو دائم اپدیت و بهتر می‌کنند -و خب سرویس های متعددی هم ارائه می‌کنند.

-

همه این کار ها نیاز به هزینه های زیادی دارند، +و خب سرویس های متعددی هم ارائه می‌کنند.

همه این کار ها نیاز به هزینه های زیادی دارند، بودجه این شرکت ها فقط و فقط با تبلیغات تامین نمی‌شود بلکه با فروش اطلاعات کاربرانشون(خود ما) به شرکت ها و دولت ها -تامین می‌شود.

-

zukerberg spying

-

و البته اگر حتی شما برای سرویسی که استفاده می‌کنید +تامین می‌شود.

zukerberg spying

و البته اگر حتی شما برای سرویسی که استفاده می‌کنید هزینه‌ای پرداخت کنید، مثلا برای استفاده از گوگل دایو ماهانه هزینه هم پرداخت کنید، باز هم مشکلاتی وجود دارد، مثلا قانونا گوگل مالک فایلی است که شما روی سرور هایش -آپلود می‌کنید.

-

در چنین مواقعی هست که اصطلاح +آپلود می‌کنید.

در چنین مواقعی هست که اصطلاح self-hosting سرویس ها استفاده می‌شود. به این معنی که سرویس هایی که شما روزانه از آن استفاده می‌کنید را خودتان راه اندازی -کنید. اما اینکار نیاز به دانش بالایی داره.

-

سیستم عامل +کنید. اما اینکار نیاز به دانش بالایی داره.

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

-

umbrel self hosting

-
-

umbrel به روی سیستم عامل دسکتاپ

-

نصب +راه اندازی می‌کنید!

umbrel self hosting


umbrel به روی سیستم عامل دسکتاپ

نصب umbrel بسیاز سادهست فقط کافیه یک سیستم عامل debian رو روی سیستمتون داشته باشید، یک ترمینال باز کنید و کامند -نصب را بزنید، با یک کامند این سیستم نصب می‌شه.

-

ولی خب اگر سیستم عاملی ندارید که بر پایه +نصب را بزنید، با یک کامند این سیستم نصب می‌شه.

ولی خب اگر سیستم عاملی ندارید که بر پایه debain باشه، می‌شه به سادگی روی ماشین مجازی یک دبیان نصب کنید، حالت شبکه اون سیستم عامل رو @@ -545,10 +88,7 @@

umbrel به روی debain که umbrel -را روی ان نصب کردین را وارد کنید و تمام!

-
-

umbrel به روی رزبری پای

-

رزبری پای! یک سخت افزار کوچک که تقریبا یک کامپیوتر کامل +را روی ان نصب کردین را وارد کنید و تمام!


umbrel به روی رزبری پای

رزبری پای! یک سخت افزار کوچک که تقریبا یک کامپیوتر کامل است! البته که قدرت پردازش بالایی ندارد ولی در IOT استفاده زیادی دارد. با توجه به اینکه پردازنده های @@ -560,24 +100,10 @@

umbrel به روی رزبری پا را نصب کرد، برای همین سیستم عامل umbrel یک نسخه مخصوص برای رزبری پای دارد، کافیست آن را دانلود و -به روی ربزی خود نصب کنید.

-

به این دقت کنید که خب سعنی کنید یک هارد اکسترنال به +به روی ربزی خود نصب کنید.

به این دقت کنید که خب سعنی کنید یک هارد اکسترنال به رزبری متصل کنید که فضای کافی برای سروریسی مانند next cloud -داشته باشید.

-

umbrel on ressbery pi

-
-

umbrel بروی سرور شخصی

-

به سادگی اچرای یک کامند! کافیست فقط سیستم عامل +داشته باشید.

umbrel on ressbery pi


umbrel بروی سرور شخصی

به سادگی اچرای یک کامند! کافیست فقط سیستم عامل سرورتون debain و یا کلا بر پایه @@ -586,10 +112,7 @@

umbrel بروی سرور شخصی

-
-

دستگاه umbrel

-

شرکت سازنده +سرور را وارد مرورگر کنید، تمام!


دستگاه umbrel

شرکت سازنده umbrel به جز سیستم عامل، یک دستگاهی طراحی کرده است که به صورت پیشفرض سیستم عامل @@ -601,35 +124,19 @@

دستگاه umbrel

به روی rassbery PI استفاده می‌کنید، شما نیاز به یک فن دارید تا این دستگاه -را دائم خنک کند، از طرفی خود فن هم باید خنک شود.

-

اینجاست که این دستگاه رو برای شرکت یا خانه‌ شما مناسب‌تر -می‌کند(مطمئن باشید تبلیغ نمی‌کنم)

-

umbrel device

-
-

umbrel چطور کار می‌کند ؟

-

اگه بخواهم کمی فنی‌تر وارد ماجرا بشم، همونطور که گفت +را دائم خنک کند، از طرفی خود فن هم باید خنک شود.

اینجاست که این دستگاه رو برای شرکت یا خانه‌ شما مناسب‌تر +می‌کند(مطمئن باشید تبلیغ نمی‌کنم)

umbrel device


umbrel چطور کار می‌کند ؟

اگه بخواهم کمی فنی‌تر وارد ماجرا بشم، همونطور که گفت این سیستم عامل بهترین ویژگی که ارائه می‌کند store آن است. البته که اینجا store به معنی فروشگاه نیست، بلکه شبیه یک بازاری است که همه -اجناس‌ش رایگان است :)

-

سرویس های +اجناس‌ش رایگان است :)

سرویس های umbrel همه سرویس هایی هستند که به صورت منبع باز در اختیار همه قرار گرفته است، این سرویس ها برای اجرا شدن نیاز به شخصی دارد که دانش کافی از سرور داشته باشد و خب نحوه کانفیگ -کردن هر کدام از ابزار ها و سرویس ها را بداند.

-

دانلود و نصب هر سرویس به صورت جدگانه ممکن است به مشکلات +کردن هر کدام از ابزار ها و سرویس ها را بداند.

دانلود و نصب هر سرویس به صورت جدگانه ممکن است به مشکلات متعددی برخورد کند، مثلا در نصب سرویسی مثل nexcloud شما ممکن است نیاز به ورژن خاصی از @@ -638,11 +145,9 @@

umbrel چطور کار می‌کند nginx برای اجرای اسکریپت های php -هم واقعا به اندازه زیادی دردسر دارد.

-

اینجاست که داکر وارد ماجرا می‌شود! +هم واقعا به اندازه زیادی دردسر دارد.

اینجاست که داکر وارد ماجرا می‌شود! umbrel -از قبل تمامی سرویس ها را داکرایز کرده است.

-

داکرایز به چه معنیست؟ +از قبل تمامی سرویس ها را داکرایز کرده است.

داکرایز به چه معنیست؟ درواقع به این فکر کنید که شما یک برنامه را می‌خواهید نصب کنید، این سرویس توسط سازنده آن از ورژن خاصی از زبان مشخصی، لایبراری و فایل هایی استفاده کرده است که پیشفرض @@ -653,8 +158,7 @@

umbrel چطور کار می‌کند قرار داده است، و بعد کافیست شما آن فایل را به برنامه docker engine -بدهید، آن برنامه باید بدون هیچ مشکلی اجرا شود.

-

سیستم عامل +بدهید، آن برنامه باید بدون هیچ مشکلی اجرا شود.

سیستم عامل umbrel دقیقا چنین کاری می‌کند. تمامی image @@ -662,20 +166,7 @@

umbrel چطور کار می‌کند store برای شما شما لیست می‌کند، شما کافیست که دکمه install -را بزنید، بنگ! سرویس شما آماده است :)

-

umbrel dockeriz

-
-

امنیت

-

اگر +را بزنید، بنگ! سرویس شما آماده است :)

umbrel dockeriz


امنیت

اگر umbrel را به روی چیزی به جز سرور دارید، حتی اگر برای آن یک دامنه هم بگیرید، @@ -685,8 +176,7 @@

امنیت

tor به آن متصل شوید و یا یک VPN -سرور داخل شبکه داخلی خود راه اندازی کنید.

-

البته +سرور داخل شبکه داخلی خود راه اندازی کنید.

البته umbrel به جز tor @@ -696,60 +186,24 @@

امنیت

tailscale که مستقیم به روی umbrel -نصب می‌شود.

-

tailscala umbrel

-
-

سرویس های کاربردی umbrel

-
    -
  • matrix
  • -
-
-

خیلی ساده بگم، می‌تونید با این سرویس +نصب می‌شود.

tailscala umbrel


سرویس های کاربردی umbrel

  • matrix

خیلی ساده بگم، می‌تونید با این سرویس telegtam خودتون رو راه اندازی کنید. برای اینکه بیشتر درباراه این سرویس بدونید، -این پست -من را بخوانید.

-
-
    -
  • nextcloud
  • -
-
-

خیلی شبیه به گوگل درایو است، به جز نسخه وب +این پست +من را بخوانید.

  • nextcloud

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

-
-
    -
  • qbittorrent
  • -
-
-

اگر تورنت را می‌شناسید، قطعا این کلاینت معروف را هم باید +برای افراد خانواده و یا شرکت‌تون اکانت بسازید، و فضای شخصی خودشان را در اختیارشان قرار بدین.

  • qbittorrent

اگر تورنت را می‌شناسید، قطعا این کلاینت معروف را هم باید بشناسید، این کلاینت یک نسخه وب دارد که داخل فروشگاه umbrel قرار دارد. فایل های خود را برای دانلود به این کلاینت بدین و در زمانی که از اینرنت استفاده نمی‌کنید مثلا 2 تا 7 صبح -آن ها را بگذارید تا دانلود بشوند.

-
-
    -
  • pi-hole
  • -
-
-

برای خلاص شدن از تبلیغات اینترنت کافیه این سرویس +آن ها را بگذارید تا دانلود بشوند.

  • pi-hole

برای خلاص شدن از تبلیغات اینترنت کافیه این سرویس DNS را به روی umbrel @@ -757,13 +211,7 @@

سرویس های کاربرد DHCP را تنظیم کنید که IP -این سرویس را به دیگر دستگاه های شبکه بدهد.

-

-
    -
  • Jellyfin
  • -
-
-

یکی از نیاز های واقعا اساسی من، این سرویس است. +این سرویس را به دیگر دستگاه های شبکه بدهد.

  • Jellyfin

یکی از نیاز های واقعا اساسی من، این سرویس است. فیلم هایی که می‌بینم، و یا قرار است که ببینم‌شون رو می‌تونم با این سرویس به درستی دنبال کنم. در اصل این سرویس برای پخش کردن فیلم ها ساخته شده‌ است. @@ -773,371 +221,38 @@

سرویس های کاربرد فیلم ها رو تماشا کنید، مثلا اگر تلویزیون هوشمند دارید کافیست از طریق مرورگر آن وارد umbrel -خود بشین.

-

-

-snapdrop

-
-

سرویس خیلی ساده‌ای است که برای انتقال فایل داخل -شبکه لوکال استفاده می‌شود.

-
-
    -
  • whoogle search
  • -
-
-

البته +خود بشین.

-snapdrop

سرویس خیلی ساده‌ای است که برای انتقال فایل داخل +شبکه لوکال استفاده می‌شود.

  • whoogle search

البته whoogle یک موتور جست و جوی meta است، به این معنی که خودش وب را خزش نمی‌کند و از موتور های جست و جوی دیگر برای نتیجه جست و جوی شما استفاده -می‌کند.

-
-
    -
  • LlamaGPT
  • -
-
-

چیزی شبیه +می‌کند.

  • LlamaGPT

چیزی شبیه ChatGPT -ولی افلاین و کاملا خصوصی.

-
-
-

راه اندازی سرویس های شخصی

-

خیلی از سرویس ها هنوز به +ولی افلاین و کاملا خصوصی.


راه اندازی سرویس های شخصی

خیلی از سرویس ها هنوز به umbrel اضافه نشده. اضافه کردن سرویس به خود store -هم کار سختی نیستی، کافیه فقط داکرایز کردن رو بلد باشین.

-
    -
  • cache server
  • -
-

کش سرور ها معمولا با +هم کار سختی نیستی، کافیه فقط داکرایز کردن رو بلد باشین.

  • cache server

کش سرور ها معمولا با transparent proxy بدون اینکه کاربران متوجه پروکسی بشوند پیاده سازی می‌شوند. -کار آنها کاهش مصرف ترافیک است.

-

یکی از سرویس هایی که خیلی از شرکت ها برای کاهش هزینه های +کار آنها کاهش مصرف ترافیک است.

یکی از سرویس هایی که خیلی از شرکت ها برای کاهش هزینه های اینرنت و یا خب برای بهبود سرعت اینترنت می‌کنند، ارائه cache server -هست.

-

خیلی خلاصه بگم کش سرور محتوایی که کاربران بازدید می‌کنند +هست.

خیلی خلاصه بگم کش سرور محتوایی که کاربران بازدید می‌کنند را درون خود برای مدتی و با شرایطی از پیش تعیین شده نگه ‌می‌دارد و هر بار که کاربران به محتوای قبلی درخواست بدهند، دیگر آن ریکوئست تا سایت اصلی نمی‌رود و خود -کش سرور که در شبکه داخلی است جواب آن را می‌دهد

-

cache server

-
- -
- - - - - - -
- - - - - - - - - - -
-
- - -comments powered by Disqus -
- - - - - - - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - - - - -
-
- - - - - +کش سرور که در شبکه داخلی است جواب آن را می‌دهد

cache server


comments powered by Disqus
قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git a/docs/p/crul-paste/index.html b/docs/p/crul-paste/index.html index 8212e98..1401ebe 100644 --- a/docs/p/crul-paste/index.html +++ b/docs/p/crul-paste/index.html @@ -1,448 +1,55 @@ - - - - -Crul Paste - - - - - - - - - - - - - - - - -
- - - -
-
-
-
- - - Featured image of post Crul Paste - - -
- - -
- - - - -
-

- Crul Paste -

- - -

- curl paste یک FileBin تحت ترمینال برای گیک ها! -

- -
- - - - - -
- -
- - - - - - - - - - -
- - - -
- - - - - - - - - -
- -
- - - -
- -
- -
- - -

اول بیایید ببینم +Crul Paste +

Featured image of post Crul Paste

Crul Paste

curl paste یک FileBin تحت ترمینال برای گیک ها!

+
+

اول بیایید ببینم FileBin چیه! قبل از اون هم فکر می‌کنم همه بدونیم -pastebin +pastebin چیه. اگه نمی‌دونید خیلی ساده باید بگم یک سایتی که فقط روی اون متن به اشتراک می‌ذارن -مثلا ممکنه ارور ها یا حتی سورس یک برنامه باشه!

-

اما +مثلا ممکنه ارور ها یا حتی سورس یک برنامه باشه!

اما FileBin ها بجای تسکت فایل های شما رو نگهداری می‌کنند و به شما لینکی ارائه می‌کنند که فایل را برای دیگران اشتراک بگذارید، نمونه های زیادی هم وجود داره مثل -https://wormhole.app

-

اما خب از اونجایی که من زندگی‌ام رو توی ترمینال می‌گذرونم و ترمینال رو به باز کردن مرورگر برای اشتراک یک فایل ترجیح می‌دم، پس از +https://wormhole.app

اما خب از اونجایی که من زندگی‌ام رو توی ترمینال می‌گذرونم و ترمینال رو به باز کردن مرورگر برای اشتراک یک فایل ترجیح می‌دم، پس از FileBin هایی استفاده می‌کنم که بتونم تحت ترمینال به سادگی فایلم رو به اشتراک بذارم. برای مثال -https://0x0.st

-

وقتی این رو سایت رو باز کنید هیچ گزینه‌ای برای انتخاب فایل و آپلود نمی‌بینید! خب پس چطور باید یک فایل را برای سایت آپلود کنید؟ +https://0x0.st

وقتی این رو سایت رو باز کنید هیچ گزینه‌ای برای انتخاب فایل و آپلود نمی‌بینید! خب پس چطور باید یک فایل را برای سایت آپلود کنید؟ کافیه یک ریکوئست HTTP POST خیلی ساده به سایت بزنید که شامل فایتون باشه. این کار رو خیلی ساده می‌شه با curl -انجام داد.

-

مثلا بیایین اشتراک یک فایل رو ببینیم

-
- -
-
1
-2
-
-
$ curl https://0x0.st -F file=@/path/to/file
-# https://0x0.st/zWKo.txt
-
-
-

این سایت خیلی خوبه +انجام داد.

مثلا بیایین اشتراک یک فایل رو ببینیم

1
+2
+
$ curl https://0x0.st -F file=@/path/to/file
+# https://0x0.st/zWKo.txt
+

این سایت خیلی خوبه اما از زمانی به بعد دیگه این سایت کاری که من نیاز دارم رو کفاف نداد! برای مثال من نیاز دارم فایلم بعد از اولین دانلود از روی سرور حذف بشه و از این مهم تر نیاز داشتم که چندین فایل رو با یک یوزنیم مشخص اپلود کنم که خب شخصی که قرار باشه فایل ها رو دانلود کنه، کافیه از یوزنیم استفاده کنه که راحت تر قابل حفظ کردن و اشتراک گذاشتنه. اینطوری بود که گفتم FileBin -خودم رو بنویسم :)

-
-

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

-

فرض کنید شما یک فایل دارید که می‌خواهید با من به اشتراک بگذارید، +خودم رو بنویسم :)


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

فرض کنید شما یک فایل دارید که می‌خواهید با من به اشتراک بگذارید، خیلی ساده ترمینال رو باز می‌کنید و با یک دستور فایل رو با یک URL -تقریبا تصادفی منتشر می‌کنید.

-
- -
-
1
-2
-
-
$ curl -L octocat.ir -F file=@/tmp/theFile.fli
-# octocat.ir/theFile.fli
-
-
-
-

دقت کنید من از سوییچ +تقریبا تصادفی منتشر می‌کنید.

1
+2
+
$ curl -L octocat.ir -F file=@/tmp/theFile.fli
+# octocat.ir/theFile.fli
+

دقت کنید من از سوییچ -L استفاده می‌کنم، دلیل اینکار این هست که خب ممکنه سایت شما رو ریدایرکت کنه. مثلا از @@ -451,25 +58,16 @@

https. برای همین این سوییچ رو استفاده می‌کنم. با این سوییچ دیگه نیازی نیست https:// -رو هم بنویسیم!

-

-

حالا اگه نیاز دارین که فایلتون بعد از اولین دانلود از روی سرور حذف بشه و دیگه در دسترس نباشه +رو هم بنویسیم!

حالا اگه نیاز دارین که فایلتون بعد از اولین دانلود از روی سرور حذف بشه و دیگه در دسترس نباشه کافیه از کلمه once بجای file -استفاده کنید.

-
- -
-
1
-2
-
-
$ curl -L octocat.ir -F once=@/tmp/theFile.fli
-# octocat.ir/theFile_GKug7xb.fli
-
-
-

تا اینجای کار همه +استفاده کنید.

1
+2
+
$ curl -L octocat.ir -F once=@/tmp/theFile.fli
+# octocat.ir/theFile_GKug7xb.fli
+

تا اینجای کار همه URL های هر فایلی به صورت تصادفی هست و من نیاز دارم که چندین فایل رو زیر یک یوزنیم مشخص مثل @@ -483,93 +81,49 @@

file, همون username -رو می‌نویسیم(توی مثال من از نام arya استفاده می‌کنیم)

-
- -
-
1
-2
-
-
$ curl -L octocat.ir -F arya=@/tmp/pic.jpg
-# octocat.ir/arya
-
-
-

تا اینجای کار مثلا شما چند بار چند فایل مختلف رو زیر یک یوزنیم قرار دادین -حالا چطور میشه همه اونها رو باهم دانلود کرد؟

-
- -
-
1
-
-
$ curl -L octocat.ir/arya | wget -i -
-
-
-

حالا به این فکر کنید که یکنفر میاد و با یوزنیم های معقول ریکوئست میزنه به سایت و +رو می‌نویسیم(توی مثال من از نام arya استفاده می‌کنیم)

1
+2
+
$ curl -L octocat.ir -F arya=@/tmp/pic.jpg
+# octocat.ir/arya
+

تا اینجای کار مثلا شما چند بار چند فایل مختلف رو زیر یک یوزنیم قرار دادین +حالا چطور میشه همه اونها رو باهم دانلود کرد؟

1
+
$ curl -L octocat.ir/arya | wget -i -
+

حالا به این فکر کنید که یکنفر میاد و با یوزنیم های معقول ریکوئست میزنه به سایت و فایل های بقیه رو دانلود می‌کنه، اینجاست که پسورد به کار میاد. برای گذاشتن پسورد روی هر فایل کافیه توی خود URL سایت پسورد رو بعنوان http parametr -بنویسد.

-
- -
-
1
-2
-
-
$ curl -L 'octocat.ir/?password=12345678' -F once=@/Desktop/TopSecret.fli
-# octocat.ir/file/TopSecret/?password=12345678
-
-
-
-

اینجا دقت کنید که باید از کوتیشن استفاده کنیم چون علامت مساوی و علامت سوال رو bash وایلد کارد می‌بینه.

-
-

برای دانلود هر فایلی هم که پسورد داره کافیه دقیقا مثل مثال قبلی عمل کنید و پسورد رو توی +بنویسد.

1
+2
+
$ curl -L 'octocat.ir/?password=12345678' -F once=@/Desktop/TopSecret.fli
+# octocat.ir/file/TopSecret/?password=12345678
+

اینجا دقت کنید که باید از کوتیشن استفاده کنیم چون علامت مساوی و علامت سوال رو bash وایلد کارد می‌بینه.

برای دانلود هر فایلی هم که پسورد داره کافیه دقیقا مثل مثال قبلی عمل کنید و پسورد رو توی http parametr -وارد کنید

-
- -
-
1
-
-
$ wget 'octocat.ir/file/TopSecret/?password=12345678'
-
-
-

براتون سواله که چرا پسورد روی توی +وارد کنید

1
+
$ wget 'octocat.ir/file/TopSecret/?password=12345678'
+

براتون سواله که چرا پسورد روی توی URL گذاشتم؟ می‌شد که مثلا توی http header پسورد بگیریم و بدیم، پس چرا توی -URL?

-

اینکار برای این هست که دسترسی به فایل ساده باشه. مثلا من وقتی می‌خام فایلی رو برای همکارم بفرستم +URL?

اینکار برای این هست که دسترسی به فایل ساده باشه. مثلا من وقتی می‌خام فایلی رو برای همکارم بفرستم و خب فرض کنم همکار من از header ها چیزی نمی‌دونه، و فقط با یک کلیک باید بتونه به فایل دسترسی پیدا کنه، اینجاست که من فقط یک URL -به اون می‌گم :)

-
-

بعضی از ابزار ها +به اون می‌گم :)


بعضی از ابزار ها hackable هستند! این به معنی ضعف امنیتی نیست، بلکه به این اشاره می‌کنه ابزار به روشی طراحی -شده که کاربران می‌تونند خارج از هدف اصلی اون ابزار از اون استفاه کنند.

-

برای مثال ابزار که من درست کردم برای اشتراک فایل هست، اما بنظرتون میشه یک دایرکتوری و یا یک متن رو هم باهاش به اشتراک گذاشت؟

-

قطعا! اما چطوری؟

-

برای اینکه یک دایرکتوری با تمامی ساب دایرکتوری هاش رو بفرستین +شده که کاربران می‌تونند خارج از هدف اصلی اون ابزار از اون استفاه کنند.

برای مثال ابزار که من درست کردم برای اشتراک فایل هست، اما بنظرتون میشه یک دایرکتوری و یا یک متن رو هم باهاش به اشتراک گذاشت؟

قطعا! اما چطوری؟

برای اینکه یک دایرکتوری با تمامی ساب دایرکتوری هاش رو بفرستین کافیه از tar -استفاده کنید.

-
- -
-
1
-2
-
-
$ tar -cf - ~/Pictures | curl -L octocat.ir -F once=@-
-# 'octocat.ir/file/_nUiuRPW/
-
-
-

با اینکار با استفاده از +استفاده کنید.

1
+2
+
$ tar -cf - ~/Pictures | curl -L octocat.ir -F once=@-
+# 'octocat.ir/file/_nUiuRPW/
+

با اینکار با استفاده از tar تمامی فایل ها و دایرکتوری های مثلا پوشه ~/Pictures @@ -577,350 +131,45 @@

tar تبدیل می‌کنید و بعد خروجی رو بعنوان ورودی به curl -می‌فرستین.

-

حالا به این فکر کنید که بخواهیم یک متن رو منتشر کنیم، راهکار دقیقا مشابه قبلیه. +می‌فرستین.

حالا به این فکر کنید که بخواهیم یک متن رو منتشر کنیم، راهکار دقیقا مشابه قبلیه. به این شکل که یک متن رو با استفاده از echo به ورودی استاندارد curl -می‌فرستیم.

-
- -
-
1
-2
-
-
$ echo 'Some Random Text' | curl -L octocat.ir -F once=@-
-# octocat.ir/file/-_W00DSbS/
-
-
-
-

اینطوری خیلی راحت می‌شه خروجی هر کامندی رو روی به اشتراک گذاشت

-
-
-

سایت من توی آدرس +می‌فرستیم.

1
+2
+
$ echo 'Some Random Text' | curl -L octocat.ir -F once=@-
+# octocat.ir/file/-_W00DSbS/
+

اینطوری خیلی راحت می‌شه خروجی هر کامندی رو روی به اشتراک گذاشت


سایت من توی آدرس octocat.ir -در دسترسه، خوشحال می‌شم ازش استفاده کنید :)

-
-

اینو بدونید که سایت به صورت دیفالت فایل ها رو برای 24 ساعت نگه‌میداره

-
-

این سرویس رو منبع باز روی -گیتهاب -گذاشتم، اگه چیزی خواستید می‌تونید بهش اضافه کنید و یا مشکلاتش رو پچ کنید.

-

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

-
- -
-
1
-
-
docker run -p 80:80 mshabane/curlpaste:latest
-
-
-
-

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

اینو بدونید که سایت به صورت دیفالت فایل ها رو برای 24 ساعت نگه‌میداره

این سرویس رو منبع باز روی +گیتهاب +گذاشتم، اگه چیزی خواستید می‌تونید بهش اضافه کنید و یا مشکلاتش رو پچ کنید.

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

1
+
docker run -p 80:80 mshabane/curlpaste:latest
+

اگه نیاز دارین تا فایل ها برای تایم بالاتری نگه‌داری بشه، متغییر HOURS داخل فایل .env -رو تغییر بدین.

-
-
-

ایده های دیگه‌ای هم برای سایت دارم، برای مثال اینکه کاربر بتونه زمان انقضای +رو تغییر بدین.


ایده های دیگه‌ای هم برای سایت دارم، برای مثال اینکه کاربر بتونه زمان انقضای هر فایل رو خودش مشخص کنه. -مثلا به این شکل

-
- -
-
1
-
-
curl -L octocat.ir -F arya_1=/path/to/file
-
-
-

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

-

و خب همچنین میشه یک کوتاه کننده لینک هم بهش اضافه کنم، و لینک های کوتاه شده رو -ریدایرکت کنم.

-
- -
-
1
-
-
curl -L octocat.ir -F url='https://example.com/some/looooong/url/'
-
-
-

اگه اینها رو اضافه کنم، این پست رو اپدیت می‌کنم ولی خوشحال می‌شم شما -توی این پروژه مشارکت کنید.

- -

- - - - - - -
- - - - - - - - - - -
-
- - -comments powered by Disqus -
- - - - - - - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - - - - -
-
- - - - - +مثلا به این شکل

1
+
curl -L octocat.ir -F arya_1=/path/to/file
+

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

و خب همچنین میشه یک کوتاه کننده لینک هم بهش اضافه کنم، و لینک های کوتاه شده رو +ریدایرکت کنم.

1
+
curl -L octocat.ir -F url='https://example.com/some/looooong/url/'
+

اگه اینها رو اضافه کنم، این پست رو اپدیت می‌کنم ولی خوشحال می‌شم شما +توی این پروژه مشارکت کنید.

comments powered by Disqus
قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git a/docs/p/etc/resolve.conf/index.html b/docs/p/etc/resolve.conf/index.html index c008fc0..f67b432 100644 --- a/docs/p/etc/resolve.conf/index.html +++ b/docs/p/etc/resolve.conf/index.html @@ -1,424 +1,18 @@ - - - - -etc/resolve.conf/ - - - - - - - - - - - - - - - - -
- - - - -
-
-
-
- - - Featured image of post etc/resolve.conf/ - - -
- - -
- - - - -
-

- etc/resolve.conf/ -

- - -

- در لینوکس کوئری های DNS مسیر خاص خودشون رو سفر می‌کنند تا به جواب برسند. این پست حداقل این مسیر را در یک سیستم توضیح می‌دهد. -

- -
- - - - - -
- -
- - - - - - - - - - -
- - - -
- - - - - - - - - -
- -
- - - -
- -
- -
- - - -

مقدمه

-

همیشه موقع ویرایش فایل +etc/resolve.conf/ +

Featured image of post etc/resolve.conf/

etc/resolve.conf/

در لینوکس کوئری های DNS مسیر خاص خودشون رو سفر می‌کنند تا به جواب برسند. این پست حداقل این مسیر را در یک سیستم توضیح می‌دهد.

+
+

مقدمه

همیشه موقع ویرایش فایل resolve.conf برام سوال بود که گزین های دیگه‌ای که توی این فایل تنظیم شده‌اند چکاری انجام می‌دهند. درواقع من همیشه دستور @@ -427,10 +21,7 @@

مقدمه

dns ویرایش می‌کردم. اما دستور هایی دیگه‌ای هم برای این فایل وجود دارد که لیست آنها در man resolve.conf -توضیح داده شده است.

-

توی این پست من بعضی از دستورات این فایل را توضیح می‌دم.

-
-

در مرحله اول یادتون باشه لینوکس هایی که +توضیح داده شده است.

توی این پست من بعضی از دستورات این فایل را توضیح می‌دم.

در مرحله اول یادتون باشه لینوکس هایی که systemd دارند، معمولا از سرویس systemd-resolved @@ -440,48 +31,27 @@

مقدمه

resolve می‌کند و سپس آنها را کش می‌کند که یک دامنه را چندین بار resolve -نکند.

-
-
-

یک دامنه حد اقل از دو بخش تشکیل می‌شود.

-
    -
  1. TLD
  2. -
  3. Domain
  4. -
-
-
- -
-
1
-2
-3
-4
-5
-6
-7
-8
-
-
bin.example.com        
-│     │     │         
-│     │     └─► TDL(Top Level Domain) 
-│     │               
-│     └───────► Domain
-│                                        
-└─────────────► SubDomain
-                                                 
-
-
-

-

دستورات

-
    -
  • -

    1 nameserver

    -

    این دستور برای تعیین +نکند.

یک دامنه حد اقل از دو بخش تشکیل می‌شود.

  1. TLD
  2. Domain
1
+2
+3
+4
+5
+6
+7
+8
+
bin.example.com        
+│     │     │         
+│     │     └─► TDL(Top Level Domain) 
+│     │               
+│     └───────► Domain
+│                                        
+└─────────────► SubDomain
+                                                 
+

دستورات

  • 1 nameserver

    این دستور برای تعیین IP یک سرور DNS -استفاده می‌شود.(در واقع اینجا منظورم یک سرویسی است که به نامه دامنه ها پاسخ دهد که به آن NS می‌گویم.)

    -

    شما می‌توانید تا حداقل سه +استفاده می‌شود.(در واقع اینجا منظورم یک سرویسی است که به نامه دامنه ها پاسخ دهد که به آن NS می‌گویم.)

    شما می‌توانید تا حداقل سه IP لیست کنید، و resolver @@ -490,36 +60,15 @@

    دستورات

    NS جواب گو نباشد، از دیگر NS -های لیست شده استفاده خواهد شد.

    -

    اگر به همین ترتیب هر یک از +های لیست شده استفاده خواهد شد.

    اگر به همین ترتیب هر یک از NS -ها جوابگو نباشد، کوئری ها از اول شروع می‌شود تا به حداکثر تعداد کوئری تعیین شده برسد.

    -

    برای مثال من می‌توانم چند +ها جوابگو نباشد، کوئری ها از اول شروع می‌شود تا به حداکثر تعداد کوئری تعیین شده برسد.

    برای مثال من می‌توانم چند NS -مختلف را برای خودم تعیین کنم.

    -
    - -
    -
    1
    -2
    -
    -
    nameserver 1.1.1.1
    -nameserver 8.8.8.8
    -
    -
    -
  • -
-
-
    -
  • -

    2 options

    -

    برای این دستور متغیر های مختلفی را می‌توان تعیین کرد.

    -
      -
    • -

      2.1 ndots

      -
        -
      • -

        حداقل هر دامنه‌ای در سطح اینترنت یک نقطه دارد، برای مثال +مختلف را برای خودم تعیین کنم.

        1
        +2
        +
        nameserver 1.1.1.1
        +nameserver 8.8.8.8
        +

      • 2 options

        برای این دستور متغیر های مختلفی را می‌توان تعیین کرد.

        • 2.1 ndots

          • حداقل هر دامنه‌ای در سطح اینترنت یک نقطه دارد، برای مثال google.com یک نقطه دارد. شما می‌توانید با این متغیر تعین کنید که دامنه‌های در سطح اینترنت @@ -537,21 +86,13 @@

            دستورات

            شما arya باشد، دامنه به این شکل کوئری زده خواهد شد -google.com.arya

            -

            در صورتی که شما برای جست و جوی یک دامنه از هیچ +google.com.arya

            در صورتی که شما برای جست و جوی یک دامنه از هیچ TLD استفاده نکید، از hostname و یا از مقداری که برای search -مشخص کرده‌اید استفاده خواهد شد.

            -
          • -
          -
        • -
        • -

          2.2 timeout

          -
            -
          • این متغیر تعیین می‌کند که +مشخص کرده‌اید استفاده خواهد شد.

        • 2.2 timeout

          • این متغیر تعیین می‌کند که resolver چه مقدار زمانی باید منتظر جواب از سمت NS @@ -559,19 +100,11 @@

            دستورات

            NS جواب نداد، از NS -های بعدی سوال کند.
          • -
          -
        • -
        • -

          2.3 attempts

          -
            -
          • این متغیر تعین می‌کند که +های بعدی سوال کند.
        • 2.3 attempts

          • این متغیر تعین می‌کند که resolver در صورت جواب ندادن توسط NS -باید در نهایت چند کوئری دیگر ارسال کند.
          • -
          -

          برای مثال اگر اولین +باید در نهایت چند کوئری دیگر ارسال کند.

        برای مثال اگر اولین NS پاسخ نداد، سوال از NS @@ -582,12 +115,7 @@

        دستورات

        attempts مجوع سوال ها از همه NS -ها است.)

        -
      • -
      • -

        2.4 rotate

        -
          -
        • به صورت پیشفرض کوئری های +ها است.)

        • 2.4 rotate

          • به صورت پیشفرض کوئری های DNS همه برای اولین NS @@ -598,15 +126,7 @@

            دستورات

            ها تقسیم کنیم، کافیست از این متغیر استفاده کنیم. اینکار باعث می‌شود که هر کوئری ها به صورت چرخشی به ترتیب به NS -های لیست شده ارسال شود.
          • -
          -
        • -
        -
      • -
      -
      -
        -
      • 3 search +های لیست شده ارسال شود.

  • 3 search همانطور که در مثال بالا گفتم، ما نام دامنه ها را تنظیم می‌کنیم که حداقل وقتی یک نقطه دارند، resolver آنها را دامنه‌ در سطح اینترنت در نظر بگیرد و به @@ -620,28 +140,17 @@

    دستورات

    تلقی خواهد شد. اما اگر می‌خواهید قبل از اضافه شدن hostname -به آن چیز دیگری اضافه کنید، کافیست متغیر سرچ را تعریف کنید و یک یا چند مقدار برای آن تعیین کنید.
  • -
-
-

سرویس systemd-resolve

-

اگر به فایل +به آن چیز دیگری اضافه کنید، کافیست متغیر سرچ را تعریف کنید و یک یا چند مقدار برای آن تعیین کنید.


سرویس systemd-resolve

اگر به فایل /etc/resolve.conf نگاه کنید، می‌بینید که یک ns برای شما تنظیم شده است که IP -آن داخلی است.

-
- -
-
1
-2
-
-
# cat /etc/resolve.conf
-nameserver 127.0.0.53
-
-
-

همانطور که توی نکته‌ای در مقدمه این پست گفتم، +آن داخلی است.

1
+2
+
# cat /etc/resolve.conf
+nameserver 127.0.0.53
+

همانطور که توی نکته‌ای در مقدمه این پست گفتم، سیستم عاملی هایی که از systemd استفاده می‌کنند معمولا سرویس @@ -653,348 +162,65 @@

سرویس systemd-resolve

127.0.0.53 و 127.0.0.54 -شنود می‌کند.

-

این سرویس خودش یک کانفیگ در +شنود می‌کند.

این سرویس خودش یک کانفیگ در etc/ststemd/resolved.conf/ -دارد.

-

اگر داخل این فایل را نگاه کنیم، می‌بنیم که در قسمت +دارد.

اگر داخل این فایل را نگاه کنیم، می‌بنیم که در قسمت ‌DNS می‌توان NS های بالاتر را وارد کرد، اینکار باعث می‌شود که سیستم شما وقتی یک دامنه را در حافظه کش خود نداشت، از NS -های بالاتر که در این فایل تنظیم شده است سوال کند.

-
- -
-
1
-2
-
-
[Resolve]
-DNS=1.1.1.1 8.8.8.8
-
-
-

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

1
+2
+
[Resolve]
+DNS=1.1.1.1 8.8.8.8
+

ابته تاکید کنم در صورتی از این NS ها استفاده می‌شود که شما ‌از 127.0.0.53 و 127.0.0.54 در کانفیگ /etc/resolve.conf -استفاده کرده باشید.

-
-

تفاوت 127.0.0.54 این است که هر کوئری را مستقیم به +استفاده کرده باشید.

تفاوت 127.0.0.54 این است که هر کوئری را مستقیم به NS بالاتر ارسال خواهد کرد و از دیتای کش شده استفاده نمی‌کند. -ولی 127.0.0.53 از قابلیت کش استفاده می‌کند.

-
-
-

مثال

-
- -
-
 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
-10
-
-
nameserver 1.1.1.1
-nameserver 8.8.8.8
-nameserver 9.9.9.9
-
-options ndots:1
-options timeout:2
-options attempts:3
-options rotate
-
-search server1 server2
-
-
-

-

سخنی با شما

-

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


مثال

 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+
nameserver 1.1.1.1
+nameserver 8.8.8.8
+nameserver 9.9.9.9
+
+options ndots:1
+options timeout:2
+options attempts:3
+options rotate
+
+search server1 server2
+

سخنی با شما

این را بگم که DNS به صورت recursive(بازگشتی) عمل می‌کنه، این یعنی وقتی شما یک کوئری ارسال می‌کنید، این کوئری هر بار به یک سرور بالاتر ارسال می‌شود تا در نهایت به جواب برسه. و خب این موضوع خودش در نهایت یک جریان -خیلی جالب داره که امیدوارم یک روز اون رو هم بنویسم :)

-
-
- - - - - - -
- - - - - - - - - - -
-
- - -comments powered by Disqus -
- - - - - - - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - - - - -
-
- - - - - +خیلی جالب داره که امیدوارم یک روز اون رو هم بنویسم :)

comments powered by Disqus
قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git a/docs/p/function/index.html b/docs/p/function/index.html new file mode 100644 index 0000000..5fb2ca9 --- /dev/null +++ b/docs/p/function/index.html @@ -0,0 +1,548 @@ + + + + +Function + + + + + + + + + + + + + + + +
+ + + +
+
+
+ +
+ + +
+

+ Function +

+ + +
+ + + + + +
+ +
+ + + + + + + + + + +
+ + + +
+ + + + + + + + + +
+ +
+ + + +
+ +
+ +
+ + + +
+ + +
+ + + +
+ + + + + + + + + Licensed under CC BY-NC-SA 4.0 +
+
+ + + +
+ + + + + + + + +
+
+ + +comments powered by Disqus +
+ + + + + + + +
+ + +
+ قدرت گرفته از Hugo
+ قالب Stack ساخته شده توسط Jimmy +
+
+ + + + + +
+
+ + + + + diff --git "a/docs/p/linux-file-locking-\332\206\333\214\330\263\330\252/index.html" "b/docs/p/linux-file-locking-\332\206\333\214\330\263\330\252/index.html" index 9d166e2..8e821ad 100644 --- "a/docs/p/linux-file-locking-\332\206\333\214\330\263\330\252/index.html" +++ "b/docs/p/linux-file-locking-\332\206\333\214\330\263\330\252/index.html" @@ -1,854 +1,123 @@ - - - - -Linux File Locking چیست؟ - - - - - - - - - - - - - - - - -
- - - -
-
-
-
- - - Featured image of post Linux File Locking چیست؟ - - -
- - -
- - - - -
-

- Linux File Locking چیست؟ -

- - -
- - - - - -
- -
- - - - - - - - - - -
- - - -
- - - - - - - - - -
- -
- - - -
- -
- -
- - -

بیایید قبل از اینکه راه حل را ببینیم، اول مشکل را دقیق تر برسی کنیم. +Linux File Locking چیست؟ +

Featured image of post Linux File Locking چیست؟

Linux File Locking چیست؟

+
+

بیایید قبل از اینکه راه حل را ببینیم، اول مشکل را دقیق تر برسی کنیم. به این فکر کنید که شما یک فایلی دارید که شامل یک عدد است که اشاره می‌کند به مقدار اعتباری که کاربر در حسابش دارد. حالا اگر قرار باشد یک پورسه اون مقدار را بر اساس ارائه سرویسی، از حساب کاربر کم کند، و پروسه دیگری به دلیل افزایش اعتبار، مقداری را به حساب -کاربر اضافه کند، چه مشکلاتی اتفاق می‌افتد؟

-

برای اینکه دقیق تر بشیم، این روند رو باهم پیش می‌بریم. +کاربر اضافه کند، چه مشکلاتی اتفاق می‌افتد؟

برای اینکه دقیق تر بشیم، این روند رو باهم پیش می‌بریم. فرض کنید فایلی به اسم amount.txt مقدار 100 داخلش نوشته شده است. و دو پروسه کم و اضافه کردن را اجرا می‌کنیم. توی این مثال،‌ ما می‌خواهیم مقدار 20 از حساب کاربر کم و مقدار 50 به حساب کاربر -اضافه کنیم، پس ما انتظار داریم در انتها فایل ما مقدار 130 را درونش ذخیره کرده باشد.

-
    -
  • پروسه اول فایل را می‌خواند و مقدار 100 را در حاظه‌اش نگه می‌دارد
  • -
  • پروسه دوم فایل را می‌خواند و مقدار 100 را در حاظه‌اش نگه می‌دارد
  • -
  • پروسه اول مقدار 20 را از 100 کم می‌کند و مقدار 80 را در حافظه ذخیره می‌کند
  • -
  • پروسه دوم مقدار 50 را به 100 اضافه می‌کند و مقدار 150 را در حافظه ذخیره می‌کند
  • -
  • پروسه اول مقدار 80 را در فایل ذخیره می‌کند
  • -
  • پروسه دوم مقدار 150 را در فایل ذخیره می‌کند
  • -
-

همینطور که همه ما انتظار داشتیم، ما باید در این فایل مقدار 130 را ذخیره می‌کردیم، +اضافه کنیم، پس ما انتظار داریم در انتها فایل ما مقدار 130 را درونش ذخیره کرده باشد.

  • پروسه اول فایل را می‌خواند و مقدار 100 را در حاظه‌اش نگه می‌دارد
  • پروسه دوم فایل را می‌خواند و مقدار 100 را در حاظه‌اش نگه می‌دارد
  • پروسه اول مقدار 20 را از 100 کم می‌کند و مقدار 80 را در حافظه ذخیره می‌کند
  • پروسه دوم مقدار 50 را به 100 اضافه می‌کند و مقدار 150 را در حافظه ذخیره می‌کند
  • پروسه اول مقدار 80 را در فایل ذخیره می‌کند
  • پروسه دوم مقدار 150 را در فایل ذخیره می‌کند

همینطور که همه ما انتظار داشتیم، ما باید در این فایل مقدار 130 را ذخیره می‌کردیم، اما پروسه های ما به دلیل اینکه هیچ همکاری و یا هیچ مکانیزمی دیگری ندارند که این مقدار ها را به یکدیگر اطلاع دهند، مشکل -Race condition -رخ می‌دهد.

-

یکی از راه حل های این مشکل +Race condition +رخ می‌دهد.

یکی از راه حل های این مشکل lock کردن فایل توسط هر پروسه است، که به این کار file locking -گفته می‌شود.

-

file locking -یک مکانیزم برای کنترل دسترسی چندین پروسه به یک فایل است.

-
-

توی لینوکس یکی از دستورات خطرناکی که داریم دستور +گفته می‌شود.

file locking +یک مکانیزم برای کنترل دسترسی چندین پروسه به یک فایل است.

توی لینوکس یکی از دستورات خطرناکی که داریم دستور sudo rm -rf / است. وقتی این دستور را اجرا کنیم کل فایل های لینوکس ما حذف می‌شود. دلیل اینکار این است که لینوکس به صورت پیشفرض فایل های باز شده را lock -نمی‌کند.

-
-

با اینحال لینوکس دو مکانیزم مختلف +نمی‌کند.

با اینحال لینوکس دو مکانیزم مختلف advisory و mandatory -را پشتیبانی می‌کند.

-
-

توی این پست بیشتر تمرکز من روی مکانیزم +را پشتیبانی می‌کند.

توی این پست بیشتر تمرکز من روی مکانیزم advisory locking(مشورتی) -است.

-
-

این روش به این شکل عمل می‌کند که هیچ پروسه‌ای مجبور به اجرای این روش نیست و اگر حتی +است.

این روش به این شکل عمل می‌کند که هیچ پروسه‌ای مجبور به اجرای این روش نیست و اگر حتی فایل توسط یک پروسه‌ای lock شده باشد، باز هم پروسه های دیگر می‌توانند به lock بودن فایل اهمیت ندهند و مقدار آن را تغییر دهند. این اتفاق به این دلیل می‌افتد که advisory lock -توسط سیستم عامل و یا فایل سیستم انجام نمی‌شود.

-

خب بیایید با یک مثال این فرایند را برسی کنیم. مثل مثال قبلی فرض کنید ما مقدار 100 +توسط سیستم عامل و یا فایل سیستم انجام نمی‌شود.

خب بیایید با یک مثال این فرایند را برسی کنیم. مثل مثال قبلی فرض کنید ما مقدار 100 را داخل فایل amount.txt -داریم و می‌خواهیم مقدار 20 از آن کم و مقدار 50 به آن اضافه کنیم.

-
    -
  • پروسه اول قبل از خواندن فایل، فایل را لاک می‌کند
  • -
  • پروسه دوم برای لاک کردن فایل اقدام می‌کند و از جایی که پروسه اول از پیش فایل را لاک کرده است، برای آزاد شدن لاک صبر می‌کند
  • -
  • پروسه اول مقدار 20 را از 100 کم می‌کند و مقدار 80 را درون فایل می‌نویسد
  • -
  • پروسه اول لاک فایل را آزاد می‌کند.
  • -
  • پروسه دوم فایل را لاک و مقدار جدید 80 را از فایل می‌خواند
  • -
  • پروسه دوم مقدار 50 را به 80 اضافه و مقدار 120 را درون فایل می‌نویسد
  • -
  • پروسه دوم لاک فایل را آزاد می‌کند تا پروسه های دیگر بتوانند با فایل کار کنند.
  • -
-
-

اگر شما می‌خواهید این مکانیزم را روی یک فایل اجرا کنید، دستور +داریم و می‌خواهیم مقدار 20 از آن کم و مقدار 50 به آن اضافه کنیم.

  • پروسه اول قبل از خواندن فایل، فایل را لاک می‌کند
  • پروسه دوم برای لاک کردن فایل اقدام می‌کند و از جایی که پروسه اول از پیش فایل را لاک کرده است، برای آزاد شدن لاک صبر می‌کند
  • پروسه اول مقدار 20 را از 100 کم می‌کند و مقدار 80 را درون فایل می‌نویسد
  • پروسه اول لاک فایل را آزاد می‌کند.
  • پروسه دوم فایل را لاک و مقدار جدید 80 را از فایل می‌خواند
  • پروسه دوم مقدار 50 را به 80 اضافه و مقدار 120 را درون فایل می‌نویسد
  • پروسه دوم لاک فایل را آزاد می‌کند تا پروسه های دیگر بتوانند با فایل کار کنند.

اگر شما می‌خواهید این مکانیزم را روی یک فایل اجرا کنید، دستور flock -برای شما اینکار را خواهد کرد.

-
- -
-
1
-
-
flock [options] file|directory command [arguments]
-
-
-

این کامند در حالت عادی از شما یک فایل و یک دستور خواهد گرفت و مکانیزم +برای شما اینکار را خواهد کرد.

1
+
flock [options] file|directory command [arguments]
+

این کامند در حالت عادی از شما یک فایل و یک دستور خواهد گرفت و مکانیزم advisory lock -را روی ان فایل اجرا خواهد کرد.

-
- -
-
1
-
-
flock   /tmp/fli    echo 12>/tmp/fli
-
-
-

برای اینکه روند را بهتر درک کنیم یک فایل +را روی ان فایل اجرا خواهد کرد.

1
+
flock   /tmp/fli    echo 12>/tmp/fli
+

برای اینکه روند را بهتر درک کنیم یک فایل bash -می‌نویسیم که بتوانیم مثال اولیه را روی آن اجرا کنیم.

-
- -
-
 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-
-
#!/bin/bash
-file="balance.dat"
-value=$(cat $file)
-echo "Read current balance:$value"
-
-#sleep 10 seconds to simulate business calculation
-progress=10
-while [[ $progress -lt 101 ]]; do
-	echo -n -e "\033[77DCalculating new balance..$progress%"
-	sleep 1
-	progress=$((10+progress))
-done
-echo ""
-
-value=$((value+$1))
-echo "Write new balance ($value) back to $file." 
-echo $value > "$file"
-echo "Done."
-
-
-

ما این فایل را همزمان با دو ترمینال اجرا می‌کنیم.

-

advisory lock

-

همینطور که می‌بینید پروسه دوم برای اینکه محتوای فایل را تغییر دهد، باید صبر کند تا لاک فایل -آزاد شود.

-
-

این پست خلاصه‌ای بود از -این بلاگ +می‌نویسیم که بتوانیم مثال اولیه را روی آن اجرا کنیم.

 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+
#!/bin/bash
+file="balance.dat"
+value=$(cat $file)
+echo "Read current balance:$value"
+
+#sleep 10 seconds to simulate business calculation
+progress=10
+while [[ $progress -lt 101 ]]; do
+	echo -n -e "\033[77DCalculating new balance..$progress%"
+	sleep 1
+	progress=$((10+progress))
+done
+echo ""
+
+value=$((value+$1))
+echo "Write new balance ($value) back to $file." 
+echo $value > "$file"
+echo "Done."
+

ما این فایل را همزمان با دو ترمینال اجرا می‌کنیم.

advisory lock

همینطور که می‌بینید پروسه دوم برای اینکه محتوای فایل را تغییر دهد، باید صبر کند تا لاک فایل +آزاد شود.


این پست خلاصه‌ای بود از +این بلاگ که هر دو نوع advisory lock و mandatory lock -را توضیح می‌دهد.

-

برای من سوال بود که من چطور می‌توانم مکانیزمی که +را توضیح می‌دهد.

برای من سوال بود که من چطور می‌توانم مکانیزمی که flock استفاده می‌کند را در برنامه های خودم پیاده سازی کنم، و خب نتیجه این بود که معمولا برای advisory lock هر زبانی یک کتابخانه استاندار دارد توی -پایتون کتابخانه +پایتون کتابخانه fcntl -اینکار را انجام می‌دهد.

- -
- - - - - - -
- - - - - - - - - - -
-
- - -comments powered by Disqus -
- - - - - - - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - - - - -
-
- - - - - +اینکار را انجام می‌دهد.

comments powered by Disqus
قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git "a/docs/p/transpiler-\330\252\330\261\330\254\331\205\331\207-\332\251\330\257-c-\330\250\331\207-bash/index.html" "b/docs/p/transpiler-\330\252\330\261\330\254\331\205\331\207-\332\251\330\257-c-\330\250\331\207-bash/index.html" index c4de1b3..2db7add 100644 --- "a/docs/p/transpiler-\330\252\330\261\330\254\331\205\331\207-\332\251\330\257-c-\330\250\331\207-bash/index.html" +++ "b/docs/p/transpiler-\330\252\330\261\330\254\331\205\331\207-\332\251\330\257-c-\330\250\331\207-bash/index.html" @@ -1,406 +1,35 @@ - - - - -Transpiler | ترجمه کد C به Bash - - - - - - - - - - - - - - - - -
- - - -
-
-
-
- - - Featured image of post Transpiler  |  ترجمه کد C به Bash - - -
- - -
- - - - -
-

- Transpiler | ترجمه کد C به Bash -

- - -
- - - - - -
- -
- - - - - - - - - - -
- - - -
- - - - - - - - - -
- -
- - - -
- -
- -
- - - -

همان‌طور که می‌دانید، کامپایلرها سورس کد ما که به یک زبان سطح بالا نوشته شده است را به یک زبان سطح پایین‌تر ترجمه می‌کنند. برای مثال، کامپایلر کدی که به زبان +Transpiler | ترجمه کد C به Bash +

Featured image of post Transpiler  |  ترجمه کد C به Bash

Transpiler | ترجمه کد C به Bash

+
+

همان‌طور که می‌دانید، کامپایلرها سورس کد ما که به یک زبان سطح بالا نوشته شده است را به یک زبان سطح پایین‌تر ترجمه می‌کنند. برای مثال، کامپایلر کدی که به زبان C نوشته شده است را به زبان اسمبلی ترجمه می‌کند. همچنین باید ذکر کنم که در زبان C، -پس از ترجمه به اسمبلی، کد به زبان ماشین که می‌تواند مستقیماً روی سخت‌افزار اجرا شود، ترجمه می‌شود.

-

اما ما نرم افزاری داریم که سورس کد را به یک سورس کد دیگر ترجمه می‌کند، به این نوع نرم افزار ها +پس از ترجمه به اسمبلی، کد به زبان ماشین که می‌تواند مستقیماً روی سخت‌افزار اجرا شود، ترجمه می‌شود.

اما ما نرم افزاری داریم که سورس کد را به یک سورس کد دیگر ترجمه می‌کند، به این نوع نرم افزار ها transpiler گفته می‌شود. برای مثال شما یک کد را به زبان پایتون نوشته‌اید را می‌توانید با برنامه مشخصی تبدیل کنید به زبان -JavaScrip.

-

اگر به نظرتون +JavaScrip.

اگر به نظرتون Bash سینتکس سختی داره، خب کافیه C بلد باشین و کدتون رو به زبان C بنویسید، و با -Pnut.sh +Pnut.sh به Bash -ترجمه کنید!

-

البته محدودیت هایی وجود داره

-
    -
  • عدد اعشار, goto, switch ساپورت نمی‌شود.
  • -
  • همچنین نمی‌توان یک متغییر را رفرنس کرد(&)
  • -
-

البته باید در نظر داشت که +ترجمه کنید!

البته محدودیت هایی وجود داره

  • عدد اعشار, goto, switch ساپورت نمی‌شود.
  • همچنین نمی‌توان یک متغییر را رفرنس کرد(&)

البته باید در نظر داشت که Bash جایگزین C @@ -409,284 +38,12 @@

نوشته شده رو نمی‌شود به Bash ترجمه کرد. با این حال اینکار برای تبدیل بعضی از کد های ساده به یک کد -پرتابل می‌تواند مفید باشد

- -

- - -
- - - - - -
- - - - - - - - - Licensed under CC BY-NC-SA 4.0 -
-
- - - -
- - - - - - - - - - -
-
- - -comments powered by Disqus -
- - - - - - - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - - - - -
-
- - - - - +پرتابل می‌تواند مفید باشد

+Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git "a/docs/p/zsh-\330\250\331\207\330\252\330\261\333\214\331\206-\331\276\331\204\330\247\332\257\333\214\331\206-\331\207\330\247\333\214/index.html" "b/docs/p/zsh-\330\250\331\207\330\252\330\261\333\214\331\206-\331\276\331\204\330\247\332\257\333\214\331\206-\331\207\330\247\333\214/index.html" index 7c83340..40d7ef5 100644 --- "a/docs/p/zsh-\330\250\331\207\330\252\330\261\333\214\331\206-\331\276\331\204\330\247\332\257\333\214\331\206-\331\207\330\247\333\214/index.html" +++ "b/docs/p/zsh-\330\250\331\207\330\252\330\261\333\214\331\206-\331\276\331\204\330\247\332\257\333\214\331\206-\331\207\330\247\333\214/index.html" @@ -1,471 +1,22 @@ - - - - - zsh بهترین پلاگین های - - - - - - - - - - - - - - - - -
- - - - -
-
-
-
- - - Featured image of post  zsh بهترین پلاگین های - - -
- - -
- - - - -
-

- zsh بهترین پلاگین های -

- - -
- - - - - -
- -
- - - - - - - - - - -
- - - -
- - - - - - - - - -
- -
- - - -
- -
- -
- - -

نوشتن یک برنامه کار سختی نیست، بلکه نگه‌داری و آپدیت یک برنامه‌ست، پلاگین این ویژگی را می‌دهد تا به راحتی عملکرد یک برنامه را بی‌افزاییم.

-
-
-

themes #Ⅳ

-

انتخاب +zsh بهترین پلاگین های

Featured image of post  zsh بهترین پلاگین های

zsh بهترین پلاگین های

+
+

نوشتن یک برنامه کار سختی نیست، بلکه نگه‌داری و آپدیت یک برنامه‌ست، پلاگین این ویژگی را می‌دهد تا به راحتی عملکرد یک برنامه را بی‌افزاییم.


themes #Ⅳ

انتخاب بین تم های zsh واقعا کار سختیه!‌ هر تم ظاهر جدیدی به ترمینال شما می‌دهد که -کار کردن در ترمینال را جذاب تر می‌کند.

-

با استفاده از این پلاگین شما بدون نیاز به تغییر دستی فایل کانفیگ +کار کردن در ترمینال را جذاب تر می‌کند.

با استفاده از این پلاگین شما بدون نیاز به تغییر دستی فایل کانفیگ zshrc.، -می‌توانید تم را تغییر بدین.

-

theme-plugin

-
-
    -
  • تغییر به یک تم مشخص
  • -
-

theme theme_name

-
-
-
    -
  • تغییر رندم تم
  • -
-

theme

-
-
-
    -
  • دیدن لیستی از تم های نصب شده
  • -
-

lstheme

-
-
-

zsh-autosuggestions #Ⅲ

-
-

تنها پلاگینی که باید نصب بشه

-
-

این یکی از پلاگین هایی است که بدون آن زندگی ممکن نیست!

-

همانطور که شما دستوری را تایپ می‌کنید، متنی به رنگ خاکستری ظاهر می‌شود که +می‌توانید تم را تغییر بدین.

theme-plugin

  • تغییر به یک تم مشخص

theme theme_name

  • تغییر رندم تم

theme

  • دیدن لیستی از تم های نصب شده

lstheme


zsh-autosuggestions #Ⅲ

تنها پلاگینی که باید نصب بشه

این یکی از پلاگین هایی است که بدون آن زندگی ممکن نیست!

همانطور که شما دستوری را تایپ می‌کنید، متنی به رنگ خاکستری ظاهر می‌شود که به شما دستورات ممکن را پیشنهاد می‌دهد و یا از history دستور مشابه که قبلا اجرا کرده‌اید را جست و جو می‌کند و پیشنهاد می‌هد. @@ -474,21 +25,7 @@

right arrow key یا همان فلش سمت راست -را فشار دهید.

-

zsh-autosuggestion

-
-

sudo #Ⅱ

-

بار ها اتفاق افتاده دستوری را که نیاز به دسترسی +را فشار دهید.

zsh-autosuggestion


sudo #Ⅱ

بار ها اتفاق افتاده دستوری را که نیاز به دسترسی root داشته را بدون نوشتن کلمه sudo @@ -502,21 +39,7 @@

sudo، دوبار کلید esc -را بزنید

-

zsh-sudo-theme

-
-

web-search #Ⅰ

-

وقتی با لینوکس کار می‌‌کنید، تمام لحظه ها در ترمینال هستنید. +را بزنید

zsh-sudo-theme


web-search #Ⅰ

وقتی با لینوکس کار می‌‌کنید، تمام لحظه ها در ترمینال هستنید. فرض کنید سوالی دارید که باید آن را گوگل کنید،‌ شما مجبور می‌شوید مرورگر را باز کنید، یک تب جدید ایجاد کنید و متنتان را سرچ کنید. ولی به این فکر کنید که نیازی به باز کردن مرورگر و یا سوییچ کردن بین ویندوز ها ندارید، @@ -524,382 +47,16 @@

-

web-search

-

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
دستور\موتور جست و جو
bing
google
yahoo
ddg or duckduckgo
sp or startpage
yandex
github
baidu
ecosia
goodreads
qwant
givero
stackoverflow
wolframalpha
archive
scholar
-
- -
- - - - - - -
- - - - - - - - - - -
-
- - -comments powered by Disqus -
- - - - - - - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - - - - -
-
- - - - - +بنگ! گوگل باز می‌شود و حاصل جست و جوی شما آماده است.

web-search

دستور\موتور جست و جو
bing
google
yahoo
ddg or duckduckgo
sp or startpage
yandex
github
baidu
ecosia
goodreads
qwant
givero
stackoverflow
wolframalpha
archive
scholar

comments powered by Disqus
قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git "a/docs/p/\330\247\330\261\330\252\330\250\330\247\330\267-\330\272\333\214\330\261-\331\205\330\252\331\205\330\261\332\251\330\262-\331\210-\330\257\330\261-\331\204\330\255\330\270\331\207-\330\250\330\247-\331\276\330\261\331\210\330\252\332\251\331\204-\331\205\330\247\330\252\330\261\333\214\332\251\330\263/index.html" "b/docs/p/\330\247\330\261\330\252\330\250\330\247\330\267-\330\272\333\214\330\261-\331\205\330\252\331\205\330\261\332\251\330\262-\331\210-\330\257\330\261-\331\204\330\255\330\270\331\207-\330\250\330\247-\331\276\330\261\331\210\330\252\332\251\331\204-\331\205\330\247\330\252\330\261\333\214\332\251\330\263/index.html" index 70ad8fc..66706c2 100644 --- "a/docs/p/\330\247\330\261\330\252\330\250\330\247\330\267-\330\272\333\214\330\261-\331\205\330\252\331\205\330\261\332\251\330\262-\331\210-\330\257\330\261-\331\204\330\255\330\270\331\207-\330\250\330\247-\331\276\330\261\331\210\330\252\332\251\331\204-\331\205\330\247\330\252\330\261\333\214\332\251\330\263/index.html" +++ "b/docs/p/\330\247\330\261\330\252\330\250\330\247\330\267-\330\272\333\214\330\261-\331\205\330\252\331\205\330\261\332\251\330\262-\331\210-\330\257\330\261-\331\204\330\255\330\270\331\207-\330\250\330\247-\331\276\330\261\331\210\330\252\332\251\331\204-\331\205\330\247\330\252\330\261\333\214\332\251\330\263/index.html" @@ -1,421 +1,17 @@ - - - - -ارتباط غیر متمرکز و در لحظه با پروتکل ماتریکس - - - - - - - - - - - - - - - - -
- - - - -
-
-
-
- - - Featured image of post ارتباط غیر متمرکز و در لحظه با پروتکل ماتریکس - - -
- - -
- - - - -
-

- ارتباط غیر متمرکز و در لحظه با پروتکل ماتریکس -

- - -
- - - - - -
- -
- - - - - - - - - - -
- - - -
- - - - - - - - - -
- -
- - - -
- -
- -
- - -

ماتریکس یک پروتکل آزاد است! به این معنی که شما میتوانید از این پروتکل برای +ارتباط غیر متمرکز و در لحظه با پروتکل ماتریکس +

Featured image of post ارتباط غیر متمرکز و در لحظه با پروتکل ماتریکس

ارتباط غیر متمرکز و در لحظه با پروتکل ماتریکس

+
+

ماتریکس یک پروتکل آزاد است! به این معنی که شما میتوانید از این پروتکل برای ارتباطات تحت شبکه مانند پیامرسان، اینترنت چیز ها (IoT) و هر چیز دیگری @@ -423,76 +19,35 @@

های این پروتکل، رمزنگاری سر تا سر (E2E) است، این ویژگی باعث میشود حتی سرور های ماتریکس که داده های ما را -منتقل میکنند هم توانایی دسترسی به داده ها را نداشته باشند.

-

پیام رسان ماتریکس

-

یکی از اصلی ترین استفاده های ماتریکس، پیامرسان است. +منتقل میکنند هم توانایی دسترسی به داده ها را نداشته باشند.

پیام رسان ماتریکس

یکی از اصلی ترین استفاده های ماتریکس، پیامرسان است. این پیامرسان به صورت غیر متمرکز عمل میکند. با این روش سانسور/فیلتر شدن سرور هایی که پیام ها را ذخیره و منتقل میکنند غیر ممکن میشود! چرا که این سرور ها قابل تغییر هستند و هر زمان که یکی از این سرور ها سانسور شود، شما همچنان میتوانید با سرور دیگری مجدد اکانت بسازید و در ارتباط بمانید. -و یا حتی از سرور خودتان استفاده کنید!

-

ماتریکس چگونه کار میکند؟

-

هر سرور در ماتریکس +و یا حتی از سرور خودتان استفاده کنید!

ماتریکس چگونه کار میکند؟

هر سرور در ماتریکس HomeServer نامیده میشود، شما به عنوان Client انتخاب میکنید از هر HomeServer -که میخواهید استفاده کنید.

-

HomeServer +که میخواهید استفاده کنید.

HomeServer ها میتوانند سرور های عمومی مثل سروری که خود -ماتریکس +ماتریکس راه اندازی کرده است باشد و یا میتواند سرور های شخصی خودتان -باشد.

-

matrix-homeserver

-

زمانی که شما از یک +باشد.

matrix-homeserver

زمانی که شما از یک HomeServer استفاده میکنید، این به آن معنی است که کلاینت شما به اکانتتان در آن HomeServer -متصل میشود.

-

matrix-homeserver

-

زمانی که شما پیامی ارسال میکنید، پیامتان به +متصل میشود.

matrix-homeserver

زمانی که شما پیامی ارسال میکنید، پیامتان به HomeServer شما ارسال میشود، HomeServer -بعد از دریافت پیام از شما، آن را به کاربران مشترک در آن روم ارسال میکند.

-
-

در ماتریکس هر نوع چت(شخصی و یا گروه) را +بعد از دریافت پیام از شما، آن را به کاربران مشترک در آن روم ارسال میکند.

در ماتریکس هر نوع چت(شخصی و یا گروه) را room -مینامند

-
-

matrix-homeserver

-

در واقع زمانی که شما پیامی ارسال میکنید +مینامند

matrix-homeserver

در واقع زمانی که شما پیامی ارسال میکنید HomeServer پیام را برای کاربران ارسال میکند. این کاربران ممکن است کاربران همان HomeServer @@ -506,47 +61,20 @@

ماتریکس چگونه HomerServer های دیگر ارسال خواهد کرد. و آن HomeServer -پیام را دریافت و به کاربران مربوطه ارسال خواهد کرد.

-

matrix-homeserver

-
-

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

matrix-homeserver

زمانی که شما پیامی را برای کاربر HomeServer دیگری ارسال میکنید، پیام شما تنها در HomeServer خودتان ذخیره نخواهد شد. بلکه در HomeServer -کاربری/کاربرانی که پیام را به آن ارسال کرده اید هم ذخیره میشود.

-
-

اصطلاحات در ماتریکس

-

در ماتریکس چند اصطلاح وجود دارد که آشنایی با آنها به درک بهتر این پروتکل کمک میکند.

-
    -
  • -

    HomeServer: +کاربری/کاربرانی که پیام را به آن ارسال کرده اید هم ذخیره میشود.

اصطلاحات در ماتریکس

در ماتریکس چند اصطلاح وجود دارد که آشنایی با آنها به درک بهتر این پروتکل کمک میکند.

  • HomeServer: سروری که شما در آن اکانت خود را میسازید. این سرور پیام های شما را ذخیره -و ارسال میکند.

    -
  • -
  • -

    Client: +و ارسال میکند.

  • Client: برای اینکه کاربران بتوانند از ماتریکس استفاده کنند، باید از ابزاری که از این -پروتکل بهره میبرد استفاده کنند. به اینگونه از ابزار ها کلاینت گفته میشود.

    -
  • -
  • -

    Event: +پروتکل بهره میبرد استفاده کنند. به اینگونه از ابزار ها کلاینت گفته میشود.

  • Event: هر نوع داده ای که توسط ماتریکس ارسال شود event -نامیده میشود. برای مثال ممکن است شما پیام ارسال کنید و یا به یک پیام واکنش نشان دهید.

    -
  • -
  • -

    Room: +نامیده میشود. برای مثال ممکن است شما پیام ارسال کنید و یا به یک پیام واکنش نشان دهید.

  • Room: قسمتی است که کاربر با آن event ها را دریافت و ارسال میکند. @@ -557,10 +85,7 @@

    اصطلاحات در ماتریک room میتوانند event -ها را دریافت کنند.

    -

  • -
  • -

    Space: +ها را دریافت کنند.

  • Space: Space نوعی خاصی از room @@ -568,372 +93,44 @@

    اصطلاحات در ماتریک room ها است. space -میتواند هم شامل گروه و هم کاربران عادی شود.

    -

  • -
  • -

    Bridge: +میتواند هم شامل گروه و هم کاربران عادی شود.

  • Bridge: پل یا Bridge به راهکاری گفته میشود که شما میتوانید با استفاده از آن بین ماتریکس و پیامرسان های دیگر چت کنید. برای مثال شما با استفاده از Brdige تلگرام -میتوانید با ماتریکس به کاربران تلگرام پیام ارسال و دریافت کنید.

    -
  • -
-

چگونه از ماتریکس استفاده کنیم؟

-

برای استفاده از ماتریکس، شما کافیست یکی از کلاینت های آن را نصب و به یک +میتوانید با ماتریکس به کاربران تلگرام پیام ارسال و دریافت کنید.

چگونه از ماتریکس استفاده کنیم؟

برای استفاده از ماتریکس، شما کافیست یکی از کلاینت های آن را نصب و به یک HomeServer -متصل شوید.

-

یکی از محبوب ترین کلاینت ها، کلاینت -Element +متصل شوید.

یکی از محبوب ترین کلاینت ها، کلاینت +Element است، که شامل نسخه -Android، -IOS، -Windows, Linux، Mac +Android، +IOS، +Windows, Linux، Mac و البته -نسخه تحت وب میشود.

-

استفاده از المنت مانند هر پیامرسان دیگری ساده است، اما اگر نیاز به کمک دارید -این لینک -میتواند کمکتان کند.

-

چطور از سرور شخصی خودمان استفاده کنیم؟

-

شما مجبور نیستید سرویس ماتریکس را روی سرور شخصی خودتان اجرا کنید مگر اینکه:

-
    -
  • سرور های عمومی ماتریکس سانسور و از دسترس خارج شده باشند
  • -
  • و یا شاید نگران دیتایی هستید که روی سرور های -عمومی ماتریکس از طرف شما ذخیره میشود!(گرچه پیام ها تماما رمزنگاری سر تا سر میشود)
  • -
  • و یا حتی شاید میخواهید پیام رسان داخلی شرکت/خانه خودتان را داشته باشید
  • -
  • و یا البته ممکن است بخواهید +نسخه تحت وب میشود.

    استفاده از المنت مانند هر پیامرسان دیگری ساده است، اما اگر نیاز به کمک دارید +این لینک +میتواند کمکتان کند.

    چطور از سرور شخصی خودمان استفاده کنیم؟

    شما مجبور نیستید سرویس ماتریکس را روی سرور شخصی خودتان اجرا کنید مگر اینکه:

    • سرور های عمومی ماتریکس سانسور و از دسترس خارج شده باشند
    • و یا شاید نگران دیتایی هستید که روی سرور های +عمومی ماتریکس از طرف شما ذخیره میشود!(گرچه پیام ها تماما رمزنگاری سر تا سر میشود)
    • و یا حتی شاید میخواهید پیام رسان داخلی شرکت/خانه خودتان را داشته باشید
    • و یا البته ممکن است بخواهید Bridge -بسازید.
    • -
    -

    نسخه سرور ماتریکس -Synapse +بسازید.

نسخه سرور ماتریکس +Synapse نام دارد، شما میتوانید با استفاده از -ایمیج داکر رسمی ماتریکس، -سرور شخصی خودتان را اجرا کنید.

-

نتیجه گیری

-

هدف من از نوشتن این پست در این روز های تلخ این بود که ابزاری را معرفی کنم +ایمیج داکر رسمی ماتریکس، +سرور شخصی خودتان را اجرا کنید.

نتیجه گیری

هدف من از نوشتن این پست در این روز های تلخ این بود که ابزاری را معرفی کنم تا ما با وجود قطعی های متعدد اینترنت و قطع دسترسی ما از سرور های خارجی، کماکان -در ارتباط نگهدارد و صدایمان را…

-

اگر روزی دسترسی ما از اینترنت قطع شد، کاری که لازم است برای در ارتباط ماندن انجام بدهیم -این است که یک سرویس ماتریکس داخلی راه اندازی کنیم.

-
- -
- - - - - - -
- - - - - - - - - - -
-
- - -comments powered by Disqus -
- - - - - - - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - - - - -
-
- - - - - +در ارتباط نگهدارد و صدایمان را…

اگر روزی دسترسی ما از اینترنت قطع شد، کاری که لازم است برای در ارتباط ماندن انجام بدهیم +این است که یک سرویس ماتریکس داخلی راه اندازی کنیم.


comments powered by Disqus
قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git "a/docs/p/\330\247\330\262-\332\257\331\210\332\257\331\204-\330\250\331\207-\330\252\331\204\332\257\330\261\330\247\331\205/index.html" "b/docs/p/\330\247\330\262-\332\257\331\210\332\257\331\204-\330\250\331\207-\330\252\331\204\332\257\330\261\330\247\331\205/index.html" index eefb247..aa5ab84 100644 --- "a/docs/p/\330\247\330\262-\332\257\331\210\332\257\331\204-\330\250\331\207-\330\252\331\204\332\257\330\261\330\247\331\205/index.html" +++ "b/docs/p/\330\247\330\262-\332\257\331\210\332\257\331\204-\330\250\331\207-\330\252\331\204\332\257\330\261\330\247\331\205/index.html" @@ -1,386 +1,19 @@ - - - - -از گوگل به تلگرام! - - - - - - - - - - - - - - - - -
- - - -
-
-
-
- - - Featured image of post از گوگل به تلگرام! - - -
- - -
- - - - -
-

- از گوگل به تلگرام! -

- - -
- - - - - -
- -
- - - - - - - - - - -
- - - -
- - - - - - - - - -
- -
- - - -
- -
- -
- - -

به احتمال زیاد سایت +از گوگل به تلگرام! +

Featured image of post از گوگل به تلگرام!

از گوگل به تلگرام!

+
+

به احتمال زیاد سایت google colab رو می‌شناسید، این سایت برای کسانی که پایتون کار می‌کنند یک معجزه‌ست. خیلی راحت شما می‌توانید کد پایتون خود @@ -390,30 +23,24 @@

این سرویس گوگل واقعا کار رو راحت می‌کنه. حالا فرض کنید این فایل رو باید با تیم به اشتراک بگذارید، خیلی راحت این سروریس به گوگل درایو شما متصل می‌شه -و فایل رو براتون آپلود می‌کنه.

-

اما من توی این پست می‌خواهم کار متفاوتی با این سرویس +و فایل رو براتون آپلود می‌کنه.

اما من توی این پست می‌خواهم کار متفاوتی با این سرویس انجام بدم، جای اینکه فایل‌م رو توی گوگل درایو آپلود کنم می‌خواهم که یک پلی لیست موزیک راک رو که فایل با فرمت zip هست رو روی google colab دانلود کنم و بعد با همین کولب فایل -ها را استخراج و به تلگرام اپلود کنم.

-

اینو بگم که خب روی کولب خیلی تریک های جالب دیگه‌ای هم +ها را استخراج و به تلگرام اپلود کنم.

اینو بگم که خب روی کولب خیلی تریک های جالب دیگه‌ای هم می‌زنند، مثلا من یه تایمی به کولب ssh می‌کردم و بعنوان vpn -استفاده می‌کردم.

-
-

ادرس سرویس +استفاده می‌کردم.


ادرس سرویس google colab -این +این هست، ولی من یک اسکریپت نوشتم که به اون نیاز داریم برای همین -این لینک +این لینک رو باز کنید تا اسکریپتی که من نوشته‌م توی colab @@ -421,20 +48,17 @@

jupyter کار کرده باشین این محیط باید براتون خیلی آشنا باشه. اگر نه، خیلی ساده بگم، این محیط دستورات پایتون رو -براتون روی سروس های گوگل ران می‌کنه :)

-

خب ما یه فایل این برای مثالمون نیاز داریم، من یک پلی +براتون روی سروس های گوگل ران می‌کنه :)

خب ما یه فایل این برای مثالمون نیاز داریم، من یک پلی لیست راک از AC/DC -که از تورنت می‌گیرم رو برای اینکار استفاده می‌کنم.

-

اول من فایل رو باید دانلود کنم، من از تورنت برای دانلود -موزیک، فیلم و … استفاده می‌کنم. +که از تورنت می‌گیرم رو برای اینکار استفاده می‌کنم.

اول من فایل رو باید دانلود کنم، من از تورنت برای دانلود +موزیک، فیلم و … استفاده می‌کنم. پس کافیه لینک تورنت رو به برنامه aria2c بدم و یا فایل رو با یک سایت دانلودر تورنت دانلود کنم و لینک‌ش رو بدم به برنامه -wget

-

برای اینکه دستورات خودتون رو اجرا کنید از بالای سایت +wget

برای اینکه دستورات خودتون رو اجرا کنید از بالای سایت گزینه + code رو بزنید تا یک @@ -445,507 +69,83 @@

قبل از دستور استفاده کنیم اون رو بعنوان دستور bash اجرا خواهد کرد. و خب بیس سیستم عامل هم دبیان هست -و دستورات دبیانی رو اجرا می‌کنه.

-

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

پس اگه مستقیم قرار بود فایل رو از تورنت بگیرم باید برنامه aria2 -رو نصب می‌کردم. برای نصب کافیه این دستور رو بزنیم

-
- -
-
1
-
-
!sudo apt-get install aria2
-
-
-
-

دقت کنید که از علامت +رو نصب می‌کردم. برای نصب کافیه این دستور رو بزنیم

1
+
!sudo apt-get install aria2
+

دقت کنید که از علامت ! -قبل از دستور استفاده کردم.

-
-

بعد از نصب، لینک رو می‌دیم به برنامه تا فایل ها رو برامون -دانلود کنه.

-
- -
-
1
-
-
!aria2c '<your magnet link>'
-
-
-
-

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

بعد از نصب، لینک رو می‌دیم به برنامه تا فایل ها رو برامون +دانلود کنه.

1
+
!aria2c '<your magnet link>'
+

به این دقت کنید که برنامه با کامند aria2c اجرا می‌شه. ولی با به اسم aria2 -نصب می‌شه.

-
-

و یا اینکه لینک دانلود مستقیم رو به برنامه +نصب می‌شه.

و یا اینکه لینک دانلود مستقیم رو به برنامه wget می‌دیم. این برنامه به صورت دیفالت نصب هست و لازم نیست -کار خاصی بکنیم.

-
- -
-
1
-
-
!wget '<your file link>'
-
-
-

from google to telegram as cloud

-

بعد از اینکه فایل روی سرور گوگل دانلود شد کافیه فایل -رو به تلگرام آپلود کنیم! ولی قبل‌ش چند کاری هست که باید -باهم بکنیم.

-
    -
  • فایل من زیپه پس باید استخراج کنم.
  • -
  • فایل ها توی دایرکتوری های تو در تو قرار دارند، و باید همه فایل های مورد نظرم رو که توی این مورد +کار خاصی بکنیم.

    1
    +
    !wget '<your file link>'
    +

    from google to telegram as cloud

    بعد از اینکه فایل روی سرور گوگل دانلود شد کافیه فایل +رو به تلگرام آپلود کنیم! ولی قبل‌ش چند کاری هست که باید +باهم بکنیم.

    • فایل من زیپه پس باید استخراج کنم.
    • فایل ها توی دایرکتوری های تو در تو قرار دارند، و باید همه فایل های مورد نظرم رو که توی این مورد mp3 هستند رو بیارم داخل پوشه‌ای که اسکریپت دیفالت آنجا ران -می‌شه.
    • -
    • نیاز به یک کانال تلگرام دارم که فایل ها مستقیم اونجا -اپلود بشوند
    • -
    • یک توکن ربات تلگرام هم نیازه که با استفاده از دسترسی -ربات به کانال، فایل ها رو اپلود کنیم.
    • -
    -

    خب برای اسختراج فایل ها خیلی ساده از کامند +می‌شه.

  • نیاز به یک کانال تلگرام دارم که فایل ها مستقیم اونجا +اپلود بشوند
  • یک توکن ربات تلگرام هم نیازه که با استفاده از دسترسی +ربات به کانال، فایل ها رو اپلود کنیم.

خب برای اسختراج فایل ها خیلی ساده از کامند unzip -و اسم فایل جلوی این کامند استفاده می‌کنیم.

-
- -
-
1
-
-
!unzip <your file name>
-
-
-
-

با کامند +و اسم فایل جلوی این کامند استفاده می‌کنیم.

1
+
!unzip <your file name>
+

با کامند ls -نام فایلی که دانلود کردین رو می‌تونید ببینید.

-
-

uizip in colab

-

با اجرای کامند +نام فایلی که دانلود کردین رو می‌تونید ببینید.

uizip in colab

با اجرای کامند tree -می‌تونید دایرکتوری های تو در تو رو ببینید.

-

tree in colab

-

توی این مرحله من همه فایل های +می‌تونید دایرکتوری های تو در تو رو ببینید.

tree in colab

توی این مرحله من همه فایل های mp3 رو باید بیارم توی پوشه اصلی که اسکریپت‌ اپلود اجرا میشه، دلیل این کار این هست که این اسکریپ‌ت فقط فایل های mp3 -داخل همین پوشه رو پیدا و اپلود می‌کنه.

-

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

برای انتقال این فایل ها از پوشه های تو در تو به یک پوشه از کامند find استفاده می‌کنم و هر فایل که پیدا می‌شه رو با کامند mv -به پوشه اصلی‌مون انتقال می‌دم.

-
- -
-
1
-
-
!find . -type f -iname '*mp3' -exec mv {} . \;
-
-
-

بیایید سوییچ های این دستور رو بهتون بگم

-
    -
  • type-
  • -
-

این سوییچ انواع نوع فایل ها رو مشخص می‌کنه. مثلا شما می‌تونید دنبال یک دایرکتوری، فایل، سوکت و … بگردین

-
    -
  • iname-
  • -
-

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

1
+
!find . -type f -iname '*mp3' -exec mv {} . \;
+

بیایید سوییچ های این دستور رو بهتون بگم

  • type-

این سوییچ انواع نوع فایل ها رو مشخص می‌کنه. مثلا شما می‌تونید دنبال یک دایرکتوری، فایل، سوکت و … بگردین

  • iname-

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

-
    -
  • exec-
  • -
-

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

  • exec-

یک کامندی رو ازتون می‌گیره و روی تک تک ریزالت های جست و جو اون کامند رو اجرا می‌کنه. من کامند mv رو دادم که برای انتقال فایل استفاده می‌شه. علامت های {} -هم یک متغییر هست که نام فایل تک به تک جای اون قرار می‌گیره.

-
-

پایان سوییچ +هم یک متغییر هست که نام فایل تک به تک جای اون قرار می‌گیره.

پایان سوییچ exec همیشه با ;\ -مشخص می‌شه.

-
-

خب تا اینجا که خیلی ساده بود،‌ نه؟

-

مرحله آخر اینه که یک ربات با -این ربات -بسازین، و بعد اون رو عضو یک کانالی که می‌سازید بکنید، کانال رو فعلا پابلیک بسازید و یک یوزرنیم بهش بدین.

-

توکن ربات رو کپی کنید و توی اسکریپت من، جایی که نوشته - -وارد کنید و توی قسمت - -هم ایدی کانالتون رو با علامت @ اول جایگذاری کنید.

-

ac and dc telegram channel

-
-

اگه کانال پرایوت دارید باید بجای ای‌دی کانال از +مشخص می‌شه.

خب تا اینجا که خیلی ساده بود،‌ نه؟

مرحله آخر اینه که یک ربات با +این ربات +بسازین، و بعد اون رو عضو یک کانالی که می‌سازید بکنید، کانال رو فعلا پابلیک بسازید و یک یوزرنیم بهش بدین.

توکن ربات رو کپی کنید و توی اسکریپت من، جایی که نوشته +وارد کنید و توی قسمت +هم ایدی کانالتون رو با علامت @ اول جایگذاری کنید.

ac and dc telegram channel

اگه کانال پرایوت دارید باید بجای ای‌دی کانال از chatid -استفاده کنید، که یک ای‌دی عددی هست.

-
-

تمام!‌ -کافیه برنامه رو اجرا کنید و کانال تلگرامتون رو نگاه کنید :)

-
-

اگه خیلی زیاد دارین فایل اپلود می‌کنید احتمالا تلگرام ارور +استفاده کنید، که یک ای‌دی عددی هست.

تمام!‌ +کافیه برنامه رو اجرا کنید و کانال تلگرامتون رو نگاه کنید :)

اگه خیلی زیاد دارین فایل اپلود می‌کنید احتمالا تلگرام ارور flood mood بهتون بده. توی این مورد کافیه فقط صبر کنید، اسکریپت از اجرا قطع نمی‌شه و روی همون فایل مجددا اجرا می‌شه -تا بالاخره فایل اپلود بشه.

-
-
-

هرچیزی رو می‌تونید آپلود کنید ولی دقت کنید که ربات ها محدودیت حجم اپلود دارن که نهایتش 50MB هست

-
-
-

اینم بگم که توی اسکریپت اگه +تا بالاخره فایل اپلود بشه.

هرچیزی رو می‌تونید آپلود کنید ولی دقت کنید که ربات ها محدودیت حجم اپلود دارن که نهایتش 50MB هست

اینم بگم که توی اسکریپت اگه mp3 -رو به چیز دیگه‌ای تغییر بدین، اسکریپت به دنبال اون پسوند ها خواهد گشت.

-
- -

- - - - - - -
- - - - - - - - - - -
-
- - -comments powered by Disqus -
- - - - - - - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - - - - -
-
- - - - - +رو به چیز دیگه‌ای تغییر بدین، اسکریپت به دنبال اون پسوند ها خواهد گشت.

comments powered by Disqus
قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git "a/docs/p/\330\247\330\263\331\206\331\276-\330\264\330\247\330\252-\332\257\330\261\331\201\330\252\331\206-\330\247\330\262-\333\214\332\251-\330\265\331\201\330\255\331\207-\330\263\330\247\333\214\330\252-\330\250\330\247-\330\252\331\205\330\247\331\205\333\214-\331\201\330\247\333\214\331\204-\331\207\330\247\333\214-\331\210\330\247\330\250\330\263\330\252\331\207\330\264\330\271\332\251\330\263-\330\247\330\263\330\252\330\247\333\214\331\204-\330\254\330\247\331\210\330\247-\330\247\330\263\332\251\330\261\333\214\331\276\330\252/index.html" "b/docs/p/\330\247\330\263\331\206\331\276-\330\264\330\247\330\252-\332\257\330\261\331\201\330\252\331\206-\330\247\330\262-\333\214\332\251-\330\265\331\201\330\255\331\207-\330\263\330\247\333\214\330\252-\330\250\330\247-\330\252\331\205\330\247\331\205\333\214-\331\201\330\247\333\214\331\204-\331\207\330\247\333\214-\331\210\330\247\330\250\330\263\330\252\331\207\330\264\330\271\332\251\330\263-\330\247\330\263\330\252\330\247\333\214\331\204-\330\254\330\247\331\210\330\247-\330\247\330\263\332\251\330\261\333\214\331\276\330\252/index.html" index 515296a..ead72fd 100644 --- "a/docs/p/\330\247\330\263\331\206\331\276-\330\264\330\247\330\252-\332\257\330\261\331\201\330\252\331\206-\330\247\330\262-\333\214\332\251-\330\265\331\201\330\255\331\207-\330\263\330\247\333\214\330\252-\330\250\330\247-\330\252\331\205\330\247\331\205\333\214-\331\201\330\247\333\214\331\204-\331\207\330\247\333\214-\331\210\330\247\330\250\330\263\330\252\331\207\330\264\330\271\332\251\330\263-\330\247\330\263\330\252\330\247\333\214\331\204-\330\254\330\247\331\210\330\247-\330\247\330\263\332\251\330\261\333\214\331\276\330\252/index.html" +++ "b/docs/p/\330\247\330\263\331\206\331\276-\330\264\330\247\330\252-\332\257\330\261\331\201\330\252\331\206-\330\247\330\262-\333\214\332\251-\330\265\331\201\330\255\331\207-\330\263\330\247\333\214\330\252-\330\250\330\247-\330\252\331\205\330\247\331\205\333\214-\331\201\330\247\333\214\331\204-\331\207\330\247\333\214-\331\210\330\247\330\250\330\263\330\252\331\207\330\264\330\271\332\251\330\263-\330\247\330\263\330\252\330\247\333\214\331\204-\330\254\330\247\331\210\330\247-\330\247\330\263\332\251\330\261\333\214\331\276\330\252/index.html" @@ -1,429 +1,22 @@ - - - - -اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش(عکس، استایل، جاوا اسکریپت) - - - - - - - - - - - - - - - - -
- - - - -
-
-
-
- - - Featured image of post اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش(عکس، استایل، جاوا اسکریپت) - - -
- - -
- - - - -
-

- اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش(عکس، استایل، جاوا اسکریپت) -

- - -
- - - - - -
- -
- - - - - - - - - - -
- - - -
- - - - - - - - - -
- -
- - - -
- -
- -
- - -
-

زمانی که مقاله یا پستی را می‌خوانم، گاهی احساس می‌کنم ممکنه یک مطلب را فراموش کنم. +اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش(عکس، استایل، جاوا اسکریپت) +

Featured image of post اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش(عکس، استایل، جاوا اسکریپت)

اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش(عکس، استایل، جاوا اسکریپت)

+
+

زمانی که مقاله یا پستی را می‌خوانم، گاهی احساس می‌کنم ممکنه یک مطلب را فراموش کنم. مثلا اگه مقاله‌ای از ویرگول درباره یک دستور لینوکس بخوانم، برای اینکه مطلبش را فراموش نکنم باید هرزگاهی به پست سر بزنم و مطالب را مرور کنم. اما فکر کنید مطلب درباره برنامه‌ای باشد که می‌توان با استفاده از آن سانسور را دور زد، -ویرگول احتمالا آن مطلب را حذف می‌کند.

-
    -
  • -

    چه راهی برای ذخیره پست پشنهاد می‌کنید که بعدا بتوان آن را بارها مرور کرد؟

    -
  • -
  • -

    اگر پست از سایت منبع حذف شود، و یا حتی خود سایت دیگر در دسترس نباشد، -باز هم پستی که ذخیره کرده‌اید در دسترس است؟

    -
  • -
-

در این پست با استفاده از ابزار +ویرگول احتمالا آن مطلب را حذف می‌کند.

  • چه راهی برای ذخیره پست پشنهاد می‌کنید که بعدا بتوان آن را بارها مرور کرد؟

  • اگر پست از سایت منبع حذف شود، و یا حتی خود سایت دیگر در دسترس نباشد، +باز هم پستی که ذخیره کرده‌اید در دسترس است؟

در این پست با استفاده از ابزار wget یک پست را با تمامی وابستگی هایش مانند عکس ها، فایل های js، @@ -432,30 +25,22 @@

دانلود می‌کنیم و روی سیستم خودمان ذخیره می‌کنیم تا حتی اگر سایت در دسترس نباشد و یا پست -از منبع حذف شد، پست به صورت افلاین در دسترس بماند.

-
-

wget

-

می‌دونید که +از منبع حذف شد، پست به صورت افلاین در دسترس بماند.


wget

می‌دونید که wget یک ابزار پیشرفته برای دانلود فایله، قابلیت های زیادی که داره باعث شده بعد از سالها که ابزار های پیشرفته دانلود هم نوشته شدن، همچنان wget استفاده بشه. این برنامه روی اکثر توزیع های لینوکس به صورت دیفالت نصبه پس بیایید بدون تلف کردن وقت -سوییچ های مهم برای میرور کردن یک صفحه سایت رو برسی کنیم.

-



-

Ⅰ. --adjust-extension, -E

-

شاید شما هم سایتی هایی را دیده باشید که +سوییچ های مهم برای میرور کردن یک صفحه سایت رو برسی کنیم.



Ⅰ. --adjust-extension, -E

شاید شما هم سایتی هایی را دیده باشید که url صفحه هایشان با پسوند .asp به پایان می‌رسند. برای مثال نگاهی به -این آدرس +این آدرس بیاندازید -https://www.w3schools.com/python/default.asp +https://www.w3schools.com/python/default.asp همانطور که می‌بینید با asp به پایان می‌رسد. زمانی که شما این صفحه را دانلود کنید، @@ -463,31 +48,16 @@

wget

html. با پسوند asp. -ذخیره خواهد شد.

-
-

به همین دلیل ما از این سوییچ استفاده می‌کنیم تا صفحه ها را +ذخیره خواهد شد.

به همین دلیل ما از این سوییچ استفاده می‌کنیم تا صفحه ها را با پسوند html. -ذخیره کنیم.

-
-
-
-
- -
-
1
-2
-3
-
-
$ https://example.com/some/where
-
-# where.html
-
-
-
-



-

Ⅱ. --span-hosts, -H

-

اگر حتی فقط یک صفحه را میرور می‌کنیم، آن صفحه ممکن است به فایل های خارج از سایت +ذخیره کنیم.


1
+2
+3
+
$ https://example.com/some/where
+
+# where.html
+



Ⅱ. --span-hosts, -H

اگر حتی فقط یک صفحه را میرور می‌کنیم، آن صفحه ممکن است به فایل های خارج از سایت که به روی یک CDN قرار گرفته اند @@ -495,1561 +65,1223 @@

wget

style sheet ها. از اینرو وقتی شما یک صفحه را میرور می‌کنید wget -فایل های خارج از سایت را دانلود نخواهد کرد.

-
-

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

پوشش دادن فایل های خارج از سایت با استفاده از این سوییچ انجام داده می‌شود. وقتی این سوییچ را روشن کنید wget همه لینک ها از جمله لینک هایی زیر دامنه را هم دانلود خواهد کرد، مگر اینکه عمق -پوشش دادن را محدود کنید.

-
-



-

Ⅲ. --convert-links, -k

-

یک صفحه را که میرور کردیم با توجه به اینکه فایل های پیشیاز مثل عکس و استایل ها را +پوشش دادن را محدود کنید.



Ⅲ. --convert-links, -k

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

-
-

برای اینکه یک صفحه فایل های پیشنیازش را از فایل هایی که در کنار صفحه اصلی دانلود +روی سیستم داریم، باز هم از آدرس خارجی دریافت می‌کند و نمایش می‌دهد.

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

-
-



-

Ⅳ. --page-requisites, -p

-
-

این سوییچ باعث می‌شود که +لینک های داخلی تبدیل می‌کند و صفحه موقع لود شدن از فایل های داخلی استفاده می‌کند.



Ⅳ. --page-requisites, -p

این سوییچ باعث می‌شود که wget تمامی فایل های ضروری برای درست نمایش داده شدن html -را دانلود کند. این فایل ها شامل عکس ها، استایل ها و یا صدا ها می‌شود.

-
-



-

Ⅴ. --no-directories, -nd

-

به صورت پیشفرض زمانی که صفحه‌ای با این ادرس را دانلود کنیم

-

https://example.com/some/where/page.html

-

برنامه +را دانلود کند. این فایل ها شامل عکس ها، استایل ها و یا صدا ها می‌شود.



Ⅴ. --no-directories, -nd

به صورت پیشفرض زمانی که صفحه‌ای با این ادرس را دانلود کنیم

https://example.com/some/where/page.html

برنامه wget -این صفحه و فایل های مورد نیازش را به این صورت ذخیره خواهد کرد

-

some/where/page.html/.

-

اما با استفاده از سوییچ +این صفحه و فایل های مورد نیازش را به این صورت ذخیره خواهد کرد

some/where/page.html/.

اما با استفاده از سوییچ nd- -آن صفحه و فایل های مورد نیازش فقط داخل یک دایرکتوری ذخیره خواهد شد. به این صورت

-

page.html/.

-
-

با فعال کردن این سوییچ +آن صفحه و فایل های مورد نیازش فقط داخل یک دایرکتوری ذخیره خواهد شد. به این صورت

page.html/.

با فعال کردن این سوییچ wget صفحه و فایل های پیشنیاز را داخل دایرکتوری فعلی ذخیره خواهد کرد. و اگر -نام یک فایل بیش از یکبار تکرار شود، به نام فایل پسوند اضافه خواهد شد.

-
-



-

مثال کاربردی و خروجی

-
    -
  • برای مثال من یک -پست توی ویرگول +نام یک فایل بیش از یکبار تکرار شود، به نام فایل پسوند اضافه خواهد شد.



مثال کاربردی و خروجی

  • برای مثال من یک +پست توی ویرگول که آموزش الگوریتم RSA -هست رو دانلود می‌کنم.
  • -
-
-
-
- -
-
  1
-  2
-  3
-  4
-  5
-  6
-  7
-  8
-  9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-114
-115
-116
-117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
-132
-133
-134
-135
-136
-137
-138
-139
-140
-141
-142
-143
-144
-145
-146
-147
-148
-149
-150
-151
-152
-153
-154
-155
-156
-157
-158
-159
-160
-161
-162
-163
-164
-165
-166
-167
-168
-169
-170
-171
-172
-173
-174
-175
-176
-177
-178
-179
-180
-181
-182
-183
-184
-185
-186
-187
-188
-189
-190
-191
-192
-193
-194
-195
-196
-197
-198
-199
-200
-201
-202
-203
-204
-205
-206
-207
-208
-209
-210
-211
-212
-213
-214
-215
-216
-217
-218
-219
-220
-221
-222
-223
-224
-225
-226
-227
-228
-229
-230
-231
-232
-233
-234
-235
-236
-237
-238
-239
-240
-241
-242
-243
-244
-245
-246
-247
-248
-249
-250
-251
-252
-253
-254
-255
-256
-257
-258
-259
-260
-261
-262
-263
-264
-265
-266
-267
-268
-269
-270
-271
-272
-273
-274
-275
-276
-277
-278
-279
-280
-281
-282
-283
-284
-285
-286
-287
-288
-289
-290
-291
-292
-293
-294
-295
-296
-297
-298
-299
-300
-301
-302
-303
-304
-305
-306
-307
-308
-309
-310
-311
-312
-313
-314
-315
-316
-317
-318
-319
-320
-321
-322
-323
-324
-325
-326
-327
-328
-329
-330
-331
-332
-333
-334
-335
-336
-337
-338
-339
-340
-341
-342
-343
-344
-345
-346
-347
-348
-349
-350
-351
-352
-353
-354
-355
-356
-357
-358
-359
-360
-361
-362
-363
-364
-365
-366
-367
-368
-369
-370
-371
-372
-373
-374
-375
-376
-377
-378
-379
-380
-381
-382
-383
-384
-385
-386
-387
-388
-389
-390
-391
-392
-393
-394
-395
-396
-397
-398
-399
-400
-401
-402
-403
-404
-405
-406
-407
-408
-409
-410
-411
-412
-413
-414
-415
-416
-417
-418
-419
-420
-421
-422
-423
-424
-425
-426
-427
-428
-429
-430
-431
-432
-433
-434
-435
-436
-437
-438
-439
-440
-441
-442
-443
-444
-445
-446
-447
-448
-449
-450
-451
-452
-453
-454
-455
-456
-457
-458
-459
-460
-461
-462
-463
-464
-465
-466
-467
-468
-469
-470
-471
-472
-473
-474
-475
-476
-477
-478
-479
-480
-481
-482
-483
-484
-485
-486
-487
-488
-489
-490
-491
-492
-493
-494
-495
-496
-497
-498
-499
-500
-501
-502
-503
-504
-505
-506
-507
-508
-509
-510
-511
-512
-513
-514
-515
-516
-517
-518
-519
-520
-521
-522
-523
-524
-525
-526
-527
-528
-529
-530
-531
-532
-533
-534
-535
-536
-537
-538
-539
-540
-541
-542
-543
-544
-545
-546
-547
-548
-549
-550
-551
-552
-553
-554
-555
-556
-557
-558
-559
-560
-561
-562
-563
-564
-565
-566
-567
-568
-569
-570
-571
-572
-573
-574
-575
-576
-577
-578
-579
-580
-581
-582
-583
-584
-585
-586
-587
-588
-589
-590
-
-
┌─[loading] [/tmp/virgool] [0]  
-│
-└──〉wget -nd -E -p -k -H https://vrgl.ir/c3fVa
---2022-01-18 06:41:03--  https://vrgl.ir/c3fVa
-Connecting to 192.168.45.250:8080... connected.
-Proxy request sent, awaiting response... 302 Found
-Location: https://virgool.io/@Novo/rsa-encryption-ao1poasym4cf [following]
---2022-01-18 06:41:04--  https://virgool.io/@Novo/rsa-encryption-ao1poasym4cf
-Connecting to 192.168.45.250:8080... connected.
-Proxy request sent, awaiting response... 200 OK
-Length: unspecified [text/html]
-Saving to: ‘c3fVa.html’
-
-c3fVa.html                          [  <=>                                                  ]  61.30K   200KB/s    in 0.3s    
-
-2022-01-18 06:41:06 (200 KB/s) - ‘c3fVa.html’ saved [62773]
-
-Loading robots.txt; please ignore errors.
---2022-01-18 06:41:06--  https://virgool.io/robots.txt
-Reusing existing connection to virgool.io:443.
-Proxy request sent, awaiting response... 200 OK
-Length: unspecified [document]
-Saving to: ‘robots.txt’
-
-robots.txt                          [ <=>                                                   ]     484  --.-KB/s    in 0s      
-
-2022-01-18 06:41:07 (85.7 MB/s) - ‘robots.txt’ saved [484]
-
-Loading robots.txt; please ignore errors.
---2022-01-18 06:41:07--  https://www.googletagmanager.com/robots.txt
-Connecting to 192.168.45.250:8080... connected.
-Proxy request sent, awaiting response... 404 Not Found
-2022-01-18 06:41:08 ERROR 404: Not Found.
-
-Loading robots.txt; please ignore errors.
---2022-01-18 06:41:08--  https://files.virgool.io/robots.txt
-Connecting to 192.168.45.250:8080... connected.
-Proxy request sent, awaiting response... 403 Forbidden
-2022-01-18 06:41:09 ERROR 403: Forbidden.
-
-Loading robots.txt; please ignore errors.
---2022-01-18 06:41:09--  https://static.cloudflareinsights.com/robots.txt
-Connecting to 192.168.45.250:8080... connected.
-Proxy request sent, awaiting response... 522 
-2022-01-18 06:41:26 ERROR 522: (no description).
-
---2022-01-18 06:41:26--  https://virgool.io/images/favicon.png?v=v2.6.15
-Connecting to 192.168.45.250:8080... connected.
-Proxy request sent, awaiting response... 200 OK
-Length: 9855 (9.6K) [image/png]
-Saving to: ‘favicon.png?v=v2.6.15’
-
-favicon.png?v=v2.6.15           100%[======================================================>]   9.62K  --.-KB/s    in 0.07s   
-
-2022-01-18 06:41:27 (130 KB/s) - ‘favicon.png?v=v2.6.15’ saved [9855/9855]
-
---2022-01-18 06:41:27--  https://virgool.io/css/styles.css?v=v2.6.15
-Reusing existing connection to virgool.io:443.
-Proxy request sent, awaiting response... 200 OK
-Length: unspecified [text/css]
-Saving to: ‘styles.css?v=v2.6.15.css’
-
-styles.css?v=v2.6.15.css            [       <=>                                             ] 903.60K   592KB/s    in 1.5s    
-
-2022-01-18 06:41:28 (592 KB/s) - ‘styles.css?v=v2.6.15.css’ saved [925284]
-
-Loading robots.txt; please ignore errors.
---2022-01-18 06:41:28--  https://virgool.test/robots.txt
-Connecting to 192.168.45.250:8080... connected.
-Proxy tunneling failed: Bad GatewayUnable to establish SSL connection.
---2022-01-18 06:41:28--  https://www.googletagmanager.com/ns.html?id=GTM-5GS688K
-Connecting to 192.168.45.250:8080... connected.
-Proxy request sent, awaiting response... 200 OK
-Length: unspecified [text/html]
-Saving to: ‘ns.html?id=GTM-5GS688K.html’
-
-ns.html?id=GTM-5GS688K.html         [ <=>                                                   ]     266  --.-KB/s    in 0s      
-
-2022-01-18 06:41:29 (29.4 MB/s) - ‘ns.html?id=GTM-5GS688K.html’ saved [266]
-
---2022-01-18 06:41:29--  https://files.virgool.io/upload/users/31434/avatar/1C4LLE.png?x-img=v1/resize,h_120,w_120/optimize,q_100
-Connecting to 192.168.45.250:8080... connected.
-Proxy request sent, awaiting response... 200 OK
-Length: 39194 (38K) [image/png]
-Saving to: ‘1C4LLE.png?x-img=v1%2Fresize,h_120,w_120%2Foptimize,q_100’
-
-1C4LLE.png?x-img=v1%2Fresize,h_ 100%[======================================================>]  38.28K   173KB/s    in 0.2s    
-
-2022-01-18 06:41:30 (173 KB/s) - ‘1C4LLE.png?x-img=v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved [39194/39194]
-
---2022-01-18 06:41:30--  https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/qhokakomwyb5.png
-Reusing existing connection to files.virgool.io:443.
-Proxy request sent, awaiting response... 200 OK
-Length: 179870 (176K) [image/png]
-Saving to: ‘qhokakomwyb5.png’
-
-qhokakomwyb5.png                100%[======================================================>] 175.65K   567KB/s    in 0.3s    
-
-2022-01-18 06:41:31 (567 KB/s) - ‘qhokakomwyb5.png’ saved [179870/179870]
-
---2022-01-18 06:41:31--  https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/v1xnwpnewfys.webp
-Reusing existing connection to files.virgool.io:443.
-Proxy request sent, awaiting response... 200 OK
-Length: 12770 (12K) [image/webp]
-Saving to: ‘v1xnwpnewfys.webp’
-
-v1xnwpnewfys.webp               100%[======================================================>]  12.47K  --.-KB/s    in 0.07s   
-
-2022-01-18 06:41:31 (180 KB/s) - ‘v1xnwpnewfys.webp’ saved [12770/12770]
-
---2022-01-18 06:41:31--  https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/d28hpu2detkl.png
-Reusing existing connection to files.virgool.io:443.
-Proxy request sent, awaiting response... 200 OK
-Length: 92847 (91K) [image/png]
-Saving to: ‘d28hpu2detkl.png’
-
-d28hpu2detkl.png                100%[======================================================>]  90.67K  --.-KB/s    in 0.09s   
-
-2022-01-18 06:41:31 (969 KB/s) - ‘d28hpu2detkl.png’ saved [92847/92847]
-
---2022-01-18 06:41:31--  https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/rhyykrc8azq0.png
-Reusing existing connection to files.virgool.io:443.
-Proxy request sent, awaiting response... 200 OK
-Length: 17539 (17K) [image/png]
-Saving to: ‘rhyykrc8azq0.png’
-
-rhyykrc8azq0.png                100%[======================================================>]  17.13K  --.-KB/s    in 0.007s  
-
-2022-01-18 06:41:32 (2.47 MB/s) - ‘rhyykrc8azq0.png’ saved [17539/17539]
-
---2022-01-18 06:41:32--  https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/fjtc1ydzkuse.png
-Reusing existing connection to files.virgool.io:443.
-Proxy request sent, awaiting response... 200 OK
-Length: 108524 (106K) [image/png]
-Saving to: ‘fjtc1ydzkuse.png’
-
-fjtc1ydzkuse.png                100%[======================================================>] 105.98K  --.-KB/s    in 0.1s    
-
-2022-01-18 06:41:32 (1.06 MB/s) - ‘fjtc1ydzkuse.png’ saved [108524/108524]
-
---2022-01-18 06:41:32--  https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/gfqhgyp18oic.jpeg
-Reusing existing connection to files.virgool.io:443.
-Proxy request sent, awaiting response... 200 OK
-Length: 132085 (129K) [image/jpeg]
-Saving to: ‘gfqhgyp18oic.jpeg’
-
-gfqhgyp18oic.jpeg               100%[======================================================>] 128.99K  --.-KB/s    in 0.1s    
-
-2022-01-18 06:41:32 (1.28 MB/s) - ‘gfqhgyp18oic.jpeg’ saved [132085/132085]
-
---2022-01-18 06:41:32--  https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/me0mpjtdmyom.png
-Reusing existing connection to files.virgool.io:443.
-Proxy request sent, awaiting response... 200 OK
-Length: 113489 (111K) [image/png]
-Saving to: ‘me0mpjtdmyom.png’
-
-me0mpjtdmyom.png                100%[======================================================>] 110.83K  --.-KB/s    in 0.1s    
-
-2022-01-18 06:41:33 (814 KB/s) - ‘me0mpjtdmyom.png’ saved [113489/113489]
-
---2022-01-18 06:41:33--  https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/of7krju6oqzk.png
-Reusing existing connection to files.virgool.io:443.
-Proxy request sent, awaiting response... 200 OK
-Length: 105746 (103K) [image/png]
-Saving to: ‘of7krju6oqzk.png’
-
-of7krju6oqzk.png                100%[======================================================>] 103.27K  --.-KB/s    in 0.08s   
-
-2022-01-18 06:41:33 (1.25 MB/s) - ‘of7krju6oqzk.png’ saved [105746/105746]
-
---2022-01-18 06:41:33--  https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/oqwhflg4gbnq.png
-Reusing existing connection to files.virgool.io:443.
-Proxy request sent, awaiting response... 200 OK
-Length: 120994 (118K) [image/png]
-Saving to: ‘oqwhflg4gbnq.png’
-
-oqwhflg4gbnq.png                100%[======================================================>] 118.16K  --.-KB/s    in 0.1s    
-
-2022-01-18 06:41:33 (1.14 MB/s) - ‘oqwhflg4gbnq.png’ saved [120994/120994]
-
---2022-01-18 06:41:33--  https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/taqjnfnuzxcx.png
-Reusing existing connection to files.virgool.io:443.
-Proxy request sent, awaiting response... 200 OK
-Length: 122678 (120K) [image/png]
-Saving to: ‘taqjnfnuzxcx.png’
-
-taqjnfnuzxcx.png                100%[======================================================>] 119.80K  --.-KB/s    in 0.06s   
-
-2022-01-18 06:41:34 (2.00 MB/s) - ‘taqjnfnuzxcx.png’ saved [122678/122678]
-
---2022-01-18 06:41:34--  https://files.virgool.io/upload/users/63/posts/qwqrubplfaau/g8vai2incgna.jpeg?x-img=v1/resize,w_300/optimize,q_100
-Reusing existing connection to files.virgool.io:443.
-Proxy request sent, awaiting response... 200 OK
-Length: 88292 (86K) [image/jpeg]
-Saving to: ‘g8vai2incgna.jpeg?x-img=v1%2Fresize,w_300%2Foptimize,q_100’
-
-g8vai2incgna.jpeg?x-img=v1%2Fre 100%[======================================================>]  86.22K  --.-KB/s    in 0.1s    
-
-2022-01-18 06:41:34 (824 KB/s) - ‘g8vai2incgna.jpeg?x-img=v1%2Fresize,w_300%2Foptimize,q_100’ saved [88292/88292]
-
---2022-01-18 06:41:34--  https://files.virgool.io/upload/users/63/avatar/o8jiNe.png?x-img=v1/resize,h_120,w_120/optimize,q_100
-Reusing existing connection to files.virgool.io:443.
-Proxy request sent, awaiting response... 200 OK
-Length: 32037 (31K) [image/png]
-Saving to: ‘o8jiNe.png?x-img=v1%2Fresize,h_120,w_120%2Foptimize,q_100’
-
-o8jiNe.png?x-img=v1%2Fresize,h_ 100%[======================================================>]  31.29K  --.-KB/s    in 0.06s   
-
-2022-01-18 06:41:34 (558 KB/s) - ‘o8jiNe.png?x-img=v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved [32037/32037]
-
---2022-01-18 06:41:34--  https://files.virgool.io/upload/users/31434/posts/e3oydlcfkr5e/figl9y1c6otq.jpeg?x-img=v1/resize,w_300/optimize,q_100
-Reusing existing connection to files.virgool.io:443.
-Proxy request sent, awaiting response... 200 OK
-Length: 30356 (30K) [image/jpeg]
-Saving to: ‘figl9y1c6otq.jpeg?x-img=v1%2Fresize,w_300%2Foptimize,q_100’
-
-figl9y1c6otq.jpeg?x-img=v1%2Fre 100%[======================================================>]  29.64K  --.-KB/s    in 0.07s   
-
-2022-01-18 06:41:35 (401 KB/s) - ‘figl9y1c6otq.jpeg?x-img=v1%2Fresize,w_300%2Foptimize,q_100’ saved [30356/30356]
-
---2022-01-18 06:41:35--  https://files.virgool.io/upload/users/316150/posts/r8rhw88uh1xh/cs1ugyelv3zw.png?x-img=v1/resize,w_300/optimize,q_100
-Reusing existing connection to files.virgool.io:443.
-Proxy request sent, awaiting response... 200 OK
-Length: 34459 (34K) [image/png]
-Saving to: ‘cs1ugyelv3zw.png?x-img=v1%2Fresize,w_300%2Foptimize,q_100’
-
-cs1ugyelv3zw.png?x-img=v1%2Fres 100%[======================================================>]  33.65K  --.-KB/s    in 0.08s   
-
-2022-01-18 06:41:35 (399 KB/s) - ‘cs1ugyelv3zw.png?x-img=v1%2Fresize,w_300%2Foptimize,q_100’ saved [34459/34459]
-
---2022-01-18 06:41:35--  https://files.virgool.io/upload/users/316150/avatar/8sz7Rs.jpeg?x-img=v1/resize,h_120,w_120/optimize,q_100
-Reusing existing connection to files.virgool.io:443.
-Proxy request sent, awaiting response... 200 OK
-Length: 14764 (14K) [image/jpeg]
-Saving to: ‘8sz7Rs.jpeg?x-img=v1%2Fresize,h_120,w_120%2Foptimize,q_100’
-
-8sz7Rs.jpeg?x-img=v1%2Fresize,h 100%[======================================================>]  14.42K  --.-KB/s    in 0.007s  
-
-2022-01-18 06:41:35 (2.11 MB/s) - ‘8sz7Rs.jpeg?x-img=v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved [14764/14764]
-
---2022-01-18 06:41:35--  https://virgool.io/js/commons.js?v=v2.6.15
-Connecting to 192.168.45.250:8080... connected.
-Proxy request sent, awaiting response... 200 OK
-Length: unspecified [application/javascript]
-Saving to: ‘commons.js?v=v2.6.15’
-
-commons.js?v=v2.6.15                [           <=>                                         ] 997.55K   337KB/s    in 3.0s    
-
-2022-01-18 06:41:39 (337 KB/s) - ‘commons.js?v=v2.6.15’ saved [1021492]
-
---2022-01-18 06:41:39--  https://virgool.io/js/main.js?v=v2.6.15
-Reusing existing connection to virgool.io:443.
-Proxy request sent, awaiting response... 200 OK
-Length: unspecified [application/javascript]
-Saving to: ‘main.js?v=v2.6.15’
-
-main.js?v=v2.6.15                   [         <=>                                           ]   1.21M   580KB/s    in 2.1s    
-
-2022-01-18 06:41:41 (580 KB/s) - ‘main.js?v=v2.6.15’ saved [1267632]
-
---2022-01-18 06:41:41--  https://static.cloudflareinsights.com/beacon.min.js/v652eace1692a40cfa3763df669d7439c1639079717194
-Connecting to 192.168.45.250:8080... connected.
-Proxy request sent, awaiting response... 200 OK
-Length: 13970 (14K) [text/javascript]
-Saving to: ‘v652eace1692a40cfa3763df669d7439c1639079717194’
-
-v652eace1692a40cfa3763df669d743 100%[======================================================>]  13.64K  --.-KB/s    in 0.02s   
-
-2022-01-18 06:41:42 (600 KB/s) - ‘v652eace1692a40cfa3763df669d7439c1639079717194’ saved [13970/13970]
-
---2022-01-18 06:41:42--  https://virgool.io/fonts/vazir/Vazir-Thin.ttf
-Connecting to 192.168.45.250:8080... connected.
-Proxy request sent, awaiting response... 200 OK
-Length: 98924 (97K) [application/octet-stream]
-Saving to: ‘Vazir-Thin.ttf’
-
-Vazir-Thin.ttf                  100%[======================================================>]  96.61K   140KB/s    in 0.7s    
-
-2022-01-18 06:41:43 (140 KB/s) - ‘Vazir-Thin.ttf’ saved [98924/98924]
-
---2022-01-18 06:41:43--  https://virgool.io/fonts/vazir/Vazir-Thin.eot?
-Reusing existing connection to virgool.io:443.
-Proxy request sent, awaiting response... 200 OK
-Length: unspecified [application/vnd.ms-fontobject]
-Saving to: ‘Vazir-Thin.eot?’
-
-Vazir-Thin.eot?                     [  <=>                                                  ]  96.80K   276KB/s    in 0.4s    
-
-2022-01-18 06:41:44 (276 KB/s) - ‘Vazir-Thin.eot?’ saved [99120]
-
---2022-01-18 06:41:44--  https://virgool.io/fonts/vazir/Vazir-Thin.woff
-Reusing existing connection to virgool.io:443.
-Proxy request sent, awaiting response... 200 OK
-Length: 54068 (53K) [font/woff]
-Saving to: ‘Vazir-Thin.woff’
-
-Vazir-Thin.woff                 100%[======================================================>]  52.80K  --.-KB/s    in 0.07s   
-
-2022-01-18 06:41:45 (770 KB/s) - ‘Vazir-Thin.woff’ saved [54068/54068]
-
---2022-01-18 06:41:45--  https://virgool.io/fonts/vazir/Vazir-Thin.woff2
-Reusing existing connection to virgool.io:443.
-Proxy request sent, awaiting response... 200 OK
-Length: 43000 (42K) [font/woff2]
-Saving to: ‘Vazir-Thin.woff2’
-
-Vazir-Thin.woff2                100%[======================================================>]  41.99K  --.-KB/s    in 0.006s  
-
-2022-01-18 06:41:46 (6.59 MB/s) - ‘Vazir-Thin.woff2’ saved [43000/43000]
-
---2022-01-18 06:41:46--  https://virgool.io/fonts/vazir/Vazir-Light.ttf
-Reusing existing connection to virgool.io:443.
-Proxy request sent, awaiting response... 200 OK
-Length: 105360 (103K) [application/octet-stream]
-Saving to: ‘Vazir-Light.ttf’
-
-Vazir-Light.ttf                 100%[======================================================>] 102.89K   478KB/s    in 0.2s    
-
-2022-01-18 06:41:46 (478 KB/s) - ‘Vazir-Light.ttf’ saved [105360/105360]
-
---2022-01-18 06:41:46--  https://virgool.io/fonts/vazir/Vazir-Light.eot?
-Reusing existing connection to virgool.io:443.
-Proxy request sent, awaiting response... 200 OK
-Length: unspecified [application/vnd.ms-fontobject]
-Saving to: ‘Vazir-Light.eot?’
-
-Vazir-Light.eot?                    [  <=>                                                  ] 103.09K   470KB/s    in 0.2s    
-
-2022-01-18 06:41:47 (470 KB/s) - ‘Vazir-Light.eot?’ saved [105562]
-
---2022-01-18 06:41:47--  https://virgool.io/fonts/vazir/Vazir-Light.woff
-Reusing existing connection to virgool.io:443.
-Proxy request sent, awaiting response... 200 OK
-Length: 59688 (58K) [font/woff]
-Saving to: ‘Vazir-Light.woff’
-
-Vazir-Light.woff                100%[======================================================>]  58.29K  --.-KB/s    in 0.08s   
-
-2022-01-18 06:41:48 (758 KB/s) - ‘Vazir-Light.woff’ saved [59688/59688]
-
---2022-01-18 06:41:48--  https://virgool.io/fonts/vazir/Vazir-Light.woff2
-Reusing existing connection to virgool.io:443.
-Proxy request sent, awaiting response... 200 OK
-Length: 48168 (47K) [font/woff2]
-Saving to: ‘Vazir-Light.woff2’
-
-Vazir-Light.woff2               100%[======================================================>]  47.04K  --.-KB/s    in 0.08s   
-
-2022-01-18 06:41:48 (570 KB/s) - ‘Vazir-Light.woff2’ saved [48168/48168]
-
---2022-01-18 06:41:48--  https://virgool.io/fonts/vazir/Vazir-Regular.ttf
-Reusing existing connection to virgool.io:443.
-Proxy request sent, awaiting response... 200 OK
-Length: 98376 (96K) [application/octet-stream]
-Saving to: ‘Vazir-Regular.ttf’
-
-Vazir-Regular.ttf               100%[======================================================>]  96.07K   435KB/s    in 0.2s    
-
-2022-01-18 06:41:49 (435 KB/s) - ‘Vazir-Regular.ttf’ saved [98376/98376]
-
---2022-01-18 06:41:49--  https://virgool.io/fonts/vazir/Vazir-Regular.eot?
-Reusing existing connection to virgool.io:443.
-Proxy request sent, awaiting response... 200 OK
-Length: unspecified [application/vnd.ms-fontobject]
-Saving to: ‘Vazir-Regular.eot?’
-
-Vazir-Regular.eot?                  [  <=>                                                  ]  96.26K   285KB/s    in 0.3s    
-
-2022-01-18 06:41:50 (285 KB/s) - ‘Vazir-Regular.eot?’ saved [98574]
-
---2022-01-18 06:41:50--  https://virgool.io/fonts/vazir/Vazir-Regular.woff
-Reusing existing connection to virgool.io:443.
-Proxy request sent, awaiting response... 200 OK
-Length: 53744 (52K) [font/woff]
-Saving to: ‘Vazir-Regular.woff’
-
-Vazir-Regular.woff              100%[======================================================>]  52.48K  --.-KB/s    in 0.05s   
-
-2022-01-18 06:41:51 (1.10 MB/s) - ‘Vazir-Regular.woff’ saved [53744/53744]
-
---2022-01-18 06:41:51--  https://virgool.io/fonts/vazir/Vazir-Regular.woff2
-Reusing existing connection to virgool.io:443.
-Proxy request sent, awaiting response... 200 OK
-Length: 42744 (42K) [font/woff2]
-Saving to: ‘Vazir-Regular.woff2’
-
-Vazir-Regular.woff2             100%[======================================================>]  41.74K  --.-KB/s    in 0.1s    
-
-2022-01-18 06:41:51 (412 KB/s) - ‘Vazir-Regular.woff2’ saved [42744/42744]
-
---2022-01-18 06:41:51--  https://virgool.io/fonts/vazir/Vazir-Medium.ttf
-Reusing existing connection to virgool.io:443.
-Proxy request sent, awaiting response... 200 OK
-Length: 98892 (97K) [application/octet-stream]
-Saving to: ‘Vazir-Medium.ttf’
-
-Vazir-Medium.ttf                100%[======================================================>]  96.57K   606KB/s    in 0.2s    
-
-2022-01-18 06:41:52 (606 KB/s) - ‘Vazir-Medium.ttf’ saved [98892/98892]
-
---2022-01-18 06:41:52--  https://virgool.io/fonts/vazir/Vazir-Medium.eot?
-Reusing existing connection to virgool.io:443.
-Proxy request sent, awaiting response... 200 OK
-Length: unspecified [application/vnd.ms-fontobject]
-Saving to: ‘Vazir-Medium.eot?’
-
-Vazir-Medium.eot?                   [  <=>                                                  ]  96.78K   347KB/s    in 0.3s    
-
-2022-01-18 06:41:53 (347 KB/s) - ‘Vazir-Medium.eot?’ saved [99100]
-
---2022-01-18 06:41:53--  https://virgool.io/fonts/vazir/Vazir-Medium.woff
-Reusing existing connection to virgool.io:443.
-Proxy request sent, awaiting response... 200 OK
-Length: 54120 (53K) [font/woff]
-Saving to: ‘Vazir-Medium.woff’
-
-Vazir-Medium.woff               100%[======================================================>]  52.85K   125KB/s    in 0.4s    
-
-2022-01-18 06:41:54 (125 KB/s) - ‘Vazir-Medium.woff’ saved [54120/54120]
-
---2022-01-18 06:41:54--  https://virgool.io/fonts/vazir/Vazir-Medium.woff2
-Reusing existing connection to virgool.io:443.
-Proxy request sent, awaiting response... 200 OK
-Length: 43152 (42K) [font/woff2]
-Saving to: ‘Vazir-Medium.woff2’
-
-Vazir-Medium.woff2              100%[======================================================>]  42.14K  --.-KB/s    in 0.08s   
-
-2022-01-18 06:41:54 (541 KB/s) - ‘Vazir-Medium.woff2’ saved [43152/43152]
-
---2022-01-18 06:41:54--  https://virgool.io/fonts/vazir/Vazir-Bold.ttf
-Reusing existing connection to virgool.io:443.
-Proxy request sent, awaiting response... 200 OK
-Length: 99840 (98K) [application/octet-stream]
-Saving to: ‘Vazir-Bold.ttf’
-
-Vazir-Bold.ttf                  100%[======================================================>]  97.50K  --.-KB/s    in 0.04s   
-
-2022-01-18 06:41:55 (2.61 MB/s) - ‘Vazir-Bold.ttf’ saved [99840/99840]
-
---2022-01-18 06:41:55--  https://virgool.io/fonts/vazir/Vazir-Bold.eot?
-Reusing existing connection to virgool.io:443.
-Proxy request sent, awaiting response... 200 OK
-Length: unspecified [application/vnd.ms-fontobject]
-Saving to: ‘Vazir-Bold.eot?’
-
-Vazir-Bold.eot?                     [ <=>                                                   ]  97.68K   560KB/s    in 0.2s    
-
-2022-01-18 06:41:56 (560 KB/s) - ‘Vazir-Bold.eot?’ saved [100026]
-
---2022-01-18 06:41:56--  https://virgool.io/fonts/vazir/Vazir-Bold.woff
-Reusing existing connection to virgool.io:443.
-Proxy request sent, awaiting response... 200 OK
-Length: 54560 (53K) [font/woff]
-Saving to: ‘Vazir-Bold.woff’
-
-Vazir-Bold.woff                 100%[======================================================>]  53.28K  --.-KB/s    in 0.06s   
-
-2022-01-18 06:41:56 (917 KB/s) - ‘Vazir-Bold.woff’ saved [54560/54560]
-
---2022-01-18 06:41:56--  https://virgool.io/fonts/vazir/Vazir-Bold.woff2
-Reusing existing connection to virgool.io:443.
-Proxy request sent, awaiting response... 200 OK
-Length: 43604 (43K) [font/woff2]
-Saving to: ‘Vazir-Bold.woff2’
-
-Vazir-Bold.woff2                100%[======================================================>]  42.58K  --.-KB/s    in 0.06s   
-
-2022-01-18 06:41:57 (657 KB/s) - ‘Vazir-Bold.woff2’ saved [43604/43604]
-
---2022-01-18 06:41:57--  https://virgool.io/fonts/vazir/Vazir-Black.ttf
-Reusing existing connection to virgool.io:443.
-Proxy request sent, awaiting response... 200 OK
-Length: 99772 (97K) [application/octet-stream]
-Saving to: ‘Vazir-Black.ttf’
-
-Vazir-Black.ttf                 100%[======================================================>]  97.43K  --.-KB/s    in 0.04s   
-
-2022-01-18 06:41:57 (2.18 MB/s) - ‘Vazir-Black.ttf’ saved [99772/99772]
-
---2022-01-18 06:41:57--  https://virgool.io/fonts/vazir/Vazir-Black.eot?
-Reusing existing connection to virgool.io:443.
-Proxy request sent, awaiting response... 200 OK
-Length: unspecified [application/vnd.ms-fontobject]
-Saving to: ‘Vazir-Black.eot?’
-
-Vazir-Black.eot?                    [  <=>                                                  ]  97.63K   478KB/s    in 0.2s    
-
-2022-01-18 06:41:58 (478 KB/s) - ‘Vazir-Black.eot?’ saved [99974]
-
---2022-01-18 06:41:58--  https://virgool.io/fonts/vazir/Vazir-Black.woff
-Reusing existing connection to virgool.io:443.
-Proxy request sent, awaiting response... 200 OK
-Length: 54652 (53K) [font/woff]
-Saving to: ‘Vazir-Black.woff’
-
-Vazir-Black.woff                100%[======================================================>]  53.37K  --.-KB/s    in 0.08s   
-
-2022-01-18 06:41:59 (691 KB/s) - ‘Vazir-Black.woff’ saved [54652/54652]
-
---2022-01-18 06:41:59--  https://virgool.io/fonts/vazir/Vazir-Black.woff2
-Reusing existing connection to virgool.io:443.
-Proxy request sent, awaiting response... 200 OK
-Length: 43332 (42K) [font/woff2]
-Saving to: ‘Vazir-Black.woff2’
-
-Vazir-Black.woff2               100%[======================================================>]  42.32K  --.-KB/s    in 0.08s   
-
-2022-01-18 06:42:00 (510 KB/s) - ‘Vazir-Black.woff2’ saved [43332/43332]
-
---2022-01-18 06:42:00--  https://virgool.io/fonts/fontawesome/fa-solid-900.ttf
-Reusing existing connection to virgool.io:443.
-Proxy request sent, awaiting response... 200 OK
-Length: 202616 (198K) [application/octet-stream]
-Saving to: ‘fa-solid-900.ttf’
-
-fa-solid-900.ttf                100%[======================================================>] 197.87K   501KB/s    in 0.4s    
-
-2022-01-18 06:42:01 (501 KB/s) - ‘fa-solid-900.ttf’ saved [202616/202616]
-
---2022-01-18 06:42:01--  https://virgool.io/fonts/fontawesome/fa-solid-900.eot?
-Reusing existing connection to virgool.io:443.
-Proxy request sent, awaiting response... 404 Not Found
-2022-01-18 06:42:01 ERROR 404: Not Found.
-
---2022-01-18 06:42:01--  https://virgool.io/fonts/fontawesome/fa-solid-900.woff
-Reusing existing connection to virgool.io:443.
-Proxy request sent, awaiting response... 200 OK
-Length: 103300 (101K) [font/woff]
-Saving to: ‘fa-solid-900.woff’
-
-fa-solid-900.woff               100%[======================================================>] 100.88K   358KB/s    in 0.3s    
-
-2022-01-18 06:42:02 (358 KB/s) - ‘fa-solid-900.woff’ saved [103300/103300]
-
---2022-01-18 06:42:02--  https://virgool.io/fonts/fontawesome/fa-solid-900.woff2
-Reusing existing connection to virgool.io:443.
-Proxy request sent, awaiting response... 200 OK
-Length: 79444 (78K) [font/woff2]
-Saving to: ‘fa-solid-900.woff2’
-
-fa-solid-900.woff2              100%[======================================================>]  77.58K   394KB/s    in 0.2s    
-
-2022-01-18 06:42:03 (394 KB/s) - ‘fa-solid-900.woff2’ saved [79444/79444]
-
---2022-01-18 06:42:03--  https://virgool.io/images/icons/plus.svg
-Reusing existing connection to virgool.io:443.
-Proxy request sent, awaiting response... 200 OK
-Length: unspecified [image/svg+xml]
-Saving to: ‘plus.svg’
-
-plus.svg                            [ <=>                                                   ]     942  --.-KB/s    in 0.002s  
-
-2022-01-18 06:42:03 (383 KB/s) - ‘plus.svg’ saved [942]
-
---2022-01-18 06:42:03--  https://virgool.io/images/icons/tick.svg
-Reusing existing connection to virgool.io:443.
-Proxy request sent, awaiting response... 200 OK
-Length: unspecified [image/svg+xml]
-Saving to: ‘tick.svg’
-
-tick.svg                            [ <=>                                                   ]     942  --.-KB/s    in 0s      
-
-2022-01-18 06:42:04 (89.8 MB/s) - ‘tick.svg’ saved [942]
-
---2022-01-18 06:42:04--  https://virgool.io/images/typewriter.png
-Reusing existing connection to virgool.io:443.
-Proxy request sent, awaiting response... 200 OK
-Length: 172558 (169K) [image/png]
-Saving to: ‘typewriter.png’
-
-typewriter.png                  100%[======================================================>] 168.51K   349KB/s    in 0.5s    
-
-2022-01-18 06:42:05 (349 KB/s) - ‘typewriter.png’ saved [172558/172558]
-
---2022-01-18 06:42:05--  https://virgool.test/images/download-audio.png
-Connecting to 192.168.45.250:8080... connected.
-Proxy tunneling failed: Bad GatewayUnable to establish SSL connection.
---2022-01-18 06:42:05--  https://virgool.test/images/download-ebook.png
-Connecting to 192.168.45.250:8080... connected.
-Proxy tunneling failed: Bad GatewayUnable to establish SSL connection.
-FINISHED --2022-01-18 06:42:05--
-Total wall clock time: 1m 2s
-Downloaded: 54 files, 6.6M in 14s (479 KB/s)
-Converting links in ns.html?id=GTM-5GS688K.html... nothing to do.
-Converting links in c3fVa.html... 38.
-31-7
-Converting links in styles.css?v=v2.6.15.css... 35.
-34-1
-Converted links in 3 files in 0.06 seconds.
-
-
-
-
- - - - - - -
- - - - - - - - - - -
-
- - -comments powered by Disqus -
- - - - - - - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - - - - -
-
- - - - - +هست رو دانلود می‌کنم.
  1
+  2
+  3
+  4
+  5
+  6
+  7
+  8
+  9
+ 10
+ 11
+ 12
+ 13
+ 14
+ 15
+ 16
+ 17
+ 18
+ 19
+ 20
+ 21
+ 22
+ 23
+ 24
+ 25
+ 26
+ 27
+ 28
+ 29
+ 30
+ 31
+ 32
+ 33
+ 34
+ 35
+ 36
+ 37
+ 38
+ 39
+ 40
+ 41
+ 42
+ 43
+ 44
+ 45
+ 46
+ 47
+ 48
+ 49
+ 50
+ 51
+ 52
+ 53
+ 54
+ 55
+ 56
+ 57
+ 58
+ 59
+ 60
+ 61
+ 62
+ 63
+ 64
+ 65
+ 66
+ 67
+ 68
+ 69
+ 70
+ 71
+ 72
+ 73
+ 74
+ 75
+ 76
+ 77
+ 78
+ 79
+ 80
+ 81
+ 82
+ 83
+ 84
+ 85
+ 86
+ 87
+ 88
+ 89
+ 90
+ 91
+ 92
+ 93
+ 94
+ 95
+ 96
+ 97
+ 98
+ 99
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+134
+135
+136
+137
+138
+139
+140
+141
+142
+143
+144
+145
+146
+147
+148
+149
+150
+151
+152
+153
+154
+155
+156
+157
+158
+159
+160
+161
+162
+163
+164
+165
+166
+167
+168
+169
+170
+171
+172
+173
+174
+175
+176
+177
+178
+179
+180
+181
+182
+183
+184
+185
+186
+187
+188
+189
+190
+191
+192
+193
+194
+195
+196
+197
+198
+199
+200
+201
+202
+203
+204
+205
+206
+207
+208
+209
+210
+211
+212
+213
+214
+215
+216
+217
+218
+219
+220
+221
+222
+223
+224
+225
+226
+227
+228
+229
+230
+231
+232
+233
+234
+235
+236
+237
+238
+239
+240
+241
+242
+243
+244
+245
+246
+247
+248
+249
+250
+251
+252
+253
+254
+255
+256
+257
+258
+259
+260
+261
+262
+263
+264
+265
+266
+267
+268
+269
+270
+271
+272
+273
+274
+275
+276
+277
+278
+279
+280
+281
+282
+283
+284
+285
+286
+287
+288
+289
+290
+291
+292
+293
+294
+295
+296
+297
+298
+299
+300
+301
+302
+303
+304
+305
+306
+307
+308
+309
+310
+311
+312
+313
+314
+315
+316
+317
+318
+319
+320
+321
+322
+323
+324
+325
+326
+327
+328
+329
+330
+331
+332
+333
+334
+335
+336
+337
+338
+339
+340
+341
+342
+343
+344
+345
+346
+347
+348
+349
+350
+351
+352
+353
+354
+355
+356
+357
+358
+359
+360
+361
+362
+363
+364
+365
+366
+367
+368
+369
+370
+371
+372
+373
+374
+375
+376
+377
+378
+379
+380
+381
+382
+383
+384
+385
+386
+387
+388
+389
+390
+391
+392
+393
+394
+395
+396
+397
+398
+399
+400
+401
+402
+403
+404
+405
+406
+407
+408
+409
+410
+411
+412
+413
+414
+415
+416
+417
+418
+419
+420
+421
+422
+423
+424
+425
+426
+427
+428
+429
+430
+431
+432
+433
+434
+435
+436
+437
+438
+439
+440
+441
+442
+443
+444
+445
+446
+447
+448
+449
+450
+451
+452
+453
+454
+455
+456
+457
+458
+459
+460
+461
+462
+463
+464
+465
+466
+467
+468
+469
+470
+471
+472
+473
+474
+475
+476
+477
+478
+479
+480
+481
+482
+483
+484
+485
+486
+487
+488
+489
+490
+491
+492
+493
+494
+495
+496
+497
+498
+499
+500
+501
+502
+503
+504
+505
+506
+507
+508
+509
+510
+511
+512
+513
+514
+515
+516
+517
+518
+519
+520
+521
+522
+523
+524
+525
+526
+527
+528
+529
+530
+531
+532
+533
+534
+535
+536
+537
+538
+539
+540
+541
+542
+543
+544
+545
+546
+547
+548
+549
+550
+551
+552
+553
+554
+555
+556
+557
+558
+559
+560
+561
+562
+563
+564
+565
+566
+567
+568
+569
+570
+571
+572
+573
+574
+575
+576
+577
+578
+579
+580
+581
+582
+583
+584
+585
+586
+587
+588
+589
+590
+
┌─[loading] [/tmp/virgool] [0]  
+│
+└──〉wget -nd -E -p -k -H https://vrgl.ir/c3fVa
+--2022-01-18 06:41:03--  https://vrgl.ir/c3fVa
+Connecting to 192.168.45.250:8080... connected.
+Proxy request sent, awaiting response... 302 Found
+Location: https://virgool.io/@Novo/rsa-encryption-ao1poasym4cf [following]
+--2022-01-18 06:41:04--  https://virgool.io/@Novo/rsa-encryption-ao1poasym4cf
+Connecting to 192.168.45.250:8080... connected.
+Proxy request sent, awaiting response... 200 OK
+Length: unspecified [text/html]
+Saving to: ‘c3fVa.html’
+
+c3fVa.html                          [  <=>                                                  ]  61.30K   200KB/s    in 0.3s    
+
+2022-01-18 06:41:06 (200 KB/s) - ‘c3fVa.html’ saved [62773]
+
+Loading robots.txt; please ignore errors.
+--2022-01-18 06:41:06--  https://virgool.io/robots.txt
+Reusing existing connection to virgool.io:443.
+Proxy request sent, awaiting response... 200 OK
+Length: unspecified [document]
+Saving to: ‘robots.txt’
+
+robots.txt                          [ <=>                                                   ]     484  --.-KB/s    in 0s      
+
+2022-01-18 06:41:07 (85.7 MB/s) - ‘robots.txt’ saved [484]
+
+Loading robots.txt; please ignore errors.
+--2022-01-18 06:41:07--  https://www.googletagmanager.com/robots.txt
+Connecting to 192.168.45.250:8080... connected.
+Proxy request sent, awaiting response... 404 Not Found
+2022-01-18 06:41:08 ERROR 404: Not Found.
+
+Loading robots.txt; please ignore errors.
+--2022-01-18 06:41:08--  https://files.virgool.io/robots.txt
+Connecting to 192.168.45.250:8080... connected.
+Proxy request sent, awaiting response... 403 Forbidden
+2022-01-18 06:41:09 ERROR 403: Forbidden.
+
+Loading robots.txt; please ignore errors.
+--2022-01-18 06:41:09--  https://static.cloudflareinsights.com/robots.txt
+Connecting to 192.168.45.250:8080... connected.
+Proxy request sent, awaiting response... 522 
+2022-01-18 06:41:26 ERROR 522: (no description).
+
+--2022-01-18 06:41:26--  https://virgool.io/images/favicon.png?v=v2.6.15
+Connecting to 192.168.45.250:8080... connected.
+Proxy request sent, awaiting response... 200 OK
+Length: 9855 (9.6K) [image/png]
+Saving to: ‘favicon.png?v=v2.6.15’
+
+favicon.png?v=v2.6.15           100%[======================================================>]   9.62K  --.-KB/s    in 0.07s   
+
+2022-01-18 06:41:27 (130 KB/s) - ‘favicon.png?v=v2.6.15’ saved [9855/9855]
+
+--2022-01-18 06:41:27--  https://virgool.io/css/styles.css?v=v2.6.15
+Reusing existing connection to virgool.io:443.
+Proxy request sent, awaiting response... 200 OK
+Length: unspecified [text/css]
+Saving to: ‘styles.css?v=v2.6.15.css’
+
+styles.css?v=v2.6.15.css            [       <=>                                             ] 903.60K   592KB/s    in 1.5s    
+
+2022-01-18 06:41:28 (592 KB/s) - ‘styles.css?v=v2.6.15.css’ saved [925284]
+
+Loading robots.txt; please ignore errors.
+--2022-01-18 06:41:28--  https://virgool.test/robots.txt
+Connecting to 192.168.45.250:8080... connected.
+Proxy tunneling failed: Bad GatewayUnable to establish SSL connection.
+--2022-01-18 06:41:28--  https://www.googletagmanager.com/ns.html?id=GTM-5GS688K
+Connecting to 192.168.45.250:8080... connected.
+Proxy request sent, awaiting response... 200 OK
+Length: unspecified [text/html]
+Saving to: ‘ns.html?id=GTM-5GS688K.html’
+
+ns.html?id=GTM-5GS688K.html         [ <=>                                                   ]     266  --.-KB/s    in 0s      
+
+2022-01-18 06:41:29 (29.4 MB/s) - ‘ns.html?id=GTM-5GS688K.html’ saved [266]
+
+--2022-01-18 06:41:29--  https://files.virgool.io/upload/users/31434/avatar/1C4LLE.png?x-img=v1/resize,h_120,w_120/optimize,q_100
+Connecting to 192.168.45.250:8080... connected.
+Proxy request sent, awaiting response... 200 OK
+Length: 39194 (38K) [image/png]
+Saving to: ‘1C4LLE.png?x-img=v1%2Fresize,h_120,w_120%2Foptimize,q_100’
+
+1C4LLE.png?x-img=v1%2Fresize,h_ 100%[======================================================>]  38.28K   173KB/s    in 0.2s    
+
+2022-01-18 06:41:30 (173 KB/s) - ‘1C4LLE.png?x-img=v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved [39194/39194]
+
+--2022-01-18 06:41:30--  https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/qhokakomwyb5.png
+Reusing existing connection to files.virgool.io:443.
+Proxy request sent, awaiting response... 200 OK
+Length: 179870 (176K) [image/png]
+Saving to: ‘qhokakomwyb5.png’
+
+qhokakomwyb5.png                100%[======================================================>] 175.65K   567KB/s    in 0.3s    
+
+2022-01-18 06:41:31 (567 KB/s) - ‘qhokakomwyb5.png’ saved [179870/179870]
+
+--2022-01-18 06:41:31--  https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/v1xnwpnewfys.webp
+Reusing existing connection to files.virgool.io:443.
+Proxy request sent, awaiting response... 200 OK
+Length: 12770 (12K) [image/webp]
+Saving to: ‘v1xnwpnewfys.webp’
+
+v1xnwpnewfys.webp               100%[======================================================>]  12.47K  --.-KB/s    in 0.07s   
+
+2022-01-18 06:41:31 (180 KB/s) - ‘v1xnwpnewfys.webp’ saved [12770/12770]
+
+--2022-01-18 06:41:31--  https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/d28hpu2detkl.png
+Reusing existing connection to files.virgool.io:443.
+Proxy request sent, awaiting response... 200 OK
+Length: 92847 (91K) [image/png]
+Saving to: ‘d28hpu2detkl.png’
+
+d28hpu2detkl.png                100%[======================================================>]  90.67K  --.-KB/s    in 0.09s   
+
+2022-01-18 06:41:31 (969 KB/s) - ‘d28hpu2detkl.png’ saved [92847/92847]
+
+--2022-01-18 06:41:31--  https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/rhyykrc8azq0.png
+Reusing existing connection to files.virgool.io:443.
+Proxy request sent, awaiting response... 200 OK
+Length: 17539 (17K) [image/png]
+Saving to: ‘rhyykrc8azq0.png’
+
+rhyykrc8azq0.png                100%[======================================================>]  17.13K  --.-KB/s    in 0.007s  
+
+2022-01-18 06:41:32 (2.47 MB/s) - ‘rhyykrc8azq0.png’ saved [17539/17539]
+
+--2022-01-18 06:41:32--  https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/fjtc1ydzkuse.png
+Reusing existing connection to files.virgool.io:443.
+Proxy request sent, awaiting response... 200 OK
+Length: 108524 (106K) [image/png]
+Saving to: ‘fjtc1ydzkuse.png’
+
+fjtc1ydzkuse.png                100%[======================================================>] 105.98K  --.-KB/s    in 0.1s    
+
+2022-01-18 06:41:32 (1.06 MB/s) - ‘fjtc1ydzkuse.png’ saved [108524/108524]
+
+--2022-01-18 06:41:32--  https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/gfqhgyp18oic.jpeg
+Reusing existing connection to files.virgool.io:443.
+Proxy request sent, awaiting response... 200 OK
+Length: 132085 (129K) [image/jpeg]
+Saving to: ‘gfqhgyp18oic.jpeg’
+
+gfqhgyp18oic.jpeg               100%[======================================================>] 128.99K  --.-KB/s    in 0.1s    
+
+2022-01-18 06:41:32 (1.28 MB/s) - ‘gfqhgyp18oic.jpeg’ saved [132085/132085]
+
+--2022-01-18 06:41:32--  https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/me0mpjtdmyom.png
+Reusing existing connection to files.virgool.io:443.
+Proxy request sent, awaiting response... 200 OK
+Length: 113489 (111K) [image/png]
+Saving to: ‘me0mpjtdmyom.png’
+
+me0mpjtdmyom.png                100%[======================================================>] 110.83K  --.-KB/s    in 0.1s    
+
+2022-01-18 06:41:33 (814 KB/s) - ‘me0mpjtdmyom.png’ saved [113489/113489]
+
+--2022-01-18 06:41:33--  https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/of7krju6oqzk.png
+Reusing existing connection to files.virgool.io:443.
+Proxy request sent, awaiting response... 200 OK
+Length: 105746 (103K) [image/png]
+Saving to: ‘of7krju6oqzk.png’
+
+of7krju6oqzk.png                100%[======================================================>] 103.27K  --.-KB/s    in 0.08s   
+
+2022-01-18 06:41:33 (1.25 MB/s) - ‘of7krju6oqzk.png’ saved [105746/105746]
+
+--2022-01-18 06:41:33--  https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/oqwhflg4gbnq.png
+Reusing existing connection to files.virgool.io:443.
+Proxy request sent, awaiting response... 200 OK
+Length: 120994 (118K) [image/png]
+Saving to: ‘oqwhflg4gbnq.png’
+
+oqwhflg4gbnq.png                100%[======================================================>] 118.16K  --.-KB/s    in 0.1s    
+
+2022-01-18 06:41:33 (1.14 MB/s) - ‘oqwhflg4gbnq.png’ saved [120994/120994]
+
+--2022-01-18 06:41:33--  https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/taqjnfnuzxcx.png
+Reusing existing connection to files.virgool.io:443.
+Proxy request sent, awaiting response... 200 OK
+Length: 122678 (120K) [image/png]
+Saving to: ‘taqjnfnuzxcx.png’
+
+taqjnfnuzxcx.png                100%[======================================================>] 119.80K  --.-KB/s    in 0.06s   
+
+2022-01-18 06:41:34 (2.00 MB/s) - ‘taqjnfnuzxcx.png’ saved [122678/122678]
+
+--2022-01-18 06:41:34--  https://files.virgool.io/upload/users/63/posts/qwqrubplfaau/g8vai2incgna.jpeg?x-img=v1/resize,w_300/optimize,q_100
+Reusing existing connection to files.virgool.io:443.
+Proxy request sent, awaiting response... 200 OK
+Length: 88292 (86K) [image/jpeg]
+Saving to: ‘g8vai2incgna.jpeg?x-img=v1%2Fresize,w_300%2Foptimize,q_100’
+
+g8vai2incgna.jpeg?x-img=v1%2Fre 100%[======================================================>]  86.22K  --.-KB/s    in 0.1s    
+
+2022-01-18 06:41:34 (824 KB/s) - ‘g8vai2incgna.jpeg?x-img=v1%2Fresize,w_300%2Foptimize,q_100’ saved [88292/88292]
+
+--2022-01-18 06:41:34--  https://files.virgool.io/upload/users/63/avatar/o8jiNe.png?x-img=v1/resize,h_120,w_120/optimize,q_100
+Reusing existing connection to files.virgool.io:443.
+Proxy request sent, awaiting response... 200 OK
+Length: 32037 (31K) [image/png]
+Saving to: ‘o8jiNe.png?x-img=v1%2Fresize,h_120,w_120%2Foptimize,q_100’
+
+o8jiNe.png?x-img=v1%2Fresize,h_ 100%[======================================================>]  31.29K  --.-KB/s    in 0.06s   
+
+2022-01-18 06:41:34 (558 KB/s) - ‘o8jiNe.png?x-img=v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved [32037/32037]
+
+--2022-01-18 06:41:34--  https://files.virgool.io/upload/users/31434/posts/e3oydlcfkr5e/figl9y1c6otq.jpeg?x-img=v1/resize,w_300/optimize,q_100
+Reusing existing connection to files.virgool.io:443.
+Proxy request sent, awaiting response... 200 OK
+Length: 30356 (30K) [image/jpeg]
+Saving to: ‘figl9y1c6otq.jpeg?x-img=v1%2Fresize,w_300%2Foptimize,q_100’
+
+figl9y1c6otq.jpeg?x-img=v1%2Fre 100%[======================================================>]  29.64K  --.-KB/s    in 0.07s   
+
+2022-01-18 06:41:35 (401 KB/s) - ‘figl9y1c6otq.jpeg?x-img=v1%2Fresize,w_300%2Foptimize,q_100’ saved [30356/30356]
+
+--2022-01-18 06:41:35--  https://files.virgool.io/upload/users/316150/posts/r8rhw88uh1xh/cs1ugyelv3zw.png?x-img=v1/resize,w_300/optimize,q_100
+Reusing existing connection to files.virgool.io:443.
+Proxy request sent, awaiting response... 200 OK
+Length: 34459 (34K) [image/png]
+Saving to: ‘cs1ugyelv3zw.png?x-img=v1%2Fresize,w_300%2Foptimize,q_100’
+
+cs1ugyelv3zw.png?x-img=v1%2Fres 100%[======================================================>]  33.65K  --.-KB/s    in 0.08s   
+
+2022-01-18 06:41:35 (399 KB/s) - ‘cs1ugyelv3zw.png?x-img=v1%2Fresize,w_300%2Foptimize,q_100’ saved [34459/34459]
+
+--2022-01-18 06:41:35--  https://files.virgool.io/upload/users/316150/avatar/8sz7Rs.jpeg?x-img=v1/resize,h_120,w_120/optimize,q_100
+Reusing existing connection to files.virgool.io:443.
+Proxy request sent, awaiting response... 200 OK
+Length: 14764 (14K) [image/jpeg]
+Saving to: ‘8sz7Rs.jpeg?x-img=v1%2Fresize,h_120,w_120%2Foptimize,q_100’
+
+8sz7Rs.jpeg?x-img=v1%2Fresize,h 100%[======================================================>]  14.42K  --.-KB/s    in 0.007s  
+
+2022-01-18 06:41:35 (2.11 MB/s) - ‘8sz7Rs.jpeg?x-img=v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved [14764/14764]
+
+--2022-01-18 06:41:35--  https://virgool.io/js/commons.js?v=v2.6.15
+Connecting to 192.168.45.250:8080... connected.
+Proxy request sent, awaiting response... 200 OK
+Length: unspecified [application/javascript]
+Saving to: ‘commons.js?v=v2.6.15’
+
+commons.js?v=v2.6.15                [           <=>                                         ] 997.55K   337KB/s    in 3.0s    
+
+2022-01-18 06:41:39 (337 KB/s) - ‘commons.js?v=v2.6.15’ saved [1021492]
+
+--2022-01-18 06:41:39--  https://virgool.io/js/main.js?v=v2.6.15
+Reusing existing connection to virgool.io:443.
+Proxy request sent, awaiting response... 200 OK
+Length: unspecified [application/javascript]
+Saving to: ‘main.js?v=v2.6.15’
+
+main.js?v=v2.6.15                   [         <=>                                           ]   1.21M   580KB/s    in 2.1s    
+
+2022-01-18 06:41:41 (580 KB/s) - ‘main.js?v=v2.6.15’ saved [1267632]
+
+--2022-01-18 06:41:41--  https://static.cloudflareinsights.com/beacon.min.js/v652eace1692a40cfa3763df669d7439c1639079717194
+Connecting to 192.168.45.250:8080... connected.
+Proxy request sent, awaiting response... 200 OK
+Length: 13970 (14K) [text/javascript]
+Saving to: ‘v652eace1692a40cfa3763df669d7439c1639079717194’
+
+v652eace1692a40cfa3763df669d743 100%[======================================================>]  13.64K  --.-KB/s    in 0.02s   
+
+2022-01-18 06:41:42 (600 KB/s) - ‘v652eace1692a40cfa3763df669d7439c1639079717194’ saved [13970/13970]
+
+--2022-01-18 06:41:42--  https://virgool.io/fonts/vazir/Vazir-Thin.ttf
+Connecting to 192.168.45.250:8080... connected.
+Proxy request sent, awaiting response... 200 OK
+Length: 98924 (97K) [application/octet-stream]
+Saving to: ‘Vazir-Thin.ttf’
+
+Vazir-Thin.ttf                  100%[======================================================>]  96.61K   140KB/s    in 0.7s    
+
+2022-01-18 06:41:43 (140 KB/s) - ‘Vazir-Thin.ttf’ saved [98924/98924]
+
+--2022-01-18 06:41:43--  https://virgool.io/fonts/vazir/Vazir-Thin.eot?
+Reusing existing connection to virgool.io:443.
+Proxy request sent, awaiting response... 200 OK
+Length: unspecified [application/vnd.ms-fontobject]
+Saving to: ‘Vazir-Thin.eot?’
+
+Vazir-Thin.eot?                     [  <=>                                                  ]  96.80K   276KB/s    in 0.4s    
+
+2022-01-18 06:41:44 (276 KB/s) - ‘Vazir-Thin.eot?’ saved [99120]
+
+--2022-01-18 06:41:44--  https://virgool.io/fonts/vazir/Vazir-Thin.woff
+Reusing existing connection to virgool.io:443.
+Proxy request sent, awaiting response... 200 OK
+Length: 54068 (53K) [font/woff]
+Saving to: ‘Vazir-Thin.woff’
+
+Vazir-Thin.woff                 100%[======================================================>]  52.80K  --.-KB/s    in 0.07s   
+
+2022-01-18 06:41:45 (770 KB/s) - ‘Vazir-Thin.woff’ saved [54068/54068]
+
+--2022-01-18 06:41:45--  https://virgool.io/fonts/vazir/Vazir-Thin.woff2
+Reusing existing connection to virgool.io:443.
+Proxy request sent, awaiting response... 200 OK
+Length: 43000 (42K) [font/woff2]
+Saving to: ‘Vazir-Thin.woff2’
+
+Vazir-Thin.woff2                100%[======================================================>]  41.99K  --.-KB/s    in 0.006s  
+
+2022-01-18 06:41:46 (6.59 MB/s) - ‘Vazir-Thin.woff2’ saved [43000/43000]
+
+--2022-01-18 06:41:46--  https://virgool.io/fonts/vazir/Vazir-Light.ttf
+Reusing existing connection to virgool.io:443.
+Proxy request sent, awaiting response... 200 OK
+Length: 105360 (103K) [application/octet-stream]
+Saving to: ‘Vazir-Light.ttf’
+
+Vazir-Light.ttf                 100%[======================================================>] 102.89K   478KB/s    in 0.2s    
+
+2022-01-18 06:41:46 (478 KB/s) - ‘Vazir-Light.ttf’ saved [105360/105360]
+
+--2022-01-18 06:41:46--  https://virgool.io/fonts/vazir/Vazir-Light.eot?
+Reusing existing connection to virgool.io:443.
+Proxy request sent, awaiting response... 200 OK
+Length: unspecified [application/vnd.ms-fontobject]
+Saving to: ‘Vazir-Light.eot?’
+
+Vazir-Light.eot?                    [  <=>                                                  ] 103.09K   470KB/s    in 0.2s    
+
+2022-01-18 06:41:47 (470 KB/s) - ‘Vazir-Light.eot?’ saved [105562]
+
+--2022-01-18 06:41:47--  https://virgool.io/fonts/vazir/Vazir-Light.woff
+Reusing existing connection to virgool.io:443.
+Proxy request sent, awaiting response... 200 OK
+Length: 59688 (58K) [font/woff]
+Saving to: ‘Vazir-Light.woff’
+
+Vazir-Light.woff                100%[======================================================>]  58.29K  --.-KB/s    in 0.08s   
+
+2022-01-18 06:41:48 (758 KB/s) - ‘Vazir-Light.woff’ saved [59688/59688]
+
+--2022-01-18 06:41:48--  https://virgool.io/fonts/vazir/Vazir-Light.woff2
+Reusing existing connection to virgool.io:443.
+Proxy request sent, awaiting response... 200 OK
+Length: 48168 (47K) [font/woff2]
+Saving to: ‘Vazir-Light.woff2’
+
+Vazir-Light.woff2               100%[======================================================>]  47.04K  --.-KB/s    in 0.08s   
+
+2022-01-18 06:41:48 (570 KB/s) - ‘Vazir-Light.woff2’ saved [48168/48168]
+
+--2022-01-18 06:41:48--  https://virgool.io/fonts/vazir/Vazir-Regular.ttf
+Reusing existing connection to virgool.io:443.
+Proxy request sent, awaiting response... 200 OK
+Length: 98376 (96K) [application/octet-stream]
+Saving to: ‘Vazir-Regular.ttf’
+
+Vazir-Regular.ttf               100%[======================================================>]  96.07K   435KB/s    in 0.2s    
+
+2022-01-18 06:41:49 (435 KB/s) - ‘Vazir-Regular.ttf’ saved [98376/98376]
+
+--2022-01-18 06:41:49--  https://virgool.io/fonts/vazir/Vazir-Regular.eot?
+Reusing existing connection to virgool.io:443.
+Proxy request sent, awaiting response... 200 OK
+Length: unspecified [application/vnd.ms-fontobject]
+Saving to: ‘Vazir-Regular.eot?’
+
+Vazir-Regular.eot?                  [  <=>                                                  ]  96.26K   285KB/s    in 0.3s    
+
+2022-01-18 06:41:50 (285 KB/s) - ‘Vazir-Regular.eot?’ saved [98574]
+
+--2022-01-18 06:41:50--  https://virgool.io/fonts/vazir/Vazir-Regular.woff
+Reusing existing connection to virgool.io:443.
+Proxy request sent, awaiting response... 200 OK
+Length: 53744 (52K) [font/woff]
+Saving to: ‘Vazir-Regular.woff’
+
+Vazir-Regular.woff              100%[======================================================>]  52.48K  --.-KB/s    in 0.05s   
+
+2022-01-18 06:41:51 (1.10 MB/s) - ‘Vazir-Regular.woff’ saved [53744/53744]
+
+--2022-01-18 06:41:51--  https://virgool.io/fonts/vazir/Vazir-Regular.woff2
+Reusing existing connection to virgool.io:443.
+Proxy request sent, awaiting response... 200 OK
+Length: 42744 (42K) [font/woff2]
+Saving to: ‘Vazir-Regular.woff2’
+
+Vazir-Regular.woff2             100%[======================================================>]  41.74K  --.-KB/s    in 0.1s    
+
+2022-01-18 06:41:51 (412 KB/s) - ‘Vazir-Regular.woff2’ saved [42744/42744]
+
+--2022-01-18 06:41:51--  https://virgool.io/fonts/vazir/Vazir-Medium.ttf
+Reusing existing connection to virgool.io:443.
+Proxy request sent, awaiting response... 200 OK
+Length: 98892 (97K) [application/octet-stream]
+Saving to: ‘Vazir-Medium.ttf’
+
+Vazir-Medium.ttf                100%[======================================================>]  96.57K   606KB/s    in 0.2s    
+
+2022-01-18 06:41:52 (606 KB/s) - ‘Vazir-Medium.ttf’ saved [98892/98892]
+
+--2022-01-18 06:41:52--  https://virgool.io/fonts/vazir/Vazir-Medium.eot?
+Reusing existing connection to virgool.io:443.
+Proxy request sent, awaiting response... 200 OK
+Length: unspecified [application/vnd.ms-fontobject]
+Saving to: ‘Vazir-Medium.eot?’
+
+Vazir-Medium.eot?                   [  <=>                                                  ]  96.78K   347KB/s    in 0.3s    
+
+2022-01-18 06:41:53 (347 KB/s) - ‘Vazir-Medium.eot?’ saved [99100]
+
+--2022-01-18 06:41:53--  https://virgool.io/fonts/vazir/Vazir-Medium.woff
+Reusing existing connection to virgool.io:443.
+Proxy request sent, awaiting response... 200 OK
+Length: 54120 (53K) [font/woff]
+Saving to: ‘Vazir-Medium.woff’
+
+Vazir-Medium.woff               100%[======================================================>]  52.85K   125KB/s    in 0.4s    
+
+2022-01-18 06:41:54 (125 KB/s) - ‘Vazir-Medium.woff’ saved [54120/54120]
+
+--2022-01-18 06:41:54--  https://virgool.io/fonts/vazir/Vazir-Medium.woff2
+Reusing existing connection to virgool.io:443.
+Proxy request sent, awaiting response... 200 OK
+Length: 43152 (42K) [font/woff2]
+Saving to: ‘Vazir-Medium.woff2’
+
+Vazir-Medium.woff2              100%[======================================================>]  42.14K  --.-KB/s    in 0.08s   
+
+2022-01-18 06:41:54 (541 KB/s) - ‘Vazir-Medium.woff2’ saved [43152/43152]
+
+--2022-01-18 06:41:54--  https://virgool.io/fonts/vazir/Vazir-Bold.ttf
+Reusing existing connection to virgool.io:443.
+Proxy request sent, awaiting response... 200 OK
+Length: 99840 (98K) [application/octet-stream]
+Saving to: ‘Vazir-Bold.ttf’
+
+Vazir-Bold.ttf                  100%[======================================================>]  97.50K  --.-KB/s    in 0.04s   
+
+2022-01-18 06:41:55 (2.61 MB/s) - ‘Vazir-Bold.ttf’ saved [99840/99840]
+
+--2022-01-18 06:41:55--  https://virgool.io/fonts/vazir/Vazir-Bold.eot?
+Reusing existing connection to virgool.io:443.
+Proxy request sent, awaiting response... 200 OK
+Length: unspecified [application/vnd.ms-fontobject]
+Saving to: ‘Vazir-Bold.eot?’
+
+Vazir-Bold.eot?                     [ <=>                                                   ]  97.68K   560KB/s    in 0.2s    
+
+2022-01-18 06:41:56 (560 KB/s) - ‘Vazir-Bold.eot?’ saved [100026]
+
+--2022-01-18 06:41:56--  https://virgool.io/fonts/vazir/Vazir-Bold.woff
+Reusing existing connection to virgool.io:443.
+Proxy request sent, awaiting response... 200 OK
+Length: 54560 (53K) [font/woff]
+Saving to: ‘Vazir-Bold.woff’
+
+Vazir-Bold.woff                 100%[======================================================>]  53.28K  --.-KB/s    in 0.06s   
+
+2022-01-18 06:41:56 (917 KB/s) - ‘Vazir-Bold.woff’ saved [54560/54560]
+
+--2022-01-18 06:41:56--  https://virgool.io/fonts/vazir/Vazir-Bold.woff2
+Reusing existing connection to virgool.io:443.
+Proxy request sent, awaiting response... 200 OK
+Length: 43604 (43K) [font/woff2]
+Saving to: ‘Vazir-Bold.woff2’
+
+Vazir-Bold.woff2                100%[======================================================>]  42.58K  --.-KB/s    in 0.06s   
+
+2022-01-18 06:41:57 (657 KB/s) - ‘Vazir-Bold.woff2’ saved [43604/43604]
+
+--2022-01-18 06:41:57--  https://virgool.io/fonts/vazir/Vazir-Black.ttf
+Reusing existing connection to virgool.io:443.
+Proxy request sent, awaiting response... 200 OK
+Length: 99772 (97K) [application/octet-stream]
+Saving to: ‘Vazir-Black.ttf’
+
+Vazir-Black.ttf                 100%[======================================================>]  97.43K  --.-KB/s    in 0.04s   
+
+2022-01-18 06:41:57 (2.18 MB/s) - ‘Vazir-Black.ttf’ saved [99772/99772]
+
+--2022-01-18 06:41:57--  https://virgool.io/fonts/vazir/Vazir-Black.eot?
+Reusing existing connection to virgool.io:443.
+Proxy request sent, awaiting response... 200 OK
+Length: unspecified [application/vnd.ms-fontobject]
+Saving to: ‘Vazir-Black.eot?’
+
+Vazir-Black.eot?                    [  <=>                                                  ]  97.63K   478KB/s    in 0.2s    
+
+2022-01-18 06:41:58 (478 KB/s) - ‘Vazir-Black.eot?’ saved [99974]
+
+--2022-01-18 06:41:58--  https://virgool.io/fonts/vazir/Vazir-Black.woff
+Reusing existing connection to virgool.io:443.
+Proxy request sent, awaiting response... 200 OK
+Length: 54652 (53K) [font/woff]
+Saving to: ‘Vazir-Black.woff’
+
+Vazir-Black.woff                100%[======================================================>]  53.37K  --.-KB/s    in 0.08s   
+
+2022-01-18 06:41:59 (691 KB/s) - ‘Vazir-Black.woff’ saved [54652/54652]
+
+--2022-01-18 06:41:59--  https://virgool.io/fonts/vazir/Vazir-Black.woff2
+Reusing existing connection to virgool.io:443.
+Proxy request sent, awaiting response... 200 OK
+Length: 43332 (42K) [font/woff2]
+Saving to: ‘Vazir-Black.woff2’
+
+Vazir-Black.woff2               100%[======================================================>]  42.32K  --.-KB/s    in 0.08s   
+
+2022-01-18 06:42:00 (510 KB/s) - ‘Vazir-Black.woff2’ saved [43332/43332]
+
+--2022-01-18 06:42:00--  https://virgool.io/fonts/fontawesome/fa-solid-900.ttf
+Reusing existing connection to virgool.io:443.
+Proxy request sent, awaiting response... 200 OK
+Length: 202616 (198K) [application/octet-stream]
+Saving to: ‘fa-solid-900.ttf’
+
+fa-solid-900.ttf                100%[======================================================>] 197.87K   501KB/s    in 0.4s    
+
+2022-01-18 06:42:01 (501 KB/s) - ‘fa-solid-900.ttf’ saved [202616/202616]
+
+--2022-01-18 06:42:01--  https://virgool.io/fonts/fontawesome/fa-solid-900.eot?
+Reusing existing connection to virgool.io:443.
+Proxy request sent, awaiting response... 404 Not Found
+2022-01-18 06:42:01 ERROR 404: Not Found.
+
+--2022-01-18 06:42:01--  https://virgool.io/fonts/fontawesome/fa-solid-900.woff
+Reusing existing connection to virgool.io:443.
+Proxy request sent, awaiting response... 200 OK
+Length: 103300 (101K) [font/woff]
+Saving to: ‘fa-solid-900.woff’
+
+fa-solid-900.woff               100%[======================================================>] 100.88K   358KB/s    in 0.3s    
+
+2022-01-18 06:42:02 (358 KB/s) - ‘fa-solid-900.woff’ saved [103300/103300]
+
+--2022-01-18 06:42:02--  https://virgool.io/fonts/fontawesome/fa-solid-900.woff2
+Reusing existing connection to virgool.io:443.
+Proxy request sent, awaiting response... 200 OK
+Length: 79444 (78K) [font/woff2]
+Saving to: ‘fa-solid-900.woff2’
+
+fa-solid-900.woff2              100%[======================================================>]  77.58K   394KB/s    in 0.2s    
+
+2022-01-18 06:42:03 (394 KB/s) - ‘fa-solid-900.woff2’ saved [79444/79444]
+
+--2022-01-18 06:42:03--  https://virgool.io/images/icons/plus.svg
+Reusing existing connection to virgool.io:443.
+Proxy request sent, awaiting response... 200 OK
+Length: unspecified [image/svg+xml]
+Saving to: ‘plus.svg’
+
+plus.svg                            [ <=>                                                   ]     942  --.-KB/s    in 0.002s  
+
+2022-01-18 06:42:03 (383 KB/s) - ‘plus.svg’ saved [942]
+
+--2022-01-18 06:42:03--  https://virgool.io/images/icons/tick.svg
+Reusing existing connection to virgool.io:443.
+Proxy request sent, awaiting response... 200 OK
+Length: unspecified [image/svg+xml]
+Saving to: ‘tick.svg’
+
+tick.svg                            [ <=>                                                   ]     942  --.-KB/s    in 0s      
+
+2022-01-18 06:42:04 (89.8 MB/s) - ‘tick.svg’ saved [942]
+
+--2022-01-18 06:42:04--  https://virgool.io/images/typewriter.png
+Reusing existing connection to virgool.io:443.
+Proxy request sent, awaiting response... 200 OK
+Length: 172558 (169K) [image/png]
+Saving to: ‘typewriter.png’
+
+typewriter.png                  100%[======================================================>] 168.51K   349KB/s    in 0.5s    
+
+2022-01-18 06:42:05 (349 KB/s) - ‘typewriter.png’ saved [172558/172558]
+
+--2022-01-18 06:42:05--  https://virgool.test/images/download-audio.png
+Connecting to 192.168.45.250:8080... connected.
+Proxy tunneling failed: Bad GatewayUnable to establish SSL connection.
+--2022-01-18 06:42:05--  https://virgool.test/images/download-ebook.png
+Connecting to 192.168.45.250:8080... connected.
+Proxy tunneling failed: Bad GatewayUnable to establish SSL connection.
+FINISHED --2022-01-18 06:42:05--
+Total wall clock time: 1m 2s
+Downloaded: 54 files, 6.6M in 14s (479 KB/s)
+Converting links in ns.html?id=GTM-5GS688K.html... nothing to do.
+Converting links in c3fVa.html... 38.
+31-7
+Converting links in styles.css?v=v2.6.15.css... 35.
+34-1
+Converted links in 3 files in 0.06 seconds.
+
comments powered by Disqus
قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git "a/docs/p/\330\247\331\206\331\210\330\247\330\271-\330\257\330\247\330\257\331\207-\331\207\330\247\333\214-\330\247\331\210\331\204\333\214\331\207-\330\257\330\261-rust/index.html" "b/docs/p/\330\247\331\206\331\210\330\247\330\271-\330\257\330\247\330\257\331\207-\331\207\330\247\333\214-\330\247\331\210\331\204\333\214\331\207-\330\257\330\261-rust/index.html" index 6452fe7..fc35292 100644 --- "a/docs/p/\330\247\331\206\331\210\330\247\330\271-\330\257\330\247\330\257\331\207-\331\207\330\247\333\214-\330\247\331\210\331\204\333\214\331\207-\330\257\330\261-rust/index.html" +++ "b/docs/p/\330\247\331\206\331\210\330\247\330\271-\330\257\330\247\330\257\331\207-\331\207\330\247\333\214-\330\247\331\210\331\204\333\214\331\207-\330\257\330\261-rust/index.html" @@ -1,823 +1,73 @@ - - - - -انواع داده های اولیه در rust - - - - - - - - - - - - - - - - -
- - - - -
-
-
-
- - - Featured image of post انواع داده های اولیه در rust - - -
- - -
- - - - -
-

- انواع داده های اولیه در rust -

- - -
- - - - - -
- -
- - - - - - - - - - -
- - - -
- - - - - - - - - -
- -
- - - -
- -
- -
- - -

هر زبان برنامه نویسی انواعی از داده ها رو داره، مثلا +انواع داده های اولیه در rust +

Featured image of post انواع داده های اولیه در rust

انواع داده های اولیه در rust

+
+

هر زبان برنامه نویسی انواعی از داده ها رو داره، مثلا داده های عددی، کاراکتر و یا رشته‌ای از کاراکتر ها. زبان rust هم انواع داده‌ای زیادی رو پشتیبانی می‌کنه و خب حتی اگر جایی کمبودی حس کردین، می‌توانید ساختار داده‌ی خودتان -را بسازید.

-
-

‌ انواع داده ترجمه‌ی کلمه +را بسازید.

‌ انواع داده ترجمه‌ی کلمه data type هست. و خب برای من استفاده از کلمه انگلیسی‌اش خیلی راحت -تره.

-
-

نوع داده عدد صحیح

-

همینطور که می‌دونید عدد صحیح از منفی بی‌نهایت تا مثبت -بی‌نهایت است(بدون هیچ علامت کسر، رادیکال و بدون اعشار).

-

این نوع داده در +تره.

نوع داده عدد صحیح

همینطور که می‌دونید عدد صحیح از منفی بی‌نهایت تا مثبت +بی‌نهایت است(بدون هیچ علامت کسر، رادیکال و بدون اعشار).

این نوع داده در rust -به این صورت است

-
- -
-
1
-2
-
-
variable_name: i32 = -2147483648;
-variable_name: i32 = 2147483647;
-
-
-

به این باید دقت کنیم که هر متغییری مقداری فضا نیاز دارد +به این صورت است

1
+2
+
variable_name: i32 = -2147483648;
+variable_name: i32 = 2147483647;
+

به این باید دقت کنیم که هر متغییری مقداری فضا نیاز دارد برای مثال این نوع داده که داده اصلی است به پنج صورت پیاده سازی می‌شود i8, i16, i32, i64, i128 اعداد پس از کاراکتر i نشان دهنده تعداد بیت هایی است که این نوع متغییر می‌تواند -اشغال کند. مثلا i128 می‌تواند به اندازه 128 بیت فضا اشغال کند.

-

نوع داده عدد اعشاری

-

این نوع داده هم مثل نوع عدد صحیح است اما با این تفاوت که اعداد اعشاری را درون خودش ذخیره می‌کند

-
- -
-
1
-2
-
-
variable_name: f32 = 3.14;
-variable_name: f32 = -3.14;
-
-
-

نوع داده کاراکتر

-

کاراکتر نوع داده‌ای است که فقط یک مقدار از حروف الفبا یا عدد و یا سیمبول را می‌تواند درون +اشغال کند. مثلا i128 می‌تواند به اندازه 128 بیت فضا اشغال کند.

نوع داده عدد اعشاری

این نوع داده هم مثل نوع عدد صحیح است اما با این تفاوت که اعداد اعشاری را درون خودش ذخیره می‌کند

1
+2
+
variable_name: f32 = 3.14;
+variable_name: f32 = -3.14;
+

نوع داده کاراکتر

کاراکتر نوع داده‌ای است که فقط یک مقدار از حروف الفبا یا عدد و یا سیمبول را می‌تواند درون خودش ذخیره کند. پس باید به اندازه 8 بیت فضا اشغال کند اما به دلیل اینکه کاراکتر های زبان های دیگر را هم بتواند ذخیره کند از انکدینگ(encoding) utf-16 -استفاده می‌کند که 16 بیت فضا اشغال می‌کند.

-
- -
-
1
-
-
let a: char = 'a';
-
-
-

داده string(رشته‌ای از کاراکتر ها)

-

String +استفاده می‌کند که 16 بیت فضا اشغال می‌کند.

1
+
let a: char = 'a';
+

داده string(رشته‌ای از کاراکتر ها)

String نوع داده‌ای است که درواقع رشته‌ای از کاراکتر ها را درون یک نوع vector -ذخیره می‌کند.

-
-

این نکته را هم بگم که +ذخیره می‌کند.

این نکته را هم بگم که encoding رشته UTF-8 -است. به این معنی که هر نوع کاراکتری را می‌تواند داخل خودش ذخیره کند حتی ایموجی.

-
-
- -
-
1
-
-
let heart: String = String::from("♥");
-
-
-

نوع داده منطقی

-

نوع داده منطقی به اسم +است. به این معنی که هر نوع کاراکتری را می‌تواند داخل خودش ذخیره کند حتی ایموجی.

1
+
let heart: String = String::from("♥");
+

نوع داده منطقی

نوع داده منطقی به اسم boolian است. این نوع مقدار هایt true و یا false -را ذخیره می‌کند.

-
- -
-
1
-
-
let is_good: bool = true;
-
-
-

نوع داده ترکیبی

-

این نوع داده ها را توی پست های مجزا توضیح می‌دم.

-
    -
  • tuple
  • -
  • array
  • -
  • list
  • -
  • vector
  • -
- -
- - - - - - -
- - - - - - - - - - -
-
- - -comments powered by Disqus -
- - - - - - - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - - - - -
-
- - - - - +را ذخیره می‌کند.

1
+
let is_good: bool = true;
+

نوع داده ترکیبی

این نوع داده ها را توی پست های مجزا توضیح می‌دم.

  • tuple
  • array
  • list
  • vector
comments powered by Disqus
قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git "a/docs/p/\330\252\331\201\330\247\331\210\330\252-staticlink-\331\210-dynamiclink-\330\257\330\261-\330\262\330\250\330\247\331\206-\331\207\330\247\333\214-\330\250\330\261\331\206\330\247\331\205\331\207-\331\206\331\210\333\214\330\263\333\214/index.html" "b/docs/p/\330\252\331\201\330\247\331\210\330\252-staticlink-\331\210-dynamiclink-\330\257\330\261-\330\262\330\250\330\247\331\206-\331\207\330\247\333\214-\330\250\330\261\331\206\330\247\331\205\331\207-\331\206\331\210\333\214\330\263\333\214/index.html" index 921f2fd..967e1f2 100644 --- "a/docs/p/\330\252\331\201\330\247\331\210\330\252-staticlink-\331\210-dynamiclink-\330\257\330\261-\330\262\330\250\330\247\331\206-\331\207\330\247\333\214-\330\250\330\261\331\206\330\247\331\205\331\207-\331\206\331\210\333\214\330\263\333\214/index.html" +++ "b/docs/p/\330\252\331\201\330\247\331\210\330\252-staticlink-\331\210-dynamiclink-\330\257\330\261-\330\262\330\250\330\247\331\206-\331\207\330\247\333\214-\330\250\330\261\331\206\330\247\331\205\331\207-\331\206\331\210\333\214\330\263\333\214/index.html" @@ -1,740 +1,54 @@ - - - - -تفاوت Staticlink و Dynamiclink در زبان های برنامه نویسی - - - - - - - - - - - - - - - - -
- - - -
-
-
-
- - - Featured image of post تفاوت Staticlink و Dynamiclink در زبان های برنامه نویسی - - -
- - -
- - - - -
-

- تفاوت Staticlink و Dynamiclink در زبان های برنامه نویسی -

- - -
- - - - - -
- -
- - - - - - - - - - -
- - - -
- - - - - - - - - -
- -
- - - -
- -
- -
- - -

یکسری مفاهیمی در برنامه نویسی داریم که من تصمیم داریم درباره آنها توی چند پست توضیح بدم، اولین مورد +تفاوت Staticlink و Dynamiclink در زبان های برنامه نویسی +

Featured image of post تفاوت Staticlink و Dynamiclink در زبان های برنامه نویسی

تفاوت Staticlink و Dynamiclink در زبان های برنامه نویسی

+
+

یکسری مفاهیمی در برنامه نویسی داریم که من تصمیم داریم درباره آنها توی چند پست توضیح بدم، اولین مورد که شامل این پست می‌شه تفاوت static linking و dynamic linking در زبان های برامه نویسی هست‌ش. مفاهیم دیگه‌ای که داخل پست های بعدی می‌نویسم چیز هایی مثل -static type, dynamic type, compiler language, interpreter language و … -خواهد بود.

-
-
    -
  • -

    دو مفهموم +static type, dynamic type, compiler language, interpreter language و … +خواهد بود.


    • دو مفهموم static linking و dynamic linking -چه هستند؟

      -
    • -
    • -

      هر کدام چه مشکلات و فوایدی دارند؟

      -
    • -
    -
    -

    ما در نوشتن برنامه ها معمولا از لایبراری های زیادی استفاده می‌کنیم، حتی یک برانامه ساده. +چه هستند؟

  • هر کدام چه مشکلات و فوایدی دارند؟


ما در نوشتن برنامه ها معمولا از لایبراری های زیادی استفاده می‌کنیم، حتی یک برانامه ساده. سیستم ما برای اجرای یک برنامه، کد برنامه رو به ماشین-کد تبدیل می‌کنه و بعد خط به خط -اون ها رو اجرا می‌کنه.

-

اصطلاح +اون ها رو اجرا می‌کنه.

اصطلاح linking به روندی گفته می‌شود که کد شما به اشیاء(کد و داده) های خارجی برای استفاده از انها اشاره کند. معمولا دو روش برای اینکار وجود دارد، static linking(لینک کردن ایستا), -dynamic linking(لینک کردن پویا).

-
-

static linking -زمانی اتفاق می‌افتد که کامپایلر منابع خارجی(لایبراری) ها را داخل فایل اجرایی برنامه کپی کند

-
-

در واقع در این روش برنامه شما تمامی لایبراری هایی که شما در کد استفاده کردین رو +dynamic linking(لینک کردن پویا).

static linking +زمانی اتفاق می‌افتد که کامپایلر منابع خارجی(لایبراری) ها را داخل فایل اجرایی برنامه کپی کند

در واقع در این روش برنامه شما تمامی لایبراری هایی که شما در کد استفاده کردین رو با کد شما درون یک فایل اجرایی کامپایل می‌کند، زمانی که برنامه اجرا شود، تمامی لایبراری های -مورد نیازش وارد مموری کامپیوتر می‌شود.

-

فایده هایی که می‌تونم بهش اشاره کنم

-
    -
  • توی منتشر کردن برنامه به دیگران، مشکل نصب کامپوننت ها رو دیگه ندارن، و به راحتی اجرا می‌کنند.
  • -
  • ممکنه برنامه اندکی سریع تر اجرا بشه
  • -
-

این روش واقعا خوبیه ولی خب معایب خودش رو هم داره

-
    -
  • فایل اجرایی حجم زیادی‌تری نسب‌ت به لینک کردن پویا داره
  • -
  • وقتی برنامه اجرا بشه، بخاطر اینکه همه لایبراری و داده های مورد نیاز داخل همان فایل اجرایی بود، برنامه رم زیادی استفاده می‌کنه.
  • -
  • اگر لایبراری های مورد استفاده تغییر کنند، برنامه نویس باید مجدد برنامه رو کامپایل و منتشر کنه
  • -
-
-

dynamic linking +مورد نیازش وارد مموری کامپیوتر می‌شود.

فایده هایی که می‌تونم بهش اشاره کنم

  • توی منتشر کردن برنامه به دیگران، مشکل نصب کامپوننت ها رو دیگه ندارن، و به راحتی اجرا می‌کنند.
  • ممکنه برنامه اندکی سریع تر اجرا بشه

این روش واقعا خوبیه ولی خب معایب خودش رو هم داره

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

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

-
-

در این مواقع لایبراری ها باید در سیستم عامل از قبل نصب شده باشند، و یا در موقغ نصب برنامه جدید +و اینکه فقط در این زمان است که لایبراری مورد نیاز وارد مموری می‌شود.

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

-

این روش هم مزیت های خودش رو داره، مثلا:

-
    -
  • حجم فایل های اجرایی خیلی کمتری داره
  • -
  • تا زمانی که نیاز به لایبراری نشده باشد(اگر در کد نویسی رعایت شده باشه) لایبراری ها رم اشغال نمی‌کنند.
  • -
-

مهمترین عیبی که می‌تونه این روش داشته باشه اینه که -حذف شدن و یا خراب شدن لایبراری باعث می‌شه برنامه دیگه اجرا نشه.

-
-
-

این مطلب خلاصه‌ای کلی بود برای آشنایی با این دو مفهموم +کامپایل و منتشر کند، فقط لایبراری مورد نیاز اپدیت می‌شود.

این روش هم مزیت های خودش رو داره، مثلا:

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

مهمترین عیبی که می‌تونه این روش داشته باشه اینه که +حذف شدن و یا خراب شدن لایبراری باعث می‌شه برنامه دیگه اجرا نشه.


این مطلب خلاصه‌ای کلی بود برای آشنایی با این دو مفهموم برای مطالعه بیشتر این -لینک -می‌تونه مفید باشه.

-
-
- -
- - - - - - -
- - - - - - - - - - -
-
- - -comments powered by Disqus -
- - - - - - - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - - - - -
-
- - - - - +لینک +می‌تونه مفید باشه.


comments powered by Disqus
قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git "a/docs/p/\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263-\332\206\333\214\330\263\330\252-tty/index.html" "b/docs/p/\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263-\332\206\333\214\330\263\330\252-tty/index.html" index ad52863..8822ccb 100644 --- "a/docs/p/\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263-\332\206\333\214\330\263\330\252-tty/index.html" +++ "b/docs/p/\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263-\332\206\333\214\330\263\330\252-tty/index.html" @@ -1,467 +1,39 @@ - - - - - در لینوکس چیست؟ TTY - - - - - - - - - - - - - - - - -
- - - - -
-
-
-
- - - Featured image of post  در لینوکس چیست؟ TTY - - -
- - -
- - - - -
-

- در لینوکس چیست؟ TTY -

- - -
- - - - - -
- -
- - - - - - - - - - -
- - - -
- - - - - - - - - -
- -
- - - -
- -
- -
- - -
-

شما باید درباره اصطلاح +در لینوکس چیست؟ TTY

Featured image of post  در لینوکس چیست؟ TTY

در لینوکس چیست؟ TTY

+
+

شما باید درباره اصطلاح tty زمانی که به لینوکس و یونیکس آمد، شنیده باشید. اما tty -چیست؟

-

آیا برای شما به عنوان یک کاربر دستکتاپ مفید است؟

-

به آن نیاز دارید؟ می‌توانید با آن چه کار کنید؟

-

اجازه دهید هر چیز ضروری برای آشنا کردن شما با اصطلاح +چیست؟

آیا برای شما به عنوان یک کاربر دستکتاپ مفید است؟

به آن نیاز دارید؟ می‌توانید با آن چه کار کنید؟

اجازه دهید هر چیز ضروری برای آشنا کردن شما با اصطلاح tty -را در این پست برسی کنیم.

-

به یاد داشته باشید که پاسخ قطعی برای این سوال وجود ندارد، +را در این پست برسی کنیم.

به یاد داشته باشید که پاسخ قطعی برای این سوال وجود ندارد، اما به نحوه تعامل دستگاه های input/output(ورودی/خروجی) -در گذشته ربط دارد.

-

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

-

تاریخ پشت اصطلاح tty

-

همه چیز از یک +در گذشته ربط دارد.

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

تاریخ پشت اصطلاح tty

همه چیز از یک teleprinter -در سال 1830 شروع شد.

-

teleprinter +در سال 1830 شروع شد.

teleprinter به شما اجازه می‌داد که از طریق سیم پیام ارسال و دریافت کنید. teleprinter جایگزینی برای ارطبات مورس کد بود در آن دو اپراتور برای ارطبات با یکدیگر مود نیاز بود. اما در teleprinter -فقط به یک اپراتور برای ارسال پیام نیاز داشت. درحالی که +فقط به یک اپراتور برای ارسال پیام نیاز داشت. درحالی که teleprinter یک صفحه کلید مدرن نداشت، بعد ها سیستم آن توسط Donald Murray به یک صفحه کلید teletypewriter -تکامل یافت.

-

Murray +تکامل یافت.

Murray زحمت اپراتور ها را برای ارسال و پیام را کاهش داد و این امکان را برای teletypeprinter @@ -471,16 +43,7 @@

تاریخ پشت اصطلاح tty -

-

تفاوت بین +است.

تفاوت بین teletypewrite و typewriter @@ -491,51 +54,23 @@

تاریخ پشت اصطلاح tty -

مفهوم مدرن

-

اکنون شما باید متعجب شده باشید که چطور +بوجود آمد.

مفهوم مدرن

اکنون شما باید متعجب شده باشید که چطور tty -به لینوکس و کامپیوتر مدرن آمده است.

-

بسیار خب، برای شروع، زمانی که +به لینوکس و کامپیوتر مدرن آمده است.

بسیار خب، برای شروع، زمانی که teletypewriter به بازار رسید، چند سال بعد ترانزیستور های نیمه هادی(نیمه رسانا) توسعه داده شد که به میکروپروسسور(micro proccessor) -هایی تبدیل شدند که کامپیوتر را ممکن می‌کرند.

-

کامپیوتر های اولیه مفهومی به اسم صفحه کلید نداشتند. -کارت های پانج -روش ورودی دادن به کامپیوتر ها بود

-

card-punch

-

درحالی که کامپیوتر ها توسعه پیدا می‌کردند، بالاخره کارت های پانچ با +هایی تبدیل شدند که کامپیوتر را ممکن می‌کرند.

کامپیوتر های اولیه مفهومی به اسم صفحه کلید نداشتند. +کارت های پانج +روش ورودی دادن به کامپیوتر ها بود

card-punch

درحالی که کامپیوتر ها توسعه پیدا می‌کردند، بالاخره کارت های پانچ با teletypewriter -به عنوان دستگاه ورودی/خروجی مناسب جایگزین شد.    

-

LGP-30 computer in 1956 with a TTY attached to it

-

با توسعه تکنولوژی +به عنوان دستگاه ورودی/خروجی مناسب جایگزین شد.    

LGP-30 computer in 1956 with a TTY attached to it

با توسعه تکنولوژی teletypewriter ها با استفاده از الکترونیک مجازی شدند. پس شما به یک tty فیزیکی، مکانیکی نیاز پیدا نمی‌کنید، بلکه به یک tty -مجازی، الکترونیکی نیاز دارید.

-

اوایل کامپیوتر ها صفحه نمایش هم نداشتند. چیز ها بجای نمایش داده شدن بروی صفحه نمایش +مجازی، الکترونیکی نیاز دارید.

اوایل کامپیوتر ها صفحه نمایش هم نداشتند. چیز ها بجای نمایش داده شدن بروی صفحه نمایش (که وجود نداشت) به روی کاغذ چاپ می‌شدند. به همین دلیل شما بجای دیدن اصطلاح display @@ -544,36 +79,27 @@

مفهوم مدرن

را می‌بینید. ویدیو ها به عنوان تکنولوژی پیشرفته به ترمینال(پایانه) ها اضافه شد. به عبارت دیگر شما باید درباره ترمینال های ویدیویی شنیده باشید. یا شما می‌توانید -آن ها را ترمینال های فیزیکی بنامید.

-

سپس اینها به ترمینال های نرم افزاری شبیه سازی شده تکامل پیدا کردند که با قابلیت ها و +آن ها را ترمینال های فیزیکی بنامید.

سپس اینها به ترمینال های نرم افزاری شبیه سازی شده تکامل پیدا کردند که با قابلیت ها و ویژگی های تسوسعه یافته‌ای همرا بود. این چیزی است که شما آن را terminal emulator -می‌نامید.

-

برای نمونه ترمینال -گنوم +می‌نامید.

برای نمونه ترمینال +گنوم (Gnome) یا -کنسول +کنسول (Konsole) -چنتا از بهترین ترمینال هایی هستند که می‌توانید برای لینوکس پیدا کنید.

-

بسیارخب tty در لینوکس چیست؟

-

زمانی که +چنتا از بهترین ترمینال هایی هستند که می‌توانید برای لینوکس پیدا کنید.

بسیارخب tty در لینوکس چیست؟

زمانی که tty به لینوکس و یونیکس آمد، یک دستگاه مستقل در یونیکس و لینوکس بود گاهی tty به یک دستگاه ورودی فیزیکی مانند serial port(درگاه سریال) اشاره می‌کرد، و گاهی به ترمینال های مجازی اشاره می‌کرد که به کاربران اجازه تعامل با -سیستم را می‌داد.

-

tty +سیستم را می‌داد.

tty یک زیر سیستم در لینوکس و یونیکس است که مدریت فرایند، ویرایش خط و مدیریت نشست ها را در سطح کرنل از طریق درایور های tty -ممکن می‌کند.

-

از دیدگاه برنامه نویسی شما باید در این موضوع عمیق تر شوید. اما محدوده این +ممکن می‌کند.

از دیدگاه برنامه نویسی شما باید در این موضوع عمیق تر شوید. اما محدوده این پست را در نظر بگیرید، این مقاله باید یک توضیح ساده برای درک بهتر باشد. در حقیقت، هر گاه یک ترمینال را باز می‌کنیم یا هر نوع shell @@ -585,92 +111,41 @@

بسیارخب tty در PTY یا pseudo-tty -هم شناخته می‌شوند، تعامل خواهد داشت.

-

شما می‌توانید +هم شناخته می‌شوند، تعامل خواهد داشت.

شما می‌توانید tty را در ترمینال تایپ کنید و pty -مرتبط را پیدا کنید.

-

چگونه به tty در لینوکس دسترسی داشته باشیم؟

-

tty-in-ubuntu

-

دسترسی به +مرتبط را پیدا کنید.

چگونه به tty در لینوکس دسترسی داشته باشیم؟

tty-in-ubuntu

دسترسی به tty در لینوکس ساده است. در حقیت زمانی که هیچ سرنخی از اینکه tty چیست نداشتم، به طور اتفاقی به آن دسترسی پیدا کردم و از اینکه چطوری باید -از آن خارج شوم وحشت زده شدم!

-

شما می‌توانید با کلید های میانبر زیر در اکثر توزیع های لینوکس به صفحه +از آن خارج شوم وحشت زده شدم!

شما می‌توانید با کلید های میانبر زیر در اکثر توزیع های لینوکس به صفحه tty -دسترسی پیدا کنید.

-

CTRL + ALT + F1Lockscreen

-

CTRL + ALT + F2Desktop Environment

-

CTRL + ALT + F3TTY3

-

CTRL + ALT + F4TTY4

-

CTRL + ALT + F5TT5

-

CTRL + ALT + F6TTY6

-

شما می‌توانید حد اکثر به +دسترسی پیدا کنید.

CTRL + ALT + F1Lockscreen

CTRL + ALT + F2Desktop Environment

CTRL + ALT + F3TTY3

CTRL + ALT + F4TTY4

CTRL + ALT + F5TT5

CTRL + ALT + F6TTY6

شما می‌توانید حد اکثر به 6 tty دسترسی داشته باشید، با این حال دو تا از اولین کلید های میانبر به صفحه قفل -و محیط دسکتاپ اشاره دارد.

-

cmd-with-tty

-

بنابر این، با باقی کلید های میانبر شما به محیط +و محیط دسکتاپ اشاره دارد.

cmd-with-tty

بنابر این، با باقی کلید های میانبر شما به محیط command-line -دسترسی می‌گیرید.

-

چه زمانی شما از tty در لینوکس استفاده خواهید کرد؟

-

tty -فقط یک گنج تکنیکی نیست. حتی برای کاربرانی مثل من که توسعه دهنده هم نیستند مفید است.

-

زمانی که محیط گرافیکی فریز می‌شود باید به کار بیاید. در بعضی از مواقع +دسترسی می‌گیرید.

چه زمانی شما از tty در لینوکس استفاده خواهید کرد؟

tty +فقط یک گنج تکنیکی نیست. حتی برای کاربرانی مثل من که توسعه دهنده هم نیستند مفید است.

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

-

یا شما می‌توانید +می‌تواند مشکل را حل کند.

یا شما می‌توانید tty را برای انجام کار هایی مثل آپدیت انتخاب کنید جایی که شما نمی‌خواهید مشکلات بصری فرایند -های شما را مختل کند.

-

بد ترین مورد سناریو، شما می‌تواند زمانی که محیط دستکتاپ جواب نمی‌دهد، برای ریبوت +های شما را مختل کند.

بد ترین مورد سناریو، شما می‌تواند زمانی که محیط دستکتاپ جواب نمی‌دهد، برای ریبوت به tty -مراجعه کنید.

-

بعضی از کاربران ترجیح می‌دهند که فایل های بزرگ را با +مراجعه کنید.

بعضی از کاربران ترجیح می‌دهند که فایل های بزرگ را با tty -منتقل کنند(من از آنها نیستم)

-

tty به عنوان یک دستور در لینوکس

-

tty-cmd

-

همانطور که در صفحه راهنمای +منتقل کنند(من از آنها نیستم)

tty به عنوان یک دستور در لینوکس

tty-cmd

همانطور که در صفحه راهنمای (man page) tty توضیح داده شده است، زمانی که شما tty -را در ترمینال تایپ کنید، نام فایل ترمینال که به وردی استاندارد متصل است را چاپ می‌کند.

-

به عبارت دیگر برای دانستن عدد +را در ترمینال تایپ کنید، نام فایل ترمینال که به وردی استاندارد متصل است را چاپ می‌کند.

به عبارت دیگر برای دانستن عدد tty که به آن متصل هستید، فقط tty @@ -678,324 +153,22 @@

tty به عنوا اگر چند کاربر از راه دور به سیستم لینوکس متصل هستند، می‌توانید برای برسی اینکه به چه متصل هستند از کامند who -استفاده کنید.

-

خارج از ترجمه

-

متن ترجمه شده بود و خب من یک مترجم تخصصی نیستم، من یک برنامه نویسم که بلاگ نویسی +استفاده کنید.

خارج از ترجمه

متن ترجمه شده بود و خب من یک مترجم تخصصی نیستم، من یک برنامه نویسم که بلاگ نویسی و ترجمه رو هم دوست دارم، سعی کردم به بهترین نحو متن را ترجمه کنم و در اختیار بقیه بذارم، اگر حس کردین جایی از متن مشکلی داره، خیلی خوشحال می‌شوم -که مشکلم رو بهم بیگید، این کمک بزرگیه.

-

متن اصلی رو می‌توانید از -این لینک -بخوانید.

-
-
- - - - - - -
- - - - - - - - - - -
-
- - -comments powered by Disqus -
- - - - - - - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - - - - -
-
- - - - - +که مشکلم رو بهم بیگید، این کمک بزرگیه.

متن اصلی رو می‌توانید از +این لینک +بخوانید.

comments powered by Disqus
قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git "a/docs/p/\330\263\330\247\330\256\330\252-\332\251\331\210\330\252\330\247\331\207-\332\251\331\206\331\206\330\257\331\207-\331\204\333\214\331\206\332\251-\330\250\330\247-\332\257\333\214\330\252\331\207\330\247\330\250-\331\276\333\214\330\254\330\262/index.html" "b/docs/p/\330\263\330\247\330\256\330\252-\332\251\331\210\330\252\330\247\331\207-\332\251\331\206\331\206\330\257\331\207-\331\204\333\214\331\206\332\251-\330\250\330\247-\332\257\333\214\330\252\331\207\330\247\330\250-\331\276\333\214\330\254\330\262/index.html" index ea5b06e..942a38a 100644 --- "a/docs/p/\330\263\330\247\330\256\330\252-\332\251\331\210\330\252\330\247\331\207-\332\251\331\206\331\206\330\257\331\207-\331\204\333\214\331\206\332\251-\330\250\330\247-\332\257\333\214\330\252\331\207\330\247\330\250-\331\276\333\214\330\254\330\262/index.html" +++ "b/docs/p/\330\263\330\247\330\256\330\252-\332\251\331\210\330\252\330\247\331\207-\332\251\331\206\331\206\330\257\331\207-\331\204\333\214\331\206\332\251-\330\250\330\247-\332\257\333\214\330\252\331\207\330\247\330\250-\331\276\333\214\330\254\330\262/index.html" @@ -1,729 +1,63 @@ - - - - -ساخت کوتاه کننده لینک با گیتهاب پیجز - - - - - - - - - - - - - - - - -
- - - - -
-
-
-
- - - Featured image of post ساخت کوتاه کننده لینک با گیتهاب پیجز - - -
- - -
- - - - -
-

- ساخت کوتاه کننده لینک با گیتهاب پیجز -

- - -
- - - - - -
- -
- - - - - - - - - - -
- - - -
- - - - - - - - - -
- -
- - - -
- -
- -
- - -
-

شاید تا به حال از کوتاه کننده های لینک استفاده کرده باشید، -اما ایا سایت کوتاه کننده لینک خودتون رو درست کردین؟

-

گیتهاب پیجز یک سرور رایگان برای دیپلوی سایت های ایستا است. +ساخت کوتاه کننده لینک با گیتهاب پیجز +

Featured image of post ساخت کوتاه کننده لینک با گیتهاب پیجز

ساخت کوتاه کننده لینک با گیتهاب پیجز

+
+

شاید تا به حال از کوتاه کننده های لینک استفاده کرده باشید، +اما ایا سایت کوتاه کننده لینک خودتون رو درست کردین؟

گیتهاب پیجز یک سرور رایگان برای دیپلوی سایت های ایستا است. در واقع شما می‌توانید صفحه های html رو توی ریپو قرار بدین و این سایت اون صفحه ها رو به رایگان -برای شما نمایش می‌دهد.

-

از همین قابلیت برای ساخت یک +برای شما نمایش می‌دهد.

از همین قابلیت برای ساخت یک url redirector استفاده کردم، و با کمی جاوا اسکریپت یک صفحه درست کردم که وقتی شما با مرورگر اون رو باز می‌کنید، -مرورگر شما به صورت خودکار به یک آدرس متفاوت منتقل خواهد شد.

-

ولی مشکل اینجاست که شما هر بار باید کلی +مرورگر شما به صورت خودکار به یک آدرس متفاوت منتقل خواهد شد.

ولی مشکل اینجاست که شما هر بار باید کلی html, css -رو خودتان تغییر بدین و بعد قطعه کد جاوا اسکریپت رو اضافه کنید.

-
-
-

-carbon carbon-link-shortener arya-shabane shabane mohamad-shabane -Carbon -

-
-

carbon-shot

-

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


carbon carbon-link-shortener arya-shabane shabane mohamad-shabane +Carbon

carbon-shot

من یک برنامه کوتاه کننده لینک درست کردم که زمانی که شما برنامه رو اجرا کنید، فایل های مورد نیاز رو برای شما -می‌سازه.

-

برنامه رو که اجرا کنید یک +می‌سازه.

برنامه رو که اجرا کنید یک CLI -اجرا خواهد شد و از شما چند ورودی را درخواست خواهد کرد.

-

اولین ورودی لینک طولانی است که -شما نیاز دارید آن را کوتاه کنید.

-

در قدم دوم، برنامه یک نام که همان لینک کوتاه شده است را از شما خواهد گرفت، +اجرا خواهد شد و از شما چند ورودی را درخواست خواهد کرد.

اولین ورودی لینک طولانی است که +شما نیاز دارید آن را کوتاه کنید.

در قدم دوم، برنامه یک نام که همان لینک کوتاه شده است را از شما خواهد گرفت، این نام را اگر به صورت خالی رها کنید، یک نام تصادفی بر اساس فایل کانفیگ -در نظر گرفته خواهد شد.

-

شاید سایت هایی را دیده باشید که از کاربر می‌خواند برای بازکردن لینک +در نظر گرفته خواهد شد.

شاید سایت هایی را دیده باشید که از کاربر می‌خواند برای بازکردن لینک روی یک دکمه کلیک کنند، و در این فرصت که کاربر هنوز وارد لیک اصلی نشده است، تبلیغاتی را به آنها نمایش می‌دهند. پس سوال سوم این خواهد بود که آیا کاربر باید برای وارد شدن به لینک اصلی، دکمه‌ای را بزند و یا به صورت -خودکار وارد آن شود؟

-

سوال سوم از شما یک عنوان می‌خواهد که برای هدر سایت +خودکار وارد آن شود؟

سوال سوم از شما یک عنوان می‌خواهد که برای هدر سایت از آن استفاده کند، البته اگر تم سایت را کاستومایز کنید، این عنوان -در هر جایی ممکن است قرار بگیرد.

-

و آخرین سوال از شما یک توضیح برای لینک می‌خواهد. ممکن شما +در هر جایی ممکن است قرار بگیرد.

و آخرین سوال از شما یک توضیح برای لینک می‌خواهد. ممکن شما بخواهید قبل از اینکه کاربر وارد لینک اصلی شود یک متنی را بخواند. -این توضیحات به کاربر نمایش داده خواهد شد.

-

برنامه کربن را منبع باز داخل این -آدرس -در گیتهاب قرار دادم، امیدوارم که مفید باشه.

-
-

Deployment

-

البته همینطور که می‌دانید نیاز نیست حتما از گیتهاب پیجز برای +این توضیحات به کاربر نمایش داده خواهد شد.

برنامه کربن را منبع باز داخل این +آدرس +در گیتهاب قرار دادم، امیدوارم که مفید باشه.


Deployment

البته همینطور که می‌دانید نیاز نیست حتما از گیتهاب پیجز برای دیپلوی استفاده کنید. و تنها مشکلی که در این قضیه هست لینک هایی هست که تولید می‌شوند، این لینک ها به ساب دامین اکانت شما متصل می‌شوند، پس حفظ آن ها برای شما ساده است :) -اما نکته اینجاست که کافیست شما یک دامنه ثبت کنید.

-

راه دوم این است که با یک وب سرور مثل +اما نکته اینجاست که کافیست شما یک دامنه ثبت کنید.

راه دوم این است که با یک وب سرور مثل nginx این سایت را مستقر کنید، و هرگاه نیاز به ساخت لینک کوتاه داشتید، -برنامه رو اجرا کنید.

-
-

Theme

-

من هیچ وقت دیزانر خوبی نبودم و به همین دلیل تم اصلی سایت ساده‌س. +برنامه رو اجرا کنید.


Theme

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

-
-
- - -
- - - -
- - - - - - - - - Licensed under CC BY-NC-SA 4.0 -
-
- - - -
- - - - - - - - - - -
-
- - -comments powered by Disqus -
- - - - - - - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - - - - -
-
- - - - - +قشنگتر از تم اصلی هست، خوشحال می‌شم به ریپو اصلی پوش کنید.

+Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git "a/docs/p/\331\201\330\247\333\214\331\204-\330\263\333\214\330\263\330\252\331\205-\330\263\330\261\331\210\330\261\330\252-\330\261\331\210-\330\261\331\210\333\214-\330\263\333\214\330\263\330\252\331\205-\331\204\331\210\332\251\330\247\331\204-\331\205\330\247\331\210\331\206\330\252-\332\251\331\206/index.html" "b/docs/p/\331\201\330\247\333\214\331\204-\330\263\333\214\330\263\330\252\331\205-\330\263\330\261\331\210\330\261\330\252-\330\261\331\210-\330\261\331\210\333\214-\330\263\333\214\330\263\330\252\331\205-\331\204\331\210\332\251\330\247\331\204-\331\205\330\247\331\210\331\206\330\252-\332\251\331\206/index.html" new file mode 100644 index 0000000..d77a8e1 --- /dev/null +++ "b/docs/p/\331\201\330\247\333\214\331\204-\330\263\333\214\330\263\330\252\331\205-\330\263\330\261\331\210\330\261\330\252-\330\261\331\210-\330\261\331\210\333\214-\330\263\333\214\330\263\330\252\331\205-\331\204\331\210\332\251\330\247\331\204-\331\205\330\247\331\210\331\206\330\252-\332\251\331\206/index.html" @@ -0,0 +1,545 @@ + + + + +فایل سیستم سرورت رو روی سیستم لوکال ماونت کن! + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + + + + +
+
+ + +comments powered by Disqus +
+ + + + + + + +
+ + +
+ قدرت گرفته از Hugo
+ قالب Stack ساخته شده توسط Jimmy +
+
+ + + + + +
+
+ + + + + diff --git "a/docs/p/\331\201\331\210\330\261\332\251-\330\250\331\205\330\250-\332\206\333\214\330\263\330\252-\331\210-\332\206\330\267\331\210\330\261-\332\251\330\247\330\261-\331\205\333\214\332\251\331\206\330\257/index.html" "b/docs/p/\331\201\331\210\330\261\332\251-\330\250\331\205\330\250-\332\206\333\214\330\263\330\252-\331\210-\332\206\330\267\331\210\330\261-\332\251\330\247\330\261-\331\205\333\214\332\251\331\206\330\257/index.html" index dfcb294..bc883ff 100644 --- "a/docs/p/\331\201\331\210\330\261\332\251-\330\250\331\205\330\250-\332\206\333\214\330\263\330\252-\331\210-\332\206\330\267\331\210\330\261-\332\251\330\247\330\261-\331\205\333\214\332\251\331\206\330\257/index.html" +++ "b/docs/p/\331\201\331\210\330\261\332\251-\330\250\331\205\330\250-\332\206\333\214\330\263\330\252-\331\210-\332\206\330\267\331\210\330\261-\332\251\330\247\330\261-\331\205\333\214\332\251\331\206\330\257/index.html" @@ -1,378 +1,17 @@ - - - - -فورک بمب چیست و چطور کار می‌کند؟ - - - - - - - - - - - - - - - - -
- - - -
-
-
-
- - - Featured image of post فورک بمب چیست و چطور کار می‌کند؟ - - -
- - -
- - - - -
-

- فورک بمب چیست و چطور کار می‌کند؟ -

- - -
- - - - - -
- -
- - - - - - - - - - -
- - - -
- - - - - - - - - -
- -
- - - -
- -
- -
- - -

اوایل که لینوکس نصب کرده بودم کامند هایی که توی +فورک بمب چیست و چطور کار می‌کند؟ +

Featured image of post فورک بمب چیست و چطور کار می‌کند؟

فورک بمب چیست و چطور کار می‌کند؟

+
+

اوایل که لینوکس نصب کرده بودم کامند هایی که توی فروم های مختلف می‌دیدم و برای من جدید بود را دوست داشتم یاد بگیرم و بدانم کار آنها چی هست، برای همین هر کامندی را که می‌دیدم در @@ -381,23 +20,13 @@

هر کامندی اشتباهه بود. یکی از این کامند ها که اجرا کرده بودم، به اسم فورک بمب (fork bomb) -شناخته می‌شود. کامند به این صورت هست

-
- -
-
1
-
-
:(){ :|:& };:
-
-
-

اگر این کامند را اجرا کنید(امیدوارم تا الان نکرده باشید) تقریبا زیر یک دقیقه سیستم شما -هنگ می‌کند و مجبور می‌شوید سیستم را ریبوت کنید.

-
-

توی این پست ساختار این کامند را تشریح می‌کنم و باهم +شناخته می‌شود. کامند به این صورت هست

1
+
:(){ :|:& };:
+

اگر این کامند را اجرا کنید(امیدوارم تا الان نکرده باشید) تقریبا زیر یک دقیقه سیستم شما +هنگ می‌کند و مجبور می‌شوید سیستم را ریبوت کنید.


توی این پست ساختار این کامند را تشریح می‌کنم و باهم کمی bash -یاد می‌گیریم.

-

بیایید اول با مفهوم +یاد می‌گیریم.

بیایید اول با مفهوم recustion آشنا بشیم، زمانی که یک قطعه کد خودش اجرا کند، recusion @@ -407,552 +36,183 @@

به این کار call recursion گفته می‌شود. فورک بمب دقیقا همین کار را می‌کند. به این -معنی که خودش را دائم اجرا می‌کند!

-

به این فکر کنید که وقتی یک پراسس خودش را اجرا می‌کند +معنی که خودش را دائم اجرا می‌کند!

به این فکر کنید که وقتی یک پراسس خودش را اجرا می‌کند ،مجدد پراسس های اجرا شده توسط اون هم دائم خودشان را اجرا می‌کنند، و دوباره هر پروسه‌ای که اجرا می‌شود بازم خودش را اجرا می‌کند و این روند تا زمانی که رم و پردازنده سیستم تحمل -داشته باشد ادامه دارد.

-
-

درختی که می‌بینید را اجرای فورک بمب درنظر بگیرید، +داشته باشد ادامه دارد.

درختی که می‌بینید را اجرای فورک بمب درنظر بگیرید، هر ستاره یک پروسه جدید است که توسط پروسه قبلی اجرا شده، و خودش هم دو پروسه جدید باز می‌کند و هر یک از پروسه ها -هم همین روند را ادامه می‌دهند.

-
-
- -
-
 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-22
-23
-24
-25
-26
-27
-28
-29
-30
-31
-32
-33
-34
-35
-36
-37
-
-
*
-├── *
-   ├── *
-      ├── *
-         ├── *
-            ├── *
-            └── *
-         └── *
-             ├── *
-             └── *    
-      
-      └── *
-          └── *
-              ├── *
-                 ├── *
-                 └── *
-              └── *
-                  ├── *
-                  └── *    
-   
-   └── *
-       ├── *
-          ├── *
-             ├── *
-             └── *
-          └── *
-              ├── *
-              └── *    
-       
-       └── *
-           └── *
-               ├── *
-                  ├── *
-                  └── *
-               └── *
-                   ├── *
-                   └── *   
-
-
-

من برای اینکه سیستم‌ خودم هنگ نکند فورک بمب را روی داکر +هم همین روند را ادامه می‌دهند.

 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+
*
+├── *
+   ├── *
+      ├── *
+         ├── *
+            ├── *
+            └── *
+         └── *
+             ├── *
+             └── *    
+      
+      └── *
+          └── *
+              ├── *
+                 ├── *
+                 └── *
+              └── *
+                  ├── *
+                  └── *    
+   
+   └── *
+       ├── *
+          ├── *
+             ├── *
+             └── *
+          └── *
+              ├── *
+              └── *    
+       
+       └── *
+           └── *
+               ├── *
+                  ├── *
+                  └── *
+               └── *
+                   ├── *
+                   └── *   
+

من برای اینکه سیستم‌ خودم هنگ نکند فورک بمب را روی داکر اجرا کردم و خب حتی یک ثانیه هم طول نکشید و آن کانتینر -کاملا هنگ کرد.

-
-

قبل از اجرا -forkbomb on docker

-
-
-

زمان اجرا -forkbomb on docker

-
-
-

بیایید وارد کد بشیم، این علامت ها و کاراکتر ها چی هستند؟

- -

اگه دقت کنید اولین کاراکتر فورک بمب، علامت +کاملا هنگ کرد.

قبل از اجرا +forkbomb on docker

زمان اجرا +forkbomb on docker


بیایید وارد کد بشیم، این علامت ها و کاراکتر ها چی هستند؟

اگه دقت کنید اولین کاراکتر فورک بمب، علامت : است. این علامت اسم فانکشن ما است. برخلاف قانون تعریف نام برای متغییر ها توی bash، می‌توانیم از کاراتر های یونیکد هم برای تعریف نام فانکشن استفاده کنیم، مثلا یک -کاراکتر چینی یا حتی ایموجی!

-
- -
-
1
-2
-3
-
-
(){ echo 'rain'; }
-
-❤️(){ echo 'love'; }
-
-
-

خب در ادامه علامت های +کاراکتر چینی یا حتی ایموجی!

1
+2
+3
+
(){ echo 'rain'; }
+
+❤️(){ echo 'love'; }
+

خب در ادامه علامت های () را می‌بینیم، توی bash برای تعریف فانکشن قبل از اسم فانکشن هیچ کلمه کلیدی مثل fn, def, void -و … نیاز نیست، فقط بجای آن باید +و … نیاز نیست، فقط بجای آن باید بعد از اسم فانکشن -پرانتز ها را بگذارید.

-

مثل خیلی از زبان های برنامه نویسی، بدنه فانکشن توی -کرلی براکت تعریف می‌شود.

-
- -
-
1
-
-
:(){}
-
-
-

پس تا اینجا ما یک فانکشن ساده با نام +پرانتز ها را بگذارید.

مثل خیلی از زبان های برنامه نویسی، بدنه فانکشن توی +کرلی براکت تعریف می‌شود.

1
+
:(){}
+

پس تا اینجا ما یک فانکشن ساده با نام : -تعریف کردیم.

-

داخل بدنه این فانکشن، اسمی که برای فانکشن قرار دادیم +تعریف کردیم.

داخل بدنه این فانکشن، اسمی که برای فانکشن قرار دادیم همان : را می‌نویسیم. با اینکار دقیقا call recursion را انجام دادیم، و باعث شدیم که برنامه خودش را -توی هر اجرا مجدد اجرا کند.

-
- -
-
1
-
-
:(){ : }
-
-
-
-

دقت کنید توی سینتکس +توی هر اجرا مجدد اجرا کند.

1
+
:(){ : }
+

دقت کنید توی سینتکس bash -حتما باید یک فاصله برای کدی که داخلی کرلی براکت می‌نویسم قرار بدیم

-
-

علامت +حتما باید یک فاصله برای کدی که داخلی کرلی براکت می‌نویسم قرار بدیم

علامت | به اسم پایپ شناخته می‌شود، وظیفه این علامت دادن خروجی یک کامند بعنوان ورودی به یک کامند دیگر هست، حلا دقت کنید که ما خروجی اجرای : -را به خودش می‌دهیم. دقیقا به این شکل

-
- -
-
1
-
-
:(){ :|: }
-
-
-

با این علامت هر پروسه دو بار پروسه جدیدی از خودش می‌سازد +را به خودش می‌دهیم. دقیقا به این شکل

1
+
:(){ :|: }
+

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

-

علامت -& +تفاوتی زیادی نخواهد داشت.

علامت +& اجرای یک کامند را به بکگراند(پس زمینه) می‌برد. برای مثال بعد از اجرای یک دستور باید صبر کنید پروسه آن تمام شود تا بتوانید دستور بعدی را اجرا کنید. ولی اگر از علامت -& +& بعد از هر دستور استفاده کنید، دیگر نیاز نیست صبر کنید تا روند اجرای آن برنامه تمام شود. درواقع با علامت -& +& شما می‌توانید هر برنامه را در بکگراند اجرا کنید. حالا توی فورک بمب این علامت باعث می‌شود تا فانشکنی که اجرا کردین درحالی که کارش به اتمام -نرسیده است، فانکشن بعدی اجرا بشود.

-

& in bash

-

و بعد علامت +نرسیده است، فانکشن بعدی اجرا بشود.

& in bash

و بعد علامت ; را می‌بینیم. این علامت کامند ها را از هم جدا می‌کند. مثلا شما می‌توانید چند کامند مختلف را توی یک خط بنویسید. توی فورک بمب این علامت فانکشنی که تعریف کردین را از -دستور بعدی(که اجرا کننده اون فانکشن هست)جدا می‌کند.

-
- -
-
1
-
-
echo 'foo'; echo 'bar'; echo 'baz';
-
-
-

آخرین علامتی که توی فورک بمب داریم همون علامت +دستور بعدی(که اجرا کننده اون فانکشن هست)جدا می‌کند.

1
+
echo 'foo'; echo 'bar'; echo 'baz';
+

آخرین علامتی که توی فورک بمب داریم همون علامت : یا همون اسمی هست که برای فانکشن قرار دادیم. خیلی ساده توی bash -برای اجرای یک فانکشن فقط اسم‌ش را می‌نویسیم.

-

و تمام! ما یاد گرفتیم چطور فورک بمب رو بنویسیم و دیگه -نیاز نیست حفظ‌ش کنیم :)

-
- -
-
1
-
-
:(){ :|:& };:
-
-
-
-

- - - - - - -
- - - - - - - - - - -
-
- - -comments powered by Disqus -
- - - - - - - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - - - - -
-
- - - - - +برای اجرای یک فانکشن فقط اسم‌ش را می‌نویسیم.

و تمام! ما یاد گرفتیم چطور فورک بمب رو بنویسیم و دیگه +نیاز نیست حفظ‌ش کنیم :)

1
+
:(){ :|:& };:
+
comments powered by Disqus
قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git "a/docs/p/\331\205\330\247\331\206\330\252-\332\251\330\261\330\257\331\206-\330\257\330\247\333\214\330\261\332\251\330\252\331\210\330\261\333\214-\330\263\330\261\331\210\330\261-\330\261\331\210\333\214-\330\257\330\247\333\214\330\261\332\251\330\252\331\210\330\261\333\214-\331\204\331\210\332\251\330\247\331\204/index.html" "b/docs/p/\331\205\330\247\331\206\330\252-\332\251\330\261\330\257\331\206-\330\257\330\247\333\214\330\261\332\251\330\252\331\210\330\261\333\214-\330\263\330\261\331\210\330\261-\330\261\331\210\333\214-\330\257\330\247\333\214\330\261\332\251\330\252\331\210\330\261\333\214-\331\204\331\210\332\251\330\247\331\204/index.html" new file mode 100644 index 0000000..abb057b --- /dev/null +++ "b/docs/p/\331\205\330\247\331\206\330\252-\332\251\330\261\330\257\331\206-\330\257\330\247\333\214\330\261\332\251\330\252\331\210\330\261\333\214-\330\263\330\261\331\210\330\261-\330\261\331\210\333\214-\330\257\330\247\333\214\330\261\332\251\330\252\331\210\330\261\333\214-\331\204\331\210\332\251\330\247\331\204/index.html" @@ -0,0 +1,113 @@ +مانت کردن دایرکتوری سرور روی دایرکتوری لوکال +
Featured image of post مانت کردن دایرکتوری سرور روی دایرکتوری لوکال

مانت کردن دایرکتوری سرور روی دایرکتوری لوکال

+
+

من همیشه برای کپی کردن فایل هام بین سرور و سیستمم از +scp +استفاده می‌کنم. +البته گاهی هم با +FileZilla +به صورت گرافیکی کارم رو راه می‌اندازم.

ما برای ارتباط با یک سرور معمولا از سرویس +ssh +استفاده می‌کنیم. و خب احتمال می‌دم شما روی سرورتون این سرویس رو داشته باشین.

توی این پست ما دایرکتوری +home +یوزری که بهش دستری داریم رو روی یکی از دایکتوری های سیستم لوکالمون ماونت می‌کنیم +و بعد از اون مثل یک دایرکتوری عادی که روی هارد هست استفاده می‌کنیم.

با اینکار شما از طریق هر فایل منیجر که دارید مثل +Gnome Files +می‌تونید به دایرکتوری دسترسی داشته باشید. +حتی با ترمینال می‌تونید +cd +کنید به اون مسیر و دقیقا مثل یک فایل سیستم لوکال باهاش کار کنید.


قدم اول نصب ابزاری هست که این کار رو برای ما انجام می‌ده، +توی هر توزیعی اسم این ابزار ممکنه متفاوت باشه ولی توی اوبونتو +sshfs +هست و با +apt +نصب می‌شه.

خب برای اینکه فایل سیتم رو ماونت کنیم باید یک مسیر +روی سیستم لوکال مشخص کنیم که فایل سیستم سرور روی اون +ماونت بشه. این مسیر هر جایی می‌تونه باشه فقط دقت کنید که دسترسی +سطح کاربری خودتون رو بهش بدین. +مسیرانتخابی من +/media/arya/cloud +هست.

حالا ما فرض می‌کنیم یوزری که روی سرور بهش دسترسی داریم +arya +هست، پس مثل +ssh، +از اسم این یوزر قبل از ادرس سرور استفاده می‌کنم.

و مثل ابزار +mount +می‌تونیم با فلگ +o- +آپشن هایی رو برای ماونت مشخص کنیم.

توی این مثال من مسیر +/home/arya +که دایرکتوری +home +کاربر +arya +که روی سرور هست رو +به دایرکتوری +/media/arya/cloud +که دایرکتوری لوکال من هست +متصل می‌کنم.

1
+2
+3
+
#          -o OptionsList,         user@serverAddress       :SourcePath #PathToMount
+
+sudo sshfs -o reconnect,allow_other arya@server.wiregeek.ir:/home/arya /media/arya/cloud
+

می‌تونیم بجای مسیر دایرکتوری سرور یک اسپیس بذاریم، اینطوری پیشفرض همون دایرکتوری +home +رو استفاده می‌کنه.

  • من دو آپشن برای ماونت مشخص کردم +اولین +reconnect +هست که برای زمانی استفاده می‌شه که کانکشن شما با سرور قطع می‌شه +و این ابزار این کانکشن رو دوباره ایجاد می‌کنه

  • دومین که +allow_other +هست برای این استفاده می‌شه که به دیگر کاربران سیستم هم اجازه +دسترسی به اون دایرکتوری رو بده.

بعد از انجام اینکار ها، +دایرکتوری شما آماده استفاده‌ست. کافیه به مسیری که فایل سیستم رو داخل اون +ماونت کردین برین، توی مثال ما +/media/arya/cloud +بود.


بعد از همه اینها اگه نیاز شد تا این فایل سیستم رو +unmount(جدا) +کنید، خیلی ساده می‌تونید از ابزار +umount +و در ادامه اون مسیر دایرکتوری که فایل سیستم روی اون ماونت شده +استفاده کنید.

1
+
sudo umount /media/arya/cloud
+

حتی می‌تونید فایل سیستم را در زمان روشن شدن سیستم ماونت کنید. +اینکار خیلی ساده با فایل +/etc/fstab +و سینتکس این فایل انجام می‌شه. +فقط +file system type +رو باید +sshfs +بنویسید.

1
+2
+3
+4
+
# /etc/fstab
+# <file system> <mount point>   <type>  <options>       <dump>  <pass>
+
+arya@server.wiregeek.ir:/home/arya/ /media/arya/cloud/ sshfs allow_other,reconnec
+

یادتون باشه که برای اینکار حتما از قبل کلید پابلیک سیستمون رو داخل سرور کپی کرده باشید.


برای اینکه همش پسورد مزاحمتون نباشه و موقع استارتاپ فایل سیستم روی سیستم شما ماونت بشه +باید کلید پابلیک خودتون رو کپی کرده باشید داخل سرور. برای اینکار از ابزار +ssh-copy-id +استفاده کنید.

1
+
ssh-copy-id arya@server.wiregeek.ir
+
+Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git "a/docs/p/\331\205\330\252\330\272\333\214\330\261-\330\257\330\261-rust/index.html" "b/docs/p/\331\205\330\252\330\272\333\214\330\261-\330\257\330\261-rust/index.html" index c2ef68d..f12de97 100644 --- "a/docs/p/\331\205\330\252\330\272\333\214\330\261-\330\257\330\261-rust/index.html" +++ "b/docs/p/\331\205\330\252\330\272\333\214\330\261-\330\257\330\261-rust/index.html" @@ -1,442 +1,27 @@ - - - - -متغیر در rust - - - - - - - - - - - - - - - - -
- - - - -
-
-
-
- - - Featured image of post متغیر در rust - - -
- - -
- - - - -
-

- متغیر در rust -

- - -
- - - - - -
- -
- - - - - - - - - - -
- - - -
- - - - - - - - - -
- -
- - - -
- -
- -
- - -

تعریف متغیر

-

در هر زبانی تعریف متغیر سینتکس خودش را دارد. +متغیر در rust +

Featured image of post متغیر در rust

متغیر در rust

+
+

تعریف متغیر

در هر زبانی تعریف متغیر سینتکس خودش را دارد. مثلا اگر زبان های خانواده c را کار کرده باشید (مثل c++, c#) متوجه می‌شوید که نوع داده‌ای متغیر، قبل از اسم آن تعریف می‌شود. و یا مثلا توی زبان پایتون تعریف نوع داده‌ای -یک متغیر حتی اهمیتی هم ندارد!

-
-

انواع نوع داده یا +یک متغیر حتی اهمیتی هم ندارد!

انواع نوع داده یا date types -را توی پست بعدی می‌نویسم

-
-

توی زبان +را توی پست بعدی می‌نویسم

توی زبان rust بعد از اسم متغیر، نوع آن نوشته می‌شود. مثلا برای تعریف یک متغیر عددی به اندازه یک بایت از کلمه @@ -445,60 +30,39 @@

تعریف متغیر

بعد اسم استفاده می‌کنیم. البته قبل از اسم هر متغیر هم ما باید از کلمه کلیدی let -استفاده کنیم.

-
- -
-
1
-2
-
-
//let  name: type = value;
-let age: i8 = 22;
-
-
-

متغیر های تغییرپذیر

-

توی زبان +استفاده کنیم.

1
+2
+
//let  name: type = value;
+let age: i8 = 22;
+

متغیر های تغییرپذیر

توی زبان rust هر متغیری که تعریف می‌کنیم غیر قابل تغیر است. توی مثال بالا من پیشفرض مقدار 22 را برای متغیر age قرار داده‌ام، حالا اگر بخواهم مقدار آن را -به 23 تغیر بدهم به ارور می‌خورم

-
- -
-
1
-
-
age = 23;
-
-
-
- -
-
 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
-10
-
-
error[E0384]: cannot assign twice to immutable variable `age`
- --> src/main.rs:3:5
-  |
-2 |     let age: i8 = 22;
-  |         ---
-  |         |
-  |         first assignment to `age`
-  |         help: consider making this binding mutable: `mut age`
-3 |     age = 23;
-  |     ^^^^^^^^ cannot assign twice to immutable variable
-
-
-

خب برای همین اگر می‌خواهیم مقدار متغیری را تغییر +به 23 تغیر بدهم به ارور می‌خورم

1
+
age = 23;
+
 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+
error[E0384]: cannot assign twice to immutable variable `age`
+ --> src/main.rs:3:5
+  |
+2 |     let age: i8 = 22;
+  |         ---
+  |         |
+  |         first assignment to `age`
+  |         help: consider making this binding mutable: `mut age`
+3 |     age = 23;
+  |     ^^^^^^^^ cannot assign twice to immutable variable
+

خب برای همین اگر می‌خواهیم مقدار متغیری را تغییر بدهیم آن را باید از اول مشخص کنیم. مشخص کردن آن با کلمه کلیدی mut بعد از کلمه @@ -510,308 +74,22 @@

تعریف متغیر

mutable به معنی قابل تغییر -است. خب بیایید اینکار را برای مثال اولیه انجام بدهیم.

-
- -
-
1
-2
-
-
let mut age: i8 = 22;
-age = 23;
-
-
-
-
- - - - - - -
- - - - - - - - - - -
-
- - -comments powered by Disqus -
- - - - - - - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - - - - -
-
- - - - - +است. خب بیایید اینکار را برای مثال اولیه انجام بدهیم.

1
+2
+
let mut age: i8 = 22;
+age = 23;
+
comments powered by Disqus
قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git "a/docs/p/\331\276\330\247\330\261\330\252\333\214\330\264\331\206-\330\263\330\261\331\210\330\261-\330\261\331\210-\330\261\331\210\333\214-\330\263\333\214\330\263\330\252\331\205-\331\204\331\210\332\251\330\247\331\204-\331\205\330\247\331\210\331\206\330\252-\332\251\331\206/index.html" "b/docs/p/\331\276\330\247\330\261\330\252\333\214\330\264\331\206-\330\263\330\261\331\210\330\261-\330\261\331\210-\330\261\331\210\333\214-\330\263\333\214\330\263\330\252\331\205-\331\204\331\210\332\251\330\247\331\204-\331\205\330\247\331\210\331\206\330\252-\332\251\331\206/index.html" new file mode 100644 index 0000000..de64cdb --- /dev/null +++ "b/docs/p/\331\276\330\247\330\261\330\252\333\214\330\264\331\206-\330\263\330\261\331\210\330\261-\330\261\331\210-\330\261\331\210\333\214-\330\263\333\214\330\263\330\252\331\205-\331\204\331\210\332\251\330\247\331\204-\331\205\330\247\331\210\331\206\330\252-\332\251\331\206/index.html" @@ -0,0 +1,545 @@ + + + + +پارتیشن سرور رو روی سیستم لوکال ماونت کن! + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + + + + +
+
+ + +comments powered by Disqus +
+ + + + + + + +
+ + +
+ قدرت گرفته از Hugo
+ قالب Stack ساخته شده توسط Jimmy +
+
+ + + + + +
+
+ + + + + diff --git "a/docs/p/\331\276\330\247\330\261\330\252\333\214\330\264\331\206-\330\263\330\261\331\210\330\261\330\252-\330\261\331\210-\330\261\331\210\333\214-\330\263\333\214\330\263\330\252\331\205-\331\204\331\210\332\251\330\247\331\204-\331\205\330\247\331\210\331\206\330\252-\332\251\331\206/index.html" "b/docs/p/\331\276\330\247\330\261\330\252\333\214\330\264\331\206-\330\263\330\261\331\210\330\261\330\252-\330\261\331\210-\330\261\331\210\333\214-\330\263\333\214\330\263\330\252\331\205-\331\204\331\210\332\251\330\247\331\204-\331\205\330\247\331\210\331\206\330\252-\332\251\331\206/index.html" new file mode 100644 index 0000000..acb8bdb --- /dev/null +++ "b/docs/p/\331\276\330\247\330\261\330\252\333\214\330\264\331\206-\330\263\330\261\331\210\330\261\330\252-\330\261\331\210-\330\261\331\210\333\214-\330\263\333\214\330\263\330\252\331\205-\331\204\331\210\332\251\330\247\331\204-\331\205\330\247\331\210\331\206\330\252-\332\251\331\206/index.html" @@ -0,0 +1,545 @@ + + + + +پارتیشن سرورت رو روی سیستم لوکال ماونت کن! + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + + + + +
+
+ + +comments powered by Disqus +
+ + + + + + + +
+ + +
+ قدرت گرفته از Hugo
+ قالب Stack ساخته شده توسط Jimmy +
+
+ + + + + +
+
+ + + + + diff --git "a/docs/p/\331\276\331\204\330\247\332\257\333\214\331\206-\331\207\330\247\333\214-\332\251\330\247\330\261\330\250\330\261\330\257\333\214-\332\257\331\206\331\210\331\205/index.html" "b/docs/p/\331\276\331\204\330\247\332\257\333\214\331\206-\331\207\330\247\333\214-\332\251\330\247\330\261\330\250\330\261\330\257\333\214-\332\257\331\206\331\210\331\205/index.html" index 9bd36c2..8c0b1c1 100644 --- "a/docs/p/\331\276\331\204\330\247\332\257\333\214\331\206-\331\207\330\247\333\214-\332\251\330\247\330\261\330\250\330\261\330\257\333\214-\332\257\331\206\331\210\331\205/index.html" +++ "b/docs/p/\331\276\331\204\330\247\332\257\333\214\331\206-\331\207\330\247\333\214-\332\251\330\247\330\261\330\250\330\261\330\257\333\214-\332\257\331\206\331\210\331\205/index.html" @@ -1,492 +1,36 @@ - - - - - پلاگین های کاربردی گنوم - - - - - - - - - - - - - - - - -
- - - - -
-
-
-
- - - Featured image of post  پلاگین های کاربردی گنوم - - -
- - -
- - - - -
-

- پلاگین های کاربردی گنوم -

- - -
- - - - - -
- -
- - - - - - - - - - -
- - - -
- - - - - - - - - -
- -
- - - -
- -
- -
- - -
-

اگر مثل من از +پلاگین های کاربردی گنوم

Featured image of post  پلاگین های کاربردی گنوم

پلاگین های کاربردی گنوم

+
+

اگر مثل من از محیط gnome روی توزیع لینوکس استفاده می‌کنید، احتمالا شیفته سادگی‌اش شدید! اما بیایید چند پلاگین به آن اضافه کنیم تا درضمن داشتن این سادگی، عملکرد این محیط -را توسعه دهیم.

-
- -

در لینوکس به سادگی با یک کامند می‌شود سیستم را زمانبندی کرد که +را توسعه دهیم.


در لینوکس به سادگی با یک کامند می‌شود سیستم را زمانبندی کرد که خاموش یا تعلیق شود. -با نصب این پلاگین مجبور به وارد کردن کامند برای خاموش/تعلیق کردن نیستیم!

-

shutdown sch

-
- -

بار ها شده که نیاز دارم صدای یک برنامه رو کم کنم و صدای برنامه‌ای دیگر را +با نصب این پلاگین مجبور به وارد کردن کامند برای خاموش/تعلیق کردن نیستیم!

shutdown sch


بار ها شده که نیاز دارم صدای یک برنامه رو کم کنم و صدای برنامه‌ای دیگر را زیاد. ممکنه بعضی از برنامه ها مانند vlc این امکان را خودشان فراهم کرده باشند. اما با این پلاگین شما به راحتی می‌توانید صدای -هر برنامه را به صورت مجزا کنترل کنید.

-

Vulume mixer

-
-
-

III dash-to-dock

-
-

task bar +هر برنامه را به صورت مجزا کنترل کنید.

Vulume mixer


task bar پیشفرض گنوم بد نیست ولی ظاهر زیبایی هم نداره. اما این پلاگین task bar شما را به dock تبدیل می‌کند. -ظاهر کوچک و زیباتری دارد

-

به صورت پیشفرض زمانی که یک برنامه +ظاهر کوچک و زیباتری دارد

به صورت پیشفرض زمانی که یک برنامه maximize است dock @@ -494,429 +38,40 @@

III -

dash to dock

-
-

فرض کیند متنی را کپی می‌کنیم و بعد از مدتی متن و یا فایل های دیگری را کپی می‌کنیم +ظاهر می‌شود.

dash to dock

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

-

پلاگین +چرا که داده های بعدی جایگزین متن اولیه در کلیپ برد شده است.

پلاگین clipboard indicator هر متنی را که کپی کنیم را در فهرستی ذخیره می‌کند. علاوه به این یک فهرست favorite هم در این کلیپ برد وجود دارد که می‌توانید متن هایی را به آن اضافه کنید که دیگر خذف نشوند. -و همچنین از فهرست اصلی جدا باشد.

-

و شاید بخشی از متنی را به یاد داشته باشید که نیاز دارید ببینید در کلیپ برد هست و یا -نه، برای اینکار هم یک بخش جست و جو وجود دارد.

-

Clipboard

-
-

#V net speed

-
-

بیشتر مواقع نیاز داریم تا سرعت اینترنت را هنگام استفاده از آن ببینیم. +و همچنین از فهرست اصلی جدا باشد.

و شاید بخشی از متنی را به یاد داشته باشید که نیاز دارید ببینید در کلیپ برد هست و یا +نه، برای اینکار هم یک بخش جست و جو وجود دارد.

Clipboard

بیشتر مواقع نیاز داریم تا سرعت اینترنت را هنگام استفاده از آن ببینیم. و یا زمانی که فایلی در شبکه انتقال می‌دهیم نیاز داریم تا سرعت انتقال را در هر لحظه بدانیم. پلاگین NetSpeed -این قابلیت را دارد که سرعت شبکه وایرلس و شبکه سیمی را مجزا نشان دهد.

-

netspeed

-
-
-

#VI Caffeine

-
-

وقتی برای مدتی به موس و کیبرد دست نزنیم صفحه نمایش خودکار خاموش می‌شود +این قابلیت را دارد که سرعت شبکه وایرلس و شبکه سیمی را مجزا نشان دهد.

netspeed


وقتی برای مدتی به موس و کیبرد دست نزنیم صفحه نمایش خودکار خاموش می‌شود و بعد از مدتی سیستم به حالت suspend می‌رود. اولین راهی که ذهن ما می‌رسد این است که در تظیمات زمان به تعلیق درامدن سیستم را بیشتر کنیم. اما این روش زمانی که نیازش نداریم کار مفیدی نیست، چرا که ممکن است ساعات ها سیستم بدون هیچ استفاده‌ای روشن بماند. برای همین من این پلاگین را دارم، زمانی که نیاز دارم تا از سیستم دور باشم -کافئین رو روشن می‌کنم و زمانی که نمی‌دونم چی پیش میاد! خاموشش می‌‌کنم.

-

caffein

-
-
-

#VII Google Search

-
-

با وجود این اکستنشن شما مجبور به اجرای مرورگر برای جست و جوی یک عبارت نیستید. +کافئین رو روشن می‌کنم و زمانی که نمی‌دونم چی پیش میاد! خاموشش می‌‌کنم.

caffein


با وجود این اکستنشن شما مجبور به اجرای مرورگر برای جست و جوی یک عبارت نیستید. کافیه عبارت جست و جو رو در منوی overview خود گنوم بنویسید و بعد یکی از پیشنهاد های گوگل را انتخاب کنید. و -یا حتی خود عبارت را جست و جو کنید.

-

google search

-
-

#VIII Jiggle

-

کرسر موس رو گم کردین؟ موس رو تکون بدین!

-

Jiggle

-
-

#IX Custom Hot Corners

-

یکی از پلاگین های مورد علاقه من، با این پلاگین لبه سیستم را برای یک عمل خاصی تنظیم می‌کنیم که وقتی +یا حتی خود عبارت را جست و جو کنید.

google search


#VIII Jiggle

کرسر موس رو گم کردین؟ موس رو تکون بدین!

Jiggle


#IX Custom Hot Corners

یکی از پلاگین های مورد علاقه من، با این پلاگین لبه سیستم را برای یک عمل خاصی تنظیم می‌کنیم که وقتی کرسور موس به سمت آن رفت، آن عمل انجام بشود. مثلا وقتی موس به گوشه سمت بالا برخورد کرد، منوی over view -باز بشود. و یا مثلا نظیم می‌کنیم که وقتی موس به گوشه پایین سمنت چپ بر خورد کرد یک کامند اجرا شود.

-

Custom Hot Corner

-
-
- - -
- - - -
- - - - - - - - - Licensed under CC BY-NC-SA 4.0 -
-
- - - -
- - - - - - - - - - -
-
- - -comments powered by Disqus -
- - - - - - - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - - - - -
-
- - - - - +باز بشود. و یا مثلا نظیم می‌کنیم که وقتی موس به گوشه پایین سمنت چپ بر خورد کرد یک کامند اجرا شود.

Custom Hot Corner

+Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git "a/docs/p/\331\276\333\214\332\257\330\261\333\214-\333\214\332\251-\330\254\330\263\330\252-\331\210-\330\254\331\210-\330\250\330\247-rss/index.html" "b/docs/p/\331\276\333\214\332\257\330\261\333\214-\333\214\332\251-\330\254\330\263\330\252-\331\210-\330\254\331\210-\330\250\330\247-rss/index.html" new file mode 100644 index 0000000..a9c9280 --- /dev/null +++ "b/docs/p/\331\276\333\214\332\257\330\261\333\214-\333\214\332\251-\330\254\330\263\330\252-\331\210-\330\254\331\210-\330\250\330\247-rss/index.html" @@ -0,0 +1,557 @@ + + + + +پیگری یک جست و جو با RSS + + + + + + + + + + + + + + + + +
+ + + +
+
+
+
+ + + Featured image of post پیگری یک جست و جو با RSS + + +
+ + +
+ + +
+

+ پیگری یک جست و جو با RSS +

+ + +
+ + + + + +
+ +
+ + + + + + + + + + +
+ + + +
+ + + + + + + + + +
+ +
+ + + +
+ +
+ +
+ + + +
+ + +
+ + + +
+ + + + + + + + + Licensed under CC BY-NC-SA 4.0 +
+
+ + + +
+ + + + + + + + +
+
+ + +comments powered by Disqus +
+ + + + + + + +
+ + +
+ قدرت گرفته از Hugo
+ قالب Stack ساخته شده توسط Jimmy +
+
+ + + + + +
+
+ + + + + diff --git "a/docs/p/\332\206\330\261\330\247-\331\204\333\214\331\206\331\210\332\251\330\263-\330\261\331\210-\330\257\331\210\330\263\330\252-\330\257\330\247\330\261\331\205/index.html" "b/docs/p/\332\206\330\261\330\247-\331\204\333\214\331\206\331\210\332\251\330\263-\330\261\331\210-\330\257\331\210\330\263\330\252-\330\257\330\247\330\261\331\205/index.html" index a9220d9..1bf40b8 100644 --- "a/docs/p/\332\206\330\261\330\247-\331\204\333\214\331\206\331\210\332\251\330\263-\330\261\331\210-\330\257\331\210\330\263\330\252-\330\257\330\247\330\261\331\205/index.html" +++ "b/docs/p/\332\206\330\261\330\247-\331\204\333\214\331\206\331\210\332\251\330\263-\330\261\331\210-\330\257\331\210\330\263\330\252-\330\257\330\247\330\261\331\205/index.html" @@ -1,774 +1,58 @@ - - - - -چرا لینوکس رو دوست دارم؟ - - - - - - - - - - - - - - - - -
- - - -
-
-
-
- - - Featured image of post چرا لینوکس رو دوست دارم؟ - - -
- - -
- - - - -
-

- چرا لینوکس رو دوست دارم؟ -

- - -
- - - - - -
- -
- - - - - - - - - - -
- - - -
- - - - - - - - - -
- -
- - - -
- -
- -
- - -

دوست داشتن لینوکس واقعا دلایل زیادی داره و احتمالا هر کسی به دلیل خاصی لینوکس رو دوست داره. -مثلا یکی ممکنه آزادی‌اش رو دوست داشته باشه یکی دیگه از پکیج منیجر علاقه رو به لینوکس پیدا کرده باشه و …

-

من ترمینال قدرتمند لینوکس رو دوست دارم، چیزی که هیچوقت توی ویندوز تجربه نکرده بودم. -یکی زیبایی های ترمینال برای من ترکیب ریزالت برنامه‌های مختلف با یکدیگر و بدست اوردن نتیجه جدیده

-

مثلا بابام برای چندین پست فرستاد که هر پست شامل چهار یا پنج لینکه که من باید همه‌ش رو دانلود کنم، +چرا لینوکس رو دوست دارم؟ +

Featured image of post چرا لینوکس رو دوست دارم؟

چرا لینوکس رو دوست دارم؟

+
+

دوست داشتن لینوکس واقعا دلایل زیادی داره و احتمالا هر کسی به دلیل خاصی لینوکس رو دوست داره. +مثلا یکی ممکنه آزادی‌اش رو دوست داشته باشه یکی دیگه از پکیج منیجر علاقه رو به لینوکس پیدا کرده باشه و …

من ترمینال قدرتمند لینوکس رو دوست دارم، چیزی که هیچوقت توی ویندوز تجربه نکرده بودم. +یکی زیبایی های ترمینال برای من ترکیب ریزالت برنامه‌های مختلف با یکدیگر و بدست اوردن نتیجه جدیده

مثلا بابام برای چندین پست فرستاد که هر پست شامل چهار یا پنج لینکه که من باید همه‌ش رو دانلود کنم، درحالت عادی اگر روی ویندوز بودم خب باید هر لینک رو کپی می‌کردم و بعد وارد دانلود منیجر می‌کردم برای دانلود. -ولی خب ما مجهزیم به قدرت ترمینال لینوکس :)

-

telegram-post-contain-links

-

خب من کاری که می‌کنم اینه که متن پست ها رو کپی می‌کنم و توی یک فایل می‌ریزم -اینطوری هم متن های فارسی پست ها و هم لینک های فایل ها رو دارم

-

save-links-to-file

-

بعد با دستور +ولی خب ما مجهزیم به قدرت ترمینال لینوکس :)

telegram-post-contain-links

خب من کاری که می‌کنم اینه که متن پست ها رو کپی می‌کنم و توی یک فایل می‌ریزم +اینطوری هم متن های فارسی پست ها و هم لینک های فایل ها رو دارم

save-links-to-file

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

-
- -
-
1
-
-
cat dl.txt | egrep '^http' > dl.lst
-
-
-

save-links-to-file

-

و تمام، همه لینک ها رو یکجا آماده دارم، حالا کافیه با یک دستور همه فایل -ها رو دانلود کنم.

-
- -
-
1
-
-
wget -c -i dl.lst
-
-
-

خب بعد از دانلود شدن فایل ها، یک مشکلی که دارم این هست که هر پست شامل تمامی درس های یکی از فصل هایی هست +باشه رو پیدا کن.

1
+
cat dl.txt | egrep '^http' > dl.lst
+

save-links-to-file

و تمام، همه لینک ها رو یکجا آماده دارم، حالا کافیه با یک دستور همه فایل +ها رو دانلود کنم.

1
+
wget -c -i dl.lst
+

خب بعد از دانلود شدن فایل ها، یک مشکلی که دارم این هست که هر پست شامل تمامی درس های یکی از فصل هایی هست که بابام می‌بینه. من باید فایل ها رو براساس فصل هاشون داخل دایرکتوری های مشخص خودش قرار بدم. اینم یک راهکار خیلی ساده داره. اسم فایل ها به این شکل هست که فصل رو داخلش نوشته Option402-J04-01.mp4 -کافیه با یه وایلد کارت هر فصل رو جدا کنم و داخل دایرکتوری خودش بریزم

-
- -
-
1
-2
-3
-4
-
-
mv Option402-J04* j04
-mv Option402-J05* j05
-mv Option402-J06* j06
-mv Option402-J07* j07
-
-
-

این یک مثال ساده‌ای بود که می‌تونستم بزنم برای -توضیح اینکه چرا لینوکس برام جذاب تره و کارم رو ساده تر می‌کنه.

- -
- - - - - - -
- - - - - - - - - - -
-
- - -comments powered by Disqus -
- - - - - - - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - - - - -
-
- - - - - +کافیه با یه وایلد کارت هر فصل رو جدا کنم و داخل دایرکتوری خودش بریزم

1
+2
+3
+4
+
mv Option402-J04* j04
+mv Option402-J05* j05
+mv Option402-J06* j06
+mv Option402-J07* j07
+

این یک مثال ساده‌ای بود که می‌تونستم بزنم برای +توضیح اینکه چرا لینوکس برام جذاب تره و کارم رو ساده تر می‌کنه.

comments powered by Disqus
قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git "a/docs/p/\332\251\331\276\333\214-\332\251\330\261\330\257\331\206-\330\261\333\214\330\262\330\247\331\204\330\252-\331\276\330\247\333\214\331\276-\330\250\331\207-\332\251\331\204\333\214\331\276-\330\250\330\261\330\257/index.html" "b/docs/p/\332\251\331\276\333\214-\332\251\330\261\330\257\331\206-\330\261\333\214\330\262\330\247\331\204\330\252-\331\276\330\247\333\214\331\276-\330\250\331\207-\332\251\331\204\333\214\331\276-\330\250\330\261\330\257/index.html" index 22a44fe..14b80d5 100644 --- "a/docs/p/\332\251\331\276\333\214-\332\251\330\261\330\257\331\206-\330\261\333\214\330\262\330\247\331\204\330\252-\331\276\330\247\333\214\331\276-\330\250\331\207-\332\251\331\204\333\214\331\276-\330\250\330\261\330\257/index.html" +++ "b/docs/p/\332\251\331\276\333\214-\332\251\330\261\330\257\331\206-\330\261\333\214\330\262\330\247\331\204\330\252-\331\276\330\247\333\214\331\276-\330\250\331\207-\332\251\331\204\333\214\331\276-\330\250\330\261\330\257/index.html" @@ -1,641 +1,33 @@ - - - - -کپی کردن ریزالت پایپ به کلیپ برد - - - - - - - - - - - - - - - - -
- - - -
-
-
-
- - - Featured image of post کپی کردن ریزالت پایپ به کلیپ برد - - -
- - -
- - - - -
-

- کپی کردن ریزالت پایپ به کلیپ برد -

- - -
- - - - - -
- -
- - - - - - - - - - -
- - - -
- - - - - - - - - -
- -
- - - -
- -
- -
- - -
-

ما زمانی که برنامه‌ای در ترمینال اجرا می‌کنیم برای کپی کردن ریزالت اون برنامه، با موس تکست رو سلکت می‌کنیم و بعد کپی می‌کنیم. اما می‌دونیم که توی لینوکس ما pipe رو داریم. +کپی کردن ریزالت پایپ به کلیپ برد +

Featured image of post کپی کردن ریزالت پایپ به کلیپ برد

کپی کردن ریزالت پایپ به کلیپ برد

+
+

ما زمانی که برنامه‌ای در ترمینال اجرا می‌کنیم برای کپی کردن ریزالت اون برنامه، با موس تکست رو سلکت می‌کنیم و بعد کپی می‌کنیم. اما می‌دونیم که توی لینوکس ما pipe رو داریم. پایپ کردن به این معنی است که شما یک برنامه رو اجرا می‌کنید و ریزالت اون برنامه رو بعنوان ورودی به یک برنامه دیگر می‌دهید. -و خب کاش می‌شد با پایپ کردن، متنی کپی بشه!

-

برنامه‌ای ساده نوشتم که این کار رو برای ما به سادگی انجام بده.

-

مثلا ما می‌خواهیم لیست فایل ها و دایرکتوری های داخل پوشه /var/ رو کپی کنیم. -می‌دونیم که دستور ls میاد و لیست فایل ها رو می‌گیره، کافیه این رو پایپ کنیم به clp تا این لیست به کلیپ برد کپی بشه.

-

ls /var | clp

-

برای نصب این چند دستور رو می‌تونید اجرا کنید:

-
-
- -
-
1
-2
-3
-4
-
-
cd /tmp/ && wget 'https://raw.githubusercontent.com/shabane/clp/master/clp.py'
-cp clp.py ~/.local/bin/clp
-chmod +x ~/.local/bin/clp
-clp -h
-
-
-
-
-

و خب می‌تونید برای دیدن مثال ها ریپوی گیتهاب برنامه رو هم ببینید

-

https://github.com/shabane/clp

-
-
- - -
- - - -
- - - - - - - - - Licensed under CC BY-NC-SA 4.0 -
-
- - - -
- - - - - - - - - - -
-
- - -comments powered by Disqus -
- - - - - - - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - - - - -
-
- - - - - +و خب کاش می‌شد با پایپ کردن، متنی کپی بشه!

برنامه‌ای ساده نوشتم که این کار رو برای ما به سادگی انجام بده.

مثلا ما می‌خواهیم لیست فایل ها و دایرکتوری های داخل پوشه /var/ رو کپی کنیم. +می‌دونیم که دستور ls میاد و لیست فایل ها رو می‌گیره، کافیه این رو پایپ کنیم به clp تا این لیست به کلیپ برد کپی بشه.

ls /var | clp

برای نصب این چند دستور رو می‌تونید اجرا کنید:

1
+2
+3
+4
+
cd /tmp/ && wget 'https://raw.githubusercontent.com/shabane/clp/master/clp.py'
+cp clp.py ~/.local/bin/clp
+chmod +x ~/.local/bin/clp
+clp -h
+

و خب می‌تونید برای دیدن مثال ها ریپوی گیتهاب برنامه رو هم ببینید

https://github.com/shabane/clp

+Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git a/docs/page/1/index.html b/docs/page/1/index.html index 2522758..d7cd93b 100644 --- a/docs/page/1/index.html +++ b/docs/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/ - - - - - - +https://bit-orbit.github.io/ + \ No newline at end of file diff --git a/docs/page/2/index.html b/docs/page/2/index.html index b6a740e..d216479 100644 --- a/docs/page/2/index.html +++ b/docs/page/2/index.html @@ -1,949 +1,55 @@ - - - - - -bit-orbit - - - - - - - - - - - - - - - -
- - - - -
- - - - - -
- - - - - - - - - - - - - - - - -
- - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- -
-
- - - - - +Pager 2 - bit-orbit +
قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git a/docs/page/3/index.html b/docs/page/3/index.html index 4a337c7..87e6278 100644 --- a/docs/page/3/index.html +++ b/docs/page/3/index.html @@ -1,933 +1,51 @@ - - - - - -bit-orbit - - - - - - - - - - - - - - - -
- - - - -
- - - - - -
- - - - - -
-
-
- - Featured image of post Blade Runner - - -
- - -
- - - - -
-

- Blade Runner -

- - -
- - - - - -
- -
- - - - - - - - - - -
- - - -
- - - - - - - - - -
- -
- - - -
- -
-
- - - - - - - - - - -
- - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- -
-
- - - - - +Pager 3 - bit-orbit +
قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git a/docs/page/4/index.html b/docs/page/4/index.html index 5331340..ebfe61d 100644 --- a/docs/page/4/index.html +++ b/docs/page/4/index.html @@ -1,861 +1,51 @@ - - - - - -bit-orbit - - - - - - - - - - - - - - - -
- - - - -
- - - - - -
- - - - - - - - - - - - - -
- - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- -
-
- - - - - +Pager 4 - bit-orbit +
قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git a/docs/page/5/index.html b/docs/page/5/index.html new file mode 100644 index 0000000..1dabd26 --- /dev/null +++ b/docs/page/5/index.html @@ -0,0 +1,714 @@ + + + + + +Pager 5 - bit-orbit + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ + + + + + + +
+ + +
+ + +
+ قدرت گرفته از Hugo
+ قالب Stack ساخته شده توسط Jimmy +
+
+ +
+
+ + + + + diff --git a/docs/page/index.html b/docs/page/index.html index 3f4064e..31afc1f 100644 --- a/docs/page/index.html +++ b/docs/page/index.html @@ -1,603 +1,37 @@ - - - - -Pages - - - - - - - - - - - - - - - -
- - - - -
-
-

- - بخش - -

- -
-
-

5 صفحه

-

Pages

- -
-
-
- -
- - - - - - - - - - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Pages + \ No newline at end of file diff --git a/docs/page/index.xml b/docs/page/index.xml index fc8dd22..f2015b1 100644 --- a/docs/page/index.xml +++ b/docs/page/index.xml @@ -1,104 +1,50 @@ - - - - Pages on bit-orbit - https://bit-orbit.github.io/page/ - Recent content in Pages on bit-orbit - Hugo -- gohugo.io - fa - Sun, 31 Dec 2023 00:00:00 +0000 - Rust - https://bit-orbit.github.io/rust/ - Sun, 31 Dec 2023 00:00:00 +0000 - - https://bit-orbit.github.io/rust/ - <img src="https://bit-orbit.github.io/images/post/rust.png" alt="Featured image of post Rust" /><p>من مدتی هست که دارم زبان +Pages on bit-orbithttps://bit-orbit.github.io/page/Recent content in Pages on bit-orbitHugo -- gohugo.iofaSun, 31 Dec 2023 00:00:00 +0000Rusthttps://bit-orbit.github.io/rust/Sun, 31 Dec 2023 00:00:00 +0000https://bit-orbit.github.io/rust/<img src="https://bit-orbit.github.io/images/post/rust.png" alt="Featured image of post Rust" /><p>من مدتی هست که دارم زبان rust رو یاد می‌گیرم، توی این تایمی که خودم یادش می‌گیرم، یک خلاصه‌ای هم از آموزش هایی که می‌بینم رو اینجا در پست های مجزا می‌نویسم. اینطوری هم برای خودم نوت دارم و هم -شما :)</p> -<p>هر پست آموزش +شما :)</p> +<p>هر پست آموزش rust که می‌نویسم رو اینجا لیست می‌کنم که -به راحتی در دسترس باشند.</p> -<blockquote> -<p>بعنوان نکته بگم که توی این مجموعه از پست ها، قرار نیست +به راحتی در دسترس باشند.</p> +<blockquote> +<p>بعنوان نکته بگم که توی این مجموعه از پست ها، قرار نیست برنامه نویسی را از صفر یاد بگیریم، صرفا سینتکس زبان rust -را یاد می‌گیریم.</p> -</blockquote> -<hr> -<ul> -<li><a class="link" href="https://bit-orbit.github.io/p/%d9%85%d8%aa%d8%ba%db%8c%d8%b1-%d8%af%d8%b1-rust/" >متغییر ها در rust</a></li> -</ul> - - - - Archives - https://bit-orbit.github.io/archives/ - Tue, 28 May 2019 00:00:00 +0000 - - https://bit-orbit.github.io/archives/ - - - - About - https://bit-orbit.github.io/about/ - Thu, 28 Feb 2019 00:00:00 +0000 - - https://bit-orbit.github.io/about/ - <p>من از هر پلتفرمی که بتونم داخلش متن بنویسم به عنوان وبلاگ استفاده می‌کنم، +را یاد می‌گیریم.</p> +</blockquote> +<hr> +<ul> +<li><a class="link" href="https://bit-orbit.github.io/p/%d9%85%d8%aa%d8%ba%db%8c%d8%b1-%d8%af%d8%b1-rust/" >متغییر ها در rust</a></li> +</ul>Archiveshttps://bit-orbit.github.io/archives/Tue, 28 May 2019 00:00:00 +0000https://bit-orbit.github.io/archives/Abouthttps://bit-orbit.github.io/about/Thu, 28 Feb 2019 00:00:00 +0000https://bit-orbit.github.io/about/<p>من از هر پلتفرمی که بتونم داخلش متن بنویسم به عنوان وبلاگ استفاده می‌کنم، حتی شاید یه روزی از pastebin -برای همین کار استفاده کنم (=</p> -<p>این هم یکی از وبلاگ های منه :)</p> -<p>علاقه‌ام سمت کار های کامپیوتری مثل توسعه نرم افزار و کانفیگ ابزار ها مختلف برای ساخت -یک سرویسه.</p> -<p>از خودم هم بخواهم بگم، من یه دانشجوی نرم افزار هستم، +برای همین کار استفاده کنم (=</p> +<p>این هم یکی از وبلاگ های منه :)</p> +<p>علاقه‌ام سمت کار های کامپیوتری مثل توسعه نرم افزار و کانفیگ ابزار ها مختلف برای ساخت +یک سرویسه.</p> +<p>از خودم هم بخواهم بگم، من یه دانشجوی نرم افزار هستم، لینوکسی‌ام و زبان اصلی‌ام پایتونه، و خب کم‌کم دارم مهارجت می‌کنم به زبان -rust.</p> -<p>با +rust.</p> +<p>با django سایت و api می‌نویسم، ولی همینکار رو به زودی با rust -پیش می‌برم.</p> - - - - Links - https://bit-orbit.github.io/links/ - Mon, 01 Jan 0001 00:00:00 +0000 - - https://bit-orbit.github.io/links/ - <!-- +پیش می‌برم.</p>Linkshttps://bit-orbit.github.io/links/Mon, 01 Jan 0001 00:00:00 +0000https://bit-orbit.github.io/links/<!-- To use this feature, add `links` section to frontmatter. - -This page's frontmatter: - +This page's frontmatter: ```yaml links: - - title: GitHub - description: GitHub is the world's largest software development platform. - website: https://github.com - image: https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png - - title: TypeScript - description: TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. - website: https://www.typescriptlang.org - image: ts-logo-128.jpg -``` --> -<!-- `image` field accepts both local and external images. --> - - - Search - https://bit-orbit.github.io/search/ - Mon, 01 Jan 0001 00:00:00 +0000 - - https://bit-orbit.github.io/search/ - - - - - +- title: GitHub +description: GitHub is the world's largest software development platform. +website: https://github.com +image: https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png +- title: TypeScript +description: TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. +website: https://www.typescriptlang.org +image: ts-logo-128.jpg +``` --> +<!-- `image` field accepts both local and external images. -->Searchhttps://bit-orbit.github.io/search/Mon, 01 Jan 0001 00:00:00 +0000https://bit-orbit.github.io/search/ \ No newline at end of file diff --git a/docs/page/page/1/index.html b/docs/page/page/1/index.html index fabeac5..cfbbfb6 100644 --- a/docs/page/page/1/index.html +++ b/docs/page/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/page/ - - - - - - +https://bit-orbit.github.io/page/ + \ No newline at end of file diff --git a/docs/post/index.html b/docs/post/index.html index c1e5b05..fc3697c 100644 --- a/docs/post/index.html +++ b/docs/post/index.html @@ -1,653 +1,40 @@ - - - - -Posts - - - - - - - - - - - - - - - -
- - - - -
-
-

- - بخش - -

- -
-
-

19 صفحه

-

Posts

- -
-
-
- -
- - - - - - - - - - - -
- - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Posts + \ No newline at end of file diff --git a/docs/post/index.xml b/docs/post/index.xml index f8e7789..eba5528 100644 --- a/docs/post/index.xml +++ b/docs/post/index.xml @@ -1,32 +1,168 @@ - - - - Posts on bit-orbit - https://bit-orbit.github.io/post/ - Recent content in Posts on bit-orbit - Hugo -- gohugo.io - fa - Thu, 01 Aug 2024 03:03:46 +0330 - etc/resolve.conf/ - https://bit-orbit.github.io/p/etc/resolve.conf/ - Thu, 01 Aug 2024 03:03:46 +0330 - - https://bit-orbit.github.io/p/etc/resolve.conf/ - <img src="https://bit-orbit.github.io/images/post/OIG4.jpeg" alt="Featured image of post etc/resolve.conf/" /><span style='font-size: 25px'> -<h3 id="مقدمه">مقدمه</h3> -<p>همیشه موقع ویرایش فایل -<em>resolve.conf</em> +Posts on bit-orbithttps://bit-orbit.github.io/post/Recent content in Posts on bit-orbitHugo -- gohugo.iofaMon, 09 Sep 2024 13:23:06 +0330مانت کردن دایرکتوری سرور روی دایرکتوری لوکالhttps://bit-orbit.github.io/p/%D9%85%D8%A7%D9%86%D8%AA-%DA%A9%D8%B1%D8%AF%D9%86-%D8%AF%D8%A7%DB%8C%D8%B1%DA%A9%D8%AA%D9%88%D8%B1%DB%8C-%D8%B3%D8%B1%D9%88%D8%B1-%D8%B1%D9%88%DB%8C-%D8%AF%D8%A7%DB%8C%D8%B1%DA%A9%D8%AA%D9%88%D8%B1%DB%8C-%D9%84%D9%88%DA%A9%D8%A7%D9%84/Mon, 09 Sep 2024 13:23:06 +0330https://bit-orbit.github.io/p/%D9%85%D8%A7%D9%86%D8%AA-%DA%A9%D8%B1%D8%AF%D9%86-%D8%AF%D8%A7%DB%8C%D8%B1%DA%A9%D8%AA%D9%88%D8%B1%DB%8C-%D8%B3%D8%B1%D9%88%D8%B1-%D8%B1%D9%88%DB%8C-%D8%AF%D8%A7%DB%8C%D8%B1%DA%A9%D8%AA%D9%88%D8%B1%DB%8C-%D9%84%D9%88%DA%A9%D8%A7%D9%84/<img src="https://bit-orbit.github.io/images/post/dc.jpg" alt="Featured image of post مانت کردن دایرکتوری سرور روی دایرکتوری لوکال" /><div dir='rtl' style="font-size: 25px;"> +<p>من همیشه برای کپی کردن فایل هام بین سرور و سیستمم از +<a class="link" href="http://www.wirenerd.ir/tools/scp/scp/" target="_blank" rel="noopener" +>scp</a> +استفاده می‌کنم. +البته گاهی هم با +FileZilla +به صورت گرافیکی کارم رو راه می‌اندازم.</p> +<p>ما برای ارتباط با یک سرور معمولا از سرویس +ssh +استفاده می‌کنیم. و خب احتمال می‌دم شما روی سرورتون این سرویس رو داشته باشین.</p> +<p>توی این پست ما دایرکتوری +home +یوزری که بهش دستری داریم رو روی یکی از دایکتوری های سیستم لوکالمون ماونت می‌کنیم +و بعد از اون مثل یک دایرکتوری عادی که روی هارد هست استفاده می‌کنیم.</p> +<p>با اینکار شما از طریق هر فایل منیجر که دارید مثل +Gnome Files +می‌تونید به دایرکتوری دسترسی داشته باشید. +حتی با ترمینال می‌تونید +cd +کنید به اون مسیر و دقیقا مثل یک فایل سیستم لوکال باهاش کار کنید.</p> +<hr> +<p>قدم اول نصب ابزاری هست که این کار رو برای ما انجام می‌ده، +توی هر توزیعی اسم این ابزار ممکنه متفاوت باشه ولی توی اوبونتو +<code>sshfs</code> +هست و با +apt +نصب می‌شه.</p> +<p>خب برای اینکه فایل سیتم رو ماونت کنیم باید یک مسیر +روی سیستم لوکال مشخص کنیم که فایل سیستم سرور روی اون +ماونت بشه. این مسیر هر جایی می‌تونه باشه فقط دقت کنید که دسترسی +سطح کاربری خودتون رو بهش بدین. +مسیرانتخابی من +<span dir='ltr'><code>/media/arya/cloud</code></span> +هست.</p> +<p>حالا ما فرض می‌کنیم یوزری که روی سرور بهش دسترسی داریم +arya +هست، پس مثل +ssh، +از اسم این یوزر قبل از ادرس سرور استفاده می‌کنم.</p> +<p>و مثل ابزار +<a class="link" href="http://www.wirenerd.ir/tools/mount/mount/" target="_blank" rel="noopener" +>mount</a> +می‌تونیم با فلگ +<code>o-</code> +آپشن هایی رو برای ماونت مشخص کنیم.</p> +<p>توی این مثال من مسیر +<span dir='ltr'><code>/home/arya</code></span> +که دایرکتوری +home +کاربر +arya +که روی سرور هست رو +به دایرکتوری +<span dir='ltr'><code>/media/arya/cloud</code></span> +که دایرکتوری لوکال من هست +متصل می‌کنم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># -o OptionsList, user@serverAddress :SourcePath #PathToMount</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">sudo sshfs -o reconnect,allow_other arya@server.wiregeek.ir:/home/arya /media/arya/cloud +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>می‌تونیم بجای مسیر دایرکتوری سرور یک اسپیس بذاریم، اینطوری پیشفرض همون دایرکتوری +home +رو استفاده می‌کنه.</p> +</blockquote> +<ul> +<li> +<p>من دو آپشن برای ماونت مشخص کردم +اولین +reconnect +هست که برای زمانی استفاده می‌شه که کانکشن شما با سرور قطع می‌شه +و این ابزار این کانکشن رو دوباره ایجاد می‌کنه</p> +</li> +<li> +<p>دومین که +allow_other +هست برای این استفاده می‌شه که به دیگر کاربران سیستم هم اجازه +دسترسی به اون دایرکتوری رو بده.</p> +</li> +</ul> +<p>بعد از انجام اینکار ها، +دایرکتوری شما آماده استفاده‌ست. کافیه به مسیری که فایل سیستم رو داخل اون +ماونت کردین برین، توی مثال ما +<span dir='ltr'><code>/media/arya/cloud</code></span> +بود.</p> +<hr> +<p>بعد از همه اینها اگه نیاز شد تا این فایل سیستم رو +unmount(جدا) +کنید، خیلی ساده می‌تونید از ابزار +<a class="link" href="https://linux.die.net/man/8/umount" target="_blank" rel="noopener" +>umount</a> +و در ادامه اون مسیر دایرکتوری که فایل سیستم روی اون ماونت شده +استفاده کنید.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">sudo umount /media/arya/cloud +</span></span></code></pre></td></tr></table> +</div> +</div><hr> +<p>حتی می‌تونید فایل سیستم را در زمان روشن شدن سیستم ماونت کنید. +اینکار خیلی ساده با فایل +<span dir='ltr'><code>/etc/fstab</code></span> +و سینتکس این فایل انجام می‌شه. +فقط +file system type +رو باید +sshfs +بنویسید.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># /etc/fstab</span> +</span></span><span class="line"><span class="cl"><span class="c1"># &lt;file system&gt; &lt;mount point&gt; &lt;type&gt; &lt;options&gt; &lt;dump&gt; &lt;pass&gt;</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">arya@server.wiregeek.ir:/home/arya/ /media/arya/cloud/ sshfs allow_other,reconnec +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>یادتون باشه که برای اینکار حتما از قبل کلید پابلیک سیستمون رو داخل سرور کپی کرده باشید.</p> +</blockquote> +<hr> +<p>برای اینکه همش پسورد مزاحمتون نباشه و موقع استارتاپ فایل سیستم روی سیستم شما ماونت بشه +باید کلید پابلیک خودتون رو کپی کرده باشید داخل سرور. برای اینکار از ابزار +ssh-copy-id +استفاده کنید.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">ssh-copy-id arya@server.wiregeek.ir +</span></span></code></pre></td></tr></table> +</div> +</div></div>etc/resolve.conf/https://bit-orbit.github.io/p/etc/resolve.conf/Thu, 01 Aug 2024 03:03:46 +0330https://bit-orbit.github.io/p/etc/resolve.conf/<img src="https://bit-orbit.github.io/images/post/OIG4.jpeg" alt="Featured image of post etc/resolve.conf/" /><span style='font-size: 25px'> +<h3 id="مقدمه">مقدمه +</h3><p>همیشه موقع ویرایش فایل +<em>resolve.conf</em> برام سوال بود که گزین های دیگه‌ای که توی این فایل تنظیم شده‌اند چکاری انجام می‌دهند. درواقع من همیشه دستور -<code>namveserver</code> +<code>namveserver</code> را برای تغییر سرور -<em>dns</em> +<em>dns</em> ویرایش می‌کردم. اما دستور هایی دیگه‌ای هم برای این فایل وجود دارد که لیست آنها در -<code>man resolve.conf</code> -توضیح داده شده است.</p> -<p>توی این پست من بعضی از دستورات این فایل را توضیح می‌دم.</p> -<blockquote> -<p>در مرحله اول یادتون باشه لینوکس هایی که +<code>man resolve.conf</code> +توضیح داده شده است.</p> +<p>توی این پست من بعضی از دستورات این فایل را توضیح می‌دم.</p> +<blockquote> +<p>در مرحله اول یادتون باشه لینوکس هایی که systemd دارند، معمولا از سرویس systemd-resolved @@ -36,48 +172,48 @@ DNS resolve می‌کند و سپس آنها را کش می‌کند که یک دامنه را چندین بار resolve -نکند.</p> -</blockquote> -<blockquote> -<p>یک دامنه حد اقل از <em>دو</em> بخش تشکیل می‌شود.</p> -<ol> -<li>TLD</li> -<li>Domain</li> -</ol> -</blockquote> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span><span class="lnt">3 -</span><span class="lnt">4 -</span><span class="lnt">5 -</span><span class="lnt">6 -</span><span class="lnt">7 -</span><span class="lnt">8 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">bin.example.com -</span></span><span class="line"><span class="cl">│ │ │ -</span></span><span class="line"><span class="cl">│ │ └─► TDL(Top Level Domain) -</span></span><span class="line"><span class="cl">│ │ -</span></span><span class="line"><span class="cl">│ └───────► Domain -</span></span><span class="line"><span class="cl">│ -</span></span><span class="line"><span class="cl">└─────────────► SubDomain -</span></span><span class="line"><span class="cl"> -</span></span></code></pre></td></tr></table> -</div> -</div><hr> -<h3 id="دستورات">دستورات</h3> -<ul> -<li> -<p>1 <code>nameserver</code></p> -<p>این دستور برای تعیین +نکند.</p> +</blockquote> +<blockquote> +<p>یک دامنه حد اقل از <em>دو</em> بخش تشکیل می‌شود.</p> +<ol> +<li>TLD</li> +<li>Domain</li> +</ol> +</blockquote> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span><span class="lnt">8 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">bin.example.com +</span></span><span class="line"><span class="cl">│ │ │ +</span></span><span class="line"><span class="cl">│ │ └─► TDL(Top Level Domain) +</span></span><span class="line"><span class="cl">│ │ +</span></span><span class="line"><span class="cl">│ └───────► Domain +</span></span><span class="line"><span class="cl">│ +</span></span><span class="line"><span class="cl">└─────────────► SubDomain +</span></span><span class="line"><span class="cl"> +</span></span></code></pre></td></tr></table> +</div> +</div><hr> +<h3 id="دستورات">دستورات +</h3><ul> +<li> +<p>1 <code>nameserver</code></p> +<p>این دستور برای تعیین IP یک سرور DNS -استفاده می‌شود.(در واقع اینجا منظورم یک سرویسی است که به نامه دامنه ها پاسخ دهد که به آن NS می‌گویم.)</p> -<p>شما می‌توانید تا حداقل سه +استفاده می‌شود.(در واقع اینجا منظورم یک سرویسی است که به نامه دامنه ها پاسخ دهد که به آن NS می‌گویم.)</p> +<p>شما می‌توانید تا حداقل سه IP لیست کنید، و resolver @@ -86,68 +222,68 @@ resolver NS جواب گو نباشد، از دیگر NS -های لیست شده استفاده خواهد شد.</p> -<p>اگر به همین ترتیب هر یک از +های لیست شده استفاده خواهد شد.</p> +<p>اگر به همین ترتیب هر یک از NS -ها جوابگو نباشد، کوئری ها از اول شروع می‌شود تا به حداکثر تعداد کوئری تعیین شده برسد.</p> -<p>برای مثال من می‌توانم چند +ها جوابگو نباشد، کوئری ها از اول شروع می‌شود تا به حداکثر تعداد کوئری تعیین شده برسد.</p> +<p>برای مثال من می‌توانم چند NS -مختلف را برای خودم تعیین کنم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">nameserver 1.1.1.1 -</span></span><span class="line"><span class="cl">nameserver 8.8.8.8 -</span></span></code></pre></td></tr></table> -</div> -</div></li> -</ul> -<hr> -<ul> -<li> -<p>2 <code>options</code></p> -<p>برای این دستور متغیر های مختلفی را می‌توان تعیین کرد.</p> -<ul> -<li> -<p>2.1 <code>ndots</code></p> -<ul> -<li> -<p>حداقل هر دامنه‌ای در سطح اینترنت یک نقطه دارد، برای مثال +مختلف را برای خودم تعیین کنم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">nameserver 1.1.1.1 +</span></span><span class="line"><span class="cl">nameserver 8.8.8.8 +</span></span></code></pre></td></tr></table> +</div> +</div></li> +</ul> +<hr> +<ul> +<li> +<p>2 <code>options</code></p> +<p>برای این دستور متغیر های مختلفی را می‌توان تعیین کرد.</p> +<ul> +<li> +<p>2.1 <code>ndots</code></p> +<ul> +<li> +<p>حداقل هر دامنه‌ای در سطح اینترنت یک نقطه دارد، برای مثال google.com یک نقطه دارد. شما می‌توانید با این متغیر تعین کنید که دامنه‌های در سطح اینترنت باید چند نقطه داشته باشند، هر نقطه نشانه ساب دامنه‌ است. -برای مثال به صورت پیشفرض این متغیر <em>1</em> تنظیم شده است. +برای مثال به صورت پیشفرض این متغیر <em>1</em> تنظیم شده است. به این معنی است که هر دامنه‌ای یک نقطه داشت، این دامنه در سطح اینترنت است. ولی اگر شما مقدار این متغیر را 2 تنظیم کنید، دامنه‌ای مثل -<code>google.com</code> +<code>google.com</code> بعنوان دامنه لوکال تشخیص داده خواهد شد و -<code>hostname</code> +<code>hostname</code> شما به اول دامنه اضافه خواهد شد. مثلا اگر -<code>hostname</code> +<code>hostname</code> شما -<code>arya</code> +<code>arya</code> باشد، دامنه به این شکل کوئری زده خواهد شد -<code>google.com.arya</code></p> -<p>در صورتی که شما برای جست و جوی یک دامنه از هیچ -<strong>TLD</strong> +<code>google.com.arya</code></p> +<p>در صورتی که شما برای جست و جوی یک دامنه از هیچ +<strong>TLD</strong> استفاده نکید، از -<code>hostname</code> +<code>hostname</code> و یا از مقداری که برای -<code>search</code> -مشخص کرده‌اید استفاده خواهد شد.</p> -</li> -</ul> -</li> -<li> -<p>2.2 <code>timeout</code></p> -<ul> -<li>این متغیر تعیین می‌کند که +<code>search</code> +مشخص کرده‌اید استفاده خواهد شد.</p> +</li> +</ul> +</li> +<li> +<p>2.2 <code>timeout</code></p> +<ul> +<li>این متغیر تعیین می‌کند که resolver چه مقدار زمانی باید منتظر جواب از سمت NS @@ -155,19 +291,19 @@ NS NS جواب نداد، از NS -های بعدی سوال کند.</li> -</ul> -</li> -<li> -<p>2.3 <code>attempts</code></p> -<ul> -<li>این متغیر تعین می‌کند که +های بعدی سوال کند.</li> +</ul> +</li> +<li> +<p>2.3 <code>attempts</code></p> +<ul> +<li>این متغیر تعین می‌کند که resolver در صورت جواب ندادن توسط NS -باید در نهایت چند کوئری دیگر ارسال کند.</li> -</ul> -<p>برای مثال اگر اولین +باید در نهایت چند کوئری دیگر ارسال کند.</li> +</ul> +<p>برای مثال اگر اولین NS پاسخ نداد، سوال از NS @@ -178,12 +314,12 @@ attempts attempts مجوع سوال ها از همه NS -ها است.)</p> -</li> -<li> -<p>2.4 <code>rotate</code></p> -<ul> -<li>به صورت پیشفرض کوئری های +ها است.)</p> +</li> +<li> +<p>2.4 <code>rotate</code></p> +<ul> +<li>به صورت پیشفرض کوئری های DNS همه برای اولین NS @@ -194,50 +330,50 @@ NS ها تقسیم کنیم، کافیست از این متغیر استفاده کنیم. اینکار باعث می‌شود که هر کوئری ها به صورت چرخشی به ترتیب به NS -های لیست شده ارسال شود.</li> -</ul> -</li> -</ul> -</li> -</ul> -<hr> -<ul> -<li>3 <code>search</code> +های لیست شده ارسال شود.</li> +</ul> +</li> +</ul> +</li> +</ul> +<hr> +<ul> +<li>3 <code>search</code> همانطور که در مثال بالا گفتم، ما نام دامنه ها را تنظیم می‌کنیم که حداقل وقتی یک نقطه دارند، resolver آنها را دامنه‌ در سطح اینترنت در نظر بگیرد و به NS کوئری بزند. ولی اگر هیچ نقطه‌ای نداشت و یا شما -<code>ndots</code> +<code>ndots</code> را بیشتر یا مساوی با 2 نتظیم کرده باشید، -<code>hostname</code> +<code>hostname</code> سیستم شما به آخر آن دامنه اضافه خواهد شد و یک دامنه داخلی (local) تلقی خواهد شد. اما اگر می‌خواهید قبل از اضافه شدن -<code>hostname</code> -به آن چیز دیگری اضافه کنید، کافیست متغیر سرچ را تعریف کنید و یک یا چند مقدار برای آن تعیین کنید.</li> -</ul> -<hr> -<h3 id="سرویس-systemd-resolve">سرویس systemd-resolve</h3> -<p>اگر به فایل +<code>hostname</code> +به آن چیز دیگری اضافه کنید، کافیست متغیر سرچ را تعریف کنید و یک یا چند مقدار برای آن تعیین کنید.</li> +</ul> +<hr> +<h3 id="سرویس-systemd-resolve">سرویس systemd-resolve +</h3><p>اگر به فایل /etc/resolve.conf نگاه کنید، می‌بینید که یک ns برای شما تنظیم شده است که IP -آن داخلی است.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl"># cat /etc/resolve.conf -</span></span><span class="line"><span class="cl">nameserver 127.0.0.53 -</span></span></code></pre></td></tr></table> -</div> -</div><p>همانطور که توی نکته‌ای در مقدمه این پست گفتم، +آن داخلی است.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl"># cat /etc/resolve.conf +</span></span><span class="line"><span class="cl">nameserver 127.0.0.53 +</span></span></code></pre></td></tr></table> +</div> +</div><p>همانطور که توی نکته‌ای در مقدمه این پست گفتم، سیستم عاملی هایی که از systemd استفاده می‌کنند معمولا سرویس @@ -249,115 +385,107 @@ IP 127.0.0.53 و 127.0.0.54 -شنود می‌کند.</p> -<p>این سرویس خودش یک کانفیگ در -<code>etc/ststemd/resolved.conf/</code> -دارد.</p> -<p>اگر داخل این فایل را نگاه کنیم، می‌بنیم که در قسمت +شنود می‌کند.</p> +<p>این سرویس خودش یک کانفیگ در +<code>etc/ststemd/resolved.conf/</code> +دارد.</p> +<p>اگر داخل این فایل را نگاه کنیم، می‌بنیم که در قسمت ‌DNS می‌توان NS های بالاتر را وارد کرد، اینکار باعث می‌شود که سیستم شما وقتی یک دامنه را در حافظه کش خود نداشت، از NS -های بالاتر که در این فایل تنظیم شده است سوال کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">[Resolve] -</span></span><span class="line"><span class="cl">DNS=1.1.1.1 8.8.8.8 -</span></span></code></pre></td></tr></table> -</div> -</div><p>ابته تاکید کنم در صورتی از این +های بالاتر که در این فایل تنظیم شده است سوال کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">[Resolve] +</span></span><span class="line"><span class="cl">DNS=1.1.1.1 8.8.8.8 +</span></span></code></pre></td></tr></table> +</div> +</div><p>ابته تاکید کنم در صورتی از این NS ها استفاده می‌شود که شما ‌از 127.0.0.53 و 127.0.0.54 در کانفیگ /etc/resolve.conf -استفاده کرده باشید.</p> -<blockquote> -<p>تفاوت 127.0.0.54 این است که هر کوئری را مستقیم به +استفاده کرده باشید.</p> +<blockquote> +<p>تفاوت 127.0.0.54 این است که هر کوئری را مستقیم به NS بالاتر ارسال خواهد کرد و از دیتای کش شده استفاده نمی‌کند. -ولی 127.0.0.53 از قابلیت کش استفاده می‌کند.</p> -</blockquote> -<hr> -<h3 id="مثال">مثال</h3> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt">10 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">nameserver 1.1.1.1 -</span></span><span class="line"><span class="cl">nameserver 8.8.8.8 -</span></span><span class="line"><span class="cl">nameserver 9.9.9.9 -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">options ndots:1 -</span></span><span class="line"><span class="cl">options timeout:2 -</span></span><span class="line"><span class="cl">options attempts:3 -</span></span><span class="line"><span class="cl">options rotate -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">search server1 server2 -</span></span></code></pre></td></tr></table> -</div> -</div><hr> -<h3 id="سخنی-با-شما">سخنی با شما</h3> -<p>این را بگم که +ولی 127.0.0.53 از قابلیت کش استفاده می‌کند.</p> +</blockquote> +<hr> +<h3 id="مثال">مثال +</h3><div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">nameserver 1.1.1.1 +</span></span><span class="line"><span class="cl">nameserver 8.8.8.8 +</span></span><span class="line"><span class="cl">nameserver 9.9.9.9 +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">options ndots:1 +</span></span><span class="line"><span class="cl">options timeout:2 +</span></span><span class="line"><span class="cl">options attempts:3 +</span></span><span class="line"><span class="cl">options rotate +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">search server1 server2 +</span></span></code></pre></td></tr></table> +</div> +</div><hr> +<h3 id="سخنی-با-شما">سخنی با شما +</h3><p>این را بگم که DNS به صورت recursive(بازگشتی) عمل می‌کنه، این یعنی وقتی شما یک کوئری ارسال می‌کنید، این کوئری هر بار به یک سرور بالاتر ارسال می‌شود تا در نهایت به جواب برسه. و خب این موضوع خودش در نهایت یک جریان -خیلی جالب داره که امیدوارم یک روز اون رو هم بنویسم :)</p> -</span> - - - Transpiler | ترجمه کد C به Bash - https://bit-orbit.github.io/p/transpiler-%D8%AA%D8%B1%D8%AC%D9%85%D9%87-%DA%A9%D8%AF-c-%D8%A8%D9%87-bash/ - Sat, 27 Jul 2024 18:27:21 +0330 - - https://bit-orbit.github.io/p/transpiler-%D8%AA%D8%B1%D8%AC%D9%85%D9%87-%DA%A9%D8%AF-c-%D8%A8%D9%87-bash/ - <img src="https://bit-orbit.github.io/images/post/transpiler.jpg" alt="Featured image of post Transpiler | ترجمه کد C به Bash" /><span style='font-size: 25px'> -<p>همان‌طور که می‌دانید، کامپایلرها سورس کد ما که به یک زبان سطح بالا نوشته شده است را به یک زبان سطح پایین‌تر ترجمه می‌کنند. برای مثال، کامپایلر کدی که به زبان +خیلی جالب داره که امیدوارم یک روز اون رو هم بنویسم :)</p> +</span>Transpiler | ترجمه کد C به Bashhttps://bit-orbit.github.io/p/transpiler-%D8%AA%D8%B1%D8%AC%D9%85%D9%87-%DA%A9%D8%AF-c-%D8%A8%D9%87-bash/Sat, 27 Jul 2024 18:27:21 +0330https://bit-orbit.github.io/p/transpiler-%D8%AA%D8%B1%D8%AC%D9%85%D9%87-%DA%A9%D8%AF-c-%D8%A8%D9%87-bash/<img src="https://bit-orbit.github.io/images/post/transpiler.jpg" alt="Featured image of post Transpiler | ترجمه کد C به Bash" /><span style='font-size: 25px'> +<p>همان‌طور که می‌دانید، کامپایلرها سورس کد ما که به یک زبان سطح بالا نوشته شده است را به یک زبان سطح پایین‌تر ترجمه می‌کنند. برای مثال، کامپایلر کدی که به زبان C نوشته شده است را به زبان اسمبلی ترجمه می‌کند. همچنین باید ذکر کنم که در زبان C، -پس از ترجمه به اسمبلی، کد به زبان ماشین که می‌تواند مستقیماً روی سخت‌افزار اجرا شود، ترجمه می‌شود.</p> -<p>اما ما نرم افزاری داریم که سورس کد را به یک سورس کد دیگر ترجمه می‌کند، به این نوع نرم افزار ها +پس از ترجمه به اسمبلی، کد به زبان ماشین که می‌تواند مستقیماً روی سخت‌افزار اجرا شود، ترجمه می‌شود.</p> +<p>اما ما نرم افزاری داریم که سورس کد را به یک سورس کد دیگر ترجمه می‌کند، به این نوع نرم افزار ها transpiler گفته می‌شود. برای مثال شما یک کد را به زبان پایتون نوشته‌اید را می‌توانید با برنامه مشخصی تبدیل کنید به زبان -JavaScrip.</p> -<p>اگر به نظرتون +JavaScrip.</p> +<p>اگر به نظرتون Bash سینتکس سختی داره، خب کافیه C بلد باشین و کدتون رو به زبان C بنویسید، و با -<a class="link" href="https://pnut.sh/" target="_blank" rel="noopener" - >Pnut.sh</a> +<a class="link" href="https://pnut.sh/" target="_blank" rel="noopener" +>Pnut.sh</a> به Bash -ترجمه کنید!</p> -<p>البته محدودیت هایی وجود داره</p> -<ul> -<li>عدد اعشار, goto, switch ساپورت نمی‌شود.</li> -<li>همچنین نمی‌توان یک متغییر را رفرنس کرد(&amp;)</li> -</ul> -<p>البته باید در نظر داشت که +ترجمه کنید!</p> +<p>البته محدودیت هایی وجود داره</p> +<ul> +<li>عدد اعشار, goto, switch ساپورت نمی‌شود.</li> +<li>همچنین نمی‌توان یک متغییر را رفرنس کرد(&amp;)</li> +</ul> +<p>البته باید در نظر داشت که Bash جایگزین C @@ -366,77 +494,69 @@ C نوشته شده رو نمی‌شود به Bash ترجمه کرد. با این حال اینکار برای تبدیل بعضی از کد های ساده به یک کد -پرتابل می‌تواند مفید باشد</p> -</span> - - - Crul Paste - https://bit-orbit.github.io/p/crul-paste/ - Wed, 06 Mar 2024 23:50:46 +0330 - - https://bit-orbit.github.io/p/crul-paste/ - <img src="https://bit-orbit.github.io/images/post/curlpaste.jpg" alt="Featured image of post Crul Paste" /><p>اول بیایید ببینم +پرتابل می‌تواند مفید باشد</p> +</span>Crul Pastehttps://bit-orbit.github.io/p/crul-paste/Wed, 06 Mar 2024 23:50:46 +0330https://bit-orbit.github.io/p/crul-paste/<img src="https://bit-orbit.github.io/images/post/curlpaste.jpg" alt="Featured image of post Crul Paste" /><p>اول بیایید ببینم FileBin چیه! قبل از اون هم فکر می‌کنم همه بدونیم -<a class="link" href="https://virgool.io/@m_shabane/pastebin-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B1%D8%A7-%D9%87%DA%A9%D8%B1-%D9%87%D8%A7-%D8%B9%D8%A7%D8%B4%D9%82-%D8%A2%D9%86-%D9%87%D8%A7%D8%B3%D8%AA%D9%86%D8%AF-swafqm95gttp" target="_blank" rel="noopener" - >pastebin</a> +<a class="link" href="https://virgool.io/@m_shabane/pastebin-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B1%D8%A7-%D9%87%DA%A9%D8%B1-%D9%87%D8%A7-%D8%B9%D8%A7%D8%B4%D9%82-%D8%A2%D9%86-%D9%87%D8%A7%D8%B3%D8%AA%D9%86%D8%AF-swafqm95gttp" target="_blank" rel="noopener" +>pastebin</a> چیه. اگه نمی‌دونید خیلی ساده باید بگم یک سایتی که فقط روی اون متن به اشتراک می‌ذارن -مثلا ممکنه ارور ها یا حتی سورس یک برنامه باشه!</p> -<p>اما +مثلا ممکنه ارور ها یا حتی سورس یک برنامه باشه!</p> +<p>اما FileBin ها بجای تسکت فایل های شما رو نگهداری می‌کنند و به شما لینکی ارائه می‌کنند که فایل را برای دیگران اشتراک بگذارید، نمونه های زیادی هم وجود داره مثل -<a class="link" href="https://wormhole.app" target="_blank" rel="noopener" - >https://wormhole.app</a></p> -<p>اما خب از اونجایی که من زندگی‌ام رو توی ترمینال می‌گذرونم و ترمینال رو به باز کردن مرورگر برای اشتراک یک فایل ترجیح می‌دم، پس از +<a class="link" href="https://wormhole.app" target="_blank" rel="noopener" +>https://wormhole.app</a></p> +<p>اما خب از اونجایی که من زندگی‌ام رو توی ترمینال می‌گذرونم و ترمینال رو به باز کردن مرورگر برای اشتراک یک فایل ترجیح می‌دم، پس از FileBin هایی استفاده می‌کنم که بتونم تحت ترمینال به سادگی فایلم رو به اشتراک بذارم. برای مثال -<a class="link" href="https://0x0.st" target="_blank" rel="noopener" - >https://0x0.st</a></p> -<p>وقتی این رو سایت رو باز کنید هیچ گزینه‌ای برای انتخاب فایل و آپلود نمی‌بینید! خب پس چطور باید یک فایل را برای سایت آپلود کنید؟ +<a class="link" href="https://0x0.st" target="_blank" rel="noopener" +>https://0x0.st</a></p> +<p>وقتی این رو سایت رو باز کنید هیچ گزینه‌ای برای انتخاب فایل و آپلود نمی‌بینید! خب پس چطور باید یک فایل را برای سایت آپلود کنید؟ کافیه یک ریکوئست HTTP POST خیلی ساده به سایت بزنید که شامل فایتون باشه. این کار رو خیلی ساده می‌شه با curl -انجام داد.</p> -<p>مثلا بیایین اشتراک یک فایل رو ببینیم</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl https://0x0.st -F <span class="nv">file</span><span class="o">=</span>@/path/to/file -</span></span><span class="line"><span class="cl"><span class="c1"># https://0x0.st/zWKo.txt</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>این سایت خیلی خوبه +انجام داد.</p> +<p>مثلا بیایین اشتراک یک فایل رو ببینیم</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl https://0x0.st -F <span class="nv">file</span><span class="o">=</span>@/path/to/file +</span></span><span class="line"><span class="cl"><span class="c1"># https://0x0.st/zWKo.txt</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>این سایت خیلی خوبه اما از زمانی به بعد دیگه این سایت کاری که من نیاز دارم رو کفاف نداد! برای مثال من نیاز دارم فایلم بعد از اولین دانلود از روی سرور حذف بشه و از این مهم تر نیاز داشتم که چندین فایل رو با یک یوزنیم مشخص اپلود کنم که خب شخصی که قرار باشه فایل ها رو دانلود کنه، کافیه از یوزنیم استفاده کنه که راحت تر قابل حفظ کردن و اشتراک گذاشتنه. اینطوری بود که گفتم FileBin -خودم رو بنویسم :)</p> -<hr> -<p><strong>بیایید فیچر ها و روش استفاده ازش رو با هم ببینیم.</strong></p> -<p>فرض کنید شما یک فایل دارید که می‌خواهید با من به اشتراک بگذارید، +خودم رو بنویسم :)</p> +<hr> +<p><strong>بیایید فیچر ها و روش استفاده ازش رو با هم ببینیم.</strong></p> +<p>فرض کنید شما یک فایل دارید که می‌خواهید با من به اشتراک بگذارید، خیلی ساده ترمینال رو باز می‌کنید و با یک دستور فایل رو با یک URL -تقریبا تصادفی منتشر می‌کنید.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">file</span><span class="o">=</span>@/tmp/theFile.fli -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/theFile.fli</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>دقت کنید من از سوییچ +تقریبا تصادفی منتشر می‌کنید.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">file</span><span class="o">=</span>@/tmp/theFile.fli +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/theFile.fli</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>دقت کنید من از سوییچ -L استفاده می‌کنم، دلیل اینکار این هست که خب ممکنه سایت شما رو ریدایرکت کنه. مثلا از @@ -445,604 +565,563 @@ http https. برای همین این سوییچ رو استفاده می‌کنم. با این سوییچ دیگه نیازی نیست https:// -رو هم بنویسیم!</p> -</blockquote> -<p>حالا اگه نیاز دارین که فایلتون بعد از اولین دانلود از روی سرور حذف بشه و دیگه در دسترس نباشه +رو هم بنویسیم!</p> +</blockquote> +<p>حالا اگه نیاز دارین که فایلتون بعد از اولین دانلود از روی سرور حذف بشه و دیگه در دسترس نباشه کافیه از کلمه -<code>once</code> +<code>once</code> بجای -<code>file</code> -استفاده کنید.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@/tmp/theFile.fli -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/theFile_GKug7xb.fli</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>تا اینجای کار همه +<code>file</code> +استفاده کنید.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@/tmp/theFile.fli +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/theFile_GKug7xb.fli</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>تا اینجای کار همه URL های هر فایلی به صورت تصادفی هست و من نیاز دارم که چندین فایل رو زیر یک یوزنیم مشخص مثل -<code>arya</code> +<code>arya</code> قرار بدم. اینطوری وقتی قراره یک فایل رو برای همکارم توی شرکت بفرستم خیلی ساده ازش درخواست می‌کنم در سایت به ادرس -<code>/arya</code> +<code>/arya</code> بره. حالا چطوری اینکارو بکنیم خیلی ساده بجای -<code>once</code> +<code>once</code> یا -<code>file</code>, +<code>file</code>, همون -<code>username</code> -رو می‌نویسیم(توی مثال من از نام <strong><em>arya</em></strong> استفاده می‌کنیم)</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">arya</span><span class="o">=</span>@/tmp/pic.jpg -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/arya</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>تا اینجای کار مثلا شما چند بار چند فایل مختلف رو زیر یک یوزنیم قرار دادین -حالا چطور میشه همه اونها رو باهم دانلود کرد؟</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir/arya <span class="p">|</span> wget -i - -</span></span></code></pre></td></tr></table> -</div> -</div><p>حالا به این فکر کنید که یکنفر میاد و با یوزنیم های معقول ریکوئست میزنه به سایت و +<code>username</code> +رو می‌نویسیم(توی مثال من از نام <strong><em>arya</em></strong> استفاده می‌کنیم)</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">arya</span><span class="o">=</span>@/tmp/pic.jpg +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/arya</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>تا اینجای کار مثلا شما چند بار چند فایل مختلف رو زیر یک یوزنیم قرار دادین +حالا چطور میشه همه اونها رو باهم دانلود کرد؟</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir/arya <span class="p">|</span> wget -i - +</span></span></code></pre></td></tr></table> +</div> +</div><p>حالا به این فکر کنید که یکنفر میاد و با یوزنیم های معقول ریکوئست میزنه به سایت و فایل های بقیه رو دانلود می‌کنه، اینجاست که پسورد به کار میاد. برای گذاشتن پسورد روی هر فایل کافیه توی خود URL سایت پسورد رو بعنوان http parametr -بنویسد.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L <span class="s1">&#39;octocat.ir/?password=12345678&#39;</span> -F <span class="nv">once</span><span class="o">=</span>@/Desktop/TopSecret.fli -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/file/TopSecret/?password=12345678</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>اینجا دقت کنید که باید از کوتیشن استفاده کنیم چون علامت مساوی و علامت سوال رو bash وایلد کارد می‌بینه.</p> -</blockquote> -<p>برای دانلود هر فایلی هم که پسورد داره کافیه دقیقا مثل مثال قبلی عمل کنید و پسورد رو توی +بنویسد.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L <span class="s1">&#39;octocat.ir/?password=12345678&#39;</span> -F <span class="nv">once</span><span class="o">=</span>@/Desktop/TopSecret.fli +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/file/TopSecret/?password=12345678</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>اینجا دقت کنید که باید از کوتیشن استفاده کنیم چون علامت مساوی و علامت سوال رو bash وایلد کارد می‌بینه.</p> +</blockquote> +<p>برای دانلود هر فایلی هم که پسورد داره کافیه دقیقا مثل مثال قبلی عمل کنید و پسورد رو توی http parametr -وارد کنید</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ wget <span class="s1">&#39;octocat.ir/file/TopSecret/?password=12345678&#39;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>براتون سواله که چرا پسورد روی توی +وارد کنید</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ wget <span class="s1">&#39;octocat.ir/file/TopSecret/?password=12345678&#39;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>براتون سواله که چرا پسورد روی توی URL گذاشتم؟ می‌شد که مثلا توی http header پسورد بگیریم و بدیم، پس چرا توی -URL?</p> -<p>اینکار برای این هست که دسترسی به فایل ساده باشه. مثلا من وقتی می‌خام فایلی رو برای همکارم بفرستم +URL?</p> +<p>اینکار برای این هست که دسترسی به فایل ساده باشه. مثلا من وقتی می‌خام فایلی رو برای همکارم بفرستم و خب فرض کنم همکار من از header ها چیزی نمی‌دونه، و فقط با یک کلیک باید بتونه به فایل دسترسی پیدا کنه، اینجاست که من فقط یک URL -به اون می‌گم :)</p> -<hr> -<p>بعضی از ابزار ها +به اون می‌گم :)</p> +<hr> +<p>بعضی از ابزار ها hackable هستند! این به معنی ضعف امنیتی نیست، بلکه به این اشاره می‌کنه ابزار به روشی طراحی -شده که کاربران می‌تونند خارج از هدف اصلی اون ابزار از اون استفاه کنند.</p> -<p>برای مثال ابزار که من درست کردم برای اشتراک فایل هست، اما بنظرتون میشه یک دایرکتوری و یا یک متن رو هم باهاش به اشتراک گذاشت؟</p> -<p>قطعا! اما چطوری؟</p> -<p>برای اینکه یک دایرکتوری با تمامی ساب دایرکتوری هاش رو بفرستین +شده که کاربران می‌تونند خارج از هدف اصلی اون ابزار از اون استفاه کنند.</p> +<p>برای مثال ابزار که من درست کردم برای اشتراک فایل هست، اما بنظرتون میشه یک دایرکتوری و یا یک متن رو هم باهاش به اشتراک گذاشت؟</p> +<p>قطعا! اما چطوری؟</p> +<p>برای اینکه یک دایرکتوری با تمامی ساب دایرکتوری هاش رو بفرستین کافیه از -<code>tar</code> -استفاده کنید.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ tar -cf - ~/Pictures <span class="p">|</span> curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@- -</span></span><span class="line"><span class="cl"><span class="c1"># &#39;octocat.ir/file/_nUiuRPW/</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>با اینکار با استفاده از +<code>tar</code> +استفاده کنید.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ tar -cf - ~/Pictures <span class="p">|</span> curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@- +</span></span><span class="line"><span class="cl"><span class="c1"># &#39;octocat.ir/file/_nUiuRPW/</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>با اینکار با استفاده از tar تمامی فایل ها و دایرکتوری های مثلا پوشه -<em>~/Pictures</em> +<em>~/Pictures</em> رو به آرشیو -<code>tar</code> +<code>tar</code> تبدیل می‌کنید و بعد خروجی رو بعنوان ورودی به -<code>curl</code> -می‌فرستین.</p> -<p>حالا به این فکر کنید که بخواهیم یک متن رو منتشر کنیم، راهکار دقیقا مشابه قبلیه. +<code>curl</code> +می‌فرستین.</p> +<p>حالا به این فکر کنید که بخواهیم یک متن رو منتشر کنیم، راهکار دقیقا مشابه قبلیه. به این شکل که یک متن رو با استفاده از -<code>echo</code> +<code>echo</code> به ورودی استاندارد -<code>curl</code> -می‌فرستیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ <span class="nb">echo</span> <span class="s1">&#39;Some Random Text&#39;</span> <span class="p">|</span> curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@- -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/file/-_W00DSbS/</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>اینطوری خیلی راحت می‌شه خروجی هر کامندی رو روی به اشتراک گذاشت</p> -</blockquote> -<hr> -<p>سایت من توی آدرس +<code>curl</code> +می‌فرستیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ <span class="nb">echo</span> <span class="s1">&#39;Some Random Text&#39;</span> <span class="p">|</span> curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@- +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/file/-_W00DSbS/</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>اینطوری خیلی راحت می‌شه خروجی هر کامندی رو روی به اشتراک گذاشت</p> +</blockquote> +<hr> +<p>سایت من توی آدرس octocat.ir -در دسترسه، خوشحال می‌شم ازش استفاده کنید :)</p> -<blockquote> -<p>اینو بدونید که سایت به صورت دیفالت فایل ها رو برای 24 ساعت نگه‌میداره</p> -</blockquote> -<p>این سرویس رو منبع باز روی -<a class="link" href="https://github.com/shabane/CurlPaste/" target="_blank" rel="noopener" - >گیتهاب</a> -گذاشتم، اگه چیزی خواستید می‌تونید بهش اضافه کنید و یا مشکلاتش رو پچ کنید.</p> -<p>و اگه می‌خواهید برای خودتون این سرویس رو بیارید بالا از ایمیج داکر استفاده کنید</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">docker run -p 80:80 mshabane/curlpaste:latest -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>اگه نیاز دارین تا فایل ها برای تایم بالاتری نگه‌داری بشه، متغییر -<em>HOURS</em> +در دسترسه، خوشحال می‌شم ازش استفاده کنید :)</p> +<blockquote> +<p>اینو بدونید که سایت به صورت دیفالت فایل ها رو برای 24 ساعت نگه‌میداره</p> +</blockquote> +<p>این سرویس رو منبع باز روی +<a class="link" href="https://github.com/shabane/CurlPaste/" target="_blank" rel="noopener" +>گیتهاب</a> +گذاشتم، اگه چیزی خواستید می‌تونید بهش اضافه کنید و یا مشکلاتش رو پچ کنید.</p> +<p>و اگه می‌خواهید برای خودتون این سرویس رو بیارید بالا از ایمیج داکر استفاده کنید</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">docker run -p 80:80 mshabane/curlpaste:latest +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>اگه نیاز دارین تا فایل ها برای تایم بالاتری نگه‌داری بشه، متغییر +<em>HOURS</em> داخل فایل -<em>.env</em> -رو تغییر بدین.</p> -</blockquote> -<hr> -<p>ایده های دیگه‌ای هم برای سایت دارم، برای مثال اینکه کاربر بتونه زمان انقضای +<em>.env</em> +رو تغییر بدین.</p> +</blockquote> +<hr> +<p>ایده های دیگه‌ای هم برای سایت دارم، برای مثال اینکه کاربر بتونه زمان انقضای هر فایل رو خودش مشخص کنه. -مثلا به این شکل</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -L octocat.ir -F <span class="nv">arya_1</span><span class="o">=</span>/path/to/file -</span></span></code></pre></td></tr></table> -</div> -</div><p>اینطوری میشه یک زمان انقضا بر اساس ساعت برای هر فایل ایجاد کرد.</p> -<p>و خب همچنین میشه یک کوتاه کننده لینک هم بهش اضافه کنم، و لینک های کوتاه شده رو -ریدایرکت کنم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -L octocat.ir -F <span class="nv">url</span><span class="o">=</span><span class="s1">&#39;https://example.com/some/looooong/url/&#39;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>اگه اینها رو اضافه کنم، این پست رو اپدیت می‌کنم ولی خوشحال می‌شم شما -توی این پروژه مشارکت کنید.</p> - - - - Linux File Locking چیست؟ - https://bit-orbit.github.io/p/linux-file-locking-%DA%86%DB%8C%D8%B3%D8%AA/ - Fri, 09 Feb 2024 01:49:42 +0330 - - https://bit-orbit.github.io/p/linux-file-locking-%DA%86%DB%8C%D8%B3%D8%AA/ - <img src="https://bit-orbit.github.io/images/post/flilock.jpeg" alt="Featured image of post Linux File Locking چیست؟" /><p>بیایید قبل از اینکه راه حل را ببینیم، اول مشکل را دقیق تر برسی کنیم. +مثلا به این شکل</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -L octocat.ir -F <span class="nv">arya_1</span><span class="o">=</span>/path/to/file +</span></span></code></pre></td></tr></table> +</div> +</div><p>اینطوری میشه یک زمان انقضا بر اساس ساعت برای هر فایل ایجاد کرد.</p> +<p>و خب همچنین میشه یک کوتاه کننده لینک هم بهش اضافه کنم، و لینک های کوتاه شده رو +ریدایرکت کنم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -L octocat.ir -F <span class="nv">url</span><span class="o">=</span><span class="s1">&#39;https://example.com/some/looooong/url/&#39;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>اگه اینها رو اضافه کنم، این پست رو اپدیت می‌کنم ولی خوشحال می‌شم شما +توی این پروژه مشارکت کنید.</p>Linux File Locking چیست؟https://bit-orbit.github.io/p/linux-file-locking-%DA%86%DB%8C%D8%B3%D8%AA/Fri, 09 Feb 2024 01:49:42 +0330https://bit-orbit.github.io/p/linux-file-locking-%DA%86%DB%8C%D8%B3%D8%AA/<img src="https://bit-orbit.github.io/images/post/flilock.jpeg" alt="Featured image of post Linux File Locking چیست؟" /><p>بیایید قبل از اینکه راه حل را ببینیم، اول مشکل را دقیق تر برسی کنیم. به این فکر کنید که شما یک فایلی دارید که شامل یک عدد است که اشاره می‌کند به مقدار اعتباری که کاربر در حسابش دارد. حالا اگر قرار باشد یک پورسه اون مقدار را بر اساس ارائه سرویسی، از حساب کاربر کم کند، و پروسه دیگری به دلیل افزایش اعتبار، مقداری را به حساب -کاربر اضافه کند، چه مشکلاتی اتفاق می‌افتد؟</p> -<p>برای اینکه دقیق تر بشیم، این روند رو باهم پیش می‌بریم. +کاربر اضافه کند، چه مشکلاتی اتفاق می‌افتد؟</p> +<p>برای اینکه دقیق تر بشیم، این روند رو باهم پیش می‌بریم. فرض کنید فایلی به اسم amount.txt مقدار 100 داخلش نوشته شده است. و دو پروسه کم و اضافه کردن را اجرا می‌کنیم. توی این مثال،‌ ما می‌خواهیم مقدار 20 از حساب کاربر کم و مقدار 50 به حساب کاربر -اضافه کنیم، پس ما انتظار داریم در انتها فایل ما مقدار 130 را درونش ذخیره کرده باشد.</p> -<ul> -<li>پروسه اول فایل را می‌خواند و مقدار 100 را در حاظه‌اش نگه می‌دارد</li> -<li>پروسه دوم فایل را می‌خواند و مقدار 100 را در حاظه‌اش نگه می‌دارد</li> -<li>پروسه اول مقدار 20 را از 100 کم می‌کند و مقدار 80 را در حافظه ذخیره می‌کند</li> -<li>پروسه دوم مقدار 50 را به 100 اضافه می‌کند و مقدار 150 را در حافظه ذخیره می‌کند</li> -<li>پروسه اول مقدار 80 را در فایل ذخیره می‌کند</li> -<li>پروسه دوم مقدار 150 را در فایل ذخیره می‌کند</li> -</ul> -<p>همینطور که همه ما انتظار داشتیم، ما باید در این فایل مقدار 130 را ذخیره می‌کردیم، +اضافه کنیم، پس ما انتظار داریم در انتها فایل ما مقدار 130 را درونش ذخیره کرده باشد.</p> +<ul> +<li>پروسه اول فایل را می‌خواند و مقدار 100 را در حاظه‌اش نگه می‌دارد</li> +<li>پروسه دوم فایل را می‌خواند و مقدار 100 را در حاظه‌اش نگه می‌دارد</li> +<li>پروسه اول مقدار 20 را از 100 کم می‌کند و مقدار 80 را در حافظه ذخیره می‌کند</li> +<li>پروسه دوم مقدار 50 را به 100 اضافه می‌کند و مقدار 150 را در حافظه ذخیره می‌کند</li> +<li>پروسه اول مقدار 80 را در فایل ذخیره می‌کند</li> +<li>پروسه دوم مقدار 150 را در فایل ذخیره می‌کند</li> +</ul> +<p>همینطور که همه ما انتظار داشتیم، ما باید در این فایل مقدار 130 را ذخیره می‌کردیم، اما پروسه های ما به دلیل اینکه هیچ همکاری و یا هیچ مکانیزمی دیگری ندارند که این مقدار ها را به یکدیگر اطلاع دهند، مشکل -<a class="link" href="https://en.wikipedia.org/wiki/Race_condition#Software" target="_blank" rel="noopener" - >Race condition</a> -رخ می‌دهد.</p> -<p>یکی از راه حل های این مشکل +<a class="link" href="https://en.wikipedia.org/wiki/Race_condition#Software" target="_blank" rel="noopener" +>Race condition</a> +رخ می‌دهد.</p> +<p>یکی از راه حل های این مشکل lock کردن فایل توسط هر پروسه است، که به این کار file locking -گفته می‌شود.</p> -<p><strong>file locking</strong> -یک مکانیزم برای کنترل دسترسی چندین پروسه به یک فایل است.</p> -<blockquote> -<p>توی لینوکس یکی از دستورات خطرناکی که داریم دستور +گفته می‌شود.</p> +<p><strong>file locking</strong> +یک مکانیزم برای کنترل دسترسی چندین پروسه به یک فایل است.</p> +<blockquote> +<p>توی لینوکس یکی از دستورات خطرناکی که داریم دستور sudo rm -rf / است. وقتی این دستور را اجرا کنیم کل فایل های لینوکس ما حذف می‌شود. دلیل اینکار این است که لینوکس به صورت پیشفرض فایل های باز شده را lock -نمی‌کند.</p> -</blockquote> -<p>با اینحال لینوکس دو مکانیزم مختلف -<em>advisory</em> و <em>mandatory</em> -را پشتیبانی می‌کند.</p> -<blockquote> -<p>توی این پست بیشتر تمرکز من روی مکانیزم +نمی‌کند.</p> +</blockquote> +<p>با اینحال لینوکس دو مکانیزم مختلف +<em>advisory</em> و <em>mandatory</em> +را پشتیبانی می‌کند.</p> +<blockquote> +<p>توی این پست بیشتر تمرکز من روی مکانیزم advisory locking(مشورتی) -است.</p> -</blockquote> -<p>این روش به این شکل عمل می‌کند که هیچ پروسه‌ای مجبور به اجرای این روش نیست و اگر حتی +است.</p> +</blockquote> +<p>این روش به این شکل عمل می‌کند که هیچ پروسه‌ای مجبور به اجرای این روش نیست و اگر حتی فایل توسط یک پروسه‌ای lock شده باشد، باز هم پروسه های دیگر می‌توانند به lock بودن فایل اهمیت ندهند و مقدار آن را تغییر دهند. این اتفاق به این دلیل می‌افتد که advisory lock -توسط سیستم عامل و یا فایل سیستم انجام نمی‌شود.</p> -<p>خب بیایید با یک مثال این فرایند را برسی کنیم. مثل مثال قبلی فرض کنید ما مقدار 100 +توسط سیستم عامل و یا فایل سیستم انجام نمی‌شود.</p> +<p>خب بیایید با یک مثال این فرایند را برسی کنیم. مثل مثال قبلی فرض کنید ما مقدار 100 را داخل فایل amount.txt -داریم و می‌خواهیم مقدار 20 از آن کم و مقدار 50 به آن اضافه کنیم.</p> -<ul> -<li>پروسه اول قبل از خواندن فایل، فایل را لاک می‌کند</li> -<li>پروسه دوم برای لاک کردن فایل اقدام می‌کند و از جایی که پروسه اول از پیش فایل را لاک کرده است، برای آزاد شدن لاک صبر می‌کند</li> -<li>پروسه اول مقدار 20 را از 100 کم می‌کند و مقدار 80 را درون فایل می‌نویسد</li> -<li>پروسه اول لاک فایل را آزاد می‌کند.</li> -<li>پروسه دوم فایل را لاک و مقدار جدید 80 را از فایل می‌خواند</li> -<li>پروسه دوم مقدار 50 را به 80 اضافه و مقدار 120 را درون فایل می‌نویسد</li> -<li>پروسه دوم لاک فایل را آزاد می‌کند تا پروسه های دیگر بتوانند با فایل کار کنند.</li> -</ul> -<hr> -<p>اگر شما می‌خواهید این مکانیزم را روی یک فایل اجرا کنید، دستور +داریم و می‌خواهیم مقدار 20 از آن کم و مقدار 50 به آن اضافه کنیم.</p> +<ul> +<li>پروسه اول قبل از خواندن فایل، فایل را لاک می‌کند</li> +<li>پروسه دوم برای لاک کردن فایل اقدام می‌کند و از جایی که پروسه اول از پیش فایل را لاک کرده است، برای آزاد شدن لاک صبر می‌کند</li> +<li>پروسه اول مقدار 20 را از 100 کم می‌کند و مقدار 80 را درون فایل می‌نویسد</li> +<li>پروسه اول لاک فایل را آزاد می‌کند.</li> +<li>پروسه دوم فایل را لاک و مقدار جدید 80 را از فایل می‌خواند</li> +<li>پروسه دوم مقدار 50 را به 80 اضافه و مقدار 120 را درون فایل می‌نویسد</li> +<li>پروسه دوم لاک فایل را آزاد می‌کند تا پروسه های دیگر بتوانند با فایل کار کنند.</li> +</ul> +<hr> +<p>اگر شما می‌خواهید این مکانیزم را روی یک فایل اجرا کنید، دستور flock -برای شما اینکار را خواهد کرد.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">flock <span class="o">[</span>options<span class="o">]</span> file<span class="p">|</span>directory <span class="nb">command</span> <span class="o">[</span>arguments<span class="o">]</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>این کامند در حالت عادی از شما یک فایل و یک دستور خواهد گرفت و مکانیزم +برای شما اینکار را خواهد کرد.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">flock <span class="o">[</span>options<span class="o">]</span> file<span class="p">|</span>directory <span class="nb">command</span> <span class="o">[</span>arguments<span class="o">]</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>این کامند در حالت عادی از شما یک فایل و یک دستور خواهد گرفت و مکانیزم advisory lock -را روی ان فایل اجرا خواهد کرد.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">flock /tmp/fli <span class="nb">echo</span> 12&gt;/tmp/fli -</span></span></code></pre></td></tr></table> -</div> -</div><p>برای اینکه روند را بهتر درک کنیم یک فایل +را روی ان فایل اجرا خواهد کرد.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">flock /tmp/fli <span class="nb">echo</span> 12&gt;/tmp/fli +</span></span></code></pre></td></tr></table> +</div> +</div><p>برای اینکه روند را بهتر درک کنیم یک فایل bash -می‌نویسیم که بتوانیم مثال اولیه را روی آن اجرا کنیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt">10 -</span><span class="lnt">11 -</span><span class="lnt">12 -</span><span class="lnt">13 -</span><span class="lnt">14 -</span><span class="lnt">15 -</span><span class="lnt">16 -</span><span class="lnt">17 -</span><span class="lnt">18 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="cp">#!/bin/bash -</span></span></span><span class="line"><span class="cl"><span class="cp"></span><span class="nv">file</span><span class="o">=</span><span class="s2">&#34;balance.dat&#34;</span> -</span></span><span class="line"><span class="cl"><span class="nv">value</span><span class="o">=</span><span class="k">$(</span>cat <span class="nv">$file</span><span class="k">)</span> -</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Read current balance:</span><span class="nv">$value</span><span class="s2">&#34;</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl"><span class="c1">#sleep 10 seconds to simulate business calculation</span> -</span></span><span class="line"><span class="cl"><span class="nv">progress</span><span class="o">=</span><span class="m">10</span> -</span></span><span class="line"><span class="cl"><span class="k">while</span> <span class="o">[[</span> <span class="nv">$progress</span> -lt <span class="m">101</span> <span class="o">]]</span><span class="p">;</span> <span class="k">do</span> -</span></span><span class="line"><span class="cl"> <span class="nb">echo</span> -n -e <span class="s2">&#34;\033[77DCalculating new balance..</span><span class="nv">$progress</span><span class="s2">%&#34;</span> -</span></span><span class="line"><span class="cl"> sleep <span class="m">1</span> -</span></span><span class="line"><span class="cl"> <span class="nv">progress</span><span class="o">=</span><span class="k">$((</span><span class="m">10</span><span class="o">+</span>progress<span class="k">))</span> -</span></span><span class="line"><span class="cl"><span class="k">done</span> -</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;&#34;</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl"><span class="nv">value</span><span class="o">=</span><span class="k">$((</span>value+<span class="nv">$1</span><span class="k">))</span> -</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Write new balance (</span><span class="nv">$value</span><span class="s2">) back to </span><span class="nv">$file</span><span class="s2">.&#34;</span> -</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="nv">$value</span> &gt; <span class="s2">&#34;</span><span class="nv">$file</span><span class="s2">&#34;</span> -</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Done.&#34;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>ما این فایل را همزمان با دو ترمینال اجرا می‌کنیم.</p> -<p><img src="https://bit-orbit.github.io/images/post/advisory_lock.gif" - - - - loading="lazy" - - alt="advisory lock" - - -></p> -<p>همینطور که می‌بینید پروسه دوم برای اینکه محتوای فایل را تغییر دهد، باید صبر کند تا لاک فایل -آزاد شود.</p> -<hr> -<p>این پست خلاصه‌ای بود از -<a class="link" href="https://www.baeldung.com/linux/file-locking" target="_blank" rel="noopener" - >این بلاگ</a> +می‌نویسیم که بتوانیم مثال اولیه را روی آن اجرا کنیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="cp">#!/bin/bash +</span></span></span><span class="line"><span class="cl"><span class="cp"></span><span class="nv">file</span><span class="o">=</span><span class="s2">&#34;balance.dat&#34;</span> +</span></span><span class="line"><span class="cl"><span class="nv">value</span><span class="o">=</span><span class="k">$(</span>cat <span class="nv">$file</span><span class="k">)</span> +</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Read current balance:</span><span class="nv">$value</span><span class="s2">&#34;</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="c1">#sleep 10 seconds to simulate business calculation</span> +</span></span><span class="line"><span class="cl"><span class="nv">progress</span><span class="o">=</span><span class="m">10</span> +</span></span><span class="line"><span class="cl"><span class="k">while</span> <span class="o">[[</span> <span class="nv">$progress</span> -lt <span class="m">101</span> <span class="o">]]</span><span class="p">;</span> <span class="k">do</span> +</span></span><span class="line"><span class="cl"> <span class="nb">echo</span> -n -e <span class="s2">&#34;\033[77DCalculating new balance..</span><span class="nv">$progress</span><span class="s2">%&#34;</span> +</span></span><span class="line"><span class="cl"> sleep <span class="m">1</span> +</span></span><span class="line"><span class="cl"> <span class="nv">progress</span><span class="o">=</span><span class="k">$((</span><span class="m">10</span><span class="o">+</span>progress<span class="k">))</span> +</span></span><span class="line"><span class="cl"><span class="k">done</span> +</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;&#34;</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="nv">value</span><span class="o">=</span><span class="k">$((</span>value+<span class="nv">$1</span><span class="k">))</span> +</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Write new balance (</span><span class="nv">$value</span><span class="s2">) back to </span><span class="nv">$file</span><span class="s2">.&#34;</span> +</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="nv">$value</span> &gt; <span class="s2">&#34;</span><span class="nv">$file</span><span class="s2">&#34;</span> +</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Done.&#34;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>ما این فایل را همزمان با دو ترمینال اجرا می‌کنیم.</p> +<p><img src="https://bit-orbit.github.io/images/post/advisory_lock.gif" +loading="lazy" +alt="advisory lock" +></p> +<p>همینطور که می‌بینید پروسه دوم برای اینکه محتوای فایل را تغییر دهد، باید صبر کند تا لاک فایل +آزاد شود.</p> +<hr> +<p>این پست خلاصه‌ای بود از +<a class="link" href="https://www.baeldung.com/linux/file-locking" target="_blank" rel="noopener" +>این بلاگ</a> که هر دو نوع advisory lock و mandatory lock -را توضیح می‌دهد.</p> -<p>برای من سوال بود که من چطور می‌توانم مکانیزمی که +را توضیح می‌دهد.</p> +<p>برای من سوال بود که من چطور می‌توانم مکانیزمی که flock استفاده می‌کند را در برنامه های خودم پیاده سازی کنم، و خب نتیجه این بود که معمولا برای advisory lock هر زبانی یک کتابخانه استاندار دارد توی -<a class="link" href="https://docs.python.org/3/library/fcntl.html" target="_blank" rel="noopener" - >پایتون کتابخانه</a> -<code>fcntl</code> -اینکار را انجام می‌دهد.</p> - - - - انواع داده های اولیه در rust - https://bit-orbit.github.io/p/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%D9%88%D9%84%DB%8C%D9%87-%D8%AF%D8%B1-rust/ - Wed, 03 Jan 2024 01:30:52 +0330 - - https://bit-orbit.github.io/p/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%D9%88%D9%84%DB%8C%D9%87-%D8%AF%D8%B1-rust/ - <img src="https://bit-orbit.github.io/images/post/rustdatatypes.jpg" alt="Featured image of post انواع داده های اولیه در rust" /><p>هر زبان برنامه نویسی انواعی از داده ها رو داره، مثلا +<a class="link" href="https://docs.python.org/3/library/fcntl.html" target="_blank" rel="noopener" +>پایتون کتابخانه</a> +<code>fcntl</code> +اینکار را انجام می‌دهد.</p>انواع داده های اولیه در rusthttps://bit-orbit.github.io/p/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%D9%88%D9%84%DB%8C%D9%87-%D8%AF%D8%B1-rust/Wed, 03 Jan 2024 01:30:52 +0330https://bit-orbit.github.io/p/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%D9%88%D9%84%DB%8C%D9%87-%D8%AF%D8%B1-rust/<img src="https://bit-orbit.github.io/images/post/rustdatatypes.jpg" alt="Featured image of post انواع داده های اولیه در rust" /><p>هر زبان برنامه نویسی انواعی از داده ها رو داره، مثلا داده های عددی، کاراکتر و یا رشته‌ای از کاراکتر ها. زبان rust هم انواع داده‌ای زیادی رو پشتیبانی می‌کنه و خب حتی اگر جایی کمبودی حس کردین، می‌توانید ساختار داده‌ی خودتان -را بسازید.</p> -<blockquote> -<p>‌ انواع داده ترجمه‌ی کلمه +را بسازید.</p> +<blockquote> +<p>‌ انواع داده ترجمه‌ی کلمه data type هست. و خب برای من استفاده از کلمه انگلیسی‌اش خیلی راحت -تره.</p> -</blockquote> -<h4 id="نوع-داده-عدد-صحیح">نوع داده عدد صحیح</h4> -<p>همینطور که می‌دونید عدد صحیح از منفی بی‌نهایت تا مثبت -بی‌نهایت است(بدون هیچ علامت کسر، رادیکال و بدون اعشار).</p> -<p>این نوع داده در +تره.</p> +</blockquote> +<h4 id="نوع-داده-عدد-صحیح">نوع داده عدد صحیح +</h4><p>همینطور که می‌دونید عدد صحیح از منفی بی‌نهایت تا مثبت +بی‌نهایت است(بدون هیچ علامت کسر، رادیکال و بدون اعشار).</p> +<p>این نوع داده در rust -به این صورت است</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">variable_name</span>: <span class="kt">i32</span> <span class="o">=</span><span class="w"> </span><span class="o">-</span><span class="mi">2147483648</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">variable_name</span>: <span class="kt">i32</span> <span class="o">=</span><span class="w"> </span><span class="mi">2147483647</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><p>به این باید دقت کنیم که هر متغییری مقداری فضا نیاز دارد +به این صورت است</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">variable_name</span>: <span class="kt">i32</span> <span class="o">=</span><span class="w"> </span><span class="o">-</span><span class="mi">2147483648</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">variable_name</span>: <span class="kt">i32</span> <span class="o">=</span><span class="w"> </span><span class="mi">2147483647</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><p>به این باید دقت کنیم که هر متغییری مقداری فضا نیاز دارد برای مثال این نوع داده که داده اصلی است به پنج صورت پیاده سازی می‌شود i8, i16, i32, i64, i128 اعداد پس از کاراکتر i نشان دهنده تعداد بیت هایی است که این نوع متغییر می‌تواند -اشغال کند. مثلا i128 می‌تواند به اندازه 128 بیت فضا اشغال کند.</p> -<h4 id="نوع-داده-عدد-اعشاری">نوع داده عدد اعشاری</h4> -<p>این نوع داده هم مثل نوع عدد صحیح است اما با این تفاوت که اعداد اعشاری را درون خودش ذخیره می‌کند</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">variable_name</span>: <span class="kt">f32</span> <span class="o">=</span><span class="w"> </span><span class="mf">3.14</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">variable_name</span>: <span class="kt">f32</span> <span class="o">=</span><span class="w"> </span><span class="o">-</span><span class="mf">3.14</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="نوع-داده-کاراکتر">نوع داده کاراکتر</h4> -<p>کاراکتر نوع داده‌ای است که فقط یک مقدار از حروف الفبا یا عدد و یا سیمبول را می‌تواند درون +اشغال کند. مثلا i128 می‌تواند به اندازه 128 بیت فضا اشغال کند.</p> +<h4 id="نوع-داده-عدد-اعشاری">نوع داده عدد اعشاری +</h4><p>این نوع داده هم مثل نوع عدد صحیح است اما با این تفاوت که اعداد اعشاری را درون خودش ذخیره می‌کند</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">variable_name</span>: <span class="kt">f32</span> <span class="o">=</span><span class="w"> </span><span class="mf">3.14</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">variable_name</span>: <span class="kt">f32</span> <span class="o">=</span><span class="w"> </span><span class="o">-</span><span class="mf">3.14</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="نوع-داده-کاراکتر">نوع داده کاراکتر +</h4><p>کاراکتر نوع داده‌ای است که فقط یک مقدار از حروف الفبا یا عدد و یا سیمبول را می‌تواند درون خودش ذخیره کند. پس باید به اندازه 8 بیت فضا اشغال کند اما به دلیل اینکه کاراکتر های زبان های دیگر را هم بتواند ذخیره کند از انکدینگ(encoding) utf-16 -استفاده می‌کند که 16 بیت فضا اشغال می‌کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">a</span>: <span class="kt">char</span> <span class="o">=</span><span class="w"> </span><span class="sc">&#39;a&#39;</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="داده-stringرشتهای-از-کاراکتر-ها">داده string(رشته‌ای از کاراکتر ها)</h4> -<p>String +استفاده می‌کند که 16 بیت فضا اشغال می‌کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">a</span>: <span class="kt">char</span> <span class="o">=</span><span class="w"> </span><span class="sc">&#39;a&#39;</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="داده-stringرشتهای-از-کاراکتر-ها">داده string(رشته‌ای از کاراکتر ها) +</h4><p>String نوع داده‌ای است که درواقع رشته‌ای از کاراکتر ها را درون یک نوع vector -ذخیره می‌کند.</p> -<blockquote> -<p>این نکته را هم بگم که +ذخیره می‌کند.</p> +<blockquote> +<p>این نکته را هم بگم که encoding رشته UTF-8 -است. به این معنی که هر نوع کاراکتری را می‌تواند داخل خودش ذخیره کند حتی ایموجی.</p> -</blockquote> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">heart</span>: <span class="nb">String</span> <span class="o">=</span><span class="w"> </span><span class="nb">String</span>::<span class="n">from</span><span class="p">(</span><span class="s">&#34;♥&#34;</span><span class="p">);</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="نوع-داده-منطقی">نوع داده منطقی</h4> -<p>نوع داده منطقی به اسم +است. به این معنی که هر نوع کاراکتری را می‌تواند داخل خودش ذخیره کند حتی ایموجی.</p> +</blockquote> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">heart</span>: <span class="nb">String</span> <span class="o">=</span><span class="w"> </span><span class="nb">String</span>::<span class="n">from</span><span class="p">(</span><span class="s">&#34;♥&#34;</span><span class="p">);</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="نوع-داده-منطقی">نوع داده منطقی +</h4><p>نوع داده منطقی به اسم boolian است. این نوع مقدار هایt true و یا false -را ذخیره می‌کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">is_good</span>: <span class="kt">bool</span> <span class="o">=</span><span class="w"> </span><span class="kc">true</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="نوع-داده-ترکیبی">نوع داده ترکیبی</h4> -<p>این نوع داده ها را توی پست های مجزا توضیح می‌دم.</p> -<ul> -<li>tuple</li> -<li>array</li> -<li>list</li> -<li>vector</li> -</ul> - - - - متغیر در rust - https://bit-orbit.github.io/p/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-rust/ - Mon, 01 Jan 2024 01:39:05 +0330 - - https://bit-orbit.github.io/p/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-rust/ - <img src="https://bit-orbit.github.io/images/post/datatypes-rust.jpg" alt="Featured image of post متغیر در rust" /><h4 id="تعریف-متغیر">تعریف متغیر</h4> -<p>در هر زبانی تعریف متغیر سینتکس خودش را دارد. +را ذخیره می‌کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">is_good</span>: <span class="kt">bool</span> <span class="o">=</span><span class="w"> </span><span class="kc">true</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="نوع-داده-ترکیبی">نوع داده ترکیبی +</h4><p>این نوع داده ها را توی پست های مجزا توضیح می‌دم.</p> +<ul> +<li>tuple</li> +<li>array</li> +<li>list</li> +<li>vector</li> +</ul>متغیر در rusthttps://bit-orbit.github.io/p/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-rust/Mon, 01 Jan 2024 01:39:05 +0330https://bit-orbit.github.io/p/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-rust/<img src="https://bit-orbit.github.io/images/post/datatypes-rust.jpg" alt="Featured image of post متغیر در rust" /><h4 id="تعریف-متغیر">تعریف متغیر +</h4><p>در هر زبانی تعریف متغیر سینتکس خودش را دارد. مثلا اگر زبان های خانواده c را کار کرده باشید (مثل c++, c#) متوجه می‌شوید که نوع داده‌ای متغیر، قبل از اسم آن تعریف می‌شود. و یا مثلا توی زبان پایتون تعریف نوع داده‌ای -یک متغیر حتی اهمیتی هم ندارد!</p> -<blockquote> -<p>انواع نوع داده یا +یک متغیر حتی اهمیتی هم ندارد!</p> +<blockquote> +<p>انواع نوع داده یا date types -را توی پست بعدی می‌نویسم</p> -</blockquote> -<p>توی زبان +را توی پست بعدی می‌نویسم</p> +</blockquote> +<p>توی زبان rust بعد از اسم متغیر، نوع آن نوشته می‌شود. مثلا برای تعریف یک متغیر عددی به اندازه یک بایت از کلمه کلیدی -<code>i8</code> +<code>i8</code> بعد اسم استفاده می‌کنیم. البته قبل از اسم هر متغیر هم ما باید از کلمه کلیدی -<code>let</code> -استفاده کنیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="c1">//let name: type = value; -</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="kd">let</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="متغیر-های-تغییرپذیر">متغیر های تغییرپذیر</h4> -<p>توی زبان +<code>let</code> +استفاده کنیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="c1">//let name: type = value; +</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="kd">let</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="متغیر-های-تغییرپذیر">متغیر های تغییرپذیر +</h4><p>توی زبان rust هر متغیری که تعریف می‌کنیم غیر قابل تغیر است. توی مثال بالا من پیشفرض مقدار 22 را برای متغیر age قرار داده‌ام، حالا اگر بخواهم مقدار آن را -به 23 تغیر بدهم به ارور می‌خورم</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt">10 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">error</span><span class="p">[</span><span class="n">E0384</span><span class="p">]</span>: <span class="nc">cannot</span><span class="w"> </span><span class="n">assign</span><span class="w"> </span><span class="n">twice</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">immutable</span><span class="w"> </span><span class="n">variable</span><span class="w"> </span><span class="err">`</span><span class="n">age</span><span class="err">`</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">-</span>-&gt; <span class="nc">src</span><span class="o">/</span><span class="n">main</span><span class="p">.</span><span class="n">rs</span>:<span class="mi">3</span>:<span class="mi">5</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">---</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">first</span><span class="w"> </span><span class="n">assignment</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="err">`</span><span class="n">age</span><span class="err">`</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">help</span>: <span class="nc">consider</span><span class="w"> </span><span class="n">making</span><span class="w"> </span><span class="n">this</span><span class="w"> </span><span class="n">binding</span><span class="w"> </span><span class="n">mutable</span>: <span class="err">`</span><span class="k">mut</span><span class="w"> </span><span class="n">age</span><span class="err">`</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="mi">3</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">^^^^^^^^</span><span class="w"> </span><span class="n">cannot</span><span class="w"> </span><span class="n">assign</span><span class="w"> </span><span class="n">twice</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">immutable</span><span class="w"> </span><span class="n">variable</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><p>خب برای همین اگر می‌خواهیم مقدار متغیری را تغییر +به 23 تغیر بدهم به ارور می‌خورم</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">error</span><span class="p">[</span><span class="n">E0384</span><span class="p">]</span>: <span class="nc">cannot</span><span class="w"> </span><span class="n">assign</span><span class="w"> </span><span class="n">twice</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">immutable</span><span class="w"> </span><span class="n">variable</span><span class="w"> </span><span class="err">`</span><span class="n">age</span><span class="err">`</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">-</span>-&gt; <span class="nc">src</span><span class="o">/</span><span class="n">main</span><span class="p">.</span><span class="n">rs</span>:<span class="mi">3</span>:<span class="mi">5</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">---</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">first</span><span class="w"> </span><span class="n">assignment</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="err">`</span><span class="n">age</span><span class="err">`</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">help</span>: <span class="nc">consider</span><span class="w"> </span><span class="n">making</span><span class="w"> </span><span class="n">this</span><span class="w"> </span><span class="n">binding</span><span class="w"> </span><span class="n">mutable</span>: <span class="err">`</span><span class="k">mut</span><span class="w"> </span><span class="n">age</span><span class="err">`</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="mi">3</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">^^^^^^^^</span><span class="w"> </span><span class="n">cannot</span><span class="w"> </span><span class="n">assign</span><span class="w"> </span><span class="n">twice</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">immutable</span><span class="w"> </span><span class="n">variable</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><p>خب برای همین اگر می‌خواهیم مقدار متغیری را تغییر بدهیم آن را باید از اول مشخص کنیم. مشخص کردن آن با کلمه کلیدی -<code>mut</code> +<code>mut</code> بعد از کلمه -<code>let</code> +<code>let</code> است. کلمه mut مخفف -<strong>mutable</strong> +<strong>mutable</strong> به معنی -<strong>قابل تغییر</strong> -است. خب بیایید اینکار را برای مثال اولیه انجام بدهیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div> - - - فورک بمب چیست و چطور کار می‌کند؟ - https://bit-orbit.github.io/p/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B7%D9%88%D8%B1-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF/ - Wed, 27 Dec 2023 16:39:27 +0330 - - https://bit-orbit.github.io/p/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B7%D9%88%D8%B1-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF/ - <img src="https://bit-orbit.github.io/images/post/fork_bomb.jpg" alt="Featured image of post فورک بمب چیست و چطور کار می‌کند؟" /><p>اوایل که لینوکس نصب کرده بودم کامند هایی که توی +<strong>قابل تغییر</strong> +است. خب بیایید اینکار را برای مثال اولیه انجام بدهیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div>فورک بمب چیست و چطور کار می‌کند؟https://bit-orbit.github.io/p/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B7%D9%88%D8%B1-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF/Wed, 27 Dec 2023 16:39:27 +0330https://bit-orbit.github.io/p/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B7%D9%88%D8%B1-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF/<img src="https://bit-orbit.github.io/images/post/fork_bomb.jpg" alt="Featured image of post فورک بمب چیست و چطور کار می‌کند؟" /><p>اوایل که لینوکس نصب کرده بودم کامند هایی که توی فروم های مختلف می‌دیدم و برای من جدید بود را دوست داشتم یاد بگیرم و بدانم کار آنها چی هست، برای همین هر کامندی را که می‌دیدم در @@ -1051,313 +1130,286 @@ mut هر کامندی اشتباهه بود. یکی از این کامند ها که اجرا کرده بودم، به اسم فورک بمب (fork bomb) -شناخته می‌شود. کامند به این صورت هست</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>:<span class="p">&amp;</span> <span class="o">}</span><span class="p">;</span>: -</span></span></code></pre></td></tr></table> -</div> -</div><p>اگر این کامند را اجرا کنید(امیدوارم تا الان نکرده باشید) تقریبا زیر یک دقیقه سیستم شما -هنگ می‌کند و مجبور می‌شوید سیستم را ریبوت کنید.</p> -<hr> -<p>توی این پست ساختار این کامند را تشریح می‌کنم و باهم +شناخته می‌شود. کامند به این صورت هست</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>:<span class="p">&amp;</span> <span class="o">}</span><span class="p">;</span>: +</span></span></code></pre></td></tr></table> +</div> +</div><p>اگر این کامند را اجرا کنید(امیدوارم تا الان نکرده باشید) تقریبا زیر یک دقیقه سیستم شما +هنگ می‌کند و مجبور می‌شوید سیستم را ریبوت کنید.</p> +<hr> +<p>توی این پست ساختار این کامند را تشریح می‌کنم و باهم کمی bash -یاد می‌گیریم.</p> -<p>بیایید اول با مفهوم +یاد می‌گیریم.</p> +<p>بیایید اول با مفهوم recustion آشنا بشیم، زمانی که یک قطعه کد خودش اجرا کند، recusion می‌گویم. مثلا شما یک فانکشن می‌نویسید به اسم -<em>fn</em> +<em>fn</em> و توی بدنه فانکشن فقط خود همین فانکشن را صدا می‌‌کنید، به این کار call recursion گفته می‌شود. فورک بمب دقیقا همین کار را می‌کند. به این -معنی که خودش را دائم اجرا می‌کند!</p> -<p>به این فکر کنید که وقتی یک پراسس خودش را اجرا می‌کند +معنی که خودش را دائم اجرا می‌کند!</p> +<p>به این فکر کنید که وقتی یک پراسس خودش را اجرا می‌کند ،مجدد پراسس های اجرا شده توسط اون هم دائم خودشان را اجرا می‌کنند، و دوباره هر پروسه‌ای که اجرا می‌شود بازم خودش را اجرا می‌کند و این روند تا زمانی که رم و پردازنده سیستم تحمل -داشته باشد ادامه دارد.</p> -<blockquote> -<p>درختی که می‌بینید را اجرای فورک بمب درنظر بگیرید، +داشته باشد ادامه دارد.</p> +<blockquote> +<p>درختی که می‌بینید را اجرای فورک بمب درنظر بگیرید، هر ستاره یک پروسه جدید است که توسط پروسه قبلی اجرا شده، و خودش هم دو پروسه جدید باز می‌کند و هر یک از پروسه ها -هم همین روند را ادامه می‌دهند.</p> -</blockquote> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt">10 -</span><span class="lnt">11 -</span><span class="lnt">12 -</span><span class="lnt">13 -</span><span class="lnt">14 -</span><span class="lnt">15 -</span><span class="lnt">16 -</span><span class="lnt">17 -</span><span class="lnt">18 -</span><span class="lnt">19 -</span><span class="lnt">20 -</span><span class="lnt">21 -</span><span class="lnt">22 -</span><span class="lnt">23 -</span><span class="lnt">24 -</span><span class="lnt">25 -</span><span class="lnt">26 -</span><span class="lnt">27 -</span><span class="lnt">28 -</span><span class="lnt">29 -</span><span class="lnt">30 -</span><span class="lnt">31 -</span><span class="lnt">32 -</span><span class="lnt">33 -</span><span class="lnt">34 -</span><span class="lnt">35 -</span><span class="lnt">36 -</span><span class="lnt">37 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w">   </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w">   </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><p>من برای اینکه سیستم‌ خودم هنگ نکند فورک بمب را روی داکر +هم همین روند را ادامه می‌دهند.</p> +</blockquote> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span><span class="lnt">19 +</span><span class="lnt">20 +</span><span class="lnt">21 +</span><span class="lnt">22 +</span><span class="lnt">23 +</span><span class="lnt">24 +</span><span class="lnt">25 +</span><span class="lnt">26 +</span><span class="lnt">27 +</span><span class="lnt">28 +</span><span class="lnt">29 +</span><span class="lnt">30 +</span><span class="lnt">31 +</span><span class="lnt">32 +</span><span class="lnt">33 +</span><span class="lnt">34 +</span><span class="lnt">35 +</span><span class="lnt">36 +</span><span class="lnt">37 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w">   </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w">   </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><p>من برای اینکه سیستم‌ خودم هنگ نکند فورک بمب را روی داکر اجرا کردم و خب حتی یک ثانیه هم طول نکشید و آن کانتینر -کاملا هنگ کرد.</p> -<blockquote> -<p>قبل از اجرا -<a class="link" href="https://bit-orbit.github.io/images/post/forkbomb_docker0.jpg" ><img src="https://bit-orbit.github.io/images/post/forkbomb_docker0.jpg" - - - - loading="lazy" - - alt="forkbomb on docker" - - -></a></p> -</blockquote> -<blockquote> -<p>زمان اجرا -<a class="link" href="https://bit-orbit.github.io/images/post/forkbomb_docker.jpg" ><img src="https://bit-orbit.github.io/images/post/forkbomb_docker.jpg" - - - - loading="lazy" - - alt="forkbomb on docker" - - -></a></p> -</blockquote> -<hr> -<p>بیایید وارد کد بشیم، این علامت ها و کاراکتر ها چی هستند؟</p> -<!-- برای تعریف یک فانکشن توی +کاملا هنگ کرد.</p> +<blockquote> +<p>قبل از اجرا +<a class="link" href="https://bit-orbit.github.io/images/post/forkbomb_docker0.jpg" ><img src="https://bit-orbit.github.io/images/post/forkbomb_docker0.jpg" +loading="lazy" +alt="forkbomb on docker" +></a></p> +</blockquote> +<blockquote> +<p>زمان اجرا +<a class="link" href="https://bit-orbit.github.io/images/post/forkbomb_docker.jpg" ><img src="https://bit-orbit.github.io/images/post/forkbomb_docker.jpg" +loading="lazy" +alt="forkbomb on docker" +></a></p> +</blockquote> +<hr> +<p>بیایید وارد کد بشیم، این علامت ها و کاراکتر ها چی هستند؟</p> +<!-- برای تعریف یک فانکشن توی bash -ما به این صورت عمل می‌کنیم که اول اسم فانکشن بعد پرانتز -و بعد کرلی براکت(توی فارسی می‌گیم آکولاد) و داخل کرلی +ما به این صورت عمل می‌کنیم که اول اسم فانکشن بعد پرانتز +و بعد کرلی براکت(توی فارسی می‌گیم آکولاد) و داخل کرلی براکت ما قطعه کد را می‌نویسیم. مثلا برای فانکشنی که یک اسم را روی صفحه چاپ کنه به این صورت عمل می‌کنیم - ```bash -pname(){ echo 'foo'; } -``` --> -<p>اگه دقت کنید اولین کاراکتر فورک بمب، علامت -<code>:</code> +pname(){ echo 'foo'; } +``` --> +<p>اگه دقت کنید اولین کاراکتر فورک بمب، علامت +<code>:</code> است. این علامت اسم فانکشن ما است. برخلاف قانون تعریف نام برای متغییر ها توی bash، می‌توانیم از کاراتر های یونیکد هم برای تعریف نام فانکشن استفاده کنیم، مثلا یک -کاراکتر چینی یا حتی ایموجی!</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span><span class="lnt">3 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">雨<span class="o">(){</span> <span class="nb">echo</span> <span class="s1">&#39;rain&#39;</span><span class="p">;</span> <span class="o">}</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">❤️<span class="o">(){</span> <span class="nb">echo</span> <span class="s1">&#39;love&#39;</span><span class="p">;</span> <span class="o">}</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>خب در ادامه علامت های -<code>()</code> +کاراکتر چینی یا حتی ایموجی!</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">雨<span class="o">(){</span> <span class="nb">echo</span> <span class="s1">&#39;rain&#39;</span><span class="p">;</span> <span class="o">}</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">❤️<span class="o">(){</span> <span class="nb">echo</span> <span class="s1">&#39;love&#39;</span><span class="p">;</span> <span class="o">}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>خب در ادامه علامت های +<code>()</code> را می‌بینیم، توی bash برای تعریف فانکشن قبل از اسم فانکشن هیچ کلمه کلیدی مثل fn, def, void و &hellip; نیاز نیست، فقط بجای آن باید -<strong>بعد از اسم فانکشن</strong> -پرانتز ها را بگذارید.</p> -<p>مثل خیلی از زبان های برنامه نویسی، بدنه فانکشن توی -کرلی براکت تعریف می‌شود.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){}</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>پس تا اینجا ما یک فانکشن ساده با نام -<code>:</code> -تعریف کردیم.</p> -<p>داخل بدنه این فانکشن، اسمی که برای فانکشن قرار دادیم +<strong>بعد از اسم فانکشن</strong> +پرانتز ها را بگذارید.</p> +<p>مثل خیلی از زبان های برنامه نویسی، بدنه فانکشن توی +کرلی براکت تعریف می‌شود.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>پس تا اینجا ما یک فانکشن ساده با نام +<code>:</code> +تعریف کردیم.</p> +<p>داخل بدنه این فانکشن، اسمی که برای فانکشن قرار دادیم همان -<code>:</code> +<code>:</code> را می‌نویسیم. با اینکار دقیقا call recursion را انجام دادیم، و باعث شدیم که برنامه خودش را -توی هر اجرا مجدد اجرا کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> : <span class="o">}</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>دقت کنید توی سینتکس +توی هر اجرا مجدد اجرا کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> : <span class="o">}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>دقت کنید توی سینتکس bash -حتما باید یک فاصله برای کدی که داخلی کرلی براکت می‌نویسم قرار بدیم</p> -</blockquote> -<p>علامت -<code>|</code> +حتما باید یک فاصله برای کدی که داخلی کرلی براکت می‌نویسم قرار بدیم</p> +</blockquote> +<p>علامت +<code>|</code> به اسم پایپ شناخته می‌شود، وظیفه این علامت دادن خروجی یک کامند بعنوان ورودی به یک کامند دیگر هست، حلا دقت کنید که ما خروجی اجرای -<code>:</code> -را به خودش می‌دهیم. دقیقا به این شکل</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>: <span class="o">}</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>با این علامت هر پروسه دو بار پروسه جدیدی از خودش می‌سازد +<code>:</code> +را به خودش می‌دهیم. دقیقا به این شکل</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>: <span class="o">}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>با این علامت هر پروسه دو بار پروسه جدیدی از خودش می‌سازد اگر از این علامت استفاده نکنیم، پروسه ما به صورت خطی خودش را اجرا خواهد کرد، اینطوری کد ما با یک حلقه -<code>while</code> -تفاوتی زیادی نخواهد داشت.</p> -<p>علامت -<code>&amp;</code> +<code>while</code> +تفاوتی زیادی نخواهد داشت.</p> +<p>علامت +<code>&amp;</code> اجرای یک کامند را به بکگراند(پس زمینه) می‌برد. برای مثال بعد از اجرای یک دستور باید صبر کنید پروسه آن تمام شود تا بتوانید دستور بعدی را اجرا کنید. ولی اگر از علامت -<code>&amp;</code> +<code>&amp;</code> بعد از هر دستور استفاده کنید، دیگر نیاز نیست صبر کنید تا روند اجرای آن برنامه تمام شود. درواقع با علامت -<code>&amp;</code> +<code>&amp;</code> شما می‌توانید هر برنامه را در بکگراند اجرا کنید. حالا توی فورک بمب این علامت باعث می‌شود تا فانشکنی که اجرا کردین درحالی که کارش به اتمام -نرسیده است، فانکشن بعدی اجرا بشود.</p> -<p><img src="https://bit-orbit.github.io/images/post/forkbomb_and.jpg" - - - - loading="lazy" - - alt="& in bash" - - -></p> -<p>و بعد علامت -<code>;</code> +نرسیده است، فانکشن بعدی اجرا بشود.</p> +<p><img src="https://bit-orbit.github.io/images/post/forkbomb_and.jpg" +loading="lazy" +alt="& in bash" +></p> +<p>و بعد علامت +<code>;</code> را می‌بینیم. این علامت کامند ها را از هم جدا می‌کند. مثلا شما می‌توانید چند کامند مختلف را توی یک خط بنویسید. توی فورک بمب این علامت فانکشنی که تعریف کردین را از -دستور بعدی(که اجرا کننده اون فانکشن هست)جدا می‌کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s1">&#39;foo&#39;</span><span class="p">;</span> <span class="nb">echo</span> <span class="s1">&#39;bar&#39;</span><span class="p">;</span> <span class="nb">echo</span> <span class="s1">&#39;baz&#39;</span><span class="p">;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>آخرین علامتی که توی فورک بمب داریم همون علامت -<code>:</code> +دستور بعدی(که اجرا کننده اون فانکشن هست)جدا می‌کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s1">&#39;foo&#39;</span><span class="p">;</span> <span class="nb">echo</span> <span class="s1">&#39;bar&#39;</span><span class="p">;</span> <span class="nb">echo</span> <span class="s1">&#39;baz&#39;</span><span class="p">;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>آخرین علامتی که توی فورک بمب داریم همون علامت +<code>:</code> یا همون اسمی هست که برای فانکشن قرار دادیم. خیلی ساده توی bash -برای اجرای یک فانکشن فقط اسم‌ش را می‌نویسیم.</p> -<p>و تمام! ما یاد گرفتیم چطور فورک بمب رو بنویسیم و دیگه -نیاز نیست حفظ‌ش کنیم :)</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>:<span class="p">&amp;</span> <span class="o">}</span><span class="p">;</span>: -</span></span></code></pre></td></tr></table> -</div> -</div> - - - از گوگل به تلگرام! - https://bit-orbit.github.io/p/%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/ - Mon, 18 Dec 2023 00:08:38 +0330 - - https://bit-orbit.github.io/p/%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/ - <img src="https://bit-orbit.github.io/images/post/colab.jpg" alt="Featured image of post از گوگل به تلگرام!" /><p>به احتمال زیاد سایت +برای اجرای یک فانکشن فقط اسم‌ش را می‌نویسیم.</p> +<p>و تمام! ما یاد گرفتیم چطور فورک بمب رو بنویسیم و دیگه +نیاز نیست حفظ‌ش کنیم :)</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>:<span class="p">&amp;</span> <span class="o">}</span><span class="p">;</span>: +</span></span></code></pre></td></tr></table> +</div> +</div>از گوگل به تلگرام!https://bit-orbit.github.io/p/%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/Mon, 18 Dec 2023 00:08:38 +0330https://bit-orbit.github.io/p/%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/<img src="https://bit-orbit.github.io/images/post/colab.jpg" alt="Featured image of post از گوگل به تلگرام!" /><p>به احتمال زیاد سایت google colab رو می‌شناسید، این سایت برای کسانی که پایتون کار می‌کنند یک معجزه‌ست. خیلی راحت شما می‌توانید کد پایتون خود @@ -1367,30 +1419,30 @@ google colab این سرویس گوگل واقعا کار رو راحت می‌کنه. حالا فرض کنید این فایل رو باید با تیم به اشتراک بگذارید، خیلی راحت این سروریس به گوگل درایو شما متصل می‌شه -و فایل رو براتون آپلود می‌کنه.</p> -<p>اما من توی این پست می‌خواهم کار متفاوتی با این سرویس +و فایل رو براتون آپلود می‌کنه.</p> +<p>اما من توی این پست می‌خواهم کار متفاوتی با این سرویس انجام بدم، جای اینکه فایل‌م رو توی گوگل درایو آپلود کنم می‌خواهم که یک پلی لیست موزیک راک رو که فایل با فرمت zip هست رو روی google colab دانلود کنم و بعد با همین کولب فایل -ها را استخراج و به تلگرام اپلود کنم.</p> -<p>اینو بگم که خب روی کولب خیلی تریک های جالب دیگه‌ای هم +ها را استخراج و به تلگرام اپلود کنم.</p> +<p>اینو بگم که خب روی کولب خیلی تریک های جالب دیگه‌ای هم می‌زنند، مثلا من یه تایمی به کولب ssh می‌کردم و بعنوان vpn -استفاده می‌کردم.</p> -<hr> -<p>ادرس سرویس +استفاده می‌کردم.</p> +<hr> +<p>ادرس سرویس google colab -<a class="link" href="https://colab.research.google.com/" target="_blank" rel="noopener" - >این</a> +<a class="link" href="https://colab.research.google.com/" target="_blank" rel="noopener" +>این</a> هست، ولی من یک اسکریپت نوشتم که به اون نیاز داریم برای همین -<a class="link" href="https://colab.research.google.com/github/shabane/upload-to-telegram/blob/master/upload_to_telegram.ipynb" target="_blank" rel="noopener" - >این لینک</a> +<a class="link" href="https://colab.research.google.com/github/shabane/upload-to-telegram/blob/master/upload_to_telegram.ipynb" target="_blank" rel="noopener" +>این لینک</a> رو باز کنید تا اسکریپتی که من نوشته‌م توی colab @@ -1398,237 +1450,204 @@ colab jupyter کار کرده باشین این محیط باید براتون خیلی آشنا باشه. اگر نه، خیلی ساده بگم، این محیط دستورات پایتون رو -براتون روی سروس های گوگل ران می‌کنه :)</p> -<p>خب ما یه فایل این برای مثالمون نیاز داریم، من یک پلی +براتون روی سروس های گوگل ران می‌کنه :)</p> +<p>خب ما یه فایل این برای مثالمون نیاز داریم، من یک پلی لیست راک از AC/DC -که از تورنت می‌گیرم رو برای اینکار استفاده می‌کنم.</p> -<p>اول من فایل رو باید دانلود کنم، من از تورنت برای دانلود +که از تورنت می‌گیرم رو برای اینکار استفاده می‌کنم.</p> +<p>اول من فایل رو باید دانلود کنم، من از تورنت برای دانلود موزیک، فیلم و &hellip; استفاده می‌کنم. پس کافیه لینک تورنت رو به برنامه aria2c بدم و یا فایل رو با یک سایت دانلودر تورنت دانلود کنم و لینک‌ش رو بدم به برنامه -wget</p> -<p>برای اینکه دستورات خودتون رو اجرا کنید از بالای سایت +wget</p> +<p>برای اینکه دستورات خودتون رو اجرا کنید از بالای سایت گزینه -<em>+ code</em> +<em>+ code</em> رو بزنید تا یک code snipp جدید براتون باز کنه. توی این قسمت فقط می‌شه کد های پایتون رو اجرا کرد ولی اگه از علامت -<strong>!</strong> +<strong>!</strong> قبل از دستور استفاده کنیم اون رو بعنوان دستور bash اجرا خواهد کرد. و خب بیس سیستم عامل هم دبیان هست -و دستورات دبیانی رو اجرا می‌کنه.</p> -<p>پس اگه مستقیم قرار بود فایل رو از تورنت بگیرم باید برنامه +و دستورات دبیانی رو اجرا می‌کنه.</p> +<p>پس اگه مستقیم قرار بود فایل رو از تورنت بگیرم باید برنامه aria2 -رو نصب می‌کردم. برای نصب کافیه این دستور رو بزنیم</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!sudo apt-get install aria2 -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>دقت کنید که از علامت -<code>!</code> -قبل از دستور استفاده کردم.</p> -</blockquote> -<p>بعد از نصب، لینک رو می‌دیم به برنامه تا فایل ها رو برامون -دانلود کنه.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!aria2c <span class="s1">&#39;&lt;your magnet link&gt;&#39;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>به این دقت کنید که برنامه با کامند +رو نصب می‌کردم. برای نصب کافیه این دستور رو بزنیم</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!sudo apt-get install aria2 +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>دقت کنید که از علامت +<code>!</code> +قبل از دستور استفاده کردم.</p> +</blockquote> +<p>بعد از نصب، لینک رو می‌دیم به برنامه تا فایل ها رو برامون +دانلود کنه.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!aria2c <span class="s1">&#39;&lt;your magnet link&gt;&#39;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>به این دقت کنید که برنامه با کامند aria2c اجرا می‌شه. ولی با به اسم aria2 -نصب می‌شه.</p> -</blockquote> -<p>و یا اینکه لینک دانلود مستقیم رو به برنامه +نصب می‌شه.</p> +</blockquote> +<p>و یا اینکه لینک دانلود مستقیم رو به برنامه wget می‌دیم. این برنامه به صورت دیفالت نصب هست و لازم نیست -کار خاصی بکنیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!wget <span class="s1">&#39;&lt;your file link&gt;&#39;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p><img src="https://bit-orbit.github.io/images/post/wgetcolab.jpg" - - - - loading="lazy" - - alt="from google to telegram as cloud" - - -></p> -<p>بعد از اینکه فایل روی سرور گوگل دانلود شد کافیه فایل -رو به تلگرام آپلود کنیم! ولی قبل‌ش چند کاری هست که باید -باهم بکنیم.</p> -<ul> -<li>فایل من زیپه پس باید استخراج کنم.</li> -<li>فایل ها توی دایرکتوری های تو در تو قرار دارند، و باید همه فایل های مورد نظرم رو که توی این مورد +کار خاصی بکنیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!wget <span class="s1">&#39;&lt;your file link&gt;&#39;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p><img src="https://bit-orbit.github.io/images/post/wgetcolab.jpg" +loading="lazy" +alt="from google to telegram as cloud" +></p> +<p>بعد از اینکه فایل روی سرور گوگل دانلود شد کافیه فایل +رو به تلگرام آپلود کنیم! ولی قبل‌ش چند کاری هست که باید +باهم بکنیم.</p> +<ul> +<li>فایل من زیپه پس باید استخراج کنم.</li> +<li>فایل ها توی دایرکتوری های تو در تو قرار دارند، و باید همه فایل های مورد نظرم رو که توی این مورد mp3 هستند رو بیارم داخل پوشه‌ای که اسکریپت دیفالت آنجا ران -می‌شه.</li> -<li>نیاز به یک کانال تلگرام دارم که فایل ها مستقیم اونجا -اپلود بشوند</li> -<li>یک توکن ربات تلگرام هم نیازه که با استفاده از دسترسی -ربات به کانال، فایل ها رو اپلود کنیم.</li> -</ul> -<p>خب برای اسختراج فایل ها خیلی ساده از کامند -<code>unzip</code> -و اسم فایل جلوی این کامند استفاده می‌کنیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!unzip &lt;your file name&gt; -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>با کامند -<code>ls</code> -نام فایلی که دانلود کردین رو می‌تونید ببینید.</p> -</blockquote> -<p><img src="https://bit-orbit.github.io/images/post/unzipcolab.jpg" - - - - loading="lazy" - - alt="uizip in colab" - - -></p> -<p>با اجرای کامند -<code>tree</code> -می‌تونید دایرکتوری های تو در تو رو ببینید.</p> -<p><img src="https://bit-orbit.github.io/images/post/treecolab.jpg" - - - - loading="lazy" - - alt="tree in colab" - - -></p> -<p>توی این مرحله من همه فایل های +می‌شه.</li> +<li>نیاز به یک کانال تلگرام دارم که فایل ها مستقیم اونجا +اپلود بشوند</li> +<li>یک توکن ربات تلگرام هم نیازه که با استفاده از دسترسی +ربات به کانال، فایل ها رو اپلود کنیم.</li> +</ul> +<p>خب برای اسختراج فایل ها خیلی ساده از کامند +<code>unzip</code> +و اسم فایل جلوی این کامند استفاده می‌کنیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!unzip &lt;your file name&gt; +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>با کامند +<code>ls</code> +نام فایلی که دانلود کردین رو می‌تونید ببینید.</p> +</blockquote> +<p><img src="https://bit-orbit.github.io/images/post/unzipcolab.jpg" +loading="lazy" +alt="uizip in colab" +></p> +<p>با اجرای کامند +<code>tree</code> +می‌تونید دایرکتوری های تو در تو رو ببینید.</p> +<p><img src="https://bit-orbit.github.io/images/post/treecolab.jpg" +loading="lazy" +alt="tree in colab" +></p> +<p>توی این مرحله من همه فایل های mp3 رو باید بیارم توی پوشه اصلی که اسکریپت‌ اپلود اجرا میشه، دلیل این کار این هست که این اسکریپ‌ت فقط فایل های mp3 -داخل همین پوشه رو پیدا و اپلود می‌کنه.</p> -<p>برای انتقال این فایل ها از پوشه های تو در تو به یک پوشه از کامند -<code>find</code> +داخل همین پوشه رو پیدا و اپلود می‌کنه.</p> +<p>برای انتقال این فایل ها از پوشه های تو در تو به یک پوشه از کامند +<code>find</code> استفاده می‌کنم و هر فایل که پیدا می‌شه رو با کامند -<code>mv</code> -به پوشه اصلی‌مون انتقال می‌دم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!find . -type f -iname <span class="s1">&#39;*mp3&#39;</span> -exec mv <span class="o">{}</span> . <span class="se">\;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>بیایید سوییچ های این دستور رو بهتون بگم</p> -<ul> -<li>type-</li> -</ul> -<p>این سوییچ انواع نوع فایل ها رو مشخص می‌کنه. مثلا شما می‌تونید دنبال یک دایرکتوری، فایل، سوکت و &hellip; بگردین</p> -<ul> -<li>iname-</li> -</ul> -<p>این سویچ که مشخص هست نام فایل رو ازتون می‌گیره که شما می‌تونید پترن ریجکس بدین بهش. +<code>mv</code> +به پوشه اصلی‌مون انتقال می‌دم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!find . -type f -iname <span class="s1">&#39;*mp3&#39;</span> -exec mv <span class="o">{}</span> . <span class="se">\;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>بیایید سوییچ های این دستور رو بهتون بگم</p> +<ul> +<li>type-</li> +</ul> +<p>این سوییچ انواع نوع فایل ها رو مشخص می‌کنه. مثلا شما می‌تونید دنبال یک دایرکتوری، فایل، سوکت و &hellip; بگردین</p> +<ul> +<li>iname-</li> +</ul> +<p>این سویچ که مشخص هست نام فایل رو ازتون می‌گیره که شما می‌تونید پترن ریجکس بدین بهش. و اون -<strong>i</strong> -مشخص می‌کنه که نام فایل به کوچیکی و بزرگی حساس نباشه.</p> -<ul> -<li>exec-</li> -</ul> -<p>یک کامندی رو ازتون می‌گیره و روی تک تک ریزالت های جست و جو اون کامند رو اجرا می‌کنه. +<strong>i</strong> +مشخص می‌کنه که نام فایل به کوچیکی و بزرگی حساس نباشه.</p> +<ul> +<li>exec-</li> +</ul> +<p>یک کامندی رو ازتون می‌گیره و روی تک تک ریزالت های جست و جو اون کامند رو اجرا می‌کنه. من کامند -<code>mv</code> +<code>mv</code> رو دادم که برای انتقال فایل استفاده می‌شه. علامت های -<strong>{}</strong> -هم یک متغییر هست که نام فایل تک به تک جای اون قرار می‌گیره.</p> -<blockquote> -<p>پایان سوییچ +<strong>{}</strong> +هم یک متغییر هست که نام فایل تک به تک جای اون قرار می‌گیره.</p> +<blockquote> +<p>پایان سوییچ exec همیشه با -<code>;\</code> -مشخص می‌شه.</p> -</blockquote> -<p>خب تا اینجا که خیلی ساده بود،‌ نه؟</p> -<p>مرحله آخر اینه که یک ربات با -<a class="link" href="https://t.me/BotFather" target="_blank" rel="noopener" - >این ربات</a> -بسازین، و بعد اون رو عضو یک کانالی که می‌سازید بکنید، کانال رو فعلا پابلیک بسازید و یک یوزرنیم بهش بدین.</p> -<p>توکن ربات رو کپی کنید و توی اسکریپت من، جایی که نوشته -<your token> +<code>;\</code> +مشخص می‌شه.</p> +</blockquote> +<p>خب تا اینجا که خیلی ساده بود،‌ نه؟</p> +<p>مرحله آخر اینه که یک ربات با +<a class="link" href="https://t.me/BotFather" target="_blank" rel="noopener" +>این ربات</a> +بسازین، و بعد اون رو عضو یک کانالی که می‌سازید بکنید، کانال رو فعلا پابلیک بسازید و یک یوزرنیم بهش بدین.</p> +<p>توکن ربات رو کپی کنید و توی اسکریپت من، جایی که نوشته +<your token> وارد کنید و توی قسمت -<chat id> -هم ایدی کانالتون رو با علامت @ اول جایگذاری کنید.</p> -<p><img src="https://bit-orbit.github.io/images/post/acdccolab.jpg" - - - - loading="lazy" - - alt="ac and dc telegram channel" - - -></p> -<blockquote> -<p>اگه کانال پرایوت دارید باید بجای ای‌دی کانال از +<chat id> +هم ایدی کانالتون رو با علامت @ اول جایگذاری کنید.</p> +<p><img src="https://bit-orbit.github.io/images/post/acdccolab.jpg" +loading="lazy" +alt="ac and dc telegram channel" +></p> +<blockquote> +<p>اگه کانال پرایوت دارید باید بجای ای‌دی کانال از chatid -استفاده کنید، که یک ای‌دی عددی هست.</p> -</blockquote> -<p><strong>تمام</strong>!‌ -کافیه برنامه رو اجرا کنید و کانال تلگرامتون رو نگاه کنید :)</p> -<blockquote> -<p>اگه خیلی زیاد دارین فایل اپلود می‌کنید احتمالا تلگرام ارور +استفاده کنید، که یک ای‌دی عددی هست.</p> +</blockquote> +<p><strong>تمام</strong>!‌ +کافیه برنامه رو اجرا کنید و کانال تلگرامتون رو نگاه کنید :)</p> +<blockquote> +<p>اگه خیلی زیاد دارین فایل اپلود می‌کنید احتمالا تلگرام ارور flood mood بهتون بده. توی این مورد کافیه فقط صبر کنید، اسکریپت از اجرا قطع نمی‌شه و روی همون فایل مجددا اجرا می‌شه -تا بالاخره فایل اپلود بشه.</p> -</blockquote> -<blockquote> -<p>هرچیزی رو می‌تونید آپلود کنید ولی دقت کنید که ربات ها محدودیت حجم اپلود دارن که نهایتش 50MB هست</p> -</blockquote> -<blockquote> -<p>اینم بگم که توی اسکریپت اگه +تا بالاخره فایل اپلود بشه.</p> +</blockquote> +<blockquote> +<p>هرچیزی رو می‌تونید آپلود کنید ولی دقت کنید که ربات ها محدودیت حجم اپلود دارن که نهایتش 50MB هست</p> +</blockquote> +<blockquote> +<p>اینم بگم که توی اسکریپت اگه mp3 -رو به چیز دیگه‌ای تغییر بدین، اسکریپت به دنبال اون پسوند ها خواهد گشت.</p> -</blockquote> - - - - cloud را به خانه خود ببرید! - https://bit-orbit.github.io/p/cloud-%D8%B1%D8%A7-%D8%A8%D9%87-%D8%AE%D8%A7%D9%86%D9%87-%D8%AE%D9%88%D8%AF-%D8%A8%D8%A8%D8%B1%DB%8C%D8%AF/ - Mon, 11 Dec 2023 01:39:34 +0330 - - https://bit-orbit.github.io/p/cloud-%D8%B1%D8%A7-%D8%A8%D9%87-%D8%AE%D8%A7%D9%86%D9%87-%D8%AE%D9%88%D8%AF-%D8%A8%D8%A8%D8%B1%DB%8C%D8%AF/ - <img src="https://bit-orbit.github.io/images/post/umbrel.webp" alt="Featured image of post cloud را به خانه خود ببرید!" /><h3 id="چطور-این-ایده-به-ذهن-من-رسید-">چطور این ایده به ذهن من رسید ؟</h3> -<p>جریان این ایده به این شکل بود که خب ما ایرانی ها اینترنت +رو به چیز دیگه‌ای تغییر بدین، اسکریپت به دنبال اون پسوند ها خواهد گشت.</p> +</blockquote>cloud را به خانه خود ببرید!https://bit-orbit.github.io/p/cloud-%D8%B1%D8%A7-%D8%A8%D9%87-%D8%AE%D8%A7%D9%86%D9%87-%D8%AE%D9%88%D8%AF-%D8%A8%D8%A8%D8%B1%DB%8C%D8%AF/Mon, 11 Dec 2023 01:39:34 +0330https://bit-orbit.github.io/p/cloud-%D8%B1%D8%A7-%D8%A8%D9%87-%D8%AE%D8%A7%D9%86%D9%87-%D8%AE%D9%88%D8%AF-%D8%A8%D8%A8%D8%B1%DB%8C%D8%AF/<img src="https://bit-orbit.github.io/images/post/umbrel.webp" alt="Featured image of post cloud را به خانه خود ببرید!" /><h3 id="چطور-این-ایده-به-ذهن-من-رسید-">چطور این ایده به ذهن من رسید ؟ +</h3><p>جریان این ایده به این شکل بود که خب ما ایرانی ها اینترنت به شدت محدود شده‌ای داریم، برای همین ما برای استفاده از اینترنت از vpn @@ -1641,100 +1660,82 @@ ip vpn رو که به هزار زحمت وصل شده بود، قطع کنیم. خب چاره چیه؟ اینکه اگه یک سیستم توی خونه یا شرکت دارین -که همیشه روشنه رو تبدیل به یک سرور کنیم :)</p> -<p>توی این فکر بودم که نیازم رو به چنین سیستم عاملی حس کردم، بعد کمی نیاز های دیگه رو بهش اضافه کردم و یه پست +که همیشه روشنه رو تبدیل به یک سرور کنیم :)</p> +<p>توی این فکر بودم که نیازم رو به چنین سیستم عاملی حس کردم، بعد کمی نیاز های دیگه رو بهش اضافه کردم و یه پست داخل تلگرام نوشتم، یکی کامنت گذاشت و خب این سیستم عامل -را معرفی کرد.</p> -<hr> -<h3 id="umbrel-چیست-">umbrel چیست ؟</h3> -<p>درواقع +را معرفی کرد.</p> +<hr> +<h3 id="umbrel-چیست-">umbrel چیست ؟ +</h3><p>درواقع umbrel یک سیستم عامل است، زمانی که شما این سیستم عامل را نصب کنید، یک صفحه وب در اختیار شما می‌گذارد و شما از طریق این صفحه درون مرورگر خود می‌توانید به سیستم دسترسی داشته باشید. برای مثلا می‌توانید سرویس های مختلف و ابزار های -مختلف را روی +مختلف را روی umbrel -نصب و یا کانفیگ کنید.</p> -<p>سرویس هایی که +نصب و یا کانفیگ کنید.</p> +<p>سرویس هایی که umbrel ارائه می‌دهد تقریبا همان سرویس هایی هستند که شما در طول -روز از نسخه های تجاری آنها استفاده می‌کنید.</p> -<p>اگه دقیق تر بخواهم بگم، این سیستم عامل یک +روز از نسخه های تجاری آنها استفاده می‌کنید.</p> +<p>اگه دقیق تر بخواهم بگم، این سیستم عامل یک store در اختیار کاربران‌ش قرار می‌ده. و خب این یکی از مهم ترین کار هایی است که این سیستم عامل انجام می‌ده چرا که اگر این استور وجود نداشت، شما شخصا باید فرایند کانفیگ و نصب سرویس ها را به عهده می‌گرفتید(این کار یک متخصص دواپس -هست، خیلی هم جالیه)</p> -<p><img src="https://bit-orbit.github.io/images/post/umbrelstore.jpg" - - - - loading="lazy" - - alt="umbrel store" - - -></p> -<hr> -<h3 id="umbrel-چه-نیازی-را-برطرف-میکند-">umbrel چه نیازی را برطرف می‌کند ؟</h3> -<p>وقتی از سرویس های تحت اینترنت استفاده می‌کنید، +هست، خیلی هم جالیه)</p> +<p><img src="https://bit-orbit.github.io/images/post/umbrelstore.jpg" +loading="lazy" +alt="umbrel store" +></p> +<hr> +<h3 id="umbrel-چه-نیازی-را-برطرف-میکند-">umbrel چه نیازی را برطرف می‌کند ؟ +</h3><p>وقتی از سرویس های تحت اینترنت استفاده می‌کنید، به احتمال زیاد شما کالای اون شرکتی هستید که ابزار را در اختیارتون قرار داده است. اگر دقت کنیم می‌بینیم که این شرکت ها بسیاری کاربر دارند و خب برای ارائه درست خدمت به کاربرانشون سرور های زیادی اجاره می‌کنند سرویس ها رو دائم اپدیت و بهتر می‌کنند -و خب سرویس های متعددی هم ارائه می‌کنند.</p> -<p>همه این کار ها نیاز به هزینه های زیادی دارند، +و خب سرویس های متعددی هم ارائه می‌کنند.</p> +<p>همه این کار ها نیاز به هزینه های زیادی دارند، بودجه این شرکت ها فقط و فقط با تبلیغات تامین نمی‌شود بلکه با فروش اطلاعات کاربرانشون(خود ما) به شرکت ها و دولت ها -تامین می‌شود.</p> -<p><img src="https://bit-orbit.github.io/images/post/zuker.jpg" - - - - loading="lazy" - - alt="zukerberg spying" - - -></p> -<p>و البته اگر حتی شما برای سرویسی که استفاده می‌کنید +تامین می‌شود.</p> +<p><img src="https://bit-orbit.github.io/images/post/zuker.jpg" +loading="lazy" +alt="zukerberg spying" +></p> +<p>و البته اگر حتی شما برای سرویسی که استفاده می‌کنید هزینه‌ای پرداخت کنید، مثلا برای استفاده از گوگل دایو ماهانه هزینه هم پرداخت کنید، باز هم مشکلاتی وجود دارد، مثلا قانونا گوگل مالک فایلی است که شما روی سرور هایش -آپلود می‌کنید.</p> -<p>در چنین مواقعی هست که اصطلاح +آپلود می‌کنید.</p> +<p>در چنین مواقعی هست که اصطلاح self-hosting سرویس ها استفاده می‌شود. به این معنی که سرویس هایی که شما روزانه از آن استفاده می‌کنید را خودتان راه اندازی -کنید. اما اینکار نیاز به دانش بالایی داره.</p> -<p>سیستم عامل +کنید. اما اینکار نیاز به دانش بالایی داره.</p> +<p>سیستم عامل umbrel این کار را ساده کرده است، با این تفاوت که قبلا شما باید برای استفاده چند ابزار روی یک سرور، باید سرور رو به درستی کانفیگ می‌کردین سپس ابزار ها را کانفیگ، و بعد سرویس ها راه اجرا می‌کردین. اما الان فقط با یک کلیک شما سرویس توییتر خود را -راه اندازی می‌کنید!</p> -<p><img src="https://bit-orbit.github.io/images/post/umbrelselfhosting.jpg" - - - - loading="lazy" - - alt="umbrel self hosting" - - -></p> -<hr> -<h3 id="umbrel-به-روی-سیستم-عامل-دسکتاپ">umbrel به روی سیستم عامل دسکتاپ</h3> -<p>نصب +راه اندازی می‌کنید!</p> +<p><img src="https://bit-orbit.github.io/images/post/umbrelselfhosting.jpg" +loading="lazy" +alt="umbrel self hosting" +></p> +<hr> +<h3 id="umbrel-به-روی-سیستم-عامل-دسکتاپ">umbrel به روی سیستم عامل دسکتاپ +</h3><p>نصب umbrel بسیاز سادهست فقط کافیه یک سیستم عامل debian رو روی سیستمتون داشته باشید، یک ترمینال باز کنید و کامند -نصب را بزنید، با یک کامند این سیستم نصب می‌شه.</p> -<p>ولی خب اگر سیستم عاملی ندارید که بر پایه +نصب را بزنید، با یک کامند این سیستم نصب می‌شه.</p> +<p>ولی خب اگر سیستم عاملی ندارید که بر پایه debain باشه، می‌شه به سادگی روی ماشین مجازی یک دبیان نصب کنید، حالت شبکه اون سیستم عامل رو @@ -1751,10 +1752,10 @@ IP debain که umbrel -را روی ان نصب کردین را وارد کنید و تمام!</p> -<hr> -<h3 id="umbrel-به-روی-رزبری-پای">umbrel به روی رزبری پای</h3> -<p>رزبری پای! یک سخت افزار کوچک که تقریبا یک کامپیوتر کامل +را روی ان نصب کردین را وارد کنید و تمام!</p> +<hr> +<h3 id="umbrel-به-روی-رزبری-پای">umbrel به روی رزبری پای +</h3><p>رزبری پای! یک سخت افزار کوچک که تقریبا یک کامپیوتر کامل است! البته که قدرت پردازش بالایی ندارد ولی در IOT استفاده زیادی دارد. با توجه به اینکه پردازنده های @@ -1766,24 +1767,18 @@ umbrel را نصب کرد، برای همین سیستم عامل umbrel یک نسخه مخصوص برای رزبری پای دارد، کافیست آن را دانلود و -به روی ربزی خود نصب کنید.</p> -<p>به این دقت کنید که خب سعنی کنید یک هارد اکسترنال به +به روی ربزی خود نصب کنید.</p> +<p>به این دقت کنید که خب سعنی کنید یک هارد اکسترنال به رزبری متصل کنید که فضای کافی برای سروریسی مانند next cloud -داشته باشید.</p> -<p><img src="https://bit-orbit.github.io/images/post/umbrelonressbery.jpg" - - - - loading="lazy" - - alt="umbrel on ressbery pi" - - -></p> -<hr> -<h3 id="umbrel-بروی-سرور-شخصی">umbrel بروی سرور شخصی</h3> -<p>به سادگی اچرای یک کامند! کافیست فقط سیستم عامل +داشته باشید.</p> +<p><img src="https://bit-orbit.github.io/images/post/umbrelonressbery.jpg" +loading="lazy" +alt="umbrel on ressbery pi" +></p> +<hr> +<h3 id="umbrel-بروی-سرور-شخصی">umbrel بروی سرور شخصی +</h3><p>به سادگی اچرای یک کامند! کافیست فقط سیستم عامل سرورتون debain و یا کلا بر پایه @@ -1792,10 +1787,10 @@ debian ubuntu باشه. کامند اجرا را وارد کنید و بعد از اتمام فرایند نصب، IP -سرور را وارد مرورگر کنید، تمام!</p> -<hr> -<h3 id="دستگاه-umbrel">دستگاه umbrel</h3> -<p>شرکت سازنده +سرور را وارد مرورگر کنید، تمام!</p> +<hr> +<h3 id="دستگاه-umbrel">دستگاه umbrel +</h3><p>شرکت سازنده umbrel به جز سیستم عامل، یک دستگاهی طراحی کرده است که به صورت پیشفرض سیستم عامل @@ -1807,35 +1802,29 @@ umbrel به روی rassbery PI استفاده می‌کنید، شما نیاز به یک فن دارید تا این دستگاه -را دائم خنک کند، از طرفی خود فن هم باید خنک شود.</p> -<p>اینجاست که این دستگاه رو برای شرکت یا خانه‌ شما مناسب‌تر -می‌کند(مطمئن باشید تبلیغ نمی‌کنم)</p> -<p><img src="https://bit-orbit.github.io/images/post/umbreldevice.jpg" - - - - loading="lazy" - - alt="umbrel device" - - -></p> -<hr> -<h3 id="umbrel-چطور-کار-میکند-">umbrel چطور کار می‌کند ؟</h3> -<p>اگه بخواهم کمی فنی‌تر وارد ماجرا بشم، همونطور که گفت +را دائم خنک کند، از طرفی خود فن هم باید خنک شود.</p> +<p>اینجاست که این دستگاه رو برای شرکت یا خانه‌ شما مناسب‌تر +می‌کند(مطمئن باشید تبلیغ نمی‌کنم)</p> +<p><img src="https://bit-orbit.github.io/images/post/umbreldevice.jpg" +loading="lazy" +alt="umbrel device" +></p> +<hr> +<h3 id="umbrel-چطور-کار-میکند-">umbrel چطور کار می‌کند ؟ +</h3><p>اگه بخواهم کمی فنی‌تر وارد ماجرا بشم، همونطور که گفت این سیستم عامل بهترین ویژگی که ارائه می‌کند store آن است. البته که اینجا store به معنی فروشگاه نیست، بلکه شبیه یک بازاری است که همه -اجناس‌ش رایگان است :)</p> -<p>سرویس های +اجناس‌ش رایگان است :)</p> +<p>سرویس های umbrel همه سرویس هایی هستند که به صورت منبع باز در اختیار همه قرار گرفته است، این سرویس ها برای اجرا شدن نیاز به شخصی دارد که دانش کافی از سرور داشته باشد و خب نحوه کانفیگ -کردن هر کدام از ابزار ها و سرویس ها را بداند.</p> -<p>دانلود و نصب هر سرویس به صورت جدگانه ممکن است به مشکلات +کردن هر کدام از ابزار ها و سرویس ها را بداند.</p> +<p>دانلود و نصب هر سرویس به صورت جدگانه ممکن است به مشکلات متعددی برخورد کند، مثلا در نصب سرویسی مثل nexcloud شما ممکن است نیاز به ورژن خاصی از @@ -1844,11 +1833,11 @@ php nginx برای اجرای اسکریپت های php -هم واقعا به اندازه زیادی دردسر دارد.</p> -<p>اینجاست که داکر وارد ماجرا می‌شود! +هم واقعا به اندازه زیادی دردسر دارد.</p> +<p>اینجاست که داکر وارد ماجرا می‌شود! umbrel -از قبل تمامی سرویس ها را داکرایز کرده است.</p> -<p>داکرایز به چه معنیست؟ +از قبل تمامی سرویس ها را داکرایز کرده است.</p> +<p>داکرایز به چه معنیست؟ درواقع به این فکر کنید که شما یک برنامه را می‌خواهید نصب کنید، این سرویس توسط سازنده آن از ورژن خاصی از زبان مشخصی، لایبراری و فایل هایی استفاده کرده است که پیشفرض @@ -1859,8 +1848,8 @@ image قرار داده است، و بعد کافیست شما آن فایل را به برنامه docker engine -بدهید، آن برنامه باید بدون هیچ مشکلی اجرا شود.</p> -<p>سیستم عامل +بدهید، آن برنامه باید بدون هیچ مشکلی اجرا شود.</p> +<p>سیستم عامل umbrel دقیقا چنین کاری می‌کند. تمامی image @@ -1868,20 +1857,14 @@ image store برای شما شما لیست می‌کند، شما کافیست که دکمه install -را بزنید، بنگ! سرویس شما آماده است :)</p> -<p><img src="https://bit-orbit.github.io/images/post/umbreldocker.jpg" - - - - loading="lazy" - - alt="umbrel dockeriz" - - -></p> -<hr> -<h3 id="امنیت">امنیت</h3> -<p>اگر +را بزنید، بنگ! سرویس شما آماده است :)</p> +<p><img src="https://bit-orbit.github.io/images/post/umbreldocker.jpg" +loading="lazy" +alt="umbrel dockeriz" +></p> +<hr> +<h3 id="امنیت">امنیت +</h3><p>اگر umbrel را به روی چیزی به جز سرور دارید، حتی اگر برای آن یک دامنه هم بگیرید، @@ -1891,8 +1874,8 @@ umbrel tor به آن متصل شوید و یا یک VPN -سرور داخل شبکه داخلی خود راه اندازی کنید.</p> -<p>البته +سرور داخل شبکه داخلی خود راه اندازی کنید.</p> +<p>البته umbrel به جز tor @@ -1902,60 +1885,54 @@ VPN tailscale که مستقیم به روی umbrel -نصب می‌شود.</p> -<p><img src="https://bit-orbit.github.io/images/post/tailscalaumbrel.jpg" - - - - loading="lazy" - - alt="tailscala umbrel" - - -></p> -<hr> -<h3 id="سرویس-های-کاربردی-umbrel">سرویس های کاربردی umbrel</h3> -<ul> -<li>matrix</li> -</ul> -<blockquote> -<p>خیلی ساده بگم، می‌تونید با این سرویس +نصب می‌شود.</p> +<p><img src="https://bit-orbit.github.io/images/post/tailscalaumbrel.jpg" +loading="lazy" +alt="tailscala umbrel" +></p> +<hr> +<h3 id="سرویس-های-کاربردی-umbrel">سرویس های کاربردی umbrel +</h3><ul> +<li>matrix</li> +</ul> +<blockquote> +<p>خیلی ساده بگم، می‌تونید با این سرویس telegtam خودتون رو راه اندازی کنید. برای اینکه بیشتر درباراه این سرویس بدونید، -<a class="link" href="https://www.wiregeek.ir/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/" target="_blank" rel="noopener" - >این پست</a> -من را بخوانید.</p> -</blockquote> -<ul> -<li>nextcloud</li> -</ul> -<blockquote> -<p>خیلی شبیه به گوگل درایو است، به جز نسخه وب +<a class="link" href="https://www.wiregeek.ir/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/" target="_blank" rel="noopener" +>این پست</a> +من را بخوانید.</p> +</blockquote> +<ul> +<li>nextcloud</li> +</ul> +<blockquote> +<p>خیلی شبیه به گوگل درایو است، به جز نسخه وب حتی یک اپ اندروید هم دارد که می‌توانید آدرس nextcloud را درون آن وارد کنید و از هرکحا به فضای خودتون دسترسی داشته باشید. و خب حتی بعنوان ادمین -برای افراد خانواده و یا شرکت‌تون اکانت بسازید، و فضای شخصی خودشان را در اختیارشان قرار بدین.</p> -</blockquote> -<ul> -<li>qbittorrent</li> -</ul> -<blockquote> -<p>اگر تورنت را می‌شناسید، قطعا این کلاینت معروف را هم باید +برای افراد خانواده و یا شرکت‌تون اکانت بسازید، و فضای شخصی خودشان را در اختیارشان قرار بدین.</p> +</blockquote> +<ul> +<li>qbittorrent</li> +</ul> +<blockquote> +<p>اگر تورنت را می‌شناسید، قطعا این کلاینت معروف را هم باید بشناسید، این کلاینت یک نسخه وب دارد که داخل فروشگاه umbrel قرار دارد. فایل های خود را برای دانلود به این کلاینت بدین و در زمانی که از اینرنت استفاده نمی‌کنید مثلا 2 تا 7 صبح -آن ها را بگذارید تا دانلود بشوند.</p> -</blockquote> -<ul> -<li>pi-hole</li> -</ul> -<blockquote> -<p>برای خلاص شدن از تبلیغات اینترنت کافیه این سرویس +آن ها را بگذارید تا دانلود بشوند.</p> +</blockquote> +<ul> +<li>pi-hole</li> +</ul> +<blockquote> +<p>برای خلاص شدن از تبلیغات اینترنت کافیه این سرویس DNS را به روی umbrel @@ -1963,13 +1940,13 @@ umbrel DHCP را تنظیم کنید که IP -این سرویس را به دیگر دستگاه های شبکه بدهد.</p> -</blockquote> -<ul> -<li>Jellyfin</li> -</ul> -<blockquote> -<p>یکی از نیاز های واقعا اساسی من، این سرویس است. +این سرویس را به دیگر دستگاه های شبکه بدهد.</p> +</blockquote> +<ul> +<li>Jellyfin</li> +</ul> +<blockquote> +<p>یکی از نیاز های واقعا اساسی من، این سرویس است. فیلم هایی که می‌بینم، و یا قرار است که ببینم‌شون رو می‌تونم با این سرویس به درستی دنبال کنم. در اصل این سرویس برای پخش کردن فیلم ها ساخته شده‌ است. @@ -1979,253 +1956,202 @@ jellyfin فیلم ها رو تماشا کنید، مثلا اگر تلویزیون هوشمند دارید کافیست از طریق مرورگر آن وارد umbrel -خود بشین.</p> -</blockquote> -<p>-snapdrop</p> -<blockquote> -<p>سرویس خیلی ساده‌ای است که برای انتقال فایل داخل -شبکه لوکال استفاده می‌شود.</p> -</blockquote> -<ul> -<li>whoogle search</li> -</ul> -<blockquote> -<p>البته +خود بشین.</p> +</blockquote> +<p>-snapdrop</p> +<blockquote> +<p>سرویس خیلی ساده‌ای است که برای انتقال فایل داخل +شبکه لوکال استفاده می‌شود.</p> +</blockquote> +<ul> +<li>whoogle search</li> +</ul> +<blockquote> +<p>البته whoogle یک موتور جست و جوی meta است، به این معنی که خودش وب را خزش نمی‌کند و از موتور های جست و جوی دیگر برای نتیجه جست و جوی شما استفاده -می‌کند.</p> -</blockquote> -<ul> -<li>LlamaGPT</li> -</ul> -<blockquote> -<p>چیزی شبیه +می‌کند.</p> +</blockquote> +<ul> +<li>LlamaGPT</li> +</ul> +<blockquote> +<p>چیزی شبیه ChatGPT -ولی افلاین و کاملا خصوصی.</p> -</blockquote> -<hr> -<h3 id="راه-اندازی-سرویس-های-شخصی">راه اندازی سرویس های شخصی</h3> -<p>خیلی از سرویس ها هنوز به +ولی افلاین و کاملا خصوصی.</p> +</blockquote> +<hr> +<h3 id="راه-اندازی-سرویس-های-شخصی">راه اندازی سرویس های شخصی +</h3><p>خیلی از سرویس ها هنوز به umbrel اضافه نشده. اضافه کردن سرویس به خود store -هم کار سختی نیستی، کافیه فقط داکرایز کردن رو بلد باشین.</p> -<ul> -<li>cache server</li> -</ul> -<p>کش سرور ها معمولا با +هم کار سختی نیستی، کافیه فقط داکرایز کردن رو بلد باشین.</p> +<ul> +<li>cache server</li> +</ul> +<p>کش سرور ها معمولا با transparent proxy بدون اینکه کاربران متوجه پروکسی بشوند پیاده سازی می‌شوند. -کار آنها کاهش مصرف ترافیک است.</p> -<p>یکی از سرویس هایی که خیلی از شرکت ها برای کاهش هزینه های +کار آنها کاهش مصرف ترافیک است.</p> +<p>یکی از سرویس هایی که خیلی از شرکت ها برای کاهش هزینه های اینرنت و یا خب برای بهبود سرعت اینترنت می‌کنند، ارائه cache server -هست.</p> -<p>خیلی خلاصه بگم کش سرور محتوایی که کاربران بازدید می‌کنند +هست.</p> +<p>خیلی خلاصه بگم کش سرور محتوایی که کاربران بازدید می‌کنند را درون خود برای مدتی و با شرایطی از پیش تعیین شده نگه ‌می‌دارد و هر بار که کاربران به محتوای قبلی درخواست بدهند، دیگر آن ریکوئست تا سایت اصلی نمی‌رود و خود -کش سرور که در شبکه داخلی است جواب آن را می‌دهد</p> -<p><img src="https://bit-orbit.github.io/images/post/cacheumber.jpg" - - - - loading="lazy" - - alt="cache server" - - -></p> -<hr> - - - - تفاوت Staticlink و Dynamiclink در زبان های برنامه نویسی - https://bit-orbit.github.io/p/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-staticlink-%D9%88-dynamiclink-%D8%AF%D8%B1-%D8%B2%D8%A8%D8%A7%D9%86-%D9%87%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C/ - Fri, 03 Nov 2023 00:21:46 +0330 - - https://bit-orbit.github.io/p/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-staticlink-%D9%88-dynamiclink-%D8%AF%D8%B1-%D8%B2%D8%A8%D8%A7%D9%86-%D9%87%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C/ - <img src="https://bit-orbit.github.io/images/post/staticvsdynamic.jpg" alt="Featured image of post تفاوت Staticlink و Dynamiclink در زبان های برنامه نویسی" /><p>یکسری مفاهیمی در برنامه نویسی داریم که من تصمیم داریم درباره آنها توی چند پست توضیح بدم، اولین مورد +کش سرور که در شبکه داخلی است جواب آن را می‌دهد</p> +<p><img src="https://bit-orbit.github.io/images/post/cacheumber.jpg" +loading="lazy" +alt="cache server" +></p> +<hr>تفاوت Staticlink و Dynamiclink در زبان های برنامه نویسیhttps://bit-orbit.github.io/p/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-staticlink-%D9%88-dynamiclink-%D8%AF%D8%B1-%D8%B2%D8%A8%D8%A7%D9%86-%D9%87%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C/Fri, 03 Nov 2023 00:21:46 +0330https://bit-orbit.github.io/p/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-staticlink-%D9%88-dynamiclink-%D8%AF%D8%B1-%D8%B2%D8%A8%D8%A7%D9%86-%D9%87%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C/<img src="https://bit-orbit.github.io/images/post/staticvsdynamic.jpg" alt="Featured image of post تفاوت Staticlink و Dynamiclink در زبان های برنامه نویسی" /><p>یکسری مفاهیمی در برنامه نویسی داریم که من تصمیم داریم درباره آنها توی چند پست توضیح بدم، اولین مورد که شامل این پست می‌شه تفاوت static linking و dynamic linking در زبان های برامه نویسی هست‌ش. مفاهیم دیگه‌ای که داخل پست های بعدی می‌نویسم چیز هایی مثل -<strong>static type, dynamic type, compiler language, interpreter language</strong> و &hellip; -خواهد بود.</p> -<hr> -<ul> -<li> -<p>دو مفهموم +<strong>static type, dynamic type, compiler language, interpreter language</strong> و &hellip; +خواهد بود.</p> +<hr> +<ul> +<li> +<p>دو مفهموم static linking و dynamic linking -چه هستند؟</p> -</li> -<li> -<p>هر کدام چه مشکلات و فوایدی دارند؟</p> -</li> -</ul> -<hr> -<p>ما در نوشتن برنامه ها معمولا از لایبراری های زیادی استفاده می‌کنیم، حتی یک برانامه ساده. +چه هستند؟</p> +</li> +<li> +<p>هر کدام چه مشکلات و فوایدی دارند؟</p> +</li> +</ul> +<hr> +<p>ما در نوشتن برنامه ها معمولا از لایبراری های زیادی استفاده می‌کنیم، حتی یک برانامه ساده. سیستم ما برای اجرای یک برنامه، کد برنامه رو به ماشین-کد تبدیل می‌کنه و بعد خط به خط -اون ها رو اجرا می‌کنه.</p> -<p>اصطلاح +اون ها رو اجرا می‌کنه.</p> +<p>اصطلاح linking به روندی گفته می‌شود که کد شما به اشیاء(کد و داده) های خارجی برای استفاده از انها اشاره کند. معمولا دو روش برای اینکار وجود دارد، static linking(لینک کردن ایستا), -dynamic linking(لینک کردن پویا).</p> -<blockquote> -<p>static linking -زمانی اتفاق می‌افتد که کامپایلر منابع خارجی(لایبراری) ها را داخل فایل اجرایی برنامه کپی کند</p> -</blockquote> -<p>در واقع در این روش برنامه شما تمامی لایبراری هایی که شما در کد استفاده کردین رو +dynamic linking(لینک کردن پویا).</p> +<blockquote> +<p>static linking +زمانی اتفاق می‌افتد که کامپایلر منابع خارجی(لایبراری) ها را داخل فایل اجرایی برنامه کپی کند</p> +</blockquote> +<p>در واقع در این روش برنامه شما تمامی لایبراری هایی که شما در کد استفاده کردین رو با کد شما درون یک فایل اجرایی کامپایل می‌کند، زمانی که برنامه اجرا شود، تمامی لایبراری های -مورد نیازش وارد مموری کامپیوتر می‌شود.</p> -<p>فایده هایی که می‌تونم بهش اشاره کنم</p> -<ul> -<li>توی منتشر کردن برنامه به دیگران، مشکل نصب کامپوننت ها رو دیگه ندارن، و به راحتی اجرا می‌کنند.</li> -<li>ممکنه برنامه اندکی سریع تر اجرا بشه</li> -</ul> -<p>این روش واقعا خوبیه ولی خب معایب خودش رو هم داره</p> -<ul> -<li>فایل اجرایی حجم زیادی‌تری نسب‌ت به لینک کردن پویا داره</li> -<li>وقتی برنامه اجرا بشه، بخاطر اینکه همه لایبراری و داده های مورد نیاز داخل همان فایل اجرایی بود، برنامه رم زیادی استفاده می‌کنه.</li> -<li>اگر لایبراری های مورد استفاده تغییر کنند، برنامه نویس باید مجدد برنامه رو کامپایل و منتشر کنه</li> -</ul> -<blockquote> -<p>dynamic linking +مورد نیازش وارد مموری کامپیوتر می‌شود.</p> +<p>فایده هایی که می‌تونم بهش اشاره کنم</p> +<ul> +<li>توی منتشر کردن برنامه به دیگران، مشکل نصب کامپوننت ها رو دیگه ندارن، و به راحتی اجرا می‌کنند.</li> +<li>ممکنه برنامه اندکی سریع تر اجرا بشه</li> +</ul> +<p>این روش واقعا خوبیه ولی خب معایب خودش رو هم داره</p> +<ul> +<li>فایل اجرایی حجم زیادی‌تری نسب‌ت به لینک کردن پویا داره</li> +<li>وقتی برنامه اجرا بشه، بخاطر اینکه همه لایبراری و داده های مورد نیاز داخل همان فایل اجرایی بود، برنامه رم زیادی استفاده می‌کنه.</li> +<li>اگر لایبراری های مورد استفاده تغییر کنند، برنامه نویس باید مجدد برنامه رو کامپایل و منتشر کنه</li> +</ul> +<blockquote> +<p>dynamic linking لینک کردن پویا زمانی است که نام لایبراری خارجی در زمان اجرا وارد فایل اجرایی می‌شود. -و اینکه فقط در این زمان است که لایبراری مورد نیاز وارد مموری می‌شود.</p> -</blockquote> -<p>در این مواقع لایبراری ها باید در سیستم عامل از قبل نصب شده باشند، و یا در موقغ نصب برنامه جدید +و اینکه فقط در این زمان است که لایبراری مورد نیاز وارد مموری می‌شود.</p> +</blockquote> +<p>در این مواقع لایبراری ها باید در سیستم عامل از قبل نصب شده باشند، و یا در موقغ نصب برنامه جدید اون لایبراری ها نصب شوند. و اگر هر تغییری در لایبرار رخ بده، برنامه نویس نیاز نیست دوباره برنامه رو -کامپایل و منتشر کند، فقط لایبراری مورد نیاز اپدیت می‌شود.</p> -<p>این روش هم مزیت های خودش رو داره، مثلا:</p> -<ul> -<li>حجم فایل های اجرایی خیلی کمتری داره</li> -<li>تا زمانی که نیاز به لایبراری نشده باشد(اگر در کد نویسی رعایت شده باشه) لایبراری ها رم اشغال نمی‌کنند.</li> -</ul> -<p>مهمترین عیبی که می‌تونه این روش داشته باشه اینه که -حذف شدن و یا خراب شدن لایبراری باعث می‌شه برنامه دیگه اجرا نشه.</p> -<hr> -<blockquote> -<p>این مطلب خلاصه‌ای کلی بود برای آشنایی با این دو مفهموم +کامپایل و منتشر کند، فقط لایبراری مورد نیاز اپدیت می‌شود.</p> +<p>این روش هم مزیت های خودش رو داره، مثلا:</p> +<ul> +<li>حجم فایل های اجرایی خیلی کمتری داره</li> +<li>تا زمانی که نیاز به لایبراری نشده باشد(اگر در کد نویسی رعایت شده باشه) لایبراری ها رم اشغال نمی‌کنند.</li> +</ul> +<p>مهمترین عیبی که می‌تونه این روش داشته باشه اینه که +حذف شدن و یا خراب شدن لایبراری باعث می‌شه برنامه دیگه اجرا نشه.</p> +<hr> +<blockquote> +<p>این مطلب خلاصه‌ای کلی بود برای آشنایی با این دو مفهموم برای مطالعه بیشتر این -<a class="link" href="https://blog.hubspot.com/website/static-vs-dynamic-linking#static-linking" target="_blank" rel="noopener" - >لینک</a> -می‌تونه مفید باشه.</p> -</blockquote> -<hr> - - - - چرا لینوکس رو دوست دارم؟ - https://bit-orbit.github.io/p/%DA%86%D8%B1%D8%A7-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D8%B1%D9%88-%D8%AF%D9%88%D8%B3%D8%AA-%D8%AF%D8%A7%D8%B1%D9%85/ - Fri, 07 Jul 2023 02:45:19 +0330 - - https://bit-orbit.github.io/p/%DA%86%D8%B1%D8%A7-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D8%B1%D9%88-%D8%AF%D9%88%D8%B3%D8%AA-%D8%AF%D8%A7%D8%B1%D9%85/ - <img src="https://bit-orbit.github.io/images/post/ill.png" alt="Featured image of post چرا لینوکس رو دوست دارم؟" /><p>دوست داشتن لینوکس واقعا دلایل زیادی داره و احتمالا هر کسی به دلیل خاصی لینوکس رو دوست داره. -مثلا یکی ممکنه آزادی‌اش رو دوست داشته باشه یکی دیگه از پکیج منیجر علاقه رو به لینوکس پیدا کرده باشه و &hellip;</p> -<p>من ترمینال قدرتمند لینوکس رو دوست دارم، چیزی که هیچوقت توی ویندوز تجربه نکرده بودم. -یکی زیبایی های ترمینال برای من ترکیب ریزالت برنامه‌های مختلف با یکدیگر و بدست اوردن نتیجه جدیده</p> -<p>مثلا بابام برای چندین پست فرستاد که هر پست شامل چهار یا پنج لینکه که من باید همه‌ش رو دانلود کنم، +<a class="link" href="https://blog.hubspot.com/website/static-vs-dynamic-linking#static-linking" target="_blank" rel="noopener" +>لینک</a> +می‌تونه مفید باشه.</p> +</blockquote> +<hr>چرا لینوکس رو دوست دارم؟https://bit-orbit.github.io/p/%DA%86%D8%B1%D8%A7-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D8%B1%D9%88-%D8%AF%D9%88%D8%B3%D8%AA-%D8%AF%D8%A7%D8%B1%D9%85/Fri, 07 Jul 2023 02:45:19 +0330https://bit-orbit.github.io/p/%DA%86%D8%B1%D8%A7-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D8%B1%D9%88-%D8%AF%D9%88%D8%B3%D8%AA-%D8%AF%D8%A7%D8%B1%D9%85/<img src="https://bit-orbit.github.io/images/post/ill.png" alt="Featured image of post چرا لینوکس رو دوست دارم؟" /><p>دوست داشتن لینوکس واقعا دلایل زیادی داره و احتمالا هر کسی به دلیل خاصی لینوکس رو دوست داره. +مثلا یکی ممکنه آزادی‌اش رو دوست داشته باشه یکی دیگه از پکیج منیجر علاقه رو به لینوکس پیدا کرده باشه و &hellip;</p> +<p>من ترمینال قدرتمند لینوکس رو دوست دارم، چیزی که هیچوقت توی ویندوز تجربه نکرده بودم. +یکی زیبایی های ترمینال برای من ترکیب ریزالت برنامه‌های مختلف با یکدیگر و بدست اوردن نتیجه جدیده</p> +<p>مثلا بابام برای چندین پست فرستاد که هر پست شامل چهار یا پنج لینکه که من باید همه‌ش رو دانلود کنم، درحالت عادی اگر روی ویندوز بودم خب باید هر لینک رو کپی می‌کردم و بعد وارد دانلود منیجر می‌کردم برای دانلود. -ولی خب ما مجهزیم به قدرت ترمینال لینوکس :)</p> -<p><img src="https://bit-orbit.github.io/images/post/tfiles.jpg" - - - - loading="lazy" - - alt="telegram-post-contain-links" - - -></p> -<p>خب من کاری که می‌کنم اینه که متن پست ها رو کپی می‌کنم و توی یک فایل می‌ریزم -اینطوری هم متن های فارسی پست ها و هم لینک های فایل ها رو دارم</p> -<p><img src="https://bit-orbit.github.io/images/post/ffiles2.jpg" - - - - loading="lazy" - - alt="save-links-to-file" - - -></p> -<p>بعد با دستور +ولی خب ما مجهزیم به قدرت ترمینال لینوکس :)</p> +<p><img src="https://bit-orbit.github.io/images/post/tfiles.jpg" +loading="lazy" +alt="telegram-post-contain-links" +></p> +<p>خب من کاری که می‌کنم اینه که متن پست ها رو کپی می‌کنم و توی یک فایل می‌ریزم +اینطوری هم متن های فارسی پست ها و هم لینک های فایل ها رو دارم</p> +<p><img src="https://bit-orbit.github.io/images/post/ffiles2.jpg" +loading="lazy" +alt="save-links-to-file" +></p> +<p>بعد با دستور grep با یک پترن ساده regex همه لینک ها رو از متن های فارسی جدا می‌کنم و داخل یک فایل دیگه می‌ریزم. این پترن به این شکل هست که می‌گه هر خطی که اولش http -باشه رو پیدا کن.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">cat dl.txt <span class="p">|</span> egrep <span class="s1">&#39;^http&#39;</span> &gt; dl.lst -</span></span></code></pre></td></tr></table> -</div> -</div><p><img src="https://bit-orbit.github.io/images/post/tfiles3.jpg" - - - - loading="lazy" - - alt="save-links-to-file" - - -></p> -<p>و تمام، همه لینک ها رو یکجا آماده دارم، حالا کافیه با یک دستور همه فایل -ها رو دانلود کنم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">wget -c -i dl.lst -</span></span></code></pre></td></tr></table> -</div> -</div><p>خب بعد از دانلود شدن فایل ها، یک مشکلی که دارم این هست که هر پست شامل تمامی درس های یکی از فصل هایی هست +باشه رو پیدا کن.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">cat dl.txt <span class="p">|</span> egrep <span class="s1">&#39;^http&#39;</span> &gt; dl.lst +</span></span></code></pre></td></tr></table> +</div> +</div><p><img src="https://bit-orbit.github.io/images/post/tfiles3.jpg" +loading="lazy" +alt="save-links-to-file" +></p> +<p>و تمام، همه لینک ها رو یکجا آماده دارم، حالا کافیه با یک دستور همه فایل +ها رو دانلود کنم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">wget -c -i dl.lst +</span></span></code></pre></td></tr></table> +</div> +</div><p>خب بعد از دانلود شدن فایل ها، یک مشکلی که دارم این هست که هر پست شامل تمامی درس های یکی از فصل هایی هست که بابام می‌بینه. من باید فایل ها رو براساس فصل هاشون داخل دایرکتوری های مشخص خودش قرار بدم. اینم یک راهکار خیلی ساده داره. اسم فایل ها به این شکل هست که فصل رو داخلش نوشته -<code>Option402-J04-01.mp4</code> -کافیه با یه وایلد کارت هر فصل رو جدا کنم و داخل دایرکتوری خودش بریزم</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span><span class="lnt">3 -</span><span class="lnt">4 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mv Option402-J04* j04 -</span></span><span class="line"><span class="cl">mv Option402-J05* j05 -</span></span><span class="line"><span class="cl">mv Option402-J06* j06 -</span></span><span class="line"><span class="cl">mv Option402-J07* j07 -</span></span></code></pre></td></tr></table> -</div> -</div><p>این یک مثال ساده‌ای بود که می‌تونستم بزنم برای -توضیح اینکه چرا لینوکس برام جذاب تره و کارم رو ساده تر می‌کنه.</p> - - - - Blade Runner - https://bit-orbit.github.io/p/blade-runner/ - Sat, 24 Jun 2023 22:02:35 +0330 - - https://bit-orbit.github.io/p/blade-runner/ - <img src="https://bit-orbit.github.io/p/blade-runner/37.png" alt="Featured image of post Blade Runner" /><p>پشت فیلم +<code>Option402-J04-01.mp4</code> +کافیه با یه وایلد کارت هر فصل رو جدا کنم و داخل دایرکتوری خودش بریزم</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mv Option402-J04* j04 +</span></span><span class="line"><span class="cl">mv Option402-J05* j05 +</span></span><span class="line"><span class="cl">mv Option402-J06* j06 +</span></span><span class="line"><span class="cl">mv Option402-J07* j07 +</span></span></code></pre></td></tr></table> +</div> +</div><p>این یک مثال ساده‌ای بود که می‌تونستم بزنم برای +توضیح اینکه چرا لینوکس برام جذاب تره و کارم رو ساده تر می‌کنه.</p>Blade Runnerhttps://bit-orbit.github.io/p/blade-runner/Sat, 24 Jun 2023 22:02:35 +0330https://bit-orbit.github.io/p/blade-runner/<img src="https://bit-orbit.github.io/p/blade-runner/37.png" alt="Featured image of post Blade Runner" /><p>پشت فیلم blade runner ایده جذابی هست که من خیلی دوست دارم. کلیت داستان به این شکل هست که دنیا تونسته از انسان @@ -2233,14 +2159,14 @@ clone هایی بسازه و از اونها برای پیشرفت و کار های سخت استفاده کنه، مثلا توی جنگ بجای سرباز واقعی استفاده می‌شن، اگه قراره ماموریت خطرناکی مثل اکتشاف توی فضا و یا دستگیری یک مجرم خطرناک کسی رو بفرستن، -چی بهتر از یه کلون که جون انسان واقعی به خطر نیوفته؟</p> -<p>اما از جایی به بعد کلون ها تغییر می‌کنند و دیگه برده بودن رو قبول نمی‌کنن، +چی بهتر از یه کلون که جون انسان واقعی به خطر نیوفته؟</p> +<p>اما از جایی به بعد کلون ها تغییر می‌کنند و دیگه برده بودن رو قبول نمی‌کنن، سعی می‌کنن فرار کنند و دستور انسان ها سرپیچی کنند. اما اینکار هم فایده‌ای نداره، چون انسان ها کلون های دیگه‌ای می‌سازند که کارشون پیدا کردن و کشتن کلون هایی هست که فرار کردن، به این شغل که مامولا شغل کلون ها هست می‌گن -blade runner.</p> -<p>این روند یکم شبیه یک +blade runner.</p> +<p>این روند یکم شبیه یک loop هست، ساخت clone @@ -2251,1155 +2177,822 @@ clone clone ها فرار می‌کنند و دوباره clone -های دیگه‌ای میان سراغ اینها.</p> -<p>باید بگم که +های دیگه‌ای میان سراغ اینها.</p> +<p>باید بگم که balde runner چندین سری فیلم هست، -حتی یک سریال انیمیشنی هم داره.</p> -<hr> -<p><img src="https://bit-orbit.github.io/p/blade-runner/1.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/1_hu18203028458765281991.png 480w, https://bit-orbit.github.io/p/blade-runner/1_hu640960131545633292.png 1024w" - loading="lazy" - - alt="blade runner 1" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/2.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/2_hu4178962394613322091.png 480w, https://bit-orbit.github.io/p/blade-runner/2_hu16711218221384379251.png 1024w" - loading="lazy" - - alt="blade runner 2" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/3.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/3_hu5609019162047173584.png 480w, https://bit-orbit.github.io/p/blade-runner/3_hu10217638583400693183.png 1024w" - loading="lazy" - - alt="blade runner 3" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/4.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/4_hu5282573958070938966.png 480w, https://bit-orbit.github.io/p/blade-runner/4_hu4482592906922858564.png 1024w" - loading="lazy" - - alt="blade runner 4" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/5.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/5_hu2506888640986000463.png 480w, https://bit-orbit.github.io/p/blade-runner/5_hu14496052156153432936.png 1024w" - loading="lazy" - - alt="blade runner 5" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/6.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/6_hu10830826830489925101.png 480w, https://bit-orbit.github.io/p/blade-runner/6_hu6736199323060390766.png 1024w" - loading="lazy" - - alt="blade runner 6" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/7.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/7_hu7985689059426135154.png 480w, https://bit-orbit.github.io/p/blade-runner/7_hu11432963024129874521.png 1024w" - loading="lazy" - - alt="blade runner 7" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/8.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/8_hu4012554199744743050.png 480w, https://bit-orbit.github.io/p/blade-runner/8_hu8202217306378929282.png 1024w" - loading="lazy" - - alt="blade runner 8" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/9.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/9_hu15196113375778977307.png 480w, https://bit-orbit.github.io/p/blade-runner/9_hu15870904207399095068.png 1024w" - loading="lazy" - - alt="blade runner 9" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/10.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/10_hu12618574808288748938.png 480w, https://bit-orbit.github.io/p/blade-runner/10_hu3754466868428096437.png 1024w" - loading="lazy" - - alt="blade runner 10" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/11.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/11_hu11410618264927909791.png 480w, https://bit-orbit.github.io/p/blade-runner/11_hu4277845410507795162.png 1024w" - loading="lazy" - - alt="blade runner 11" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/12.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/12_hu3215006993020594134.png 480w, https://bit-orbit.github.io/p/blade-runner/12_hu14782705020137182551.png 1024w" - loading="lazy" - - alt="blade runner 12" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/13.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/13_hu4232052633755214396.png 480w, https://bit-orbit.github.io/p/blade-runner/13_hu1346923444079228958.png 1024w" - loading="lazy" - - alt="blade runner 13" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/14.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/14_hu6781889161464007647.png 480w, https://bit-orbit.github.io/p/blade-runner/14_hu5858317841221136074.png 1024w" - loading="lazy" - - alt="blade runner 14" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/15.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/15_hu10739297907183961586.png 480w, https://bit-orbit.github.io/p/blade-runner/15_hu4676734704812020313.png 1024w" - loading="lazy" - - alt="blade runner 15" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/16.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/16_hu3808253778841193055.png 480w, https://bit-orbit.github.io/p/blade-runner/16_hu5492897964783807333.png 1024w" - loading="lazy" - - alt="blade runner 16" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/17.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/17_hu15906018156274302476.png 480w, https://bit-orbit.github.io/p/blade-runner/17_hu9261422108566517811.png 1024w" - loading="lazy" - - alt="blade runner 17" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/18.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/18_hu15131318335002406021.png 480w, https://bit-orbit.github.io/p/blade-runner/18_hu2714024725375581381.png 1024w" - loading="lazy" - - alt="blade runner 18" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/19.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/19_hu15917001927459466555.png 480w, https://bit-orbit.github.io/p/blade-runner/19_hu7138664998729935235.png 1024w" - loading="lazy" - - alt="blade runner 19" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/20.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/20_hu12851721143569399755.png 480w, https://bit-orbit.github.io/p/blade-runner/20_hu17782052457319326651.png 1024w" - loading="lazy" - - alt="blade runner 20" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/21.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/21_hu11834245209561571419.png 480w, https://bit-orbit.github.io/p/blade-runner/21_hu14820715527791141841.png 1024w" - loading="lazy" - - alt="blade runner 21" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/22.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/22_hu9465551851937469165.png 480w, https://bit-orbit.github.io/p/blade-runner/22_hu11135687547915466301.png 1024w" - loading="lazy" - - alt="blade runner 22" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/23.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/23_hu8775898688435684639.png 480w, https://bit-orbit.github.io/p/blade-runner/23_hu12045446326187223604.png 1024w" - loading="lazy" - - alt="blade runner 23" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/24.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/24_hu11294028215810436705.png 480w, https://bit-orbit.github.io/p/blade-runner/24_hu18231892368219913679.png 1024w" - loading="lazy" - - alt="blade runner 24" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/25.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/25_hu8761348975154971042.png 480w, https://bit-orbit.github.io/p/blade-runner/25_hu11619135011095841436.png 1024w" - loading="lazy" - - alt="blade runner 25" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/26.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/26_hu12440180780663804535.png 480w, https://bit-orbit.github.io/p/blade-runner/26_hu5713483712705107807.png 1024w" - loading="lazy" - - alt="blade runner 26" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/27.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/27_hu9071525693992834621.png 480w, https://bit-orbit.github.io/p/blade-runner/27_hu7726486096834551096.png 1024w" - loading="lazy" - - alt="blade runner 27" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/28.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/28_hu11320496635163544245.png 480w, https://bit-orbit.github.io/p/blade-runner/28_hu11331001432335218241.png 1024w" - loading="lazy" - - alt="blade runner 28" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/29.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/29_hu17546110262762349629.png 480w, https://bit-orbit.github.io/p/blade-runner/29_hu7015101591688597602.png 1024w" - loading="lazy" - - alt="blade runner 29" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/30.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/30_hu15249851528067745990.png 480w, https://bit-orbit.github.io/p/blade-runner/30_hu8044846373972211628.png 1024w" - loading="lazy" - - alt="blade runner 30" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/31.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/31_hu16636699931134635318.png 480w, https://bit-orbit.github.io/p/blade-runner/31_hu3359540856338574783.png 1024w" - loading="lazy" - - alt="blade runner 31" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/32.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/32_hu10145312805175734704.png 480w, https://bit-orbit.github.io/p/blade-runner/32_hu3309584826581134280.png 1024w" - loading="lazy" - - alt="blade runner 32" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/33.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/33_hu337644318686516906.png 480w, https://bit-orbit.github.io/p/blade-runner/33_hu14654175255314197039.png 1024w" - loading="lazy" - - alt="blade runner 33" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/34.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/34_hu15189323557078556399.png 480w, https://bit-orbit.github.io/p/blade-runner/34_hu16363268471537170182.png 1024w" - loading="lazy" - - alt="blade runner 34" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/35.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/35_hu8322119150285037296.png 480w, https://bit-orbit.github.io/p/blade-runner/35_hu533810586026253092.png 1024w" - loading="lazy" - - alt="blade runner 35" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/36.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/36_hu4862540847732595212.png 480w, https://bit-orbit.github.io/p/blade-runner/36_hu17551721700503129844.png 1024w" - loading="lazy" - - alt="blade runner 36" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/37.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/37_hu13555456324091659085.png 480w, https://bit-orbit.github.io/p/blade-runner/37_hu17478514556830379674.png 1024w" - loading="lazy" - - alt="blade runner 37" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/38.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/38_hu12194633382067857783.png 480w, https://bit-orbit.github.io/p/blade-runner/38_hu2277895787698302016.png 1024w" - loading="lazy" - - alt="blade runner 38" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/39.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/39_hu12337681532498135604.png 480w, https://bit-orbit.github.io/p/blade-runner/39_hu5115865521917594662.png 1024w" - loading="lazy" - - alt="blade runner 39" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/40.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/40_hu3124527645647928171.png 480w, https://bit-orbit.github.io/p/blade-runner/40_hu5916975982205344367.png 1024w" - loading="lazy" - - alt="blade runner 40" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/41.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/41_hu14134359656351733033.png 480w, https://bit-orbit.github.io/p/blade-runner/41_hu13715766593884564825.png 1024w" - loading="lazy" - - alt="blade runner 41" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/42.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/42_hu6373522469713299337.png 480w, https://bit-orbit.github.io/p/blade-runner/42_hu16712772082313524707.png 1024w" - loading="lazy" - - alt="blade runner 42" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/43.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/43_hu133280902362998775.png 480w, https://bit-orbit.github.io/p/blade-runner/43_hu9137137028374640853.png 1024w" - loading="lazy" - - alt="blade runner 43" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/44.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/44_hu6510622330663816696.png 480w, https://bit-orbit.github.io/p/blade-runner/44_hu6165608683585085195.png 1024w" - loading="lazy" - - alt="blade runner 44" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/45.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/45_hu1699412177626236516.png 480w, https://bit-orbit.github.io/p/blade-runner/45_hu1979519427043577753.png 1024w" - loading="lazy" - - alt="blade runner 45" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/46.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/46_hu16083489802403887560.png 480w, https://bit-orbit.github.io/p/blade-runner/46_hu8408815140995077934.png 1024w" - loading="lazy" - - alt="blade runner 46" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/47.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/47_hu18398919809836666953.png 480w, https://bit-orbit.github.io/p/blade-runner/47_hu2667296751264683546.png 1024w" - loading="lazy" - - alt="blade runner 47" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/48.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/48_hu14993772505347617599.png 480w, https://bit-orbit.github.io/p/blade-runner/48_hu10682812941153677363.png 1024w" - loading="lazy" - - alt="blade runner 48" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/49.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/49_hu16411694887249070859.png 480w, https://bit-orbit.github.io/p/blade-runner/49_hu16240301775673342794.png 1024w" - loading="lazy" - - alt="blade runner 49" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/50.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/50_hu8503803600664312732.png 480w, https://bit-orbit.github.io/p/blade-runner/50_hu12368446158085776281.png 1024w" - loading="lazy" - - alt="blade runner 50" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/51.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/51_hu11126887880842881081.png 480w, https://bit-orbit.github.io/p/blade-runner/51_hu233188108159875576.png 1024w" - loading="lazy" - - alt="blade runner 51" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/52.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/52_hu11431950899460230050.png 480w, https://bit-orbit.github.io/p/blade-runner/52_hu7298926683432624726.png 1024w" - loading="lazy" - - alt="blade runner 52" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/53.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/53_hu13228039747128200342.png 480w, https://bit-orbit.github.io/p/blade-runner/53_hu16111526649218680588.png 1024w" - loading="lazy" - - alt="blade runner 53" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/54.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/54_hu9342162793044175734.png 480w, https://bit-orbit.github.io/p/blade-runner/54_hu15024151033432483079.png 1024w" - loading="lazy" - - alt="blade runner 54" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/55.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/55_hu12321936001541439659.png 480w, https://bit-orbit.github.io/p/blade-runner/55_hu7429903137234845210.png 1024w" - loading="lazy" - - alt="blade runner 55" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/56.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/56_hu3324342216882080000.png 480w, https://bit-orbit.github.io/p/blade-runner/56_hu13900367100943885646.png 1024w" - loading="lazy" - - alt="blade runner 56" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/57.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/57_hu10899987809346777574.png 480w, https://bit-orbit.github.io/p/blade-runner/57_hu1833878132194999715.png 1024w" - loading="lazy" - - alt="blade runner 57" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/58.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/58_hu2749719750675113407.png 480w, https://bit-orbit.github.io/p/blade-runner/58_hu13712655613043964122.png 1024w" - loading="lazy" - - alt="blade runner 58" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/59.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/59_hu1398855735980946821.png 480w, https://bit-orbit.github.io/p/blade-runner/59_hu1461339919111804308.png 1024w" - loading="lazy" - - alt="blade runner 59" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/60.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/60_hu13599966525084938849.png 480w, https://bit-orbit.github.io/p/blade-runner/60_hu4217891253397448815.png 1024w" - loading="lazy" - - alt="blade runner 60" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/61.png" - width="1920" - height="800" - srcset="https://bit-orbit.github.io/p/blade-runner/61_hu2703060499403853830.png 480w, https://bit-orbit.github.io/p/blade-runner/61_hu8604228838678676103.png 1024w" - loading="lazy" - - alt="blade runner 61" - - - class="gallery-image" - data-flex-grow="240" - data-flex-basis="576px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/62.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/62_hu3743067860640072021.png 480w, https://bit-orbit.github.io/p/blade-runner/62_hu13247994899625272284.png 1024w" - loading="lazy" - - alt="blade runner 62" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/63.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/63_hu5521921960590566458.png 480w, https://bit-orbit.github.io/p/blade-runner/63_hu8576871411060827418.png 1024w" - loading="lazy" - - alt="blade runner 63" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/64.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/64_hu7077094138994732059.png 480w, https://bit-orbit.github.io/p/blade-runner/64_hu11639906649533939474.png 1024w" - loading="lazy" - - alt="blade runner 64" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/65.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/65_hu16953234321408972377.png 480w, https://bit-orbit.github.io/p/blade-runner/65_hu3408024607592661017.png 1024w" - loading="lazy" - - alt="blade runner 65" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/66.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/66_hu11459712331105937605.png 480w, https://bit-orbit.github.io/p/blade-runner/66_hu4644537247085346227.png 1024w" - loading="lazy" - - alt="blade runner 66" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/67.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/67_hu9383573372408392686.png 480w, https://bit-orbit.github.io/p/blade-runner/67_hu10769327503186556723.png 1024w" - loading="lazy" - - alt="blade runner 67" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/68.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/68_hu2177780438990668669.png 480w, https://bit-orbit.github.io/p/blade-runner/68_hu18386143906580524418.png 1024w" - loading="lazy" - - alt="blade runner 68" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/69.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/69_hu3922140427780096899.png 480w, https://bit-orbit.github.io/p/blade-runner/69_hu1155080904206925861.png 1024w" - loading="lazy" - - alt="blade runner 69" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/70.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/70_hu15159042566928364666.png 480w, https://bit-orbit.github.io/p/blade-runner/70_hu5835195235087609063.png 1024w" - loading="lazy" - - alt="blade runner 70" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/71.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/71_hu5520131513925869815.png 480w, https://bit-orbit.github.io/p/blade-runner/71_hu766506351619066374.png 1024w" - loading="lazy" - - alt="blade runner 71" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/72.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/72_hu3430491252945314972.png 480w, https://bit-orbit.github.io/p/blade-runner/72_hu15766962828315836446.png 1024w" - loading="lazy" - - alt="blade runner 72" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/73.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/73_hu14789660611827108309.png 480w, https://bit-orbit.github.io/p/blade-runner/73_hu17840206115327690890.png 1024w" - loading="lazy" - - alt="blade runner 73" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/74.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/74_hu1245649257657215050.png 480w, https://bit-orbit.github.io/p/blade-runner/74_hu14591817395085345655.png 1024w" - loading="lazy" - - alt="blade runner 74" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/75.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/75_hu12103176185954374702.png 480w, https://bit-orbit.github.io/p/blade-runner/75_hu11912668943504722471.png 1024w" - loading="lazy" - - alt="blade runner 75" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/76.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/76_hu17826661668559987462.png 480w, https://bit-orbit.github.io/p/blade-runner/76_hu1468709210677229705.png 1024w" - loading="lazy" - - alt="blade runner 76" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/77.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/77_hu6844293341813334299.png 480w, https://bit-orbit.github.io/p/blade-runner/77_hu17430500291569764572.png 1024w" - loading="lazy" - - alt="blade runner 77" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/78.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/78_hu10710751401961735765.png 480w, https://bit-orbit.github.io/p/blade-runner/78_hu16816878939617923975.png 1024w" - loading="lazy" - - alt="blade runner 78" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/79.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/79_hu13480399198147170633.png 480w, https://bit-orbit.github.io/p/blade-runner/79_hu11463438054987216457.png 1024w" - loading="lazy" - - alt="blade runner 79" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -> -<img src="https://bit-orbit.github.io/p/blade-runner/80.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/80_hu15861010109584580541.png 480w, https://bit-orbit.github.io/p/blade-runner/80_hu185002805574539294.png 1024w" - loading="lazy" - - alt="blade runner 80" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -></p> -<p><img src="https://bit-orbit.github.io/p/blade-runner/81.png" - width="1920" - height="1080" - srcset="https://bit-orbit.github.io/p/blade-runner/81_hu7746682545453067471.png 480w, https://bit-orbit.github.io/p/blade-runner/81_hu8795496398668933935.png 1024w" - loading="lazy" - - alt="blade runner 81" - - - class="gallery-image" - data-flex-grow="177" - data-flex-basis="426px" - -></p> - - - - ارتباط غیر متمرکز و در لحظه با پروتکل ماتریکس - https://bit-orbit.github.io/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/ - Sat, 01 Oct 2022 01:46:23 +0330 - - https://bit-orbit.github.io/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/ - <img src="https://bit-orbit.github.io/images/post/matrix.jpg" alt="Featured image of post ارتباط غیر متمرکز و در لحظه با پروتکل ماتریکس" /><p>ماتریکس یک پروتکل آزاد است! به این معنی که شما میتوانید از این پروتکل برای +حتی یک سریال انیمیشنی هم داره.</p> +<hr> +<p><img src="https://bit-orbit.github.io/p/blade-runner/1.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/1_hu18203028458765281991.png 480w, https://bit-orbit.github.io/p/blade-runner/1_hu640960131545633292.png 1024w" +loading="lazy" +alt="blade runner 1" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/2.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/2_hu4178962394613322091.png 480w, https://bit-orbit.github.io/p/blade-runner/2_hu16711218221384379251.png 1024w" +loading="lazy" +alt="blade runner 2" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/3.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/3_hu5609019162047173584.png 480w, https://bit-orbit.github.io/p/blade-runner/3_hu10217638583400693183.png 1024w" +loading="lazy" +alt="blade runner 3" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/4.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/4_hu5282573958070938966.png 480w, https://bit-orbit.github.io/p/blade-runner/4_hu4482592906922858564.png 1024w" +loading="lazy" +alt="blade runner 4" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/5.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/5_hu2506888640986000463.png 480w, https://bit-orbit.github.io/p/blade-runner/5_hu14496052156153432936.png 1024w" +loading="lazy" +alt="blade runner 5" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/6.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/6_hu10830826830489925101.png 480w, https://bit-orbit.github.io/p/blade-runner/6_hu6736199323060390766.png 1024w" +loading="lazy" +alt="blade runner 6" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/7.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/7_hu7985689059426135154.png 480w, https://bit-orbit.github.io/p/blade-runner/7_hu11432963024129874521.png 1024w" +loading="lazy" +alt="blade runner 7" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/8.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/8_hu4012554199744743050.png 480w, https://bit-orbit.github.io/p/blade-runner/8_hu8202217306378929282.png 1024w" +loading="lazy" +alt="blade runner 8" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/9.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/9_hu15196113375778977307.png 480w, https://bit-orbit.github.io/p/blade-runner/9_hu15870904207399095068.png 1024w" +loading="lazy" +alt="blade runner 9" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/10.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/10_hu12618574808288748938.png 480w, https://bit-orbit.github.io/p/blade-runner/10_hu3754466868428096437.png 1024w" +loading="lazy" +alt="blade runner 10" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/11.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/11_hu11410618264927909791.png 480w, https://bit-orbit.github.io/p/blade-runner/11_hu4277845410507795162.png 1024w" +loading="lazy" +alt="blade runner 11" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/12.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/12_hu3215006993020594134.png 480w, https://bit-orbit.github.io/p/blade-runner/12_hu14782705020137182551.png 1024w" +loading="lazy" +alt="blade runner 12" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/13.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/13_hu4232052633755214396.png 480w, https://bit-orbit.github.io/p/blade-runner/13_hu1346923444079228958.png 1024w" +loading="lazy" +alt="blade runner 13" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/14.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/14_hu6781889161464007647.png 480w, https://bit-orbit.github.io/p/blade-runner/14_hu5858317841221136074.png 1024w" +loading="lazy" +alt="blade runner 14" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/15.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/15_hu10739297907183961586.png 480w, https://bit-orbit.github.io/p/blade-runner/15_hu4676734704812020313.png 1024w" +loading="lazy" +alt="blade runner 15" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/16.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/16_hu3808253778841193055.png 480w, https://bit-orbit.github.io/p/blade-runner/16_hu5492897964783807333.png 1024w" +loading="lazy" +alt="blade runner 16" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/17.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/17_hu15906018156274302476.png 480w, https://bit-orbit.github.io/p/blade-runner/17_hu9261422108566517811.png 1024w" +loading="lazy" +alt="blade runner 17" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/18.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/18_hu15131318335002406021.png 480w, https://bit-orbit.github.io/p/blade-runner/18_hu2714024725375581381.png 1024w" +loading="lazy" +alt="blade runner 18" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/19.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/19_hu15917001927459466555.png 480w, https://bit-orbit.github.io/p/blade-runner/19_hu7138664998729935235.png 1024w" +loading="lazy" +alt="blade runner 19" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/20.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/20_hu12851721143569399755.png 480w, https://bit-orbit.github.io/p/blade-runner/20_hu17782052457319326651.png 1024w" +loading="lazy" +alt="blade runner 20" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/21.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/21_hu11834245209561571419.png 480w, https://bit-orbit.github.io/p/blade-runner/21_hu14820715527791141841.png 1024w" +loading="lazy" +alt="blade runner 21" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/22.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/22_hu9465551851937469165.png 480w, https://bit-orbit.github.io/p/blade-runner/22_hu11135687547915466301.png 1024w" +loading="lazy" +alt="blade runner 22" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/23.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/23_hu8775898688435684639.png 480w, https://bit-orbit.github.io/p/blade-runner/23_hu12045446326187223604.png 1024w" +loading="lazy" +alt="blade runner 23" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/24.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/24_hu11294028215810436705.png 480w, https://bit-orbit.github.io/p/blade-runner/24_hu18231892368219913679.png 1024w" +loading="lazy" +alt="blade runner 24" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/25.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/25_hu8761348975154971042.png 480w, https://bit-orbit.github.io/p/blade-runner/25_hu11619135011095841436.png 1024w" +loading="lazy" +alt="blade runner 25" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/26.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/26_hu12440180780663804535.png 480w, https://bit-orbit.github.io/p/blade-runner/26_hu5713483712705107807.png 1024w" +loading="lazy" +alt="blade runner 26" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/27.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/27_hu9071525693992834621.png 480w, https://bit-orbit.github.io/p/blade-runner/27_hu7726486096834551096.png 1024w" +loading="lazy" +alt="blade runner 27" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/28.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/28_hu11320496635163544245.png 480w, https://bit-orbit.github.io/p/blade-runner/28_hu11331001432335218241.png 1024w" +loading="lazy" +alt="blade runner 28" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/29.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/29_hu17546110262762349629.png 480w, https://bit-orbit.github.io/p/blade-runner/29_hu7015101591688597602.png 1024w" +loading="lazy" +alt="blade runner 29" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/30.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/30_hu15249851528067745990.png 480w, https://bit-orbit.github.io/p/blade-runner/30_hu8044846373972211628.png 1024w" +loading="lazy" +alt="blade runner 30" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/31.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/31_hu16636699931134635318.png 480w, https://bit-orbit.github.io/p/blade-runner/31_hu3359540856338574783.png 1024w" +loading="lazy" +alt="blade runner 31" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/32.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/32_hu10145312805175734704.png 480w, https://bit-orbit.github.io/p/blade-runner/32_hu3309584826581134280.png 1024w" +loading="lazy" +alt="blade runner 32" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/33.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/33_hu337644318686516906.png 480w, https://bit-orbit.github.io/p/blade-runner/33_hu14654175255314197039.png 1024w" +loading="lazy" +alt="blade runner 33" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/34.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/34_hu15189323557078556399.png 480w, https://bit-orbit.github.io/p/blade-runner/34_hu16363268471537170182.png 1024w" +loading="lazy" +alt="blade runner 34" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/35.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/35_hu8322119150285037296.png 480w, https://bit-orbit.github.io/p/blade-runner/35_hu533810586026253092.png 1024w" +loading="lazy" +alt="blade runner 35" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/36.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/36_hu4862540847732595212.png 480w, https://bit-orbit.github.io/p/blade-runner/36_hu17551721700503129844.png 1024w" +loading="lazy" +alt="blade runner 36" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/37.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/37_hu13555456324091659085.png 480w, https://bit-orbit.github.io/p/blade-runner/37_hu17478514556830379674.png 1024w" +loading="lazy" +alt="blade runner 37" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/38.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/38_hu12194633382067857783.png 480w, https://bit-orbit.github.io/p/blade-runner/38_hu2277895787698302016.png 1024w" +loading="lazy" +alt="blade runner 38" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/39.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/39_hu12337681532498135604.png 480w, https://bit-orbit.github.io/p/blade-runner/39_hu5115865521917594662.png 1024w" +loading="lazy" +alt="blade runner 39" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/40.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/40_hu3124527645647928171.png 480w, https://bit-orbit.github.io/p/blade-runner/40_hu5916975982205344367.png 1024w" +loading="lazy" +alt="blade runner 40" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/41.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/41_hu14134359656351733033.png 480w, https://bit-orbit.github.io/p/blade-runner/41_hu13715766593884564825.png 1024w" +loading="lazy" +alt="blade runner 41" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/42.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/42_hu6373522469713299337.png 480w, https://bit-orbit.github.io/p/blade-runner/42_hu16712772082313524707.png 1024w" +loading="lazy" +alt="blade runner 42" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/43.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/43_hu133280902362998775.png 480w, https://bit-orbit.github.io/p/blade-runner/43_hu9137137028374640853.png 1024w" +loading="lazy" +alt="blade runner 43" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/44.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/44_hu6510622330663816696.png 480w, https://bit-orbit.github.io/p/blade-runner/44_hu6165608683585085195.png 1024w" +loading="lazy" +alt="blade runner 44" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/45.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/45_hu1699412177626236516.png 480w, https://bit-orbit.github.io/p/blade-runner/45_hu1979519427043577753.png 1024w" +loading="lazy" +alt="blade runner 45" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/46.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/46_hu16083489802403887560.png 480w, https://bit-orbit.github.io/p/blade-runner/46_hu8408815140995077934.png 1024w" +loading="lazy" +alt="blade runner 46" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/47.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/47_hu18398919809836666953.png 480w, https://bit-orbit.github.io/p/blade-runner/47_hu2667296751264683546.png 1024w" +loading="lazy" +alt="blade runner 47" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/48.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/48_hu14993772505347617599.png 480w, https://bit-orbit.github.io/p/blade-runner/48_hu10682812941153677363.png 1024w" +loading="lazy" +alt="blade runner 48" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/49.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/49_hu16411694887249070859.png 480w, https://bit-orbit.github.io/p/blade-runner/49_hu16240301775673342794.png 1024w" +loading="lazy" +alt="blade runner 49" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/50.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/50_hu8503803600664312732.png 480w, https://bit-orbit.github.io/p/blade-runner/50_hu12368446158085776281.png 1024w" +loading="lazy" +alt="blade runner 50" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/51.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/51_hu11126887880842881081.png 480w, https://bit-orbit.github.io/p/blade-runner/51_hu233188108159875576.png 1024w" +loading="lazy" +alt="blade runner 51" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/52.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/52_hu11431950899460230050.png 480w, https://bit-orbit.github.io/p/blade-runner/52_hu7298926683432624726.png 1024w" +loading="lazy" +alt="blade runner 52" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/53.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/53_hu13228039747128200342.png 480w, https://bit-orbit.github.io/p/blade-runner/53_hu16111526649218680588.png 1024w" +loading="lazy" +alt="blade runner 53" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/54.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/54_hu9342162793044175734.png 480w, https://bit-orbit.github.io/p/blade-runner/54_hu15024151033432483079.png 1024w" +loading="lazy" +alt="blade runner 54" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/55.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/55_hu12321936001541439659.png 480w, https://bit-orbit.github.io/p/blade-runner/55_hu7429903137234845210.png 1024w" +loading="lazy" +alt="blade runner 55" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/56.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/56_hu3324342216882080000.png 480w, https://bit-orbit.github.io/p/blade-runner/56_hu13900367100943885646.png 1024w" +loading="lazy" +alt="blade runner 56" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/57.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/57_hu10899987809346777574.png 480w, https://bit-orbit.github.io/p/blade-runner/57_hu1833878132194999715.png 1024w" +loading="lazy" +alt="blade runner 57" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/58.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/58_hu2749719750675113407.png 480w, https://bit-orbit.github.io/p/blade-runner/58_hu13712655613043964122.png 1024w" +loading="lazy" +alt="blade runner 58" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/59.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/59_hu1398855735980946821.png 480w, https://bit-orbit.github.io/p/blade-runner/59_hu1461339919111804308.png 1024w" +loading="lazy" +alt="blade runner 59" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/60.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/60_hu13599966525084938849.png 480w, https://bit-orbit.github.io/p/blade-runner/60_hu4217891253397448815.png 1024w" +loading="lazy" +alt="blade runner 60" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/61.png" +width="1920" +height="800" +srcset="https://bit-orbit.github.io/p/blade-runner/61_hu2703060499403853830.png 480w, https://bit-orbit.github.io/p/blade-runner/61_hu8604228838678676103.png 1024w" +loading="lazy" +alt="blade runner 61" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/62.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/62_hu3743067860640072021.png 480w, https://bit-orbit.github.io/p/blade-runner/62_hu13247994899625272284.png 1024w" +loading="lazy" +alt="blade runner 62" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/63.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/63_hu5521921960590566458.png 480w, https://bit-orbit.github.io/p/blade-runner/63_hu8576871411060827418.png 1024w" +loading="lazy" +alt="blade runner 63" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/64.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/64_hu7077094138994732059.png 480w, https://bit-orbit.github.io/p/blade-runner/64_hu11639906649533939474.png 1024w" +loading="lazy" +alt="blade runner 64" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/65.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/65_hu16953234321408972377.png 480w, https://bit-orbit.github.io/p/blade-runner/65_hu3408024607592661017.png 1024w" +loading="lazy" +alt="blade runner 65" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/66.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/66_hu11459712331105937605.png 480w, https://bit-orbit.github.io/p/blade-runner/66_hu4644537247085346227.png 1024w" +loading="lazy" +alt="blade runner 66" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/67.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/67_hu9383573372408392686.png 480w, https://bit-orbit.github.io/p/blade-runner/67_hu10769327503186556723.png 1024w" +loading="lazy" +alt="blade runner 67" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/68.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/68_hu2177780438990668669.png 480w, https://bit-orbit.github.io/p/blade-runner/68_hu18386143906580524418.png 1024w" +loading="lazy" +alt="blade runner 68" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/69.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/69_hu3922140427780096899.png 480w, https://bit-orbit.github.io/p/blade-runner/69_hu1155080904206925861.png 1024w" +loading="lazy" +alt="blade runner 69" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/70.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/70_hu15159042566928364666.png 480w, https://bit-orbit.github.io/p/blade-runner/70_hu5835195235087609063.png 1024w" +loading="lazy" +alt="blade runner 70" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/71.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/71_hu5520131513925869815.png 480w, https://bit-orbit.github.io/p/blade-runner/71_hu766506351619066374.png 1024w" +loading="lazy" +alt="blade runner 71" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/72.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/72_hu3430491252945314972.png 480w, https://bit-orbit.github.io/p/blade-runner/72_hu15766962828315836446.png 1024w" +loading="lazy" +alt="blade runner 72" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/73.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/73_hu14789660611827108309.png 480w, https://bit-orbit.github.io/p/blade-runner/73_hu17840206115327690890.png 1024w" +loading="lazy" +alt="blade runner 73" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/74.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/74_hu1245649257657215050.png 480w, https://bit-orbit.github.io/p/blade-runner/74_hu14591817395085345655.png 1024w" +loading="lazy" +alt="blade runner 74" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/75.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/75_hu12103176185954374702.png 480w, https://bit-orbit.github.io/p/blade-runner/75_hu11912668943504722471.png 1024w" +loading="lazy" +alt="blade runner 75" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/76.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/76_hu17826661668559987462.png 480w, https://bit-orbit.github.io/p/blade-runner/76_hu1468709210677229705.png 1024w" +loading="lazy" +alt="blade runner 76" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/77.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/77_hu6844293341813334299.png 480w, https://bit-orbit.github.io/p/blade-runner/77_hu17430500291569764572.png 1024w" +loading="lazy" +alt="blade runner 77" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/78.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/78_hu10710751401961735765.png 480w, https://bit-orbit.github.io/p/blade-runner/78_hu16816878939617923975.png 1024w" +loading="lazy" +alt="blade runner 78" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/79.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/79_hu13480399198147170633.png 480w, https://bit-orbit.github.io/p/blade-runner/79_hu11463438054987216457.png 1024w" +loading="lazy" +alt="blade runner 79" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +> +<img src="https://bit-orbit.github.io/p/blade-runner/80.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/80_hu15861010109584580541.png 480w, https://bit-orbit.github.io/p/blade-runner/80_hu185002805574539294.png 1024w" +loading="lazy" +alt="blade runner 80" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></p> +<p><img src="https://bit-orbit.github.io/p/blade-runner/81.png" +width="1920" +height="1080" +srcset="https://bit-orbit.github.io/p/blade-runner/81_hu7746682545453067471.png 480w, https://bit-orbit.github.io/p/blade-runner/81_hu8795496398668933935.png 1024w" +loading="lazy" +alt="blade runner 81" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></p>ارتباط غیر متمرکز و در لحظه با پروتکل ماتریکسhttps://bit-orbit.github.io/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/Sat, 01 Oct 2022 01:46:23 +0330https://bit-orbit.github.io/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/<img src="https://bit-orbit.github.io/images/post/matrix.jpg" alt="Featured image of post ارتباط غیر متمرکز و در لحظه با پروتکل ماتریکس" /><p>ماتریکس یک پروتکل آزاد است! به این معنی که شما میتوانید از این پروتکل برای ارتباطات تحت شبکه مانند پیامرسان، اینترنت چیز ها (IoT) و هر چیز دیگری @@ -3407,76 +3000,58 @@ balde runner های این پروتکل، رمزنگاری سر تا سر (E2E) است، این ویژگی باعث میشود حتی سرور های ماتریکس که داده های ما را -منتقل میکنند هم توانایی دسترسی به داده ها را نداشته باشند.</p> -<h3 id="پیام-رسان-ماتریکس">پیام رسان ماتریکس</h3> -<p>یکی از اصلی ترین استفاده های ماتریکس، پیامرسان است. +منتقل میکنند هم توانایی دسترسی به داده ها را نداشته باشند.</p> +<h3 id="پیام-رسان-ماتریکس">پیام رسان ماتریکس +</h3><p>یکی از اصلی ترین استفاده های ماتریکس، پیامرسان است. این پیامرسان به صورت غیر متمرکز عمل میکند. با این روش سانسور/فیلتر شدن سرور هایی که پیام ها را ذخیره و منتقل میکنند غیر ممکن میشود! چرا که این سرور ها قابل تغییر هستند و هر زمان که یکی از این سرور ها سانسور شود، شما همچنان میتوانید با سرور دیگری مجدد اکانت بسازید و در ارتباط بمانید. -و یا حتی از سرور خودتان استفاده کنید!</p> -<h3 id="ماتریکس-چگونه-کار-میکند">ماتریکس چگونه کار میکند؟</h3> -<p>هر سرور در ماتریکس -<em>HomeServer</em> +و یا حتی از سرور خودتان استفاده کنید!</p> +<h3 id="ماتریکس-چگونه-کار-میکند">ماتریکس چگونه کار میکند؟ +</h3><p>هر سرور در ماتریکس +<em>HomeServer</em> نامیده میشود، شما به عنوان -<em>Client</em> +<em>Client</em> انتخاب میکنید از هر HomeServer -که میخواهید استفاده کنید.</p> -<p>HomeServer +که میخواهید استفاده کنید.</p> +<p>HomeServer ها میتوانند سرور های عمومی مثل سروری که خود -<a class="link" href="matrix.org" ><strong>ماتریکس</strong></a> +<a class="link" href="matrix.org" ><strong>ماتریکس</strong></a> راه اندازی کرده است باشد و یا میتواند سرور های -<strong>شخصی خودتان</strong> -باشد.</p> -<p><a class="link" href="https://bit-orbit.github.io/images/post/page2-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page2-768x768.png" - - - - loading="lazy" - - alt="matrix-homeserver" - - -></a></p> -<p>زمانی که شما از یک +<strong>شخصی خودتان</strong> +باشد.</p> +<p><a class="link" href="https://bit-orbit.github.io/images/post/page2-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page2-768x768.png" +loading="lazy" +alt="matrix-homeserver" +></a></p> +<p>زمانی که شما از یک HomeServer استفاده میکنید، این به آن معنی است که کلاینت شما به اکانتتان در آن HomeServer -متصل میشود.</p> -<p><a class="link" href="https://bit-orbit.github.io/images/post/page3-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page3-768x768.png" - - - - loading="lazy" - - alt="matrix-homeserver" - - -></a></p> -<p>زمانی که شما پیامی ارسال میکنید، پیامتان به +متصل میشود.</p> +<p><a class="link" href="https://bit-orbit.github.io/images/post/page3-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page3-768x768.png" +loading="lazy" +alt="matrix-homeserver" +></a></p> +<p>زمانی که شما پیامی ارسال میکنید، پیامتان به HomeServer شما ارسال میشود، HomeServer -بعد از دریافت پیام از شما، آن را به کاربران مشترک در آن روم ارسال میکند.</p> -<blockquote> -<p>در ماتریکس هر نوع چت(شخصی و یا گروه) را +بعد از دریافت پیام از شما، آن را به کاربران مشترک در آن روم ارسال میکند.</p> +<blockquote> +<p>در ماتریکس هر نوع چت(شخصی و یا گروه) را room -مینامند</p> -</blockquote> -<p><a class="link" href="https://bit-orbit.github.io/images/post/page4-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page4-768x768.png" - - - - loading="lazy" - - alt="matrix-homeserver" - - -></a></p> -<p>در واقع زمانی که شما پیامی ارسال میکنید +مینامند</p> +</blockquote> +<p><a class="link" href="https://bit-orbit.github.io/images/post/page4-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page4-768x768.png" +loading="lazy" +alt="matrix-homeserver" +></a></p> +<p>در واقع زمانی که شما پیامی ارسال میکنید HomeServer پیام را برای کاربران ارسال میکند. این کاربران ممکن است کاربران همان HomeServer @@ -3490,47 +3065,41 @@ Homeserver HomerServer های دیگر ارسال خواهد کرد. و آن HomeServer -پیام را دریافت و به کاربران مربوطه ارسال خواهد کرد.</p> -<p><a class="link" href="https://bit-orbit.github.io/images/post/page6-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page6-768x768.png" - - - - loading="lazy" - - alt="matrix-homeserver" - - -></a></p> -<blockquote> -<p>زمانی که شما پیامی را برای کاربر +پیام را دریافت و به کاربران مربوطه ارسال خواهد کرد.</p> +<p><a class="link" href="https://bit-orbit.github.io/images/post/page6-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page6-768x768.png" +loading="lazy" +alt="matrix-homeserver" +></a></p> +<blockquote> +<p>زمانی که شما پیامی را برای کاربر HomeServer دیگری ارسال میکنید، پیام شما تنها در HomeServer خودتان ذخیره نخواهد شد. بلکه در HomeServer -کاربری/کاربرانی که پیام را به آن ارسال کرده اید هم ذخیره میشود.</p> -</blockquote> -<h3 id="اصطلاحات-در-ماتریکس">اصطلاحات در ماتریکس</h3> -<p>در ماتریکس چند اصطلاح وجود دارد که آشنایی با آنها به درک بهتر این پروتکل کمک میکند.</p> -<ul> -<li> -<p>HomeServer: +کاربری/کاربرانی که پیام را به آن ارسال کرده اید هم ذخیره میشود.</p> +</blockquote> +<h3 id="اصطلاحات-در-ماتریکس">اصطلاحات در ماتریکس +</h3><p>در ماتریکس چند اصطلاح وجود دارد که آشنایی با آنها به درک بهتر این پروتکل کمک میکند.</p> +<ul> +<li> +<p>HomeServer: سروری که شما در آن اکانت خود را میسازید. این سرور پیام های شما را ذخیره -و ارسال میکند.</p> -</li> -<li> -<p>Client: +و ارسال میکند.</p> +</li> +<li> +<p>Client: برای اینکه کاربران بتوانند از ماتریکس استفاده کنند، باید از ابزاری که از این -پروتکل بهره میبرد استفاده کنند. به اینگونه از ابزار ها کلاینت گفته میشود.</p> -</li> -<li> -<p>Event: +پروتکل بهره میبرد استفاده کنند. به اینگونه از ابزار ها کلاینت گفته میشود.</p> +</li> +<li> +<p>Event: هر نوع داده ای که توسط ماتریکس ارسال شود -<em>event</em> -نامیده میشود. برای مثال ممکن است شما پیام ارسال کنید و یا به یک پیام واکنش نشان دهید.</p> -</li> -<li> -<p>Room: +<em>event</em> +نامیده میشود. برای مثال ممکن است شما پیام ارسال کنید و یا به یک پیام واکنش نشان دهید.</p> +</li> +<li> +<p>Room: قسمتی است که کاربر با آن event ها را دریافت و ارسال میکند. @@ -3541,10 +3110,10 @@ room room میتوانند event -ها را دریافت کنند.</p> -</li> -<li> -<p>Space: +ها را دریافت کنند.</p> +</li> +<li> +<p>Space: Space نوعی خاصی از room @@ -3552,229 +3121,198 @@ room room ها است. space -میتواند هم شامل گروه و هم کاربران عادی شود.</p> -</li> -<li> -<p>Bridge: +میتواند هم شامل گروه و هم کاربران عادی شود.</p> +</li> +<li> +<p>Bridge: پل یا Bridge به راهکاری گفته میشود که شما میتوانید با استفاده از آن بین ماتریکس و پیامرسان های دیگر چت کنید. برای مثال شما با استفاده از Brdige تلگرام -میتوانید با ماتریکس به کاربران تلگرام پیام ارسال و دریافت کنید.</p> -</li> -</ul> -<h3 id="چگونه-از-ماتریکس-استفاده-کنیم">چگونه از ماتریکس استفاده کنیم؟</h3> -<p>برای استفاده از ماتریکس، شما کافیست یکی از کلاینت های آن را نصب و به یک +میتوانید با ماتریکس به کاربران تلگرام پیام ارسال و دریافت کنید.</p> +</li> +</ul> +<h3 id="چگونه-از-ماتریکس-استفاده-کنیم">چگونه از ماتریکس استفاده کنیم؟ +</h3><p>برای استفاده از ماتریکس، شما کافیست یکی از کلاینت های آن را نصب و به یک HomeServer -متصل شوید.</p> -<p>یکی از محبوب ترین کلاینت ها، کلاینت -<a class="link" href="https://element.io/" target="_blank" rel="noopener" - >Element</a> +متصل شوید.</p> +<p>یکی از محبوب ترین کلاینت ها، کلاینت +<a class="link" href="https://element.io/" target="_blank" rel="noopener" +>Element</a> است، که شامل نسخه -<a class="link" href="https://play.google.com/store/apps/details?id=im.vector.app" target="_blank" rel="noopener" - >Android</a>، -<a class="link" href="https://apps.apple.com/app/vector/id1083446067" target="_blank" rel="noopener" - >IOS</a>، -<a class="link" href="https://element.io/get-started#downloads" target="_blank" rel="noopener" - >Windows, Linux، Mac</a> +<a class="link" href="https://play.google.com/store/apps/details?id=im.vector.app" target="_blank" rel="noopener" +>Android</a>، +<a class="link" href="https://apps.apple.com/app/vector/id1083446067" target="_blank" rel="noopener" +>IOS</a>، +<a class="link" href="https://element.io/get-started#downloads" target="_blank" rel="noopener" +>Windows, Linux، Mac</a> و البته -<a class="link" href="https://app.element.io/" target="_blank" rel="noopener" - >نسخه تحت وب میشود</a>.</p> -<p>استفاده از المنت مانند هر پیامرسان دیگری ساده است، اما اگر نیاز به کمک دارید -<a class="link" href="https://static.element.io/pdfs/element-user-guide.pdf" target="_blank" rel="noopener" - >این لینک</a> -میتواند کمکتان کند.</p> -<h3 id="چطور-از-سرور-شخصی-خودمان-استفاده-کنیم">چطور از سرور شخصی خودمان استفاده کنیم؟</h3> -<p>شما مجبور نیستید سرویس ماتریکس را روی سرور شخصی خودتان اجرا کنید مگر اینکه:</p> -<ul> -<li>سرور های عمومی ماتریکس سانسور و از دسترس خارج شده باشند</li> -<li>و یا شاید نگران دیتایی هستید که روی سرور های -عمومی ماتریکس از طرف شما ذخیره میشود!(گرچه پیام ها تماما رمزنگاری سر تا سر میشود)</li> -<li>و یا حتی شاید میخواهید پیام رسان داخلی شرکت/خانه خودتان را داشته باشید</li> -<li>و یا البته ممکن است بخواهید +<a class="link" href="https://app.element.io/" target="_blank" rel="noopener" +>نسخه تحت وب میشود</a>.</p> +<p>استفاده از المنت مانند هر پیامرسان دیگری ساده است، اما اگر نیاز به کمک دارید +<a class="link" href="https://static.element.io/pdfs/element-user-guide.pdf" target="_blank" rel="noopener" +>این لینک</a> +میتواند کمکتان کند.</p> +<h3 id="چطور-از-سرور-شخصی-خودمان-استفاده-کنیم">چطور از سرور شخصی خودمان استفاده کنیم؟ +</h3><p>شما مجبور نیستید سرویس ماتریکس را روی سرور شخصی خودتان اجرا کنید مگر اینکه:</p> +<ul> +<li>سرور های عمومی ماتریکس سانسور و از دسترس خارج شده باشند</li> +<li>و یا شاید نگران دیتایی هستید که روی سرور های +عمومی ماتریکس از طرف شما ذخیره میشود!(گرچه پیام ها تماما رمزنگاری سر تا سر میشود)</li> +<li>و یا حتی شاید میخواهید پیام رسان داخلی شرکت/خانه خودتان را داشته باشید</li> +<li>و یا البته ممکن است بخواهید Bridge -بسازید.</li> -</ul> -<p>نسخه سرور ماتریکس -<a class="link" href="https://github.com/matrix-org/synapse" target="_blank" rel="noopener" - ><em>Synapse</em></a> +بسازید.</li> +</ul> +<p>نسخه سرور ماتریکس +<a class="link" href="https://github.com/matrix-org/synapse" target="_blank" rel="noopener" +><em>Synapse</em></a> نام دارد، شما میتوانید با استفاده از -<a class="link" href="https://hub.docker.com/r/matrixdotorg/synapse/" target="_blank" rel="noopener" - >ایمیج داکر رسمی ماتریکس</a>، -سرور شخصی خودتان را اجرا کنید.</p> -<h3 id="نتیجه-گیری">نتیجه گیری</h3> -<p>هدف من از نوشتن این پست در این روز های تلخ این بود که ابزاری را معرفی کنم +<a class="link" href="https://hub.docker.com/r/matrixdotorg/synapse/" target="_blank" rel="noopener" +>ایمیج داکر رسمی ماتریکس</a>، +سرور شخصی خودتان را اجرا کنید.</p> +<h3 id="نتیجه-گیری">نتیجه گیری +</h3><p>هدف من از نوشتن این پست در این روز های تلخ این بود که ابزاری را معرفی کنم تا ما با وجود قطعی های متعدد اینترنت و قطع دسترسی ما از سرور های خارجی، کماکان -در ارتباط نگهدارد و صدایمان را&hellip;</p> -<p>اگر روزی دسترسی ما از اینترنت قطع شد، کاری که لازم است برای در ارتباط ماندن انجام بدهیم -این است که یک سرویس ماتریکس داخلی راه اندازی کنیم.</p> -<hr> - - - - کپی کردن ریزالت پایپ به کلیپ برد - https://bit-orbit.github.io/p/%DA%A9%D9%BE%DB%8C-%DA%A9%D8%B1%D8%AF%D9%86-%D8%B1%DB%8C%D8%B2%D8%A7%D9%84%D8%AA-%D9%BE%D8%A7%DB%8C%D9%BE-%D8%A8%D9%87-%DA%A9%D9%84%DB%8C%D9%BE-%D8%A8%D8%B1%D8%AF/ - Sun, 01 May 2022 04:48:44 +0430 - - https://bit-orbit.github.io/p/%DA%A9%D9%BE%DB%8C-%DA%A9%D8%B1%D8%AF%D9%86-%D8%B1%DB%8C%D8%B2%D8%A7%D9%84%D8%AA-%D9%BE%D8%A7%DB%8C%D9%BE-%D8%A8%D9%87-%DA%A9%D9%84%DB%8C%D9%BE-%D8%A8%D8%B1%D8%AF/ - <img src="https://bit-orbit.github.io/images/post/cclp.jpg" alt="Featured image of post کپی کردن ریزالت پایپ به کلیپ برد" /><div dir='rtl' style='font-size:23px'> -<p>ما زمانی که برنامه‌ای در ترمینال اجرا می‌کنیم برای کپی کردن ریزالت اون برنامه، با موس تکست رو سلکت می‌کنیم و بعد کپی می‌کنیم. اما می‌دونیم که توی لینوکس ما pipe رو داریم. +در ارتباط نگهدارد و صدایمان را&hellip;</p> +<p>اگر روزی دسترسی ما از اینترنت قطع شد، کاری که لازم است برای در ارتباط ماندن انجام بدهیم +این است که یک سرویس ماتریکس داخلی راه اندازی کنیم.</p> +<hr>کپی کردن ریزالت پایپ به کلیپ بردhttps://bit-orbit.github.io/p/%DA%A9%D9%BE%DB%8C-%DA%A9%D8%B1%D8%AF%D9%86-%D8%B1%DB%8C%D8%B2%D8%A7%D9%84%D8%AA-%D9%BE%D8%A7%DB%8C%D9%BE-%D8%A8%D9%87-%DA%A9%D9%84%DB%8C%D9%BE-%D8%A8%D8%B1%D8%AF/Sun, 01 May 2022 04:48:44 +0430https://bit-orbit.github.io/p/%DA%A9%D9%BE%DB%8C-%DA%A9%D8%B1%D8%AF%D9%86-%D8%B1%DB%8C%D8%B2%D8%A7%D9%84%D8%AA-%D9%BE%D8%A7%DB%8C%D9%BE-%D8%A8%D9%87-%DA%A9%D9%84%DB%8C%D9%BE-%D8%A8%D8%B1%D8%AF/<img src="https://bit-orbit.github.io/images/post/cclp.jpg" alt="Featured image of post کپی کردن ریزالت پایپ به کلیپ برد" /><div dir='rtl' style='font-size:23px'> +<p>ما زمانی که برنامه‌ای در ترمینال اجرا می‌کنیم برای کپی کردن ریزالت اون برنامه، با موس تکست رو سلکت می‌کنیم و بعد کپی می‌کنیم. اما می‌دونیم که توی لینوکس ما pipe رو داریم. پایپ کردن به این معنی است که شما یک برنامه رو اجرا می‌کنید و ریزالت اون برنامه رو بعنوان ورودی به یک برنامه دیگر می‌دهید. -و خب کاش می‌شد با پایپ کردن، متنی کپی بشه!</p> -<p>برنامه‌ای ساده نوشتم که این کار رو برای ما به سادگی انجام بده.</p> -<p>مثلا ما می‌خواهیم لیست فایل ها و دایرکتوری های داخل پوشه /var/ رو کپی کنیم. -می‌دونیم که دستور ls میاد و لیست فایل ها رو می‌گیره، کافیه این رو پایپ کنیم به clp تا این لیست به کلیپ برد کپی بشه.</p> -<p><code>ls /var | clp</code></p> -<p>برای نصب این چند دستور رو می‌تونید اجرا کنید:</p> -<div dir='ltr'> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span><span class="lnt">3 -</span><span class="lnt">4 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">cd</span> /tmp/ <span class="o">&amp;&amp;</span> wget <span class="s1">&#39;https://raw.githubusercontent.com/shabane/clp/master/clp.py&#39;</span> -</span></span><span class="line"><span class="cl">cp clp.py ~/.local/bin/clp -</span></span><span class="line"><span class="cl">chmod +x ~/.local/bin/clp -</span></span><span class="line"><span class="cl">clp -h -</span></span></code></pre></td></tr></table> -</div> -</div></div> -<br> -<p>و خب می‌تونید برای دیدن مثال ها ریپوی گیتهاب برنامه رو هم ببینید</p> -<p><a class="link" href="https://github.com/shabane/clp" target="_blank" rel="noopener" - >https://github.com/shabane/clp</a></p> -</div> - - - ساخت کوتاه کننده لینک با گیتهاب پیجز - https://bit-orbit.github.io/p/%D8%B3%D8%A7%D8%AE%D8%AA-%DA%A9%D9%88%D8%AA%D8%A7%D9%87-%DA%A9%D9%86%D9%86%D8%AF%D9%87-%D9%84%DB%8C%D9%86%DA%A9-%D8%A8%D8%A7-%DA%AF%DB%8C%D8%AA%D9%87%D8%A7%D8%A8-%D9%BE%DB%8C%D8%AC%D8%B2/ - Tue, 22 Mar 2022 22:41:20 +0000 - - https://bit-orbit.github.io/p/%D8%B3%D8%A7%D8%AE%D8%AA-%DA%A9%D9%88%D8%AA%D8%A7%D9%87-%DA%A9%D9%86%D9%86%D8%AF%D9%87-%D9%84%DB%8C%D9%86%DA%A9-%D8%A8%D8%A7-%DA%AF%DB%8C%D8%AA%D9%87%D8%A7%D8%A8-%D9%BE%DB%8C%D8%AC%D8%B2/ - <img src="https://bit-orbit.github.io/images/post/carbon_r7tm.jpg" alt="Featured image of post ساخت کوتاه کننده لینک با گیتهاب پیجز" /><div dir='rtl' style='font-size: x-large'> -<p>شاید تا به حال از کوتاه کننده های لینک استفاده کرده باشید، -اما ایا سایت <em>کوتاه کننده لینک</em> خودتون رو درست کردین؟</p> -<p>گیتهاب پیجز یک سرور رایگان برای دیپلوی سایت های ایستا است. +و خب کاش می‌شد با پایپ کردن، متنی کپی بشه!</p> +<p>برنامه‌ای ساده نوشتم که این کار رو برای ما به سادگی انجام بده.</p> +<p>مثلا ما می‌خواهیم لیست فایل ها و دایرکتوری های داخل پوشه /var/ رو کپی کنیم. +می‌دونیم که دستور ls میاد و لیست فایل ها رو می‌گیره، کافیه این رو پایپ کنیم به clp تا این لیست به کلیپ برد کپی بشه.</p> +<p><code>ls /var | clp</code></p> +<p>برای نصب این چند دستور رو می‌تونید اجرا کنید:</p> +<div dir='ltr'> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">cd</span> /tmp/ <span class="o">&amp;&amp;</span> wget <span class="s1">&#39;https://raw.githubusercontent.com/shabane/clp/master/clp.py&#39;</span> +</span></span><span class="line"><span class="cl">cp clp.py ~/.local/bin/clp +</span></span><span class="line"><span class="cl">chmod +x ~/.local/bin/clp +</span></span><span class="line"><span class="cl">clp -h +</span></span></code></pre></td></tr></table> +</div> +</div></div> +<br> +<p>و خب می‌تونید برای دیدن مثال ها ریپوی گیتهاب برنامه رو هم ببینید</p> +<p><a class="link" href="https://github.com/shabane/clp" target="_blank" rel="noopener" +>https://github.com/shabane/clp</a></p> +</div>ساخت کوتاه کننده لینک با گیتهاب پیجزhttps://bit-orbit.github.io/p/%D8%B3%D8%A7%D8%AE%D8%AA-%DA%A9%D9%88%D8%AA%D8%A7%D9%87-%DA%A9%D9%86%D9%86%D8%AF%D9%87-%D9%84%DB%8C%D9%86%DA%A9-%D8%A8%D8%A7-%DA%AF%DB%8C%D8%AA%D9%87%D8%A7%D8%A8-%D9%BE%DB%8C%D8%AC%D8%B2/Tue, 22 Mar 2022 22:41:20 +0000https://bit-orbit.github.io/p/%D8%B3%D8%A7%D8%AE%D8%AA-%DA%A9%D9%88%D8%AA%D8%A7%D9%87-%DA%A9%D9%86%D9%86%D8%AF%D9%87-%D9%84%DB%8C%D9%86%DA%A9-%D8%A8%D8%A7-%DA%AF%DB%8C%D8%AA%D9%87%D8%A7%D8%A8-%D9%BE%DB%8C%D8%AC%D8%B2/<img src="https://bit-orbit.github.io/images/post/carbon_r7tm.jpg" alt="Featured image of post ساخت کوتاه کننده لینک با گیتهاب پیجز" /><div dir='rtl' style='font-size: x-large'> +<p>شاید تا به حال از کوتاه کننده های لینک استفاده کرده باشید، +اما ایا سایت <em>کوتاه کننده لینک</em> خودتون رو درست کردین؟</p> +<p>گیتهاب پیجز یک سرور رایگان برای دیپلوی سایت های ایستا است. در واقع شما می‌توانید صفحه های html رو توی ریپو قرار بدین و این سایت اون صفحه ها رو به رایگان -برای شما نمایش می‌دهد.</p> -<p>از همین قابلیت برای ساخت یک +برای شما نمایش می‌دهد.</p> +<p>از همین قابلیت برای ساخت یک url redirector استفاده کردم، و با کمی جاوا اسکریپت یک صفحه درست کردم که وقتی شما با مرورگر اون رو باز می‌کنید، -مرورگر شما به صورت خودکار به یک آدرس متفاوت منتقل خواهد شد.</p> -<p>ولی مشکل اینجاست که شما هر بار باید کلی +مرورگر شما به صورت خودکار به یک آدرس متفاوت منتقل خواهد شد.</p> +<p>ولی مشکل اینجاست که شما هر بار باید کلی html, css -رو خودتان تغییر بدین و بعد قطعه کد جاوا اسکریپت رو اضافه کنید.</p> -<hr> -<div> -<h2> -<img style="width: 5%;" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABmJLR0QA/wD/AP+gvaeTAAAE50lEQVRoge2aW2wUVRiAvzPbC2BSuYTL7laDCYEIgZgCMWpILLuFpMYHNPapRHvZECHWQoQSLmYRAlaMtI032G25v0AiL0ignbUmqBiDxIBoEIw+tLstSMFGge7uzO/D7jZtKWXa7tbS7Pd49sx//m/OzOzM+Q+ksYjXq+H1aqkeRqUy+Ax932INrRYkW6Ay5PacTdVYKRHJDRx0ihnZJYri3mOok6ZNe6stv+TPZI+ZVJHc746NN+90rgeqgAkgdxE+iI+0AdR44A5QrU3I2d3yfNHdZI2dNBFHwP8yQh0wMx6619m/f5akVYm2qdVdehilZLjjD1vEEWjIQ8waYEmsRS503w8iKrfpwKyWZSVXE/3tum+JghpQefGmsyitMugqvTCcPIYs4tQPThGi74KsAWzATYHtoY6cjykqMhyBhjxMsw7FXGzG7GD+qr+6DxZRTr1hpSipBmYAooQj4Qzbhhv5JW0jIjLv2LGsW1M6KxC2AI8DYYS6e5Fx2zsKizun6b7pGaidwBuABgSVyKutBZ7v+8aafOpIzrjMe1tRVABZwN8odky6mVN3uagonDIRh97gBrMWmBtrEd3E9nabu/SXhef3ZgZv21Yr2BYXjID67F44e2tHYXHnQHFzm/2zTIOdwGuxsFxTGptaXeXHkyri1PfNFrSPgJfiTVc0Tda1LPWcAnA2+l2iUQvMSwiKUBEq8PxqNREAZ8C3VIQaUPPj2QU007a2paDk0rBEnjz76aRoV1YVsJbY1N9CUT3pZs6ey0VF4fvOJFxVwtrWgvIvByPQi2Zvht1wliqldiBMBaIK1WCE1Za2wtIbgxPxejXnC08Ui2I3yDTAVMLRqBl5p335m9ennzn0mE3rWo9SVcA44F9EPpwQubvrWmFF15AlehA7idlekNVABtAh8F7I1vIJ+d6oJRGH7rvY7/SKKPtX9cVKeB9wACZwIIpsuu72tCdDoC+5Tfvnm5qxB8EVa5FLQbdngUURvwCIUq+EXGUnAOyN9YuUJnXAc/Fu58RUFaFlZedTIdAXe6B+hRL5AiDoLr8v74yBDk5IOHRfAchp4o9TUWwMLS07kox/ZKuEXGUnHLr/gb9ber22TzS/Bi4C1RFb15yQqzwprxUPw6H7mhy6r8lK3wFnJMGPi1ZFaPYu7u8mSy3KbbWn9Q+eEZcYHCn/chsp0iKjjbTIaCMtMtpIi4w20iKjjbTIaMO6SLPX0iv//4Wl5Bae35sZum37Ad1/JmLr2nEjf80/qU4shuhWe1qakdBt7UVgAVCVaWRfsQf8KxFJaW0FIOj2FATdngIrfQcUsQfqV8QDNompngXOAQ4lHHIE6r+1N9YvGn661kjk8iDGzHJQvzMS/Kb1GSXqdVDXEVymMn5yNvkPTW/8fGrIVX7YMLJmI7INCAOlGajfHU0+76xTddlJEzjtn+zQ62tNZVyIS3QIVAZtrXn99R/wOp/ZvH9i2DA2MgqWTMUW3dyrNDEYkQT9LGL/poR1iYT7W8ROrNIPxiEWR/b0vKyNKJXty8t/ftixQykr1PSXcFLLCnBVKTYnvazQkzFR6OnJIEpvT2Mz5vS6vrtX+7tLb6YSjkaUrB/q0y9dDO1LvDxdCzwVD33SMMyK9uWeP+ARKE/3ZExsGOjJI7+Foy8juakm9YzQNqcxw39CC6i8SsB1XwAAAABJRU5ErkJggg==" alt="carbon carbon-link-shortener arya-shabane shabane mohamad-shabane"> +رو خودتان تغییر بدین و بعد قطعه کد جاوا اسکریپت رو اضافه کنید.</p> +<hr> +<div> +<h2> +<img style="width: 5%;" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABmJLR0QA/wD/AP+gvaeTAAAE50lEQVRoge2aW2wUVRiAvzPbC2BSuYTL7laDCYEIgZgCMWpILLuFpMYHNPapRHvZECHWQoQSLmYRAlaMtI032G25v0AiL0ignbUmqBiDxIBoEIw+tLstSMFGge7uzO/D7jZtKWXa7tbS7Pd49sx//m/OzOzM+Q+ksYjXq+H1aqkeRqUy+Ax932INrRYkW6Ay5PacTdVYKRHJDRx0ihnZJYri3mOok6ZNe6stv+TPZI+ZVJHc746NN+90rgeqgAkgdxE+iI+0AdR44A5QrU3I2d3yfNHdZI2dNBFHwP8yQh0wMx6619m/f5akVYm2qdVdehilZLjjD1vEEWjIQ8waYEmsRS503w8iKrfpwKyWZSVXE/3tum+JghpQefGmsyitMugqvTCcPIYs4tQPThGi74KsAWzATYHtoY6cjykqMhyBhjxMsw7FXGzG7GD+qr+6DxZRTr1hpSipBmYAooQj4Qzbhhv5JW0jIjLv2LGsW1M6KxC2AI8DYYS6e5Fx2zsKizun6b7pGaidwBuABgSVyKutBZ7v+8aafOpIzrjMe1tRVABZwN8odky6mVN3uagonDIRh97gBrMWmBtrEd3E9nabu/SXhef3ZgZv21Yr2BYXjID67F44e2tHYXHnQHFzm/2zTIOdwGuxsFxTGptaXeXHkyri1PfNFrSPgJfiTVc0Tda1LPWcAnA2+l2iUQvMSwiKUBEq8PxqNREAZ8C3VIQaUPPj2QU007a2paDk0rBEnjz76aRoV1YVsJbY1N9CUT3pZs6ey0VF4fvOJFxVwtrWgvIvByPQi2Zvht1wliqldiBMBaIK1WCE1Za2wtIbgxPxejXnC08Ui2I3yDTAVMLRqBl5p335m9ennzn0mE3rWo9SVcA44F9EPpwQubvrWmFF15AlehA7idlekNVABtAh8F7I1vIJ+d6oJRGH7rvY7/SKKPtX9cVKeB9wACZwIIpsuu72tCdDoC+5Tfvnm5qxB8EVa5FLQbdngUURvwCIUq+EXGUnAOyN9YuUJnXAc/Fu58RUFaFlZedTIdAXe6B+hRL5AiDoLr8v74yBDk5IOHRfAchp4o9TUWwMLS07kox/ZKuEXGUnHLr/gb9ber22TzS/Bi4C1RFb15yQqzwprxUPw6H7mhy6r8lK3wFnJMGPi1ZFaPYu7u8mSy3KbbWn9Q+eEZcYHCn/chsp0iKjjbTIaCMtMtpIi4w20iKjjbTIaMO6SLPX0iv//4Wl5Bae35sZum37Ad1/JmLr2nEjf80/qU4shuhWe1qakdBt7UVgAVCVaWRfsQf8KxFJaW0FIOj2FATdngIrfQcUsQfqV8QDNompngXOAQ4lHHIE6r+1N9YvGn661kjk8iDGzHJQvzMS/Kb1GSXqdVDXEVymMn5yNvkPTW/8fGrIVX7YMLJmI7INCAOlGajfHU0+76xTddlJEzjtn+zQ62tNZVyIS3QIVAZtrXn99R/wOp/ZvH9i2DA2MgqWTMUW3dyrNDEYkQT9LGL/poR1iYT7W8ROrNIPxiEWR/b0vKyNKJXty8t/ftixQykr1PSXcFLLCnBVKTYnvazQkzFR6OnJIEpvT2Mz5vS6vrtX+7tLb6YSjkaUrB/q0y9dDO1LvDxdCzwVD33SMMyK9uWeP+ARKE/3ZExsGOjJI7+Foy8juakm9YzQNqcxw39CC6i8SsB1XwAAAABJRU5ErkJggg==" alt="carbon carbon-link-shortener arya-shabane shabane mohamad-shabane"> Carbon -</h2> -</div> -<p><a class="link" href="https://bit-orbit.github.io/images/post/scarbon.jpg" ><img src="https://bit-orbit.github.io/images/post/scarbon.jpg" - - - - loading="lazy" - - alt="carbon-shot" - - -></a></p> -<p>من یک برنامه کوتاه کننده لینک درست کردم که +</h2> +</div> +<p><a class="link" href="https://bit-orbit.github.io/images/post/scarbon.jpg" ><img src="https://bit-orbit.github.io/images/post/scarbon.jpg" +loading="lazy" +alt="carbon-shot" +></a></p> +<p>من یک برنامه کوتاه کننده لینک درست کردم که زمانی که شما برنامه رو اجرا کنید، فایل های مورد نیاز رو برای شما -می‌سازه.</p> -<p>برنامه رو که اجرا کنید یک +می‌سازه.</p> +<p>برنامه رو که اجرا کنید یک CLI -اجرا خواهد شد و از شما چند ورودی را درخواست خواهد کرد.</p> -<p>اولین ورودی لینک طولانی است که -شما نیاز دارید آن را کوتاه کنید.</p> -<p>در قدم دوم، برنامه یک نام که همان لینک کوتاه شده است را از شما خواهد گرفت، +اجرا خواهد شد و از شما چند ورودی را درخواست خواهد کرد.</p> +<p>اولین ورودی لینک طولانی است که +شما نیاز دارید آن را کوتاه کنید.</p> +<p>در قدم دوم، برنامه یک نام که همان لینک کوتاه شده است را از شما خواهد گرفت، این نام را اگر به صورت خالی رها کنید، یک نام تصادفی بر اساس فایل کانفیگ -در نظر گرفته خواهد شد.</p> -<p>شاید سایت هایی را دیده باشید که از کاربر می‌خواند برای بازکردن لینک +در نظر گرفته خواهد شد.</p> +<p>شاید سایت هایی را دیده باشید که از کاربر می‌خواند برای بازکردن لینک روی یک دکمه کلیک کنند، و در این فرصت که کاربر هنوز وارد لیک اصلی نشده است، تبلیغاتی را به آنها نمایش می‌دهند. پس سوال سوم این خواهد بود که آیا کاربر باید برای وارد شدن به لینک اصلی، دکمه‌ای را بزند و یا به صورت -خودکار وارد آن شود؟</p> -<p>سوال سوم از شما یک عنوان می‌خواهد که برای هدر سایت +خودکار وارد آن شود؟</p> +<p>سوال سوم از شما یک عنوان می‌خواهد که برای هدر سایت از آن استفاده کند، البته اگر تم سایت را کاستومایز کنید، این عنوان -در هر جایی ممکن است قرار بگیرد.</p> -<p>و آخرین سوال از شما یک توضیح برای لینک می‌خواهد. ممکن شما +در هر جایی ممکن است قرار بگیرد.</p> +<p>و آخرین سوال از شما یک توضیح برای لینک می‌خواهد. ممکن شما بخواهید قبل از اینکه کاربر وارد لینک اصلی شود یک متنی را بخواند. -این توضیحات به کاربر نمایش داده خواهد شد.</p> -<p>برنامه کربن را منبع باز داخل این -<a class="link" href="https://shabane.github.io/carbon/on_open" target="_blank" rel="noopener" - >آدرس</a> -در گیتهاب قرار دادم، امیدوارم که مفید باشه.</p> -<hr> -<h2 id="deployment">Deployment</h2> -<p>البته همینطور که می‌دانید نیاز نیست حتما از گیتهاب پیجز برای +این توضیحات به کاربر نمایش داده خواهد شد.</p> +<p>برنامه کربن را منبع باز داخل این +<a class="link" href="https://shabane.github.io/carbon/on_open" target="_blank" rel="noopener" +>آدرس</a> +در گیتهاب قرار دادم، امیدوارم که مفید باشه.</p> +<hr> +<h2 id="deployment">Deployment +</h2><p>البته همینطور که می‌دانید نیاز نیست حتما از گیتهاب پیجز برای دیپلوی استفاده کنید. و تنها مشکلی که در این قضیه هست لینک هایی هست که تولید می‌شوند، این لینک ها به ساب دامین اکانت شما متصل می‌شوند، پس حفظ آن ها برای شما ساده است :) -اما نکته اینجاست که کافیست شما یک دامنه ثبت کنید.</p> -<p>راه دوم این است که با یک وب سرور مثل +اما نکته اینجاست که کافیست شما یک دامنه ثبت کنید.</p> +<p>راه دوم این است که با یک وب سرور مثل nginx این سایت را مستقر کنید، و هرگاه نیاز به ساخت لینک کوتاه داشتید، -برنامه رو اجرا کنید.</p> -<hr> -<h2 id="theme">Theme</h2> -<p>من هیچ وقت دیزانر خوبی نبودم و به همین دلیل تم اصلی سایت ساده‌س. +برنامه رو اجرا کنید.</p> +<hr> +<h2 id="theme">Theme +</h2><p>من هیچ وقت دیزانر خوبی نبودم و به همین دلیل تم اصلی سایت ساده‌س. شما می‌توانید به راحتی تم خودتان رو بسازید، کافیه که -<a class="link" href="https://github.com/shabane/carbon/blob/master/documentation/theme.md" target="_blank" rel="noopener" - >داکیومنت ساخت</a> +<a class="link" href="https://github.com/shabane/carbon/blob/master/documentation/theme.md" target="_blank" rel="noopener" +>داکیومنت ساخت</a> تم رو مطالعه کنید. فقط و فقط چند تگ و فایل هست که باید ازش درون تم استفاده کنید، اگر تمی ساختید که -قشنگتر از تم اصلی هست، خوشحال می‌شم به ریپو اصلی پوش کنید.</p> -</div> - - - در لینوکس چیست؟ TTY - https://bit-orbit.github.io/p/%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA-tty/ - Mon, 31 Jan 2022 19:57:05 +0330 - - https://bit-orbit.github.io/p/%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA-tty/ - <img src="https://bit-orbit.github.io/images/post/tty.jpg" alt="Featured image of post در لینوکس چیست؟ TTY " /><div dir='rtl' style='font-size:x-large'> -<p>شما باید درباره اصطلاح +قشنگتر از تم اصلی هست، خوشحال می‌شم به ریپو اصلی پوش کنید.</p> +</div> در لینوکس چیست؟ TTYhttps://bit-orbit.github.io/p/%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA-tty/Mon, 31 Jan 2022 19:57:05 +0330https://bit-orbit.github.io/p/%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA-tty/<img src="https://bit-orbit.github.io/images/post/tty.jpg" alt="Featured image of post در لینوکس چیست؟ TTY " /><div dir='rtl' style='font-size:x-large'> +<p>شما باید درباره اصطلاح tty زمانی که به لینوکس و یونیکس آمد، شنیده باشید. اما tty -چیست؟</p> -<p>آیا برای شما به عنوان یک کاربر دستکتاپ مفید است؟</p> -<p>به آن نیاز دارید؟ می‌توانید با آن چه کار کنید؟</p> -<p>اجازه دهید هر چیز ضروری برای آشنا کردن شما با اصطلاح +چیست؟</p> +<p>آیا برای شما به عنوان یک کاربر دستکتاپ مفید است؟</p> +<p>به آن نیاز دارید؟ می‌توانید با آن چه کار کنید؟</p> +<p>اجازه دهید هر چیز ضروری برای آشنا کردن شما با اصطلاح tty -را در این پست برسی کنیم.</p> -<p>به یاد داشته باشید که پاسخ قطعی برای این سوال وجود ندارد، +را در این پست برسی کنیم.</p> +<p>به یاد داشته باشید که پاسخ قطعی برای این سوال وجود ندارد، اما به نحوه تعامل دستگاه های input/output(ورودی/خروجی) -در گذشته ربط دارد.</p> -<p>برای اینکه تصویری شفاف از آن داشته باشید باید کمی از تاریخ‌ش را بدانید.</p> -<h3 id="تاریخ-پشت-اصطلاح-tty">تاریخ پشت اصطلاح tty</h3> -<p>همه چیز از یک -<em>teleprinter</em> -در سال 1830 شروع شد.</p> -<p>teleprinter +در گذشته ربط دارد.</p> +<p>برای اینکه تصویری شفاف از آن داشته باشید باید کمی از تاریخ‌ش را بدانید.</p> +<h3 id="تاریخ-پشت-اصطلاح-tty">تاریخ پشت اصطلاح tty +</h3><p>همه چیز از یک +<em>teleprinter</em> +در سال 1830 شروع شد.</p> +<p>teleprinter به شما اجازه می‌داد که از طریق سیم پیام ارسال و دریافت کنید. teleprinter جایگزینی برای ارطبات مورس کد بود در آن دو اپراتور برای ارطبات با یکدیگر مود نیاز بود. اما در teleprinter -فقط به یک اپراتور برای ارسال پیام نیاز داشت. درحالی که +فقط به یک اپراتور برای ارسال پیام نیاز داشت. درحالی که teleprinter یک صفحه کلید مدرن نداشت، بعد ها سیستم آن توسط Donald Murray به یک صفحه کلید -<em>teletypewriter</em> -تکامل یافت.</p> -<p>Murray +<em>teletypewriter</em> +تکامل یافت.</p> +<p>Murray زحمت اپراتور ها را برای ارسال و پیام را کاهش داد و این امکان را برای teletypeprinter @@ -3784,16 +3322,11 @@ teletypewriter tty نام کوتاه شده teletypewrite -است.</p> -<p><img src="https://bit-orbit.github.io/images/post/teletypewrite.jpg" - - - - loading="lazy" - - -></p> -<p>تفاوت بین +است.</p> +<p><img src="https://bit-orbit.github.io/images/post/teletypewrite.jpg" +loading="lazy" +></p> +<p>تفاوت بین teletypewrite و typewriter @@ -3804,89 +3337,77 @@ teletypewriter ارطبات سریع تری را تا اکنون برای انسال بدون استفاده از کامپیوتر مقدور کرده است. و اینجا جایی است که tty -بوجود آمد.</p> -<h3 id="مفهوم-مدرن">مفهوم مدرن</h3> -<p>اکنون شما باید متعجب شده باشید که چطور +بوجود آمد.</p> +<h3 id="مفهوم-مدرن">مفهوم مدرن +</h3><p>اکنون شما باید متعجب شده باشید که چطور tty -به لینوکس و کامپیوتر مدرن آمده است.</p> -<p>بسیار خب، برای شروع، زمانی که +به لینوکس و کامپیوتر مدرن آمده است.</p> +<p>بسیار خب، برای شروع، زمانی که teletypewriter به بازار رسید، چند سال بعد ترانزیستور های نیمه هادی(نیمه رسانا) توسعه داده شد که به میکروپروسسور(micro proccessor) -هایی تبدیل شدند که کامپیوتر را ممکن می‌کرند.</p> -<p>کامپیوتر های اولیه مفهومی به اسم صفحه کلید نداشتند. -<a class="link" href="https://en.wikipedia.org/wiki/Punched_card" target="_blank" rel="noopener" - >کارت های پانج</a> -روش ورودی دادن به کامپیوتر ها بود</p> -<p><img src="https://bit-orbit.github.io/images/post/punch-card.jpg" - - - - loading="lazy" - - alt="card-punch" - - -></p> -<p>درحالی که کامپیوتر ها توسعه پیدا می‌کردند، بالاخره کارت های پانچ با +هایی تبدیل شدند که کامپیوتر را ممکن می‌کرند.</p> +<p>کامپیوتر های اولیه مفهومی به اسم صفحه کلید نداشتند. +<a class="link" href="https://en.wikipedia.org/wiki/Punched_card" target="_blank" rel="noopener" +>کارت های پانج</a> +روش ورودی دادن به کامپیوتر ها بود</p> +<p><img src="https://bit-orbit.github.io/images/post/punch-card.jpg" +loading="lazy" +alt="card-punch" +></p> +<p>درحالی که کامپیوتر ها توسعه پیدا می‌کردند، بالاخره کارت های پانچ با teletypewriter -به عنوان دستگاه <em><strong><u>ورودی/خروجی</u></strong></em> مناسب جایگزین شد.    </p> -<p><img src="https://bit-orbit.github.io/images/post/pc-tty.jpg" - - - - loading="lazy" - - alt="LGP-30 computer in 1956 with a TTY attached to it" - - -></p> -<p>با توسعه تکنولوژی +به عنوان دستگاه <em><strong><u>ورودی/خروجی</u></strong></em> مناسب جایگزین شد.    </p> +<p><img src="https://bit-orbit.github.io/images/post/pc-tty.jpg" +loading="lazy" +alt="LGP-30 computer in 1956 with a TTY attached to it" +></p> +<p>با توسعه تکنولوژی teletypewriter ها با استفاده از الکترونیک مجازی شدند. پس شما به یک tty فیزیکی، مکانیکی نیاز پیدا نمی‌کنید، بلکه به یک tty -مجازی، الکترونیکی نیاز دارید.</p> -<p>اوایل کامپیوتر ها صفحه نمایش هم نداشتند. چیز ها بجای نمایش داده شدن بروی صفحه نمایش +مجازی، الکترونیکی نیاز دارید.</p> +<p>اوایل کامپیوتر ها صفحه نمایش هم نداشتند. چیز ها بجای نمایش داده شدن بروی صفحه نمایش (که وجود نداشت) به روی کاغذ چاپ می‌شدند. به همین دلیل شما بجای دیدن اصطلاح -<code>display</code> +<code>display</code> اصطلاح -<code>print</code> +<code>print</code> را می‌بینید. ویدیو ها به عنوان تکنولوژی پیشرفته به ترمینال(پایانه) ها اضافه شد. به عبارت دیگر شما باید درباره ترمینال های ویدیویی شنیده باشید. یا شما می‌توانید -آن ها را ترمینال های فیزیکی بنامید.</p> -<p>سپس اینها به ترمینال های نرم افزاری شبیه سازی شده تکامل پیدا کردند که با قابلیت ها و +آن ها را ترمینال های فیزیکی بنامید.</p> +<p>سپس اینها به ترمینال های نرم افزاری شبیه سازی شده تکامل پیدا کردند که با قابلیت ها و ویژگی های تسوسعه یافته‌ای همرا بود. این چیزی است که شما آن را terminal emulator -می‌نامید.</p> -<p>برای نمونه ترمینال -<a class="link" href="https://en.wikipedia.org/wiki/GNOME_Terminal" target="_blank" rel="noopener" - >گنوم -(Gnome)</a> +می‌نامید.</p> +<p>برای نمونه ترمینال +<a class="link" href="https://en.wikipedia.org/wiki/GNOME_Terminal" target="_blank" rel="noopener" +>گنوم +(Gnome)</a> یا -<a class="link" href="https://konsole.kde.org/" target="_blank" rel="noopener" - >کنسول -(Konsole)</a> -<a class="link" href="https://itsfoss.com/linux-terminal-emulators/" target="_blank" rel="noopener" - >چنتا از بهترین ترمینال هایی هستند که می‌توانید برای لینوکس پیدا کنید.</a></p> -<h3 id="بسیارخب-tty-در-لینوکس-چیست">بسیارخب tty در لینوکس چیست؟</h3> -<p>زمانی که +<a class="link" href="https://konsole.kde.org/" target="_blank" rel="noopener" +>کنسول +(Konsole)</a> +<a class="link" href="https://itsfoss.com/linux-terminal-emulators/" target="_blank" rel="noopener" +>چنتا از بهترین ترمینال هایی هستند که می‌توانید برای لینوکس پیدا کنید.</a></p> +<h3 id="بسیارخب-tty-در-لینوکس-چیست">بسیارخب tty در لینوکس چیست؟ +</h3><p>زمانی که tty به لینوکس و یونیکس آمد، یک دستگاه مستقل در یونیکس و لینوکس بود گاهی tty به یک دستگاه ورودی فیزیکی مانند serial port(درگاه سریال) اشاره می‌کرد، و گاهی به ترمینال های مجازی اشاره می‌کرد که به کاربران اجازه تعامل با -سیستم را می‌داد.</p> -<p>tty +سیستم را می‌داد.</p> +<p>tty یک زیر سیستم در لینوکس و یونیکس است که مدریت فرایند، ویرایش خط و مدیریت نشست ها را در سطح کرنل از طریق درایور های tty -ممکن می‌کند.</p> -<p>از دیدگاه برنامه نویسی شما باید در این موضوع عمیق تر شوید. اما محدوده این +ممکن می‌کند.</p> +<p>از دیدگاه برنامه نویسی شما باید در این موضوع عمیق تر شوید. اما محدوده این پست را در نظر بگیرید، این مقاله باید یک توضیح ساده برای درک بهتر باشد. در حقیقت، هر گاه یک ترمینال را باز می‌کنیم یا هر نوع shell @@ -3895,136 +3416,110 @@ shell با tty مجازی که -<em>PTY</em> +<em>PTY</em> یا -<em>pseudo-tty</em> -هم شناخته می‌شوند، تعامل خواهد داشت.</p> -<p>شما می‌توانید +<em>pseudo-tty</em> +هم شناخته می‌شوند، تعامل خواهد داشت.</p> +<p>شما می‌توانید tty را در ترمینال تایپ کنید و pty -مرتبط را پیدا کنید.</p> -<h3 id="چگونه-به-tty-در-لینوکس-دسترسی-داشته-باشیم">چگونه به tty در لینوکس دسترسی داشته باشیم؟</h3> -<p><img src="https://bit-orbit.github.io/images/post/ubuntu-tty.png" - - - - loading="lazy" - - alt="tty-in-ubuntu" - - -></p> -<p>دسترسی به +مرتبط را پیدا کنید.</p> +<h3 id="چگونه-به-tty-در-لینوکس-دسترسی-داشته-باشیم">چگونه به tty در لینوکس دسترسی داشته باشیم؟ +</h3><p><img src="https://bit-orbit.github.io/images/post/ubuntu-tty.png" +loading="lazy" +alt="tty-in-ubuntu" +></p> +<p>دسترسی به tty در لینوکس ساده است. در حقیت زمانی که هیچ سرنخی از اینکه tty چیست نداشتم، به طور اتفاقی به آن دسترسی پیدا کردم و از اینکه چطوری باید -از آن خارج شوم وحشت زده شدم!</p> -<p>شما می‌توانید با کلید های میانبر زیر در اکثر توزیع های لینوکس به صفحه +از آن خارج شوم وحشت زده شدم!</p> +<p>شما می‌توانید با کلید های میانبر زیر در اکثر توزیع های لینوکس به صفحه tty -دسترسی پیدا کنید.</p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F1</code> – <strong>Lockscreen</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F2</code> – <strong>Desktop Environment</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F3</code> – <strong>TTY3</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F4</code> – <strong>TTY4</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F5</code> – <strong>TT5</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F6</code> – <strong>TTY6</strong></p> -<p>شما می‌توانید حد اکثر به -<u>6</u> +دسترسی پیدا کنید.</p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F1</code> – <strong>Lockscreen</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F2</code> – <strong>Desktop Environment</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F3</code> – <strong>TTY3</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F4</code> – <strong>TTY4</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F5</code> – <strong>TT5</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F6</code> – <strong>TTY6</strong></p> +<p>شما می‌توانید حد اکثر به +<u>6</u> tty دسترسی داشته باشید، با این حال دو تا از اولین کلید های میانبر به صفحه قفل -و محیط دسکتاپ اشاره دارد.</p> -<p><img src="https://bit-orbit.github.io/images/post/ubuntu-tty4.png" - - - - loading="lazy" - - alt="cmd-with-tty" - - -></p> -<p>بنابر این، با باقی کلید های میانبر شما به محیط +و محیط دسکتاپ اشاره دارد.</p> +<p><img src="https://bit-orbit.github.io/images/post/ubuntu-tty4.png" +loading="lazy" +alt="cmd-with-tty" +></p> +<p>بنابر این، با باقی کلید های میانبر شما به محیط command-line -دسترسی می‌گیرید.</p> -<h3 id="چه-زمانی-شما-از-tty-در-لینوکس-استفاده-خواهید-کرد">چه زمانی شما از tty در لینوکس استفاده خواهید کرد؟</h3> -<p>tty -فقط یک گنج تکنیکی نیست. حتی برای کاربرانی مثل من که توسعه دهنده هم نیستند مفید است.</p> -<p>زمانی که محیط گرافیکی فریز می‌شود باید به کار بیاید. در بعضی از مواقع +دسترسی می‌گیرید.</p> +<h3 id="چه-زمانی-شما-از-tty-در-لینوکس-استفاده-خواهید-کرد">چه زمانی شما از tty در لینوکس استفاده خواهید کرد؟ +</h3><p>tty +فقط یک گنج تکنیکی نیست. حتی برای کاربرانی مثل من که توسعه دهنده هم نیستند مفید است.</p> +<p>زمانی که محیط گرافیکی فریز می‌شود باید به کار بیاید. در بعضی از مواقع نصب مجدد محیط گرافیکی با استفاده از tty -می‌تواند مشکل را حل کند.</p> -<p>یا شما می‌توانید +می‌تواند مشکل را حل کند.</p> +<p>یا شما می‌توانید tty را برای انجام کار هایی مثل آپدیت انتخاب کنید جایی که شما نمی‌خواهید مشکلات بصری فرایند -های شما را مختل کند.</p> -<p>بد ترین مورد سناریو، شما می‌تواند زمانی که محیط دستکتاپ جواب نمی‌دهد، برای ریبوت +های شما را مختل کند.</p> +<p>بد ترین مورد سناریو، شما می‌تواند زمانی که محیط دستکتاپ جواب نمی‌دهد، برای ریبوت به tty -مراجعه کنید.</p> -<p>بعضی از کاربران ترجیح می‌دهند که فایل های بزرگ را با +مراجعه کنید.</p> +<p>بعضی از کاربران ترجیح می‌دهند که فایل های بزرگ را با tty -منتقل کنند(من از آنها نیستم)</p> -<h3 id="tty-به-عنوان-یک-دستور-در-لینوکس">tty به عنوان یک دستور در لینوکس</h3> -<p><img src="https://bit-orbit.github.io/images/post/tty-cmd.png" - - - - loading="lazy" - - alt="tty-cmd" - - -></p> -<p>همانطور که در صفحه راهنمای +منتقل کنند(من از آنها نیستم)</p> +<h3 id="tty-به-عنوان-یک-دستور-در-لینوکس">tty به عنوان یک دستور در لینوکس +</h3><p><img src="https://bit-orbit.github.io/images/post/tty-cmd.png" +loading="lazy" +alt="tty-cmd" +></p> +<p>همانطور که در صفحه راهنمای (man page) tty توضیح داده شده است، زمانی که شما tty -را در ترمینال تایپ کنید، نام فایل ترمینال که به وردی استاندارد متصل است را چاپ می‌کند.</p> -<p>به عبارت دیگر برای دانستن عدد +را در ترمینال تایپ کنید، نام فایل ترمینال که به وردی استاندارد متصل است را چاپ می‌کند.</p> +<p>به عبارت دیگر برای دانستن عدد tty که به آن متصل هستید، فقط tty را در ترمینال تایپ کنید. اگر چند کاربر از راه دور به سیستم لینوکس متصل هستند، می‌توانید برای برسی اینکه به چه متصل هستند از کامند -<code>who</code> -استفاده کنید.</p> -<h3 id="خارج-از-ترجمه">خارج از ترجمه</h3> -<p>متن ترجمه شده بود و خب من یک مترجم تخصصی نیستم، من یک برنامه نویسم که بلاگ نویسی +<code>who</code> +استفاده کنید.</p> +<h3 id="خارج-از-ترجمه">خارج از ترجمه +</h3><p>متن ترجمه شده بود و خب من یک مترجم تخصصی نیستم، من یک برنامه نویسم که بلاگ نویسی و ترجمه رو هم دوست دارم، سعی کردم به بهترین نحو متن را ترجمه کنم و در اختیار بقیه بذارم، اگر حس کردین جایی از متن مشکلی داره، خیلی خوشحال می‌شوم -که مشکلم رو بهم بیگید، این کمک بزرگیه.</p> -<p>متن اصلی رو می‌توانید از -<a class="link" href="https://itsfoss.com/what-is-tty-in-linux/" target="_blank" rel="noopener" - >این لینک</a> -بخوانید.</p> -</div> - - - اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش(عکس، استایل، جاوا اسکریپت) - https://bit-orbit.github.io/p/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4%D8%B9%DA%A9%D8%B3-%D8%A7%D8%B3%D8%AA%D8%A7%DB%8C%D9%84-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA/ - Mon, 17 Jan 2022 14:56:14 +0330 - - https://bit-orbit.github.io/p/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4%D8%B9%DA%A9%D8%B3-%D8%A7%D8%B3%D8%AA%D8%A7%DB%8C%D9%84-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA/ - <img src="https://bit-orbit.github.io/images/post/snp.jpg" alt="Featured image of post اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش(عکس، استایل، جاوا اسکریپت)" /><div dir='rtl' style='font-size:23px'> -<p>زمانی که مقاله یا پستی را می‌خوانم، گاهی احساس می‌کنم ممکنه یک مطلب را فراموش کنم. +که مشکلم رو بهم بیگید، این کمک بزرگیه.</p> +<p>متن اصلی رو می‌توانید از +<a class="link" href="https://itsfoss.com/what-is-tty-in-linux/" target="_blank" rel="noopener" +>این لینک</a> +بخوانید.</p> +</div>اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش(عکس، استایل، جاوا اسکریپت)https://bit-orbit.github.io/p/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4%D8%B9%DA%A9%D8%B3-%D8%A7%D8%B3%D8%AA%D8%A7%DB%8C%D9%84-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA/Mon, 17 Jan 2022 14:56:14 +0330https://bit-orbit.github.io/p/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4%D8%B9%DA%A9%D8%B3-%D8%A7%D8%B3%D8%AA%D8%A7%DB%8C%D9%84-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA/<img src="https://bit-orbit.github.io/images/post/snp.jpg" alt="Featured image of post اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش(عکس، استایل، جاوا اسکریپت)" /><div dir='rtl' style='font-size:23px'> +<p>زمانی که مقاله یا پستی را می‌خوانم، گاهی احساس می‌کنم ممکنه یک مطلب را فراموش کنم. مثلا اگه مقاله‌ای از ویرگول درباره یک دستور لینوکس بخوانم، برای اینکه مطلبش را فراموش نکنم باید هرزگاهی به پست سر بزنم و مطالب را مرور کنم. اما فکر کنید مطلب درباره برنامه‌ای باشد که می‌توان با استفاده از آن سانسور را دور زد، -ویرگول احتمالا آن مطلب را حذف می‌کند.</p> -<ul> -<li> -<p>چه راهی برای ذخیره پست پشنهاد می‌کنید که بعدا بتوان آن را بارها مرور کرد؟</p> -</li> -<li> -<p>اگر پست از سایت منبع حذف شود، و یا حتی خود سایت دیگر در دسترس نباشد، -باز هم پستی که ذخیره کرده‌اید در دسترس است؟</p> -</li> -</ul> -<p>در این پست با استفاده از ابزار +ویرگول احتمالا آن مطلب را حذف می‌کند.</p> +<ul> +<li> +<p>چه راهی برای ذخیره پست پشنهاد می‌کنید که بعدا بتوان آن را بارها مرور کرد؟</p> +</li> +<li> +<p>اگر پست از سایت منبع حذف شود، و یا حتی خود سایت دیگر در دسترس نباشد، +باز هم پستی که ذخیره کرده‌اید در دسترس است؟</p> +</li> +</ul> +<p>در این پست با استفاده از ابزار wget یک پست را با تمامی وابستگی هایش مانند عکس ها، فایل های js، @@ -4033,62 +3528,62 @@ css دانلود می‌کنیم و روی سیستم خودمان ذخیره می‌کنیم تا حتی اگر سایت در دسترس نباشد و یا پست -از منبع حذف شد، پست به صورت افلاین در دسترس بماند.</p> -<hr> -<h3 id="wget">wget</h3> -<p>می‌دونید که +از منبع حذف شد، پست به صورت افلاین در دسترس بماند.</p> +<hr> +<h3 id="wget">wget +</h3><p>می‌دونید که wget یک ابزار پیشرفته برای دانلود فایله، قابلیت های زیادی که داره باعث شده بعد از سالها که ابزار های پیشرفته دانلود هم نوشته شدن، همچنان wget استفاده بشه. این برنامه روی اکثر توزیع های لینوکس به صورت دیفالت نصبه پس بیایید بدون تلف کردن وقت -سوییچ های مهم برای میرور کردن یک صفحه سایت رو برسی کنیم.</p> -<p></br></br></p> -<p><strong>Ⅰ.</strong> <code>--adjust-extension</code>, <code>-E</code></p> -<p>شاید شما هم سایتی هایی را دیده باشید که -<em>url</em> +سوییچ های مهم برای میرور کردن یک صفحه سایت رو برسی کنیم.</p> +<p></br></br></p> +<p><strong>Ⅰ.</strong> <code>--adjust-extension</code>, <code>-E</code></p> +<p>شاید شما هم سایتی هایی را دیده باشید که +<em>url</em> صفحه هایشان با پسوند -<code>.asp</code> +<code>.asp</code> به پایان می‌رسند. برای مثال نگاهی به -<a class="link" href="https://www.w3schools.com/python/default.asp" target="_blank" rel="noopener" - >این آدرس</a> +<a class="link" href="https://www.w3schools.com/python/default.asp" target="_blank" rel="noopener" +>این آدرس</a> بیاندازید -<em><a class="link" href="https://www.w3schools.com/python/default.asp" target="_blank" rel="noopener" - >https://www.w3schools.com/python/default.asp</a></em> +<em><a class="link" href="https://www.w3schools.com/python/default.asp" target="_blank" rel="noopener" +>https://www.w3schools.com/python/default.asp</a></em> همانطور که می‌بینید با -<em>asp</em> +<em>asp</em> به پایان می‌رسد. زمانی که شما این صفحه را دانلود کنید، این صفحه بجای پسوند -<em>html.</em> +<em>html.</em> با پسوند -<em>asp.</em> -ذخیره خواهد شد.</p> -<blockquote> -<p>به همین دلیل ما از این سوییچ استفاده می‌کنیم تا صفحه ها را +<em>asp.</em> +ذخیره خواهد شد.</p> +<blockquote> +<p>به همین دلیل ما از این سوییچ استفاده می‌کنیم تا صفحه ها را با پسوند -<em>html.</em> -ذخیره کنیم.</p> -</blockquote> -<div dir='ltr'> -</br> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span><span class="lnt">3 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ https://example.com/some/where -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl"><span class="c1"># where.html</span> -</span></span></code></pre></td></tr></table> -</div> -</div></div> -<p></br></br></p> -<p><strong>Ⅱ.</strong> <code>--span-hosts</code>, <code>-H</code></p> -<p>اگر حتی فقط یک صفحه را میرور می‌کنیم، آن صفحه ممکن است به فایل های خارج از سایت +<em>html.</em> +ذخیره کنیم.</p> +</blockquote> +<div dir='ltr'> +</br> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ https://example.com/some/where +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="c1"># where.html</span> +</span></span></code></pre></td></tr></table> +</div> +</div></div> +<p></br></br></p> +<p><strong>Ⅱ.</strong> <code>--span-hosts</code>, <code>-H</code></p> +<p>اگر حتی فقط یک صفحه را میرور می‌کنیم، آن صفحه ممکن است به فایل های خارج از سایت که به روی یک CDN قرار گرفته اند @@ -4096,1320 +3591,1300 @@ CDN style sheet ها. از اینرو وقتی شما یک صفحه را میرور می‌کنید wget -فایل های خارج از سایت را دانلود نخواهد کرد.</p> -<blockquote> -<p>پوشش دادن فایل های خارج از سایت با استفاده از این سوییچ انجام داده می‌شود. +فایل های خارج از سایت را دانلود نخواهد کرد.</p> +<blockquote> +<p>پوشش دادن فایل های خارج از سایت با استفاده از این سوییچ انجام داده می‌شود. وقتی این سوییچ را روشن کنید wget همه لینک ها از جمله لینک هایی زیر دامنه را هم دانلود خواهد کرد، مگر اینکه عمق -پوشش دادن را محدود کنید.</p> -</blockquote> -<p></br></br></p> -<p><strong>Ⅲ.</strong> <code>--convert-links</code>, <code>-k</code></p> -<p>یک صفحه را که میرور کردیم با توجه به اینکه فایل های پیشیاز مثل عکس و استایل ها را +پوشش دادن را محدود کنید.</p> +</blockquote> +<p></br></br></p> +<p><strong>Ⅲ.</strong> <code>--convert-links</code>, <code>-k</code></p> +<p>یک صفحه را که میرور کردیم با توجه به اینکه فایل های پیشیاز مثل عکس و استایل ها را هم دانلود کردیم، وقتی فایل را با مرورگر باز کنیم همچنان صفحه html ما به فایل های داخل سایت منبع لینک شده است و فایل های پیشنازش را حتی با اینکه -روی سیستم داریم، باز هم از آدرس خارجی دریافت می‌کند و نمایش می‌دهد.</p> -<blockquote> -<p>برای اینکه یک صفحه فایل های پیشنیازش را از فایل هایی که در کنار صفحه اصلی دانلود +روی سیستم داریم، باز هم از آدرس خارجی دریافت می‌کند و نمایش می‌دهد.</p> +<blockquote> +<p>برای اینکه یک صفحه فایل های پیشنیازش را از فایل هایی که در کنار صفحه اصلی دانلود کرده است بگیرد، از این سوییچ استفاده می‌کنیم. این سوییچ تمامی لینک ها را به -لینک های داخلی تبدیل می‌کند و صفحه موقع لود شدن از فایل های داخلی استفاده می‌کند.</p> -</blockquote> -<p></br></br></p> -<p><strong>Ⅳ.</strong> <code>--page-requisites</code>, <code>-p</code></p> -<blockquote> -<p>این سوییچ باعث می‌شود که +لینک های داخلی تبدیل می‌کند و صفحه موقع لود شدن از فایل های داخلی استفاده می‌کند.</p> +</blockquote> +<p></br></br></p> +<p><strong>Ⅳ.</strong> <code>--page-requisites</code>, <code>-p</code></p> +<blockquote> +<p>این سوییچ باعث می‌شود که wget تمامی فایل های ضروری برای درست نمایش داده شدن html -را دانلود کند. این فایل ها شامل عکس ها، استایل ها و یا صدا ها می‌شود.</p> -</blockquote> -<p></br></br></p> -<p><strong>Ⅴ.</strong> <code>--no-directories</code>, <code>-nd</code></p> -<p>به صورت پیشفرض زمانی که صفحه‌ای با این ادرس را دانلود کنیم</p> -<p><code>https://example.com/some/where/page.html</code></p> -<p>برنامه +را دانلود کند. این فایل ها شامل عکس ها، استایل ها و یا صدا ها می‌شود.</p> +</blockquote> +<p></br></br></p> +<p><strong>Ⅴ.</strong> <code>--no-directories</code>, <code>-nd</code></p> +<p>به صورت پیشفرض زمانی که صفحه‌ای با این ادرس را دانلود کنیم</p> +<p><code>https://example.com/some/where/page.html</code></p> +<p>برنامه wget -این صفحه و فایل های مورد نیازش را به این صورت ذخیره خواهد کرد</p> -<p><code>some/where/page.html/.</code></p> -<p>اما با استفاده از سوییچ -<code>nd-</code> -آن صفحه و فایل های مورد نیازش فقط داخل یک دایرکتوری ذخیره خواهد شد. به این صورت</p> -<p><code>page.html/.</code></p> -<blockquote> -<p>با فعال کردن این سوییچ +این صفحه و فایل های مورد نیازش را به این صورت ذخیره خواهد کرد</p> +<p><code>some/where/page.html/.</code></p> +<p>اما با استفاده از سوییچ +<code>nd-</code> +آن صفحه و فایل های مورد نیازش فقط داخل یک دایرکتوری ذخیره خواهد شد. به این صورت</p> +<p><code>page.html/.</code></p> +<blockquote> +<p>با فعال کردن این سوییچ wget صفحه و فایل های پیشنیاز را داخل دایرکتوری فعلی ذخیره خواهد کرد. و اگر -نام یک فایل بیش از یکبار تکرار شود، به نام فایل پسوند اضافه خواهد شد.</p> -</blockquote> -<p></br></br></p> -<h3 id="مثال-کاربردی-و-خروجی">مثال کاربردی و خروجی</h3> -<ul> -<li>برای مثال من یک -<a class="link" href="https://vrgl.ir/c3fVa" target="_blank" rel="noopener" - >پست توی ویرگول</a> +نام یک فایل بیش از یکبار تکرار شود، به نام فایل پسوند اضافه خواهد شد.</p> +</blockquote> +<p></br></br></p> +<h3 id="مثال-کاربردی-و-خروجی">مثال کاربردی و خروجی +</h3><ul> +<li>برای مثال من یک +<a class="link" href="https://vrgl.ir/c3fVa" target="_blank" rel="noopener" +>پست توی ویرگول</a> که آموزش الگوریتم RSA -هست رو دانلود می‌کنم.</li> -</ul> -</br> -</div> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt"> 10 -</span><span class="lnt"> 11 -</span><span class="lnt"> 12 -</span><span class="lnt"> 13 -</span><span class="lnt"> 14 -</span><span class="lnt"> 15 -</span><span class="lnt"> 16 -</span><span class="lnt"> 17 -</span><span class="lnt"> 18 -</span><span class="lnt"> 19 -</span><span class="lnt"> 20 -</span><span class="lnt"> 21 -</span><span class="lnt"> 22 -</span><span class="lnt"> 23 -</span><span class="lnt"> 24 -</span><span class="lnt"> 25 -</span><span class="lnt"> 26 -</span><span class="lnt"> 27 -</span><span class="lnt"> 28 -</span><span class="lnt"> 29 -</span><span class="lnt"> 30 -</span><span class="lnt"> 31 -</span><span class="lnt"> 32 -</span><span class="lnt"> 33 -</span><span class="lnt"> 34 -</span><span class="lnt"> 35 -</span><span class="lnt"> 36 -</span><span class="lnt"> 37 -</span><span class="lnt"> 38 -</span><span class="lnt"> 39 -</span><span class="lnt"> 40 -</span><span class="lnt"> 41 -</span><span class="lnt"> 42 -</span><span class="lnt"> 43 -</span><span class="lnt"> 44 -</span><span class="lnt"> 45 -</span><span class="lnt"> 46 -</span><span class="lnt"> 47 -</span><span class="lnt"> 48 -</span><span class="lnt"> 49 -</span><span class="lnt"> 50 -</span><span class="lnt"> 51 -</span><span class="lnt"> 52 -</span><span class="lnt"> 53 -</span><span class="lnt"> 54 -</span><span class="lnt"> 55 -</span><span class="lnt"> 56 -</span><span class="lnt"> 57 -</span><span class="lnt"> 58 -</span><span class="lnt"> 59 -</span><span class="lnt"> 60 -</span><span class="lnt"> 61 -</span><span class="lnt"> 62 -</span><span class="lnt"> 63 -</span><span class="lnt"> 64 -</span><span class="lnt"> 65 -</span><span class="lnt"> 66 -</span><span class="lnt"> 67 -</span><span class="lnt"> 68 -</span><span class="lnt"> 69 -</span><span class="lnt"> 70 -</span><span class="lnt"> 71 -</span><span class="lnt"> 72 -</span><span class="lnt"> 73 -</span><span class="lnt"> 74 -</span><span class="lnt"> 75 -</span><span class="lnt"> 76 -</span><span class="lnt"> 77 -</span><span class="lnt"> 78 -</span><span class="lnt"> 79 -</span><span class="lnt"> 80 -</span><span class="lnt"> 81 -</span><span class="lnt"> 82 -</span><span class="lnt"> 83 -</span><span class="lnt"> 84 -</span><span class="lnt"> 85 -</span><span class="lnt"> 86 -</span><span class="lnt"> 87 -</span><span class="lnt"> 88 -</span><span class="lnt"> 89 -</span><span class="lnt"> 90 -</span><span class="lnt"> 91 -</span><span class="lnt"> 92 -</span><span class="lnt"> 93 -</span><span class="lnt"> 94 -</span><span class="lnt"> 95 -</span><span class="lnt"> 96 -</span><span class="lnt"> 97 -</span><span class="lnt"> 98 -</span><span class="lnt"> 99 -</span><span class="lnt">100 -</span><span class="lnt">101 -</span><span class="lnt">102 -</span><span class="lnt">103 -</span><span class="lnt">104 -</span><span class="lnt">105 -</span><span class="lnt">106 -</span><span class="lnt">107 -</span><span class="lnt">108 -</span><span class="lnt">109 -</span><span class="lnt">110 -</span><span class="lnt">111 -</span><span class="lnt">112 -</span><span class="lnt">113 -</span><span class="lnt">114 -</span><span class="lnt">115 -</span><span class="lnt">116 -</span><span class="lnt">117 -</span><span class="lnt">118 -</span><span class="lnt">119 -</span><span class="lnt">120 -</span><span class="lnt">121 -</span><span class="lnt">122 -</span><span class="lnt">123 -</span><span class="lnt">124 -</span><span class="lnt">125 -</span><span class="lnt">126 -</span><span class="lnt">127 -</span><span class="lnt">128 -</span><span class="lnt">129 -</span><span class="lnt">130 -</span><span class="lnt">131 -</span><span class="lnt">132 -</span><span class="lnt">133 -</span><span class="lnt">134 -</span><span class="lnt">135 -</span><span class="lnt">136 -</span><span class="lnt">137 -</span><span class="lnt">138 -</span><span class="lnt">139 -</span><span class="lnt">140 -</span><span class="lnt">141 -</span><span class="lnt">142 -</span><span class="lnt">143 -</span><span class="lnt">144 -</span><span class="lnt">145 -</span><span class="lnt">146 -</span><span class="lnt">147 -</span><span class="lnt">148 -</span><span class="lnt">149 -</span><span class="lnt">150 -</span><span class="lnt">151 -</span><span class="lnt">152 -</span><span class="lnt">153 -</span><span class="lnt">154 -</span><span class="lnt">155 -</span><span class="lnt">156 -</span><span class="lnt">157 -</span><span class="lnt">158 -</span><span class="lnt">159 -</span><span class="lnt">160 -</span><span class="lnt">161 -</span><span class="lnt">162 -</span><span class="lnt">163 -</span><span class="lnt">164 -</span><span class="lnt">165 -</span><span class="lnt">166 -</span><span class="lnt">167 -</span><span class="lnt">168 -</span><span class="lnt">169 -</span><span class="lnt">170 -</span><span class="lnt">171 -</span><span class="lnt">172 -</span><span class="lnt">173 -</span><span class="lnt">174 -</span><span class="lnt">175 -</span><span class="lnt">176 -</span><span class="lnt">177 -</span><span class="lnt">178 -</span><span class="lnt">179 -</span><span class="lnt">180 -</span><span class="lnt">181 -</span><span class="lnt">182 -</span><span class="lnt">183 -</span><span class="lnt">184 -</span><span class="lnt">185 -</span><span class="lnt">186 -</span><span class="lnt">187 -</span><span class="lnt">188 -</span><span class="lnt">189 -</span><span class="lnt">190 -</span><span class="lnt">191 -</span><span class="lnt">192 -</span><span class="lnt">193 -</span><span class="lnt">194 -</span><span class="lnt">195 -</span><span class="lnt">196 -</span><span class="lnt">197 -</span><span class="lnt">198 -</span><span class="lnt">199 -</span><span class="lnt">200 -</span><span class="lnt">201 -</span><span class="lnt">202 -</span><span class="lnt">203 -</span><span class="lnt">204 -</span><span class="lnt">205 -</span><span class="lnt">206 -</span><span class="lnt">207 -</span><span class="lnt">208 -</span><span class="lnt">209 -</span><span class="lnt">210 -</span><span class="lnt">211 -</span><span class="lnt">212 -</span><span class="lnt">213 -</span><span class="lnt">214 -</span><span class="lnt">215 -</span><span class="lnt">216 -</span><span class="lnt">217 -</span><span class="lnt">218 -</span><span class="lnt">219 -</span><span class="lnt">220 -</span><span class="lnt">221 -</span><span class="lnt">222 -</span><span class="lnt">223 -</span><span class="lnt">224 -</span><span class="lnt">225 -</span><span class="lnt">226 -</span><span class="lnt">227 -</span><span class="lnt">228 -</span><span class="lnt">229 -</span><span class="lnt">230 -</span><span class="lnt">231 -</span><span class="lnt">232 -</span><span class="lnt">233 -</span><span class="lnt">234 -</span><span class="lnt">235 -</span><span class="lnt">236 -</span><span class="lnt">237 -</span><span class="lnt">238 -</span><span class="lnt">239 -</span><span class="lnt">240 -</span><span class="lnt">241 -</span><span class="lnt">242 -</span><span class="lnt">243 -</span><span class="lnt">244 -</span><span class="lnt">245 -</span><span class="lnt">246 -</span><span class="lnt">247 -</span><span class="lnt">248 -</span><span class="lnt">249 -</span><span class="lnt">250 -</span><span class="lnt">251 -</span><span class="lnt">252 -</span><span class="lnt">253 -</span><span class="lnt">254 -</span><span class="lnt">255 -</span><span class="lnt">256 -</span><span class="lnt">257 -</span><span class="lnt">258 -</span><span class="lnt">259 -</span><span class="lnt">260 -</span><span class="lnt">261 -</span><span class="lnt">262 -</span><span class="lnt">263 -</span><span class="lnt">264 -</span><span class="lnt">265 -</span><span class="lnt">266 -</span><span class="lnt">267 -</span><span class="lnt">268 -</span><span class="lnt">269 -</span><span class="lnt">270 -</span><span class="lnt">271 -</span><span class="lnt">272 -</span><span class="lnt">273 -</span><span class="lnt">274 -</span><span class="lnt">275 -</span><span class="lnt">276 -</span><span class="lnt">277 -</span><span class="lnt">278 -</span><span class="lnt">279 -</span><span class="lnt">280 -</span><span class="lnt">281 -</span><span class="lnt">282 -</span><span class="lnt">283 -</span><span class="lnt">284 -</span><span class="lnt">285 -</span><span class="lnt">286 -</span><span class="lnt">287 -</span><span class="lnt">288 -</span><span class="lnt">289 -</span><span class="lnt">290 -</span><span class="lnt">291 -</span><span class="lnt">292 -</span><span class="lnt">293 -</span><span class="lnt">294 -</span><span class="lnt">295 -</span><span class="lnt">296 -</span><span class="lnt">297 -</span><span class="lnt">298 -</span><span class="lnt">299 -</span><span class="lnt">300 -</span><span class="lnt">301 -</span><span class="lnt">302 -</span><span class="lnt">303 -</span><span class="lnt">304 -</span><span class="lnt">305 -</span><span class="lnt">306 -</span><span class="lnt">307 -</span><span class="lnt">308 -</span><span class="lnt">309 -</span><span class="lnt">310 -</span><span class="lnt">311 -</span><span class="lnt">312 -</span><span class="lnt">313 -</span><span class="lnt">314 -</span><span class="lnt">315 -</span><span class="lnt">316 -</span><span class="lnt">317 -</span><span class="lnt">318 -</span><span class="lnt">319 -</span><span class="lnt">320 -</span><span class="lnt">321 -</span><span class="lnt">322 -</span><span class="lnt">323 -</span><span class="lnt">324 -</span><span class="lnt">325 -</span><span class="lnt">326 -</span><span class="lnt">327 -</span><span class="lnt">328 -</span><span class="lnt">329 -</span><span class="lnt">330 -</span><span class="lnt">331 -</span><span class="lnt">332 -</span><span class="lnt">333 -</span><span class="lnt">334 -</span><span class="lnt">335 -</span><span class="lnt">336 -</span><span class="lnt">337 -</span><span class="lnt">338 -</span><span class="lnt">339 -</span><span class="lnt">340 -</span><span class="lnt">341 -</span><span class="lnt">342 -</span><span class="lnt">343 -</span><span class="lnt">344 -</span><span class="lnt">345 -</span><span class="lnt">346 -</span><span class="lnt">347 -</span><span class="lnt">348 -</span><span class="lnt">349 -</span><span class="lnt">350 -</span><span class="lnt">351 -</span><span class="lnt">352 -</span><span class="lnt">353 -</span><span class="lnt">354 -</span><span class="lnt">355 -</span><span class="lnt">356 -</span><span class="lnt">357 -</span><span class="lnt">358 -</span><span class="lnt">359 -</span><span class="lnt">360 -</span><span class="lnt">361 -</span><span class="lnt">362 -</span><span class="lnt">363 -</span><span class="lnt">364 -</span><span class="lnt">365 -</span><span class="lnt">366 -</span><span class="lnt">367 -</span><span class="lnt">368 -</span><span class="lnt">369 -</span><span class="lnt">370 -</span><span class="lnt">371 -</span><span class="lnt">372 -</span><span class="lnt">373 -</span><span class="lnt">374 -</span><span class="lnt">375 -</span><span class="lnt">376 -</span><span class="lnt">377 -</span><span class="lnt">378 -</span><span class="lnt">379 -</span><span class="lnt">380 -</span><span class="lnt">381 -</span><span class="lnt">382 -</span><span class="lnt">383 -</span><span class="lnt">384 -</span><span class="lnt">385 -</span><span class="lnt">386 -</span><span class="lnt">387 -</span><span class="lnt">388 -</span><span class="lnt">389 -</span><span class="lnt">390 -</span><span class="lnt">391 -</span><span class="lnt">392 -</span><span class="lnt">393 -</span><span class="lnt">394 -</span><span class="lnt">395 -</span><span class="lnt">396 -</span><span class="lnt">397 -</span><span class="lnt">398 -</span><span class="lnt">399 -</span><span class="lnt">400 -</span><span class="lnt">401 -</span><span class="lnt">402 -</span><span class="lnt">403 -</span><span class="lnt">404 -</span><span class="lnt">405 -</span><span class="lnt">406 -</span><span class="lnt">407 -</span><span class="lnt">408 -</span><span class="lnt">409 -</span><span class="lnt">410 -</span><span class="lnt">411 -</span><span class="lnt">412 -</span><span class="lnt">413 -</span><span class="lnt">414 -</span><span class="lnt">415 -</span><span class="lnt">416 -</span><span class="lnt">417 -</span><span class="lnt">418 -</span><span class="lnt">419 -</span><span class="lnt">420 -</span><span class="lnt">421 -</span><span class="lnt">422 -</span><span class="lnt">423 -</span><span class="lnt">424 -</span><span class="lnt">425 -</span><span class="lnt">426 -</span><span class="lnt">427 -</span><span class="lnt">428 -</span><span class="lnt">429 -</span><span class="lnt">430 -</span><span class="lnt">431 -</span><span class="lnt">432 -</span><span class="lnt">433 -</span><span class="lnt">434 -</span><span class="lnt">435 -</span><span class="lnt">436 -</span><span class="lnt">437 -</span><span class="lnt">438 -</span><span class="lnt">439 -</span><span class="lnt">440 -</span><span class="lnt">441 -</span><span class="lnt">442 -</span><span class="lnt">443 -</span><span class="lnt">444 -</span><span class="lnt">445 -</span><span class="lnt">446 -</span><span class="lnt">447 -</span><span class="lnt">448 -</span><span class="lnt">449 -</span><span class="lnt">450 -</span><span class="lnt">451 -</span><span class="lnt">452 -</span><span class="lnt">453 -</span><span class="lnt">454 -</span><span class="lnt">455 -</span><span class="lnt">456 -</span><span class="lnt">457 -</span><span class="lnt">458 -</span><span class="lnt">459 -</span><span class="lnt">460 -</span><span class="lnt">461 -</span><span class="lnt">462 -</span><span class="lnt">463 -</span><span class="lnt">464 -</span><span class="lnt">465 -</span><span class="lnt">466 -</span><span class="lnt">467 -</span><span class="lnt">468 -</span><span class="lnt">469 -</span><span class="lnt">470 -</span><span class="lnt">471 -</span><span class="lnt">472 -</span><span class="lnt">473 -</span><span class="lnt">474 -</span><span class="lnt">475 -</span><span class="lnt">476 -</span><span class="lnt">477 -</span><span class="lnt">478 -</span><span class="lnt">479 -</span><span class="lnt">480 -</span><span class="lnt">481 -</span><span class="lnt">482 -</span><span class="lnt">483 -</span><span class="lnt">484 -</span><span class="lnt">485 -</span><span class="lnt">486 -</span><span class="lnt">487 -</span><span class="lnt">488 -</span><span class="lnt">489 -</span><span class="lnt">490 -</span><span class="lnt">491 -</span><span class="lnt">492 -</span><span class="lnt">493 -</span><span class="lnt">494 -</span><span class="lnt">495 -</span><span class="lnt">496 -</span><span class="lnt">497 -</span><span class="lnt">498 -</span><span class="lnt">499 -</span><span class="lnt">500 -</span><span class="lnt">501 -</span><span class="lnt">502 -</span><span class="lnt">503 -</span><span class="lnt">504 -</span><span class="lnt">505 -</span><span class="lnt">506 -</span><span class="lnt">507 -</span><span class="lnt">508 -</span><span class="lnt">509 -</span><span class="lnt">510 -</span><span class="lnt">511 -</span><span class="lnt">512 -</span><span class="lnt">513 -</span><span class="lnt">514 -</span><span class="lnt">515 -</span><span class="lnt">516 -</span><span class="lnt">517 -</span><span class="lnt">518 -</span><span class="lnt">519 -</span><span class="lnt">520 -</span><span class="lnt">521 -</span><span class="lnt">522 -</span><span class="lnt">523 -</span><span class="lnt">524 -</span><span class="lnt">525 -</span><span class="lnt">526 -</span><span class="lnt">527 -</span><span class="lnt">528 -</span><span class="lnt">529 -</span><span class="lnt">530 -</span><span class="lnt">531 -</span><span class="lnt">532 -</span><span class="lnt">533 -</span><span class="lnt">534 -</span><span class="lnt">535 -</span><span class="lnt">536 -</span><span class="lnt">537 -</span><span class="lnt">538 -</span><span class="lnt">539 -</span><span class="lnt">540 -</span><span class="lnt">541 -</span><span class="lnt">542 -</span><span class="lnt">543 -</span><span class="lnt">544 -</span><span class="lnt">545 -</span><span class="lnt">546 -</span><span class="lnt">547 -</span><span class="lnt">548 -</span><span class="lnt">549 -</span><span class="lnt">550 -</span><span class="lnt">551 -</span><span class="lnt">552 -</span><span class="lnt">553 -</span><span class="lnt">554 -</span><span class="lnt">555 -</span><span class="lnt">556 -</span><span class="lnt">557 -</span><span class="lnt">558 -</span><span class="lnt">559 -</span><span class="lnt">560 -</span><span class="lnt">561 -</span><span class="lnt">562 -</span><span class="lnt">563 -</span><span class="lnt">564 -</span><span class="lnt">565 -</span><span class="lnt">566 -</span><span class="lnt">567 -</span><span class="lnt">568 -</span><span class="lnt">569 -</span><span class="lnt">570 -</span><span class="lnt">571 -</span><span class="lnt">572 -</span><span class="lnt">573 -</span><span class="lnt">574 -</span><span class="lnt">575 -</span><span class="lnt">576 -</span><span class="lnt">577 -</span><span class="lnt">578 -</span><span class="lnt">579 -</span><span class="lnt">580 -</span><span class="lnt">581 -</span><span class="lnt">582 -</span><span class="lnt">583 -</span><span class="lnt">584 -</span><span class="lnt">585 -</span><span class="lnt">586 -</span><span class="lnt">587 -</span><span class="lnt">588 -</span><span class="lnt">589 -</span><span class="lnt">590 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">┌─<span class="o">[</span>loading<span class="o">]</span> <span class="o">[</span>/tmp/virgool<span class="o">]</span> <span class="o">[</span>0<span class="o">]</span> -</span></span><span class="line"><span class="cl">│ -</span></span><span class="line"><span class="cl">└──〉wget -nd -E -p -k -H https://vrgl.ir/c3fVa -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:03-- https://vrgl.ir/c3fVa -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">302</span> Found -</span></span><span class="line"><span class="cl">Location: https://virgool.io/@Novo/rsa-encryption-ao1poasym4cf <span class="o">[</span>following<span class="o">]</span> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:04-- https://virgool.io/@Novo/rsa-encryption-ao1poasym4cf -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/html<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘c3fVa.html’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">c3fVa.html <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 61.30K 200KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:06 <span class="o">(</span><span class="m">200</span> KB/s<span class="o">)</span> - ‘c3fVa.html’ saved <span class="o">[</span>62773<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:06-- https://virgool.io/robots.txt -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>document<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘robots.txt’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">robots.txt <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">484</span> --.-KB/s in 0s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:07 <span class="o">(</span>85.7 MB/s<span class="o">)</span> - ‘robots.txt’ saved <span class="o">[</span>484<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:07-- https://www.googletagmanager.com/robots.txt -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">404</span> Not Found -</span></span><span class="line"><span class="cl">2022-01-18 06:41:08 ERROR 404: Not Found. -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:08-- https://files.virgool.io/robots.txt -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">403</span> Forbidden -</span></span><span class="line"><span class="cl">2022-01-18 06:41:09 ERROR 403: Forbidden. -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:09-- https://static.cloudflareinsights.com/robots.txt -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">522</span> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:26 ERROR 522: <span class="o">(</span>no description<span class="o">)</span>. -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:26-- https://virgool.io/images/favicon.png?v<span class="o">=</span>v2.6.15 -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">9855</span> <span class="o">(</span>9.6K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘favicon.png?v<span class="o">=</span>v2.6.15’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">favicon.png?v<span class="o">=</span>v2.6.15 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 9.62K --.-KB/s in 0.07s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:27 <span class="o">(</span><span class="m">130</span> KB/s<span class="o">)</span> - ‘favicon.png?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>9855/9855<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:27-- https://virgool.io/css/styles.css?v<span class="o">=</span>v2.6.15 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/css<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘styles.css?v<span class="o">=</span>v2.6.15.css’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">styles.css?v<span class="o">=</span>v2.6.15.css <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 903.60K 592KB/s in 1.5s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:28 <span class="o">(</span><span class="m">592</span> KB/s<span class="o">)</span> - ‘styles.css?v<span class="o">=</span>v2.6.15.css’ saved <span class="o">[</span>925284<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:28-- https://virgool.test/robots.txt -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:28-- https://www.googletagmanager.com/ns.html?id<span class="o">=</span>GTM-5GS688K -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/html<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘ns.html?id<span class="o">=</span>GTM-5GS688K.html’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">ns.html?id<span class="o">=</span>GTM-5GS688K.html <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">266</span> --.-KB/s in 0s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:29 <span class="o">(</span>29.4 MB/s<span class="o">)</span> - ‘ns.html?id<span class="o">=</span>GTM-5GS688K.html’ saved <span class="o">[</span>266<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:29-- https://files.virgool.io/upload/users/31434/avatar/1C4LLE.png?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">39194</span> <span class="o">(</span>38K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_ 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 38.28K 173KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:30 <span class="o">(</span><span class="m">173</span> KB/s<span class="o">)</span> - ‘1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>39194/39194<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:30-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/qhokakomwyb5.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">179870</span> <span class="o">(</span>176K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘qhokakomwyb5.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">qhokakomwyb5.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 175.65K 567KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">567</span> KB/s<span class="o">)</span> - ‘qhokakomwyb5.png’ saved <span class="o">[</span>179870/179870<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/v1xnwpnewfys.webp -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">12770</span> <span class="o">(</span>12K<span class="o">)</span> <span class="o">[</span>image/webp<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘v1xnwpnewfys.webp’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">v1xnwpnewfys.webp 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 12.47K --.-KB/s in 0.07s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">180</span> KB/s<span class="o">)</span> - ‘v1xnwpnewfys.webp’ saved <span class="o">[</span>12770/12770<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/d28hpu2detkl.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">92847</span> <span class="o">(</span>91K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘d28hpu2detkl.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">d28hpu2detkl.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 90.67K --.-KB/s in 0.09s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">969</span> KB/s<span class="o">)</span> - ‘d28hpu2detkl.png’ saved <span class="o">[</span>92847/92847<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/rhyykrc8azq0.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">17539</span> <span class="o">(</span>17K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘rhyykrc8azq0.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">rhyykrc8azq0.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 17.13K --.-KB/s in 0.007s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>2.47 MB/s<span class="o">)</span> - ‘rhyykrc8azq0.png’ saved <span class="o">[</span>17539/17539<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/fjtc1ydzkuse.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">108524</span> <span class="o">(</span>106K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘fjtc1ydzkuse.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">fjtc1ydzkuse.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 105.98K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>1.06 MB/s<span class="o">)</span> - ‘fjtc1ydzkuse.png’ saved <span class="o">[</span>108524/108524<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/gfqhgyp18oic.jpeg -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">132085</span> <span class="o">(</span>129K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘gfqhgyp18oic.jpeg’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">gfqhgyp18oic.jpeg 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 128.99K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>1.28 MB/s<span class="o">)</span> - ‘gfqhgyp18oic.jpeg’ saved <span class="o">[</span>132085/132085<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/me0mpjtdmyom.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">113489</span> <span class="o">(</span>111K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘me0mpjtdmyom.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">me0mpjtdmyom.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 110.83K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span><span class="m">814</span> KB/s<span class="o">)</span> - ‘me0mpjtdmyom.png’ saved <span class="o">[</span>113489/113489<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/of7krju6oqzk.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">105746</span> <span class="o">(</span>103K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘of7krju6oqzk.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">of7krju6oqzk.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 103.27K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span>1.25 MB/s<span class="o">)</span> - ‘of7krju6oqzk.png’ saved <span class="o">[</span>105746/105746<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/oqwhflg4gbnq.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">120994</span> <span class="o">(</span>118K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘oqwhflg4gbnq.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">oqwhflg4gbnq.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 118.16K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span>1.14 MB/s<span class="o">)</span> - ‘oqwhflg4gbnq.png’ saved <span class="o">[</span>120994/120994<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/taqjnfnuzxcx.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">122678</span> <span class="o">(</span>120K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘taqjnfnuzxcx.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">taqjnfnuzxcx.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 119.80K --.-KB/s in 0.06s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span>2.00 MB/s<span class="o">)</span> - ‘taqjnfnuzxcx.png’ saved <span class="o">[</span>122678/122678<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/63/posts/qwqrubplfaau/g8vai2incgna.jpeg?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">88292</span> <span class="o">(</span>86K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fre 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 86.22K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span><span class="m">824</span> KB/s<span class="o">)</span> - ‘g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>88292/88292<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/63/avatar/o8jiNe.png?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">32037</span> <span class="o">(</span>31K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_ 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 31.29K --.-KB/s in 0.06s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span><span class="m">558</span> KB/s<span class="o">)</span> - ‘o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>32037/32037<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/31434/posts/e3oydlcfkr5e/figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">30356</span> <span class="o">(</span>30K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fre 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 29.64K --.-KB/s in 0.07s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span><span class="m">401</span> KB/s<span class="o">)</span> - ‘figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>30356/30356<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://files.virgool.io/upload/users/316150/posts/r8rhw88uh1xh/cs1ugyelv3zw.png?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">34459</span> <span class="o">(</span>34K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fres 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 33.65K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span><span class="m">399</span> KB/s<span class="o">)</span> - ‘cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>34459/34459<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://files.virgool.io/upload/users/316150/avatar/8sz7Rs.jpeg?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">14764</span> <span class="o">(</span>14K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 14.42K --.-KB/s in 0.007s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span>2.11 MB/s<span class="o">)</span> - ‘8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>14764/14764<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://virgool.io/js/commons.js?v<span class="o">=</span>v2.6.15 -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/javascript<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘commons.js?v<span class="o">=</span>v2.6.15’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">commons.js?v<span class="o">=</span>v2.6.15 <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 997.55K 337KB/s in 3.0s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:39 <span class="o">(</span><span class="m">337</span> KB/s<span class="o">)</span> - ‘commons.js?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>1021492<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:39-- https://virgool.io/js/main.js?v<span class="o">=</span>v2.6.15 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/javascript<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘main.js?v<span class="o">=</span>v2.6.15’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">main.js?v<span class="o">=</span>v2.6.15 <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 1.21M 580KB/s in 2.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:41 <span class="o">(</span><span class="m">580</span> KB/s<span class="o">)</span> - ‘main.js?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>1267632<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:41-- https://static.cloudflareinsights.com/beacon.min.js/v652eace1692a40cfa3763df669d7439c1639079717194 -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">13970</span> <span class="o">(</span>14K<span class="o">)</span> <span class="o">[</span>text/javascript<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘v652eace1692a40cfa3763df669d7439c1639079717194’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">v652eace1692a40cfa3763df669d743 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 13.64K --.-KB/s in 0.02s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:42 <span class="o">(</span><span class="m">600</span> KB/s<span class="o">)</span> - ‘v652eace1692a40cfa3763df669d7439c1639079717194’ saved <span class="o">[</span>13970/13970<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:42-- https://virgool.io/fonts/vazir/Vazir-Thin.ttf -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">98924</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Thin.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.61K 140KB/s in 0.7s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:43 <span class="o">(</span><span class="m">140</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.ttf’ saved <span class="o">[</span>98924/98924<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:43-- https://virgool.io/fonts/vazir/Vazir-Thin.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Thin.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.80K 276KB/s in 0.4s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:44 <span class="o">(</span><span class="m">276</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.eot?’ saved <span class="o">[</span>99120<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:44-- https://virgool.io/fonts/vazir/Vazir-Thin.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">54068</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Thin.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.80K --.-KB/s in 0.07s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:45 <span class="o">(</span><span class="m">770</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.woff’ saved <span class="o">[</span>54068/54068<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:45-- https://virgool.io/fonts/vazir/Vazir-Thin.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">43000</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Thin.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 41.99K --.-KB/s in 0.006s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:46 <span class="o">(</span>6.59 MB/s<span class="o">)</span> - ‘Vazir-Thin.woff2’ saved <span class="o">[</span>43000/43000<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:46-- https://virgool.io/fonts/vazir/Vazir-Light.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">105360</span> <span class="o">(</span>103K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Light.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 102.89K 478KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:46 <span class="o">(</span><span class="m">478</span> KB/s<span class="o">)</span> - ‘Vazir-Light.ttf’ saved <span class="o">[</span>105360/105360<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:46-- https://virgool.io/fonts/vazir/Vazir-Light.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Light.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 103.09K 470KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:47 <span class="o">(</span><span class="m">470</span> KB/s<span class="o">)</span> - ‘Vazir-Light.eot?’ saved <span class="o">[</span>105562<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:47-- https://virgool.io/fonts/vazir/Vazir-Light.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">59688</span> <span class="o">(</span>58K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Light.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 58.29K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:48 <span class="o">(</span><span class="m">758</span> KB/s<span class="o">)</span> - ‘Vazir-Light.woff’ saved <span class="o">[</span>59688/59688<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:48-- https://virgool.io/fonts/vazir/Vazir-Light.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">48168</span> <span class="o">(</span>47K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Light.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 47.04K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:48 <span class="o">(</span><span class="m">570</span> KB/s<span class="o">)</span> - ‘Vazir-Light.woff2’ saved <span class="o">[</span>48168/48168<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:48-- https://virgool.io/fonts/vazir/Vazir-Regular.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">98376</span> <span class="o">(</span>96K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Regular.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.07K 435KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:49 <span class="o">(</span><span class="m">435</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.ttf’ saved <span class="o">[</span>98376/98376<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:49-- https://virgool.io/fonts/vazir/Vazir-Regular.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Regular.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.26K 285KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:50 <span class="o">(</span><span class="m">285</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.eot?’ saved <span class="o">[</span>98574<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:50-- https://virgool.io/fonts/vazir/Vazir-Regular.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">53744</span> <span class="o">(</span>52K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Regular.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.48K --.-KB/s in 0.05s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:51 <span class="o">(</span>1.10 MB/s<span class="o">)</span> - ‘Vazir-Regular.woff’ saved <span class="o">[</span>53744/53744<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:51-- https://virgool.io/fonts/vazir/Vazir-Regular.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">42744</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Regular.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 41.74K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:51 <span class="o">(</span><span class="m">412</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.woff2’ saved <span class="o">[</span>42744/42744<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:51-- https://virgool.io/fonts/vazir/Vazir-Medium.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">98892</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Medium.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.57K 606KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:52 <span class="o">(</span><span class="m">606</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.ttf’ saved <span class="o">[</span>98892/98892<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:52-- https://virgool.io/fonts/vazir/Vazir-Medium.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Medium.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.78K 347KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:53 <span class="o">(</span><span class="m">347</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.eot?’ saved <span class="o">[</span>99100<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:53-- https://virgool.io/fonts/vazir/Vazir-Medium.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">54120</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Medium.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.85K 125KB/s in 0.4s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:54 <span class="o">(</span><span class="m">125</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.woff’ saved <span class="o">[</span>54120/54120<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:54-- https://virgool.io/fonts/vazir/Vazir-Medium.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">43152</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Medium.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.14K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:54 <span class="o">(</span><span class="m">541</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.woff2’ saved <span class="o">[</span>43152/43152<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:54-- https://virgool.io/fonts/vazir/Vazir-Bold.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">99840</span> <span class="o">(</span>98K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Bold.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 97.50K --.-KB/s in 0.04s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:55 <span class="o">(</span>2.61 MB/s<span class="o">)</span> - ‘Vazir-Bold.ttf’ saved <span class="o">[</span>99840/99840<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:55-- https://virgool.io/fonts/vazir/Vazir-Bold.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Bold.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 97.68K 560KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:56 <span class="o">(</span><span class="m">560</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.eot?’ saved <span class="o">[</span>100026<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:56-- https://virgool.io/fonts/vazir/Vazir-Bold.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">54560</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Bold.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 53.28K --.-KB/s in 0.06s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:56 <span class="o">(</span><span class="m">917</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.woff’ saved <span class="o">[</span>54560/54560<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:56-- https://virgool.io/fonts/vazir/Vazir-Bold.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">43604</span> <span class="o">(</span>43K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Bold.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.58K --.-KB/s in 0.06s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:57 <span class="o">(</span><span class="m">657</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.woff2’ saved <span class="o">[</span>43604/43604<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:57-- https://virgool.io/fonts/vazir/Vazir-Black.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">99772</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Black.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 97.43K --.-KB/s in 0.04s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:57 <span class="o">(</span>2.18 MB/s<span class="o">)</span> - ‘Vazir-Black.ttf’ saved <span class="o">[</span>99772/99772<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:57-- https://virgool.io/fonts/vazir/Vazir-Black.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Black.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 97.63K 478KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:58 <span class="o">(</span><span class="m">478</span> KB/s<span class="o">)</span> - ‘Vazir-Black.eot?’ saved <span class="o">[</span>99974<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:58-- https://virgool.io/fonts/vazir/Vazir-Black.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">54652</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Black.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 53.37K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:59 <span class="o">(</span><span class="m">691</span> KB/s<span class="o">)</span> - ‘Vazir-Black.woff’ saved <span class="o">[</span>54652/54652<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:59-- https://virgool.io/fonts/vazir/Vazir-Black.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">43332</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Black.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.32K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:00 <span class="o">(</span><span class="m">510</span> KB/s<span class="o">)</span> - ‘Vazir-Black.woff2’ saved <span class="o">[</span>43332/43332<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:00-- https://virgool.io/fonts/fontawesome/fa-solid-900.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">202616</span> <span class="o">(</span>198K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">fa-solid-900.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 197.87K 501KB/s in 0.4s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:01 <span class="o">(</span><span class="m">501</span> KB/s<span class="o">)</span> - ‘fa-solid-900.ttf’ saved <span class="o">[</span>202616/202616<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:01-- https://virgool.io/fonts/fontawesome/fa-solid-900.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">404</span> Not Found -</span></span><span class="line"><span class="cl">2022-01-18 06:42:01 ERROR 404: Not Found. -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:01-- https://virgool.io/fonts/fontawesome/fa-solid-900.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">103300</span> <span class="o">(</span>101K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">fa-solid-900.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 100.88K 358KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:02 <span class="o">(</span><span class="m">358</span> KB/s<span class="o">)</span> - ‘fa-solid-900.woff’ saved <span class="o">[</span>103300/103300<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:02-- https://virgool.io/fonts/fontawesome/fa-solid-900.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">79444</span> <span class="o">(</span>78K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">fa-solid-900.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 77.58K 394KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:03 <span class="o">(</span><span class="m">394</span> KB/s<span class="o">)</span> - ‘fa-solid-900.woff2’ saved <span class="o">[</span>79444/79444<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:03-- https://virgool.io/images/icons/plus.svg -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>image/svg+xml<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘plus.svg’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">plus.svg <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">942</span> --.-KB/s in 0.002s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:03 <span class="o">(</span><span class="m">383</span> KB/s<span class="o">)</span> - ‘plus.svg’ saved <span class="o">[</span>942<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:03-- https://virgool.io/images/icons/tick.svg -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>image/svg+xml<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘tick.svg’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">tick.svg <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">942</span> --.-KB/s in 0s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:04 <span class="o">(</span>89.8 MB/s<span class="o">)</span> - ‘tick.svg’ saved <span class="o">[</span>942<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:04-- https://virgool.io/images/typewriter.png -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">172558</span> <span class="o">(</span>169K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘typewriter.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">typewriter.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 168.51K 349KB/s in 0.5s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:05 <span class="o">(</span><span class="m">349</span> KB/s<span class="o">)</span> - ‘typewriter.png’ saved <span class="o">[</span>172558/172558<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:05-- https://virgool.test/images/download-audio.png -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:05-- https://virgool.test/images/download-ebook.png -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. -</span></span><span class="line"><span class="cl">FINISHED --2022-01-18 06:42:05-- -</span></span><span class="line"><span class="cl">Total wall clock time: 1m 2s -</span></span><span class="line"><span class="cl">Downloaded: <span class="m">54</span> files, 6.6M in 14s <span class="o">(</span><span class="m">479</span> KB/s<span class="o">)</span> -</span></span><span class="line"><span class="cl">Converting links in ns.html?id<span class="o">=</span>GTM-5GS688K.html... nothing to <span class="k">do</span>. -</span></span><span class="line"><span class="cl">Converting links in c3fVa.html... 38. -</span></span><span class="line"><span class="cl">31-7 -</span></span><span class="line"><span class="cl">Converting links in styles.css?v<span class="o">=</span>v2.6.15.css... 35. -</span></span><span class="line"><span class="cl">34-1 -</span></span><span class="line"><span class="cl">Converted links in <span class="m">3</span> files in 0.06 seconds. -</span></span></code></pre></td></tr></table> -</div> -</div> - - - پلاگین های کاربردی گنوم - https://bit-orbit.github.io/p/%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C-%DA%AF%D9%86%D9%88%D9%85/ - Fri, 14 Jan 2022 18:18:28 +0330 - - https://bit-orbit.github.io/p/%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C-%DA%AF%D9%86%D9%88%D9%85/ - <img src="https://bit-orbit.github.io/images/post/gp.jpg" alt="Featured image of post پلاگین های کاربردی گنوم " /><div dir='rtl' style="font-size:x-large;"> -<p>اگر مثل من از +هست رو دانلود می‌کنم.</li> +</ul> +</br> +</div> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt"> 10 +</span><span class="lnt"> 11 +</span><span class="lnt"> 12 +</span><span class="lnt"> 13 +</span><span class="lnt"> 14 +</span><span class="lnt"> 15 +</span><span class="lnt"> 16 +</span><span class="lnt"> 17 +</span><span class="lnt"> 18 +</span><span class="lnt"> 19 +</span><span class="lnt"> 20 +</span><span class="lnt"> 21 +</span><span class="lnt"> 22 +</span><span class="lnt"> 23 +</span><span class="lnt"> 24 +</span><span class="lnt"> 25 +</span><span class="lnt"> 26 +</span><span class="lnt"> 27 +</span><span class="lnt"> 28 +</span><span class="lnt"> 29 +</span><span class="lnt"> 30 +</span><span class="lnt"> 31 +</span><span class="lnt"> 32 +</span><span class="lnt"> 33 +</span><span class="lnt"> 34 +</span><span class="lnt"> 35 +</span><span class="lnt"> 36 +</span><span class="lnt"> 37 +</span><span class="lnt"> 38 +</span><span class="lnt"> 39 +</span><span class="lnt"> 40 +</span><span class="lnt"> 41 +</span><span class="lnt"> 42 +</span><span class="lnt"> 43 +</span><span class="lnt"> 44 +</span><span class="lnt"> 45 +</span><span class="lnt"> 46 +</span><span class="lnt"> 47 +</span><span class="lnt"> 48 +</span><span class="lnt"> 49 +</span><span class="lnt"> 50 +</span><span class="lnt"> 51 +</span><span class="lnt"> 52 +</span><span class="lnt"> 53 +</span><span class="lnt"> 54 +</span><span class="lnt"> 55 +</span><span class="lnt"> 56 +</span><span class="lnt"> 57 +</span><span class="lnt"> 58 +</span><span class="lnt"> 59 +</span><span class="lnt"> 60 +</span><span class="lnt"> 61 +</span><span class="lnt"> 62 +</span><span class="lnt"> 63 +</span><span class="lnt"> 64 +</span><span class="lnt"> 65 +</span><span class="lnt"> 66 +</span><span class="lnt"> 67 +</span><span class="lnt"> 68 +</span><span class="lnt"> 69 +</span><span class="lnt"> 70 +</span><span class="lnt"> 71 +</span><span class="lnt"> 72 +</span><span class="lnt"> 73 +</span><span class="lnt"> 74 +</span><span class="lnt"> 75 +</span><span class="lnt"> 76 +</span><span class="lnt"> 77 +</span><span class="lnt"> 78 +</span><span class="lnt"> 79 +</span><span class="lnt"> 80 +</span><span class="lnt"> 81 +</span><span class="lnt"> 82 +</span><span class="lnt"> 83 +</span><span class="lnt"> 84 +</span><span class="lnt"> 85 +</span><span class="lnt"> 86 +</span><span class="lnt"> 87 +</span><span class="lnt"> 88 +</span><span class="lnt"> 89 +</span><span class="lnt"> 90 +</span><span class="lnt"> 91 +</span><span class="lnt"> 92 +</span><span class="lnt"> 93 +</span><span class="lnt"> 94 +</span><span class="lnt"> 95 +</span><span class="lnt"> 96 +</span><span class="lnt"> 97 +</span><span class="lnt"> 98 +</span><span class="lnt"> 99 +</span><span class="lnt">100 +</span><span class="lnt">101 +</span><span class="lnt">102 +</span><span class="lnt">103 +</span><span class="lnt">104 +</span><span class="lnt">105 +</span><span class="lnt">106 +</span><span class="lnt">107 +</span><span class="lnt">108 +</span><span class="lnt">109 +</span><span class="lnt">110 +</span><span class="lnt">111 +</span><span class="lnt">112 +</span><span class="lnt">113 +</span><span class="lnt">114 +</span><span class="lnt">115 +</span><span class="lnt">116 +</span><span class="lnt">117 +</span><span class="lnt">118 +</span><span class="lnt">119 +</span><span class="lnt">120 +</span><span class="lnt">121 +</span><span class="lnt">122 +</span><span class="lnt">123 +</span><span class="lnt">124 +</span><span class="lnt">125 +</span><span class="lnt">126 +</span><span class="lnt">127 +</span><span class="lnt">128 +</span><span class="lnt">129 +</span><span class="lnt">130 +</span><span class="lnt">131 +</span><span class="lnt">132 +</span><span class="lnt">133 +</span><span class="lnt">134 +</span><span class="lnt">135 +</span><span class="lnt">136 +</span><span class="lnt">137 +</span><span class="lnt">138 +</span><span class="lnt">139 +</span><span class="lnt">140 +</span><span class="lnt">141 +</span><span class="lnt">142 +</span><span class="lnt">143 +</span><span class="lnt">144 +</span><span class="lnt">145 +</span><span class="lnt">146 +</span><span class="lnt">147 +</span><span class="lnt">148 +</span><span class="lnt">149 +</span><span class="lnt">150 +</span><span class="lnt">151 +</span><span class="lnt">152 +</span><span class="lnt">153 +</span><span class="lnt">154 +</span><span class="lnt">155 +</span><span class="lnt">156 +</span><span class="lnt">157 +</span><span class="lnt">158 +</span><span class="lnt">159 +</span><span class="lnt">160 +</span><span class="lnt">161 +</span><span class="lnt">162 +</span><span class="lnt">163 +</span><span class="lnt">164 +</span><span class="lnt">165 +</span><span class="lnt">166 +</span><span class="lnt">167 +</span><span class="lnt">168 +</span><span class="lnt">169 +</span><span class="lnt">170 +</span><span class="lnt">171 +</span><span class="lnt">172 +</span><span class="lnt">173 +</span><span class="lnt">174 +</span><span class="lnt">175 +</span><span class="lnt">176 +</span><span class="lnt">177 +</span><span class="lnt">178 +</span><span class="lnt">179 +</span><span class="lnt">180 +</span><span class="lnt">181 +</span><span class="lnt">182 +</span><span class="lnt">183 +</span><span class="lnt">184 +</span><span class="lnt">185 +</span><span class="lnt">186 +</span><span class="lnt">187 +</span><span class="lnt">188 +</span><span class="lnt">189 +</span><span class="lnt">190 +</span><span class="lnt">191 +</span><span class="lnt">192 +</span><span class="lnt">193 +</span><span class="lnt">194 +</span><span class="lnt">195 +</span><span class="lnt">196 +</span><span class="lnt">197 +</span><span class="lnt">198 +</span><span class="lnt">199 +</span><span class="lnt">200 +</span><span class="lnt">201 +</span><span class="lnt">202 +</span><span class="lnt">203 +</span><span class="lnt">204 +</span><span class="lnt">205 +</span><span class="lnt">206 +</span><span class="lnt">207 +</span><span class="lnt">208 +</span><span class="lnt">209 +</span><span class="lnt">210 +</span><span class="lnt">211 +</span><span class="lnt">212 +</span><span class="lnt">213 +</span><span class="lnt">214 +</span><span class="lnt">215 +</span><span class="lnt">216 +</span><span class="lnt">217 +</span><span class="lnt">218 +</span><span class="lnt">219 +</span><span class="lnt">220 +</span><span class="lnt">221 +</span><span class="lnt">222 +</span><span class="lnt">223 +</span><span class="lnt">224 +</span><span class="lnt">225 +</span><span class="lnt">226 +</span><span class="lnt">227 +</span><span class="lnt">228 +</span><span class="lnt">229 +</span><span class="lnt">230 +</span><span class="lnt">231 +</span><span class="lnt">232 +</span><span class="lnt">233 +</span><span class="lnt">234 +</span><span class="lnt">235 +</span><span class="lnt">236 +</span><span class="lnt">237 +</span><span class="lnt">238 +</span><span class="lnt">239 +</span><span class="lnt">240 +</span><span class="lnt">241 +</span><span class="lnt">242 +</span><span class="lnt">243 +</span><span class="lnt">244 +</span><span class="lnt">245 +</span><span class="lnt">246 +</span><span class="lnt">247 +</span><span class="lnt">248 +</span><span class="lnt">249 +</span><span class="lnt">250 +</span><span class="lnt">251 +</span><span class="lnt">252 +</span><span class="lnt">253 +</span><span class="lnt">254 +</span><span class="lnt">255 +</span><span class="lnt">256 +</span><span class="lnt">257 +</span><span class="lnt">258 +</span><span class="lnt">259 +</span><span class="lnt">260 +</span><span class="lnt">261 +</span><span class="lnt">262 +</span><span class="lnt">263 +</span><span class="lnt">264 +</span><span class="lnt">265 +</span><span class="lnt">266 +</span><span class="lnt">267 +</span><span class="lnt">268 +</span><span class="lnt">269 +</span><span class="lnt">270 +</span><span class="lnt">271 +</span><span class="lnt">272 +</span><span class="lnt">273 +</span><span class="lnt">274 +</span><span class="lnt">275 +</span><span class="lnt">276 +</span><span class="lnt">277 +</span><span class="lnt">278 +</span><span class="lnt">279 +</span><span class="lnt">280 +</span><span class="lnt">281 +</span><span class="lnt">282 +</span><span class="lnt">283 +</span><span class="lnt">284 +</span><span class="lnt">285 +</span><span class="lnt">286 +</span><span class="lnt">287 +</span><span class="lnt">288 +</span><span class="lnt">289 +</span><span class="lnt">290 +</span><span class="lnt">291 +</span><span class="lnt">292 +</span><span class="lnt">293 +</span><span class="lnt">294 +</span><span class="lnt">295 +</span><span class="lnt">296 +</span><span class="lnt">297 +</span><span class="lnt">298 +</span><span class="lnt">299 +</span><span class="lnt">300 +</span><span class="lnt">301 +</span><span class="lnt">302 +</span><span class="lnt">303 +</span><span class="lnt">304 +</span><span class="lnt">305 +</span><span class="lnt">306 +</span><span class="lnt">307 +</span><span class="lnt">308 +</span><span class="lnt">309 +</span><span class="lnt">310 +</span><span class="lnt">311 +</span><span class="lnt">312 +</span><span class="lnt">313 +</span><span class="lnt">314 +</span><span class="lnt">315 +</span><span class="lnt">316 +</span><span class="lnt">317 +</span><span class="lnt">318 +</span><span class="lnt">319 +</span><span class="lnt">320 +</span><span class="lnt">321 +</span><span class="lnt">322 +</span><span class="lnt">323 +</span><span class="lnt">324 +</span><span class="lnt">325 +</span><span class="lnt">326 +</span><span class="lnt">327 +</span><span class="lnt">328 +</span><span class="lnt">329 +</span><span class="lnt">330 +</span><span class="lnt">331 +</span><span class="lnt">332 +</span><span class="lnt">333 +</span><span class="lnt">334 +</span><span class="lnt">335 +</span><span class="lnt">336 +</span><span class="lnt">337 +</span><span class="lnt">338 +</span><span class="lnt">339 +</span><span class="lnt">340 +</span><span class="lnt">341 +</span><span class="lnt">342 +</span><span class="lnt">343 +</span><span class="lnt">344 +</span><span class="lnt">345 +</span><span class="lnt">346 +</span><span class="lnt">347 +</span><span class="lnt">348 +</span><span class="lnt">349 +</span><span class="lnt">350 +</span><span class="lnt">351 +</span><span class="lnt">352 +</span><span class="lnt">353 +</span><span class="lnt">354 +</span><span class="lnt">355 +</span><span class="lnt">356 +</span><span class="lnt">357 +</span><span class="lnt">358 +</span><span class="lnt">359 +</span><span class="lnt">360 +</span><span class="lnt">361 +</span><span class="lnt">362 +</span><span class="lnt">363 +</span><span class="lnt">364 +</span><span class="lnt">365 +</span><span class="lnt">366 +</span><span class="lnt">367 +</span><span class="lnt">368 +</span><span class="lnt">369 +</span><span class="lnt">370 +</span><span class="lnt">371 +</span><span class="lnt">372 +</span><span class="lnt">373 +</span><span class="lnt">374 +</span><span class="lnt">375 +</span><span class="lnt">376 +</span><span class="lnt">377 +</span><span class="lnt">378 +</span><span class="lnt">379 +</span><span class="lnt">380 +</span><span class="lnt">381 +</span><span class="lnt">382 +</span><span class="lnt">383 +</span><span class="lnt">384 +</span><span class="lnt">385 +</span><span class="lnt">386 +</span><span class="lnt">387 +</span><span class="lnt">388 +</span><span class="lnt">389 +</span><span class="lnt">390 +</span><span class="lnt">391 +</span><span class="lnt">392 +</span><span class="lnt">393 +</span><span class="lnt">394 +</span><span class="lnt">395 +</span><span class="lnt">396 +</span><span class="lnt">397 +</span><span class="lnt">398 +</span><span class="lnt">399 +</span><span class="lnt">400 +</span><span class="lnt">401 +</span><span class="lnt">402 +</span><span class="lnt">403 +</span><span class="lnt">404 +</span><span class="lnt">405 +</span><span class="lnt">406 +</span><span class="lnt">407 +</span><span class="lnt">408 +</span><span class="lnt">409 +</span><span class="lnt">410 +</span><span class="lnt">411 +</span><span class="lnt">412 +</span><span class="lnt">413 +</span><span class="lnt">414 +</span><span class="lnt">415 +</span><span class="lnt">416 +</span><span class="lnt">417 +</span><span class="lnt">418 +</span><span class="lnt">419 +</span><span class="lnt">420 +</span><span class="lnt">421 +</span><span class="lnt">422 +</span><span class="lnt">423 +</span><span class="lnt">424 +</span><span class="lnt">425 +</span><span class="lnt">426 +</span><span class="lnt">427 +</span><span class="lnt">428 +</span><span class="lnt">429 +</span><span class="lnt">430 +</span><span class="lnt">431 +</span><span class="lnt">432 +</span><span class="lnt">433 +</span><span class="lnt">434 +</span><span class="lnt">435 +</span><span class="lnt">436 +</span><span class="lnt">437 +</span><span class="lnt">438 +</span><span class="lnt">439 +</span><span class="lnt">440 +</span><span class="lnt">441 +</span><span class="lnt">442 +</span><span class="lnt">443 +</span><span class="lnt">444 +</span><span class="lnt">445 +</span><span class="lnt">446 +</span><span class="lnt">447 +</span><span class="lnt">448 +</span><span class="lnt">449 +</span><span class="lnt">450 +</span><span class="lnt">451 +</span><span class="lnt">452 +</span><span class="lnt">453 +</span><span class="lnt">454 +</span><span class="lnt">455 +</span><span class="lnt">456 +</span><span class="lnt">457 +</span><span class="lnt">458 +</span><span class="lnt">459 +</span><span class="lnt">460 +</span><span class="lnt">461 +</span><span class="lnt">462 +</span><span class="lnt">463 +</span><span class="lnt">464 +</span><span class="lnt">465 +</span><span class="lnt">466 +</span><span class="lnt">467 +</span><span class="lnt">468 +</span><span class="lnt">469 +</span><span class="lnt">470 +</span><span class="lnt">471 +</span><span class="lnt">472 +</span><span class="lnt">473 +</span><span class="lnt">474 +</span><span class="lnt">475 +</span><span class="lnt">476 +</span><span class="lnt">477 +</span><span class="lnt">478 +</span><span class="lnt">479 +</span><span class="lnt">480 +</span><span class="lnt">481 +</span><span class="lnt">482 +</span><span class="lnt">483 +</span><span class="lnt">484 +</span><span class="lnt">485 +</span><span class="lnt">486 +</span><span class="lnt">487 +</span><span class="lnt">488 +</span><span class="lnt">489 +</span><span class="lnt">490 +</span><span class="lnt">491 +</span><span class="lnt">492 +</span><span class="lnt">493 +</span><span class="lnt">494 +</span><span class="lnt">495 +</span><span class="lnt">496 +</span><span class="lnt">497 +</span><span class="lnt">498 +</span><span class="lnt">499 +</span><span class="lnt">500 +</span><span class="lnt">501 +</span><span class="lnt">502 +</span><span class="lnt">503 +</span><span class="lnt">504 +</span><span class="lnt">505 +</span><span class="lnt">506 +</span><span class="lnt">507 +</span><span class="lnt">508 +</span><span class="lnt">509 +</span><span class="lnt">510 +</span><span class="lnt">511 +</span><span class="lnt">512 +</span><span class="lnt">513 +</span><span class="lnt">514 +</span><span class="lnt">515 +</span><span class="lnt">516 +</span><span class="lnt">517 +</span><span class="lnt">518 +</span><span class="lnt">519 +</span><span class="lnt">520 +</span><span class="lnt">521 +</span><span class="lnt">522 +</span><span class="lnt">523 +</span><span class="lnt">524 +</span><span class="lnt">525 +</span><span class="lnt">526 +</span><span class="lnt">527 +</span><span class="lnt">528 +</span><span class="lnt">529 +</span><span class="lnt">530 +</span><span class="lnt">531 +</span><span class="lnt">532 +</span><span class="lnt">533 +</span><span class="lnt">534 +</span><span class="lnt">535 +</span><span class="lnt">536 +</span><span class="lnt">537 +</span><span class="lnt">538 +</span><span class="lnt">539 +</span><span class="lnt">540 +</span><span class="lnt">541 +</span><span class="lnt">542 +</span><span class="lnt">543 +</span><span class="lnt">544 +</span><span class="lnt">545 +</span><span class="lnt">546 +</span><span class="lnt">547 +</span><span class="lnt">548 +</span><span class="lnt">549 +</span><span class="lnt">550 +</span><span class="lnt">551 +</span><span class="lnt">552 +</span><span class="lnt">553 +</span><span class="lnt">554 +</span><span class="lnt">555 +</span><span class="lnt">556 +</span><span class="lnt">557 +</span><span class="lnt">558 +</span><span class="lnt">559 +</span><span class="lnt">560 +</span><span class="lnt">561 +</span><span class="lnt">562 +</span><span class="lnt">563 +</span><span class="lnt">564 +</span><span class="lnt">565 +</span><span class="lnt">566 +</span><span class="lnt">567 +</span><span class="lnt">568 +</span><span class="lnt">569 +</span><span class="lnt">570 +</span><span class="lnt">571 +</span><span class="lnt">572 +</span><span class="lnt">573 +</span><span class="lnt">574 +</span><span class="lnt">575 +</span><span class="lnt">576 +</span><span class="lnt">577 +</span><span class="lnt">578 +</span><span class="lnt">579 +</span><span class="lnt">580 +</span><span class="lnt">581 +</span><span class="lnt">582 +</span><span class="lnt">583 +</span><span class="lnt">584 +</span><span class="lnt">585 +</span><span class="lnt">586 +</span><span class="lnt">587 +</span><span class="lnt">588 +</span><span class="lnt">589 +</span><span class="lnt">590 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">┌─<span class="o">[</span>loading<span class="o">]</span> <span class="o">[</span>/tmp/virgool<span class="o">]</span> <span class="o">[</span>0<span class="o">]</span> +</span></span><span class="line"><span class="cl">│ +</span></span><span class="line"><span class="cl">└──〉wget -nd -E -p -k -H https://vrgl.ir/c3fVa +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:03-- https://vrgl.ir/c3fVa +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">302</span> Found +</span></span><span class="line"><span class="cl">Location: https://virgool.io/@Novo/rsa-encryption-ao1poasym4cf <span class="o">[</span>following<span class="o">]</span> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:04-- https://virgool.io/@Novo/rsa-encryption-ao1poasym4cf +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/html<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘c3fVa.html’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">c3fVa.html <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 61.30K 200KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:06 <span class="o">(</span><span class="m">200</span> KB/s<span class="o">)</span> - ‘c3fVa.html’ saved <span class="o">[</span>62773<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:06-- https://virgool.io/robots.txt +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>document<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘robots.txt’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">robots.txt <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">484</span> --.-KB/s in 0s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:07 <span class="o">(</span>85.7 MB/s<span class="o">)</span> - ‘robots.txt’ saved <span class="o">[</span>484<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:07-- https://www.googletagmanager.com/robots.txt +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">404</span> Not Found +</span></span><span class="line"><span class="cl">2022-01-18 06:41:08 ERROR 404: Not Found. +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:08-- https://files.virgool.io/robots.txt +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">403</span> Forbidden +</span></span><span class="line"><span class="cl">2022-01-18 06:41:09 ERROR 403: Forbidden. +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:09-- https://static.cloudflareinsights.com/robots.txt +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">522</span> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:26 ERROR 522: <span class="o">(</span>no description<span class="o">)</span>. +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:26-- https://virgool.io/images/favicon.png?v<span class="o">=</span>v2.6.15 +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">9855</span> <span class="o">(</span>9.6K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘favicon.png?v<span class="o">=</span>v2.6.15’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">favicon.png?v<span class="o">=</span>v2.6.15 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 9.62K --.-KB/s in 0.07s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:27 <span class="o">(</span><span class="m">130</span> KB/s<span class="o">)</span> - ‘favicon.png?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>9855/9855<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:27-- https://virgool.io/css/styles.css?v<span class="o">=</span>v2.6.15 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/css<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘styles.css?v<span class="o">=</span>v2.6.15.css’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">styles.css?v<span class="o">=</span>v2.6.15.css <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 903.60K 592KB/s in 1.5s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:28 <span class="o">(</span><span class="m">592</span> KB/s<span class="o">)</span> - ‘styles.css?v<span class="o">=</span>v2.6.15.css’ saved <span class="o">[</span>925284<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:28-- https://virgool.test/robots.txt +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:28-- https://www.googletagmanager.com/ns.html?id<span class="o">=</span>GTM-5GS688K +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/html<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘ns.html?id<span class="o">=</span>GTM-5GS688K.html’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">ns.html?id<span class="o">=</span>GTM-5GS688K.html <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">266</span> --.-KB/s in 0s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:29 <span class="o">(</span>29.4 MB/s<span class="o">)</span> - ‘ns.html?id<span class="o">=</span>GTM-5GS688K.html’ saved <span class="o">[</span>266<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:29-- https://files.virgool.io/upload/users/31434/avatar/1C4LLE.png?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">39194</span> <span class="o">(</span>38K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_ 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 38.28K 173KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:30 <span class="o">(</span><span class="m">173</span> KB/s<span class="o">)</span> - ‘1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>39194/39194<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:30-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/qhokakomwyb5.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">179870</span> <span class="o">(</span>176K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘qhokakomwyb5.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">qhokakomwyb5.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 175.65K 567KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">567</span> KB/s<span class="o">)</span> - ‘qhokakomwyb5.png’ saved <span class="o">[</span>179870/179870<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/v1xnwpnewfys.webp +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">12770</span> <span class="o">(</span>12K<span class="o">)</span> <span class="o">[</span>image/webp<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘v1xnwpnewfys.webp’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">v1xnwpnewfys.webp 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 12.47K --.-KB/s in 0.07s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">180</span> KB/s<span class="o">)</span> - ‘v1xnwpnewfys.webp’ saved <span class="o">[</span>12770/12770<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/d28hpu2detkl.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">92847</span> <span class="o">(</span>91K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘d28hpu2detkl.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">d28hpu2detkl.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 90.67K --.-KB/s in 0.09s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">969</span> KB/s<span class="o">)</span> - ‘d28hpu2detkl.png’ saved <span class="o">[</span>92847/92847<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/rhyykrc8azq0.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">17539</span> <span class="o">(</span>17K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘rhyykrc8azq0.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">rhyykrc8azq0.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 17.13K --.-KB/s in 0.007s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>2.47 MB/s<span class="o">)</span> - ‘rhyykrc8azq0.png’ saved <span class="o">[</span>17539/17539<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/fjtc1ydzkuse.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">108524</span> <span class="o">(</span>106K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘fjtc1ydzkuse.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">fjtc1ydzkuse.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 105.98K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>1.06 MB/s<span class="o">)</span> - ‘fjtc1ydzkuse.png’ saved <span class="o">[</span>108524/108524<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/gfqhgyp18oic.jpeg +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">132085</span> <span class="o">(</span>129K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘gfqhgyp18oic.jpeg’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">gfqhgyp18oic.jpeg 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 128.99K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>1.28 MB/s<span class="o">)</span> - ‘gfqhgyp18oic.jpeg’ saved <span class="o">[</span>132085/132085<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/me0mpjtdmyom.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">113489</span> <span class="o">(</span>111K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘me0mpjtdmyom.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">me0mpjtdmyom.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 110.83K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span><span class="m">814</span> KB/s<span class="o">)</span> - ‘me0mpjtdmyom.png’ saved <span class="o">[</span>113489/113489<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/of7krju6oqzk.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">105746</span> <span class="o">(</span>103K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘of7krju6oqzk.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">of7krju6oqzk.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 103.27K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span>1.25 MB/s<span class="o">)</span> - ‘of7krju6oqzk.png’ saved <span class="o">[</span>105746/105746<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/oqwhflg4gbnq.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">120994</span> <span class="o">(</span>118K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘oqwhflg4gbnq.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">oqwhflg4gbnq.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 118.16K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span>1.14 MB/s<span class="o">)</span> - ‘oqwhflg4gbnq.png’ saved <span class="o">[</span>120994/120994<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/taqjnfnuzxcx.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">122678</span> <span class="o">(</span>120K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘taqjnfnuzxcx.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">taqjnfnuzxcx.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 119.80K --.-KB/s in 0.06s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span>2.00 MB/s<span class="o">)</span> - ‘taqjnfnuzxcx.png’ saved <span class="o">[</span>122678/122678<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/63/posts/qwqrubplfaau/g8vai2incgna.jpeg?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">88292</span> <span class="o">(</span>86K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fre 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 86.22K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span><span class="m">824</span> KB/s<span class="o">)</span> - ‘g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>88292/88292<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/63/avatar/o8jiNe.png?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">32037</span> <span class="o">(</span>31K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_ 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 31.29K --.-KB/s in 0.06s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span><span class="m">558</span> KB/s<span class="o">)</span> - ‘o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>32037/32037<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/31434/posts/e3oydlcfkr5e/figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">30356</span> <span class="o">(</span>30K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fre 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 29.64K --.-KB/s in 0.07s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span><span class="m">401</span> KB/s<span class="o">)</span> - ‘figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>30356/30356<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://files.virgool.io/upload/users/316150/posts/r8rhw88uh1xh/cs1ugyelv3zw.png?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">34459</span> <span class="o">(</span>34K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fres 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 33.65K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span><span class="m">399</span> KB/s<span class="o">)</span> - ‘cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>34459/34459<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://files.virgool.io/upload/users/316150/avatar/8sz7Rs.jpeg?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">14764</span> <span class="o">(</span>14K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 14.42K --.-KB/s in 0.007s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span>2.11 MB/s<span class="o">)</span> - ‘8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>14764/14764<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://virgool.io/js/commons.js?v<span class="o">=</span>v2.6.15 +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/javascript<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘commons.js?v<span class="o">=</span>v2.6.15’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">commons.js?v<span class="o">=</span>v2.6.15 <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 997.55K 337KB/s in 3.0s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:39 <span class="o">(</span><span class="m">337</span> KB/s<span class="o">)</span> - ‘commons.js?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>1021492<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:39-- https://virgool.io/js/main.js?v<span class="o">=</span>v2.6.15 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/javascript<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘main.js?v<span class="o">=</span>v2.6.15’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">main.js?v<span class="o">=</span>v2.6.15 <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 1.21M 580KB/s in 2.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:41 <span class="o">(</span><span class="m">580</span> KB/s<span class="o">)</span> - ‘main.js?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>1267632<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:41-- https://static.cloudflareinsights.com/beacon.min.js/v652eace1692a40cfa3763df669d7439c1639079717194 +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">13970</span> <span class="o">(</span>14K<span class="o">)</span> <span class="o">[</span>text/javascript<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘v652eace1692a40cfa3763df669d7439c1639079717194’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">v652eace1692a40cfa3763df669d743 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 13.64K --.-KB/s in 0.02s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:42 <span class="o">(</span><span class="m">600</span> KB/s<span class="o">)</span> - ‘v652eace1692a40cfa3763df669d7439c1639079717194’ saved <span class="o">[</span>13970/13970<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:42-- https://virgool.io/fonts/vazir/Vazir-Thin.ttf +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">98924</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Thin.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.61K 140KB/s in 0.7s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:43 <span class="o">(</span><span class="m">140</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.ttf’ saved <span class="o">[</span>98924/98924<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:43-- https://virgool.io/fonts/vazir/Vazir-Thin.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Thin.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.80K 276KB/s in 0.4s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:44 <span class="o">(</span><span class="m">276</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.eot?’ saved <span class="o">[</span>99120<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:44-- https://virgool.io/fonts/vazir/Vazir-Thin.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">54068</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Thin.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.80K --.-KB/s in 0.07s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:45 <span class="o">(</span><span class="m">770</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.woff’ saved <span class="o">[</span>54068/54068<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:45-- https://virgool.io/fonts/vazir/Vazir-Thin.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">43000</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Thin.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 41.99K --.-KB/s in 0.006s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:46 <span class="o">(</span>6.59 MB/s<span class="o">)</span> - ‘Vazir-Thin.woff2’ saved <span class="o">[</span>43000/43000<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:46-- https://virgool.io/fonts/vazir/Vazir-Light.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">105360</span> <span class="o">(</span>103K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Light.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 102.89K 478KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:46 <span class="o">(</span><span class="m">478</span> KB/s<span class="o">)</span> - ‘Vazir-Light.ttf’ saved <span class="o">[</span>105360/105360<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:46-- https://virgool.io/fonts/vazir/Vazir-Light.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Light.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 103.09K 470KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:47 <span class="o">(</span><span class="m">470</span> KB/s<span class="o">)</span> - ‘Vazir-Light.eot?’ saved <span class="o">[</span>105562<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:47-- https://virgool.io/fonts/vazir/Vazir-Light.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">59688</span> <span class="o">(</span>58K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Light.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 58.29K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:48 <span class="o">(</span><span class="m">758</span> KB/s<span class="o">)</span> - ‘Vazir-Light.woff’ saved <span class="o">[</span>59688/59688<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:48-- https://virgool.io/fonts/vazir/Vazir-Light.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">48168</span> <span class="o">(</span>47K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Light.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 47.04K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:48 <span class="o">(</span><span class="m">570</span> KB/s<span class="o">)</span> - ‘Vazir-Light.woff2’ saved <span class="o">[</span>48168/48168<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:48-- https://virgool.io/fonts/vazir/Vazir-Regular.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">98376</span> <span class="o">(</span>96K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Regular.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.07K 435KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:49 <span class="o">(</span><span class="m">435</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.ttf’ saved <span class="o">[</span>98376/98376<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:49-- https://virgool.io/fonts/vazir/Vazir-Regular.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Regular.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.26K 285KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:50 <span class="o">(</span><span class="m">285</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.eot?’ saved <span class="o">[</span>98574<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:50-- https://virgool.io/fonts/vazir/Vazir-Regular.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">53744</span> <span class="o">(</span>52K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Regular.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.48K --.-KB/s in 0.05s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:51 <span class="o">(</span>1.10 MB/s<span class="o">)</span> - ‘Vazir-Regular.woff’ saved <span class="o">[</span>53744/53744<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:51-- https://virgool.io/fonts/vazir/Vazir-Regular.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">42744</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Regular.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 41.74K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:51 <span class="o">(</span><span class="m">412</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.woff2’ saved <span class="o">[</span>42744/42744<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:51-- https://virgool.io/fonts/vazir/Vazir-Medium.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">98892</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Medium.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.57K 606KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:52 <span class="o">(</span><span class="m">606</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.ttf’ saved <span class="o">[</span>98892/98892<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:52-- https://virgool.io/fonts/vazir/Vazir-Medium.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Medium.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.78K 347KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:53 <span class="o">(</span><span class="m">347</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.eot?’ saved <span class="o">[</span>99100<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:53-- https://virgool.io/fonts/vazir/Vazir-Medium.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">54120</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Medium.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.85K 125KB/s in 0.4s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:54 <span class="o">(</span><span class="m">125</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.woff’ saved <span class="o">[</span>54120/54120<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:54-- https://virgool.io/fonts/vazir/Vazir-Medium.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">43152</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Medium.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.14K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:54 <span class="o">(</span><span class="m">541</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.woff2’ saved <span class="o">[</span>43152/43152<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:54-- https://virgool.io/fonts/vazir/Vazir-Bold.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">99840</span> <span class="o">(</span>98K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Bold.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 97.50K --.-KB/s in 0.04s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:55 <span class="o">(</span>2.61 MB/s<span class="o">)</span> - ‘Vazir-Bold.ttf’ saved <span class="o">[</span>99840/99840<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:55-- https://virgool.io/fonts/vazir/Vazir-Bold.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Bold.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 97.68K 560KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:56 <span class="o">(</span><span class="m">560</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.eot?’ saved <span class="o">[</span>100026<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:56-- https://virgool.io/fonts/vazir/Vazir-Bold.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">54560</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Bold.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 53.28K --.-KB/s in 0.06s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:56 <span class="o">(</span><span class="m">917</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.woff’ saved <span class="o">[</span>54560/54560<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:56-- https://virgool.io/fonts/vazir/Vazir-Bold.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">43604</span> <span class="o">(</span>43K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Bold.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.58K --.-KB/s in 0.06s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:57 <span class="o">(</span><span class="m">657</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.woff2’ saved <span class="o">[</span>43604/43604<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:57-- https://virgool.io/fonts/vazir/Vazir-Black.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">99772</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Black.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 97.43K --.-KB/s in 0.04s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:57 <span class="o">(</span>2.18 MB/s<span class="o">)</span> - ‘Vazir-Black.ttf’ saved <span class="o">[</span>99772/99772<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:57-- https://virgool.io/fonts/vazir/Vazir-Black.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Black.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 97.63K 478KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:58 <span class="o">(</span><span class="m">478</span> KB/s<span class="o">)</span> - ‘Vazir-Black.eot?’ saved <span class="o">[</span>99974<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:58-- https://virgool.io/fonts/vazir/Vazir-Black.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">54652</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Black.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 53.37K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:59 <span class="o">(</span><span class="m">691</span> KB/s<span class="o">)</span> - ‘Vazir-Black.woff’ saved <span class="o">[</span>54652/54652<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:59-- https://virgool.io/fonts/vazir/Vazir-Black.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">43332</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Black.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.32K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:00 <span class="o">(</span><span class="m">510</span> KB/s<span class="o">)</span> - ‘Vazir-Black.woff2’ saved <span class="o">[</span>43332/43332<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:00-- https://virgool.io/fonts/fontawesome/fa-solid-900.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">202616</span> <span class="o">(</span>198K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">fa-solid-900.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 197.87K 501KB/s in 0.4s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:01 <span class="o">(</span><span class="m">501</span> KB/s<span class="o">)</span> - ‘fa-solid-900.ttf’ saved <span class="o">[</span>202616/202616<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:01-- https://virgool.io/fonts/fontawesome/fa-solid-900.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">404</span> Not Found +</span></span><span class="line"><span class="cl">2022-01-18 06:42:01 ERROR 404: Not Found. +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:01-- https://virgool.io/fonts/fontawesome/fa-solid-900.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">103300</span> <span class="o">(</span>101K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">fa-solid-900.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 100.88K 358KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:02 <span class="o">(</span><span class="m">358</span> KB/s<span class="o">)</span> - ‘fa-solid-900.woff’ saved <span class="o">[</span>103300/103300<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:02-- https://virgool.io/fonts/fontawesome/fa-solid-900.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">79444</span> <span class="o">(</span>78K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">fa-solid-900.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 77.58K 394KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:03 <span class="o">(</span><span class="m">394</span> KB/s<span class="o">)</span> - ‘fa-solid-900.woff2’ saved <span class="o">[</span>79444/79444<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:03-- https://virgool.io/images/icons/plus.svg +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>image/svg+xml<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘plus.svg’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">plus.svg <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">942</span> --.-KB/s in 0.002s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:03 <span class="o">(</span><span class="m">383</span> KB/s<span class="o">)</span> - ‘plus.svg’ saved <span class="o">[</span>942<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:03-- https://virgool.io/images/icons/tick.svg +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>image/svg+xml<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘tick.svg’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">tick.svg <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">942</span> --.-KB/s in 0s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:04 <span class="o">(</span>89.8 MB/s<span class="o">)</span> - ‘tick.svg’ saved <span class="o">[</span>942<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:04-- https://virgool.io/images/typewriter.png +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">172558</span> <span class="o">(</span>169K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘typewriter.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">typewriter.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 168.51K 349KB/s in 0.5s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:05 <span class="o">(</span><span class="m">349</span> KB/s<span class="o">)</span> - ‘typewriter.png’ saved <span class="o">[</span>172558/172558<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:05-- https://virgool.test/images/download-audio.png +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:05-- https://virgool.test/images/download-ebook.png +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. +</span></span><span class="line"><span class="cl">FINISHED --2022-01-18 06:42:05-- +</span></span><span class="line"><span class="cl">Total wall clock time: 1m 2s +</span></span><span class="line"><span class="cl">Downloaded: <span class="m">54</span> files, 6.6M in 14s <span class="o">(</span><span class="m">479</span> KB/s<span class="o">)</span> +</span></span><span class="line"><span class="cl">Converting links in ns.html?id<span class="o">=</span>GTM-5GS688K.html... nothing to <span class="k">do</span>. +</span></span><span class="line"><span class="cl">Converting links in c3fVa.html... 38. +</span></span><span class="line"><span class="cl">31-7 +</span></span><span class="line"><span class="cl">Converting links in styles.css?v<span class="o">=</span>v2.6.15.css... 35. +</span></span><span class="line"><span class="cl">34-1 +</span></span><span class="line"><span class="cl">Converted links in <span class="m">3</span> files in 0.06 seconds. +</span></span></code></pre></td></tr></table> +</div> +</div> پلاگین های کاربردی گنومhttps://bit-orbit.github.io/p/%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C-%DA%AF%D9%86%D9%88%D9%85/Fri, 14 Jan 2022 18:18:28 +0330https://bit-orbit.github.io/p/%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C-%DA%AF%D9%86%D9%88%D9%85/<img src="https://bit-orbit.github.io/images/post/gp.jpg" alt="Featured image of post پلاگین های کاربردی گنوم " /><div dir='rtl' style="font-size:x-large;"> +<p>اگر مثل من از محیط gnome روی توزیع لینوکس استفاده می‌کنید، احتمالا شیفته سادگی‌اش شدید! اما بیایید چند پلاگین به آن اضافه کنیم تا درضمن داشتن این سادگی، عملکرد این محیط -را توسعه دهیم.</p> -<hr> -<div dir='ltr'> -<h3 id="i-shutdown-timerhttpsextensionsgnomeorgextension4372shutdowntimer">#I <a class="link" href="https://extensions.gnome.org/extension/4372/shutdowntimer/" target="_blank" rel="noopener" - >Shutdown Timer</a></h3> -</div> -<p>در لینوکس به سادگی با یک کامند می‌شود سیستم را زمانبندی کرد که +را توسعه دهیم.</p> +<hr> +<div dir='ltr'> +<h3 id="i-shutdown-timerhttpsextensionsgnomeorgextension4372shutdowntimer">#I <a class="link" href="https://extensions.gnome.org/extension/4372/shutdowntimer/" target="_blank" rel="noopener" +>Shutdown Timer</a> +</h3></div> +<p>در لینوکس به سادگی با یک کامند می‌شود سیستم را زمانبندی کرد که خاموش یا تعلیق شود. -با نصب این پلاگین مجبور به وارد کردن کامند برای خاموش/تعلیق کردن نیستیم!</p> -<p><img src="https://bit-orbit.github.io/images/post/shut.jpg" - - - - loading="lazy" - - alt="shutdown sch" - - -></p> -<hr> -<div dir='ltr'> -<h3 id="ii-application-volume-mixerhttpsextensionsgnomeorgextension3499application-volume-mixer">#II <a class="link" href="https://extensions.gnome.org/extension/3499/application-volume-mixer" target="_blank" rel="noopener" - >Application Volume Mixer</a></h3> -</div> -<p>بار ها شده که نیاز دارم صدای یک برنامه رو کم کنم و صدای برنامه‌ای دیگر را +با نصب این پلاگین مجبور به وارد کردن کامند برای خاموش/تعلیق کردن نیستیم!</p> +<p><img src="https://bit-orbit.github.io/images/post/shut.jpg" +loading="lazy" +alt="shutdown sch" +></p> +<hr> +<div dir='ltr'> +<h3 id="ii-application-volume-mixerhttpsextensionsgnomeorgextension3499application-volume-mixer">#II <a class="link" href="https://extensions.gnome.org/extension/3499/application-volume-mixer" target="_blank" rel="noopener" +>Application Volume Mixer</a> +</h3></div> +<p>بار ها شده که نیاز دارم صدای یک برنامه رو کم کنم و صدای برنامه‌ای دیگر را زیاد. ممکنه بعضی از برنامه ها مانند -<em>vlc</em> +<em>vlc</em> این امکان را خودشان فراهم کرده باشند. اما با این پلاگین شما به راحتی می‌توانید صدای -هر برنامه را به صورت مجزا کنترل کنید.</p> -<p><img src="https://bit-orbit.github.io/images/post/vl.png" - - - - loading="lazy" - - alt="Vulume mixer" - - -></p> -<hr> -<div dir='ltr'> -<h3 id="iii-dash-to-dockhttpsextensionsgnomeorgextension307dash-to-dock">III <a class="link" href="https://extensions.gnome.org/extension/307/dash-to-dock/" target="_blank" rel="noopener" - >dash-to-dock</a></h3> -</div> -<p>task bar +هر برنامه را به صورت مجزا کنترل کنید.</p> +<p><img src="https://bit-orbit.github.io/images/post/vl.png" +loading="lazy" +alt="Vulume mixer" +></p> +<hr> +<div dir='ltr'> +<h3 id="iii-dash-to-dockhttpsextensionsgnomeorgextension307dash-to-dock">III <a class="link" href="https://extensions.gnome.org/extension/307/dash-to-dock/" target="_blank" rel="noopener" +>dash-to-dock</a> +</h3></div> +<p>task bar پیشفرض گنوم بد نیست ولی ظاهر زیبایی هم نداره. اما این پلاگین task bar شما را به dock تبدیل می‌کند. -ظاهر کوچک و زیباتری دارد</p> -<p>به صورت پیشفرض زمانی که یک برنامه +ظاهر کوچک و زیباتری دارد</p> +<p>به صورت پیشفرض زمانی که یک برنامه maximize است dock @@ -5417,246 +4892,178 @@ dock dock پنهان شده است می‌رود dock -ظاهر می‌شود.</p> -<h2 id="dash-to-dockimagespostdash_to_dockjpg"><img src="https://bit-orbit.github.io/images/post/dash_to_dock.jpg" - - - - loading="lazy" - - alt="dash to dock" - - -></h2> -<div dir='ltr'> -<h3 id="iv-clipboard-indicatorhttpsextensionsgnomeorgextension779clipboard-indicator">#IV <a class="link" href="https://extensions.gnome.org/extension/779/clipboard-indicator/" target="_blank" rel="noopener" - >Clipboard Indicator</a></h3> -</div> -<p>فرض کیند متنی را کپی می‌کنیم و بعد از مدتی متن و یا فایل های دیگری را کپی می‌کنیم +ظاهر می‌شود.</p> +<h2 id="dash-to-dockimagespostdash_to_dockjpg"><img src="https://bit-orbit.github.io/images/post/dash_to_dock.jpg" +loading="lazy" +alt="dash to dock" +> +</h2><div dir='ltr'> +<h3 id="iv-clipboard-indicatorhttpsextensionsgnomeorgextension779clipboard-indicator">#IV <a class="link" href="https://extensions.gnome.org/extension/779/clipboard-indicator/" target="_blank" rel="noopener" +>Clipboard Indicator</a> +</h3></div> +<p>فرض کیند متنی را کپی می‌کنیم و بعد از مدتی متن و یا فایل های دیگری را کپی می‌کنیم و بعد از مدتی مجددا به متن اولیه نیاز پیدا کرده‌ایم ولی دیگر در کلیپ برد ما نیست -چرا که داده های بعدی جایگزین متن اولیه در کلیپ برد شده است.</p> -<p>پلاگین -<em>clipboard indicator</em> +چرا که داده های بعدی جایگزین متن اولیه در کلیپ برد شده است.</p> +<p>پلاگین +<em>clipboard indicator</em> هر متنی را که کپی کنیم را در فهرستی ذخیره می‌کند. علاوه به این یک فهرست -<em>favorite</em> +<em>favorite</em> هم در این کلیپ برد وجود دارد که می‌توانید متن هایی را به آن اضافه کنید که دیگر خذف نشوند. -و همچنین از فهرست اصلی جدا باشد.</p> -<p>و شاید بخشی از متنی را به یاد داشته باشید که نیاز دارید ببینید در کلیپ برد هست و یا -نه، برای اینکار هم یک بخش جست و جو وجود دارد.</p> -<h2 id="clipboardimagespostclpjpg"><img src="https://bit-orbit.github.io/images/post/clp.jpg" - - - - loading="lazy" - - alt="Clipboard" - - -></h2> -<div dir='ltr'> -<h3 id="v-net-speedhttpsextensionsgnomeorgextension104netspeed">#V <a class="link" href="https://extensions.gnome.org/extension/104/netspeed/" target="_blank" rel="noopener" - >net speed</a></h3> -</div> -<p>بیشتر مواقع نیاز داریم تا سرعت اینترنت را هنگام استفاده از آن ببینیم. +و همچنین از فهرست اصلی جدا باشد.</p> +<p>و شاید بخشی از متنی را به یاد داشته باشید که نیاز دارید ببینید در کلیپ برد هست و یا +نه، برای اینکار هم یک بخش جست و جو وجود دارد.</p> +<h2 id="clipboardimagespostclpjpg"><img src="https://bit-orbit.github.io/images/post/clp.jpg" +loading="lazy" +alt="Clipboard" +> +</h2><div dir='ltr'> +<h3 id="v-net-speedhttpsextensionsgnomeorgextension104netspeed">#V <a class="link" href="https://extensions.gnome.org/extension/104/netspeed/" target="_blank" rel="noopener" +>net speed</a> +</h3></div> +<p>بیشتر مواقع نیاز داریم تا سرعت اینترنت را هنگام استفاده از آن ببینیم. و یا زمانی که فایلی در شبکه انتقال می‌دهیم نیاز داریم تا سرعت انتقال را در هر لحظه بدانیم. پلاگین NetSpeed -این قابلیت را دارد که سرعت شبکه وایرلس و شبکه سیمی را مجزا نشان دهد.</p> -<p><img src="https://bit-orbit.github.io/images/post/netspeed.png" - - - - loading="lazy" - - alt="netspeed" - - -></p> -<hr> -<div dir='ltr'> -<h3 id="vi-caffeinehttpsextensionsgnomeorgextension517caffeine">#VI <a class="link" href="https://extensions.gnome.org/extension/517/caffeine/" target="_blank" rel="noopener" - >Caffeine</a></h3> -</div> -<p>وقتی برای مدتی به موس و کیبرد دست نزنیم صفحه نمایش خودکار خاموش می‌شود +این قابلیت را دارد که سرعت شبکه وایرلس و شبکه سیمی را مجزا نشان دهد.</p> +<p><img src="https://bit-orbit.github.io/images/post/netspeed.png" +loading="lazy" +alt="netspeed" +></p> +<hr> +<div dir='ltr'> +<h3 id="vi-caffeinehttpsextensionsgnomeorgextension517caffeine">#VI <a class="link" href="https://extensions.gnome.org/extension/517/caffeine/" target="_blank" rel="noopener" +>Caffeine</a> +</h3></div> +<p>وقتی برای مدتی به موس و کیبرد دست نزنیم صفحه نمایش خودکار خاموش می‌شود و بعد از مدتی سیستم به حالت suspend می‌رود. اولین راهی که ذهن ما می‌رسد این است که در تظیمات زمان به تعلیق درامدن سیستم را بیشتر کنیم. اما این روش زمانی که نیازش نداریم کار مفیدی نیست، چرا که ممکن است ساعات ها سیستم بدون هیچ استفاده‌ای روشن بماند. برای همین من این پلاگین را دارم، زمانی که نیاز دارم تا از سیستم دور باشم -کافئین رو روشن می‌کنم و زمانی که نمی‌دونم چی پیش میاد! خاموشش می‌‌کنم.</p> -<p><img src="https://bit-orbit.github.io/images/post/caf.png" - - - - loading="lazy" - - alt="caffein" - - -></p> -<hr> -<div dir='ltr'> -<h3 id="vii-google-searchhttpsextensionsgnomeorgextension4132google-search-provider">#VII <a class="link" href="https://extensions.gnome.org/extension/4132/google-search-provider/" target="_blank" rel="noopener" - >Google Search</a></h3> -</div> -<p>با وجود این اکستنشن شما مجبور به اجرای مرورگر برای جست و جوی یک عبارت نیستید. +کافئین رو روشن می‌کنم و زمانی که نمی‌دونم چی پیش میاد! خاموشش می‌‌کنم.</p> +<p><img src="https://bit-orbit.github.io/images/post/caf.png" +loading="lazy" +alt="caffein" +></p> +<hr> +<div dir='ltr'> +<h3 id="vii-google-searchhttpsextensionsgnomeorgextension4132google-search-provider">#VII <a class="link" href="https://extensions.gnome.org/extension/4132/google-search-provider/" target="_blank" rel="noopener" +>Google Search</a> +</h3></div> +<p>با وجود این اکستنشن شما مجبور به اجرای مرورگر برای جست و جوی یک عبارت نیستید. کافیه عبارت جست و جو رو در منوی overview خود گنوم بنویسید و بعد یکی از پیشنهاد های گوگل را انتخاب کنید. و -یا حتی خود عبارت را جست و جو کنید.</p> -<p><img src="https://extensions.gnome.org/extension-data/screenshots/screenshot_4132.png" - - - - loading="lazy" - - alt="google search" - - -></p> -<hr> -<h3 id="viii-jigglehttpsextensionsgnomeorgextension3438jiggle">#VIII <a class="link" href="https://extensions.gnome.org/extension/3438/jiggle/" target="_blank" rel="noopener" - >Jiggle</a></h3> -<p>کرسر موس رو گم کردین؟ موس رو تکون بدین!</p> -<p><img src="https://bit-orbit.github.io/images/post/screenshot_3438.gif" - - - - loading="lazy" - - alt="Jiggle" - - -></p> -<hr> -<h3 id="ix-custom-hot-cornershttpsextensionsgnomeorgextension1362custom-hot-corners">#IX <a class="link" href="https://extensions.gnome.org/extension/1362/custom-hot-corners/" target="_blank" rel="noopener" - >Custom Hot Corners</a></h3> -<p>یکی از پلاگین های مورد علاقه من، با این پلاگین لبه سیستم را برای یک عمل خاصی تنظیم می‌کنیم که وقتی +یا حتی خود عبارت را جست و جو کنید.</p> +<p><img src="https://extensions.gnome.org/extension-data/screenshots/screenshot_4132.png" +loading="lazy" +alt="google search" +></p> +<hr> +<h3 id="viii-jigglehttpsextensionsgnomeorgextension3438jiggle">#VIII <a class="link" href="https://extensions.gnome.org/extension/3438/jiggle/" target="_blank" rel="noopener" +>Jiggle</a> +</h3><p>کرسر موس رو گم کردین؟ موس رو تکون بدین!</p> +<p><img src="https://bit-orbit.github.io/images/post/screenshot_3438.gif" +loading="lazy" +alt="Jiggle" +></p> +<hr> +<h3 id="ix-custom-hot-cornershttpsextensionsgnomeorgextension1362custom-hot-corners">#IX <a class="link" href="https://extensions.gnome.org/extension/1362/custom-hot-corners/" target="_blank" rel="noopener" +>Custom Hot Corners</a> +</h3><p>یکی از پلاگین های مورد علاقه من، با این پلاگین لبه سیستم را برای یک عمل خاصی تنظیم می‌کنیم که وقتی کرسور موس به سمت آن رفت، آن عمل انجام بشود. مثلا وقتی موس به گوشه سمت بالا برخورد کرد، منوی over view -باز بشود. و یا مثلا نظیم می‌کنیم که وقتی موس به گوشه پایین سمنت چپ بر خورد کرد یک کامند اجرا شود.</p> -<p><img src="https://bit-orbit.github.io/images/post/1.gif" - - - - loading="lazy" - - alt="Custom Hot Corner" - - -></p> -</div> - - - zsh بهترین پلاگین های - https://bit-orbit.github.io/p/zsh-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C/ - Tue, 11 Jan 2022 02:44:12 +0330 - - https://bit-orbit.github.io/p/zsh-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C/ - <img src="https://bit-orbit.github.io/images/post/terminal.jpg" alt="Featured image of post zsh بهترین پلاگین های " /><p>نوشتن یک برنامه کار سختی نیست، بلکه نگه‌داری و آپدیت یک برنامه‌ست، پلاگین این ویژگی را می‌دهد تا به راحتی عملکرد یک برنامه را بی‌افزاییم.</p> -<hr> -<div dir='rtl' style='font-size:25px'> -<h3 id="themeshttpsgithubcomohmyzshohmyzshtreemasterpluginsthemes-"><a class="link" href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/themes" target="_blank" rel="noopener" - >themes</a> #Ⅳ</h3> -<p>انتخاب +باز بشود. و یا مثلا نظیم می‌کنیم که وقتی موس به گوشه پایین سمنت چپ بر خورد کرد یک کامند اجرا شود.</p> +<p><img src="https://bit-orbit.github.io/images/post/1.gif" +loading="lazy" +alt="Custom Hot Corner" +></p> +</div> zsh بهترین پلاگین هایhttps://bit-orbit.github.io/p/zsh-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C/Tue, 11 Jan 2022 02:44:12 +0330https://bit-orbit.github.io/p/zsh-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C/<img src="https://bit-orbit.github.io/images/post/terminal.jpg" alt="Featured image of post zsh بهترین پلاگین های " /><p>نوشتن یک برنامه کار سختی نیست، بلکه نگه‌داری و آپدیت یک برنامه‌ست، پلاگین این ویژگی را می‌دهد تا به راحتی عملکرد یک برنامه را بی‌افزاییم.</p> +<hr> +<div dir='rtl' style='font-size:25px'> +<h3 id="themeshttpsgithubcomohmyzshohmyzshtreemasterpluginsthemes-"><a class="link" href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/themes" target="_blank" rel="noopener" +>themes</a> #Ⅳ +</h3><p>انتخاب بین تم های zsh واقعا کار سختیه!‌ هر تم ظاهر جدیدی به ترمینال شما می‌دهد که -کار کردن در ترمینال را جذاب تر می‌کند.</p> -<p>با استفاده از این پلاگین شما بدون نیاز به تغییر دستی فایل کانفیگ -<code>zshrc.</code>، -می‌توانید تم را تغییر بدین.</p> -<p><img src="https://bit-orbit.github.io/images/post/theme.gif" - - - - loading="lazy" - - alt="theme-plugin" - - -></p> -<blockquote> -<ul> -<li>تغییر به یک تم مشخص</li> -</ul> -<p><code>theme theme_name</code></p> -</blockquote> -<blockquote> -<ul> -<li>تغییر رندم تم</li> -</ul> -<p><code>theme</code></p> -</blockquote> -<blockquote> -<ul> -<li>دیدن لیستی از تم های نصب شده</li> -</ul> -<p><code>lstheme</code></p> -</blockquote> -<hr> -<h3 id="zsh-autosuggestionshttpsgithubcomzsh-userszsh-autosuggestions-"><a class="link" href="https://github.com/zsh-users/zsh-autosuggestions" target="_blank" rel="noopener" - >zsh-autosuggestions</a> #Ⅲ</h3> -<blockquote> -<p><a class="link" href="https://github.com/zsh-users/zsh-autosuggestions" target="_blank" rel="noopener" - >تنها پلاگینی که باید نصب بشه</a></p> -</blockquote> -<p>این یکی از پلاگین هایی است که بدون آن زندگی ممکن نیست!</p> -<p>همانطور که شما دستوری را تایپ می‌کنید، متنی به رنگ خاکستری ظاهر می‌شود که +کار کردن در ترمینال را جذاب تر می‌کند.</p> +<p>با استفاده از این پلاگین شما بدون نیاز به تغییر دستی فایل کانفیگ +<code>zshrc.</code>، +می‌توانید تم را تغییر بدین.</p> +<p><img src="https://bit-orbit.github.io/images/post/theme.gif" +loading="lazy" +alt="theme-plugin" +></p> +<blockquote> +<ul> +<li>تغییر به یک تم مشخص</li> +</ul> +<p><code>theme theme_name</code></p> +</blockquote> +<blockquote> +<ul> +<li>تغییر رندم تم</li> +</ul> +<p><code>theme</code></p> +</blockquote> +<blockquote> +<ul> +<li>دیدن لیستی از تم های نصب شده</li> +</ul> +<p><code>lstheme</code></p> +</blockquote> +<hr> +<h3 id="zsh-autosuggestionshttpsgithubcomzsh-userszsh-autosuggestions-"><a class="link" href="https://github.com/zsh-users/zsh-autosuggestions" target="_blank" rel="noopener" +>zsh-autosuggestions</a> #Ⅲ +</h3><blockquote> +<p><a class="link" href="https://github.com/zsh-users/zsh-autosuggestions" target="_blank" rel="noopener" +>تنها پلاگینی که باید نصب بشه</a></p> +</blockquote> +<p>این یکی از پلاگین هایی است که بدون آن زندگی ممکن نیست!</p> +<p>همانطور که شما دستوری را تایپ می‌کنید، متنی به رنگ خاکستری ظاهر می‌شود که به شما دستورات ممکن را پیشنهاد می‌دهد و یا از history دستور مشابه که قبلا اجرا کرده‌اید را جست و جو می‌کند و پیشنهاد می‌هد. و خب شما را برای تایپ کردن کامل دستور و سوییچ هایش راحت می‌کند. برای اینکه دستور ظاهر شده تایپ شود کافیست کلید -<code>right arrow key</code> +<code>right arrow key</code> یا همان -<code>فلش سمت راست</code> -را فشار دهید.</p> -<p><img src="https://bit-orbit.github.io/images/post/zsh-autosuggestions-gif.gif" - - - - loading="lazy" - - alt="zsh-autosuggestion" - - -></p> -<hr> -<h3 id="sudohttpsgithubcomohmyzshohmyzshtreemasterpluginssudo-"><a class="link" href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/sudo" target="_blank" rel="noopener" - >sudo</a> #Ⅱ</h3> -<p>بار ها اتفاق افتاده دستوری را که نیاز به دسترسی +<code>فلش سمت راست</code> +را فشار دهید.</p> +<p><img src="https://bit-orbit.github.io/images/post/zsh-autosuggestions-gif.gif" +loading="lazy" +alt="zsh-autosuggestion" +></p> +<hr> +<h3 id="sudohttpsgithubcomohmyzshohmyzshtreemasterpluginssudo-"><a class="link" href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/sudo" target="_blank" rel="noopener" +>sudo</a> #Ⅱ +</h3><p>بار ها اتفاق افتاده دستوری را که نیاز به دسترسی root داشته را بدون نوشتن کلمه -<em>sudo</em> +<em>sudo</em> اجرا کرده‌ام، و بعد از دیدن ارور، دستور را دوباره تایپ کردم و کلمه -<em>sudo</em> +<em>sudo</em> را هم به اول دستور اضافه کردم. اما این پلاگین بار تایپ مجدد یک دستور بخاطر فراموش کردن کلمه -<em>sudo</em> +<em>sudo</em> را از دوش ما بر‌ می‌دارد. کافیست بعد از نوشتن و اجرای دستور بدون -<em>sudo</em>، +<em>sudo</em>، دوبار کلید -<code>esc</code> -را بزنید</p> -<p><img src="https://bit-orbit.github.io/images/post/sudo.gif" - - - - loading="lazy" - - alt="zsh-sudo-theme" - - -></p> -<hr> -<h3 id="web-searchhttpsgithubcomohmyzshohmyzshtreemasterpluginsweb-search-"><a class="link" href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/web-search" target="_blank" rel="noopener" - >web-search</a> #Ⅰ</h3> -<p>وقتی با لینوکس کار می‌‌کنید، تمام لحظه ها در ترمینال هستنید. +<code>esc</code> +را بزنید</p> +<p><img src="https://bit-orbit.github.io/images/post/sudo.gif" +loading="lazy" +alt="zsh-sudo-theme" +></p> +<hr> +<h3 id="web-searchhttpsgithubcomohmyzshohmyzshtreemasterpluginsweb-search-"><a class="link" href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/web-search" target="_blank" rel="noopener" +>web-search</a> #Ⅰ +</h3><p>وقتی با لینوکس کار می‌‌کنید، تمام لحظه ها در ترمینال هستنید. فرض کنید سوالی دارید که باید آن را گوگل کنید،‌ شما مجبور می‌شوید مرورگر را باز کنید، یک تب جدید ایجاد کنید و متنتان را سرچ کنید. ولی به این فکر کنید که نیازی به باز کردن مرورگر و یا سوییچ کردن بین ویندوز ها ندارید، @@ -5664,78 +5071,67 @@ root google را در ترمینال تایپ کنید و متن خود را جلو آن بنوسید و در آخر دکمه اینتر را بزنید! -بنگ! گوگل باز می‌شود و حاصل جست و جوی شما آماده است.</p> -<p><img src="https://bit-orbit.github.io/images/post/web-search.gif" - - - - loading="lazy" - - alt="web-search" - - -></p> -</div> -<table> - <thead> - <tr> - <th style="text-align: center">دستور\موتور جست و جو</th> - </tr> - </thead> - <tbody> - <tr> - <td style="text-align: center"><code>bing</code></td> - </tr> - <tr> - <td style="text-align: center"><code>google</code></td> - </tr> - <tr> - <td style="text-align: center"><code>yahoo</code></td> - </tr> - <tr> - <td style="text-align: center"><code>ddg</code> or <code>duckduckgo</code></td> - </tr> - <tr> - <td style="text-align: center"><code>sp</code> or <code>startpage</code></td> - </tr> - <tr> - <td style="text-align: center"><code>yandex</code></td> - </tr> - <tr> - <td style="text-align: center"><code>github</code></td> - </tr> - <tr> - <td style="text-align: center"><code>baidu</code></td> - </tr> - <tr> - <td style="text-align: center"><code>ecosia</code></td> - </tr> - <tr> - <td style="text-align: center"><code>goodreads</code></td> - </tr> - <tr> - <td style="text-align: center"><code>qwant</code></td> - </tr> - <tr> - <td style="text-align: center"><code>givero</code></td> - </tr> - <tr> - <td style="text-align: center"><code>stackoverflow</code></td> - </tr> - <tr> - <td style="text-align: center"><code>wolframalpha</code></td> - </tr> - <tr> - <td style="text-align: center"><code>archive</code></td> - </tr> - <tr> - <td style="text-align: center"><code>scholar</code></td> - </tr> - </tbody> -</table> -<hr> - - - - - +بنگ! گوگل باز می‌شود و حاصل جست و جوی شما آماده است.</p> +<p><img src="https://bit-orbit.github.io/images/post/web-search.gif" +loading="lazy" +alt="web-search" +></p> +</div> +<table> +<thead> +<tr> +<th style="text-align: center">دستور\موتور جست و جو</th> +</tr> +</thead> +<tbody> +<tr> +<td style="text-align: center"><code>bing</code></td> +</tr> +<tr> +<td style="text-align: center"><code>google</code></td> +</tr> +<tr> +<td style="text-align: center"><code>yahoo</code></td> +</tr> +<tr> +<td style="text-align: center"><code>ddg</code> or <code>duckduckgo</code></td> +</tr> +<tr> +<td style="text-align: center"><code>sp</code> or <code>startpage</code></td> +</tr> +<tr> +<td style="text-align: center"><code>yandex</code></td> +</tr> +<tr> +<td style="text-align: center"><code>github</code></td> +</tr> +<tr> +<td style="text-align: center"><code>baidu</code></td> +</tr> +<tr> +<td style="text-align: center"><code>ecosia</code></td> +</tr> +<tr> +<td style="text-align: center"><code>goodreads</code></td> +</tr> +<tr> +<td style="text-align: center"><code>qwant</code></td> +</tr> +<tr> +<td style="text-align: center"><code>givero</code></td> +</tr> +<tr> +<td style="text-align: center"><code>stackoverflow</code></td> +</tr> +<tr> +<td style="text-align: center"><code>wolframalpha</code></td> +</tr> +<tr> +<td style="text-align: center"><code>archive</code></td> +</tr> +<tr> +<td style="text-align: center"><code>scholar</code></td> +</tr> +</tbody> +</table> +<hr> \ No newline at end of file diff --git a/docs/post/page/1/index.html b/docs/post/page/1/index.html index 2368441..2fcf768 100644 --- a/docs/post/page/1/index.html +++ b/docs/post/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/post/ - - - - - - +https://bit-orbit.github.io/post/ + \ No newline at end of file diff --git a/docs/post/page/2/index.html b/docs/post/page/2/index.html index 9c6f4b2..d91b13d 100644 --- a/docs/post/page/2/index.html +++ b/docs/post/page/2/index.html @@ -1,650 +1,40 @@ - - - - -Posts - - - - - - - - - - - - - - - -
- - - - -
-
-

- - بخش - -

- -
-
-

19 صفحه

-

Posts

- -
-
-
- -
- - - - - - - - - - - -
- - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Posts + \ No newline at end of file diff --git a/docs/post/page/3/index.html b/docs/post/page/3/index.html index 0b5418b..0c8ea82 100644 --- a/docs/post/page/3/index.html +++ b/docs/post/page/3/index.html @@ -1,653 +1,40 @@ - - - - -Posts - - - - - - - - - - - - - - - -
- - - - -
-
-

- - بخش - -

- -
-
-

19 صفحه

-

Posts

- -
-
-
- -
- - - - - - - - - - - -
- - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Posts + \ No newline at end of file diff --git a/docs/post/page/4/index.html b/docs/post/page/4/index.html index 26711d3..0b01d95 100644 --- a/docs/post/page/4/index.html +++ b/docs/post/page/4/index.html @@ -1,636 +1,40 @@ - - - - -Posts - - - - - - - - - - - - - - - -
- - - - -
-
-

- - بخش - -

- -
-
-

19 صفحه

-

Posts

- -
-
-
- -
- - - - - - - - - -
- - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Posts + \ No newline at end of file diff --git a/docs/post/page/5/index.html b/docs/post/page/5/index.html new file mode 100644 index 0000000..5c21247 --- /dev/null +++ b/docs/post/page/5/index.html @@ -0,0 +1,609 @@ + + + + +Posts + + + + + + + + + + + + + + + +
+ + + + +
+
+

+ + بخش + +

+ +
+
+

22 صفحه

+

Posts

+ +
+
+
+ +
+ + + + + +
+ + +
+ + +
+ قدرت گرفته از Hugo
+ قالب Stack ساخته شده توسط Jimmy +
+
+ + +
+
+ + + + + diff --git a/docs/rust-lang/index.html b/docs/rust-lang/index.html index a51ab79..645ed52 100644 --- a/docs/rust-lang/index.html +++ b/docs/rust-lang/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/rust/ - - - - - - +https://bit-orbit.github.io/rust/ + \ No newline at end of file diff --git a/docs/rust/index.html b/docs/rust/index.html index c2c284a..1cfb8b3 100644 --- a/docs/rust/index.html +++ b/docs/rust/index.html @@ -1,687 +1,37 @@ - - - - -Rust - - - - - - - - - - - - - - - - -
- - - -
-
-
-
- - - Featured image of post Rust - - -
- - -
- - - - -
-

- Rust -

- - -

- آرشیو آموزش های زبان rust -

- -
- - - - - -
- -
- - - - - - - - - - -
- - - -
- - - - - - - - - -
- -
- - - -
- -
- -
- - -

من مدتی هست که دارم زبان +Rust +

Featured image of post Rust

Rust

آرشیو آموزش های زبان rust

+
+

من مدتی هست که دارم زبان rust رو یاد می‌گیرم، توی این تایمی که خودم یادش می‌گیرم، یک خلاصه‌ای هم از آموزش هایی که می‌بینم رو اینجا در پست های مجزا می‌نویسم. اینطوری هم برای خودم نوت دارم و هم -شما :)

-

هر پست آموزش +شما :)

هر پست آموزش rust که می‌نویسم رو اینجا لیست می‌کنم که -به راحتی در دسترس باشند.

-
-

بعنوان نکته بگم که توی این مجموعه از پست ها، قرار نیست +به راحتی در دسترس باشند.

بعنوان نکته بگم که توی این مجموعه از پست ها، قرار نیست برنامه نویسی را از صفر یاد بگیریم، صرفا سینتکس زبان rust -را یاد می‌گیریم.

-
-
- - -
- - - - - - -
- - - - - - - - - - -
-
- - -comments powered by Disqus -
- - - - - - - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - - - - -
-
- - - - - +را یاد می‌گیریم.


comments powered by Disqus
قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git a/docs/scss/style.min.663803bebe609202d5b39d848f2d7c2dc8b598a2d879efa079fa88893d29c49c.css b/docs/scss/style.min.663803bebe609202d5b39d848f2d7c2dc8b598a2d879efa079fa88893d29c49c.css new file mode 100644 index 0000000..9b90269 --- /dev/null +++ b/docs/scss/style.min.663803bebe609202d5b39d848f2d7c2dc8b598a2d879efa079fa88893d29c49c.css @@ -0,0 +1,10 @@ +/*!* Hugo Theme Stack +* +* @author: Jimmy Cai +* @website: https://jimmycai.com +* @link: https://github.com/CaiJimmy/hugo-theme-stack*/:root{--main-top-padding:35px;--body-background:#f5f5fa;--accent-color:#34495e;--accent-color-darker:#2c3e50;--accent-color-text:#fff;--body-text-color:#707070;--tag-border-radius:4px;--section-separation:40px;--scrollbar-thumb:hsl(0, 0%, 85%);--scrollbar-track:var(--body-background)}@media(min-width:1280px){:root{--main-top-padding:50px}}:root[data-scheme=dark]{--body-background:#303030;--accent-color:#ecf0f1;--accent-color-darker:#bdc3c7;--accent-color-text:#000;--body-text-color:rgba(255, 255, 255, 0.7);--scrollbar-thumb:hsl(0, 0%, 40%);--scrollbar-track:var(--body-background)}:root{--sys-font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", "Droid Sans", "Helvetica Neue";--zh-font-family:"PingFang SC", "Hiragino Sans GB", "Droid Sans Fallback", "Microsoft YaHei";--base-font-family:"Lato", var(--sys-font-family), var(--zh-font-family), sans-serif;--code-font-family:Menlo, Monaco, Consolas, "Courier New", var(--zh-font-family), monospace}:root{--card-background:#fff;--card-background-selected:#eaeaea;--card-text-color-main:#000;--card-text-color-secondary:#747474;--card-text-color-tertiary:#767676;--card-separator-color:rgba(218, 218, 218, 0.5);--card-border-radius:10px;--card-padding:20px;--small-card-padding:25px 20px}@media(min-width:768px){:root{--card-padding:25px}}@media(min-width:1280px){:root{--card-padding:30px}}@media(min-width:768px){:root{--small-card-padding:25px}}:root[data-scheme=dark]{--card-background:#424242;--card-background-selected:rgba(255, 255, 255, 0.16);--card-text-color-main:rgba(255, 255, 255, 0.9);--card-text-color-secondary:rgba(255, 255, 255, 0.7);--card-text-color-tertiary:rgba(255, 255, 255, 0.5);--card-separator-color:rgba(255, 255, 255, 0.12)}:root{--article-font-family:var(--base-font-family);--article-font-size:1.6rem;--article-line-height:1.85}@media(min-width:768px){:root{--article-font-size:1.7rem}}:root{--blockquote-border-size:4px;--blockquote-background-color:rgb(248 248 248);--heading-border-size:4px;--link-background-color:189, 195, 199;--link-background-opacity:0.5;--link-background-opacity-hover:0.7;--pre-background-color:#272822;--pre-text-color:#f8f8f2;--code-background-color:rgba(0, 0, 0, 0.12);--code-text-color:#808080;--table-border-color:#dadada;--tr-even-background-color:#efefee;--kbd-border-color:#dadada}:root[data-scheme=dark]{--code-background-color:#272822;--code-text-color:rgba(255, 255, 255, 0.9);--table-border-color:#717171;--tr-even-background-color:#545454;--blockquote-background-color:rgb(75 75 75)}:root{--shadow-l1:0px 4px 8px rgba(0, 0, 0, 0.04), 0px 0px 2px rgba(0, 0, 0, 0.06), 0px 0px 1px rgba(0, 0, 0, 0.04);--shadow-l2:0px 10px 20px rgba(0, 0, 0, 0.04), 0px 2px 6px rgba(0, 0, 0, 0.04), 0px 0px 1px rgba(0, 0, 0, 0.04);--shadow-l3:0px 10px 20px rgba(0, 0, 0, 0.04), 0px 2px 6px rgba(0, 0, 0, 0.04), 0px 0px 1px rgba(0, 0, 0, 0.04);--shadow-l4:0px 24px 32px rgba(0, 0, 0, 0.04), 0px 16px 24px rgba(0, 0, 0, 0.04), 0px 4px 8px rgba(0, 0, 0, 0.04), + 0px 0px 1px rgba(0, 0, 0, 0.04)}[data-scheme=light]{--pre-text-color:#272822;--pre-background-color:#fafafa}[data-scheme=light] .chroma{color:#272822;background-color:#fafafa}[data-scheme=light] .chroma .err{color:#960050}[data-scheme=light] .chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}[data-scheme=light] .chroma .lntable{border-spacing:0;padding:0;margin:0;border:0;width:100%;display:block}[data-scheme=light] .chroma .lntable>tbody{display:block;width:100%}[data-scheme=light] .chroma .lntable>tbody>tr{display:flex;width:100%}[data-scheme=light] .chroma .lntable>tbody>tr>td:last-child{overflow-x:auto}[data-scheme=light] .chroma .hl{display:block;width:100%;background-color:#ffc}[data-scheme=light] .chroma .lnt{margin-right:.4em;padding:0 .4em;color:#7f7f7f;display:block}[data-scheme=light] .chroma .ln{margin-right:.4em;padding:0 .4em;color:#7f7f7f}[data-scheme=light] .chroma .k{color:#00a8c8}[data-scheme=light] .chroma .kc{color:#00a8c8}[data-scheme=light] .chroma .kd{color:#00a8c8}[data-scheme=light] .chroma .kn{color:#f92672}[data-scheme=light] .chroma .kp{color:#00a8c8}[data-scheme=light] .chroma .kr{color:#00a8c8}[data-scheme=light] .chroma .kt{color:#00a8c8}[data-scheme=light] .chroma .n{color:#111}[data-scheme=light] .chroma .na{color:#75af00}[data-scheme=light] .chroma .nb{color:#111}[data-scheme=light] .chroma .bp{color:#111}[data-scheme=light] .chroma .nc{color:#75af00}[data-scheme=light] .chroma .no{color:#00a8c8}[data-scheme=light] .chroma .nd{color:#75af00}[data-scheme=light] .chroma .ni{color:#111}[data-scheme=light] .chroma .ne{color:#75af00}[data-scheme=light] .chroma .nf{color:#75af00}[data-scheme=light] .chroma .fm{color:#111}[data-scheme=light] .chroma .nl{color:#111}[data-scheme=light] .chroma .nn{color:#111}[data-scheme=light] .chroma .nx{color:#75af00}[data-scheme=light] .chroma .py{color:#111}[data-scheme=light] .chroma .nt{color:#f92672}[data-scheme=light] .chroma .nv{color:#111}[data-scheme=light] .chroma .vc{color:#111}[data-scheme=light] .chroma .vg{color:#111}[data-scheme=light] .chroma .vi{color:#111}[data-scheme=light] .chroma .vm{color:#111}[data-scheme=light] .chroma .l{color:#ae81ff}[data-scheme=light] .chroma .ld{color:#d88200}[data-scheme=light] .chroma .s{color:#d88200}[data-scheme=light] .chroma .sa{color:#d88200}[data-scheme=light] .chroma .sb{color:#d88200}[data-scheme=light] .chroma .sc{color:#d88200}[data-scheme=light] .chroma .dl{color:#d88200}[data-scheme=light] .chroma .sd{color:#d88200}[data-scheme=light] .chroma .s2{color:#d88200}[data-scheme=light] .chroma .se{color:#ae81ff}[data-scheme=light] .chroma .sh{color:#d88200}[data-scheme=light] .chroma .si{color:#d88200}[data-scheme=light] .chroma .sx{color:#d88200}[data-scheme=light] .chroma .sr{color:#d88200}[data-scheme=light] .chroma .s1{color:#d88200}[data-scheme=light] .chroma .ss{color:#d88200}[data-scheme=light] .chroma .m{color:#ae81ff}[data-scheme=light] .chroma .mb{color:#ae81ff}[data-scheme=light] .chroma .mf{color:#ae81ff}[data-scheme=light] .chroma .mh{color:#ae81ff}[data-scheme=light] .chroma .mi{color:#ae81ff}[data-scheme=light] .chroma .il{color:#ae81ff}[data-scheme=light] .chroma .mo{color:#ae81ff}[data-scheme=light] .chroma .o{color:#f92672}[data-scheme=light] .chroma .ow{color:#f92672}[data-scheme=light] .chroma .p{color:#111}[data-scheme=light] .chroma .c{color:#75715e}[data-scheme=light] .chroma .ch{color:#75715e}[data-scheme=light] .chroma .cm{color:#75715e}[data-scheme=light] .chroma .c1{color:#75715e}[data-scheme=light] .chroma .cs{color:#75715e}[data-scheme=light] .chroma .cp{color:#75715e}[data-scheme=light] .chroma .cpf{color:#75715e}[data-scheme=light] .chroma .gd{color:#f92672}[data-scheme=light] .chroma .ge{font-style:italic}[data-scheme=light] .chroma .gi{color:#75af00}[data-scheme=light] .chroma .gs{font-weight:700}[data-scheme=light] .chroma .gu{color:#75715e}[data-scheme=dark]{--pre-text-color:#f8f8f2;--pre-background-color:#272822}[data-scheme=dark] .chroma{color:#f8f8f2;background-color:#272822}[data-scheme=dark] .chroma .err{color:#bb0064}[data-scheme=dark] .chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}[data-scheme=dark] .chroma .lntable{border-spacing:0;padding:0;margin:0;border:0;width:100%;display:block}[data-scheme=dark] .chroma .lntable>tbody{display:block;width:100%}[data-scheme=dark] .chroma .lntable>tbody>tr{display:flex;width:100%}[data-scheme=dark] .chroma .lntable>tbody>tr>td:last-child{overflow-x:auto}[data-scheme=dark] .chroma .hl{display:block;width:100%;background-color:#ffc}[data-scheme=dark] .chroma .lnt{margin-right:.4em;padding:0 .4em;color:#7f7f7f;display:block}[data-scheme=dark] .chroma .ln{margin-right:.4em;padding:0 .4em;color:#7f7f7f}[data-scheme=dark] .chroma .k{color:#66d9ef}[data-scheme=dark] .chroma .kc{color:#66d9ef}[data-scheme=dark] .chroma .kd{color:#66d9ef}[data-scheme=dark] .chroma .kn{color:#f92672}[data-scheme=dark] .chroma .kp{color:#66d9ef}[data-scheme=dark] .chroma .kr{color:#66d9ef}[data-scheme=dark] .chroma .kt{color:#66d9ef}[data-scheme=dark] .chroma .n{color:#f8f8f2}[data-scheme=dark] .chroma .na{color:#a6e22e}[data-scheme=dark] .chroma .nb{color:#f8f8f2}[data-scheme=dark] .chroma .bp{color:#f8f8f2}[data-scheme=dark] .chroma .nc{color:#a6e22e}[data-scheme=dark] .chroma .no{color:#66d9ef}[data-scheme=dark] .chroma .nd{color:#a6e22e}[data-scheme=dark] .chroma .ni{color:#f8f8f2}[data-scheme=dark] .chroma .ne{color:#a6e22e}[data-scheme=dark] .chroma .nf{color:#a6e22e}[data-scheme=dark] .chroma .fm{color:#f8f8f2}[data-scheme=dark] .chroma .nl{color:#f8f8f2}[data-scheme=dark] .chroma .nn{color:#f8f8f2}[data-scheme=dark] .chroma .nx{color:#a6e22e}[data-scheme=dark] .chroma .py{color:#f8f8f2}[data-scheme=dark] .chroma .nt{color:#f92672}[data-scheme=dark] .chroma .nv{color:#f8f8f2}[data-scheme=dark] .chroma .vc{color:#f8f8f2}[data-scheme=dark] .chroma .vg{color:#f8f8f2}[data-scheme=dark] .chroma .vi{color:#f8f8f2}[data-scheme=dark] .chroma .vm{color:#f8f8f2}[data-scheme=dark] .chroma .l{color:#ae81ff}[data-scheme=dark] .chroma .ld{color:#e6db74}[data-scheme=dark] .chroma .s{color:#e6db74}[data-scheme=dark] .chroma .sa{color:#e6db74}[data-scheme=dark] .chroma .sb{color:#e6db74}[data-scheme=dark] .chroma .sc{color:#e6db74}[data-scheme=dark] .chroma .dl{color:#e6db74}[data-scheme=dark] .chroma .sd{color:#e6db74}[data-scheme=dark] .chroma .s2{color:#e6db74}[data-scheme=dark] .chroma .se{color:#ae81ff}[data-scheme=dark] .chroma .sh{color:#e6db74}[data-scheme=dark] .chroma .si{color:#e6db74}[data-scheme=dark] .chroma .sx{color:#e6db74}[data-scheme=dark] .chroma .sr{color:#e6db74}[data-scheme=dark] .chroma .s1{color:#e6db74}[data-scheme=dark] .chroma .ss{color:#e6db74}[data-scheme=dark] .chroma .m{color:#ae81ff}[data-scheme=dark] .chroma .mb{color:#ae81ff}[data-scheme=dark] .chroma .mf{color:#ae81ff}[data-scheme=dark] .chroma .mh{color:#ae81ff}[data-scheme=dark] .chroma .mi{color:#ae81ff}[data-scheme=dark] .chroma .il{color:#ae81ff}[data-scheme=dark] .chroma .mo{color:#ae81ff}[data-scheme=dark] .chroma .o{color:#f92672}[data-scheme=dark] .chroma .ow{color:#f92672}[data-scheme=dark] .chroma .p{color:#f8f8f2}[data-scheme=dark] .chroma .c{color:#75715e}[data-scheme=dark] .chroma .ch{color:#75715e}[data-scheme=dark] .chroma .cm{color:#75715e}[data-scheme=dark] .chroma .c1{color:#75715e}[data-scheme=dark] .chroma .cs{color:#75715e}[data-scheme=dark] .chroma .cp{color:#75715e}[data-scheme=dark] .chroma .cpf{color:#75715e}[data-scheme=dark] .chroma .gd{color:#f92672}[data-scheme=dark] .chroma .ge{font-style:italic}[data-scheme=dark] .chroma .gi{color:#a6e22e}[data-scheme=dark] .chroma .gs{font-weight:700}[data-scheme=dark] .chroma .gu{color:#75715e}:root{--menu-icon-separation:40px;--container-padding:15px;--widget-separation:var(--section-separation)}.container{margin-left:auto;margin-right:auto}.container .left-sidebar{order:-3;max-width:var(--left-sidebar-max-width)}.container .right-sidebar{order:-1;max-width:var(--right-sidebar-max-width)}@media(min-width:1024px){.container .right-sidebar{display:flex}}@media(min-width:768px){.container.extended{max-width:1024px;--left-sidebar-max-width:25%;--right-sidebar-max-width:30%}}@media(min-width:1024px){.container.extended{max-width:1280px;--left-sidebar-max-width:20%;--right-sidebar-max-width:30%}}@media(min-width:1280px){.container.extended{max-width:1536px;--left-sidebar-max-width:15%;--right-sidebar-max-width:25%}}@media(min-width:768px){.container.compact{--left-sidebar-max-width:25%;max-width:768px}}@media(min-width:1024px){.container.compact{max-width:1024px;--left-sidebar-max-width:20%}}@media(min-width:1280px){.container.compact{max-width:1280px}}.flex{display:flex;flex-direction:row}.flex.column{flex-direction:column}.flex.on-phone--column{flex-direction:column}@media(min-width:768px){.flex.on-phone--column{flex-direction:unset}}.flex .full-width{width:100%}main.main{order:-2;min-width:0;max-width:100%;flex-grow:1;display:flex;flex-direction:column;gap:var(--section-separation)}@media(min-width:768px){main.main{padding-top:var(--main-top-padding)}}.main-container{min-height:100vh;align-items:flex-start;padding:0 15px;gap:var(--section-separation);padding-top:var(--main-top-padding)}@media(min-width:768px){.main-container{padding:0 20px}}/*!normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css*/html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}/*!* Hamburgers +* @description Tasty CSS-animated hamburgers +* @author Jonathan Suh @jonsuh +* @site https://jonsuh.com/hamburgers +* @link https://github.com/jonsuh/hamburgers*/.hamburger{padding-top:10px;display:inline-block;cursor:pointer;transition-property:opacity,filter;transition-duration:.15s;transition-timing-function:linear;font:inherit;color:inherit;text-transform:none;background-color:transparent;border:0;margin:0;overflow:visible}.hamburger:hover{opacity:.7}.hamburger.is-active:hover{opacity:.7}.hamburger.is-active .hamburger-inner,.hamburger.is-active .hamburger-inner::before,.hamburger.is-active .hamburger-inner::after{background-color:#000}.hamburger-box{width:30px;height:24px;display:inline-block;position:relative}.hamburger-inner{display:block;top:50%;margin-top:-2px}.hamburger-inner,.hamburger-inner::before,.hamburger-inner::after{width:30px;height:2px;background-color:var(--card-text-color-main);border-radius:4px;position:absolute;transition-property:transform;transition-duration:.15s;transition-timing-function:ease}.hamburger-inner::before,.hamburger-inner::after{content:"";display:block}.hamburger-inner::before{top:-10px}.hamburger-inner::after{bottom:-10px}.hamburger--spin .hamburger-inner{transition-duration:.22s;transition-timing-function:cubic-bezier(.55,.055,.675,.19)}.hamburger--spin .hamburger-inner::before{transition:top .1s .25s ease-in,opacity .1s ease-in}.hamburger--spin .hamburger-inner::after{transition:bottom .1s .25s ease-in,transform .22s cubic-bezier(.55,.055,.675,.19)}.hamburger--spin.is-active .hamburger-inner{transform:rotate(225deg);transition-delay:.12s;transition-timing-function:cubic-bezier(.215,.61,.355,1)}.hamburger--spin.is-active .hamburger-inner::before{top:0;opacity:0;transition:top .1s ease-out,opacity .1s .12s ease-out}.hamburger--spin.is-active .hamburger-inner::after{bottom:0;transform:rotate(-90deg);transition:bottom .1s ease-out,transform .22s .12s cubic-bezier(.215,.61,.355,1)}#toggle-menu{background:0 0;border:none;position:absolute;right:0;top:0;z-index:2;cursor:pointer;outline:none}[dir=rtl] #toggle-menu{left:0;right:auto}@media(min-width:768px){#toggle-menu{display:none}}#toggle-menu.is-active .hamburger-inner,#toggle-menu.is-active .hamburger-inner::before,#toggle-menu.is-active .hamburger-inner::after{background-color:var(--accent-color)}#main-menu{list-style:none;overflow-y:auto;flex-grow:1;font-size:1.4rem;background-color:var(--card-background);box-shadow:var(--shadow-l1);display:none;margin:0 calc(var(--container-padding) * -1);padding:30px}@media(min-width:1280px){#main-menu{padding:15px 0}}#main-menu,#main-menu .menu-bottom-section ol{flex-direction:column;gap:30px}@media(min-width:1280px){#main-menu,#main-menu .menu-bottom-section ol{gap:25px}}#main-menu.show{display:flex}@media(min-width:768px){#main-menu{align-items:flex-end;display:flex;background-color:transparent;padding:0;box-shadow:none;margin:0}}#main-menu li{position:relative;vertical-align:middle;padding:0}@media(min-width:768px){#main-menu li{width:100%}}#main-menu li svg{stroke:currentColor;stroke-width:1.33;width:20px;height:20px}#main-menu li a{height:100%;display:inline-flex;align-items:center;color:var(--body-text-color);gap:var(--menu-icon-separation)}#main-menu li span{flex:1}#main-menu li.current a{color:var(--accent-color);font-weight:700}#main-menu li.menu-bottom-section{margin-top:auto}#main-menu li.menu-bottom-section ol{display:flex;padding-left:0}.menu-social{list-style:none;padding:0;margin:0;display:flex;flex-direction:row;gap:10px}.menu-social svg{width:24px;height:24px;stroke:var(--body-text-color);stroke-width:1.33}.article-list{display:flex;flex-direction:column;gap:var(--section-separation)}.article-list article{display:flex;flex-direction:column;background-color:var(--card-background);box-shadow:var(--shadow-l1);border-radius:var(--card-border-radius);overflow:hidden;transition:box-shadow .3s ease}.article-list article:hover{box-shadow:var(--shadow-l2)}.article-list article .article-image img{width:100%;height:150px;object-fit:cover}@media(min-width:768px){.article-list article .article-image img{height:200px}}@media(min-width:1280px){.article-list article .article-image img{height:250px}}.article-list article:nth-child(5n+1) .article-category a{background:#8ea885;color:#fff}.article-list article:nth-child(5n+2) .article-category a{background:#df7988;color:#fff}.article-list article:nth-child(5n+3) .article-category a{background:#0177b8;color:#fff}.article-list article:nth-child(5n+4) .article-category a{background:#ffb900;color:#fff}.article-list article:nth-child(5n+5) .article-category a{background:#6b69d6;color:#fff}.article-details{display:flex;flex-direction:column;justify-content:center;padding:var(--card-padding);gap:15px}.article-title{font-family:var(--article-font-family);font-weight:600;margin:0;color:var(--card-text-color-main);font-size:2.2rem}@media(min-width:1280px){.article-title{font-size:2.4rem}}.article-title a{color:var(--card-text-color-main)}.article-title a:hover{color:var(--card-text-color-main)}.article-subtitle{font-weight:400;color:var(--card-text-color-secondary);line-height:1.5;margin:0;font-size:1.75rem}@media(min-width:1280px){.article-subtitle{font-size:2rem}}.article-title-wrapper{display:flex;flex-direction:column;gap:8px}.article-time,.article-translations{display:flex;color:var(--card-text-color-tertiary);gap:15px}.article-time svg,.article-translations svg{vertical-align:middle;width:20px;height:20px;stroke-width:1.33;flex-shrink:0}.article-time time,.article-time a,.article-translations time,.article-translations a{font-size:1.4rem;color:var(--card-text-color-tertiary)}.article-time>div,.article-translations>div{display:inline-flex;align-items:center;gap:15px}.article-time{flex-wrap:wrap}.article-translations>div{flex-wrap:wrap}.article-category,.article-tags{display:flex;gap:10px;flex-wrap:wrap}.article-category a,.article-tags a{color:var(--accent-color-text);background-color:var(--accent-color);padding:8px 16px;border-radius:var(--tag-border-radius);display:inline-block;font-size:1.4rem;transition:background-color .5s ease}.article-category a:hover,.article-tags a:hover{color:var(--accent-color-text);background-color:var(--accent-color-darker)}.article-list--compact{border-radius:var(--card-border-radius);box-shadow:var(--shadow-l1);background-color:var(--card-background);--image-size:50px}@media(min-width:768px){.article-list--compact{--image-size:60px}}.article-list--compact article>a{display:flex;align-items:center;padding:var(--small-card-padding);gap:15px}.article-list--compact article:not(:last-of-type){border-bottom:1.5px solid var(--card-separator-color)}.article-list--compact article .article-details{flex-grow:1;padding:0;min-height:var(--image-size);gap:10px}.article-list--compact article .article-title{margin:0;font-size:1.6rem}@media(min-width:768px){.article-list--compact article .article-title{font-size:1.8rem}}.article-list--compact article .article-image img{width:var(--image-size);height:var(--image-size);object-fit:cover}.article-list--compact article .article-time{font-size:1.4rem}.article-list--compact article .article-preview{font-size:1.4rem;color:var(--card-text-color-tertiary);margin-top:10px;line-height:1.5}.article-list--tile article{border-radius:var(--card-border-radius);overflow:hidden;position:relative;height:350px;width:250px;box-shadow:var(--shadow-l1);transition:box-shadow .3s ease;background-color:var(--card-background)}.article-list--tile article:hover{box-shadow:var(--shadow-l2)}.article-list--tile article.has-image .article-details{background-color:rgba(0,0,0,.25)}.article-list--tile article.has-image .article-title{color:#fff}.article-list--tile article .article-image{position:absolute;top:0;left:0;width:100%;height:100%}.article-list--tile article .article-image img{width:100%;height:100%;object-fit:cover}.article-list--tile article .article-details{border-radius:var(--card-border-radius);position:relative;height:100%;width:100%;display:flex;flex-direction:column;justify-content:flex-end;z-index:2;padding:15px}@media(min-width:640px){.article-list--tile article .article-details{padding:20px}}.article-list--tile article .article-title{font-size:2rem;font-weight:500;color:var(--card-text-color-main)}@media(min-width:640px){.article-list--tile article .article-title{font-size:2.2rem}}.widget{display:flex;flex-direction:column}.widget .widget-icon svg{width:32px;height:32px;stroke-width:1.6;color:var(--body-text-color)}.tagCloud .tagCloud-tags{display:flex;flex-wrap:wrap;gap:10px}.tagCloud .tagCloud-tags a{background:var(--card-background);box-shadow:var(--shadow-l1);border-radius:var(--tag-border-radius);padding:8px 20px;color:var(--card-text-color-main);font-size:1.4rem;transition:box-shadow .3s ease}.tagCloud .tagCloud-tags a:hover{box-shadow:var(--shadow-l2)}.widget.archives .widget-archive--list{border-radius:var(--card-border-radius);box-shadow:var(--shadow-l1);background-color:var(--card-background)}.widget.archives .archives-year:not(:last-of-type){border-bottom:1.5px solid var(--card-separator-color)}.widget.archives .archives-year a{font-size:1.4rem;padding:18px 25px;display:flex}.widget.archives .archives-year a span.year{flex:1;color:var(--card-text-color-main);font-weight:700}.widget.archives .archives-year a span.count{color:var(--card-text-color-tertiary)}footer.site-footer{padding:20px 0 var(--section-separation);font-size:1.4rem;line-height:1.75}footer.site-footer:before{content:"";display:block;height:3px;width:50px;background:var(--body-text-color);margin-bottom:20px}footer.site-footer .copyright{color:var(--accent-color);font-weight:700;margin-bottom:5px}footer.site-footer .powerby{color:var(--body-text-color);font-weight:400;font-size:1.2rem}footer.site-footer .powerby a{color:var(--body-text-color)}.pagination{display:flex;background-color:var(--card-background);box-shadow:var(--shadow-l1);border-radius:var(--card-border-radius);overflow:hidden;flex-wrap:wrap}.pagination .page-link{padding:16px 32px;display:inline-flex;color:var(--card-text-color-secondary)}.pagination .page-link.current{font-weight:700;background-color:var(--card-background-selected);color:var(--card-text-color-main)}@media(min-width:768px){.sidebar.sticky{position:sticky}}.left-sidebar{display:flex;flex-direction:column;flex-shrink:0;align-self:stretch;gap:var(--sidebar-element-separation);max-width:none;width:100%;position:relative;--sidebar-avatar-size:100px;--sidebar-element-separation:20px;--emoji-size:40px;--emoji-font-size:20px}@media(min-width:768px){.left-sidebar{width:auto;padding-top:var(--main-top-padding);padding-bottom:var(--main-top-padding);max-height:100vh}}@media(min-width:1536px){.left-sidebar{--sidebar-avatar-size:120px;--sidebar-element-separation:25px;--emoji-size:40px}}.left-sidebar.sticky{top:0}.left-sidebar.compact{--sidebar-avatar-size:80px;--emoji-size:30px;--emoji-font-size:15px}@media(min-width:1024px){.left-sidebar.compact header{flex-direction:row}}.left-sidebar.compact header .site-meta{gap:5px}.left-sidebar.compact header .site-name{font-size:1.4rem}@media(min-width:1536px){.left-sidebar.compact header .site-name{font-size:1.75rem}}.left-sidebar.compact header .site-description{font-size:1.4rem}.right-sidebar{width:100%;display:none;flex-direction:column;gap:var(--widget-separation)}.right-sidebar.sticky{top:0}@media(min-width:1024px){.right-sidebar{padding-top:var(--main-top-padding);padding-bottom:var(--main-top-padding)}}.sidebar header{z-index:1;transition:box-shadow .5s ease;display:flex;flex-direction:column;gap:var(--sidebar-element-separation)}@media(min-width:768px){.sidebar header{padding:0}}.sidebar header .site-avatar{position:relative;margin:0;width:var(--sidebar-avatar-size);height:var(--sidebar-avatar-size);flex-shrink:0}.sidebar header .site-avatar .site-logo{width:100%;height:100%;border-radius:100%;box-shadow:var(--shadow-l1)}.sidebar header .site-avatar .emoji{position:absolute;width:var(--emoji-size);height:var(--emoji-size);line-height:var(--emoji-size);border-radius:100%;bottom:0;right:0;text-align:center;font-size:var(--emoji-font-size);background-color:var(--card-background);box-shadow:var(--shadow-l2)}.sidebar header .site-meta{display:flex;flex-direction:column;gap:10px;justify-content:center}.sidebar header .site-name{color:var(--accent-color);margin:0;font-size:1.6rem}@media(min-width:1536px){.sidebar header .site-name{font-size:1.8rem}}.sidebar header .site-description{color:var(--body-text-color);font-weight:400;margin:0;font-size:1.4rem}@media(min-width:1536px){.sidebar header .site-description{font-size:1.6rem}}[data-scheme=dark] #dark-mode-toggle{color:var(--accent-color);font-weight:700}[data-scheme=dark] #dark-mode-toggle .icon-tabler-toggle-left{display:none}[data-scheme=dark] #dark-mode-toggle .icon-tabler-toggle-right{display:unset}#dark-mode-toggle{margin-top:auto;color:var(--body-text-color);display:flex;align-items:center;cursor:pointer;gap:var(--menu-icon-separation)}#dark-mode-toggle .icon-tabler-toggle-right{display:none}#i18n-switch{color:var(--body-text-color);display:inline-flex;align-content:center;gap:var(--menu-icon-separation)}#i18n-switch select{border:0;background-color:transparent;color:var(--body-text-color)}#i18n-switch select option{color:var(--card-text-color-main);background-color:var(--card-background)}html{font-size:62.5%;overflow-y:scroll}*{box-sizing:border-box}body{background:var(--body-background);margin:0;font-family:var(--base-font-family);font-size:1.6rem;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{scrollbar-width:auto;scrollbar-color:var(--scrollbar-thumb)transparent}::-webkit-scrollbar{height:auto}::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb)}::-webkit-scrollbar-track{background-color:transparent}.article-page.hide-sidebar-sm .left-sidebar{display:none}@media(min-width:768px){.article-page.hide-sidebar-sm .left-sidebar{display:inherit}}.article-page .main-article{background:var(--card-background);border-radius:var(--card-border-radius);box-shadow:var(--shadow-l1);overflow:hidden}.article-page .main-article .article-header .article-image img{height:auto;width:100%;max-height:50vh;object-fit:cover}.article-page .main-article .article-header .article-details{padding:var(--card-padding);padding-bottom:0}.article-page .main-article .article-content{margin:var(--card-padding)0;color:var(--card-text-color-main)}.article-page .main-article .article-content .footnotes{font-family:var(--base-font-family)}.article-page .main-article .article-content img{max-width:100%;height:auto}.article-page .main-article .article-footer{margin:var(--card-padding);margin-top:0}.article-page .main-article .article-footer section:not(:first-child){margin-top:var(--card-padding)}.article-page .main-article .article-footer section{color:var(--card-text-color-tertiary);text-transform:uppercase;display:flex;align-items:center;font-size:1.4rem;gap:15px}.article-page .main-article .article-footer section svg{width:20px;height:20px;stroke-width:1.33}.article-page .main-article .article-footer .article-tags{text-transform:unset}.article-page .main-article .article-footer .article-copyright a,.article-page .main-article .article-footer .article-lastmod a{color:var(--body-text-color)}.article-page .main-article .article-footer .article-copyright a.link,.article-page .main-article .article-footer .article-lastmod a.link{box-shadow:unset}.widget--toc{background-color:var(--card-background);border-radius:var(--card-border-radius);box-shadow:var(--shadow-l1);display:flex;flex-direction:column;color:var(--card-text-color-main);overflow:hidden}.widget--toc ::-webkit-scrollbar-thumb{background-color:var(--card-separator-color)}.widget--toc #TableOfContents{overflow-x:auto;max-height:75vh}.widget--toc #TableOfContents ol,.widget--toc #TableOfContents ul{margin:0;padding:0}.widget--toc #TableOfContents ol{list-style-type:none;counter-reset:item}.widget--toc #TableOfContents ol li a:first-of-type::before{counter-increment:item;content:counters(item,".")". ";font-weight:700;margin-right:5px}.widget--toc #TableOfContents>ul{padding:0 1em}.widget--toc #TableOfContents li{margin:15px 0 15px 20px;padding:5px}.widget--toc #TableOfContents li>ol,.widget--toc #TableOfContents li>ul{margin-top:10px;padding-left:10px;margin-bottom:-5px}.widget--toc #TableOfContents li>ol>li:last-child,.widget--toc #TableOfContents li>ul>li:last-child{margin-bottom:0}.widget--toc #TableOfContents li.active-class>a{border-left:var(--heading-border-size)solid var(--accent-color);font-weight:700}.widget--toc #TableOfContents ul li.active-class>a{display:block}.widget--toc #TableOfContents>ul>li.active-class>a{margin-left:calc(-25px - 1em);padding-left:calc(25px + 1em - var(--heading-border-size))}.widget--toc #TableOfContents>ol>li.active-class>a{margin-left:calc(-9px - 1em);padding-left:calc(9px + 1em - var(--heading-border-size));display:block}.widget--toc #TableOfContents>ul>li>ul>li.active-class>a{margin-left:calc(-60px - 1em);padding-left:calc(60px + 1em - var(--heading-border-size))}.widget--toc #TableOfContents>ol>li>ol>li.active-class>a{margin-left:calc(-44px - 1em);padding-left:calc(44px + 1em - var(--heading-border-size));display:block}.widget--toc #TableOfContents>ul>li>ul>li>ul>li.active-class>a{margin-left:calc(-95px - 1em);padding-left:calc(95px + 1em - var(--heading-border-size))}.widget--toc #TableOfContents>ol>li>ol>li>ol>li.active-class>a{margin-left:calc(-79px - 1em);padding-left:calc(79px + 1em - var(--heading-border-size));display:block}.widget--toc #TableOfContents>ul>li>ul>li>ul>li>ul>li.active-class>a{margin-left:calc(-130px - 1em);padding-left:calc(130px + 1em - var(--heading-border-size))}.widget--toc #TableOfContents>ol>li>ol>li>ol>li>ol>li.active-class>a{margin-left:calc(-114px - 1em);padding-left:calc(114px + 1em - var(--heading-border-size));display:block}.widget--toc #TableOfContents>ul>li>ul>li>ul>li>ul>li>ul>li.active-class>a{margin-left:calc(-165px - 1em);padding-left:calc(165px + 1em - var(--heading-border-size))}.widget--toc #TableOfContents>ol>li>ol>li>ol>li>ol>li>ol>li.active-class>a{margin-left:calc(-149px - 1em);padding-left:calc(149px + 1em - var(--heading-border-size));display:block}.related-content{overflow-x:auto;padding-bottom:15px}.related-content>.flex{float:left}.related-content article{margin-right:15px;flex-shrink:0;overflow:hidden;width:250px;height:150px}.related-content article .article-title{font-size:1.8rem;margin:0}.related-content article.has-image .article-details{padding:20px;background:linear-gradient(0deg,rgba(0,0,0,.25) 0%,rgba(0,0,0,.75) 100%)}.article-content{font-family:var(--article-font-family);font-size:var(--article-font-size);padding:0 var(--card-padding);line-height:var(--article-line-height)}.article-content>p{margin:1.5em 0}.article-content h1,.article-content h2,.article-content h3,.article-content h4,.article-content h5,.article-content h6{margin-inline-start:calc((var(--card-padding)) * -1);padding-inline-start:calc(var(--card-padding) - var(--heading-border-size));border-inline-start:var(--heading-border-size)solid var(--accent-color);position:relative}.article-content h1 a.header-anchor,.article-content h2 a.header-anchor,.article-content h3 a.header-anchor,.article-content h4 a.header-anchor,.article-content h5 a.header-anchor,.article-content h6 a.header-anchor{transition:opacity .3s ease;opacity:0;position:absolute;left:0;width:var(--card-padding);text-align:center;color:var(--accent-color)}.article-content h1 a.header-anchor:before,.article-content h2 a.header-anchor:before,.article-content h3 a.header-anchor:before,.article-content h4 a.header-anchor:before,.article-content h5 a.header-anchor:before,.article-content h6 a.header-anchor:before{content:"#"}.article-content h1:hover a.header-anchor,.article-content h1:focus a.header-anchor,.article-content h2:hover a.header-anchor,.article-content h2:focus a.header-anchor,.article-content h3:hover a.header-anchor,.article-content h3:focus a.header-anchor,.article-content h4:hover a.header-anchor,.article-content h4:focus a.header-anchor,.article-content h5:hover a.header-anchor,.article-content h5:focus a.header-anchor,.article-content h6:hover a.header-anchor,.article-content h6:focus a.header-anchor{opacity:1}.article-content figure{text-align:center}.article-content figure figcaption{font-size:1.4rem;color:var(--card-text-color-secondary)}.article-content blockquote{position:relative;margin:1.5em 0;border-inline-start:var(--blockquote-border-size)solid var(--card-separator-color);padding:15px calc(var(--card-padding) - var(--blockquote-border-size));background-color:var(--blockquote-background-color)}.article-content blockquote .cite{display:block;text-align:right;font-size:.75em}.article-content blockquote .cite a{text-decoration:underline}.article-content hr{width:100px;margin:40px auto;background:var(--card-text-color-tertiary);height:2px;border:0;opacity:.55}.article-content code{color:var(--code-text-color);background-color:var(--code-background-color);padding:2px 4px;border-radius:var(--tag-border-radius);font-family:var(--code-font-family)}.article-content a,.article-content code{word-break:break-word}.article-content .gallery{position:relative;display:flex;flex-direction:row;justify-content:center;margin:1.5em 0;gap:10px}.article-content .gallery figure{margin:0}.article-content pre{overflow-x:auto;display:block;background-color:var(--pre-background-color);color:var(--pre-text-color);font-family:var(--code-font-family);line-height:1.428571429;word-break:break-all;padding:var(--card-padding)}[dir=rtl] .article-content pre{direction:ltr}.article-content pre code{color:unset;border:none;background:0 0;padding:0}.article-content .highlight{background-color:var(--pre-background-color);padding:var(--card-padding);position:relative}.article-content .highlight:hover .copyCodeButton{opacity:1}[dir=rtl] .article-content .highlight{direction:ltr}.article-content .highlight pre{margin:initial;padding:0;margin:0;width:auto}.article-content .copyCodeButton{position:absolute;top:calc(var(--card-padding));right:calc(var(--card-padding));background:var(--card-background);border:none;box-shadow:var(--shadow-l2);border-radius:var(--tag-border-radius);padding:8px 16px;color:var(--card-text-color-main);cursor:pointer;font-size:14px;opacity:0;transition:opacity .3s ease}.article-content .table-wrapper{padding:0 var(--card-padding);overflow-x:auto;display:block}.article-content table{width:100%;border-collapse:collapse;border-spacing:0;margin-bottom:1.5em;font-size:.96em}.article-content th,.article-content td{text-align:left;padding:4px 8px 4px 10px;border:1px solid var(--table-border-color)}.article-content td{vertical-align:top}.article-content tr:nth-child(even){background-color:var(--tr-even-background-color)}.article-content .twitter-tweet{color:var(--card-text-color-main)}.article-content .video-wrapper{position:relative;width:100%;height:0;padding-bottom:56.25%;overflow:hidden}.article-content .video-wrapper>iframe,.article-content .video-wrapper>video{position:absolute;width:100%;height:100%;left:0;top:0;border:0}.article-content .gitlab-embed-snippets{margin:0!important}.article-content .gitlab-embed-snippets .file-holder.snippet-file-content{margin-block-end:0!important;margin-block-start:0!important;margin-left:calc((var(--card-padding)) * -1)!important;margin-right:calc((var(--card-padding)) * -1)!important;padding:0 var(--card-padding)!important}.article-content blockquote,.article-content figure,.article-content .highlight,.article-content pre,.article-content .gallery,.article-content .video-wrapper,.article-content .table-wrapper,.article-content .s_video_simple{margin-left:calc((var(--card-padding)) * -1);margin-right:calc((var(--card-padding)) * -1);width:calc(100% + var(--card-padding) * 2)}.article-content .katex-display>.katex{overflow-x:auto;overflow-y:hidden}.article-content kbd{border:1px solid var(--kbd-border-color);font-weight:700;font-size:.9em;line-height:1;padding:2px 4px;border-radius:4px;display:inline-block}.section-card{border-radius:var(--card-border-radius);background-color:var(--card-background);padding:var(--small-card-padding);box-shadow:var(--shadow-l1);display:flex;align-items:center;gap:20px;--separation:15px}.section-card .section-term{font-size:2.2rem;margin:0;color:var(--card-text-color-main)}.section-card .section-description{font-weight:400;color:var(--card-text-color-secondary);font-size:1.6rem;margin:0}.section-card .section-details{flex-grow:1;display:flex;flex-direction:column;gap:8px}.section-card .section-image img{width:60px;height:60px}.section-card .section-count{color:var(--card-text-color-tertiary);font-size:1.4rem;margin:0;font-weight:700;text-transform:uppercase}.subsection-list{overflow-x:auto}.subsection-list .article-list--tile{display:flex;padding-bottom:15px}.subsection-list .article-list--tile article{width:250px;height:150px;margin-right:20px;flex-shrink:0}.subsection-list .article-list--tile article .article-title{margin:0;font-size:1.8rem}.subsection-list .article-list--tile article .article-details{padding:20px}.not-found-card{background-color:var(--card-background);box-shadow:var(--shadow-l1);border-radius:var(--card-border-radius);padding:var(--card-padding)}.search-form{position:relative;--button-size:80px}.search-form.widget{--button-size:60px}.search-form.widget label{font-size:1.3rem;top:10px}.search-form.widget input{font-size:1.5rem;padding:30px 20px 15px}.search-form p{position:relative;margin:0}.search-form label{position:absolute;top:15px;inset-inline-start:20px;font-size:1.4rem;color:var(--card-text-color-tertiary)}.search-form input{padding:40px 20px 20px;border-radius:var(--card-border-radius);background-color:var(--card-background);box-shadow:var(--shadow-l1);color:var(--card-text-color-main);width:100%;border:0;-webkit-appearance:none;transition:box-shadow .3s ease;font-size:1.8rem}.search-form input:focus{outline:0;box-shadow:var(--shadow-l2)}.search-form button{position:absolute;inset-inline-end:0;top:0;height:100%;width:var(--button-size);cursor:pointer;background-color:transparent;border:0;padding:0 10px}.search-form button:focus{outline:0}.search-form button:focus svg{stroke-width:2;color:var(--accent-color)}.search-form button svg{color:var(--card-text-color-secondary);stroke-width:1.33;transition:all .3s ease;width:20px;height:20px}a{text-decoration:none;color:var(--accent-color)}a:hover{color:var(--accent-color-darker)}a.link{box-shadow:0 -2px rgba(var(--link-background-color),var(--link-background-opacity))inset;transition:all .3s ease}a.link:hover{box-shadow:0 calc(-1rem * var(--article-line-height))rgba(var(--link-background-color),var(--link-background-opacity-hover))inset}.section-title{text-transform:uppercase;margin-top:0;margin-bottom:10px;display:block;font-size:1.6rem;font-weight:700;color:var(--body-text-color)}.section-title a{color:var(--body-text-color)} \ No newline at end of file diff --git a/docs/search/index.html b/docs/search/index.html index c35fd30..f6c65e2 100644 --- a/docs/search/index.html +++ b/docs/search/index.html @@ -1,354 +1,15 @@ - - - - -Search - - - - - - - - - - - - - - - -
- -
-
-

- - -

- - -
- -
-

-
-
- - - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Search +

+

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git a/docs/search/index.json b/docs/search/index.json index e8d3e17..25691bd 100644 --- a/docs/search/index.json +++ b/docs/search/index.json @@ -1 +1 @@ -[{"content":" مقدمه همیشه موقع ویرایش فایل resolve.conf برام سوال بود که گزین های دیگه‌ای که توی این فایل تنظیم شده‌اند چکاری انجام می‌دهند. درواقع من همیشه دستور namveserver را برای تغییر سرور dns ویرایش می‌کردم. اما دستور هایی دیگه‌ای هم برای این فایل وجود دارد که لیست آنها در man resolve.conf توضیح داده شده است.\nتوی این پست من بعضی از دستورات این فایل را توضیح می‌دم.\nدر مرحله اول یادتون باشه لینوکس هایی که systemd دارند، معمولا از سرویس systemd-resolved هم استفاده می‌کنند، این یک سرویس DNS لوکال است. در واقع دامنمه‌ها را resolve می‌کند و سپس آنها را کش می‌کند که یک دامنه را چندین بار resolve نکند.\nیک دامنه حد اقل از دو بخش تشکیل می‌شود.\nTLD Domain 1 2 3 4 5 6 7 8 bin.example.com │ │ │ │ │ └─► TDL(Top Level Domain) │ │ │ └───────► Domain │ └─────────────► SubDomain دستورات 1 nameserver\nاین دستور برای تعیین IP یک سرور DNS استفاده می‌شود.(در واقع اینجا منظورم یک سرویسی است که به نامه دامنه ها پاسخ دهد که به آن NS می‌گویم.)\nشما می‌توانید تا حداقل سه IP لیست کنید، و resolver سیستم شما به ترتیب به آنها کوئری خواهد زد. البته زمانی که اولین NS جواب گو نباشد، از دیگر NS های لیست شده استفاده خواهد شد.\nاگر به همین ترتیب هر یک از NS ها جوابگو نباشد، کوئری ها از اول شروع می‌شود تا به حداکثر تعداد کوئری تعیین شده برسد.\nبرای مثال من می‌توانم چند NS مختلف را برای خودم تعیین کنم.\n1 2 nameserver 1.1.1.1 nameserver 8.8.8.8 2 options\nبرای این دستور متغیر های مختلفی را می‌توان تعیین کرد.\n2.1 ndots\nحداقل هر دامنه‌ای در سطح اینترنت یک نقطه دارد، برای مثال google.com یک نقطه دارد. شما می‌توانید با این متغیر تعین کنید که دامنه‌های در سطح اینترنت باید چند نقطه داشته باشند، هر نقطه نشانه ساب دامنه‌ است. برای مثال به صورت پیشفرض این متغیر 1 تنظیم شده است. به این معنی است که هر دامنه‌ای یک نقطه داشت، این دامنه در سطح اینترنت است. ولی اگر شما مقدار این متغیر را 2 تنظیم کنید، دامنه‌ای مثل google.com بعنوان دامنه لوکال تشخیص داده خواهد شد و hostname شما به اول دامنه اضافه خواهد شد. مثلا اگر hostname شما arya باشد، دامنه به این شکل کوئری زده خواهد شد google.com.arya\nدر صورتی که شما برای جست و جوی یک دامنه از هیچ TLD استفاده نکید، از hostname و یا از مقداری که برای search مشخص کرده‌اید استفاده خواهد شد.\n2.2 timeout\nاین متغیر تعیین می‌کند که resolver چه مقدار زمانی باید منتظر جواب از سمت NS باشد، و اگر آن NS جواب نداد، از NS های بعدی سوال کند. 2.3 attempts\nاین متغیر تعین می‌کند که resolver در صورت جواب ندادن توسط NS باید در نهایت چند کوئری دیگر ارسال کند. برای مثال اگر اولین NS پاسخ نداد، سوال از NS دوم و به همین ترتیب از سوم پرسیده خواهد شد، تابه حداکثر مقدار attempts برسیم.(پس attempts مجوع سوال ها از همه NS ها است.)\n2.4 rotate\nبه صورت پیشفرض کوئری های DNS همه برای اولین NS لیست شده ارسال می‌شود و خب این باعث می‌شود که بار زیادی روی اولین NS باشد، برای اینکه این بار را بین همه ‌NS ها تقسیم کنیم، کافیست از این متغیر استفاده کنیم. اینکار باعث می‌شود که هر کوئری ها به صورت چرخشی به ترتیب به NS های لیست شده ارسال شود. 3 search همانطور که در مثال بالا گفتم، ما نام دامنه ها را تنظیم می‌کنیم که حداقل وقتی یک نقطه دارند، resolver آنها را دامنه‌ در سطح اینترنت در نظر بگیرد و به NS کوئری بزند. ولی اگر هیچ نقطه‌ای نداشت و یا شما ndots را بیشتر یا مساوی با 2 نتظیم کرده باشید، hostname سیستم شما به آخر آن دامنه اضافه خواهد شد و یک دامنه داخلی (local) تلقی خواهد شد. اما اگر می‌خواهید قبل از اضافه شدن hostname به آن چیز دیگری اضافه کنید، کافیست متغیر سرچ را تعریف کنید و یک یا چند مقدار برای آن تعیین کنید. سرویس systemd-resolve اگر به فایل /etc/resolve.conf نگاه کنید، می‌بینید که یک ns برای شما تنظیم شده است که IP آن داخلی است.\n1 2 # cat /etc/resolve.conf nameserver 127.0.0.53 همانطور که توی نکته‌ای در مقدمه این پست گفتم، سیستم عاملی هایی که از systemd استفاده می‌کنند معمولا سرویس systemd-resolve را دارند که یک DNS داخلی است. این سرویس روی IP 127.0.0.53 و 127.0.0.54 شنود می‌کند.\nاین سرویس خودش یک کانفیگ در etc/ststemd/resolved.conf/ دارد.\nاگر داخل این فایل را نگاه کنیم، می‌بنیم که در قسمت ‌DNS می‌توان NS های بالاتر را وارد کرد، اینکار باعث می‌شود که سیستم شما وقتی یک دامنه را در حافظه کش خود نداشت، از NS های بالاتر که در این فایل تنظیم شده است سوال کند.\n1 2 [Resolve] DNS=1.1.1.1 8.8.8.8 ابته تاکید کنم در صورتی از این NS ها استفاده می‌شود که شما ‌از 127.0.0.53 و 127.0.0.54 در کانفیگ /etc/resolve.conf استفاده کرده باشید.\nتفاوت 127.0.0.54 این است که هر کوئری را مستقیم به NS بالاتر ارسال خواهد کرد و از دیتای کش شده استفاده نمی‌کند. ولی 127.0.0.53 از قابلیت کش استفاده می‌کند.\nمثال 1 2 3 4 5 6 7 8 9 10 nameserver 1.1.1.1 nameserver 8.8.8.8 nameserver 9.9.9.9 options ndots:1 options timeout:2 options attempts:3 options rotate search server1 server2 سخنی با شما این را بگم که DNS به صورت recursive(بازگشتی) عمل می‌کنه، این یعنی وقتی شما یک کوئری ارسال می‌کنید، این کوئری هر بار به یک سرور بالاتر ارسال می‌شود تا در نهایت به جواب برسه. و خب این موضوع خودش در نهایت یک جریان خیلی جالب داره که امیدوارم یک روز اون رو هم بنویسم :)\n","date":"2024-08-01T03:03:46+03:30","image":"https://bit-orbit.github.io/images/post/OIG4.jpeg","permalink":"https://bit-orbit.github.io/p/etc/resolve.conf/","title":"etc/resolve.conf/"},{"content":" همان‌طور که می‌دانید، کامپایلرها سورس کد ما که به یک زبان سطح بالا نوشته شده است را به یک زبان سطح پایین‌تر ترجمه می‌کنند. برای مثال، کامپایلر کدی که به زبان C نوشته شده است را به زبان اسمبلی ترجمه می‌کند. همچنین باید ذکر کنم که در زبان C، پس از ترجمه به اسمبلی، کد به زبان ماشین که می‌تواند مستقیماً روی سخت‌افزار اجرا شود، ترجمه می‌شود.\nاما ما نرم افزاری داریم که سورس کد را به یک سورس کد دیگر ترجمه می‌کند، به این نوع نرم افزار ها transpiler گفته می‌شود. برای مثال شما یک کد را به زبان پایتون نوشته‌اید را می‌توانید با برنامه مشخصی تبدیل کنید به زبان JavaScrip.\nاگر به نظرتون Bash سینتکس سختی داره، خب کافیه C بلد باشین و کدتون رو به زبان C بنویسید، و با Pnut.sh به Bash ترجمه کنید!\nالبته محدودیت هایی وجود داره\nعدد اعشار, goto, switch ساپورت نمی‌شود. همچنین نمی‌توان یک متغییر را رفرنس کرد(\u0026amp;) البته باید در نظر داشت که Bash جایگزین C نیست. و خب هر چیزی که به C نوشته شده رو نمی‌شود به Bash ترجمه کرد. با این حال اینکار برای تبدیل بعضی از کد های ساده به یک کد پرتابل می‌تواند مفید باشد\n","date":"2024-07-27T18:27:21+03:30","image":"https://bit-orbit.github.io/images/post/transpiler.jpg","permalink":"https://bit-orbit.github.io/p/transpiler-%D8%AA%D8%B1%D8%AC%D9%85%D9%87-%DA%A9%D8%AF-c-%D8%A8%D9%87-bash/","title":"Transpiler | ترجمه کد C به Bash"},{"content":"اول بیایید ببینم FileBin چیه! قبل از اون هم فکر می‌کنم همه بدونیم pastebin چیه. اگه نمی‌دونید خیلی ساده باید بگم یک سایتی که فقط روی اون متن به اشتراک می‌ذارن مثلا ممکنه ارور ها یا حتی سورس یک برنامه باشه!\nاما FileBin ها بجای تسکت فایل های شما رو نگهداری می‌کنند و به شما لینکی ارائه می‌کنند که فایل را برای دیگران اشتراک بگذارید، نمونه های زیادی هم وجود داره مثل https://wormhole.app\nاما خب از اونجایی که من زندگی‌ام رو توی ترمینال می‌گذرونم و ترمینال رو به باز کردن مرورگر برای اشتراک یک فایل ترجیح می‌دم، پس از FileBin هایی استفاده می‌کنم که بتونم تحت ترمینال به سادگی فایلم رو به اشتراک بذارم. برای مثال https://0x0.st\nوقتی این رو سایت رو باز کنید هیچ گزینه‌ای برای انتخاب فایل و آپلود نمی‌بینید! خب پس چطور باید یک فایل را برای سایت آپلود کنید؟ کافیه یک ریکوئست HTTP POST خیلی ساده به سایت بزنید که شامل فایتون باشه. این کار رو خیلی ساده می‌شه با curl انجام داد.\nمثلا بیایین اشتراک یک فایل رو ببینیم\n1 2 $ curl https://0x0.st -F file=@/path/to/file # https://0x0.st/zWKo.txt این سایت خیلی خوبه اما از زمانی به بعد دیگه این سایت کاری که من نیاز دارم رو کفاف نداد! برای مثال من نیاز دارم فایلم بعد از اولین دانلود از روی سرور حذف بشه و از این مهم تر نیاز داشتم که چندین فایل رو با یک یوزنیم مشخص اپلود کنم که خب شخصی که قرار باشه فایل ها رو دانلود کنه، کافیه از یوزنیم استفاده کنه که راحت تر قابل حفظ کردن و اشتراک گذاشتنه. اینطوری بود که گفتم FileBin خودم رو بنویسم :)\nبیایید فیچر ها و روش استفاده ازش رو با هم ببینیم.\nفرض کنید شما یک فایل دارید که می‌خواهید با من به اشتراک بگذارید، خیلی ساده ترمینال رو باز می‌کنید و با یک دستور فایل رو با یک URL تقریبا تصادفی منتشر می‌کنید.\n1 2 $ curl -L octocat.ir -F file=@/tmp/theFile.fli # octocat.ir/theFile.fli دقت کنید من از سوییچ -L استفاده می‌کنم، دلیل اینکار این هست که خب ممکنه سایت شما رو ریدایرکت کنه. مثلا از http ریدایرکت بشین به https. برای همین این سوییچ رو استفاده می‌کنم. با این سوییچ دیگه نیازی نیست https:// رو هم بنویسیم!\nحالا اگه نیاز دارین که فایلتون بعد از اولین دانلود از روی سرور حذف بشه و دیگه در دسترس نباشه کافیه از کلمه once بجای file استفاده کنید.\n1 2 $ curl -L octocat.ir -F once=@/tmp/theFile.fli # octocat.ir/theFile_GKug7xb.fli تا اینجای کار همه URL های هر فایلی به صورت تصادفی هست و من نیاز دارم که چندین فایل رو زیر یک یوزنیم مشخص مثل arya قرار بدم. اینطوری وقتی قراره یک فایل رو برای همکارم توی شرکت بفرستم خیلی ساده ازش درخواست می‌کنم در سایت به ادرس /arya بره. حالا چطوری اینکارو بکنیم خیلی ساده بجای once یا file, همون username رو می‌نویسیم(توی مثال من از نام arya استفاده می‌کنیم)\n1 2 $ curl -L octocat.ir -F arya=@/tmp/pic.jpg # octocat.ir/arya تا اینجای کار مثلا شما چند بار چند فایل مختلف رو زیر یک یوزنیم قرار دادین حالا چطور میشه همه اونها رو باهم دانلود کرد؟\n1 $ curl -L octocat.ir/arya | wget -i - حالا به این فکر کنید که یکنفر میاد و با یوزنیم های معقول ریکوئست میزنه به سایت و فایل های بقیه رو دانلود می‌کنه، اینجاست که پسورد به کار میاد. برای گذاشتن پسورد روی هر فایل کافیه توی خود URL سایت پسورد رو بعنوان http parametr بنویسد.\n1 2 $ curl -L \u0026#39;octocat.ir/?password=12345678\u0026#39; -F once=@/Desktop/TopSecret.fli # octocat.ir/file/TopSecret/?password=12345678 اینجا دقت کنید که باید از کوتیشن استفاده کنیم چون علامت مساوی و علامت سوال رو bash وایلد کارد می‌بینه.\nبرای دانلود هر فایلی هم که پسورد داره کافیه دقیقا مثل مثال قبلی عمل کنید و پسورد رو توی http parametr وارد کنید\n1 $ wget \u0026#39;octocat.ir/file/TopSecret/?password=12345678\u0026#39; براتون سواله که چرا پسورد روی توی URL گذاشتم؟ می‌شد که مثلا توی http header پسورد بگیریم و بدیم، پس چرا توی URL?\nاینکار برای این هست که دسترسی به فایل ساده باشه. مثلا من وقتی می‌خام فایلی رو برای همکارم بفرستم و خب فرض کنم همکار من از header ها چیزی نمی‌دونه، و فقط با یک کلیک باید بتونه به فایل دسترسی پیدا کنه، اینجاست که من فقط یک URL به اون می‌گم :)\nبعضی از ابزار ها hackable هستند! این به معنی ضعف امنیتی نیست، بلکه به این اشاره می‌کنه ابزار به روشی طراحی شده که کاربران می‌تونند خارج از هدف اصلی اون ابزار از اون استفاه کنند.\nبرای مثال ابزار که من درست کردم برای اشتراک فایل هست، اما بنظرتون میشه یک دایرکتوری و یا یک متن رو هم باهاش به اشتراک گذاشت؟\nقطعا! اما چطوری؟\nبرای اینکه یک دایرکتوری با تمامی ساب دایرکتوری هاش رو بفرستین کافیه از tar استفاده کنید.\n1 2 $ tar -cf - ~/Pictures | curl -L octocat.ir -F once=@- # \u0026#39;octocat.ir/file/_nUiuRPW/ با اینکار با استفاده از tar تمامی فایل ها و دایرکتوری های مثلا پوشه ~/Pictures رو به آرشیو tar تبدیل می‌کنید و بعد خروجی رو بعنوان ورودی به curl می‌فرستین.\nحالا به این فکر کنید که بخواهیم یک متن رو منتشر کنیم، راهکار دقیقا مشابه قبلیه. به این شکل که یک متن رو با استفاده از echo به ورودی استاندارد curl می‌فرستیم.\n1 2 $ echo \u0026#39;Some Random Text\u0026#39; | curl -L octocat.ir -F once=@- # octocat.ir/file/-_W00DSbS/ اینطوری خیلی راحت می‌شه خروجی هر کامندی رو روی به اشتراک گذاشت\nسایت من توی آدرس octocat.ir در دسترسه، خوشحال می‌شم ازش استفاده کنید :)\nاینو بدونید که سایت به صورت دیفالت فایل ها رو برای 24 ساعت نگه‌میداره\nاین سرویس رو منبع باز روی گیتهاب گذاشتم، اگه چیزی خواستید می‌تونید بهش اضافه کنید و یا مشکلاتش رو پچ کنید.\nو اگه می‌خواهید برای خودتون این سرویس رو بیارید بالا از ایمیج داکر استفاده کنید\n1 docker run -p 80:80 mshabane/curlpaste:latest اگه نیاز دارین تا فایل ها برای تایم بالاتری نگه‌داری بشه، متغییر HOURS داخل فایل .env رو تغییر بدین.\nایده های دیگه‌ای هم برای سایت دارم، برای مثال اینکه کاربر بتونه زمان انقضای هر فایل رو خودش مشخص کنه. مثلا به این شکل\n1 curl -L octocat.ir -F arya_1=/path/to/file اینطوری میشه یک زمان انقضا بر اساس ساعت برای هر فایل ایجاد کرد.\nو خب همچنین میشه یک کوتاه کننده لینک هم بهش اضافه کنم، و لینک های کوتاه شده رو ریدایرکت کنم.\n1 curl -L octocat.ir -F url=\u0026#39;https://example.com/some/looooong/url/\u0026#39; اگه اینها رو اضافه کنم، این پست رو اپدیت می‌کنم ولی خوشحال می‌شم شما توی این پروژه مشارکت کنید.\n","date":"2024-03-06T23:50:46+03:30","image":"https://bit-orbit.github.io/images/post/curlpaste.jpg","permalink":"https://bit-orbit.github.io/p/crul-paste/","title":"Crul Paste"},{"content":"بیایید قبل از اینکه راه حل را ببینیم، اول مشکل را دقیق تر برسی کنیم. به این فکر کنید که شما یک فایلی دارید که شامل یک عدد است که اشاره می‌کند به مقدار اعتباری که کاربر در حسابش دارد. حالا اگر قرار باشد یک پورسه اون مقدار را بر اساس ارائه سرویسی، از حساب کاربر کم کند، و پروسه دیگری به دلیل افزایش اعتبار، مقداری را به حساب کاربر اضافه کند، چه مشکلاتی اتفاق می‌افتد؟\nبرای اینکه دقیق تر بشیم، این روند رو باهم پیش می‌بریم. فرض کنید فایلی به اسم amount.txt مقدار 100 داخلش نوشته شده است. و دو پروسه کم و اضافه کردن را اجرا می‌کنیم. توی این مثال،‌ ما می‌خواهیم مقدار 20 از حساب کاربر کم و مقدار 50 به حساب کاربر اضافه کنیم، پس ما انتظار داریم در انتها فایل ما مقدار 130 را درونش ذخیره کرده باشد.\nپروسه اول فایل را می‌خواند و مقدار 100 را در حاظه‌اش نگه می‌دارد پروسه دوم فایل را می‌خواند و مقدار 100 را در حاظه‌اش نگه می‌دارد پروسه اول مقدار 20 را از 100 کم می‌کند و مقدار 80 را در حافظه ذخیره می‌کند پروسه دوم مقدار 50 را به 100 اضافه می‌کند و مقدار 150 را در حافظه ذخیره می‌کند پروسه اول مقدار 80 را در فایل ذخیره می‌کند پروسه دوم مقدار 150 را در فایل ذخیره می‌کند همینطور که همه ما انتظار داشتیم، ما باید در این فایل مقدار 130 را ذخیره می‌کردیم، اما پروسه های ما به دلیل اینکه هیچ همکاری و یا هیچ مکانیزمی دیگری ندارند که این مقدار ها را به یکدیگر اطلاع دهند، مشکل Race condition رخ می‌دهد.\nیکی از راه حل های این مشکل lock کردن فایل توسط هر پروسه است، که به این کار file locking گفته می‌شود.\nfile locking یک مکانیزم برای کنترل دسترسی چندین پروسه به یک فایل است.\nتوی لینوکس یکی از دستورات خطرناکی که داریم دستور sudo rm -rf / است. وقتی این دستور را اجرا کنیم کل فایل های لینوکس ما حذف می‌شود. دلیل اینکار این است که لینوکس به صورت پیشفرض فایل های باز شده را lock نمی‌کند.\nبا اینحال لینوکس دو مکانیزم مختلف advisory و mandatory را پشتیبانی می‌کند.\nتوی این پست بیشتر تمرکز من روی مکانیزم advisory locking(مشورتی) است.\nاین روش به این شکل عمل می‌کند که هیچ پروسه‌ای مجبور به اجرای این روش نیست و اگر حتی فایل توسط یک پروسه‌ای lock شده باشد، باز هم پروسه های دیگر می‌توانند به lock بودن فایل اهمیت ندهند و مقدار آن را تغییر دهند. این اتفاق به این دلیل می‌افتد که advisory lock توسط سیستم عامل و یا فایل سیستم انجام نمی‌شود.\nخب بیایید با یک مثال این فرایند را برسی کنیم. مثل مثال قبلی فرض کنید ما مقدار 100 را داخل فایل amount.txt داریم و می‌خواهیم مقدار 20 از آن کم و مقدار 50 به آن اضافه کنیم.\nپروسه اول قبل از خواندن فایل، فایل را لاک می‌کند پروسه دوم برای لاک کردن فایل اقدام می‌کند و از جایی که پروسه اول از پیش فایل را لاک کرده است، برای آزاد شدن لاک صبر می‌کند پروسه اول مقدار 20 را از 100 کم می‌کند و مقدار 80 را درون فایل می‌نویسد پروسه اول لاک فایل را آزاد می‌کند. پروسه دوم فایل را لاک و مقدار جدید 80 را از فایل می‌خواند پروسه دوم مقدار 50 را به 80 اضافه و مقدار 120 را درون فایل می‌نویسد پروسه دوم لاک فایل را آزاد می‌کند تا پروسه های دیگر بتوانند با فایل کار کنند. اگر شما می‌خواهید این مکانیزم را روی یک فایل اجرا کنید، دستور flock برای شما اینکار را خواهد کرد.\n1 flock [options] file|directory command [arguments] این کامند در حالت عادی از شما یک فایل و یک دستور خواهد گرفت و مکانیزم advisory lock را روی ان فایل اجرا خواهد کرد.\n1 flock /tmp/fli echo 12\u0026gt;/tmp/fli برای اینکه روند را بهتر درک کنیم یک فایل bash می‌نویسیم که بتوانیم مثال اولیه را روی آن اجرا کنیم.\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #!/bin/bash file=\u0026#34;balance.dat\u0026#34; value=$(cat $file) echo \u0026#34;Read current balance:$value\u0026#34; #sleep 10 seconds to simulate business calculation progress=10 while [[ $progress -lt 101 ]]; do echo -n -e \u0026#34;\\033[77DCalculating new balance..$progress%\u0026#34; sleep 1 progress=$((10+progress)) done echo \u0026#34;\u0026#34; value=$((value+$1)) echo \u0026#34;Write new balance ($value) back to $file.\u0026#34; echo $value \u0026gt; \u0026#34;$file\u0026#34; echo \u0026#34;Done.\u0026#34; ما این فایل را همزمان با دو ترمینال اجرا می‌کنیم.\nهمینطور که می‌بینید پروسه دوم برای اینکه محتوای فایل را تغییر دهد، باید صبر کند تا لاک فایل آزاد شود.\nاین پست خلاصه‌ای بود از این بلاگ که هر دو نوع advisory lock و mandatory lock را توضیح می‌دهد.\nبرای من سوال بود که من چطور می‌توانم مکانیزمی که flock استفاده می‌کند را در برنامه های خودم پیاده سازی کنم، و خب نتیجه این بود که معمولا برای advisory lock هر زبانی یک کتابخانه استاندار دارد توی پایتون کتابخانه fcntl اینکار را انجام می‌دهد.\n","date":"2024-02-09T01:49:42+03:30","image":"https://bit-orbit.github.io/images/post/flilock.jpeg","permalink":"https://bit-orbit.github.io/p/linux-file-locking-%DA%86%DB%8C%D8%B3%D8%AA/","title":"Linux File Locking چیست؟"},{"content":"هر زبان برنامه نویسی انواعی از داده ها رو داره، مثلا داده های عددی، کاراکتر و یا رشته‌ای از کاراکتر ها. زبان rust هم انواع داده‌ای زیادی رو پشتیبانی می‌کنه و خب حتی اگر جایی کمبودی حس کردین، می‌توانید ساختار داده‌ی خودتان را بسازید.\n‌ انواع داده ترجمه‌ی کلمه data type هست. و خب برای من استفاده از کلمه انگلیسی‌اش خیلی راحت تره.\nنوع داده عدد صحیح همینطور که می‌دونید عدد صحیح از منفی بی‌نهایت تا مثبت بی‌نهایت است(بدون هیچ علامت کسر، رادیکال و بدون اعشار).\nاین نوع داده در rust به این صورت است\n1 2 variable_name: i32 = -2147483648; variable_name: i32 = 2147483647; به این باید دقت کنیم که هر متغییری مقداری فضا نیاز دارد برای مثال این نوع داده که داده اصلی است به پنج صورت پیاده سازی می‌شود i8, i16, i32, i64, i128 اعداد پس از کاراکتر i نشان دهنده تعداد بیت هایی است که این نوع متغییر می‌تواند اشغال کند. مثلا i128 می‌تواند به اندازه 128 بیت فضا اشغال کند.\nنوع داده عدد اعشاری این نوع داده هم مثل نوع عدد صحیح است اما با این تفاوت که اعداد اعشاری را درون خودش ذخیره می‌کند\n1 2 variable_name: f32 = 3.14; variable_name: f32 = -3.14; نوع داده کاراکتر کاراکتر نوع داده‌ای است که فقط یک مقدار از حروف الفبا یا عدد و یا سیمبول را می‌تواند درون خودش ذخیره کند. پس باید به اندازه 8 بیت فضا اشغال کند اما به دلیل اینکه کاراکتر های زبان های دیگر را هم بتواند ذخیره کند از انکدینگ(encoding) utf-16 استفاده می‌کند که 16 بیت فضا اشغال می‌کند.\n1 let a: char = \u0026#39;a\u0026#39;; داده string(رشته‌ای از کاراکتر ها) String نوع داده‌ای است که درواقع رشته‌ای از کاراکتر ها را درون یک نوع vector ذخیره می‌کند.\nاین نکته را هم بگم که encoding رشته UTF-8 است. به این معنی که هر نوع کاراکتری را می‌تواند داخل خودش ذخیره کند حتی ایموجی.\n1 let heart: String = String::from(\u0026#34;♥\u0026#34;); نوع داده منطقی نوع داده منطقی به اسم boolian است. این نوع مقدار هایt true و یا false را ذخیره می‌کند.\n1 let is_good: bool = true; نوع داده ترکیبی این نوع داده ها را توی پست های مجزا توضیح می‌دم.\ntuple array list vector ","date":"2024-01-03T01:30:52+03:30","image":"https://bit-orbit.github.io/images/post/rustdatatypes.jpg","permalink":"https://bit-orbit.github.io/p/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%D9%88%D9%84%DB%8C%D9%87-%D8%AF%D8%B1-rust/","title":"انواع داده های اولیه در rust"},{"content":"تعریف متغیر در هر زبانی تعریف متغیر سینتکس خودش را دارد. مثلا اگر زبان های خانواده c را کار کرده باشید (مثل c++, c#) متوجه می‌شوید که نوع داده‌ای متغیر، قبل از اسم آن تعریف می‌شود. و یا مثلا توی زبان پایتون تعریف نوع داده‌ای یک متغیر حتی اهمیتی هم ندارد!\nانواع نوع داده یا date types را توی پست بعدی می‌نویسم\nتوی زبان rust بعد از اسم متغیر، نوع آن نوشته می‌شود. مثلا برای تعریف یک متغیر عددی به اندازه یک بایت از کلمه کلیدی i8 بعد اسم استفاده می‌کنیم. البته قبل از اسم هر متغیر هم ما باید از کلمه کلیدی let استفاده کنیم.\n1 2 //let name: type = value; let age: i8 = 22; متغیر های تغییرپذیر توی زبان rust هر متغیری که تعریف می‌کنیم غیر قابل تغیر است. توی مثال بالا من پیشفرض مقدار 22 را برای متغیر age قرار داده‌ام، حالا اگر بخواهم مقدار آن را به 23 تغیر بدهم به ارور می‌خورم\n1 age = 23; 1 2 3 4 5 6 7 8 9 10 error[E0384]: cannot assign twice to immutable variable `age` --\u0026gt; src/main.rs:3:5 | 2 | let age: i8 = 22; | --- | | | first assignment to `age` | help: consider making this binding mutable: `mut age` 3 | age = 23; | ^^^^^^^^ cannot assign twice to immutable variable خب برای همین اگر می‌خواهیم مقدار متغیری را تغییر بدهیم آن را باید از اول مشخص کنیم. مشخص کردن آن با کلمه کلیدی mut بعد از کلمه let است. کلمه mut مخفف mutable به معنی قابل تغییر است. خب بیایید اینکار را برای مثال اولیه انجام بدهیم.\n1 2 let mut age: i8 = 22; age = 23; ","date":"2024-01-01T01:39:05+03:30","image":"https://bit-orbit.github.io/images/post/datatypes-rust.jpg","permalink":"https://bit-orbit.github.io/p/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-rust/","title":"متغیر در rust"},{"content":"اوایل که لینوکس نصب کرده بودم کامند هایی که توی فروم های مختلف می‌دیدم و برای من جدید بود را دوست داشتم یاد بگیرم و بدانم کار آنها چی هست، برای همین هر کامندی را که می‌دیدم در اولین فرصت داخل سیستم خودم اجرا می‌کردم. که خب کور کورانه اجرای هر کامندی اشتباهه بود. یکی از این کامند ها که اجرا کرده بودم، به اسم فورک بمب (fork bomb) شناخته می‌شود. کامند به این صورت هست\n1 :(){ :|:\u0026amp; };: اگر این کامند را اجرا کنید(امیدوارم تا الان نکرده باشید) تقریبا زیر یک دقیقه سیستم شما هنگ می‌کند و مجبور می‌شوید سیستم را ریبوت کنید.\nتوی این پست ساختار این کامند را تشریح می‌کنم و باهم کمی bash یاد می‌گیریم.\nبیایید اول با مفهوم recustion آشنا بشیم، زمانی که یک قطعه کد خودش اجرا کند، recusion می‌گویم. مثلا شما یک فانکشن می‌نویسید به اسم fn و توی بدنه فانکشن فقط خود همین فانکشن را صدا می‌‌کنید، به این کار call recursion گفته می‌شود. فورک بمب دقیقا همین کار را می‌کند. به این معنی که خودش را دائم اجرا می‌کند!\nبه این فکر کنید که وقتی یک پراسس خودش را اجرا می‌کند ،مجدد پراسس های اجرا شده توسط اون هم دائم خودشان را اجرا می‌کنند، و دوباره هر پروسه‌ای که اجرا می‌شود بازم خودش را اجرا می‌کند و این روند تا زمانی که رم و پردازنده سیستم تحمل داشته باشد ادامه دارد.\nدرختی که می‌بینید را اجرای فورک بمب درنظر بگیرید، هر ستاره یک پروسه جدید است که توسط پروسه قبلی اجرا شده، و خودش هم دو پروسه جدید باز می‌کند و هر یک از پروسه ها هم همین روند را ادامه می‌دهند.\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 * ├── * │ ├── * │ │ ├── * │ │ │ ├── * │ │ │ │ ├── * │ │ │ │ └── * │ │ │ └── * │ │ │ ├── * │ │ │ └── * │ │ │ │ │ └── * │ │ └── * │ │ ├── * │ │ │ ├── * │ │ │ └── * │ │ └── * │ │ ├── * │ │ └── * │ │ │ └── * │ ├── * │ │ ├── * │ │ │ ├── * │ │ │ └── * │ │ └── * │ │ ├── * │ │ └── * │ │ │ └── * │ └── * │ ├── * │ │ ├── * │ │ └── * │ └── * │ ├── * │ └── * من برای اینکه سیستم‌ خودم هنگ نکند فورک بمب را روی داکر اجرا کردم و خب حتی یک ثانیه هم طول نکشید و آن کانتینر کاملا هنگ کرد.\nقبل از اجرا زمان اجرا بیایید وارد کد بشیم، این علامت ها و کاراکتر ها چی هستند؟\nاگه دقت کنید اولین کاراکتر فورک بمب، علامت : است. این علامت اسم فانکشن ما است. برخلاف قانون تعریف نام برای متغییر ها توی bash، می‌توانیم از کاراتر های یونیکد هم برای تعریف نام فانکشن استفاده کنیم، مثلا یک کاراکتر چینی یا حتی ایموجی!\n1 2 3 雨(){ echo \u0026#39;rain\u0026#39;; } ❤️(){ echo \u0026#39;love\u0026#39;; } خب در ادامه علامت های () را می‌بینیم، توی bash برای تعریف فانکشن قبل از اسم فانکشن هیچ کلمه کلیدی مثل fn, def, void و \u0026hellip; نیاز نیست، فقط بجای آن باید بعد از اسم فانکشن پرانتز ها را بگذارید.\nمثل خیلی از زبان های برنامه نویسی، بدنه فانکشن توی کرلی براکت تعریف می‌شود.\n1 :(){} پس تا اینجا ما یک فانکشن ساده با نام : تعریف کردیم.\nداخل بدنه این فانکشن، اسمی که برای فانکشن قرار دادیم همان : را می‌نویسیم. با اینکار دقیقا call recursion را انجام دادیم، و باعث شدیم که برنامه خودش را توی هر اجرا مجدد اجرا کند.\n1 :(){ : } دقت کنید توی سینتکس bash حتما باید یک فاصله برای کدی که داخلی کرلی براکت می‌نویسم قرار بدیم\nعلامت | به اسم پایپ شناخته می‌شود، وظیفه این علامت دادن خروجی یک کامند بعنوان ورودی به یک کامند دیگر هست، حلا دقت کنید که ما خروجی اجرای : را به خودش می‌دهیم. دقیقا به این شکل\n1 :(){ :|: } با این علامت هر پروسه دو بار پروسه جدیدی از خودش می‌سازد اگر از این علامت استفاده نکنیم، پروسه ما به صورت خطی خودش را اجرا خواهد کرد، اینطوری کد ما با یک حلقه while تفاوتی زیادی نخواهد داشت.\nعلامت \u0026amp; اجرای یک کامند را به بکگراند(پس زمینه) می‌برد. برای مثال بعد از اجرای یک دستور باید صبر کنید پروسه آن تمام شود تا بتوانید دستور بعدی را اجرا کنید. ولی اگر از علامت \u0026amp; بعد از هر دستور استفاده کنید، دیگر نیاز نیست صبر کنید تا روند اجرای آن برنامه تمام شود. درواقع با علامت \u0026amp; شما می‌توانید هر برنامه را در بکگراند اجرا کنید. حالا توی فورک بمب این علامت باعث می‌شود تا فانشکنی که اجرا کردین درحالی که کارش به اتمام نرسیده است، فانکشن بعدی اجرا بشود.\nو بعد علامت ; را می‌بینیم. این علامت کامند ها را از هم جدا می‌کند. مثلا شما می‌توانید چند کامند مختلف را توی یک خط بنویسید. توی فورک بمب این علامت فانکشنی که تعریف کردین را از دستور بعدی(که اجرا کننده اون فانکشن هست)جدا می‌کند.\n1 echo \u0026#39;foo\u0026#39;; echo \u0026#39;bar\u0026#39;; echo \u0026#39;baz\u0026#39;; آخرین علامتی که توی فورک بمب داریم همون علامت : یا همون اسمی هست که برای فانکشن قرار دادیم. خیلی ساده توی bash برای اجرای یک فانکشن فقط اسم‌ش را می‌نویسیم.\nو تمام! ما یاد گرفتیم چطور فورک بمب رو بنویسیم و دیگه نیاز نیست حفظ‌ش کنیم :)\n1 :(){ :|:\u0026amp; };: ","date":"2023-12-27T16:39:27+03:30","image":"https://bit-orbit.github.io/images/post/fork_bomb.jpg","permalink":"https://bit-orbit.github.io/p/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B7%D9%88%D8%B1-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF/","title":"فورک بمب چیست و چطور کار می‌کند؟"},{"content":"به احتمال زیاد سایت google colab رو می‌شناسید، این سایت برای کسانی که پایتون کار می‌کنند یک معجزه‌ست. خیلی راحت شما می‌توانید کد پایتون خود را روی سرور های گوگل اجرا کنید! مثلا اگر قرار باشد یک فایل با حجم خیلی زیاد رو پردازش کنید و خب سیستم خودتون توان پردازش اون فایل رو نداره، این سرویس گوگل واقعا کار رو راحت می‌کنه. حالا فرض کنید این فایل رو باید با تیم به اشتراک بگذارید، خیلی راحت این سروریس به گوگل درایو شما متصل می‌شه و فایل رو براتون آپلود می‌کنه.\nاما من توی این پست می‌خواهم کار متفاوتی با این سرویس انجام بدم، جای اینکه فایل‌م رو توی گوگل درایو آپلود کنم می‌خواهم که یک پلی لیست موزیک راک رو که فایل با فرمت zip هست رو روی google colab دانلود کنم و بعد با همین کولب فایل ها را استخراج و به تلگرام اپلود کنم.\nاینو بگم که خب روی کولب خیلی تریک های جالب دیگه‌ای هم می‌زنند، مثلا من یه تایمی به کولب ssh می‌کردم و بعنوان vpn استفاده می‌کردم.\nادرس سرویس google colab این هست، ولی من یک اسکریپت نوشتم که به اون نیاز داریم برای همین این لینک رو باز کنید تا اسکریپتی که من نوشته‌م توی colab باز بشه. اگه تا الان با برنامه jupyter کار کرده باشین این محیط باید براتون خیلی آشنا باشه. اگر نه، خیلی ساده بگم، این محیط دستورات پایتون رو براتون روی سروس های گوگل ران می‌کنه :)\nخب ما یه فایل این برای مثالمون نیاز داریم، من یک پلی لیست راک از AC/DC که از تورنت می‌گیرم رو برای اینکار استفاده می‌کنم.\nاول من فایل رو باید دانلود کنم، من از تورنت برای دانلود موزیک، فیلم و \u0026hellip; استفاده می‌کنم. پس کافیه لینک تورنت رو به برنامه aria2c بدم و یا فایل رو با یک سایت دانلودر تورنت دانلود کنم و لینک‌ش رو بدم به برنامه wget\nبرای اینکه دستورات خودتون رو اجرا کنید از بالای سایت گزینه + code رو بزنید تا یک code snipp جدید براتون باز کنه. توی این قسمت فقط می‌شه کد های پایتون رو اجرا کرد ولی اگه از علامت ! قبل از دستور استفاده کنیم اون رو بعنوان دستور bash اجرا خواهد کرد. و خب بیس سیستم عامل هم دبیان هست و دستورات دبیانی رو اجرا می‌کنه.\nپس اگه مستقیم قرار بود فایل رو از تورنت بگیرم باید برنامه aria2 رو نصب می‌کردم. برای نصب کافیه این دستور رو بزنیم\n1 !sudo apt-get install aria2 دقت کنید که از علامت ! قبل از دستور استفاده کردم.\nبعد از نصب، لینک رو می‌دیم به برنامه تا فایل ها رو برامون دانلود کنه.\n1 !aria2c \u0026#39;\u0026lt;your magnet link\u0026gt;\u0026#39; به این دقت کنید که برنامه با کامند aria2c اجرا می‌شه. ولی با به اسم aria2 نصب می‌شه.\nو یا اینکه لینک دانلود مستقیم رو به برنامه wget می‌دیم. این برنامه به صورت دیفالت نصب هست و لازم نیست کار خاصی بکنیم.\n1 !wget \u0026#39;\u0026lt;your file link\u0026gt;\u0026#39; بعد از اینکه فایل روی سرور گوگل دانلود شد کافیه فایل رو به تلگرام آپلود کنیم! ولی قبل‌ش چند کاری هست که باید باهم بکنیم.\nفایل من زیپه پس باید استخراج کنم. فایل ها توی دایرکتوری های تو در تو قرار دارند، و باید همه فایل های مورد نظرم رو که توی این مورد mp3 هستند رو بیارم داخل پوشه‌ای که اسکریپت دیفالت آنجا ران می‌شه. نیاز به یک کانال تلگرام دارم که فایل ها مستقیم اونجا اپلود بشوند یک توکن ربات تلگرام هم نیازه که با استفاده از دسترسی ربات به کانال، فایل ها رو اپلود کنیم. خب برای اسختراج فایل ها خیلی ساده از کامند unzip و اسم فایل جلوی این کامند استفاده می‌کنیم.\n1 !unzip \u0026lt;your file name\u0026gt; با کامند ls نام فایلی که دانلود کردین رو می‌تونید ببینید.\nبا اجرای کامند tree می‌تونید دایرکتوری های تو در تو رو ببینید.\nتوی این مرحله من همه فایل های mp3 رو باید بیارم توی پوشه اصلی که اسکریپت‌ اپلود اجرا میشه، دلیل این کار این هست که این اسکریپ‌ت فقط فایل های mp3 داخل همین پوشه رو پیدا و اپلود می‌کنه.\nبرای انتقال این فایل ها از پوشه های تو در تو به یک پوشه از کامند find استفاده می‌کنم و هر فایل که پیدا می‌شه رو با کامند mv به پوشه اصلی‌مون انتقال می‌دم.\n1 !find . -type f -iname \u0026#39;*mp3\u0026#39; -exec mv {} . \\; بیایید سوییچ های این دستور رو بهتون بگم\ntype- این سوییچ انواع نوع فایل ها رو مشخص می‌کنه. مثلا شما می‌تونید دنبال یک دایرکتوری، فایل، سوکت و \u0026hellip; بگردین\niname- این سویچ که مشخص هست نام فایل رو ازتون می‌گیره که شما می‌تونید پترن ریجکس بدین بهش. و اون i مشخص می‌کنه که نام فایل به کوچیکی و بزرگی حساس نباشه.\nexec- یک کامندی رو ازتون می‌گیره و روی تک تک ریزالت های جست و جو اون کامند رو اجرا می‌کنه. من کامند mv رو دادم که برای انتقال فایل استفاده می‌شه. علامت های {} هم یک متغییر هست که نام فایل تک به تک جای اون قرار می‌گیره.\nپایان سوییچ exec همیشه با ;\\ مشخص می‌شه.\nخب تا اینجا که خیلی ساده بود،‌ نه؟\nمرحله آخر اینه که یک ربات با این ربات بسازین، و بعد اون رو عضو یک کانالی که می‌سازید بکنید، کانال رو فعلا پابلیک بسازید و یک یوزرنیم بهش بدین.\nتوکن ربات رو کپی کنید و توی اسکریپت من، جایی که نوشته وارد کنید و توی قسمت هم ایدی کانالتون رو با علامت @ اول جایگذاری کنید.\nاگه کانال پرایوت دارید باید بجای ای‌دی کانال از chatid استفاده کنید، که یک ای‌دی عددی هست.\nتمام!‌ کافیه برنامه رو اجرا کنید و کانال تلگرامتون رو نگاه کنید :)\nاگه خیلی زیاد دارین فایل اپلود می‌کنید احتمالا تلگرام ارور flood mood بهتون بده. توی این مورد کافیه فقط صبر کنید، اسکریپت از اجرا قطع نمی‌شه و روی همون فایل مجددا اجرا می‌شه تا بالاخره فایل اپلود بشه.\nهرچیزی رو می‌تونید آپلود کنید ولی دقت کنید که ربات ها محدودیت حجم اپلود دارن که نهایتش 50MB هست\nاینم بگم که توی اسکریپت اگه mp3 رو به چیز دیگه‌ای تغییر بدین، اسکریپت به دنبال اون پسوند ها خواهد گشت.\n","date":"2023-12-18T00:08:38+03:30","image":"https://bit-orbit.github.io/images/post/colab.jpg","permalink":"https://bit-orbit.github.io/p/%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/","title":"از گوگل به تلگرام!"},{"content":"چطور این ایده به ذهن من رسید ؟ جریان این ایده به این شکل بود که خب ما ایرانی ها اینترنت به شدت محدود شده‌ای داریم، برای همین ما برای استفاده از اینترنت از vpn و یا proxy استفاده می‌کنیم. اما زمانی که ما وارد سایت های داخلی می‌شویم این سایت ها اجازه استفاده با ip خارج از ایران رو نمی‌دن و ما مجبور می‌شویم که vpn رو که به هزار زحمت وصل شده بود، قطع کنیم. خب چاره چیه؟ اینکه اگه یک سیستم توی خونه یا شرکت دارین که همیشه روشنه رو تبدیل به یک سرور کنیم :)\nتوی این فکر بودم که نیازم رو به چنین سیستم عاملی حس کردم، بعد کمی نیاز های دیگه رو بهش اضافه کردم و یه پست داخل تلگرام نوشتم، یکی کامنت گذاشت و خب این سیستم عامل را معرفی کرد.\numbrel چیست ؟ درواقع umbrel یک سیستم عامل است، زمانی که شما این سیستم عامل را نصب کنید، یک صفحه وب در اختیار شما می‌گذارد و شما از طریق این صفحه درون مرورگر خود می‌توانید به سیستم دسترسی داشته باشید. برای مثلا می‌توانید سرویس های مختلف و ابزار های مختلف را روی umbrel نصب و یا کانفیگ کنید.\nسرویس هایی که umbrel ارائه می‌دهد تقریبا همان سرویس هایی هستند که شما در طول روز از نسخه های تجاری آنها استفاده می‌کنید.\nاگه دقیق تر بخواهم بگم، این سیستم عامل یک store در اختیار کاربران‌ش قرار می‌ده. و خب این یکی از مهم ترین کار هایی است که این سیستم عامل انجام می‌ده چرا که اگر این استور وجود نداشت، شما شخصا باید فرایند کانفیگ و نصب سرویس ها را به عهده می‌گرفتید(این کار یک متخصص دواپس هست، خیلی هم جالیه)\numbrel چه نیازی را برطرف می‌کند ؟ وقتی از سرویس های تحت اینترنت استفاده می‌کنید، به احتمال زیاد شما کالای اون شرکتی هستید که ابزار را در اختیارتون قرار داده است. اگر دقت کنیم می‌بینیم که این شرکت ها بسیاری کاربر دارند و خب برای ارائه درست خدمت به کاربرانشون سرور های زیادی اجاره می‌کنند سرویس ها رو دائم اپدیت و بهتر می‌کنند و خب سرویس های متعددی هم ارائه می‌کنند.\nهمه این کار ها نیاز به هزینه های زیادی دارند، بودجه این شرکت ها فقط و فقط با تبلیغات تامین نمی‌شود بلکه با فروش اطلاعات کاربرانشون(خود ما) به شرکت ها و دولت ها تامین می‌شود.\nو البته اگر حتی شما برای سرویسی که استفاده می‌کنید هزینه‌ای پرداخت کنید، مثلا برای استفاده از گوگل دایو ماهانه هزینه هم پرداخت کنید، باز هم مشکلاتی وجود دارد، مثلا قانونا گوگل مالک فایلی است که شما روی سرور هایش آپلود می‌کنید.\nدر چنین مواقعی هست که اصطلاح self-hosting سرویس ها استفاده می‌شود. به این معنی که سرویس هایی که شما روزانه از آن استفاده می‌کنید را خودتان راه اندازی کنید. اما اینکار نیاز به دانش بالایی داره.\nسیستم عامل umbrel این کار را ساده کرده است، با این تفاوت که قبلا شما باید برای استفاده چند ابزار روی یک سرور، باید سرور رو به درستی کانفیگ می‌کردین سپس ابزار ها را کانفیگ، و بعد سرویس ها راه اجرا می‌کردین. اما الان فقط با یک کلیک شما سرویس توییتر خود را راه اندازی می‌کنید!\numbrel به روی سیستم عامل دسکتاپ نصب umbrel بسیاز سادهست فقط کافیه یک سیستم عامل debian رو روی سیستمتون داشته باشید، یک ترمینال باز کنید و کامند نصب را بزنید، با یک کامند این سیستم نصب می‌شه.\nولی خب اگر سیستم عاملی ندارید که بر پایه debain باشه، می‌شه به سادگی روی ماشین مجازی یک دبیان نصب کنید، حالت شبکه اون سیستم عامل رو bridge قرار بدین که IP پابلیک رو از DHCP بگیره و خب تحت LAN در دسترس قرار بگیره. خیلی ساده توی مرورگر IP سیستم debain که umbrel را روی ان نصب کردین را وارد کنید و تمام!\numbrel به روی رزبری پای رزبری پای! یک سخت افزار کوچک که تقریبا یک کامپیوتر کامل است! البته که قدرت پردازش بالایی ندارد ولی در IOT استفاده زیادی دارد. با توجه به اینکه پردازنده های رزبری پای از نوع arm هستند، با اجرای کامند نصب به روی سیستم عاملی که دیفالت به روی رزبری پای نصب است نمی‌توان umbrel را نصب کرد، برای همین سیستم عامل umbrel یک نسخه مخصوص برای رزبری پای دارد، کافیست آن را دانلود و به روی ربزی خود نصب کنید.\nبه این دقت کنید که خب سعنی کنید یک هارد اکسترنال به رزبری متصل کنید که فضای کافی برای سروریسی مانند next cloud داشته باشید.\numbrel بروی سرور شخصی به سادگی اچرای یک کامند! کافیست فقط سیستم عامل سرورتون debain و یا کلا بر پایه debian مثل ubuntu باشه. کامند اجرا را وارد کنید و بعد از اتمام فرایند نصب، IP سرور را وارد مرورگر کنید، تمام!\nدستگاه umbrel شرکت سازنده umbrel به جز سیستم عامل، یک دستگاهی طراحی کرده است که به صورت پیشفرض سیستم عامل umbrel به روی آن نصب شده است. این دستگاه تمامی سخت افزار مورد نیاز رو برای استفاده از سیستم عامل دارد. برای مثال اگر شما از umbrel به روی rassbery PI استفاده می‌کنید، شما نیاز به یک فن دارید تا این دستگاه را دائم خنک کند، از طرفی خود فن هم باید خنک شود.\nاینجاست که این دستگاه رو برای شرکت یا خانه‌ شما مناسب‌تر می‌کند(مطمئن باشید تبلیغ نمی‌کنم)\numbrel چطور کار می‌کند ؟ اگه بخواهم کمی فنی‌تر وارد ماجرا بشم، همونطور که گفت این سیستم عامل بهترین ویژگی که ارائه می‌کند store آن است. البته که اینجا store به معنی فروشگاه نیست، بلکه شبیه یک بازاری است که همه اجناس‌ش رایگان است :)\nسرویس های umbrel همه سرویس هایی هستند که به صورت منبع باز در اختیار همه قرار گرفته است، این سرویس ها برای اجرا شدن نیاز به شخصی دارد که دانش کافی از سرور داشته باشد و خب نحوه کانفیگ کردن هر کدام از ابزار ها و سرویس ها را بداند.\nدانلود و نصب هر سرویس به صورت جدگانه ممکن است به مشکلات متعددی برخورد کند، مثلا در نصب سرویسی مثل nexcloud شما ممکن است نیاز به ورژن خاصی از php داشته باشید. کانفیگ کردن nginx برای اجرای اسکریپت های php هم واقعا به اندازه زیادی دردسر دارد.\nاینجاست که داکر وارد ماجرا می‌شود! umbrel از قبل تمامی سرویس ها را داکرایز کرده است.\nداکرایز به چه معنیست؟ درواقع به این فکر کنید که شما یک برنامه را می‌خواهید نصب کنید، این سرویس توسط سازنده آن از ورژن خاصی از زبان مشخصی، لایبراری و فایل هایی استفاده کرده است که پیشفرض روی سیستم شما نصب نیست، در این مواقع وظیفه نصب آن فایل ها به عهده شماست. داکر این کار را ساده کرده است به این صورت که برنامه را با تمامی نیازمندی هایش داخل یک فایل image قرار داده است، و بعد کافیست شما آن فایل را به برنامه docker engine بدهید، آن برنامه باید بدون هیچ مشکلی اجرا شود.\nسیستم عامل umbrel دقیقا چنین کاری می‌کند. تمامی image های داکیرایز شده را در store برای شما شما لیست می‌کند، شما کافیست که دکمه install را بزنید، بنگ! سرویس شما آماده است :)\nامنیت اگر umbrel را به روی چیزی به جز سرور دارید، حتی اگر برای آن یک دامنه هم بگیرید، umbrel اجازه دسترسی به سیستم عامل را از طریق اینترنت به شما نمی‌دهد. برای اینکار شما باید از طریق tor به آن متصل شوید و یا یک VPN سرور داخل شبکه داخلی خود راه اندازی کنید.\nالبته umbrel به جز tor یک راه دیگر هم در اختیار کاربران قرار داده است، سرویسی VPN به نام tailscale که مستقیم به روی umbrel نصب می‌شود.\nسرویس های کاربردی umbrel matrix خیلی ساده بگم، می‌تونید با این سرویس telegtam خودتون رو راه اندازی کنید. برای اینکه بیشتر درباراه این سرویس بدونید، این پست من را بخوانید.\nnextcloud خیلی شبیه به گوگل درایو است، به جز نسخه وب حتی یک اپ اندروید هم دارد که می‌توانید آدرس nextcloud را درون آن وارد کنید و از هرکحا به فضای خودتون دسترسی داشته باشید. و خب حتی بعنوان ادمین برای افراد خانواده و یا شرکت‌تون اکانت بسازید، و فضای شخصی خودشان را در اختیارشان قرار بدین.\nqbittorrent اگر تورنت را می‌شناسید، قطعا این کلاینت معروف را هم باید بشناسید، این کلاینت یک نسخه وب دارد که داخل فروشگاه umbrel قرار دارد. فایل های خود را برای دانلود به این کلاینت بدین و در زمانی که از اینرنت استفاده نمی‌کنید مثلا 2 تا 7 صبح آن ها را بگذارید تا دانلود بشوند.\npi-hole برای خلاص شدن از تبلیغات اینترنت کافیه این سرویس DNS را به روی umbrel نصب کنید و سپس DHCP را تنظیم کنید که IP این سرویس را به دیگر دستگاه های شبکه بدهد.\nJellyfin یکی از نیاز های واقعا اساسی من، این سرویس است. فیلم هایی که می‌بینم، و یا قرار است که ببینم‌شون رو می‌تونم با این سرویس به درستی دنبال کنم. در اصل این سرویس برای پخش کردن فیلم ها ساخته شده‌ است. به این شکل که شما کافیست فیلم های خود را وارد jellyfin کنید، بعد از هرکحا و هر دستگاهی داخل مرورگر می‌توانید فیلم ها رو تماشا کنید، مثلا اگر تلویزیون هوشمند دارید کافیست از طریق مرورگر آن وارد umbrel خود بشین.\n-snapdrop\nسرویس خیلی ساده‌ای است که برای انتقال فایل داخل شبکه لوکال استفاده می‌شود.\nwhoogle search البته whoogle یک موتور جست و جوی meta است، به این معنی که خودش وب را خزش نمی‌کند و از موتور های جست و جوی دیگر برای نتیجه جست و جوی شما استفاده می‌کند.\nLlamaGPT چیزی شبیه ChatGPT ولی افلاین و کاملا خصوصی.\nراه اندازی سرویس های شخصی خیلی از سرویس ها هنوز به umbrel اضافه نشده. اضافه کردن سرویس به خود store هم کار سختی نیستی، کافیه فقط داکرایز کردن رو بلد باشین.\ncache server کش سرور ها معمولا با transparent proxy بدون اینکه کاربران متوجه پروکسی بشوند پیاده سازی می‌شوند. کار آنها کاهش مصرف ترافیک است.\nیکی از سرویس هایی که خیلی از شرکت ها برای کاهش هزینه های اینرنت و یا خب برای بهبود سرعت اینترنت می‌کنند، ارائه cache server هست.\nخیلی خلاصه بگم کش سرور محتوایی که کاربران بازدید می‌کنند را درون خود برای مدتی و با شرایطی از پیش تعیین شده نگه ‌می‌دارد و هر بار که کاربران به محتوای قبلی درخواست بدهند، دیگر آن ریکوئست تا سایت اصلی نمی‌رود و خود کش سرور که در شبکه داخلی است جواب آن را می‌دهد\n","date":"2023-12-11T01:39:34+03:30","image":"https://bit-orbit.github.io/images/post/umbrel.webp","permalink":"https://bit-orbit.github.io/p/cloud-%D8%B1%D8%A7-%D8%A8%D9%87-%D8%AE%D8%A7%D9%86%D9%87-%D8%AE%D9%88%D8%AF-%D8%A8%D8%A8%D8%B1%DB%8C%D8%AF/","title":"cloud را به خانه خود ببرید!"},{"content":"یکسری مفاهیمی در برنامه نویسی داریم که من تصمیم داریم درباره آنها توی چند پست توضیح بدم، اولین مورد که شامل این پست می‌شه تفاوت static linking و dynamic linking در زبان های برامه نویسی هست‌ش. مفاهیم دیگه‌ای که داخل پست های بعدی می‌نویسم چیز هایی مثل static type, dynamic type, compiler language, interpreter language و \u0026hellip; خواهد بود.\nدو مفهموم static linking و dynamic linking چه هستند؟\nهر کدام چه مشکلات و فوایدی دارند؟\nما در نوشتن برنامه ها معمولا از لایبراری های زیادی استفاده می‌کنیم، حتی یک برانامه ساده. سیستم ما برای اجرای یک برنامه، کد برنامه رو به ماشین-کد تبدیل می‌کنه و بعد خط به خط اون ها رو اجرا می‌کنه.\nاصطلاح linking به روندی گفته می‌شود که کد شما به اشیاء(کد و داده) های خارجی برای استفاده از انها اشاره کند. معمولا دو روش برای اینکار وجود دارد، static linking(لینک کردن ایستا), dynamic linking(لینک کردن پویا).\nstatic linking زمانی اتفاق می‌افتد که کامپایلر منابع خارجی(لایبراری) ها را داخل فایل اجرایی برنامه کپی کند\nدر واقع در این روش برنامه شما تمامی لایبراری هایی که شما در کد استفاده کردین رو با کد شما درون یک فایل اجرایی کامپایل می‌کند، زمانی که برنامه اجرا شود، تمامی لایبراری های مورد نیازش وارد مموری کامپیوتر می‌شود.\nفایده هایی که می‌تونم بهش اشاره کنم\nتوی منتشر کردن برنامه به دیگران، مشکل نصب کامپوننت ها رو دیگه ندارن، و به راحتی اجرا می‌کنند. ممکنه برنامه اندکی سریع تر اجرا بشه این روش واقعا خوبیه ولی خب معایب خودش رو هم داره\nفایل اجرایی حجم زیادی‌تری نسب‌ت به لینک کردن پویا داره وقتی برنامه اجرا بشه، بخاطر اینکه همه لایبراری و داده های مورد نیاز داخل همان فایل اجرایی بود، برنامه رم زیادی استفاده می‌کنه. اگر لایبراری های مورد استفاده تغییر کنند، برنامه نویس باید مجدد برنامه رو کامپایل و منتشر کنه dynamic linking لینک کردن پویا زمانی است که نام لایبراری خارجی در زمان اجرا وارد فایل اجرایی می‌شود. و اینکه فقط در این زمان است که لایبراری مورد نیاز وارد مموری می‌شود.\nدر این مواقع لایبراری ها باید در سیستم عامل از قبل نصب شده باشند، و یا در موقغ نصب برنامه جدید اون لایبراری ها نصب شوند. و اگر هر تغییری در لایبرار رخ بده، برنامه نویس نیاز نیست دوباره برنامه رو کامپایل و منتشر کند، فقط لایبراری مورد نیاز اپدیت می‌شود.\nاین روش هم مزیت های خودش رو داره، مثلا:\nحجم فایل های اجرایی خیلی کمتری داره تا زمانی که نیاز به لایبراری نشده باشد(اگر در کد نویسی رعایت شده باشه) لایبراری ها رم اشغال نمی‌کنند. مهمترین عیبی که می‌تونه این روش داشته باشه اینه که حذف شدن و یا خراب شدن لایبراری باعث می‌شه برنامه دیگه اجرا نشه.\nاین مطلب خلاصه‌ای کلی بود برای آشنایی با این دو مفهموم برای مطالعه بیشتر این لینک می‌تونه مفید باشه.\n","date":"2023-11-03T00:21:46+03:30","image":"https://bit-orbit.github.io/images/post/staticvsdynamic.jpg","permalink":"https://bit-orbit.github.io/p/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-staticlink-%D9%88-dynamiclink-%D8%AF%D8%B1-%D8%B2%D8%A8%D8%A7%D9%86-%D9%87%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C/","title":"تفاوت Staticlink و Dynamiclink در زبان های برنامه نویسی"},{"content":"دوست داشتن لینوکس واقعا دلایل زیادی داره و احتمالا هر کسی به دلیل خاصی لینوکس رو دوست داره. مثلا یکی ممکنه آزادی‌اش رو دوست داشته باشه یکی دیگه از پکیج منیجر علاقه رو به لینوکس پیدا کرده باشه و \u0026hellip;\nمن ترمینال قدرتمند لینوکس رو دوست دارم، چیزی که هیچوقت توی ویندوز تجربه نکرده بودم. یکی زیبایی های ترمینال برای من ترکیب ریزالت برنامه‌های مختلف با یکدیگر و بدست اوردن نتیجه جدیده\nمثلا بابام برای چندین پست فرستاد که هر پست شامل چهار یا پنج لینکه که من باید همه‌ش رو دانلود کنم، درحالت عادی اگر روی ویندوز بودم خب باید هر لینک رو کپی می‌کردم و بعد وارد دانلود منیجر می‌کردم برای دانلود. ولی خب ما مجهزیم به قدرت ترمینال لینوکس :)\nخب من کاری که می‌کنم اینه که متن پست ها رو کپی می‌کنم و توی یک فایل می‌ریزم اینطوری هم متن های فارسی پست ها و هم لینک های فایل ها رو دارم\nبعد با دستور grep با یک پترن ساده regex همه لینک ها رو از متن های فارسی جدا می‌کنم و داخل یک فایل دیگه می‌ریزم. این پترن به این شکل هست که می‌گه هر خطی که اولش http باشه رو پیدا کن.\n1 cat dl.txt | egrep \u0026#39;^http\u0026#39; \u0026gt; dl.lst و تمام، همه لینک ها رو یکجا آماده دارم، حالا کافیه با یک دستور همه فایل ها رو دانلود کنم.\n1 wget -c -i dl.lst خب بعد از دانلود شدن فایل ها، یک مشکلی که دارم این هست که هر پست شامل تمامی درس های یکی از فصل هایی هست که بابام می‌بینه. من باید فایل ها رو براساس فصل هاشون داخل دایرکتوری های مشخص خودش قرار بدم. اینم یک راهکار خیلی ساده داره. اسم فایل ها به این شکل هست که فصل رو داخلش نوشته Option402-J04-01.mp4 کافیه با یه وایلد کارت هر فصل رو جدا کنم و داخل دایرکتوری خودش بریزم\n1 2 3 4 mv Option402-J04* j04 mv Option402-J05* j05 mv Option402-J06* j06 mv Option402-J07* j07 این یک مثال ساده‌ای بود که می‌تونستم بزنم برای توضیح اینکه چرا لینوکس برام جذاب تره و کارم رو ساده تر می‌کنه.\n","date":"2023-07-07T02:45:19+03:30","image":"https://bit-orbit.github.io/images/post/ill.png","permalink":"https://bit-orbit.github.io/p/%DA%86%D8%B1%D8%A7-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D8%B1%D9%88-%D8%AF%D9%88%D8%B3%D8%AA-%D8%AF%D8%A7%D8%B1%D9%85/","title":"چرا لینوکس رو دوست دارم؟"},{"content":"پشت فیلم blade runner ایده جذابی هست که من خیلی دوست دارم. کلیت داستان به این شکل هست که دنیا تونسته از انسان clone هایی بسازه و از اونها برای پیشرفت و کار های سخت استفاده کنه، مثلا توی جنگ بجای سرباز واقعی استفاده می‌شن، اگه قراره ماموریت خطرناکی مثل اکتشاف توی فضا و یا دستگیری یک مجرم خطرناک کسی رو بفرستن، چی بهتر از یه کلون که جون انسان واقعی به خطر نیوفته؟\nاما از جایی به بعد کلون ها تغییر می‌کنند و دیگه برده بودن رو قبول نمی‌کنن، سعی می‌کنن فرار کنند و دستور انسان ها سرپیچی کنند. اما اینکار هم فایده‌ای نداره، چون انسان ها کلون های دیگه‌ای می‌سازند که کارشون پیدا کردن و کشتن کلون هایی هست که فرار کردن، به این شغل که مامولا شغل کلون ها هست می‌گن blade runner.\nاین روند یکم شبیه یک loop هست، ساخت clone هایی که clone ها رو بکشه درصورتی که همین clone ها فرار می‌کنند و دوباره clone های دیگه‌ای میان سراغ اینها.\nباید بگم که balde runner چندین سری فیلم هست، حتی یک سریال انیمیشنی هم داره.\n","date":"2023-06-24T22:02:35+03:30","image":"https://bit-orbit.github.io/p/blade-runner/37_hu620753980173416886.png","permalink":"https://bit-orbit.github.io/p/blade-runner/","title":"Blade Runner"},{"content":"ماتریکس یک پروتکل آزاد است! به این معنی که شما میتوانید از این پروتکل برای ارتباطات تحت شبکه مانند پیامرسان، اینترنت چیز ها (IoT) و هر چیز دیگری استفاده کنید. از ویژگی های این پروتکل، رمزنگاری سر تا سر (E2E) است، این ویژگی باعث میشود حتی سرور های ماتریکس که داده های ما را منتقل میکنند هم توانایی دسترسی به داده ها را نداشته باشند.\nپیام رسان ماتریکس یکی از اصلی ترین استفاده های ماتریکس، پیامرسان است. این پیامرسان به صورت غیر متمرکز عمل میکند. با این روش سانسور/فیلتر شدن سرور هایی که پیام ها را ذخیره و منتقل میکنند غیر ممکن میشود! چرا که این سرور ها قابل تغییر هستند و هر زمان که یکی از این سرور ها سانسور شود، شما همچنان میتوانید با سرور دیگری مجدد اکانت بسازید و در ارتباط بمانید. و یا حتی از سرور خودتان استفاده کنید!\nماتریکس چگونه کار میکند؟ هر سرور در ماتریکس HomeServer نامیده میشود، شما به عنوان Client انتخاب میکنید از هر HomeServer که میخواهید استفاده کنید.\nHomeServer ها میتوانند سرور های عمومی مثل سروری که خود ماتریکس راه اندازی کرده است باشد و یا میتواند سرور های شخصی خودتان باشد.\nزمانی که شما از یک HomeServer استفاده میکنید، این به آن معنی است که کلاینت شما به اکانتتان در آن HomeServer متصل میشود.\nزمانی که شما پیامی ارسال میکنید، پیامتان به HomeServer شما ارسال میشود، HomeServer بعد از دریافت پیام از شما، آن را به کاربران مشترک در آن روم ارسال میکند.\nدر ماتریکس هر نوع چت(شخصی و یا گروه) را room مینامند\nدر واقع زمانی که شما پیامی ارسال میکنید HomeServer پیام را برای کاربران ارسال میکند. این کاربران ممکن است کاربران همان HomeServer و یا کاربران HomeServer های دیگری باشند. پس پیام شما اگر برای کاربران یک HomeServer دیگر باشد، Homeserver شما بعد از دریافت پیامتان، پیام را برای HomerServer های دیگر ارسال خواهد کرد. و آن HomeServer پیام را دریافت و به کاربران مربوطه ارسال خواهد کرد.\nزمانی که شما پیامی را برای کاربر HomeServer دیگری ارسال میکنید، پیام شما تنها در HomeServer خودتان ذخیره نخواهد شد. بلکه در HomeServer کاربری/کاربرانی که پیام را به آن ارسال کرده اید هم ذخیره میشود.\nاصطلاحات در ماتریکس در ماتریکس چند اصطلاح وجود دارد که آشنایی با آنها به درک بهتر این پروتکل کمک میکند.\nHomeServer: سروری که شما در آن اکانت خود را میسازید. این سرور پیام های شما را ذخیره و ارسال میکند.\nClient: برای اینکه کاربران بتوانند از ماتریکس استفاده کنند، باید از ابزاری که از این پروتکل بهره میبرد استفاده کنند. به اینگونه از ابزار ها کلاینت گفته میشود.\nEvent: هر نوع داده ای که توسط ماتریکس ارسال شود event نامیده میشود. برای مثال ممکن است شما پیام ارسال کنید و یا به یک پیام واکنش نشان دهید.\nRoom: قسمتی است که کاربر با آن event ها را دریافت و ارسال میکند. event ها به room ارسال میشوند، و تمامی کاربران مشترک در room میتوانند event ها را دریافت کنند.\nSpace: Space نوعی خاصی از room برای دسته بندی دیگر room ها است. space میتواند هم شامل گروه و هم کاربران عادی شود.\nBridge: پل یا Bridge به راهکاری گفته میشود که شما میتوانید با استفاده از آن بین ماتریکس و پیامرسان های دیگر چت کنید. برای مثال شما با استفاده از Brdige تلگرام میتوانید با ماتریکس به کاربران تلگرام پیام ارسال و دریافت کنید.\nچگونه از ماتریکس استفاده کنیم؟ برای استفاده از ماتریکس، شما کافیست یکی از کلاینت های آن را نصب و به یک HomeServer متصل شوید.\nیکی از محبوب ترین کلاینت ها، کلاینت Element است، که شامل نسخه Android، IOS، Windows, Linux، Mac و البته نسخه تحت وب میشود.\nاستفاده از المنت مانند هر پیامرسان دیگری ساده است، اما اگر نیاز به کمک دارید این لینک میتواند کمکتان کند.\nچطور از سرور شخصی خودمان استفاده کنیم؟ شما مجبور نیستید سرویس ماتریکس را روی سرور شخصی خودتان اجرا کنید مگر اینکه:\nسرور های عمومی ماتریکس سانسور و از دسترس خارج شده باشند و یا شاید نگران دیتایی هستید که روی سرور های عمومی ماتریکس از طرف شما ذخیره میشود!(گرچه پیام ها تماما رمزنگاری سر تا سر میشود) و یا حتی شاید میخواهید پیام رسان داخلی شرکت/خانه خودتان را داشته باشید و یا البته ممکن است بخواهید Bridge بسازید. نسخه سرور ماتریکس Synapse نام دارد، شما میتوانید با استفاده از ایمیج داکر رسمی ماتریکس، سرور شخصی خودتان را اجرا کنید.\nنتیجه گیری هدف من از نوشتن این پست در این روز های تلخ این بود که ابزاری را معرفی کنم تا ما با وجود قطعی های متعدد اینترنت و قطع دسترسی ما از سرور های خارجی، کماکان در ارتباط نگهدارد و صدایمان را\u0026hellip;\nاگر روزی دسترسی ما از اینترنت قطع شد، کاری که لازم است برای در ارتباط ماندن انجام بدهیم این است که یک سرویس ماتریکس داخلی راه اندازی کنیم.\n","date":"2022-10-01T01:46:23+03:30","image":"https://bit-orbit.github.io/images/post/matrix.jpg","permalink":"https://bit-orbit.github.io/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/","title":"ارتباط غیر متمرکز و در لحظه با پروتکل ماتریکس"},{"content":" ما زمانی که برنامه‌ای در ترمینال اجرا می‌کنیم برای کپی کردن ریزالت اون برنامه، با موس تکست رو سلکت می‌کنیم و بعد کپی می‌کنیم. اما می‌دونیم که توی لینوکس ما pipe رو داریم. پایپ کردن به این معنی است که شما یک برنامه رو اجرا می‌کنید و ریزالت اون برنامه رو بعنوان ورودی به یک برنامه دیگر می‌دهید. و خب کاش می‌شد با پایپ کردن، متنی کپی بشه!\nبرنامه‌ای ساده نوشتم که این کار رو برای ما به سادگی انجام بده.\nمثلا ما می‌خواهیم لیست فایل ها و دایرکتوری های داخل پوشه /var/ رو کپی کنیم. می‌دونیم که دستور ls میاد و لیست فایل ها رو می‌گیره، کافیه این رو پایپ کنیم به clp تا این لیست به کلیپ برد کپی بشه.\nls /var | clp\nبرای نصب این چند دستور رو می‌تونید اجرا کنید:\n1 2 3 4 cd /tmp/ \u0026amp;\u0026amp; wget \u0026#39;https://raw.githubusercontent.com/shabane/clp/master/clp.py\u0026#39; cp clp.py ~/.local/bin/clp chmod +x ~/.local/bin/clp clp -h و خب می‌تونید برای دیدن مثال ها ریپوی گیتهاب برنامه رو هم ببینید\nhttps://github.com/shabane/clp\n","date":"2022-05-01T04:48:44+04:30","image":"https://bit-orbit.github.io/images/post/cclp.jpg","permalink":"https://bit-orbit.github.io/p/%DA%A9%D9%BE%DB%8C-%DA%A9%D8%B1%D8%AF%D9%86-%D8%B1%DB%8C%D8%B2%D8%A7%D9%84%D8%AA-%D9%BE%D8%A7%DB%8C%D9%BE-%D8%A8%D9%87-%DA%A9%D9%84%DB%8C%D9%BE-%D8%A8%D8%B1%D8%AF/","title":"کپی کردن ریزالت پایپ به کلیپ برد"},{"content":" شاید تا به حال از کوتاه کننده های لینک استفاده کرده باشید، اما ایا سایت کوتاه کننده لینک خودتون رو درست کردین؟\nگیتهاب پیجز یک سرور رایگان برای دیپلوی سایت های ایستا است. در واقع شما می‌توانید صفحه های html رو توی ریپو قرار بدین و این سایت اون صفحه ها رو به رایگان برای شما نمایش می‌دهد.\nاز همین قابلیت برای ساخت یک url redirector استفاده کردم، و با کمی جاوا اسکریپت یک صفحه درست کردم که وقتی شما با مرورگر اون رو باز می‌کنید، مرورگر شما به صورت خودکار به یک آدرس متفاوت منتقل خواهد شد.\nولی مشکل اینجاست که شما هر بار باید کلی html, css رو خودتان تغییر بدین و بعد قطعه کد جاوا اسکریپت رو اضافه کنید.\nCarbon من یک برنامه کوتاه کننده لینک درست کردم که زمانی که شما برنامه رو اجرا کنید، فایل های مورد نیاز رو برای شما می‌سازه.\nبرنامه رو که اجرا کنید یک CLI اجرا خواهد شد و از شما چند ورودی را درخواست خواهد کرد.\nاولین ورودی لینک طولانی است که شما نیاز دارید آن را کوتاه کنید.\nدر قدم دوم، برنامه یک نام که همان لینک کوتاه شده است را از شما خواهد گرفت، این نام را اگر به صورت خالی رها کنید، یک نام تصادفی بر اساس فایل کانفیگ در نظر گرفته خواهد شد.\nشاید سایت هایی را دیده باشید که از کاربر می‌خواند برای بازکردن لینک روی یک دکمه کلیک کنند، و در این فرصت که کاربر هنوز وارد لیک اصلی نشده است، تبلیغاتی را به آنها نمایش می‌دهند. پس سوال سوم این خواهد بود که آیا کاربر باید برای وارد شدن به لینک اصلی، دکمه‌ای را بزند و یا به صورت خودکار وارد آن شود؟\nسوال سوم از شما یک عنوان می‌خواهد که برای هدر سایت از آن استفاده کند، البته اگر تم سایت را کاستومایز کنید، این عنوان در هر جایی ممکن است قرار بگیرد.\nو آخرین سوال از شما یک توضیح برای لینک می‌خواهد. ممکن شما بخواهید قبل از اینکه کاربر وارد لینک اصلی شود یک متنی را بخواند. این توضیحات به کاربر نمایش داده خواهد شد.\nبرنامه کربن را منبع باز داخل این آدرس در گیتهاب قرار دادم، امیدوارم که مفید باشه.\nDeployment البته همینطور که می‌دانید نیاز نیست حتما از گیتهاب پیجز برای دیپلوی استفاده کنید. و تنها مشکلی که در این قضیه هست لینک هایی هست که تولید می‌شوند، این لینک ها به ساب دامین اکانت شما متصل می‌شوند، پس حفظ آن ها برای شما ساده است :) اما نکته اینجاست که کافیست شما یک دامنه ثبت کنید.\nراه دوم این است که با یک وب سرور مثل nginx این سایت را مستقر کنید، و هرگاه نیاز به ساخت لینک کوتاه داشتید، برنامه رو اجرا کنید.\nTheme من هیچ وقت دیزانر خوبی نبودم و به همین دلیل تم اصلی سایت ساده‌س. شما می‌توانید به راحتی تم خودتان رو بسازید، کافیه که داکیومنت ساخت تم رو مطالعه کنید. فقط و فقط چند تگ و فایل هست که باید ازش درون تم استفاده کنید، اگر تمی ساختید که قشنگتر از تم اصلی هست، خوشحال می‌شم به ریپو اصلی پوش کنید.\n","date":"2022-03-22T22:41:20Z","image":"https://bit-orbit.github.io/images/post/carbon_r7tm.jpg","permalink":"https://bit-orbit.github.io/p/%D8%B3%D8%A7%D8%AE%D8%AA-%DA%A9%D9%88%D8%AA%D8%A7%D9%87-%DA%A9%D9%86%D9%86%D8%AF%D9%87-%D9%84%DB%8C%D9%86%DA%A9-%D8%A8%D8%A7-%DA%AF%DB%8C%D8%AA%D9%87%D8%A7%D8%A8-%D9%BE%DB%8C%D8%AC%D8%B2/","title":"ساخت کوتاه کننده لینک با گیتهاب پیجز"},{"content":" شما باید درباره اصطلاح tty زمانی که به لینوکس و یونیکس آمد، شنیده باشید. اما tty چیست؟\nآیا برای شما به عنوان یک کاربر دستکتاپ مفید است؟\nبه آن نیاز دارید؟ می‌توانید با آن چه کار کنید؟\nاجازه دهید هر چیز ضروری برای آشنا کردن شما با اصطلاح tty را در این پست برسی کنیم.\nبه یاد داشته باشید که پاسخ قطعی برای این سوال وجود ندارد، اما به نحوه تعامل دستگاه های input/output(ورودی/خروجی) در گذشته ربط دارد.\nبرای اینکه تصویری شفاف از آن داشته باشید باید کمی از تاریخ‌ش را بدانید.\nتاریخ پشت اصطلاح tty همه چیز از یک teleprinter در سال 1830 شروع شد.\nteleprinter به شما اجازه می‌داد که از طریق سیم پیام ارسال و دریافت کنید. teleprinter جایگزینی برای ارطبات مورس کد بود در آن دو اپراتور برای ارطبات با یکدیگر مود نیاز بود. اما در teleprinter فقط به یک اپراتور برای ارسال پیام نیاز داشت. درحالی که teleprinter یک صفحه کلید مدرن نداشت، بعد ها سیستم آن توسط Donald Murray به یک صفحه کلید teletypewriter تکامل یافت.\nMurray زحمت اپراتور ها را برای ارسال و پیام را کاهش داد و این امکان را برای teletypeprinter فراهم کرد که به عنوان یک teletypewriter تجاری در سال 1908 بیرون بیاید. tty نام کوتاه شده teletypewrite است.\nتفاوت بین teletypewrite و typewriter های معمولی این بود که teletypewrite به یک دستگاه ارطباتی برای ارسال پیام نوشته شده متصل بود. teletypewriter ارطبات سریع تری را تا اکنون برای انسال بدون استفاده از کامپیوتر مقدور کرده است. و اینجا جایی است که tty بوجود آمد.\nمفهوم مدرن اکنون شما باید متعجب شده باشید که چطور tty به لینوکس و کامپیوتر مدرن آمده است.\nبسیار خب، برای شروع، زمانی که teletypewriter به بازار رسید، چند سال بعد ترانزیستور های نیمه هادی(نیمه رسانا) توسعه داده شد که به میکروپروسسور(micro proccessor) هایی تبدیل شدند که کامپیوتر را ممکن می‌کرند.\nکامپیوتر های اولیه مفهومی به اسم صفحه کلید نداشتند. کارت های پانج روش ورودی دادن به کامپیوتر ها بود\nدرحالی که کامپیوتر ها توسعه پیدا می‌کردند، بالاخره کارت های پانچ با teletypewriter به عنوان دستگاه ورودی/خروجی مناسب جایگزین شد. با توسعه تکنولوژی teletypewriter ها با استفاده از الکترونیک مجازی شدند. پس شما به یک tty فیزیکی، مکانیکی نیاز پیدا نمی‌کنید، بلکه به یک tty مجازی، الکترونیکی نیاز دارید.\nاوایل کامپیوتر ها صفحه نمایش هم نداشتند. چیز ها بجای نمایش داده شدن بروی صفحه نمایش (که وجود نداشت) به روی کاغذ چاپ می‌شدند. به همین دلیل شما بجای دیدن اصطلاح display اصطلاح print را می‌بینید. ویدیو ها به عنوان تکنولوژی پیشرفته به ترمینال(پایانه) ها اضافه شد. به عبارت دیگر شما باید درباره ترمینال های ویدیویی شنیده باشید. یا شما می‌توانید آن ها را ترمینال های فیزیکی بنامید.\nسپس اینها به ترمینال های نرم افزاری شبیه سازی شده تکامل پیدا کردند که با قابلیت ها و ویژگی های تسوسعه یافته‌ای همرا بود. این چیزی است که شما آن را terminal emulator می‌نامید.\nبرای نمونه ترمینال گنوم (Gnome) یا کنسول (Konsole) چنتا از بهترین ترمینال هایی هستند که می‌توانید برای لینوکس پیدا کنید.\nبسیارخب tty در لینوکس چیست؟ زمانی که tty به لینوکس و یونیکس آمد، یک دستگاه مستقل در یونیکس و لینوکس بود گاهی tty به یک دستگاه ورودی فیزیکی مانند serial port(درگاه سریال) اشاره می‌کرد، و گاهی به ترمینال های مجازی اشاره می‌کرد که به کاربران اجازه تعامل با سیستم را می‌داد.\ntty یک زیر سیستم در لینوکس و یونیکس است که مدریت فرایند، ویرایش خط و مدیریت نشست ها را در سطح کرنل از طریق درایور های tty ممکن می‌کند.\nاز دیدگاه برنامه نویسی شما باید در این موضوع عمیق تر شوید. اما محدوده این پست را در نظر بگیرید، این مقاله باید یک توضیح ساده برای درک بهتر باشد. در حقیقت، هر گاه یک ترمینال را باز می‌کنیم یا هر نوع shell دیگیری را در سیستمتان استفاده کنید، آن shell با tty مجازی که PTY یا pseudo-tty هم شناخته می‌شوند، تعامل خواهد داشت.\nشما می‌توانید tty را در ترمینال تایپ کنید و pty مرتبط را پیدا کنید.\nچگونه به tty در لینوکس دسترسی داشته باشیم؟ دسترسی به tty در لینوکس ساده است. در حقیت زمانی که هیچ سرنخی از اینکه tty چیست نداشتم، به طور اتفاقی به آن دسترسی پیدا کردم و از اینکه چطوری باید از آن خارج شوم وحشت زده شدم!\nشما می‌توانید با کلید های میانبر زیر در اکثر توزیع های لینوکس به صفحه tty دسترسی پیدا کنید.\nCTRL + ALT + F1 – Lockscreen\nCTRL + ALT + F2 – Desktop Environment\nCTRL + ALT + F3 – TTY3\nCTRL + ALT + F4 – TTY4\nCTRL + ALT + F5 – TT5\nCTRL + ALT + F6 – TTY6\nشما می‌توانید حد اکثر به 6 tty دسترسی داشته باشید، با این حال دو تا از اولین کلید های میانبر به صفحه قفل و محیط دسکتاپ اشاره دارد.\nبنابر این، با باقی کلید های میانبر شما به محیط command-line دسترسی می‌گیرید.\nچه زمانی شما از tty در لینوکس استفاده خواهید کرد؟ tty فقط یک گنج تکنیکی نیست. حتی برای کاربرانی مثل من که توسعه دهنده هم نیستند مفید است.\nزمانی که محیط گرافیکی فریز می‌شود باید به کار بیاید. در بعضی از مواقع نصب مجدد محیط گرافیکی با استفاده از tty می‌تواند مشکل را حل کند.\nیا شما می‌توانید tty را برای انجام کار هایی مثل آپدیت انتخاب کنید جایی که شما نمی‌خواهید مشکلات بصری فرایند های شما را مختل کند.\nبد ترین مورد سناریو، شما می‌تواند زمانی که محیط دستکتاپ جواب نمی‌دهد، برای ریبوت به tty مراجعه کنید.\nبعضی از کاربران ترجیح می‌دهند که فایل های بزرگ را با tty منتقل کنند(من از آنها نیستم)\ntty به عنوان یک دستور در لینوکس همانطور که در صفحه راهنمای (man page) tty توضیح داده شده است، زمانی که شما tty را در ترمینال تایپ کنید، نام فایل ترمینال که به وردی استاندارد متصل است را چاپ می‌کند.\nبه عبارت دیگر برای دانستن عدد tty که به آن متصل هستید، فقط tty را در ترمینال تایپ کنید. اگر چند کاربر از راه دور به سیستم لینوکس متصل هستند، می‌توانید برای برسی اینکه به چه متصل هستند از کامند who استفاده کنید.\nخارج از ترجمه متن ترجمه شده بود و خب من یک مترجم تخصصی نیستم، من یک برنامه نویسم که بلاگ نویسی و ترجمه رو هم دوست دارم، سعی کردم به بهترین نحو متن را ترجمه کنم و در اختیار بقیه بذارم، اگر حس کردین جایی از متن مشکلی داره، خیلی خوشحال می‌شوم که مشکلم رو بهم بیگید، این کمک بزرگیه.\nمتن اصلی رو می‌توانید از این لینک بخوانید.\n","date":"2022-01-31T19:57:05+03:30","image":"https://bit-orbit.github.io/images/post/tty.jpg","permalink":"https://bit-orbit.github.io/p/%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA-tty/","title":" در لینوکس چیست؟ TTY "},{"content":" زمانی که مقاله یا پستی را می‌خوانم، گاهی احساس می‌کنم ممکنه یک مطلب را فراموش کنم. مثلا اگه مقاله‌ای از ویرگول درباره یک دستور لینوکس بخوانم، برای اینکه مطلبش را فراموش نکنم باید هرزگاهی به پست سر بزنم و مطالب را مرور کنم. اما فکر کنید مطلب درباره برنامه‌ای باشد که می‌توان با استفاده از آن سانسور را دور زد، ویرگول احتمالا آن مطلب را حذف می‌کند.\nچه راهی برای ذخیره پست پشنهاد می‌کنید که بعدا بتوان آن را بارها مرور کرد؟\nاگر پست از سایت منبع حذف شود، و یا حتی خود سایت دیگر در دسترس نباشد، باز هم پستی که ذخیره کرده‌اید در دسترس است؟\nدر این پست با استفاده از ابزار wget یک پست را با تمامی وابستگی هایش مانند عکس ها، فایل های js، فایل های css دانلود می‌کنیم و روی سیستم خودمان ذخیره می‌کنیم تا حتی اگر سایت در دسترس نباشد و یا پست از منبع حذف شد، پست به صورت افلاین در دسترس بماند.\nwget می‌دونید که wget یک ابزار پیشرفته برای دانلود فایله، قابلیت های زیادی که داره باعث شده بعد از سالها که ابزار های پیشرفته دانلود هم نوشته شدن، همچنان wget استفاده بشه. این برنامه روی اکثر توزیع های لینوکس به صورت دیفالت نصبه پس بیایید بدون تلف کردن وقت سوییچ های مهم برای میرور کردن یک صفحه سایت رو برسی کنیم.\nⅠ. --adjust-extension, -E\nشاید شما هم سایتی هایی را دیده باشید که url صفحه هایشان با پسوند .asp به پایان می‌رسند. برای مثال نگاهی به این آدرس بیاندازید https://www.w3schools.com/python/default.asp همانطور که می‌بینید با asp به پایان می‌رسد. زمانی که شما این صفحه را دانلود کنید، این صفحه بجای پسوند html. با پسوند asp. ذخیره خواهد شد.\nبه همین دلیل ما از این سوییچ استفاده می‌کنیم تا صفحه ها را با پسوند html. ذخیره کنیم.\n1 2 3 $ https://example.com/some/where # where.html Ⅱ. --span-hosts, -H\nاگر حتی فقط یک صفحه را میرور می‌کنیم، آن صفحه ممکن است به فایل های خارج از سایت که به روی یک CDN قرار گرفته اند نیاز داشته باشد، مثل عکس ها و یا style sheet ها. از اینرو وقتی شما یک صفحه را میرور می‌کنید wget فایل های خارج از سایت را دانلود نخواهد کرد.\nپوشش دادن فایل های خارج از سایت با استفاده از این سوییچ انجام داده می‌شود. وقتی این سوییچ را روشن کنید wget همه لینک ها از جمله لینک هایی زیر دامنه را هم دانلود خواهد کرد، مگر اینکه عمق پوشش دادن را محدود کنید.\nⅢ. --convert-links, -k\nیک صفحه را که میرور کردیم با توجه به اینکه فایل های پیشیاز مثل عکس و استایل ها را هم دانلود کردیم، وقتی فایل را با مرورگر باز کنیم همچنان صفحه html ما به فایل های داخل سایت منبع لینک شده است و فایل های پیشنازش را حتی با اینکه روی سیستم داریم، باز هم از آدرس خارجی دریافت می‌کند و نمایش می‌دهد.\nبرای اینکه یک صفحه فایل های پیشنیازش را از فایل هایی که در کنار صفحه اصلی دانلود کرده است بگیرد، از این سوییچ استفاده می‌کنیم. این سوییچ تمامی لینک ها را به لینک های داخلی تبدیل می‌کند و صفحه موقع لود شدن از فایل های داخلی استفاده می‌کند.\nⅣ. --page-requisites, -p\nاین سوییچ باعث می‌شود که wget تمامی فایل های ضروری برای درست نمایش داده شدن html را دانلود کند. این فایل ها شامل عکس ها، استایل ها و یا صدا ها می‌شود.\nⅤ. --no-directories, -nd\nبه صورت پیشفرض زمانی که صفحه‌ای با این ادرس را دانلود کنیم\nhttps://example.com/some/where/page.html\nبرنامه wget این صفحه و فایل های مورد نیازش را به این صورت ذخیره خواهد کرد\nsome/where/page.html/.\nاما با استفاده از سوییچ nd- آن صفحه و فایل های مورد نیازش فقط داخل یک دایرکتوری ذخیره خواهد شد. به این صورت\npage.html/.\nبا فعال کردن این سوییچ wget صفحه و فایل های پیشنیاز را داخل دایرکتوری فعلی ذخیره خواهد کرد. و اگر نام یک فایل بیش از یکبار تکرار شود، به نام فایل پسوند اضافه خواهد شد.\nمثال کاربردی و خروجی برای مثال من یک پست توی ویرگول که آموزش الگوریتم RSA هست رو دانلود می‌کنم. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 ┌─[loading] [/tmp/virgool] [0] │ └──〉wget -nd -E -p -k -H https://vrgl.ir/c3fVa --2022-01-18 06:41:03-- https://vrgl.ir/c3fVa Connecting to 192.168.45.250:8080... connected. Proxy request sent, awaiting response... 302 Found Location: https://virgool.io/@Novo/rsa-encryption-ao1poasym4cf [following] --2022-01-18 06:41:04-- https://virgool.io/@Novo/rsa-encryption-ao1poasym4cf Connecting to 192.168.45.250:8080... connected. Proxy request sent, awaiting response... 200 OK Length: unspecified [text/html] Saving to: ‘c3fVa.html’ c3fVa.html [ \u0026lt;=\u0026gt; ] 61.30K 200KB/s in 0.3s 2022-01-18 06:41:06 (200 KB/s) - ‘c3fVa.html’ saved [62773] Loading robots.txt; please ignore errors. --2022-01-18 06:41:06-- https://virgool.io/robots.txt Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: unspecified [document] Saving to: ‘robots.txt’ robots.txt [ \u0026lt;=\u0026gt; ] 484 --.-KB/s in 0s 2022-01-18 06:41:07 (85.7 MB/s) - ‘robots.txt’ saved [484] Loading robots.txt; please ignore errors. --2022-01-18 06:41:07-- https://www.googletagmanager.com/robots.txt Connecting to 192.168.45.250:8080... connected. Proxy request sent, awaiting response... 404 Not Found 2022-01-18 06:41:08 ERROR 404: Not Found. Loading robots.txt; please ignore errors. --2022-01-18 06:41:08-- https://files.virgool.io/robots.txt Connecting to 192.168.45.250:8080... connected. Proxy request sent, awaiting response... 403 Forbidden 2022-01-18 06:41:09 ERROR 403: Forbidden. Loading robots.txt; please ignore errors. --2022-01-18 06:41:09-- https://static.cloudflareinsights.com/robots.txt Connecting to 192.168.45.250:8080... connected. Proxy request sent, awaiting response... 522 2022-01-18 06:41:26 ERROR 522: (no description). --2022-01-18 06:41:26-- https://virgool.io/images/favicon.png?v=v2.6.15 Connecting to 192.168.45.250:8080... connected. Proxy request sent, awaiting response... 200 OK Length: 9855 (9.6K) [image/png] Saving to: ‘favicon.png?v=v2.6.15’ favicon.png?v=v2.6.15 100%[======================================================\u0026gt;] 9.62K --.-KB/s in 0.07s 2022-01-18 06:41:27 (130 KB/s) - ‘favicon.png?v=v2.6.15’ saved [9855/9855] --2022-01-18 06:41:27-- https://virgool.io/css/styles.css?v=v2.6.15 Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: unspecified [text/css] Saving to: ‘styles.css?v=v2.6.15.css’ styles.css?v=v2.6.15.css [ \u0026lt;=\u0026gt; ] 903.60K 592KB/s in 1.5s 2022-01-18 06:41:28 (592 KB/s) - ‘styles.css?v=v2.6.15.css’ saved [925284] Loading robots.txt; please ignore errors. --2022-01-18 06:41:28-- https://virgool.test/robots.txt Connecting to 192.168.45.250:8080... connected. Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. --2022-01-18 06:41:28-- https://www.googletagmanager.com/ns.html?id=GTM-5GS688K Connecting to 192.168.45.250:8080... connected. Proxy request sent, awaiting response... 200 OK Length: unspecified [text/html] Saving to: ‘ns.html?id=GTM-5GS688K.html’ ns.html?id=GTM-5GS688K.html [ \u0026lt;=\u0026gt; ] 266 --.-KB/s in 0s 2022-01-18 06:41:29 (29.4 MB/s) - ‘ns.html?id=GTM-5GS688K.html’ saved [266] --2022-01-18 06:41:29-- https://files.virgool.io/upload/users/31434/avatar/1C4LLE.png?x-img=v1/resize,h_120,w_120/optimize,q_100 Connecting to 192.168.45.250:8080... connected. Proxy request sent, awaiting response... 200 OK Length: 39194 (38K) [image/png] Saving to: ‘1C4LLE.png?x-img=v1%2Fresize,h_120,w_120%2Foptimize,q_100’ 1C4LLE.png?x-img=v1%2Fresize,h_ 100%[======================================================\u0026gt;] 38.28K 173KB/s in 0.2s 2022-01-18 06:41:30 (173 KB/s) - ‘1C4LLE.png?x-img=v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved [39194/39194] --2022-01-18 06:41:30-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/qhokakomwyb5.png Reusing existing connection to files.virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 179870 (176K) [image/png] Saving to: ‘qhokakomwyb5.png’ qhokakomwyb5.png 100%[======================================================\u0026gt;] 175.65K 567KB/s in 0.3s 2022-01-18 06:41:31 (567 KB/s) - ‘qhokakomwyb5.png’ saved [179870/179870] --2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/v1xnwpnewfys.webp Reusing existing connection to files.virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 12770 (12K) [image/webp] Saving to: ‘v1xnwpnewfys.webp’ v1xnwpnewfys.webp 100%[======================================================\u0026gt;] 12.47K --.-KB/s in 0.07s 2022-01-18 06:41:31 (180 KB/s) - ‘v1xnwpnewfys.webp’ saved [12770/12770] --2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/d28hpu2detkl.png Reusing existing connection to files.virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 92847 (91K) [image/png] Saving to: ‘d28hpu2detkl.png’ d28hpu2detkl.png 100%[======================================================\u0026gt;] 90.67K --.-KB/s in 0.09s 2022-01-18 06:41:31 (969 KB/s) - ‘d28hpu2detkl.png’ saved [92847/92847] --2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/rhyykrc8azq0.png Reusing existing connection to files.virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 17539 (17K) [image/png] Saving to: ‘rhyykrc8azq0.png’ rhyykrc8azq0.png 100%[======================================================\u0026gt;] 17.13K --.-KB/s in 0.007s 2022-01-18 06:41:32 (2.47 MB/s) - ‘rhyykrc8azq0.png’ saved [17539/17539] --2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/fjtc1ydzkuse.png Reusing existing connection to files.virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 108524 (106K) [image/png] Saving to: ‘fjtc1ydzkuse.png’ fjtc1ydzkuse.png 100%[======================================================\u0026gt;] 105.98K --.-KB/s in 0.1s 2022-01-18 06:41:32 (1.06 MB/s) - ‘fjtc1ydzkuse.png’ saved [108524/108524] --2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/gfqhgyp18oic.jpeg Reusing existing connection to files.virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 132085 (129K) [image/jpeg] Saving to: ‘gfqhgyp18oic.jpeg’ gfqhgyp18oic.jpeg 100%[======================================================\u0026gt;] 128.99K --.-KB/s in 0.1s 2022-01-18 06:41:32 (1.28 MB/s) - ‘gfqhgyp18oic.jpeg’ saved [132085/132085] --2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/me0mpjtdmyom.png Reusing existing connection to files.virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 113489 (111K) [image/png] Saving to: ‘me0mpjtdmyom.png’ me0mpjtdmyom.png 100%[======================================================\u0026gt;] 110.83K --.-KB/s in 0.1s 2022-01-18 06:41:33 (814 KB/s) - ‘me0mpjtdmyom.png’ saved [113489/113489] --2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/of7krju6oqzk.png Reusing existing connection to files.virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 105746 (103K) [image/png] Saving to: ‘of7krju6oqzk.png’ of7krju6oqzk.png 100%[======================================================\u0026gt;] 103.27K --.-KB/s in 0.08s 2022-01-18 06:41:33 (1.25 MB/s) - ‘of7krju6oqzk.png’ saved [105746/105746] --2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/oqwhflg4gbnq.png Reusing existing connection to files.virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 120994 (118K) [image/png] Saving to: ‘oqwhflg4gbnq.png’ oqwhflg4gbnq.png 100%[======================================================\u0026gt;] 118.16K --.-KB/s in 0.1s 2022-01-18 06:41:33 (1.14 MB/s) - ‘oqwhflg4gbnq.png’ saved [120994/120994] --2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/taqjnfnuzxcx.png Reusing existing connection to files.virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 122678 (120K) [image/png] Saving to: ‘taqjnfnuzxcx.png’ taqjnfnuzxcx.png 100%[======================================================\u0026gt;] 119.80K --.-KB/s in 0.06s 2022-01-18 06:41:34 (2.00 MB/s) - ‘taqjnfnuzxcx.png’ saved [122678/122678] --2022-01-18 06:41:34-- https://files.virgool.io/upload/users/63/posts/qwqrubplfaau/g8vai2incgna.jpeg?x-img=v1/resize,w_300/optimize,q_100 Reusing existing connection to files.virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 88292 (86K) [image/jpeg] Saving to: ‘g8vai2incgna.jpeg?x-img=v1%2Fresize,w_300%2Foptimize,q_100’ g8vai2incgna.jpeg?x-img=v1%2Fre 100%[======================================================\u0026gt;] 86.22K --.-KB/s in 0.1s 2022-01-18 06:41:34 (824 KB/s) - ‘g8vai2incgna.jpeg?x-img=v1%2Fresize,w_300%2Foptimize,q_100’ saved [88292/88292] --2022-01-18 06:41:34-- https://files.virgool.io/upload/users/63/avatar/o8jiNe.png?x-img=v1/resize,h_120,w_120/optimize,q_100 Reusing existing connection to files.virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 32037 (31K) [image/png] Saving to: ‘o8jiNe.png?x-img=v1%2Fresize,h_120,w_120%2Foptimize,q_100’ o8jiNe.png?x-img=v1%2Fresize,h_ 100%[======================================================\u0026gt;] 31.29K --.-KB/s in 0.06s 2022-01-18 06:41:34 (558 KB/s) - ‘o8jiNe.png?x-img=v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved [32037/32037] --2022-01-18 06:41:34-- https://files.virgool.io/upload/users/31434/posts/e3oydlcfkr5e/figl9y1c6otq.jpeg?x-img=v1/resize,w_300/optimize,q_100 Reusing existing connection to files.virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 30356 (30K) [image/jpeg] Saving to: ‘figl9y1c6otq.jpeg?x-img=v1%2Fresize,w_300%2Foptimize,q_100’ figl9y1c6otq.jpeg?x-img=v1%2Fre 100%[======================================================\u0026gt;] 29.64K --.-KB/s in 0.07s 2022-01-18 06:41:35 (401 KB/s) - ‘figl9y1c6otq.jpeg?x-img=v1%2Fresize,w_300%2Foptimize,q_100’ saved [30356/30356] --2022-01-18 06:41:35-- https://files.virgool.io/upload/users/316150/posts/r8rhw88uh1xh/cs1ugyelv3zw.png?x-img=v1/resize,w_300/optimize,q_100 Reusing existing connection to files.virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 34459 (34K) [image/png] Saving to: ‘cs1ugyelv3zw.png?x-img=v1%2Fresize,w_300%2Foptimize,q_100’ cs1ugyelv3zw.png?x-img=v1%2Fres 100%[======================================================\u0026gt;] 33.65K --.-KB/s in 0.08s 2022-01-18 06:41:35 (399 KB/s) - ‘cs1ugyelv3zw.png?x-img=v1%2Fresize,w_300%2Foptimize,q_100’ saved [34459/34459] --2022-01-18 06:41:35-- https://files.virgool.io/upload/users/316150/avatar/8sz7Rs.jpeg?x-img=v1/resize,h_120,w_120/optimize,q_100 Reusing existing connection to files.virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 14764 (14K) [image/jpeg] Saving to: ‘8sz7Rs.jpeg?x-img=v1%2Fresize,h_120,w_120%2Foptimize,q_100’ 8sz7Rs.jpeg?x-img=v1%2Fresize,h 100%[======================================================\u0026gt;] 14.42K --.-KB/s in 0.007s 2022-01-18 06:41:35 (2.11 MB/s) - ‘8sz7Rs.jpeg?x-img=v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved [14764/14764] --2022-01-18 06:41:35-- https://virgool.io/js/commons.js?v=v2.6.15 Connecting to 192.168.45.250:8080... connected. Proxy request sent, awaiting response... 200 OK Length: unspecified [application/javascript] Saving to: ‘commons.js?v=v2.6.15’ commons.js?v=v2.6.15 [ \u0026lt;=\u0026gt; ] 997.55K 337KB/s in 3.0s 2022-01-18 06:41:39 (337 KB/s) - ‘commons.js?v=v2.6.15’ saved [1021492] --2022-01-18 06:41:39-- https://virgool.io/js/main.js?v=v2.6.15 Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: unspecified [application/javascript] Saving to: ‘main.js?v=v2.6.15’ main.js?v=v2.6.15 [ \u0026lt;=\u0026gt; ] 1.21M 580KB/s in 2.1s 2022-01-18 06:41:41 (580 KB/s) - ‘main.js?v=v2.6.15’ saved [1267632] --2022-01-18 06:41:41-- https://static.cloudflareinsights.com/beacon.min.js/v652eace1692a40cfa3763df669d7439c1639079717194 Connecting to 192.168.45.250:8080... connected. Proxy request sent, awaiting response... 200 OK Length: 13970 (14K) [text/javascript] Saving to: ‘v652eace1692a40cfa3763df669d7439c1639079717194’ v652eace1692a40cfa3763df669d743 100%[======================================================\u0026gt;] 13.64K --.-KB/s in 0.02s 2022-01-18 06:41:42 (600 KB/s) - ‘v652eace1692a40cfa3763df669d7439c1639079717194’ saved [13970/13970] --2022-01-18 06:41:42-- https://virgool.io/fonts/vazir/Vazir-Thin.ttf Connecting to 192.168.45.250:8080... connected. Proxy request sent, awaiting response... 200 OK Length: 98924 (97K) [application/octet-stream] Saving to: ‘Vazir-Thin.ttf’ Vazir-Thin.ttf 100%[======================================================\u0026gt;] 96.61K 140KB/s in 0.7s 2022-01-18 06:41:43 (140 KB/s) - ‘Vazir-Thin.ttf’ saved [98924/98924] --2022-01-18 06:41:43-- https://virgool.io/fonts/vazir/Vazir-Thin.eot? Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: unspecified [application/vnd.ms-fontobject] Saving to: ‘Vazir-Thin.eot?’ Vazir-Thin.eot? [ \u0026lt;=\u0026gt; ] 96.80K 276KB/s in 0.4s 2022-01-18 06:41:44 (276 KB/s) - ‘Vazir-Thin.eot?’ saved [99120] --2022-01-18 06:41:44-- https://virgool.io/fonts/vazir/Vazir-Thin.woff Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 54068 (53K) [font/woff] Saving to: ‘Vazir-Thin.woff’ Vazir-Thin.woff 100%[======================================================\u0026gt;] 52.80K --.-KB/s in 0.07s 2022-01-18 06:41:45 (770 KB/s) - ‘Vazir-Thin.woff’ saved [54068/54068] --2022-01-18 06:41:45-- https://virgool.io/fonts/vazir/Vazir-Thin.woff2 Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 43000 (42K) [font/woff2] Saving to: ‘Vazir-Thin.woff2’ Vazir-Thin.woff2 100%[======================================================\u0026gt;] 41.99K --.-KB/s in 0.006s 2022-01-18 06:41:46 (6.59 MB/s) - ‘Vazir-Thin.woff2’ saved [43000/43000] --2022-01-18 06:41:46-- https://virgool.io/fonts/vazir/Vazir-Light.ttf Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 105360 (103K) [application/octet-stream] Saving to: ‘Vazir-Light.ttf’ Vazir-Light.ttf 100%[======================================================\u0026gt;] 102.89K 478KB/s in 0.2s 2022-01-18 06:41:46 (478 KB/s) - ‘Vazir-Light.ttf’ saved [105360/105360] --2022-01-18 06:41:46-- https://virgool.io/fonts/vazir/Vazir-Light.eot? Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: unspecified [application/vnd.ms-fontobject] Saving to: ‘Vazir-Light.eot?’ Vazir-Light.eot? [ \u0026lt;=\u0026gt; ] 103.09K 470KB/s in 0.2s 2022-01-18 06:41:47 (470 KB/s) - ‘Vazir-Light.eot?’ saved [105562] --2022-01-18 06:41:47-- https://virgool.io/fonts/vazir/Vazir-Light.woff Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 59688 (58K) [font/woff] Saving to: ‘Vazir-Light.woff’ Vazir-Light.woff 100%[======================================================\u0026gt;] 58.29K --.-KB/s in 0.08s 2022-01-18 06:41:48 (758 KB/s) - ‘Vazir-Light.woff’ saved [59688/59688] --2022-01-18 06:41:48-- https://virgool.io/fonts/vazir/Vazir-Light.woff2 Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 48168 (47K) [font/woff2] Saving to: ‘Vazir-Light.woff2’ Vazir-Light.woff2 100%[======================================================\u0026gt;] 47.04K --.-KB/s in 0.08s 2022-01-18 06:41:48 (570 KB/s) - ‘Vazir-Light.woff2’ saved [48168/48168] --2022-01-18 06:41:48-- https://virgool.io/fonts/vazir/Vazir-Regular.ttf Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 98376 (96K) [application/octet-stream] Saving to: ‘Vazir-Regular.ttf’ Vazir-Regular.ttf 100%[======================================================\u0026gt;] 96.07K 435KB/s in 0.2s 2022-01-18 06:41:49 (435 KB/s) - ‘Vazir-Regular.ttf’ saved [98376/98376] --2022-01-18 06:41:49-- https://virgool.io/fonts/vazir/Vazir-Regular.eot? Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: unspecified [application/vnd.ms-fontobject] Saving to: ‘Vazir-Regular.eot?’ Vazir-Regular.eot? [ \u0026lt;=\u0026gt; ] 96.26K 285KB/s in 0.3s 2022-01-18 06:41:50 (285 KB/s) - ‘Vazir-Regular.eot?’ saved [98574] --2022-01-18 06:41:50-- https://virgool.io/fonts/vazir/Vazir-Regular.woff Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 53744 (52K) [font/woff] Saving to: ‘Vazir-Regular.woff’ Vazir-Regular.woff 100%[======================================================\u0026gt;] 52.48K --.-KB/s in 0.05s 2022-01-18 06:41:51 (1.10 MB/s) - ‘Vazir-Regular.woff’ saved [53744/53744] --2022-01-18 06:41:51-- https://virgool.io/fonts/vazir/Vazir-Regular.woff2 Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 42744 (42K) [font/woff2] Saving to: ‘Vazir-Regular.woff2’ Vazir-Regular.woff2 100%[======================================================\u0026gt;] 41.74K --.-KB/s in 0.1s 2022-01-18 06:41:51 (412 KB/s) - ‘Vazir-Regular.woff2’ saved [42744/42744] --2022-01-18 06:41:51-- https://virgool.io/fonts/vazir/Vazir-Medium.ttf Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 98892 (97K) [application/octet-stream] Saving to: ‘Vazir-Medium.ttf’ Vazir-Medium.ttf 100%[======================================================\u0026gt;] 96.57K 606KB/s in 0.2s 2022-01-18 06:41:52 (606 KB/s) - ‘Vazir-Medium.ttf’ saved [98892/98892] --2022-01-18 06:41:52-- https://virgool.io/fonts/vazir/Vazir-Medium.eot? Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: unspecified [application/vnd.ms-fontobject] Saving to: ‘Vazir-Medium.eot?’ Vazir-Medium.eot? [ \u0026lt;=\u0026gt; ] 96.78K 347KB/s in 0.3s 2022-01-18 06:41:53 (347 KB/s) - ‘Vazir-Medium.eot?’ saved [99100] --2022-01-18 06:41:53-- https://virgool.io/fonts/vazir/Vazir-Medium.woff Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 54120 (53K) [font/woff] Saving to: ‘Vazir-Medium.woff’ Vazir-Medium.woff 100%[======================================================\u0026gt;] 52.85K 125KB/s in 0.4s 2022-01-18 06:41:54 (125 KB/s) - ‘Vazir-Medium.woff’ saved [54120/54120] --2022-01-18 06:41:54-- https://virgool.io/fonts/vazir/Vazir-Medium.woff2 Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 43152 (42K) [font/woff2] Saving to: ‘Vazir-Medium.woff2’ Vazir-Medium.woff2 100%[======================================================\u0026gt;] 42.14K --.-KB/s in 0.08s 2022-01-18 06:41:54 (541 KB/s) - ‘Vazir-Medium.woff2’ saved [43152/43152] --2022-01-18 06:41:54-- https://virgool.io/fonts/vazir/Vazir-Bold.ttf Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 99840 (98K) [application/octet-stream] Saving to: ‘Vazir-Bold.ttf’ Vazir-Bold.ttf 100%[======================================================\u0026gt;] 97.50K --.-KB/s in 0.04s 2022-01-18 06:41:55 (2.61 MB/s) - ‘Vazir-Bold.ttf’ saved [99840/99840] --2022-01-18 06:41:55-- https://virgool.io/fonts/vazir/Vazir-Bold.eot? Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: unspecified [application/vnd.ms-fontobject] Saving to: ‘Vazir-Bold.eot?’ Vazir-Bold.eot? [ \u0026lt;=\u0026gt; ] 97.68K 560KB/s in 0.2s 2022-01-18 06:41:56 (560 KB/s) - ‘Vazir-Bold.eot?’ saved [100026] --2022-01-18 06:41:56-- https://virgool.io/fonts/vazir/Vazir-Bold.woff Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 54560 (53K) [font/woff] Saving to: ‘Vazir-Bold.woff’ Vazir-Bold.woff 100%[======================================================\u0026gt;] 53.28K --.-KB/s in 0.06s 2022-01-18 06:41:56 (917 KB/s) - ‘Vazir-Bold.woff’ saved [54560/54560] --2022-01-18 06:41:56-- https://virgool.io/fonts/vazir/Vazir-Bold.woff2 Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 43604 (43K) [font/woff2] Saving to: ‘Vazir-Bold.woff2’ Vazir-Bold.woff2 100%[======================================================\u0026gt;] 42.58K --.-KB/s in 0.06s 2022-01-18 06:41:57 (657 KB/s) - ‘Vazir-Bold.woff2’ saved [43604/43604] --2022-01-18 06:41:57-- https://virgool.io/fonts/vazir/Vazir-Black.ttf Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 99772 (97K) [application/octet-stream] Saving to: ‘Vazir-Black.ttf’ Vazir-Black.ttf 100%[======================================================\u0026gt;] 97.43K --.-KB/s in 0.04s 2022-01-18 06:41:57 (2.18 MB/s) - ‘Vazir-Black.ttf’ saved [99772/99772] --2022-01-18 06:41:57-- https://virgool.io/fonts/vazir/Vazir-Black.eot? Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: unspecified [application/vnd.ms-fontobject] Saving to: ‘Vazir-Black.eot?’ Vazir-Black.eot? [ \u0026lt;=\u0026gt; ] 97.63K 478KB/s in 0.2s 2022-01-18 06:41:58 (478 KB/s) - ‘Vazir-Black.eot?’ saved [99974] --2022-01-18 06:41:58-- https://virgool.io/fonts/vazir/Vazir-Black.woff Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 54652 (53K) [font/woff] Saving to: ‘Vazir-Black.woff’ Vazir-Black.woff 100%[======================================================\u0026gt;] 53.37K --.-KB/s in 0.08s 2022-01-18 06:41:59 (691 KB/s) - ‘Vazir-Black.woff’ saved [54652/54652] --2022-01-18 06:41:59-- https://virgool.io/fonts/vazir/Vazir-Black.woff2 Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 43332 (42K) [font/woff2] Saving to: ‘Vazir-Black.woff2’ Vazir-Black.woff2 100%[======================================================\u0026gt;] 42.32K --.-KB/s in 0.08s 2022-01-18 06:42:00 (510 KB/s) - ‘Vazir-Black.woff2’ saved [43332/43332] --2022-01-18 06:42:00-- https://virgool.io/fonts/fontawesome/fa-solid-900.ttf Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 202616 (198K) [application/octet-stream] Saving to: ‘fa-solid-900.ttf’ fa-solid-900.ttf 100%[======================================================\u0026gt;] 197.87K 501KB/s in 0.4s 2022-01-18 06:42:01 (501 KB/s) - ‘fa-solid-900.ttf’ saved [202616/202616] --2022-01-18 06:42:01-- https://virgool.io/fonts/fontawesome/fa-solid-900.eot? Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 404 Not Found 2022-01-18 06:42:01 ERROR 404: Not Found. --2022-01-18 06:42:01-- https://virgool.io/fonts/fontawesome/fa-solid-900.woff Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 103300 (101K) [font/woff] Saving to: ‘fa-solid-900.woff’ fa-solid-900.woff 100%[======================================================\u0026gt;] 100.88K 358KB/s in 0.3s 2022-01-18 06:42:02 (358 KB/s) - ‘fa-solid-900.woff’ saved [103300/103300] --2022-01-18 06:42:02-- https://virgool.io/fonts/fontawesome/fa-solid-900.woff2 Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 79444 (78K) [font/woff2] Saving to: ‘fa-solid-900.woff2’ fa-solid-900.woff2 100%[======================================================\u0026gt;] 77.58K 394KB/s in 0.2s 2022-01-18 06:42:03 (394 KB/s) - ‘fa-solid-900.woff2’ saved [79444/79444] --2022-01-18 06:42:03-- https://virgool.io/images/icons/plus.svg Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: unspecified [image/svg+xml] Saving to: ‘plus.svg’ plus.svg [ \u0026lt;=\u0026gt; ] 942 --.-KB/s in 0.002s 2022-01-18 06:42:03 (383 KB/s) - ‘plus.svg’ saved [942] --2022-01-18 06:42:03-- https://virgool.io/images/icons/tick.svg Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: unspecified [image/svg+xml] Saving to: ‘tick.svg’ tick.svg [ \u0026lt;=\u0026gt; ] 942 --.-KB/s in 0s 2022-01-18 06:42:04 (89.8 MB/s) - ‘tick.svg’ saved [942] --2022-01-18 06:42:04-- https://virgool.io/images/typewriter.png Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 172558 (169K) [image/png] Saving to: ‘typewriter.png’ typewriter.png 100%[======================================================\u0026gt;] 168.51K 349KB/s in 0.5s 2022-01-18 06:42:05 (349 KB/s) - ‘typewriter.png’ saved [172558/172558] --2022-01-18 06:42:05-- https://virgool.test/images/download-audio.png Connecting to 192.168.45.250:8080... connected. Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. --2022-01-18 06:42:05-- https://virgool.test/images/download-ebook.png Connecting to 192.168.45.250:8080... connected. Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. FINISHED --2022-01-18 06:42:05-- Total wall clock time: 1m 2s Downloaded: 54 files, 6.6M in 14s (479 KB/s) Converting links in ns.html?id=GTM-5GS688K.html... nothing to do. Converting links in c3fVa.html... 38. 31-7 Converting links in styles.css?v=v2.6.15.css... 35. 34-1 Converted links in 3 files in 0.06 seconds. ","date":"2022-01-17T14:56:14+03:30","image":"https://bit-orbit.github.io/images/post/snp.jpg","permalink":"https://bit-orbit.github.io/p/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4%D8%B9%DA%A9%D8%B3-%D8%A7%D8%B3%D8%AA%D8%A7%DB%8C%D9%84-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA/","title":"اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش(عکس، استایل، جاوا اسکریپت)"},{"content":" اگر مثل من از محیط gnome روی توزیع لینوکس استفاده می‌کنید، احتمالا شیفته سادگی‌اش شدید! اما بیایید چند پلاگین به آن اضافه کنیم تا درضمن داشتن این سادگی، عملکرد این محیط را توسعه دهیم.\n#I Shutdown Timer در لینوکس به سادگی با یک کامند می‌شود سیستم را زمانبندی کرد که خاموش یا تعلیق شود. با نصب این پلاگین مجبور به وارد کردن کامند برای خاموش/تعلیق کردن نیستیم!\n#II Application Volume Mixer بار ها شده که نیاز دارم صدای یک برنامه رو کم کنم و صدای برنامه‌ای دیگر را زیاد. ممکنه بعضی از برنامه ها مانند vlc این امکان را خودشان فراهم کرده باشند. اما با این پلاگین شما به راحتی می‌توانید صدای هر برنامه را به صورت مجزا کنترل کنید.\nIII dash-to-dock task bar پیشفرض گنوم بد نیست ولی ظاهر زیبایی هم نداره. اما این پلاگین task bar شما را به dock تبدیل می‌کند. ظاهر کوچک و زیباتری دارد\nبه صورت پیشفرض زمانی که یک برنامه maximize است dock پنهان می‌شود و زمانی که موس شما به سمت مکانی که dock پنهان شده است می‌رود dock ظاهر می‌شود.\n#IV Clipboard Indicator فرض کیند متنی را کپی می‌کنیم و بعد از مدتی متن و یا فایل های دیگری را کپی می‌کنیم و بعد از مدتی مجددا به متن اولیه نیاز پیدا کرده‌ایم ولی دیگر در کلیپ برد ما نیست چرا که داده های بعدی جایگزین متن اولیه در کلیپ برد شده است.\nپلاگین clipboard indicator هر متنی را که کپی کنیم را در فهرستی ذخیره می‌کند. علاوه به این یک فهرست favorite هم در این کلیپ برد وجود دارد که می‌توانید متن هایی را به آن اضافه کنید که دیگر خذف نشوند. و همچنین از فهرست اصلی جدا باشد.\nو شاید بخشی از متنی را به یاد داشته باشید که نیاز دارید ببینید در کلیپ برد هست و یا نه، برای اینکار هم یک بخش جست و جو وجود دارد.\n#V net speed بیشتر مواقع نیاز داریم تا سرعت اینترنت را هنگام استفاده از آن ببینیم. و یا زمانی که فایلی در شبکه انتقال می‌دهیم نیاز داریم تا سرعت انتقال را در هر لحظه بدانیم. پلاگین NetSpeed این قابلیت را دارد که سرعت شبکه وایرلس و شبکه سیمی را مجزا نشان دهد.\n#VI Caffeine وقتی برای مدتی به موس و کیبرد دست نزنیم صفحه نمایش خودکار خاموش می‌شود و بعد از مدتی سیستم به حالت suspend می‌رود. اولین راهی که ذهن ما می‌رسد این است که در تظیمات زمان به تعلیق درامدن سیستم را بیشتر کنیم. اما این روش زمانی که نیازش نداریم کار مفیدی نیست، چرا که ممکن است ساعات ها سیستم بدون هیچ استفاده‌ای روشن بماند. برای همین من این پلاگین را دارم، زمانی که نیاز دارم تا از سیستم دور باشم کافئین رو روشن می‌کنم و زمانی که نمی‌دونم چی پیش میاد! خاموشش می‌‌کنم.\n#VII Google Search با وجود این اکستنشن شما مجبور به اجرای مرورگر برای جست و جوی یک عبارت نیستید. کافیه عبارت جست و جو رو در منوی overview خود گنوم بنویسید و بعد یکی از پیشنهاد های گوگل را انتخاب کنید. و یا حتی خود عبارت را جست و جو کنید.\n#VIII Jiggle کرسر موس رو گم کردین؟ موس رو تکون بدین!\n#IX Custom Hot Corners یکی از پلاگین های مورد علاقه من، با این پلاگین لبه سیستم را برای یک عمل خاصی تنظیم می‌کنیم که وقتی کرسور موس به سمت آن رفت، آن عمل انجام بشود. مثلا وقتی موس به گوشه سمت بالا برخورد کرد، منوی over view باز بشود. و یا مثلا نظیم می‌کنیم که وقتی موس به گوشه پایین سمنت چپ بر خورد کرد یک کامند اجرا شود.\n","date":"2022-01-14T18:18:28+03:30","image":"https://bit-orbit.github.io/images/post/gp.jpg","permalink":"https://bit-orbit.github.io/p/%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C-%DA%AF%D9%86%D9%88%D9%85/","title":" پلاگین های کاربردی گنوم "},{"content":"نوشتن یک برنامه کار سختی نیست، بلکه نگه‌داری و آپدیت یک برنامه‌ست، پلاگین این ویژگی را می‌دهد تا به راحتی عملکرد یک برنامه را بی‌افزاییم.\nthemes #Ⅳ انتخاب بین تم های zsh واقعا کار سختیه!‌ هر تم ظاهر جدیدی به ترمینال شما می‌دهد که کار کردن در ترمینال را جذاب تر می‌کند.\nبا استفاده از این پلاگین شما بدون نیاز به تغییر دستی فایل کانفیگ zshrc.، می‌توانید تم را تغییر بدین.\nتغییر به یک تم مشخص theme theme_name\nتغییر رندم تم theme\nدیدن لیستی از تم های نصب شده lstheme\nzsh-autosuggestions #Ⅲ تنها پلاگینی که باید نصب بشه\nاین یکی از پلاگین هایی است که بدون آن زندگی ممکن نیست!\nهمانطور که شما دستوری را تایپ می‌کنید، متنی به رنگ خاکستری ظاهر می‌شود که به شما دستورات ممکن را پیشنهاد می‌دهد و یا از history دستور مشابه که قبلا اجرا کرده‌اید را جست و جو می‌کند و پیشنهاد می‌هد. و خب شما را برای تایپ کردن کامل دستور و سوییچ هایش راحت می‌کند. برای اینکه دستور ظاهر شده تایپ شود کافیست کلید right arrow key یا همان فلش سمت راست را فشار دهید.\nsudo #Ⅱ بار ها اتفاق افتاده دستوری را که نیاز به دسترسی root داشته را بدون نوشتن کلمه sudo اجرا کرده‌ام، و بعد از دیدن ارور، دستور را دوباره تایپ کردم و کلمه sudo را هم به اول دستور اضافه کردم. اما این پلاگین بار تایپ مجدد یک دستور بخاطر فراموش کردن کلمه sudo را از دوش ما بر‌ می‌دارد. کافیست بعد از نوشتن و اجرای دستور بدون sudo، دوبار کلید esc را بزنید\nweb-search #Ⅰ وقتی با لینوکس کار می‌‌کنید، تمام لحظه ها در ترمینال هستنید. فرض کنید سوالی دارید که باید آن را گوگل کنید،‌ شما مجبور می‌شوید مرورگر را باز کنید، یک تب جدید ایجاد کنید و متنتان را سرچ کنید. ولی به این فکر کنید که نیازی به باز کردن مرورگر و یا سوییچ کردن بین ویندوز ها ندارید، کافیست عبارت google را در ترمینال تایپ کنید و متن خود را جلو آن بنوسید و در آخر دکمه اینتر را بزنید! بنگ! گوگل باز می‌شود و حاصل جست و جوی شما آماده است.\nدستور\\موتور جست و جو bing google yahoo ddg or duckduckgo sp or startpage yandex github baidu ecosia goodreads qwant givero stackoverflow wolframalpha archive scholar ","date":"2022-01-11T02:44:12+03:30","image":"https://bit-orbit.github.io/images/post/terminal.jpg","permalink":"https://bit-orbit.github.io/p/zsh-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C/","title":" zsh بهترین پلاگین های "}] \ No newline at end of file +[{"content":" من همیشه برای کپی کردن فایل هام بین سرور و سیستمم از scp استفاده می‌کنم. البته گاهی هم با FileZilla به صورت گرافیکی کارم رو راه می‌اندازم.\nما برای ارتباط با یک سرور معمولا از سرویس ssh استفاده می‌کنیم. و خب احتمال می‌دم شما روی سرورتون این سرویس رو داشته باشین.\nتوی این پست ما دایرکتوری home یوزری که بهش دستری داریم رو روی یکی از دایکتوری های سیستم لوکالمون ماونت می‌کنیم و بعد از اون مثل یک دایرکتوری عادی که روی هارد هست استفاده می‌کنیم.\nبا اینکار شما از طریق هر فایل منیجر که دارید مثل Gnome Files می‌تونید به دایرکتوری دسترسی داشته باشید. حتی با ترمینال می‌تونید cd کنید به اون مسیر و دقیقا مثل یک فایل سیستم لوکال باهاش کار کنید.\nقدم اول نصب ابزاری هست که این کار رو برای ما انجام می‌ده، توی هر توزیعی اسم این ابزار ممکنه متفاوت باشه ولی توی اوبونتو sshfs هست و با apt نصب می‌شه.\nخب برای اینکه فایل سیتم رو ماونت کنیم باید یک مسیر روی سیستم لوکال مشخص کنیم که فایل سیستم سرور روی اون ماونت بشه. این مسیر هر جایی می‌تونه باشه فقط دقت کنید که دسترسی سطح کاربری خودتون رو بهش بدین. مسیرانتخابی من /media/arya/cloud هست.\nحالا ما فرض می‌کنیم یوزری که روی سرور بهش دسترسی داریم arya هست، پس مثل ssh، از اسم این یوزر قبل از ادرس سرور استفاده می‌کنم.\nو مثل ابزار mount می‌تونیم با فلگ o- آپشن هایی رو برای ماونت مشخص کنیم.\nتوی این مثال من مسیر /home/arya که دایرکتوری home کاربر arya که روی سرور هست رو به دایرکتوری /media/arya/cloud که دایرکتوری لوکال من هست متصل می‌کنم.\n1 2 3 # -o OptionsList, user@serverAddress :SourcePath #PathToMount sudo sshfs -o reconnect,allow_other arya@server.wiregeek.ir:/home/arya /media/arya/cloud می‌تونیم بجای مسیر دایرکتوری سرور یک اسپیس بذاریم، اینطوری پیشفرض همون دایرکتوری home رو استفاده می‌کنه.\nمن دو آپشن برای ماونت مشخص کردم اولین reconnect هست که برای زمانی استفاده می‌شه که کانکشن شما با سرور قطع می‌شه و این ابزار این کانکشن رو دوباره ایجاد می‌کنه\nدومین که allow_other هست برای این استفاده می‌شه که به دیگر کاربران سیستم هم اجازه دسترسی به اون دایرکتوری رو بده.\nبعد از انجام اینکار ها، دایرکتوری شما آماده استفاده‌ست. کافیه به مسیری که فایل سیستم رو داخل اون ماونت کردین برین، توی مثال ما /media/arya/cloud بود.\nبعد از همه اینها اگه نیاز شد تا این فایل سیستم رو unmount(جدا) کنید، خیلی ساده می‌تونید از ابزار umount و در ادامه اون مسیر دایرکتوری که فایل سیستم روی اون ماونت شده استفاده کنید.\n1 sudo umount /media/arya/cloud حتی می‌تونید فایل سیستم را در زمان روشن شدن سیستم ماونت کنید. اینکار خیلی ساده با فایل /etc/fstab و سینتکس این فایل انجام می‌شه. فقط file system type رو باید sshfs بنویسید.\n1 2 3 4 # /etc/fstab # \u0026lt;file system\u0026gt; \u0026lt;mount point\u0026gt; \u0026lt;type\u0026gt; \u0026lt;options\u0026gt; \u0026lt;dump\u0026gt; \u0026lt;pass\u0026gt; arya@server.wiregeek.ir:/home/arya/ /media/arya/cloud/ sshfs allow_other,reconnec یادتون باشه که برای اینکار حتما از قبل کلید پابلیک سیستمون رو داخل سرور کپی کرده باشید.\nبرای اینکه همش پسورد مزاحمتون نباشه و موقع استارتاپ فایل سیستم روی سیستم شما ماونت بشه باید کلید پابلیک خودتون رو کپی کرده باشید داخل سرور. برای اینکار از ابزار ssh-copy-id استفاده کنید.\n1 ssh-copy-id arya@server.wiregeek.ir ","date":"2024-09-09T13:23:06+03:30","image":"https://bit-orbit.github.io/images/post/dc.jpg","permalink":"https://bit-orbit.github.io/p/%D9%85%D8%A7%D9%86%D8%AA-%DA%A9%D8%B1%D8%AF%D9%86-%D8%AF%D8%A7%DB%8C%D8%B1%DA%A9%D8%AA%D9%88%D8%B1%DB%8C-%D8%B3%D8%B1%D9%88%D8%B1-%D8%B1%D9%88%DB%8C-%D8%AF%D8%A7%DB%8C%D8%B1%DA%A9%D8%AA%D9%88%D8%B1%DB%8C-%D9%84%D9%88%DA%A9%D8%A7%D9%84/","title":"مانت کردن دایرکتوری سرور روی دایرکتوری لوکال"},{"content":" مقدمه همیشه موقع ویرایش فایل resolve.conf برام سوال بود که گزین های دیگه‌ای که توی این فایل تنظیم شده‌اند چکاری انجام می‌دهند. درواقع من همیشه دستور namveserver را برای تغییر سرور dns ویرایش می‌کردم. اما دستور هایی دیگه‌ای هم برای این فایل وجود دارد که لیست آنها در man resolve.conf توضیح داده شده است.\nتوی این پست من بعضی از دستورات این فایل را توضیح می‌دم.\nدر مرحله اول یادتون باشه لینوکس هایی که systemd دارند، معمولا از سرویس systemd-resolved هم استفاده می‌کنند، این یک سرویس DNS لوکال است. در واقع دامنمه‌ها را resolve می‌کند و سپس آنها را کش می‌کند که یک دامنه را چندین بار resolve نکند.\nیک دامنه حد اقل از دو بخش تشکیل می‌شود.\nTLD Domain 1 2 3 4 5 6 7 8 bin.example.com │ │ │ │ │ └─► TDL(Top Level Domain) │ │ │ └───────► Domain │ └─────────────► SubDomain دستورات 1 nameserver\nاین دستور برای تعیین IP یک سرور DNS استفاده می‌شود.(در واقع اینجا منظورم یک سرویسی است که به نامه دامنه ها پاسخ دهد که به آن NS می‌گویم.)\nشما می‌توانید تا حداقل سه IP لیست کنید، و resolver سیستم شما به ترتیب به آنها کوئری خواهد زد. البته زمانی که اولین NS جواب گو نباشد، از دیگر NS های لیست شده استفاده خواهد شد.\nاگر به همین ترتیب هر یک از NS ها جوابگو نباشد، کوئری ها از اول شروع می‌شود تا به حداکثر تعداد کوئری تعیین شده برسد.\nبرای مثال من می‌توانم چند NS مختلف را برای خودم تعیین کنم.\n1 2 nameserver 1.1.1.1 nameserver 8.8.8.8 2 options\nبرای این دستور متغیر های مختلفی را می‌توان تعیین کرد.\n2.1 ndots\nحداقل هر دامنه‌ای در سطح اینترنت یک نقطه دارد، برای مثال google.com یک نقطه دارد. شما می‌توانید با این متغیر تعین کنید که دامنه‌های در سطح اینترنت باید چند نقطه داشته باشند، هر نقطه نشانه ساب دامنه‌ است. برای مثال به صورت پیشفرض این متغیر 1 تنظیم شده است. به این معنی است که هر دامنه‌ای یک نقطه داشت، این دامنه در سطح اینترنت است. ولی اگر شما مقدار این متغیر را 2 تنظیم کنید، دامنه‌ای مثل google.com بعنوان دامنه لوکال تشخیص داده خواهد شد و hostname شما به اول دامنه اضافه خواهد شد. مثلا اگر hostname شما arya باشد، دامنه به این شکل کوئری زده خواهد شد google.com.arya\nدر صورتی که شما برای جست و جوی یک دامنه از هیچ TLD استفاده نکید، از hostname و یا از مقداری که برای search مشخص کرده‌اید استفاده خواهد شد.\n2.2 timeout\nاین متغیر تعیین می‌کند که resolver چه مقدار زمانی باید منتظر جواب از سمت NS باشد، و اگر آن NS جواب نداد، از NS های بعدی سوال کند. 2.3 attempts\nاین متغیر تعین می‌کند که resolver در صورت جواب ندادن توسط NS باید در نهایت چند کوئری دیگر ارسال کند. برای مثال اگر اولین NS پاسخ نداد، سوال از NS دوم و به همین ترتیب از سوم پرسیده خواهد شد، تابه حداکثر مقدار attempts برسیم.(پس attempts مجوع سوال ها از همه NS ها است.)\n2.4 rotate\nبه صورت پیشفرض کوئری های DNS همه برای اولین NS لیست شده ارسال می‌شود و خب این باعث می‌شود که بار زیادی روی اولین NS باشد، برای اینکه این بار را بین همه ‌NS ها تقسیم کنیم، کافیست از این متغیر استفاده کنیم. اینکار باعث می‌شود که هر کوئری ها به صورت چرخشی به ترتیب به NS های لیست شده ارسال شود. 3 search همانطور که در مثال بالا گفتم، ما نام دامنه ها را تنظیم می‌کنیم که حداقل وقتی یک نقطه دارند، resolver آنها را دامنه‌ در سطح اینترنت در نظر بگیرد و به NS کوئری بزند. ولی اگر هیچ نقطه‌ای نداشت و یا شما ndots را بیشتر یا مساوی با 2 نتظیم کرده باشید، hostname سیستم شما به آخر آن دامنه اضافه خواهد شد و یک دامنه داخلی (local) تلقی خواهد شد. اما اگر می‌خواهید قبل از اضافه شدن hostname به آن چیز دیگری اضافه کنید، کافیست متغیر سرچ را تعریف کنید و یک یا چند مقدار برای آن تعیین کنید. سرویس systemd-resolve اگر به فایل /etc/resolve.conf نگاه کنید، می‌بینید که یک ns برای شما تنظیم شده است که IP آن داخلی است.\n1 2 # cat /etc/resolve.conf nameserver 127.0.0.53 همانطور که توی نکته‌ای در مقدمه این پست گفتم، سیستم عاملی هایی که از systemd استفاده می‌کنند معمولا سرویس systemd-resolve را دارند که یک DNS داخلی است. این سرویس روی IP 127.0.0.53 و 127.0.0.54 شنود می‌کند.\nاین سرویس خودش یک کانفیگ در etc/ststemd/resolved.conf/ دارد.\nاگر داخل این فایل را نگاه کنیم، می‌بنیم که در قسمت ‌DNS می‌توان NS های بالاتر را وارد کرد، اینکار باعث می‌شود که سیستم شما وقتی یک دامنه را در حافظه کش خود نداشت، از NS های بالاتر که در این فایل تنظیم شده است سوال کند.\n1 2 [Resolve] DNS=1.1.1.1 8.8.8.8 ابته تاکید کنم در صورتی از این NS ها استفاده می‌شود که شما ‌از 127.0.0.53 و 127.0.0.54 در کانفیگ /etc/resolve.conf استفاده کرده باشید.\nتفاوت 127.0.0.54 این است که هر کوئری را مستقیم به NS بالاتر ارسال خواهد کرد و از دیتای کش شده استفاده نمی‌کند. ولی 127.0.0.53 از قابلیت کش استفاده می‌کند.\nمثال 1 2 3 4 5 6 7 8 9 10 nameserver 1.1.1.1 nameserver 8.8.8.8 nameserver 9.9.9.9 options ndots:1 options timeout:2 options attempts:3 options rotate search server1 server2 سخنی با شما این را بگم که DNS به صورت recursive(بازگشتی) عمل می‌کنه، این یعنی وقتی شما یک کوئری ارسال می‌کنید، این کوئری هر بار به یک سرور بالاتر ارسال می‌شود تا در نهایت به جواب برسه. و خب این موضوع خودش در نهایت یک جریان خیلی جالب داره که امیدوارم یک روز اون رو هم بنویسم :)\n","date":"2024-08-01T03:03:46+03:30","image":"https://bit-orbit.github.io/images/post/OIG4.jpeg","permalink":"https://bit-orbit.github.io/p/etc/resolve.conf/","title":"etc/resolve.conf/"},{"content":" همان‌طور که می‌دانید، کامپایلرها سورس کد ما که به یک زبان سطح بالا نوشته شده است را به یک زبان سطح پایین‌تر ترجمه می‌کنند. برای مثال، کامپایلر کدی که به زبان C نوشته شده است را به زبان اسمبلی ترجمه می‌کند. همچنین باید ذکر کنم که در زبان C، پس از ترجمه به اسمبلی، کد به زبان ماشین که می‌تواند مستقیماً روی سخت‌افزار اجرا شود، ترجمه می‌شود.\nاما ما نرم افزاری داریم که سورس کد را به یک سورس کد دیگر ترجمه می‌کند، به این نوع نرم افزار ها transpiler گفته می‌شود. برای مثال شما یک کد را به زبان پایتون نوشته‌اید را می‌توانید با برنامه مشخصی تبدیل کنید به زبان JavaScrip.\nاگر به نظرتون Bash سینتکس سختی داره، خب کافیه C بلد باشین و کدتون رو به زبان C بنویسید، و با Pnut.sh به Bash ترجمه کنید!\nالبته محدودیت هایی وجود داره\nعدد اعشار, goto, switch ساپورت نمی‌شود. همچنین نمی‌توان یک متغییر را رفرنس کرد(\u0026amp;) البته باید در نظر داشت که Bash جایگزین C نیست. و خب هر چیزی که به C نوشته شده رو نمی‌شود به Bash ترجمه کرد. با این حال اینکار برای تبدیل بعضی از کد های ساده به یک کد پرتابل می‌تواند مفید باشد\n","date":"2024-07-27T18:27:21+03:30","image":"https://bit-orbit.github.io/images/post/transpiler.jpg","permalink":"https://bit-orbit.github.io/p/transpiler-%D8%AA%D8%B1%D8%AC%D9%85%D9%87-%DA%A9%D8%AF-c-%D8%A8%D9%87-bash/","title":"Transpiler | ترجمه کد C به Bash"},{"content":"اول بیایید ببینم FileBin چیه! قبل از اون هم فکر می‌کنم همه بدونیم pastebin چیه. اگه نمی‌دونید خیلی ساده باید بگم یک سایتی که فقط روی اون متن به اشتراک می‌ذارن مثلا ممکنه ارور ها یا حتی سورس یک برنامه باشه!\nاما FileBin ها بجای تسکت فایل های شما رو نگهداری می‌کنند و به شما لینکی ارائه می‌کنند که فایل را برای دیگران اشتراک بگذارید، نمونه های زیادی هم وجود داره مثل https://wormhole.app\nاما خب از اونجایی که من زندگی‌ام رو توی ترمینال می‌گذرونم و ترمینال رو به باز کردن مرورگر برای اشتراک یک فایل ترجیح می‌دم، پس از FileBin هایی استفاده می‌کنم که بتونم تحت ترمینال به سادگی فایلم رو به اشتراک بذارم. برای مثال https://0x0.st\nوقتی این رو سایت رو باز کنید هیچ گزینه‌ای برای انتخاب فایل و آپلود نمی‌بینید! خب پس چطور باید یک فایل را برای سایت آپلود کنید؟ کافیه یک ریکوئست HTTP POST خیلی ساده به سایت بزنید که شامل فایتون باشه. این کار رو خیلی ساده می‌شه با curl انجام داد.\nمثلا بیایین اشتراک یک فایل رو ببینیم\n1 2 $ curl https://0x0.st -F file=@/path/to/file # https://0x0.st/zWKo.txt این سایت خیلی خوبه اما از زمانی به بعد دیگه این سایت کاری که من نیاز دارم رو کفاف نداد! برای مثال من نیاز دارم فایلم بعد از اولین دانلود از روی سرور حذف بشه و از این مهم تر نیاز داشتم که چندین فایل رو با یک یوزنیم مشخص اپلود کنم که خب شخصی که قرار باشه فایل ها رو دانلود کنه، کافیه از یوزنیم استفاده کنه که راحت تر قابل حفظ کردن و اشتراک گذاشتنه. اینطوری بود که گفتم FileBin خودم رو بنویسم :)\nبیایید فیچر ها و روش استفاده ازش رو با هم ببینیم.\nفرض کنید شما یک فایل دارید که می‌خواهید با من به اشتراک بگذارید، خیلی ساده ترمینال رو باز می‌کنید و با یک دستور فایل رو با یک URL تقریبا تصادفی منتشر می‌کنید.\n1 2 $ curl -L octocat.ir -F file=@/tmp/theFile.fli # octocat.ir/theFile.fli دقت کنید من از سوییچ -L استفاده می‌کنم، دلیل اینکار این هست که خب ممکنه سایت شما رو ریدایرکت کنه. مثلا از http ریدایرکت بشین به https. برای همین این سوییچ رو استفاده می‌کنم. با این سوییچ دیگه نیازی نیست https:// رو هم بنویسیم!\nحالا اگه نیاز دارین که فایلتون بعد از اولین دانلود از روی سرور حذف بشه و دیگه در دسترس نباشه کافیه از کلمه once بجای file استفاده کنید.\n1 2 $ curl -L octocat.ir -F once=@/tmp/theFile.fli # octocat.ir/theFile_GKug7xb.fli تا اینجای کار همه URL های هر فایلی به صورت تصادفی هست و من نیاز دارم که چندین فایل رو زیر یک یوزنیم مشخص مثل arya قرار بدم. اینطوری وقتی قراره یک فایل رو برای همکارم توی شرکت بفرستم خیلی ساده ازش درخواست می‌کنم در سایت به ادرس /arya بره. حالا چطوری اینکارو بکنیم خیلی ساده بجای once یا file, همون username رو می‌نویسیم(توی مثال من از نام arya استفاده می‌کنیم)\n1 2 $ curl -L octocat.ir -F arya=@/tmp/pic.jpg # octocat.ir/arya تا اینجای کار مثلا شما چند بار چند فایل مختلف رو زیر یک یوزنیم قرار دادین حالا چطور میشه همه اونها رو باهم دانلود کرد؟\n1 $ curl -L octocat.ir/arya | wget -i - حالا به این فکر کنید که یکنفر میاد و با یوزنیم های معقول ریکوئست میزنه به سایت و فایل های بقیه رو دانلود می‌کنه، اینجاست که پسورد به کار میاد. برای گذاشتن پسورد روی هر فایل کافیه توی خود URL سایت پسورد رو بعنوان http parametr بنویسد.\n1 2 $ curl -L \u0026#39;octocat.ir/?password=12345678\u0026#39; -F once=@/Desktop/TopSecret.fli # octocat.ir/file/TopSecret/?password=12345678 اینجا دقت کنید که باید از کوتیشن استفاده کنیم چون علامت مساوی و علامت سوال رو bash وایلد کارد می‌بینه.\nبرای دانلود هر فایلی هم که پسورد داره کافیه دقیقا مثل مثال قبلی عمل کنید و پسورد رو توی http parametr وارد کنید\n1 $ wget \u0026#39;octocat.ir/file/TopSecret/?password=12345678\u0026#39; براتون سواله که چرا پسورد روی توی URL گذاشتم؟ می‌شد که مثلا توی http header پسورد بگیریم و بدیم، پس چرا توی URL?\nاینکار برای این هست که دسترسی به فایل ساده باشه. مثلا من وقتی می‌خام فایلی رو برای همکارم بفرستم و خب فرض کنم همکار من از header ها چیزی نمی‌دونه، و فقط با یک کلیک باید بتونه به فایل دسترسی پیدا کنه، اینجاست که من فقط یک URL به اون می‌گم :)\nبعضی از ابزار ها hackable هستند! این به معنی ضعف امنیتی نیست، بلکه به این اشاره می‌کنه ابزار به روشی طراحی شده که کاربران می‌تونند خارج از هدف اصلی اون ابزار از اون استفاه کنند.\nبرای مثال ابزار که من درست کردم برای اشتراک فایل هست، اما بنظرتون میشه یک دایرکتوری و یا یک متن رو هم باهاش به اشتراک گذاشت؟\nقطعا! اما چطوری؟\nبرای اینکه یک دایرکتوری با تمامی ساب دایرکتوری هاش رو بفرستین کافیه از tar استفاده کنید.\n1 2 $ tar -cf - ~/Pictures | curl -L octocat.ir -F once=@- # \u0026#39;octocat.ir/file/_nUiuRPW/ با اینکار با استفاده از tar تمامی فایل ها و دایرکتوری های مثلا پوشه ~/Pictures رو به آرشیو tar تبدیل می‌کنید و بعد خروجی رو بعنوان ورودی به curl می‌فرستین.\nحالا به این فکر کنید که بخواهیم یک متن رو منتشر کنیم، راهکار دقیقا مشابه قبلیه. به این شکل که یک متن رو با استفاده از echo به ورودی استاندارد curl می‌فرستیم.\n1 2 $ echo \u0026#39;Some Random Text\u0026#39; | curl -L octocat.ir -F once=@- # octocat.ir/file/-_W00DSbS/ اینطوری خیلی راحت می‌شه خروجی هر کامندی رو روی به اشتراک گذاشت\nسایت من توی آدرس octocat.ir در دسترسه، خوشحال می‌شم ازش استفاده کنید :)\nاینو بدونید که سایت به صورت دیفالت فایل ها رو برای 24 ساعت نگه‌میداره\nاین سرویس رو منبع باز روی گیتهاب گذاشتم، اگه چیزی خواستید می‌تونید بهش اضافه کنید و یا مشکلاتش رو پچ کنید.\nو اگه می‌خواهید برای خودتون این سرویس رو بیارید بالا از ایمیج داکر استفاده کنید\n1 docker run -p 80:80 mshabane/curlpaste:latest اگه نیاز دارین تا فایل ها برای تایم بالاتری نگه‌داری بشه، متغییر HOURS داخل فایل .env رو تغییر بدین.\nایده های دیگه‌ای هم برای سایت دارم، برای مثال اینکه کاربر بتونه زمان انقضای هر فایل رو خودش مشخص کنه. مثلا به این شکل\n1 curl -L octocat.ir -F arya_1=/path/to/file اینطوری میشه یک زمان انقضا بر اساس ساعت برای هر فایل ایجاد کرد.\nو خب همچنین میشه یک کوتاه کننده لینک هم بهش اضافه کنم، و لینک های کوتاه شده رو ریدایرکت کنم.\n1 curl -L octocat.ir -F url=\u0026#39;https://example.com/some/looooong/url/\u0026#39; اگه اینها رو اضافه کنم، این پست رو اپدیت می‌کنم ولی خوشحال می‌شم شما توی این پروژه مشارکت کنید.\n","date":"2024-03-06T23:50:46+03:30","image":"https://bit-orbit.github.io/images/post/curlpaste.jpg","permalink":"https://bit-orbit.github.io/p/crul-paste/","title":"Crul Paste"},{"content":"بیایید قبل از اینکه راه حل را ببینیم، اول مشکل را دقیق تر برسی کنیم. به این فکر کنید که شما یک فایلی دارید که شامل یک عدد است که اشاره می‌کند به مقدار اعتباری که کاربر در حسابش دارد. حالا اگر قرار باشد یک پورسه اون مقدار را بر اساس ارائه سرویسی، از حساب کاربر کم کند، و پروسه دیگری به دلیل افزایش اعتبار، مقداری را به حساب کاربر اضافه کند، چه مشکلاتی اتفاق می‌افتد؟\nبرای اینکه دقیق تر بشیم، این روند رو باهم پیش می‌بریم. فرض کنید فایلی به اسم amount.txt مقدار 100 داخلش نوشته شده است. و دو پروسه کم و اضافه کردن را اجرا می‌کنیم. توی این مثال،‌ ما می‌خواهیم مقدار 20 از حساب کاربر کم و مقدار 50 به حساب کاربر اضافه کنیم، پس ما انتظار داریم در انتها فایل ما مقدار 130 را درونش ذخیره کرده باشد.\nپروسه اول فایل را می‌خواند و مقدار 100 را در حاظه‌اش نگه می‌دارد پروسه دوم فایل را می‌خواند و مقدار 100 را در حاظه‌اش نگه می‌دارد پروسه اول مقدار 20 را از 100 کم می‌کند و مقدار 80 را در حافظه ذخیره می‌کند پروسه دوم مقدار 50 را به 100 اضافه می‌کند و مقدار 150 را در حافظه ذخیره می‌کند پروسه اول مقدار 80 را در فایل ذخیره می‌کند پروسه دوم مقدار 150 را در فایل ذخیره می‌کند همینطور که همه ما انتظار داشتیم، ما باید در این فایل مقدار 130 را ذخیره می‌کردیم، اما پروسه های ما به دلیل اینکه هیچ همکاری و یا هیچ مکانیزمی دیگری ندارند که این مقدار ها را به یکدیگر اطلاع دهند، مشکل Race condition رخ می‌دهد.\nیکی از راه حل های این مشکل lock کردن فایل توسط هر پروسه است، که به این کار file locking گفته می‌شود.\nfile locking یک مکانیزم برای کنترل دسترسی چندین پروسه به یک فایل است.\nتوی لینوکس یکی از دستورات خطرناکی که داریم دستور sudo rm -rf / است. وقتی این دستور را اجرا کنیم کل فایل های لینوکس ما حذف می‌شود. دلیل اینکار این است که لینوکس به صورت پیشفرض فایل های باز شده را lock نمی‌کند.\nبا اینحال لینوکس دو مکانیزم مختلف advisory و mandatory را پشتیبانی می‌کند.\nتوی این پست بیشتر تمرکز من روی مکانیزم advisory locking(مشورتی) است.\nاین روش به این شکل عمل می‌کند که هیچ پروسه‌ای مجبور به اجرای این روش نیست و اگر حتی فایل توسط یک پروسه‌ای lock شده باشد، باز هم پروسه های دیگر می‌توانند به lock بودن فایل اهمیت ندهند و مقدار آن را تغییر دهند. این اتفاق به این دلیل می‌افتد که advisory lock توسط سیستم عامل و یا فایل سیستم انجام نمی‌شود.\nخب بیایید با یک مثال این فرایند را برسی کنیم. مثل مثال قبلی فرض کنید ما مقدار 100 را داخل فایل amount.txt داریم و می‌خواهیم مقدار 20 از آن کم و مقدار 50 به آن اضافه کنیم.\nپروسه اول قبل از خواندن فایل، فایل را لاک می‌کند پروسه دوم برای لاک کردن فایل اقدام می‌کند و از جایی که پروسه اول از پیش فایل را لاک کرده است، برای آزاد شدن لاک صبر می‌کند پروسه اول مقدار 20 را از 100 کم می‌کند و مقدار 80 را درون فایل می‌نویسد پروسه اول لاک فایل را آزاد می‌کند. پروسه دوم فایل را لاک و مقدار جدید 80 را از فایل می‌خواند پروسه دوم مقدار 50 را به 80 اضافه و مقدار 120 را درون فایل می‌نویسد پروسه دوم لاک فایل را آزاد می‌کند تا پروسه های دیگر بتوانند با فایل کار کنند. اگر شما می‌خواهید این مکانیزم را روی یک فایل اجرا کنید، دستور flock برای شما اینکار را خواهد کرد.\n1 flock [options] file|directory command [arguments] این کامند در حالت عادی از شما یک فایل و یک دستور خواهد گرفت و مکانیزم advisory lock را روی ان فایل اجرا خواهد کرد.\n1 flock /tmp/fli echo 12\u0026gt;/tmp/fli برای اینکه روند را بهتر درک کنیم یک فایل bash می‌نویسیم که بتوانیم مثال اولیه را روی آن اجرا کنیم.\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #!/bin/bash file=\u0026#34;balance.dat\u0026#34; value=$(cat $file) echo \u0026#34;Read current balance:$value\u0026#34; #sleep 10 seconds to simulate business calculation progress=10 while [[ $progress -lt 101 ]]; do echo -n -e \u0026#34;\\033[77DCalculating new balance..$progress%\u0026#34; sleep 1 progress=$((10+progress)) done echo \u0026#34;\u0026#34; value=$((value+$1)) echo \u0026#34;Write new balance ($value) back to $file.\u0026#34; echo $value \u0026gt; \u0026#34;$file\u0026#34; echo \u0026#34;Done.\u0026#34; ما این فایل را همزمان با دو ترمینال اجرا می‌کنیم.\nهمینطور که می‌بینید پروسه دوم برای اینکه محتوای فایل را تغییر دهد، باید صبر کند تا لاک فایل آزاد شود.\nاین پست خلاصه‌ای بود از این بلاگ که هر دو نوع advisory lock و mandatory lock را توضیح می‌دهد.\nبرای من سوال بود که من چطور می‌توانم مکانیزمی که flock استفاده می‌کند را در برنامه های خودم پیاده سازی کنم، و خب نتیجه این بود که معمولا برای advisory lock هر زبانی یک کتابخانه استاندار دارد توی پایتون کتابخانه fcntl اینکار را انجام می‌دهد.\n","date":"2024-02-09T01:49:42+03:30","image":"https://bit-orbit.github.io/images/post/flilock.jpeg","permalink":"https://bit-orbit.github.io/p/linux-file-locking-%DA%86%DB%8C%D8%B3%D8%AA/","title":"Linux File Locking چیست؟"},{"content":"هر زبان برنامه نویسی انواعی از داده ها رو داره، مثلا داده های عددی، کاراکتر و یا رشته‌ای از کاراکتر ها. زبان rust هم انواع داده‌ای زیادی رو پشتیبانی می‌کنه و خب حتی اگر جایی کمبودی حس کردین، می‌توانید ساختار داده‌ی خودتان را بسازید.\n‌ انواع داده ترجمه‌ی کلمه data type هست. و خب برای من استفاده از کلمه انگلیسی‌اش خیلی راحت تره.\nنوع داده عدد صحیح همینطور که می‌دونید عدد صحیح از منفی بی‌نهایت تا مثبت بی‌نهایت است(بدون هیچ علامت کسر، رادیکال و بدون اعشار).\nاین نوع داده در rust به این صورت است\n1 2 variable_name: i32 = -2147483648; variable_name: i32 = 2147483647; به این باید دقت کنیم که هر متغییری مقداری فضا نیاز دارد برای مثال این نوع داده که داده اصلی است به پنج صورت پیاده سازی می‌شود i8, i16, i32, i64, i128 اعداد پس از کاراکتر i نشان دهنده تعداد بیت هایی است که این نوع متغییر می‌تواند اشغال کند. مثلا i128 می‌تواند به اندازه 128 بیت فضا اشغال کند.\nنوع داده عدد اعشاری این نوع داده هم مثل نوع عدد صحیح است اما با این تفاوت که اعداد اعشاری را درون خودش ذخیره می‌کند\n1 2 variable_name: f32 = 3.14; variable_name: f32 = -3.14; نوع داده کاراکتر کاراکتر نوع داده‌ای است که فقط یک مقدار از حروف الفبا یا عدد و یا سیمبول را می‌تواند درون خودش ذخیره کند. پس باید به اندازه 8 بیت فضا اشغال کند اما به دلیل اینکه کاراکتر های زبان های دیگر را هم بتواند ذخیره کند از انکدینگ(encoding) utf-16 استفاده می‌کند که 16 بیت فضا اشغال می‌کند.\n1 let a: char = \u0026#39;a\u0026#39;; داده string(رشته‌ای از کاراکتر ها) String نوع داده‌ای است که درواقع رشته‌ای از کاراکتر ها را درون یک نوع vector ذخیره می‌کند.\nاین نکته را هم بگم که encoding رشته UTF-8 است. به این معنی که هر نوع کاراکتری را می‌تواند داخل خودش ذخیره کند حتی ایموجی.\n1 let heart: String = String::from(\u0026#34;♥\u0026#34;); نوع داده منطقی نوع داده منطقی به اسم boolian است. این نوع مقدار هایt true و یا false را ذخیره می‌کند.\n1 let is_good: bool = true; نوع داده ترکیبی این نوع داده ها را توی پست های مجزا توضیح می‌دم.\ntuple array list vector ","date":"2024-01-03T01:30:52+03:30","image":"https://bit-orbit.github.io/images/post/rustdatatypes.jpg","permalink":"https://bit-orbit.github.io/p/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%D9%88%D9%84%DB%8C%D9%87-%D8%AF%D8%B1-rust/","title":"انواع داده های اولیه در rust"},{"content":"تعریف متغیر در هر زبانی تعریف متغیر سینتکس خودش را دارد. مثلا اگر زبان های خانواده c را کار کرده باشید (مثل c++, c#) متوجه می‌شوید که نوع داده‌ای متغیر، قبل از اسم آن تعریف می‌شود. و یا مثلا توی زبان پایتون تعریف نوع داده‌ای یک متغیر حتی اهمیتی هم ندارد!\nانواع نوع داده یا date types را توی پست بعدی می‌نویسم\nتوی زبان rust بعد از اسم متغیر، نوع آن نوشته می‌شود. مثلا برای تعریف یک متغیر عددی به اندازه یک بایت از کلمه کلیدی i8 بعد اسم استفاده می‌کنیم. البته قبل از اسم هر متغیر هم ما باید از کلمه کلیدی let استفاده کنیم.\n1 2 //let name: type = value; let age: i8 = 22; متغیر های تغییرپذیر توی زبان rust هر متغیری که تعریف می‌کنیم غیر قابل تغیر است. توی مثال بالا من پیشفرض مقدار 22 را برای متغیر age قرار داده‌ام، حالا اگر بخواهم مقدار آن را به 23 تغیر بدهم به ارور می‌خورم\n1 age = 23; 1 2 3 4 5 6 7 8 9 10 error[E0384]: cannot assign twice to immutable variable `age` --\u0026gt; src/main.rs:3:5 | 2 | let age: i8 = 22; | --- | | | first assignment to `age` | help: consider making this binding mutable: `mut age` 3 | age = 23; | ^^^^^^^^ cannot assign twice to immutable variable خب برای همین اگر می‌خواهیم مقدار متغیری را تغییر بدهیم آن را باید از اول مشخص کنیم. مشخص کردن آن با کلمه کلیدی mut بعد از کلمه let است. کلمه mut مخفف mutable به معنی قابل تغییر است. خب بیایید اینکار را برای مثال اولیه انجام بدهیم.\n1 2 let mut age: i8 = 22; age = 23; ","date":"2024-01-01T01:39:05+03:30","image":"https://bit-orbit.github.io/images/post/datatypes-rust.jpg","permalink":"https://bit-orbit.github.io/p/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-rust/","title":"متغیر در rust"},{"content":"اوایل که لینوکس نصب کرده بودم کامند هایی که توی فروم های مختلف می‌دیدم و برای من جدید بود را دوست داشتم یاد بگیرم و بدانم کار آنها چی هست، برای همین هر کامندی را که می‌دیدم در اولین فرصت داخل سیستم خودم اجرا می‌کردم. که خب کور کورانه اجرای هر کامندی اشتباهه بود. یکی از این کامند ها که اجرا کرده بودم، به اسم فورک بمب (fork bomb) شناخته می‌شود. کامند به این صورت هست\n1 :(){ :|:\u0026amp; };: اگر این کامند را اجرا کنید(امیدوارم تا الان نکرده باشید) تقریبا زیر یک دقیقه سیستم شما هنگ می‌کند و مجبور می‌شوید سیستم را ریبوت کنید.\nتوی این پست ساختار این کامند را تشریح می‌کنم و باهم کمی bash یاد می‌گیریم.\nبیایید اول با مفهوم recustion آشنا بشیم، زمانی که یک قطعه کد خودش اجرا کند، recusion می‌گویم. مثلا شما یک فانکشن می‌نویسید به اسم fn و توی بدنه فانکشن فقط خود همین فانکشن را صدا می‌‌کنید، به این کار call recursion گفته می‌شود. فورک بمب دقیقا همین کار را می‌کند. به این معنی که خودش را دائم اجرا می‌کند!\nبه این فکر کنید که وقتی یک پراسس خودش را اجرا می‌کند ،مجدد پراسس های اجرا شده توسط اون هم دائم خودشان را اجرا می‌کنند، و دوباره هر پروسه‌ای که اجرا می‌شود بازم خودش را اجرا می‌کند و این روند تا زمانی که رم و پردازنده سیستم تحمل داشته باشد ادامه دارد.\nدرختی که می‌بینید را اجرای فورک بمب درنظر بگیرید، هر ستاره یک پروسه جدید است که توسط پروسه قبلی اجرا شده، و خودش هم دو پروسه جدید باز می‌کند و هر یک از پروسه ها هم همین روند را ادامه می‌دهند.\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 * ├── * │ ├── * │ │ ├── * │ │ │ ├── * │ │ │ │ ├── * │ │ │ │ └── * │ │ │ └── * │ │ │ ├── * │ │ │ └── * │ │ │ │ │ └── * │ │ └── * │ │ ├── * │ │ │ ├── * │ │ │ └── * │ │ └── * │ │ ├── * │ │ └── * │ │ │ └── * │ ├── * │ │ ├── * │ │ │ ├── * │ │ │ └── * │ │ └── * │ │ ├── * │ │ └── * │ │ │ └── * │ └── * │ ├── * │ │ ├── * │ │ └── * │ └── * │ ├── * │ └── * من برای اینکه سیستم‌ خودم هنگ نکند فورک بمب را روی داکر اجرا کردم و خب حتی یک ثانیه هم طول نکشید و آن کانتینر کاملا هنگ کرد.\nقبل از اجرا زمان اجرا بیایید وارد کد بشیم، این علامت ها و کاراکتر ها چی هستند؟\nاگه دقت کنید اولین کاراکتر فورک بمب، علامت : است. این علامت اسم فانکشن ما است. برخلاف قانون تعریف نام برای متغییر ها توی bash، می‌توانیم از کاراتر های یونیکد هم برای تعریف نام فانکشن استفاده کنیم، مثلا یک کاراکتر چینی یا حتی ایموجی!\n1 2 3 雨(){ echo \u0026#39;rain\u0026#39;; } ❤️(){ echo \u0026#39;love\u0026#39;; } خب در ادامه علامت های () را می‌بینیم، توی bash برای تعریف فانکشن قبل از اسم فانکشن هیچ کلمه کلیدی مثل fn, def, void و \u0026hellip; نیاز نیست، فقط بجای آن باید بعد از اسم فانکشن پرانتز ها را بگذارید.\nمثل خیلی از زبان های برنامه نویسی، بدنه فانکشن توی کرلی براکت تعریف می‌شود.\n1 :(){} پس تا اینجا ما یک فانکشن ساده با نام : تعریف کردیم.\nداخل بدنه این فانکشن، اسمی که برای فانکشن قرار دادیم همان : را می‌نویسیم. با اینکار دقیقا call recursion را انجام دادیم، و باعث شدیم که برنامه خودش را توی هر اجرا مجدد اجرا کند.\n1 :(){ : } دقت کنید توی سینتکس bash حتما باید یک فاصله برای کدی که داخلی کرلی براکت می‌نویسم قرار بدیم\nعلامت | به اسم پایپ شناخته می‌شود، وظیفه این علامت دادن خروجی یک کامند بعنوان ورودی به یک کامند دیگر هست، حلا دقت کنید که ما خروجی اجرای : را به خودش می‌دهیم. دقیقا به این شکل\n1 :(){ :|: } با این علامت هر پروسه دو بار پروسه جدیدی از خودش می‌سازد اگر از این علامت استفاده نکنیم، پروسه ما به صورت خطی خودش را اجرا خواهد کرد، اینطوری کد ما با یک حلقه while تفاوتی زیادی نخواهد داشت.\nعلامت \u0026amp; اجرای یک کامند را به بکگراند(پس زمینه) می‌برد. برای مثال بعد از اجرای یک دستور باید صبر کنید پروسه آن تمام شود تا بتوانید دستور بعدی را اجرا کنید. ولی اگر از علامت \u0026amp; بعد از هر دستور استفاده کنید، دیگر نیاز نیست صبر کنید تا روند اجرای آن برنامه تمام شود. درواقع با علامت \u0026amp; شما می‌توانید هر برنامه را در بکگراند اجرا کنید. حالا توی فورک بمب این علامت باعث می‌شود تا فانشکنی که اجرا کردین درحالی که کارش به اتمام نرسیده است، فانکشن بعدی اجرا بشود.\nو بعد علامت ; را می‌بینیم. این علامت کامند ها را از هم جدا می‌کند. مثلا شما می‌توانید چند کامند مختلف را توی یک خط بنویسید. توی فورک بمب این علامت فانکشنی که تعریف کردین را از دستور بعدی(که اجرا کننده اون فانکشن هست)جدا می‌کند.\n1 echo \u0026#39;foo\u0026#39;; echo \u0026#39;bar\u0026#39;; echo \u0026#39;baz\u0026#39;; آخرین علامتی که توی فورک بمب داریم همون علامت : یا همون اسمی هست که برای فانکشن قرار دادیم. خیلی ساده توی bash برای اجرای یک فانکشن فقط اسم‌ش را می‌نویسیم.\nو تمام! ما یاد گرفتیم چطور فورک بمب رو بنویسیم و دیگه نیاز نیست حفظ‌ش کنیم :)\n1 :(){ :|:\u0026amp; };: ","date":"2023-12-27T16:39:27+03:30","image":"https://bit-orbit.github.io/images/post/fork_bomb.jpg","permalink":"https://bit-orbit.github.io/p/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B7%D9%88%D8%B1-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF/","title":"فورک بمب چیست و چطور کار می‌کند؟"},{"content":"به احتمال زیاد سایت google colab رو می‌شناسید، این سایت برای کسانی که پایتون کار می‌کنند یک معجزه‌ست. خیلی راحت شما می‌توانید کد پایتون خود را روی سرور های گوگل اجرا کنید! مثلا اگر قرار باشد یک فایل با حجم خیلی زیاد رو پردازش کنید و خب سیستم خودتون توان پردازش اون فایل رو نداره، این سرویس گوگل واقعا کار رو راحت می‌کنه. حالا فرض کنید این فایل رو باید با تیم به اشتراک بگذارید، خیلی راحت این سروریس به گوگل درایو شما متصل می‌شه و فایل رو براتون آپلود می‌کنه.\nاما من توی این پست می‌خواهم کار متفاوتی با این سرویس انجام بدم، جای اینکه فایل‌م رو توی گوگل درایو آپلود کنم می‌خواهم که یک پلی لیست موزیک راک رو که فایل با فرمت zip هست رو روی google colab دانلود کنم و بعد با همین کولب فایل ها را استخراج و به تلگرام اپلود کنم.\nاینو بگم که خب روی کولب خیلی تریک های جالب دیگه‌ای هم می‌زنند، مثلا من یه تایمی به کولب ssh می‌کردم و بعنوان vpn استفاده می‌کردم.\nادرس سرویس google colab این هست، ولی من یک اسکریپت نوشتم که به اون نیاز داریم برای همین این لینک رو باز کنید تا اسکریپتی که من نوشته‌م توی colab باز بشه. اگه تا الان با برنامه jupyter کار کرده باشین این محیط باید براتون خیلی آشنا باشه. اگر نه، خیلی ساده بگم، این محیط دستورات پایتون رو براتون روی سروس های گوگل ران می‌کنه :)\nخب ما یه فایل این برای مثالمون نیاز داریم، من یک پلی لیست راک از AC/DC که از تورنت می‌گیرم رو برای اینکار استفاده می‌کنم.\nاول من فایل رو باید دانلود کنم، من از تورنت برای دانلود موزیک، فیلم و \u0026hellip; استفاده می‌کنم. پس کافیه لینک تورنت رو به برنامه aria2c بدم و یا فایل رو با یک سایت دانلودر تورنت دانلود کنم و لینک‌ش رو بدم به برنامه wget\nبرای اینکه دستورات خودتون رو اجرا کنید از بالای سایت گزینه + code رو بزنید تا یک code snipp جدید براتون باز کنه. توی این قسمت فقط می‌شه کد های پایتون رو اجرا کرد ولی اگه از علامت ! قبل از دستور استفاده کنیم اون رو بعنوان دستور bash اجرا خواهد کرد. و خب بیس سیستم عامل هم دبیان هست و دستورات دبیانی رو اجرا می‌کنه.\nپس اگه مستقیم قرار بود فایل رو از تورنت بگیرم باید برنامه aria2 رو نصب می‌کردم. برای نصب کافیه این دستور رو بزنیم\n1 !sudo apt-get install aria2 دقت کنید که از علامت ! قبل از دستور استفاده کردم.\nبعد از نصب، لینک رو می‌دیم به برنامه تا فایل ها رو برامون دانلود کنه.\n1 !aria2c \u0026#39;\u0026lt;your magnet link\u0026gt;\u0026#39; به این دقت کنید که برنامه با کامند aria2c اجرا می‌شه. ولی با به اسم aria2 نصب می‌شه.\nو یا اینکه لینک دانلود مستقیم رو به برنامه wget می‌دیم. این برنامه به صورت دیفالت نصب هست و لازم نیست کار خاصی بکنیم.\n1 !wget \u0026#39;\u0026lt;your file link\u0026gt;\u0026#39; بعد از اینکه فایل روی سرور گوگل دانلود شد کافیه فایل رو به تلگرام آپلود کنیم! ولی قبل‌ش چند کاری هست که باید باهم بکنیم.\nفایل من زیپه پس باید استخراج کنم. فایل ها توی دایرکتوری های تو در تو قرار دارند، و باید همه فایل های مورد نظرم رو که توی این مورد mp3 هستند رو بیارم داخل پوشه‌ای که اسکریپت دیفالت آنجا ران می‌شه. نیاز به یک کانال تلگرام دارم که فایل ها مستقیم اونجا اپلود بشوند یک توکن ربات تلگرام هم نیازه که با استفاده از دسترسی ربات به کانال، فایل ها رو اپلود کنیم. خب برای اسختراج فایل ها خیلی ساده از کامند unzip و اسم فایل جلوی این کامند استفاده می‌کنیم.\n1 !unzip \u0026lt;your file name\u0026gt; با کامند ls نام فایلی که دانلود کردین رو می‌تونید ببینید.\nبا اجرای کامند tree می‌تونید دایرکتوری های تو در تو رو ببینید.\nتوی این مرحله من همه فایل های mp3 رو باید بیارم توی پوشه اصلی که اسکریپت‌ اپلود اجرا میشه، دلیل این کار این هست که این اسکریپ‌ت فقط فایل های mp3 داخل همین پوشه رو پیدا و اپلود می‌کنه.\nبرای انتقال این فایل ها از پوشه های تو در تو به یک پوشه از کامند find استفاده می‌کنم و هر فایل که پیدا می‌شه رو با کامند mv به پوشه اصلی‌مون انتقال می‌دم.\n1 !find . -type f -iname \u0026#39;*mp3\u0026#39; -exec mv {} . \\; بیایید سوییچ های این دستور رو بهتون بگم\ntype- این سوییچ انواع نوع فایل ها رو مشخص می‌کنه. مثلا شما می‌تونید دنبال یک دایرکتوری، فایل، سوکت و \u0026hellip; بگردین\niname- این سویچ که مشخص هست نام فایل رو ازتون می‌گیره که شما می‌تونید پترن ریجکس بدین بهش. و اون i مشخص می‌کنه که نام فایل به کوچیکی و بزرگی حساس نباشه.\nexec- یک کامندی رو ازتون می‌گیره و روی تک تک ریزالت های جست و جو اون کامند رو اجرا می‌کنه. من کامند mv رو دادم که برای انتقال فایل استفاده می‌شه. علامت های {} هم یک متغییر هست که نام فایل تک به تک جای اون قرار می‌گیره.\nپایان سوییچ exec همیشه با ;\\ مشخص می‌شه.\nخب تا اینجا که خیلی ساده بود،‌ نه؟\nمرحله آخر اینه که یک ربات با این ربات بسازین، و بعد اون رو عضو یک کانالی که می‌سازید بکنید، کانال رو فعلا پابلیک بسازید و یک یوزرنیم بهش بدین.\nتوکن ربات رو کپی کنید و توی اسکریپت من، جایی که نوشته وارد کنید و توی قسمت هم ایدی کانالتون رو با علامت @ اول جایگذاری کنید.\nاگه کانال پرایوت دارید باید بجای ای‌دی کانال از chatid استفاده کنید، که یک ای‌دی عددی هست.\nتمام!‌ کافیه برنامه رو اجرا کنید و کانال تلگرامتون رو نگاه کنید :)\nاگه خیلی زیاد دارین فایل اپلود می‌کنید احتمالا تلگرام ارور flood mood بهتون بده. توی این مورد کافیه فقط صبر کنید، اسکریپت از اجرا قطع نمی‌شه و روی همون فایل مجددا اجرا می‌شه تا بالاخره فایل اپلود بشه.\nهرچیزی رو می‌تونید آپلود کنید ولی دقت کنید که ربات ها محدودیت حجم اپلود دارن که نهایتش 50MB هست\nاینم بگم که توی اسکریپت اگه mp3 رو به چیز دیگه‌ای تغییر بدین، اسکریپت به دنبال اون پسوند ها خواهد گشت.\n","date":"2023-12-18T00:08:38+03:30","image":"https://bit-orbit.github.io/images/post/colab.jpg","permalink":"https://bit-orbit.github.io/p/%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/","title":"از گوگل به تلگرام!"},{"content":"چطور این ایده به ذهن من رسید ؟ جریان این ایده به این شکل بود که خب ما ایرانی ها اینترنت به شدت محدود شده‌ای داریم، برای همین ما برای استفاده از اینترنت از vpn و یا proxy استفاده می‌کنیم. اما زمانی که ما وارد سایت های داخلی می‌شویم این سایت ها اجازه استفاده با ip خارج از ایران رو نمی‌دن و ما مجبور می‌شویم که vpn رو که به هزار زحمت وصل شده بود، قطع کنیم. خب چاره چیه؟ اینکه اگه یک سیستم توی خونه یا شرکت دارین که همیشه روشنه رو تبدیل به یک سرور کنیم :)\nتوی این فکر بودم که نیازم رو به چنین سیستم عاملی حس کردم، بعد کمی نیاز های دیگه رو بهش اضافه کردم و یه پست داخل تلگرام نوشتم، یکی کامنت گذاشت و خب این سیستم عامل را معرفی کرد.\numbrel چیست ؟ درواقع umbrel یک سیستم عامل است، زمانی که شما این سیستم عامل را نصب کنید، یک صفحه وب در اختیار شما می‌گذارد و شما از طریق این صفحه درون مرورگر خود می‌توانید به سیستم دسترسی داشته باشید. برای مثلا می‌توانید سرویس های مختلف و ابزار های مختلف را روی umbrel نصب و یا کانفیگ کنید.\nسرویس هایی که umbrel ارائه می‌دهد تقریبا همان سرویس هایی هستند که شما در طول روز از نسخه های تجاری آنها استفاده می‌کنید.\nاگه دقیق تر بخواهم بگم، این سیستم عامل یک store در اختیار کاربران‌ش قرار می‌ده. و خب این یکی از مهم ترین کار هایی است که این سیستم عامل انجام می‌ده چرا که اگر این استور وجود نداشت، شما شخصا باید فرایند کانفیگ و نصب سرویس ها را به عهده می‌گرفتید(این کار یک متخصص دواپس هست، خیلی هم جالیه)\numbrel چه نیازی را برطرف می‌کند ؟ وقتی از سرویس های تحت اینترنت استفاده می‌کنید، به احتمال زیاد شما کالای اون شرکتی هستید که ابزار را در اختیارتون قرار داده است. اگر دقت کنیم می‌بینیم که این شرکت ها بسیاری کاربر دارند و خب برای ارائه درست خدمت به کاربرانشون سرور های زیادی اجاره می‌کنند سرویس ها رو دائم اپدیت و بهتر می‌کنند و خب سرویس های متعددی هم ارائه می‌کنند.\nهمه این کار ها نیاز به هزینه های زیادی دارند، بودجه این شرکت ها فقط و فقط با تبلیغات تامین نمی‌شود بلکه با فروش اطلاعات کاربرانشون(خود ما) به شرکت ها و دولت ها تامین می‌شود.\nو البته اگر حتی شما برای سرویسی که استفاده می‌کنید هزینه‌ای پرداخت کنید، مثلا برای استفاده از گوگل دایو ماهانه هزینه هم پرداخت کنید، باز هم مشکلاتی وجود دارد، مثلا قانونا گوگل مالک فایلی است که شما روی سرور هایش آپلود می‌کنید.\nدر چنین مواقعی هست که اصطلاح self-hosting سرویس ها استفاده می‌شود. به این معنی که سرویس هایی که شما روزانه از آن استفاده می‌کنید را خودتان راه اندازی کنید. اما اینکار نیاز به دانش بالایی داره.\nسیستم عامل umbrel این کار را ساده کرده است، با این تفاوت که قبلا شما باید برای استفاده چند ابزار روی یک سرور، باید سرور رو به درستی کانفیگ می‌کردین سپس ابزار ها را کانفیگ، و بعد سرویس ها راه اجرا می‌کردین. اما الان فقط با یک کلیک شما سرویس توییتر خود را راه اندازی می‌کنید!\numbrel به روی سیستم عامل دسکتاپ نصب umbrel بسیاز سادهست فقط کافیه یک سیستم عامل debian رو روی سیستمتون داشته باشید، یک ترمینال باز کنید و کامند نصب را بزنید، با یک کامند این سیستم نصب می‌شه.\nولی خب اگر سیستم عاملی ندارید که بر پایه debain باشه، می‌شه به سادگی روی ماشین مجازی یک دبیان نصب کنید، حالت شبکه اون سیستم عامل رو bridge قرار بدین که IP پابلیک رو از DHCP بگیره و خب تحت LAN در دسترس قرار بگیره. خیلی ساده توی مرورگر IP سیستم debain که umbrel را روی ان نصب کردین را وارد کنید و تمام!\numbrel به روی رزبری پای رزبری پای! یک سخت افزار کوچک که تقریبا یک کامپیوتر کامل است! البته که قدرت پردازش بالایی ندارد ولی در IOT استفاده زیادی دارد. با توجه به اینکه پردازنده های رزبری پای از نوع arm هستند، با اجرای کامند نصب به روی سیستم عاملی که دیفالت به روی رزبری پای نصب است نمی‌توان umbrel را نصب کرد، برای همین سیستم عامل umbrel یک نسخه مخصوص برای رزبری پای دارد، کافیست آن را دانلود و به روی ربزی خود نصب کنید.\nبه این دقت کنید که خب سعنی کنید یک هارد اکسترنال به رزبری متصل کنید که فضای کافی برای سروریسی مانند next cloud داشته باشید.\numbrel بروی سرور شخصی به سادگی اچرای یک کامند! کافیست فقط سیستم عامل سرورتون debain و یا کلا بر پایه debian مثل ubuntu باشه. کامند اجرا را وارد کنید و بعد از اتمام فرایند نصب، IP سرور را وارد مرورگر کنید، تمام!\nدستگاه umbrel شرکت سازنده umbrel به جز سیستم عامل، یک دستگاهی طراحی کرده است که به صورت پیشفرض سیستم عامل umbrel به روی آن نصب شده است. این دستگاه تمامی سخت افزار مورد نیاز رو برای استفاده از سیستم عامل دارد. برای مثال اگر شما از umbrel به روی rassbery PI استفاده می‌کنید، شما نیاز به یک فن دارید تا این دستگاه را دائم خنک کند، از طرفی خود فن هم باید خنک شود.\nاینجاست که این دستگاه رو برای شرکت یا خانه‌ شما مناسب‌تر می‌کند(مطمئن باشید تبلیغ نمی‌کنم)\numbrel چطور کار می‌کند ؟ اگه بخواهم کمی فنی‌تر وارد ماجرا بشم، همونطور که گفت این سیستم عامل بهترین ویژگی که ارائه می‌کند store آن است. البته که اینجا store به معنی فروشگاه نیست، بلکه شبیه یک بازاری است که همه اجناس‌ش رایگان است :)\nسرویس های umbrel همه سرویس هایی هستند که به صورت منبع باز در اختیار همه قرار گرفته است، این سرویس ها برای اجرا شدن نیاز به شخصی دارد که دانش کافی از سرور داشته باشد و خب نحوه کانفیگ کردن هر کدام از ابزار ها و سرویس ها را بداند.\nدانلود و نصب هر سرویس به صورت جدگانه ممکن است به مشکلات متعددی برخورد کند، مثلا در نصب سرویسی مثل nexcloud شما ممکن است نیاز به ورژن خاصی از php داشته باشید. کانفیگ کردن nginx برای اجرای اسکریپت های php هم واقعا به اندازه زیادی دردسر دارد.\nاینجاست که داکر وارد ماجرا می‌شود! umbrel از قبل تمامی سرویس ها را داکرایز کرده است.\nداکرایز به چه معنیست؟ درواقع به این فکر کنید که شما یک برنامه را می‌خواهید نصب کنید، این سرویس توسط سازنده آن از ورژن خاصی از زبان مشخصی، لایبراری و فایل هایی استفاده کرده است که پیشفرض روی سیستم شما نصب نیست، در این مواقع وظیفه نصب آن فایل ها به عهده شماست. داکر این کار را ساده کرده است به این صورت که برنامه را با تمامی نیازمندی هایش داخل یک فایل image قرار داده است، و بعد کافیست شما آن فایل را به برنامه docker engine بدهید، آن برنامه باید بدون هیچ مشکلی اجرا شود.\nسیستم عامل umbrel دقیقا چنین کاری می‌کند. تمامی image های داکیرایز شده را در store برای شما شما لیست می‌کند، شما کافیست که دکمه install را بزنید، بنگ! سرویس شما آماده است :)\nامنیت اگر umbrel را به روی چیزی به جز سرور دارید، حتی اگر برای آن یک دامنه هم بگیرید، umbrel اجازه دسترسی به سیستم عامل را از طریق اینترنت به شما نمی‌دهد. برای اینکار شما باید از طریق tor به آن متصل شوید و یا یک VPN سرور داخل شبکه داخلی خود راه اندازی کنید.\nالبته umbrel به جز tor یک راه دیگر هم در اختیار کاربران قرار داده است، سرویسی VPN به نام tailscale که مستقیم به روی umbrel نصب می‌شود.\nسرویس های کاربردی umbrel matrix خیلی ساده بگم، می‌تونید با این سرویس telegtam خودتون رو راه اندازی کنید. برای اینکه بیشتر درباراه این سرویس بدونید، این پست من را بخوانید.\nnextcloud خیلی شبیه به گوگل درایو است، به جز نسخه وب حتی یک اپ اندروید هم دارد که می‌توانید آدرس nextcloud را درون آن وارد کنید و از هرکحا به فضای خودتون دسترسی داشته باشید. و خب حتی بعنوان ادمین برای افراد خانواده و یا شرکت‌تون اکانت بسازید، و فضای شخصی خودشان را در اختیارشان قرار بدین.\nqbittorrent اگر تورنت را می‌شناسید، قطعا این کلاینت معروف را هم باید بشناسید، این کلاینت یک نسخه وب دارد که داخل فروشگاه umbrel قرار دارد. فایل های خود را برای دانلود به این کلاینت بدین و در زمانی که از اینرنت استفاده نمی‌کنید مثلا 2 تا 7 صبح آن ها را بگذارید تا دانلود بشوند.\npi-hole برای خلاص شدن از تبلیغات اینترنت کافیه این سرویس DNS را به روی umbrel نصب کنید و سپس DHCP را تنظیم کنید که IP این سرویس را به دیگر دستگاه های شبکه بدهد.\nJellyfin یکی از نیاز های واقعا اساسی من، این سرویس است. فیلم هایی که می‌بینم، و یا قرار است که ببینم‌شون رو می‌تونم با این سرویس به درستی دنبال کنم. در اصل این سرویس برای پخش کردن فیلم ها ساخته شده‌ است. به این شکل که شما کافیست فیلم های خود را وارد jellyfin کنید، بعد از هرکحا و هر دستگاهی داخل مرورگر می‌توانید فیلم ها رو تماشا کنید، مثلا اگر تلویزیون هوشمند دارید کافیست از طریق مرورگر آن وارد umbrel خود بشین.\n-snapdrop\nسرویس خیلی ساده‌ای است که برای انتقال فایل داخل شبکه لوکال استفاده می‌شود.\nwhoogle search البته whoogle یک موتور جست و جوی meta است، به این معنی که خودش وب را خزش نمی‌کند و از موتور های جست و جوی دیگر برای نتیجه جست و جوی شما استفاده می‌کند.\nLlamaGPT چیزی شبیه ChatGPT ولی افلاین و کاملا خصوصی.\nراه اندازی سرویس های شخصی خیلی از سرویس ها هنوز به umbrel اضافه نشده. اضافه کردن سرویس به خود store هم کار سختی نیستی، کافیه فقط داکرایز کردن رو بلد باشین.\ncache server کش سرور ها معمولا با transparent proxy بدون اینکه کاربران متوجه پروکسی بشوند پیاده سازی می‌شوند. کار آنها کاهش مصرف ترافیک است.\nیکی از سرویس هایی که خیلی از شرکت ها برای کاهش هزینه های اینرنت و یا خب برای بهبود سرعت اینترنت می‌کنند، ارائه cache server هست.\nخیلی خلاصه بگم کش سرور محتوایی که کاربران بازدید می‌کنند را درون خود برای مدتی و با شرایطی از پیش تعیین شده نگه ‌می‌دارد و هر بار که کاربران به محتوای قبلی درخواست بدهند، دیگر آن ریکوئست تا سایت اصلی نمی‌رود و خود کش سرور که در شبکه داخلی است جواب آن را می‌دهد\n","date":"2023-12-11T01:39:34+03:30","image":"https://bit-orbit.github.io/images/post/umbrel.webp","permalink":"https://bit-orbit.github.io/p/cloud-%D8%B1%D8%A7-%D8%A8%D9%87-%D8%AE%D8%A7%D9%86%D9%87-%D8%AE%D9%88%D8%AF-%D8%A8%D8%A8%D8%B1%DB%8C%D8%AF/","title":"cloud را به خانه خود ببرید!"},{"content":"یکسری مفاهیمی در برنامه نویسی داریم که من تصمیم داریم درباره آنها توی چند پست توضیح بدم، اولین مورد که شامل این پست می‌شه تفاوت static linking و dynamic linking در زبان های برامه نویسی هست‌ش. مفاهیم دیگه‌ای که داخل پست های بعدی می‌نویسم چیز هایی مثل static type, dynamic type, compiler language, interpreter language و \u0026hellip; خواهد بود.\nدو مفهموم static linking و dynamic linking چه هستند؟\nهر کدام چه مشکلات و فوایدی دارند؟\nما در نوشتن برنامه ها معمولا از لایبراری های زیادی استفاده می‌کنیم، حتی یک برانامه ساده. سیستم ما برای اجرای یک برنامه، کد برنامه رو به ماشین-کد تبدیل می‌کنه و بعد خط به خط اون ها رو اجرا می‌کنه.\nاصطلاح linking به روندی گفته می‌شود که کد شما به اشیاء(کد و داده) های خارجی برای استفاده از انها اشاره کند. معمولا دو روش برای اینکار وجود دارد، static linking(لینک کردن ایستا), dynamic linking(لینک کردن پویا).\nstatic linking زمانی اتفاق می‌افتد که کامپایلر منابع خارجی(لایبراری) ها را داخل فایل اجرایی برنامه کپی کند\nدر واقع در این روش برنامه شما تمامی لایبراری هایی که شما در کد استفاده کردین رو با کد شما درون یک فایل اجرایی کامپایل می‌کند، زمانی که برنامه اجرا شود، تمامی لایبراری های مورد نیازش وارد مموری کامپیوتر می‌شود.\nفایده هایی که می‌تونم بهش اشاره کنم\nتوی منتشر کردن برنامه به دیگران، مشکل نصب کامپوننت ها رو دیگه ندارن، و به راحتی اجرا می‌کنند. ممکنه برنامه اندکی سریع تر اجرا بشه این روش واقعا خوبیه ولی خب معایب خودش رو هم داره\nفایل اجرایی حجم زیادی‌تری نسب‌ت به لینک کردن پویا داره وقتی برنامه اجرا بشه، بخاطر اینکه همه لایبراری و داده های مورد نیاز داخل همان فایل اجرایی بود، برنامه رم زیادی استفاده می‌کنه. اگر لایبراری های مورد استفاده تغییر کنند، برنامه نویس باید مجدد برنامه رو کامپایل و منتشر کنه dynamic linking لینک کردن پویا زمانی است که نام لایبراری خارجی در زمان اجرا وارد فایل اجرایی می‌شود. و اینکه فقط در این زمان است که لایبراری مورد نیاز وارد مموری می‌شود.\nدر این مواقع لایبراری ها باید در سیستم عامل از قبل نصب شده باشند، و یا در موقغ نصب برنامه جدید اون لایبراری ها نصب شوند. و اگر هر تغییری در لایبرار رخ بده، برنامه نویس نیاز نیست دوباره برنامه رو کامپایل و منتشر کند، فقط لایبراری مورد نیاز اپدیت می‌شود.\nاین روش هم مزیت های خودش رو داره، مثلا:\nحجم فایل های اجرایی خیلی کمتری داره تا زمانی که نیاز به لایبراری نشده باشد(اگر در کد نویسی رعایت شده باشه) لایبراری ها رم اشغال نمی‌کنند. مهمترین عیبی که می‌تونه این روش داشته باشه اینه که حذف شدن و یا خراب شدن لایبراری باعث می‌شه برنامه دیگه اجرا نشه.\nاین مطلب خلاصه‌ای کلی بود برای آشنایی با این دو مفهموم برای مطالعه بیشتر این لینک می‌تونه مفید باشه.\n","date":"2023-11-03T00:21:46+03:30","image":"https://bit-orbit.github.io/images/post/staticvsdynamic.jpg","permalink":"https://bit-orbit.github.io/p/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-staticlink-%D9%88-dynamiclink-%D8%AF%D8%B1-%D8%B2%D8%A8%D8%A7%D9%86-%D9%87%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C/","title":"تفاوت Staticlink و Dynamiclink در زبان های برنامه نویسی"},{"content":"دوست داشتن لینوکس واقعا دلایل زیادی داره و احتمالا هر کسی به دلیل خاصی لینوکس رو دوست داره. مثلا یکی ممکنه آزادی‌اش رو دوست داشته باشه یکی دیگه از پکیج منیجر علاقه رو به لینوکس پیدا کرده باشه و \u0026hellip;\nمن ترمینال قدرتمند لینوکس رو دوست دارم، چیزی که هیچوقت توی ویندوز تجربه نکرده بودم. یکی زیبایی های ترمینال برای من ترکیب ریزالت برنامه‌های مختلف با یکدیگر و بدست اوردن نتیجه جدیده\nمثلا بابام برای چندین پست فرستاد که هر پست شامل چهار یا پنج لینکه که من باید همه‌ش رو دانلود کنم، درحالت عادی اگر روی ویندوز بودم خب باید هر لینک رو کپی می‌کردم و بعد وارد دانلود منیجر می‌کردم برای دانلود. ولی خب ما مجهزیم به قدرت ترمینال لینوکس :)\nخب من کاری که می‌کنم اینه که متن پست ها رو کپی می‌کنم و توی یک فایل می‌ریزم اینطوری هم متن های فارسی پست ها و هم لینک های فایل ها رو دارم\nبعد با دستور grep با یک پترن ساده regex همه لینک ها رو از متن های فارسی جدا می‌کنم و داخل یک فایل دیگه می‌ریزم. این پترن به این شکل هست که می‌گه هر خطی که اولش http باشه رو پیدا کن.\n1 cat dl.txt | egrep \u0026#39;^http\u0026#39; \u0026gt; dl.lst و تمام، همه لینک ها رو یکجا آماده دارم، حالا کافیه با یک دستور همه فایل ها رو دانلود کنم.\n1 wget -c -i dl.lst خب بعد از دانلود شدن فایل ها، یک مشکلی که دارم این هست که هر پست شامل تمامی درس های یکی از فصل هایی هست که بابام می‌بینه. من باید فایل ها رو براساس فصل هاشون داخل دایرکتوری های مشخص خودش قرار بدم. اینم یک راهکار خیلی ساده داره. اسم فایل ها به این شکل هست که فصل رو داخلش نوشته Option402-J04-01.mp4 کافیه با یه وایلد کارت هر فصل رو جدا کنم و داخل دایرکتوری خودش بریزم\n1 2 3 4 mv Option402-J04* j04 mv Option402-J05* j05 mv Option402-J06* j06 mv Option402-J07* j07 این یک مثال ساده‌ای بود که می‌تونستم بزنم برای توضیح اینکه چرا لینوکس برام جذاب تره و کارم رو ساده تر می‌کنه.\n","date":"2023-07-07T02:45:19+03:30","image":"https://bit-orbit.github.io/images/post/ill.png","permalink":"https://bit-orbit.github.io/p/%DA%86%D8%B1%D8%A7-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D8%B1%D9%88-%D8%AF%D9%88%D8%B3%D8%AA-%D8%AF%D8%A7%D8%B1%D9%85/","title":"چرا لینوکس رو دوست دارم؟"},{"content":"پشت فیلم blade runner ایده جذابی هست که من خیلی دوست دارم. کلیت داستان به این شکل هست که دنیا تونسته از انسان clone هایی بسازه و از اونها برای پیشرفت و کار های سخت استفاده کنه، مثلا توی جنگ بجای سرباز واقعی استفاده می‌شن، اگه قراره ماموریت خطرناکی مثل اکتشاف توی فضا و یا دستگیری یک مجرم خطرناک کسی رو بفرستن، چی بهتر از یه کلون که جون انسان واقعی به خطر نیوفته؟\nاما از جایی به بعد کلون ها تغییر می‌کنند و دیگه برده بودن رو قبول نمی‌کنن، سعی می‌کنن فرار کنند و دستور انسان ها سرپیچی کنند. اما اینکار هم فایده‌ای نداره، چون انسان ها کلون های دیگه‌ای می‌سازند که کارشون پیدا کردن و کشتن کلون هایی هست که فرار کردن، به این شغل که مامولا شغل کلون ها هست می‌گن blade runner.\nاین روند یکم شبیه یک loop هست، ساخت clone هایی که clone ها رو بکشه درصورتی که همین clone ها فرار می‌کنند و دوباره clone های دیگه‌ای میان سراغ اینها.\nباید بگم که balde runner چندین سری فیلم هست، حتی یک سریال انیمیشنی هم داره.\n","date":"2023-06-24T22:02:35+03:30","image":"https://bit-orbit.github.io/p/blade-runner/37_hu620753980173416886.png","permalink":"https://bit-orbit.github.io/p/blade-runner/","title":"Blade Runner"},{"content":"ماتریکس یک پروتکل آزاد است! به این معنی که شما میتوانید از این پروتکل برای ارتباطات تحت شبکه مانند پیامرسان، اینترنت چیز ها (IoT) و هر چیز دیگری استفاده کنید. از ویژگی های این پروتکل، رمزنگاری سر تا سر (E2E) است، این ویژگی باعث میشود حتی سرور های ماتریکس که داده های ما را منتقل میکنند هم توانایی دسترسی به داده ها را نداشته باشند.\nپیام رسان ماتریکس یکی از اصلی ترین استفاده های ماتریکس، پیامرسان است. این پیامرسان به صورت غیر متمرکز عمل میکند. با این روش سانسور/فیلتر شدن سرور هایی که پیام ها را ذخیره و منتقل میکنند غیر ممکن میشود! چرا که این سرور ها قابل تغییر هستند و هر زمان که یکی از این سرور ها سانسور شود، شما همچنان میتوانید با سرور دیگری مجدد اکانت بسازید و در ارتباط بمانید. و یا حتی از سرور خودتان استفاده کنید!\nماتریکس چگونه کار میکند؟ هر سرور در ماتریکس HomeServer نامیده میشود، شما به عنوان Client انتخاب میکنید از هر HomeServer که میخواهید استفاده کنید.\nHomeServer ها میتوانند سرور های عمومی مثل سروری که خود ماتریکس راه اندازی کرده است باشد و یا میتواند سرور های شخصی خودتان باشد.\nزمانی که شما از یک HomeServer استفاده میکنید، این به آن معنی است که کلاینت شما به اکانتتان در آن HomeServer متصل میشود.\nزمانی که شما پیامی ارسال میکنید، پیامتان به HomeServer شما ارسال میشود، HomeServer بعد از دریافت پیام از شما، آن را به کاربران مشترک در آن روم ارسال میکند.\nدر ماتریکس هر نوع چت(شخصی و یا گروه) را room مینامند\nدر واقع زمانی که شما پیامی ارسال میکنید HomeServer پیام را برای کاربران ارسال میکند. این کاربران ممکن است کاربران همان HomeServer و یا کاربران HomeServer های دیگری باشند. پس پیام شما اگر برای کاربران یک HomeServer دیگر باشد، Homeserver شما بعد از دریافت پیامتان، پیام را برای HomerServer های دیگر ارسال خواهد کرد. و آن HomeServer پیام را دریافت و به کاربران مربوطه ارسال خواهد کرد.\nزمانی که شما پیامی را برای کاربر HomeServer دیگری ارسال میکنید، پیام شما تنها در HomeServer خودتان ذخیره نخواهد شد. بلکه در HomeServer کاربری/کاربرانی که پیام را به آن ارسال کرده اید هم ذخیره میشود.\nاصطلاحات در ماتریکس در ماتریکس چند اصطلاح وجود دارد که آشنایی با آنها به درک بهتر این پروتکل کمک میکند.\nHomeServer: سروری که شما در آن اکانت خود را میسازید. این سرور پیام های شما را ذخیره و ارسال میکند.\nClient: برای اینکه کاربران بتوانند از ماتریکس استفاده کنند، باید از ابزاری که از این پروتکل بهره میبرد استفاده کنند. به اینگونه از ابزار ها کلاینت گفته میشود.\nEvent: هر نوع داده ای که توسط ماتریکس ارسال شود event نامیده میشود. برای مثال ممکن است شما پیام ارسال کنید و یا به یک پیام واکنش نشان دهید.\nRoom: قسمتی است که کاربر با آن event ها را دریافت و ارسال میکند. event ها به room ارسال میشوند، و تمامی کاربران مشترک در room میتوانند event ها را دریافت کنند.\nSpace: Space نوعی خاصی از room برای دسته بندی دیگر room ها است. space میتواند هم شامل گروه و هم کاربران عادی شود.\nBridge: پل یا Bridge به راهکاری گفته میشود که شما میتوانید با استفاده از آن بین ماتریکس و پیامرسان های دیگر چت کنید. برای مثال شما با استفاده از Brdige تلگرام میتوانید با ماتریکس به کاربران تلگرام پیام ارسال و دریافت کنید.\nچگونه از ماتریکس استفاده کنیم؟ برای استفاده از ماتریکس، شما کافیست یکی از کلاینت های آن را نصب و به یک HomeServer متصل شوید.\nیکی از محبوب ترین کلاینت ها، کلاینت Element است، که شامل نسخه Android، IOS، Windows, Linux، Mac و البته نسخه تحت وب میشود.\nاستفاده از المنت مانند هر پیامرسان دیگری ساده است، اما اگر نیاز به کمک دارید این لینک میتواند کمکتان کند.\nچطور از سرور شخصی خودمان استفاده کنیم؟ شما مجبور نیستید سرویس ماتریکس را روی سرور شخصی خودتان اجرا کنید مگر اینکه:\nسرور های عمومی ماتریکس سانسور و از دسترس خارج شده باشند و یا شاید نگران دیتایی هستید که روی سرور های عمومی ماتریکس از طرف شما ذخیره میشود!(گرچه پیام ها تماما رمزنگاری سر تا سر میشود) و یا حتی شاید میخواهید پیام رسان داخلی شرکت/خانه خودتان را داشته باشید و یا البته ممکن است بخواهید Bridge بسازید. نسخه سرور ماتریکس Synapse نام دارد، شما میتوانید با استفاده از ایمیج داکر رسمی ماتریکس، سرور شخصی خودتان را اجرا کنید.\nنتیجه گیری هدف من از نوشتن این پست در این روز های تلخ این بود که ابزاری را معرفی کنم تا ما با وجود قطعی های متعدد اینترنت و قطع دسترسی ما از سرور های خارجی، کماکان در ارتباط نگهدارد و صدایمان را\u0026hellip;\nاگر روزی دسترسی ما از اینترنت قطع شد، کاری که لازم است برای در ارتباط ماندن انجام بدهیم این است که یک سرویس ماتریکس داخلی راه اندازی کنیم.\n","date":"2022-10-01T01:46:23+03:30","image":"https://bit-orbit.github.io/images/post/matrix.jpg","permalink":"https://bit-orbit.github.io/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/","title":"ارتباط غیر متمرکز و در لحظه با پروتکل ماتریکس"},{"content":" ما زمانی که برنامه‌ای در ترمینال اجرا می‌کنیم برای کپی کردن ریزالت اون برنامه، با موس تکست رو سلکت می‌کنیم و بعد کپی می‌کنیم. اما می‌دونیم که توی لینوکس ما pipe رو داریم. پایپ کردن به این معنی است که شما یک برنامه رو اجرا می‌کنید و ریزالت اون برنامه رو بعنوان ورودی به یک برنامه دیگر می‌دهید. و خب کاش می‌شد با پایپ کردن، متنی کپی بشه!\nبرنامه‌ای ساده نوشتم که این کار رو برای ما به سادگی انجام بده.\nمثلا ما می‌خواهیم لیست فایل ها و دایرکتوری های داخل پوشه /var/ رو کپی کنیم. می‌دونیم که دستور ls میاد و لیست فایل ها رو می‌گیره، کافیه این رو پایپ کنیم به clp تا این لیست به کلیپ برد کپی بشه.\nls /var | clp\nبرای نصب این چند دستور رو می‌تونید اجرا کنید:\n1 2 3 4 cd /tmp/ \u0026amp;\u0026amp; wget \u0026#39;https://raw.githubusercontent.com/shabane/clp/master/clp.py\u0026#39; cp clp.py ~/.local/bin/clp chmod +x ~/.local/bin/clp clp -h و خب می‌تونید برای دیدن مثال ها ریپوی گیتهاب برنامه رو هم ببینید\nhttps://github.com/shabane/clp\n","date":"2022-05-01T04:48:44+04:30","image":"https://bit-orbit.github.io/images/post/cclp.jpg","permalink":"https://bit-orbit.github.io/p/%DA%A9%D9%BE%DB%8C-%DA%A9%D8%B1%D8%AF%D9%86-%D8%B1%DB%8C%D8%B2%D8%A7%D9%84%D8%AA-%D9%BE%D8%A7%DB%8C%D9%BE-%D8%A8%D9%87-%DA%A9%D9%84%DB%8C%D9%BE-%D8%A8%D8%B1%D8%AF/","title":"کپی کردن ریزالت پایپ به کلیپ برد"},{"content":" شاید تا به حال از کوتاه کننده های لینک استفاده کرده باشید، اما ایا سایت کوتاه کننده لینک خودتون رو درست کردین؟\nگیتهاب پیجز یک سرور رایگان برای دیپلوی سایت های ایستا است. در واقع شما می‌توانید صفحه های html رو توی ریپو قرار بدین و این سایت اون صفحه ها رو به رایگان برای شما نمایش می‌دهد.\nاز همین قابلیت برای ساخت یک url redirector استفاده کردم، و با کمی جاوا اسکریپت یک صفحه درست کردم که وقتی شما با مرورگر اون رو باز می‌کنید، مرورگر شما به صورت خودکار به یک آدرس متفاوت منتقل خواهد شد.\nولی مشکل اینجاست که شما هر بار باید کلی html, css رو خودتان تغییر بدین و بعد قطعه کد جاوا اسکریپت رو اضافه کنید.\nCarbon من یک برنامه کوتاه کننده لینک درست کردم که زمانی که شما برنامه رو اجرا کنید، فایل های مورد نیاز رو برای شما می‌سازه.\nبرنامه رو که اجرا کنید یک CLI اجرا خواهد شد و از شما چند ورودی را درخواست خواهد کرد.\nاولین ورودی لینک طولانی است که شما نیاز دارید آن را کوتاه کنید.\nدر قدم دوم، برنامه یک نام که همان لینک کوتاه شده است را از شما خواهد گرفت، این نام را اگر به صورت خالی رها کنید، یک نام تصادفی بر اساس فایل کانفیگ در نظر گرفته خواهد شد.\nشاید سایت هایی را دیده باشید که از کاربر می‌خواند برای بازکردن لینک روی یک دکمه کلیک کنند، و در این فرصت که کاربر هنوز وارد لیک اصلی نشده است، تبلیغاتی را به آنها نمایش می‌دهند. پس سوال سوم این خواهد بود که آیا کاربر باید برای وارد شدن به لینک اصلی، دکمه‌ای را بزند و یا به صورت خودکار وارد آن شود؟\nسوال سوم از شما یک عنوان می‌خواهد که برای هدر سایت از آن استفاده کند، البته اگر تم سایت را کاستومایز کنید، این عنوان در هر جایی ممکن است قرار بگیرد.\nو آخرین سوال از شما یک توضیح برای لینک می‌خواهد. ممکن شما بخواهید قبل از اینکه کاربر وارد لینک اصلی شود یک متنی را بخواند. این توضیحات به کاربر نمایش داده خواهد شد.\nبرنامه کربن را منبع باز داخل این آدرس در گیتهاب قرار دادم، امیدوارم که مفید باشه.\nDeployment البته همینطور که می‌دانید نیاز نیست حتما از گیتهاب پیجز برای دیپلوی استفاده کنید. و تنها مشکلی که در این قضیه هست لینک هایی هست که تولید می‌شوند، این لینک ها به ساب دامین اکانت شما متصل می‌شوند، پس حفظ آن ها برای شما ساده است :) اما نکته اینجاست که کافیست شما یک دامنه ثبت کنید.\nراه دوم این است که با یک وب سرور مثل nginx این سایت را مستقر کنید، و هرگاه نیاز به ساخت لینک کوتاه داشتید، برنامه رو اجرا کنید.\nTheme من هیچ وقت دیزانر خوبی نبودم و به همین دلیل تم اصلی سایت ساده‌س. شما می‌توانید به راحتی تم خودتان رو بسازید، کافیه که داکیومنت ساخت تم رو مطالعه کنید. فقط و فقط چند تگ و فایل هست که باید ازش درون تم استفاده کنید، اگر تمی ساختید که قشنگتر از تم اصلی هست، خوشحال می‌شم به ریپو اصلی پوش کنید.\n","date":"2022-03-22T22:41:20Z","image":"https://bit-orbit.github.io/images/post/carbon_r7tm.jpg","permalink":"https://bit-orbit.github.io/p/%D8%B3%D8%A7%D8%AE%D8%AA-%DA%A9%D9%88%D8%AA%D8%A7%D9%87-%DA%A9%D9%86%D9%86%D8%AF%D9%87-%D9%84%DB%8C%D9%86%DA%A9-%D8%A8%D8%A7-%DA%AF%DB%8C%D8%AA%D9%87%D8%A7%D8%A8-%D9%BE%DB%8C%D8%AC%D8%B2/","title":"ساخت کوتاه کننده لینک با گیتهاب پیجز"},{"content":" شما باید درباره اصطلاح tty زمانی که به لینوکس و یونیکس آمد، شنیده باشید. اما tty چیست؟\nآیا برای شما به عنوان یک کاربر دستکتاپ مفید است؟\nبه آن نیاز دارید؟ می‌توانید با آن چه کار کنید؟\nاجازه دهید هر چیز ضروری برای آشنا کردن شما با اصطلاح tty را در این پست برسی کنیم.\nبه یاد داشته باشید که پاسخ قطعی برای این سوال وجود ندارد، اما به نحوه تعامل دستگاه های input/output(ورودی/خروجی) در گذشته ربط دارد.\nبرای اینکه تصویری شفاف از آن داشته باشید باید کمی از تاریخ‌ش را بدانید.\nتاریخ پشت اصطلاح tty همه چیز از یک teleprinter در سال 1830 شروع شد.\nteleprinter به شما اجازه می‌داد که از طریق سیم پیام ارسال و دریافت کنید. teleprinter جایگزینی برای ارطبات مورس کد بود در آن دو اپراتور برای ارطبات با یکدیگر مود نیاز بود. اما در teleprinter فقط به یک اپراتور برای ارسال پیام نیاز داشت. درحالی که teleprinter یک صفحه کلید مدرن نداشت، بعد ها سیستم آن توسط Donald Murray به یک صفحه کلید teletypewriter تکامل یافت.\nMurray زحمت اپراتور ها را برای ارسال و پیام را کاهش داد و این امکان را برای teletypeprinter فراهم کرد که به عنوان یک teletypewriter تجاری در سال 1908 بیرون بیاید. tty نام کوتاه شده teletypewrite است.\nتفاوت بین teletypewrite و typewriter های معمولی این بود که teletypewrite به یک دستگاه ارطباتی برای ارسال پیام نوشته شده متصل بود. teletypewriter ارطبات سریع تری را تا اکنون برای انسال بدون استفاده از کامپیوتر مقدور کرده است. و اینجا جایی است که tty بوجود آمد.\nمفهوم مدرن اکنون شما باید متعجب شده باشید که چطور tty به لینوکس و کامپیوتر مدرن آمده است.\nبسیار خب، برای شروع، زمانی که teletypewriter به بازار رسید، چند سال بعد ترانزیستور های نیمه هادی(نیمه رسانا) توسعه داده شد که به میکروپروسسور(micro proccessor) هایی تبدیل شدند که کامپیوتر را ممکن می‌کرند.\nکامپیوتر های اولیه مفهومی به اسم صفحه کلید نداشتند. کارت های پانج روش ورودی دادن به کامپیوتر ها بود\nدرحالی که کامپیوتر ها توسعه پیدا می‌کردند، بالاخره کارت های پانچ با teletypewriter به عنوان دستگاه ورودی/خروجی مناسب جایگزین شد. با توسعه تکنولوژی teletypewriter ها با استفاده از الکترونیک مجازی شدند. پس شما به یک tty فیزیکی، مکانیکی نیاز پیدا نمی‌کنید، بلکه به یک tty مجازی، الکترونیکی نیاز دارید.\nاوایل کامپیوتر ها صفحه نمایش هم نداشتند. چیز ها بجای نمایش داده شدن بروی صفحه نمایش (که وجود نداشت) به روی کاغذ چاپ می‌شدند. به همین دلیل شما بجای دیدن اصطلاح display اصطلاح print را می‌بینید. ویدیو ها به عنوان تکنولوژی پیشرفته به ترمینال(پایانه) ها اضافه شد. به عبارت دیگر شما باید درباره ترمینال های ویدیویی شنیده باشید. یا شما می‌توانید آن ها را ترمینال های فیزیکی بنامید.\nسپس اینها به ترمینال های نرم افزاری شبیه سازی شده تکامل پیدا کردند که با قابلیت ها و ویژگی های تسوسعه یافته‌ای همرا بود. این چیزی است که شما آن را terminal emulator می‌نامید.\nبرای نمونه ترمینال گنوم (Gnome) یا کنسول (Konsole) چنتا از بهترین ترمینال هایی هستند که می‌توانید برای لینوکس پیدا کنید.\nبسیارخب tty در لینوکس چیست؟ زمانی که tty به لینوکس و یونیکس آمد، یک دستگاه مستقل در یونیکس و لینوکس بود گاهی tty به یک دستگاه ورودی فیزیکی مانند serial port(درگاه سریال) اشاره می‌کرد، و گاهی به ترمینال های مجازی اشاره می‌کرد که به کاربران اجازه تعامل با سیستم را می‌داد.\ntty یک زیر سیستم در لینوکس و یونیکس است که مدریت فرایند، ویرایش خط و مدیریت نشست ها را در سطح کرنل از طریق درایور های tty ممکن می‌کند.\nاز دیدگاه برنامه نویسی شما باید در این موضوع عمیق تر شوید. اما محدوده این پست را در نظر بگیرید، این مقاله باید یک توضیح ساده برای درک بهتر باشد. در حقیقت، هر گاه یک ترمینال را باز می‌کنیم یا هر نوع shell دیگیری را در سیستمتان استفاده کنید، آن shell با tty مجازی که PTY یا pseudo-tty هم شناخته می‌شوند، تعامل خواهد داشت.\nشما می‌توانید tty را در ترمینال تایپ کنید و pty مرتبط را پیدا کنید.\nچگونه به tty در لینوکس دسترسی داشته باشیم؟ دسترسی به tty در لینوکس ساده است. در حقیت زمانی که هیچ سرنخی از اینکه tty چیست نداشتم، به طور اتفاقی به آن دسترسی پیدا کردم و از اینکه چطوری باید از آن خارج شوم وحشت زده شدم!\nشما می‌توانید با کلید های میانبر زیر در اکثر توزیع های لینوکس به صفحه tty دسترسی پیدا کنید.\nCTRL + ALT + F1 – Lockscreen\nCTRL + ALT + F2 – Desktop Environment\nCTRL + ALT + F3 – TTY3\nCTRL + ALT + F4 – TTY4\nCTRL + ALT + F5 – TT5\nCTRL + ALT + F6 – TTY6\nشما می‌توانید حد اکثر به 6 tty دسترسی داشته باشید، با این حال دو تا از اولین کلید های میانبر به صفحه قفل و محیط دسکتاپ اشاره دارد.\nبنابر این، با باقی کلید های میانبر شما به محیط command-line دسترسی می‌گیرید.\nچه زمانی شما از tty در لینوکس استفاده خواهید کرد؟ tty فقط یک گنج تکنیکی نیست. حتی برای کاربرانی مثل من که توسعه دهنده هم نیستند مفید است.\nزمانی که محیط گرافیکی فریز می‌شود باید به کار بیاید. در بعضی از مواقع نصب مجدد محیط گرافیکی با استفاده از tty می‌تواند مشکل را حل کند.\nیا شما می‌توانید tty را برای انجام کار هایی مثل آپدیت انتخاب کنید جایی که شما نمی‌خواهید مشکلات بصری فرایند های شما را مختل کند.\nبد ترین مورد سناریو، شما می‌تواند زمانی که محیط دستکتاپ جواب نمی‌دهد، برای ریبوت به tty مراجعه کنید.\nبعضی از کاربران ترجیح می‌دهند که فایل های بزرگ را با tty منتقل کنند(من از آنها نیستم)\ntty به عنوان یک دستور در لینوکس همانطور که در صفحه راهنمای (man page) tty توضیح داده شده است، زمانی که شما tty را در ترمینال تایپ کنید، نام فایل ترمینال که به وردی استاندارد متصل است را چاپ می‌کند.\nبه عبارت دیگر برای دانستن عدد tty که به آن متصل هستید، فقط tty را در ترمینال تایپ کنید. اگر چند کاربر از راه دور به سیستم لینوکس متصل هستند، می‌توانید برای برسی اینکه به چه متصل هستند از کامند who استفاده کنید.\nخارج از ترجمه متن ترجمه شده بود و خب من یک مترجم تخصصی نیستم، من یک برنامه نویسم که بلاگ نویسی و ترجمه رو هم دوست دارم، سعی کردم به بهترین نحو متن را ترجمه کنم و در اختیار بقیه بذارم، اگر حس کردین جایی از متن مشکلی داره، خیلی خوشحال می‌شوم که مشکلم رو بهم بیگید، این کمک بزرگیه.\nمتن اصلی رو می‌توانید از این لینک بخوانید.\n","date":"2022-01-31T19:57:05+03:30","image":"https://bit-orbit.github.io/images/post/tty.jpg","permalink":"https://bit-orbit.github.io/p/%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA-tty/","title":" در لینوکس چیست؟ TTY "},{"content":" زمانی که مقاله یا پستی را می‌خوانم، گاهی احساس می‌کنم ممکنه یک مطلب را فراموش کنم. مثلا اگه مقاله‌ای از ویرگول درباره یک دستور لینوکس بخوانم، برای اینکه مطلبش را فراموش نکنم باید هرزگاهی به پست سر بزنم و مطالب را مرور کنم. اما فکر کنید مطلب درباره برنامه‌ای باشد که می‌توان با استفاده از آن سانسور را دور زد، ویرگول احتمالا آن مطلب را حذف می‌کند.\nچه راهی برای ذخیره پست پشنهاد می‌کنید که بعدا بتوان آن را بارها مرور کرد؟\nاگر پست از سایت منبع حذف شود، و یا حتی خود سایت دیگر در دسترس نباشد، باز هم پستی که ذخیره کرده‌اید در دسترس است؟\nدر این پست با استفاده از ابزار wget یک پست را با تمامی وابستگی هایش مانند عکس ها، فایل های js، فایل های css دانلود می‌کنیم و روی سیستم خودمان ذخیره می‌کنیم تا حتی اگر سایت در دسترس نباشد و یا پست از منبع حذف شد، پست به صورت افلاین در دسترس بماند.\nwget می‌دونید که wget یک ابزار پیشرفته برای دانلود فایله، قابلیت های زیادی که داره باعث شده بعد از سالها که ابزار های پیشرفته دانلود هم نوشته شدن، همچنان wget استفاده بشه. این برنامه روی اکثر توزیع های لینوکس به صورت دیفالت نصبه پس بیایید بدون تلف کردن وقت سوییچ های مهم برای میرور کردن یک صفحه سایت رو برسی کنیم.\nⅠ. --adjust-extension, -E\nشاید شما هم سایتی هایی را دیده باشید که url صفحه هایشان با پسوند .asp به پایان می‌رسند. برای مثال نگاهی به این آدرس بیاندازید https://www.w3schools.com/python/default.asp همانطور که می‌بینید با asp به پایان می‌رسد. زمانی که شما این صفحه را دانلود کنید، این صفحه بجای پسوند html. با پسوند asp. ذخیره خواهد شد.\nبه همین دلیل ما از این سوییچ استفاده می‌کنیم تا صفحه ها را با پسوند html. ذخیره کنیم.\n1 2 3 $ https://example.com/some/where # where.html Ⅱ. --span-hosts, -H\nاگر حتی فقط یک صفحه را میرور می‌کنیم، آن صفحه ممکن است به فایل های خارج از سایت که به روی یک CDN قرار گرفته اند نیاز داشته باشد، مثل عکس ها و یا style sheet ها. از اینرو وقتی شما یک صفحه را میرور می‌کنید wget فایل های خارج از سایت را دانلود نخواهد کرد.\nپوشش دادن فایل های خارج از سایت با استفاده از این سوییچ انجام داده می‌شود. وقتی این سوییچ را روشن کنید wget همه لینک ها از جمله لینک هایی زیر دامنه را هم دانلود خواهد کرد، مگر اینکه عمق پوشش دادن را محدود کنید.\nⅢ. --convert-links, -k\nیک صفحه را که میرور کردیم با توجه به اینکه فایل های پیشیاز مثل عکس و استایل ها را هم دانلود کردیم، وقتی فایل را با مرورگر باز کنیم همچنان صفحه html ما به فایل های داخل سایت منبع لینک شده است و فایل های پیشنازش را حتی با اینکه روی سیستم داریم، باز هم از آدرس خارجی دریافت می‌کند و نمایش می‌دهد.\nبرای اینکه یک صفحه فایل های پیشنیازش را از فایل هایی که در کنار صفحه اصلی دانلود کرده است بگیرد، از این سوییچ استفاده می‌کنیم. این سوییچ تمامی لینک ها را به لینک های داخلی تبدیل می‌کند و صفحه موقع لود شدن از فایل های داخلی استفاده می‌کند.\nⅣ. --page-requisites, -p\nاین سوییچ باعث می‌شود که wget تمامی فایل های ضروری برای درست نمایش داده شدن html را دانلود کند. این فایل ها شامل عکس ها، استایل ها و یا صدا ها می‌شود.\nⅤ. --no-directories, -nd\nبه صورت پیشفرض زمانی که صفحه‌ای با این ادرس را دانلود کنیم\nhttps://example.com/some/where/page.html\nبرنامه wget این صفحه و فایل های مورد نیازش را به این صورت ذخیره خواهد کرد\nsome/where/page.html/.\nاما با استفاده از سوییچ nd- آن صفحه و فایل های مورد نیازش فقط داخل یک دایرکتوری ذخیره خواهد شد. به این صورت\npage.html/.\nبا فعال کردن این سوییچ wget صفحه و فایل های پیشنیاز را داخل دایرکتوری فعلی ذخیره خواهد کرد. و اگر نام یک فایل بیش از یکبار تکرار شود، به نام فایل پسوند اضافه خواهد شد.\nمثال کاربردی و خروجی برای مثال من یک پست توی ویرگول که آموزش الگوریتم RSA هست رو دانلود می‌کنم. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 ┌─[loading] [/tmp/virgool] [0] │ └──〉wget -nd -E -p -k -H https://vrgl.ir/c3fVa --2022-01-18 06:41:03-- https://vrgl.ir/c3fVa Connecting to 192.168.45.250:8080... connected. Proxy request sent, awaiting response... 302 Found Location: https://virgool.io/@Novo/rsa-encryption-ao1poasym4cf [following] --2022-01-18 06:41:04-- https://virgool.io/@Novo/rsa-encryption-ao1poasym4cf Connecting to 192.168.45.250:8080... connected. Proxy request sent, awaiting response... 200 OK Length: unspecified [text/html] Saving to: ‘c3fVa.html’ c3fVa.html [ \u0026lt;=\u0026gt; ] 61.30K 200KB/s in 0.3s 2022-01-18 06:41:06 (200 KB/s) - ‘c3fVa.html’ saved [62773] Loading robots.txt; please ignore errors. --2022-01-18 06:41:06-- https://virgool.io/robots.txt Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: unspecified [document] Saving to: ‘robots.txt’ robots.txt [ \u0026lt;=\u0026gt; ] 484 --.-KB/s in 0s 2022-01-18 06:41:07 (85.7 MB/s) - ‘robots.txt’ saved [484] Loading robots.txt; please ignore errors. --2022-01-18 06:41:07-- https://www.googletagmanager.com/robots.txt Connecting to 192.168.45.250:8080... connected. Proxy request sent, awaiting response... 404 Not Found 2022-01-18 06:41:08 ERROR 404: Not Found. Loading robots.txt; please ignore errors. --2022-01-18 06:41:08-- https://files.virgool.io/robots.txt Connecting to 192.168.45.250:8080... connected. Proxy request sent, awaiting response... 403 Forbidden 2022-01-18 06:41:09 ERROR 403: Forbidden. Loading robots.txt; please ignore errors. --2022-01-18 06:41:09-- https://static.cloudflareinsights.com/robots.txt Connecting to 192.168.45.250:8080... connected. Proxy request sent, awaiting response... 522 2022-01-18 06:41:26 ERROR 522: (no description). --2022-01-18 06:41:26-- https://virgool.io/images/favicon.png?v=v2.6.15 Connecting to 192.168.45.250:8080... connected. Proxy request sent, awaiting response... 200 OK Length: 9855 (9.6K) [image/png] Saving to: ‘favicon.png?v=v2.6.15’ favicon.png?v=v2.6.15 100%[======================================================\u0026gt;] 9.62K --.-KB/s in 0.07s 2022-01-18 06:41:27 (130 KB/s) - ‘favicon.png?v=v2.6.15’ saved [9855/9855] --2022-01-18 06:41:27-- https://virgool.io/css/styles.css?v=v2.6.15 Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: unspecified [text/css] Saving to: ‘styles.css?v=v2.6.15.css’ styles.css?v=v2.6.15.css [ \u0026lt;=\u0026gt; ] 903.60K 592KB/s in 1.5s 2022-01-18 06:41:28 (592 KB/s) - ‘styles.css?v=v2.6.15.css’ saved [925284] Loading robots.txt; please ignore errors. --2022-01-18 06:41:28-- https://virgool.test/robots.txt Connecting to 192.168.45.250:8080... connected. Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. --2022-01-18 06:41:28-- https://www.googletagmanager.com/ns.html?id=GTM-5GS688K Connecting to 192.168.45.250:8080... connected. Proxy request sent, awaiting response... 200 OK Length: unspecified [text/html] Saving to: ‘ns.html?id=GTM-5GS688K.html’ ns.html?id=GTM-5GS688K.html [ \u0026lt;=\u0026gt; ] 266 --.-KB/s in 0s 2022-01-18 06:41:29 (29.4 MB/s) - ‘ns.html?id=GTM-5GS688K.html’ saved [266] --2022-01-18 06:41:29-- https://files.virgool.io/upload/users/31434/avatar/1C4LLE.png?x-img=v1/resize,h_120,w_120/optimize,q_100 Connecting to 192.168.45.250:8080... connected. Proxy request sent, awaiting response... 200 OK Length: 39194 (38K) [image/png] Saving to: ‘1C4LLE.png?x-img=v1%2Fresize,h_120,w_120%2Foptimize,q_100’ 1C4LLE.png?x-img=v1%2Fresize,h_ 100%[======================================================\u0026gt;] 38.28K 173KB/s in 0.2s 2022-01-18 06:41:30 (173 KB/s) - ‘1C4LLE.png?x-img=v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved [39194/39194] --2022-01-18 06:41:30-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/qhokakomwyb5.png Reusing existing connection to files.virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 179870 (176K) [image/png] Saving to: ‘qhokakomwyb5.png’ qhokakomwyb5.png 100%[======================================================\u0026gt;] 175.65K 567KB/s in 0.3s 2022-01-18 06:41:31 (567 KB/s) - ‘qhokakomwyb5.png’ saved [179870/179870] --2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/v1xnwpnewfys.webp Reusing existing connection to files.virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 12770 (12K) [image/webp] Saving to: ‘v1xnwpnewfys.webp’ v1xnwpnewfys.webp 100%[======================================================\u0026gt;] 12.47K --.-KB/s in 0.07s 2022-01-18 06:41:31 (180 KB/s) - ‘v1xnwpnewfys.webp’ saved [12770/12770] --2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/d28hpu2detkl.png Reusing existing connection to files.virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 92847 (91K) [image/png] Saving to: ‘d28hpu2detkl.png’ d28hpu2detkl.png 100%[======================================================\u0026gt;] 90.67K --.-KB/s in 0.09s 2022-01-18 06:41:31 (969 KB/s) - ‘d28hpu2detkl.png’ saved [92847/92847] --2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/rhyykrc8azq0.png Reusing existing connection to files.virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 17539 (17K) [image/png] Saving to: ‘rhyykrc8azq0.png’ rhyykrc8azq0.png 100%[======================================================\u0026gt;] 17.13K --.-KB/s in 0.007s 2022-01-18 06:41:32 (2.47 MB/s) - ‘rhyykrc8azq0.png’ saved [17539/17539] --2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/fjtc1ydzkuse.png Reusing existing connection to files.virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 108524 (106K) [image/png] Saving to: ‘fjtc1ydzkuse.png’ fjtc1ydzkuse.png 100%[======================================================\u0026gt;] 105.98K --.-KB/s in 0.1s 2022-01-18 06:41:32 (1.06 MB/s) - ‘fjtc1ydzkuse.png’ saved [108524/108524] --2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/gfqhgyp18oic.jpeg Reusing existing connection to files.virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 132085 (129K) [image/jpeg] Saving to: ‘gfqhgyp18oic.jpeg’ gfqhgyp18oic.jpeg 100%[======================================================\u0026gt;] 128.99K --.-KB/s in 0.1s 2022-01-18 06:41:32 (1.28 MB/s) - ‘gfqhgyp18oic.jpeg’ saved [132085/132085] --2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/me0mpjtdmyom.png Reusing existing connection to files.virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 113489 (111K) [image/png] Saving to: ‘me0mpjtdmyom.png’ me0mpjtdmyom.png 100%[======================================================\u0026gt;] 110.83K --.-KB/s in 0.1s 2022-01-18 06:41:33 (814 KB/s) - ‘me0mpjtdmyom.png’ saved [113489/113489] --2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/of7krju6oqzk.png Reusing existing connection to files.virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 105746 (103K) [image/png] Saving to: ‘of7krju6oqzk.png’ of7krju6oqzk.png 100%[======================================================\u0026gt;] 103.27K --.-KB/s in 0.08s 2022-01-18 06:41:33 (1.25 MB/s) - ‘of7krju6oqzk.png’ saved [105746/105746] --2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/oqwhflg4gbnq.png Reusing existing connection to files.virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 120994 (118K) [image/png] Saving to: ‘oqwhflg4gbnq.png’ oqwhflg4gbnq.png 100%[======================================================\u0026gt;] 118.16K --.-KB/s in 0.1s 2022-01-18 06:41:33 (1.14 MB/s) - ‘oqwhflg4gbnq.png’ saved [120994/120994] --2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/taqjnfnuzxcx.png Reusing existing connection to files.virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 122678 (120K) [image/png] Saving to: ‘taqjnfnuzxcx.png’ taqjnfnuzxcx.png 100%[======================================================\u0026gt;] 119.80K --.-KB/s in 0.06s 2022-01-18 06:41:34 (2.00 MB/s) - ‘taqjnfnuzxcx.png’ saved [122678/122678] --2022-01-18 06:41:34-- https://files.virgool.io/upload/users/63/posts/qwqrubplfaau/g8vai2incgna.jpeg?x-img=v1/resize,w_300/optimize,q_100 Reusing existing connection to files.virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 88292 (86K) [image/jpeg] Saving to: ‘g8vai2incgna.jpeg?x-img=v1%2Fresize,w_300%2Foptimize,q_100’ g8vai2incgna.jpeg?x-img=v1%2Fre 100%[======================================================\u0026gt;] 86.22K --.-KB/s in 0.1s 2022-01-18 06:41:34 (824 KB/s) - ‘g8vai2incgna.jpeg?x-img=v1%2Fresize,w_300%2Foptimize,q_100’ saved [88292/88292] --2022-01-18 06:41:34-- https://files.virgool.io/upload/users/63/avatar/o8jiNe.png?x-img=v1/resize,h_120,w_120/optimize,q_100 Reusing existing connection to files.virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 32037 (31K) [image/png] Saving to: ‘o8jiNe.png?x-img=v1%2Fresize,h_120,w_120%2Foptimize,q_100’ o8jiNe.png?x-img=v1%2Fresize,h_ 100%[======================================================\u0026gt;] 31.29K --.-KB/s in 0.06s 2022-01-18 06:41:34 (558 KB/s) - ‘o8jiNe.png?x-img=v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved [32037/32037] --2022-01-18 06:41:34-- https://files.virgool.io/upload/users/31434/posts/e3oydlcfkr5e/figl9y1c6otq.jpeg?x-img=v1/resize,w_300/optimize,q_100 Reusing existing connection to files.virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 30356 (30K) [image/jpeg] Saving to: ‘figl9y1c6otq.jpeg?x-img=v1%2Fresize,w_300%2Foptimize,q_100’ figl9y1c6otq.jpeg?x-img=v1%2Fre 100%[======================================================\u0026gt;] 29.64K --.-KB/s in 0.07s 2022-01-18 06:41:35 (401 KB/s) - ‘figl9y1c6otq.jpeg?x-img=v1%2Fresize,w_300%2Foptimize,q_100’ saved [30356/30356] --2022-01-18 06:41:35-- https://files.virgool.io/upload/users/316150/posts/r8rhw88uh1xh/cs1ugyelv3zw.png?x-img=v1/resize,w_300/optimize,q_100 Reusing existing connection to files.virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 34459 (34K) [image/png] Saving to: ‘cs1ugyelv3zw.png?x-img=v1%2Fresize,w_300%2Foptimize,q_100’ cs1ugyelv3zw.png?x-img=v1%2Fres 100%[======================================================\u0026gt;] 33.65K --.-KB/s in 0.08s 2022-01-18 06:41:35 (399 KB/s) - ‘cs1ugyelv3zw.png?x-img=v1%2Fresize,w_300%2Foptimize,q_100’ saved [34459/34459] --2022-01-18 06:41:35-- https://files.virgool.io/upload/users/316150/avatar/8sz7Rs.jpeg?x-img=v1/resize,h_120,w_120/optimize,q_100 Reusing existing connection to files.virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 14764 (14K) [image/jpeg] Saving to: ‘8sz7Rs.jpeg?x-img=v1%2Fresize,h_120,w_120%2Foptimize,q_100’ 8sz7Rs.jpeg?x-img=v1%2Fresize,h 100%[======================================================\u0026gt;] 14.42K --.-KB/s in 0.007s 2022-01-18 06:41:35 (2.11 MB/s) - ‘8sz7Rs.jpeg?x-img=v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved [14764/14764] --2022-01-18 06:41:35-- https://virgool.io/js/commons.js?v=v2.6.15 Connecting to 192.168.45.250:8080... connected. Proxy request sent, awaiting response... 200 OK Length: unspecified [application/javascript] Saving to: ‘commons.js?v=v2.6.15’ commons.js?v=v2.6.15 [ \u0026lt;=\u0026gt; ] 997.55K 337KB/s in 3.0s 2022-01-18 06:41:39 (337 KB/s) - ‘commons.js?v=v2.6.15’ saved [1021492] --2022-01-18 06:41:39-- https://virgool.io/js/main.js?v=v2.6.15 Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: unspecified [application/javascript] Saving to: ‘main.js?v=v2.6.15’ main.js?v=v2.6.15 [ \u0026lt;=\u0026gt; ] 1.21M 580KB/s in 2.1s 2022-01-18 06:41:41 (580 KB/s) - ‘main.js?v=v2.6.15’ saved [1267632] --2022-01-18 06:41:41-- https://static.cloudflareinsights.com/beacon.min.js/v652eace1692a40cfa3763df669d7439c1639079717194 Connecting to 192.168.45.250:8080... connected. Proxy request sent, awaiting response... 200 OK Length: 13970 (14K) [text/javascript] Saving to: ‘v652eace1692a40cfa3763df669d7439c1639079717194’ v652eace1692a40cfa3763df669d743 100%[======================================================\u0026gt;] 13.64K --.-KB/s in 0.02s 2022-01-18 06:41:42 (600 KB/s) - ‘v652eace1692a40cfa3763df669d7439c1639079717194’ saved [13970/13970] --2022-01-18 06:41:42-- https://virgool.io/fonts/vazir/Vazir-Thin.ttf Connecting to 192.168.45.250:8080... connected. Proxy request sent, awaiting response... 200 OK Length: 98924 (97K) [application/octet-stream] Saving to: ‘Vazir-Thin.ttf’ Vazir-Thin.ttf 100%[======================================================\u0026gt;] 96.61K 140KB/s in 0.7s 2022-01-18 06:41:43 (140 KB/s) - ‘Vazir-Thin.ttf’ saved [98924/98924] --2022-01-18 06:41:43-- https://virgool.io/fonts/vazir/Vazir-Thin.eot? Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: unspecified [application/vnd.ms-fontobject] Saving to: ‘Vazir-Thin.eot?’ Vazir-Thin.eot? [ \u0026lt;=\u0026gt; ] 96.80K 276KB/s in 0.4s 2022-01-18 06:41:44 (276 KB/s) - ‘Vazir-Thin.eot?’ saved [99120] --2022-01-18 06:41:44-- https://virgool.io/fonts/vazir/Vazir-Thin.woff Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 54068 (53K) [font/woff] Saving to: ‘Vazir-Thin.woff’ Vazir-Thin.woff 100%[======================================================\u0026gt;] 52.80K --.-KB/s in 0.07s 2022-01-18 06:41:45 (770 KB/s) - ‘Vazir-Thin.woff’ saved [54068/54068] --2022-01-18 06:41:45-- https://virgool.io/fonts/vazir/Vazir-Thin.woff2 Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 43000 (42K) [font/woff2] Saving to: ‘Vazir-Thin.woff2’ Vazir-Thin.woff2 100%[======================================================\u0026gt;] 41.99K --.-KB/s in 0.006s 2022-01-18 06:41:46 (6.59 MB/s) - ‘Vazir-Thin.woff2’ saved [43000/43000] --2022-01-18 06:41:46-- https://virgool.io/fonts/vazir/Vazir-Light.ttf Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 105360 (103K) [application/octet-stream] Saving to: ‘Vazir-Light.ttf’ Vazir-Light.ttf 100%[======================================================\u0026gt;] 102.89K 478KB/s in 0.2s 2022-01-18 06:41:46 (478 KB/s) - ‘Vazir-Light.ttf’ saved [105360/105360] --2022-01-18 06:41:46-- https://virgool.io/fonts/vazir/Vazir-Light.eot? Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: unspecified [application/vnd.ms-fontobject] Saving to: ‘Vazir-Light.eot?’ Vazir-Light.eot? [ \u0026lt;=\u0026gt; ] 103.09K 470KB/s in 0.2s 2022-01-18 06:41:47 (470 KB/s) - ‘Vazir-Light.eot?’ saved [105562] --2022-01-18 06:41:47-- https://virgool.io/fonts/vazir/Vazir-Light.woff Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 59688 (58K) [font/woff] Saving to: ‘Vazir-Light.woff’ Vazir-Light.woff 100%[======================================================\u0026gt;] 58.29K --.-KB/s in 0.08s 2022-01-18 06:41:48 (758 KB/s) - ‘Vazir-Light.woff’ saved [59688/59688] --2022-01-18 06:41:48-- https://virgool.io/fonts/vazir/Vazir-Light.woff2 Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 48168 (47K) [font/woff2] Saving to: ‘Vazir-Light.woff2’ Vazir-Light.woff2 100%[======================================================\u0026gt;] 47.04K --.-KB/s in 0.08s 2022-01-18 06:41:48 (570 KB/s) - ‘Vazir-Light.woff2’ saved [48168/48168] --2022-01-18 06:41:48-- https://virgool.io/fonts/vazir/Vazir-Regular.ttf Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 98376 (96K) [application/octet-stream] Saving to: ‘Vazir-Regular.ttf’ Vazir-Regular.ttf 100%[======================================================\u0026gt;] 96.07K 435KB/s in 0.2s 2022-01-18 06:41:49 (435 KB/s) - ‘Vazir-Regular.ttf’ saved [98376/98376] --2022-01-18 06:41:49-- https://virgool.io/fonts/vazir/Vazir-Regular.eot? Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: unspecified [application/vnd.ms-fontobject] Saving to: ‘Vazir-Regular.eot?’ Vazir-Regular.eot? [ \u0026lt;=\u0026gt; ] 96.26K 285KB/s in 0.3s 2022-01-18 06:41:50 (285 KB/s) - ‘Vazir-Regular.eot?’ saved [98574] --2022-01-18 06:41:50-- https://virgool.io/fonts/vazir/Vazir-Regular.woff Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 53744 (52K) [font/woff] Saving to: ‘Vazir-Regular.woff’ Vazir-Regular.woff 100%[======================================================\u0026gt;] 52.48K --.-KB/s in 0.05s 2022-01-18 06:41:51 (1.10 MB/s) - ‘Vazir-Regular.woff’ saved [53744/53744] --2022-01-18 06:41:51-- https://virgool.io/fonts/vazir/Vazir-Regular.woff2 Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 42744 (42K) [font/woff2] Saving to: ‘Vazir-Regular.woff2’ Vazir-Regular.woff2 100%[======================================================\u0026gt;] 41.74K --.-KB/s in 0.1s 2022-01-18 06:41:51 (412 KB/s) - ‘Vazir-Regular.woff2’ saved [42744/42744] --2022-01-18 06:41:51-- https://virgool.io/fonts/vazir/Vazir-Medium.ttf Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 98892 (97K) [application/octet-stream] Saving to: ‘Vazir-Medium.ttf’ Vazir-Medium.ttf 100%[======================================================\u0026gt;] 96.57K 606KB/s in 0.2s 2022-01-18 06:41:52 (606 KB/s) - ‘Vazir-Medium.ttf’ saved [98892/98892] --2022-01-18 06:41:52-- https://virgool.io/fonts/vazir/Vazir-Medium.eot? Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: unspecified [application/vnd.ms-fontobject] Saving to: ‘Vazir-Medium.eot?’ Vazir-Medium.eot? [ \u0026lt;=\u0026gt; ] 96.78K 347KB/s in 0.3s 2022-01-18 06:41:53 (347 KB/s) - ‘Vazir-Medium.eot?’ saved [99100] --2022-01-18 06:41:53-- https://virgool.io/fonts/vazir/Vazir-Medium.woff Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 54120 (53K) [font/woff] Saving to: ‘Vazir-Medium.woff’ Vazir-Medium.woff 100%[======================================================\u0026gt;] 52.85K 125KB/s in 0.4s 2022-01-18 06:41:54 (125 KB/s) - ‘Vazir-Medium.woff’ saved [54120/54120] --2022-01-18 06:41:54-- https://virgool.io/fonts/vazir/Vazir-Medium.woff2 Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 43152 (42K) [font/woff2] Saving to: ‘Vazir-Medium.woff2’ Vazir-Medium.woff2 100%[======================================================\u0026gt;] 42.14K --.-KB/s in 0.08s 2022-01-18 06:41:54 (541 KB/s) - ‘Vazir-Medium.woff2’ saved [43152/43152] --2022-01-18 06:41:54-- https://virgool.io/fonts/vazir/Vazir-Bold.ttf Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 99840 (98K) [application/octet-stream] Saving to: ‘Vazir-Bold.ttf’ Vazir-Bold.ttf 100%[======================================================\u0026gt;] 97.50K --.-KB/s in 0.04s 2022-01-18 06:41:55 (2.61 MB/s) - ‘Vazir-Bold.ttf’ saved [99840/99840] --2022-01-18 06:41:55-- https://virgool.io/fonts/vazir/Vazir-Bold.eot? Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: unspecified [application/vnd.ms-fontobject] Saving to: ‘Vazir-Bold.eot?’ Vazir-Bold.eot? [ \u0026lt;=\u0026gt; ] 97.68K 560KB/s in 0.2s 2022-01-18 06:41:56 (560 KB/s) - ‘Vazir-Bold.eot?’ saved [100026] --2022-01-18 06:41:56-- https://virgool.io/fonts/vazir/Vazir-Bold.woff Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 54560 (53K) [font/woff] Saving to: ‘Vazir-Bold.woff’ Vazir-Bold.woff 100%[======================================================\u0026gt;] 53.28K --.-KB/s in 0.06s 2022-01-18 06:41:56 (917 KB/s) - ‘Vazir-Bold.woff’ saved [54560/54560] --2022-01-18 06:41:56-- https://virgool.io/fonts/vazir/Vazir-Bold.woff2 Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 43604 (43K) [font/woff2] Saving to: ‘Vazir-Bold.woff2’ Vazir-Bold.woff2 100%[======================================================\u0026gt;] 42.58K --.-KB/s in 0.06s 2022-01-18 06:41:57 (657 KB/s) - ‘Vazir-Bold.woff2’ saved [43604/43604] --2022-01-18 06:41:57-- https://virgool.io/fonts/vazir/Vazir-Black.ttf Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 99772 (97K) [application/octet-stream] Saving to: ‘Vazir-Black.ttf’ Vazir-Black.ttf 100%[======================================================\u0026gt;] 97.43K --.-KB/s in 0.04s 2022-01-18 06:41:57 (2.18 MB/s) - ‘Vazir-Black.ttf’ saved [99772/99772] --2022-01-18 06:41:57-- https://virgool.io/fonts/vazir/Vazir-Black.eot? Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: unspecified [application/vnd.ms-fontobject] Saving to: ‘Vazir-Black.eot?’ Vazir-Black.eot? [ \u0026lt;=\u0026gt; ] 97.63K 478KB/s in 0.2s 2022-01-18 06:41:58 (478 KB/s) - ‘Vazir-Black.eot?’ saved [99974] --2022-01-18 06:41:58-- https://virgool.io/fonts/vazir/Vazir-Black.woff Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 54652 (53K) [font/woff] Saving to: ‘Vazir-Black.woff’ Vazir-Black.woff 100%[======================================================\u0026gt;] 53.37K --.-KB/s in 0.08s 2022-01-18 06:41:59 (691 KB/s) - ‘Vazir-Black.woff’ saved [54652/54652] --2022-01-18 06:41:59-- https://virgool.io/fonts/vazir/Vazir-Black.woff2 Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 43332 (42K) [font/woff2] Saving to: ‘Vazir-Black.woff2’ Vazir-Black.woff2 100%[======================================================\u0026gt;] 42.32K --.-KB/s in 0.08s 2022-01-18 06:42:00 (510 KB/s) - ‘Vazir-Black.woff2’ saved [43332/43332] --2022-01-18 06:42:00-- https://virgool.io/fonts/fontawesome/fa-solid-900.ttf Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 202616 (198K) [application/octet-stream] Saving to: ‘fa-solid-900.ttf’ fa-solid-900.ttf 100%[======================================================\u0026gt;] 197.87K 501KB/s in 0.4s 2022-01-18 06:42:01 (501 KB/s) - ‘fa-solid-900.ttf’ saved [202616/202616] --2022-01-18 06:42:01-- https://virgool.io/fonts/fontawesome/fa-solid-900.eot? Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 404 Not Found 2022-01-18 06:42:01 ERROR 404: Not Found. --2022-01-18 06:42:01-- https://virgool.io/fonts/fontawesome/fa-solid-900.woff Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 103300 (101K) [font/woff] Saving to: ‘fa-solid-900.woff’ fa-solid-900.woff 100%[======================================================\u0026gt;] 100.88K 358KB/s in 0.3s 2022-01-18 06:42:02 (358 KB/s) - ‘fa-solid-900.woff’ saved [103300/103300] --2022-01-18 06:42:02-- https://virgool.io/fonts/fontawesome/fa-solid-900.woff2 Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 79444 (78K) [font/woff2] Saving to: ‘fa-solid-900.woff2’ fa-solid-900.woff2 100%[======================================================\u0026gt;] 77.58K 394KB/s in 0.2s 2022-01-18 06:42:03 (394 KB/s) - ‘fa-solid-900.woff2’ saved [79444/79444] --2022-01-18 06:42:03-- https://virgool.io/images/icons/plus.svg Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: unspecified [image/svg+xml] Saving to: ‘plus.svg’ plus.svg [ \u0026lt;=\u0026gt; ] 942 --.-KB/s in 0.002s 2022-01-18 06:42:03 (383 KB/s) - ‘plus.svg’ saved [942] --2022-01-18 06:42:03-- https://virgool.io/images/icons/tick.svg Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: unspecified [image/svg+xml] Saving to: ‘tick.svg’ tick.svg [ \u0026lt;=\u0026gt; ] 942 --.-KB/s in 0s 2022-01-18 06:42:04 (89.8 MB/s) - ‘tick.svg’ saved [942] --2022-01-18 06:42:04-- https://virgool.io/images/typewriter.png Reusing existing connection to virgool.io:443. Proxy request sent, awaiting response... 200 OK Length: 172558 (169K) [image/png] Saving to: ‘typewriter.png’ typewriter.png 100%[======================================================\u0026gt;] 168.51K 349KB/s in 0.5s 2022-01-18 06:42:05 (349 KB/s) - ‘typewriter.png’ saved [172558/172558] --2022-01-18 06:42:05-- https://virgool.test/images/download-audio.png Connecting to 192.168.45.250:8080... connected. Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. --2022-01-18 06:42:05-- https://virgool.test/images/download-ebook.png Connecting to 192.168.45.250:8080... connected. Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. FINISHED --2022-01-18 06:42:05-- Total wall clock time: 1m 2s Downloaded: 54 files, 6.6M in 14s (479 KB/s) Converting links in ns.html?id=GTM-5GS688K.html... nothing to do. Converting links in c3fVa.html... 38. 31-7 Converting links in styles.css?v=v2.6.15.css... 35. 34-1 Converted links in 3 files in 0.06 seconds. ","date":"2022-01-17T14:56:14+03:30","image":"https://bit-orbit.github.io/images/post/snp.jpg","permalink":"https://bit-orbit.github.io/p/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4%D8%B9%DA%A9%D8%B3-%D8%A7%D8%B3%D8%AA%D8%A7%DB%8C%D9%84-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA/","title":"اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش(عکس، استایل، جاوا اسکریپت)"},{"content":" اگر مثل من از محیط gnome روی توزیع لینوکس استفاده می‌کنید، احتمالا شیفته سادگی‌اش شدید! اما بیایید چند پلاگین به آن اضافه کنیم تا درضمن داشتن این سادگی، عملکرد این محیط را توسعه دهیم.\n#I Shutdown Timer در لینوکس به سادگی با یک کامند می‌شود سیستم را زمانبندی کرد که خاموش یا تعلیق شود. با نصب این پلاگین مجبور به وارد کردن کامند برای خاموش/تعلیق کردن نیستیم!\n#II Application Volume Mixer بار ها شده که نیاز دارم صدای یک برنامه رو کم کنم و صدای برنامه‌ای دیگر را زیاد. ممکنه بعضی از برنامه ها مانند vlc این امکان را خودشان فراهم کرده باشند. اما با این پلاگین شما به راحتی می‌توانید صدای هر برنامه را به صورت مجزا کنترل کنید.\nIII dash-to-dock task bar پیشفرض گنوم بد نیست ولی ظاهر زیبایی هم نداره. اما این پلاگین task bar شما را به dock تبدیل می‌کند. ظاهر کوچک و زیباتری دارد\nبه صورت پیشفرض زمانی که یک برنامه maximize است dock پنهان می‌شود و زمانی که موس شما به سمت مکانی که dock پنهان شده است می‌رود dock ظاهر می‌شود.\n#IV Clipboard Indicator فرض کیند متنی را کپی می‌کنیم و بعد از مدتی متن و یا فایل های دیگری را کپی می‌کنیم و بعد از مدتی مجددا به متن اولیه نیاز پیدا کرده‌ایم ولی دیگر در کلیپ برد ما نیست چرا که داده های بعدی جایگزین متن اولیه در کلیپ برد شده است.\nپلاگین clipboard indicator هر متنی را که کپی کنیم را در فهرستی ذخیره می‌کند. علاوه به این یک فهرست favorite هم در این کلیپ برد وجود دارد که می‌توانید متن هایی را به آن اضافه کنید که دیگر خذف نشوند. و همچنین از فهرست اصلی جدا باشد.\nو شاید بخشی از متنی را به یاد داشته باشید که نیاز دارید ببینید در کلیپ برد هست و یا نه، برای اینکار هم یک بخش جست و جو وجود دارد.\n#V net speed بیشتر مواقع نیاز داریم تا سرعت اینترنت را هنگام استفاده از آن ببینیم. و یا زمانی که فایلی در شبکه انتقال می‌دهیم نیاز داریم تا سرعت انتقال را در هر لحظه بدانیم. پلاگین NetSpeed این قابلیت را دارد که سرعت شبکه وایرلس و شبکه سیمی را مجزا نشان دهد.\n#VI Caffeine وقتی برای مدتی به موس و کیبرد دست نزنیم صفحه نمایش خودکار خاموش می‌شود و بعد از مدتی سیستم به حالت suspend می‌رود. اولین راهی که ذهن ما می‌رسد این است که در تظیمات زمان به تعلیق درامدن سیستم را بیشتر کنیم. اما این روش زمانی که نیازش نداریم کار مفیدی نیست، چرا که ممکن است ساعات ها سیستم بدون هیچ استفاده‌ای روشن بماند. برای همین من این پلاگین را دارم، زمانی که نیاز دارم تا از سیستم دور باشم کافئین رو روشن می‌کنم و زمانی که نمی‌دونم چی پیش میاد! خاموشش می‌‌کنم.\n#VII Google Search با وجود این اکستنشن شما مجبور به اجرای مرورگر برای جست و جوی یک عبارت نیستید. کافیه عبارت جست و جو رو در منوی overview خود گنوم بنویسید و بعد یکی از پیشنهاد های گوگل را انتخاب کنید. و یا حتی خود عبارت را جست و جو کنید.\n#VIII Jiggle کرسر موس رو گم کردین؟ موس رو تکون بدین!\n#IX Custom Hot Corners یکی از پلاگین های مورد علاقه من، با این پلاگین لبه سیستم را برای یک عمل خاصی تنظیم می‌کنیم که وقتی کرسور موس به سمت آن رفت، آن عمل انجام بشود. مثلا وقتی موس به گوشه سمت بالا برخورد کرد، منوی over view باز بشود. و یا مثلا نظیم می‌کنیم که وقتی موس به گوشه پایین سمنت چپ بر خورد کرد یک کامند اجرا شود.\n","date":"2022-01-14T18:18:28+03:30","image":"https://bit-orbit.github.io/images/post/gp.jpg","permalink":"https://bit-orbit.github.io/p/%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C-%DA%AF%D9%86%D9%88%D9%85/","title":" پلاگین های کاربردی گنوم "},{"content":"نوشتن یک برنامه کار سختی نیست، بلکه نگه‌داری و آپدیت یک برنامه‌ست، پلاگین این ویژگی را می‌دهد تا به راحتی عملکرد یک برنامه را بی‌افزاییم.\nthemes #Ⅳ انتخاب بین تم های zsh واقعا کار سختیه!‌ هر تم ظاهر جدیدی به ترمینال شما می‌دهد که کار کردن در ترمینال را جذاب تر می‌کند.\nبا استفاده از این پلاگین شما بدون نیاز به تغییر دستی فایل کانفیگ zshrc.، می‌توانید تم را تغییر بدین.\nتغییر به یک تم مشخص theme theme_name\nتغییر رندم تم theme\nدیدن لیستی از تم های نصب شده lstheme\nzsh-autosuggestions #Ⅲ تنها پلاگینی که باید نصب بشه\nاین یکی از پلاگین هایی است که بدون آن زندگی ممکن نیست!\nهمانطور که شما دستوری را تایپ می‌کنید، متنی به رنگ خاکستری ظاهر می‌شود که به شما دستورات ممکن را پیشنهاد می‌دهد و یا از history دستور مشابه که قبلا اجرا کرده‌اید را جست و جو می‌کند و پیشنهاد می‌هد. و خب شما را برای تایپ کردن کامل دستور و سوییچ هایش راحت می‌کند. برای اینکه دستور ظاهر شده تایپ شود کافیست کلید right arrow key یا همان فلش سمت راست را فشار دهید.\nsudo #Ⅱ بار ها اتفاق افتاده دستوری را که نیاز به دسترسی root داشته را بدون نوشتن کلمه sudo اجرا کرده‌ام، و بعد از دیدن ارور، دستور را دوباره تایپ کردم و کلمه sudo را هم به اول دستور اضافه کردم. اما این پلاگین بار تایپ مجدد یک دستور بخاطر فراموش کردن کلمه sudo را از دوش ما بر‌ می‌دارد. کافیست بعد از نوشتن و اجرای دستور بدون sudo، دوبار کلید esc را بزنید\nweb-search #Ⅰ وقتی با لینوکس کار می‌‌کنید، تمام لحظه ها در ترمینال هستنید. فرض کنید سوالی دارید که باید آن را گوگل کنید،‌ شما مجبور می‌شوید مرورگر را باز کنید، یک تب جدید ایجاد کنید و متنتان را سرچ کنید. ولی به این فکر کنید که نیازی به باز کردن مرورگر و یا سوییچ کردن بین ویندوز ها ندارید، کافیست عبارت google را در ترمینال تایپ کنید و متن خود را جلو آن بنوسید و در آخر دکمه اینتر را بزنید! بنگ! گوگل باز می‌شود و حاصل جست و جوی شما آماده است.\nدستور\\موتور جست و جو bing google yahoo ddg or duckduckgo sp or startpage yandex github baidu ecosia goodreads qwant givero stackoverflow wolframalpha archive scholar ","date":"2022-01-11T02:44:12+03:30","image":"https://bit-orbit.github.io/images/post/terminal.jpg","permalink":"https://bit-orbit.github.io/p/zsh-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C/","title":" zsh بهترین پلاگین های "}] \ No newline at end of file diff --git a/docs/sitemap.xml b/docs/sitemap.xml index f518edb..1623308 100644 --- a/docs/sitemap.xml +++ b/docs/sitemap.xml @@ -1,16 +1 @@ - - - - - https://bit-orbit.github.io/fa/sitemap.xml - - 2024-08-01T03:03:46+03:30 - - - - - https://bit-orbit.github.io/en/sitemap.xml - - - - +https://bit-orbit.github.io/fa/sitemap.xml2024-09-09T13:23:06+03:30https://bit-orbit.github.io/en/sitemap.xml \ No newline at end of file diff --git a/docs/tags/--/index.html b/docs/tags/--/index.html index 3722e68..56b187c 100644 --- a/docs/tags/--/index.html +++ b/docs/tags/--/index.html @@ -1,559 +1,37 @@ - - - - -Tag: :(){ :|:& };: - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

:(){ :|:& };:

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: :(){ :|:& };: - bit-orbit + \ No newline at end of file diff --git a/docs/tags/--/index.xml b/docs/tags/--/index.xml index 686db31..4e66419 100644 --- a/docs/tags/--/index.xml +++ b/docs/tags/--/index.xml @@ -1,18 +1,4 @@ - - - - :(){ :|:& };: on bit-orbit - https://bit-orbit.github.io/tags/--/ - Recent content in :(){ :|:& };: on bit-orbit - Hugo -- gohugo.io - fa - Wed, 27 Dec 2023 16:39:27 +0330 - فورک بمب چیست و چطور کار می‌کند؟ - https://bit-orbit.github.io/p/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B7%D9%88%D8%B1-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF/ - Wed, 27 Dec 2023 16:39:27 +0330 - - https://bit-orbit.github.io/p/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B7%D9%88%D8%B1-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF/ - <img src="https://bit-orbit.github.io/images/post/fork_bomb.jpg" alt="Featured image of post فورک بمب چیست و چطور کار می‌کند؟" /><p>اوایل که لینوکس نصب کرده بودم کامند هایی که توی +:(){ :|:& };: on bit-orbithttps://bit-orbit.github.io/tags/--/Recent content in :(){ :|:& };: on bit-orbitHugo -- gohugo.iofaWed, 27 Dec 2023 16:39:27 +0330فورک بمب چیست و چطور کار می‌کند؟https://bit-orbit.github.io/p/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B7%D9%88%D8%B1-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF/Wed, 27 Dec 2023 16:39:27 +0330https://bit-orbit.github.io/p/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B7%D9%88%D8%B1-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF/<img src="https://bit-orbit.github.io/images/post/fork_bomb.jpg" alt="Featured image of post فورک بمب چیست و چطور کار می‌کند؟" /><p>اوایل که لینوکس نصب کرده بودم کامند هایی که توی فروم های مختلف می‌دیدم و برای من جدید بود را دوست داشتم یاد بگیرم و بدانم کار آنها چی هست، برای همین هر کامندی را که می‌دیدم در @@ -21,306 +7,283 @@ هر کامندی اشتباهه بود. یکی از این کامند ها که اجرا کرده بودم، به اسم فورک بمب (fork bomb) -شناخته می‌شود. کامند به این صورت هست</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>:<span class="p">&amp;</span> <span class="o">}</span><span class="p">;</span>: -</span></span></code></pre></td></tr></table> -</div> -</div><p>اگر این کامند را اجرا کنید(امیدوارم تا الان نکرده باشید) تقریبا زیر یک دقیقه سیستم شما -هنگ می‌کند و مجبور می‌شوید سیستم را ریبوت کنید.</p> -<hr> -<p>توی این پست ساختار این کامند را تشریح می‌کنم و باهم +شناخته می‌شود. کامند به این صورت هست</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>:<span class="p">&amp;</span> <span class="o">}</span><span class="p">;</span>: +</span></span></code></pre></td></tr></table> +</div> +</div><p>اگر این کامند را اجرا کنید(امیدوارم تا الان نکرده باشید) تقریبا زیر یک دقیقه سیستم شما +هنگ می‌کند و مجبور می‌شوید سیستم را ریبوت کنید.</p> +<hr> +<p>توی این پست ساختار این کامند را تشریح می‌کنم و باهم کمی bash -یاد می‌گیریم.</p> -<p>بیایید اول با مفهوم +یاد می‌گیریم.</p> +<p>بیایید اول با مفهوم recustion آشنا بشیم، زمانی که یک قطعه کد خودش اجرا کند، recusion می‌گویم. مثلا شما یک فانکشن می‌نویسید به اسم -<em>fn</em> +<em>fn</em> و توی بدنه فانکشن فقط خود همین فانکشن را صدا می‌‌کنید، به این کار call recursion گفته می‌شود. فورک بمب دقیقا همین کار را می‌کند. به این -معنی که خودش را دائم اجرا می‌کند!</p> -<p>به این فکر کنید که وقتی یک پراسس خودش را اجرا می‌کند +معنی که خودش را دائم اجرا می‌کند!</p> +<p>به این فکر کنید که وقتی یک پراسس خودش را اجرا می‌کند ،مجدد پراسس های اجرا شده توسط اون هم دائم خودشان را اجرا می‌کنند، و دوباره هر پروسه‌ای که اجرا می‌شود بازم خودش را اجرا می‌کند و این روند تا زمانی که رم و پردازنده سیستم تحمل -داشته باشد ادامه دارد.</p> -<blockquote> -<p>درختی که می‌بینید را اجرای فورک بمب درنظر بگیرید، +داشته باشد ادامه دارد.</p> +<blockquote> +<p>درختی که می‌بینید را اجرای فورک بمب درنظر بگیرید، هر ستاره یک پروسه جدید است که توسط پروسه قبلی اجرا شده، و خودش هم دو پروسه جدید باز می‌کند و هر یک از پروسه ها -هم همین روند را ادامه می‌دهند.</p> -</blockquote> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt">10 -</span><span class="lnt">11 -</span><span class="lnt">12 -</span><span class="lnt">13 -</span><span class="lnt">14 -</span><span class="lnt">15 -</span><span class="lnt">16 -</span><span class="lnt">17 -</span><span class="lnt">18 -</span><span class="lnt">19 -</span><span class="lnt">20 -</span><span class="lnt">21 -</span><span class="lnt">22 -</span><span class="lnt">23 -</span><span class="lnt">24 -</span><span class="lnt">25 -</span><span class="lnt">26 -</span><span class="lnt">27 -</span><span class="lnt">28 -</span><span class="lnt">29 -</span><span class="lnt">30 -</span><span class="lnt">31 -</span><span class="lnt">32 -</span><span class="lnt">33 -</span><span class="lnt">34 -</span><span class="lnt">35 -</span><span class="lnt">36 -</span><span class="lnt">37 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w">   </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w">   </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><p>من برای اینکه سیستم‌ خودم هنگ نکند فورک بمب را روی داکر +هم همین روند را ادامه می‌دهند.</p> +</blockquote> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span><span class="lnt">19 +</span><span class="lnt">20 +</span><span class="lnt">21 +</span><span class="lnt">22 +</span><span class="lnt">23 +</span><span class="lnt">24 +</span><span class="lnt">25 +</span><span class="lnt">26 +</span><span class="lnt">27 +</span><span class="lnt">28 +</span><span class="lnt">29 +</span><span class="lnt">30 +</span><span class="lnt">31 +</span><span class="lnt">32 +</span><span class="lnt">33 +</span><span class="lnt">34 +</span><span class="lnt">35 +</span><span class="lnt">36 +</span><span class="lnt">37 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w">   </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w">   </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><p>من برای اینکه سیستم‌ خودم هنگ نکند فورک بمب را روی داکر اجرا کردم و خب حتی یک ثانیه هم طول نکشید و آن کانتینر -کاملا هنگ کرد.</p> -<blockquote> -<p>قبل از اجرا -<a class="link" href="https://bit-orbit.github.io/images/post/forkbomb_docker0.jpg" ><img src="https://bit-orbit.github.io/images/post/forkbomb_docker0.jpg" - - - - loading="lazy" - - alt="forkbomb on docker" - - -></a></p> -</blockquote> -<blockquote> -<p>زمان اجرا -<a class="link" href="https://bit-orbit.github.io/images/post/forkbomb_docker.jpg" ><img src="https://bit-orbit.github.io/images/post/forkbomb_docker.jpg" - - - - loading="lazy" - - alt="forkbomb on docker" - - -></a></p> -</blockquote> -<hr> -<p>بیایید وارد کد بشیم، این علامت ها و کاراکتر ها چی هستند؟</p> -<!-- برای تعریف یک فانکشن توی +کاملا هنگ کرد.</p> +<blockquote> +<p>قبل از اجرا +<a class="link" href="https://bit-orbit.github.io/images/post/forkbomb_docker0.jpg" ><img src="https://bit-orbit.github.io/images/post/forkbomb_docker0.jpg" +loading="lazy" +alt="forkbomb on docker" +></a></p> +</blockquote> +<blockquote> +<p>زمان اجرا +<a class="link" href="https://bit-orbit.github.io/images/post/forkbomb_docker.jpg" ><img src="https://bit-orbit.github.io/images/post/forkbomb_docker.jpg" +loading="lazy" +alt="forkbomb on docker" +></a></p> +</blockquote> +<hr> +<p>بیایید وارد کد بشیم، این علامت ها و کاراکتر ها چی هستند؟</p> +<!-- برای تعریف یک فانکشن توی bash -ما به این صورت عمل می‌کنیم که اول اسم فانکشن بعد پرانتز -و بعد کرلی براکت(توی فارسی می‌گیم آکولاد) و داخل کرلی +ما به این صورت عمل می‌کنیم که اول اسم فانکشن بعد پرانتز +و بعد کرلی براکت(توی فارسی می‌گیم آکولاد) و داخل کرلی براکت ما قطعه کد را می‌نویسیم. مثلا برای فانکشنی که یک اسم را روی صفحه چاپ کنه به این صورت عمل می‌کنیم - ```bash -pname(){ echo 'foo'; } -``` --> -<p>اگه دقت کنید اولین کاراکتر فورک بمب، علامت -<code>:</code> +pname(){ echo 'foo'; } +``` --> +<p>اگه دقت کنید اولین کاراکتر فورک بمب، علامت +<code>:</code> است. این علامت اسم فانکشن ما است. برخلاف قانون تعریف نام برای متغییر ها توی bash، می‌توانیم از کاراتر های یونیکد هم برای تعریف نام فانکشن استفاده کنیم، مثلا یک -کاراکتر چینی یا حتی ایموجی!</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span><span class="lnt">3 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">雨<span class="o">(){</span> <span class="nb">echo</span> <span class="s1">&#39;rain&#39;</span><span class="p">;</span> <span class="o">}</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">❤️<span class="o">(){</span> <span class="nb">echo</span> <span class="s1">&#39;love&#39;</span><span class="p">;</span> <span class="o">}</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>خب در ادامه علامت های -<code>()</code> +کاراکتر چینی یا حتی ایموجی!</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">雨<span class="o">(){</span> <span class="nb">echo</span> <span class="s1">&#39;rain&#39;</span><span class="p">;</span> <span class="o">}</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">❤️<span class="o">(){</span> <span class="nb">echo</span> <span class="s1">&#39;love&#39;</span><span class="p">;</span> <span class="o">}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>خب در ادامه علامت های +<code>()</code> را می‌بینیم، توی bash برای تعریف فانکشن قبل از اسم فانکشن هیچ کلمه کلیدی مثل fn, def, void و &hellip; نیاز نیست، فقط بجای آن باید -<strong>بعد از اسم فانکشن</strong> -پرانتز ها را بگذارید.</p> -<p>مثل خیلی از زبان های برنامه نویسی، بدنه فانکشن توی -کرلی براکت تعریف می‌شود.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){}</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>پس تا اینجا ما یک فانکشن ساده با نام -<code>:</code> -تعریف کردیم.</p> -<p>داخل بدنه این فانکشن، اسمی که برای فانکشن قرار دادیم +<strong>بعد از اسم فانکشن</strong> +پرانتز ها را بگذارید.</p> +<p>مثل خیلی از زبان های برنامه نویسی، بدنه فانکشن توی +کرلی براکت تعریف می‌شود.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>پس تا اینجا ما یک فانکشن ساده با نام +<code>:</code> +تعریف کردیم.</p> +<p>داخل بدنه این فانکشن، اسمی که برای فانکشن قرار دادیم همان -<code>:</code> +<code>:</code> را می‌نویسیم. با اینکار دقیقا call recursion را انجام دادیم، و باعث شدیم که برنامه خودش را -توی هر اجرا مجدد اجرا کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> : <span class="o">}</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>دقت کنید توی سینتکس +توی هر اجرا مجدد اجرا کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> : <span class="o">}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>دقت کنید توی سینتکس bash -حتما باید یک فاصله برای کدی که داخلی کرلی براکت می‌نویسم قرار بدیم</p> -</blockquote> -<p>علامت -<code>|</code> +حتما باید یک فاصله برای کدی که داخلی کرلی براکت می‌نویسم قرار بدیم</p> +</blockquote> +<p>علامت +<code>|</code> به اسم پایپ شناخته می‌شود، وظیفه این علامت دادن خروجی یک کامند بعنوان ورودی به یک کامند دیگر هست، حلا دقت کنید که ما خروجی اجرای -<code>:</code> -را به خودش می‌دهیم. دقیقا به این شکل</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>: <span class="o">}</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>با این علامت هر پروسه دو بار پروسه جدیدی از خودش می‌سازد +<code>:</code> +را به خودش می‌دهیم. دقیقا به این شکل</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>: <span class="o">}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>با این علامت هر پروسه دو بار پروسه جدیدی از خودش می‌سازد اگر از این علامت استفاده نکنیم، پروسه ما به صورت خطی خودش را اجرا خواهد کرد، اینطوری کد ما با یک حلقه -<code>while</code> -تفاوتی زیادی نخواهد داشت.</p> -<p>علامت -<code>&amp;</code> +<code>while</code> +تفاوتی زیادی نخواهد داشت.</p> +<p>علامت +<code>&amp;</code> اجرای یک کامند را به بکگراند(پس زمینه) می‌برد. برای مثال بعد از اجرای یک دستور باید صبر کنید پروسه آن تمام شود تا بتوانید دستور بعدی را اجرا کنید. ولی اگر از علامت -<code>&amp;</code> +<code>&amp;</code> بعد از هر دستور استفاده کنید، دیگر نیاز نیست صبر کنید تا روند اجرای آن برنامه تمام شود. درواقع با علامت -<code>&amp;</code> +<code>&amp;</code> شما می‌توانید هر برنامه را در بکگراند اجرا کنید. حالا توی فورک بمب این علامت باعث می‌شود تا فانشکنی که اجرا کردین درحالی که کارش به اتمام -نرسیده است، فانکشن بعدی اجرا بشود.</p> -<p><img src="https://bit-orbit.github.io/images/post/forkbomb_and.jpg" - - - - loading="lazy" - - alt="& in bash" - - -></p> -<p>و بعد علامت -<code>;</code> +نرسیده است، فانکشن بعدی اجرا بشود.</p> +<p><img src="https://bit-orbit.github.io/images/post/forkbomb_and.jpg" +loading="lazy" +alt="& in bash" +></p> +<p>و بعد علامت +<code>;</code> را می‌بینیم. این علامت کامند ها را از هم جدا می‌کند. مثلا شما می‌توانید چند کامند مختلف را توی یک خط بنویسید. توی فورک بمب این علامت فانکشنی که تعریف کردین را از -دستور بعدی(که اجرا کننده اون فانکشن هست)جدا می‌کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s1">&#39;foo&#39;</span><span class="p">;</span> <span class="nb">echo</span> <span class="s1">&#39;bar&#39;</span><span class="p">;</span> <span class="nb">echo</span> <span class="s1">&#39;baz&#39;</span><span class="p">;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>آخرین علامتی که توی فورک بمب داریم همون علامت -<code>:</code> +دستور بعدی(که اجرا کننده اون فانکشن هست)جدا می‌کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s1">&#39;foo&#39;</span><span class="p">;</span> <span class="nb">echo</span> <span class="s1">&#39;bar&#39;</span><span class="p">;</span> <span class="nb">echo</span> <span class="s1">&#39;baz&#39;</span><span class="p">;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>آخرین علامتی که توی فورک بمب داریم همون علامت +<code>:</code> یا همون اسمی هست که برای فانکشن قرار دادیم. خیلی ساده توی bash -برای اجرای یک فانکشن فقط اسم‌ش را می‌نویسیم.</p> -<p>و تمام! ما یاد گرفتیم چطور فورک بمب رو بنویسیم و دیگه -نیاز نیست حفظ‌ش کنیم :)</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>:<span class="p">&amp;</span> <span class="o">}</span><span class="p">;</span>: -</span></span></code></pre></td></tr></table> -</div> -</div> - - - - +برای اجرای یک فانکشن فقط اسم‌ش را می‌نویسیم.</p> +<p>و تمام! ما یاد گرفتیم چطور فورک بمب رو بنویسیم و دیگه +نیاز نیست حفظ‌ش کنیم :)</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>:<span class="p">&amp;</span> <span class="o">}</span><span class="p">;</span>: +</span></span></code></pre></td></tr></table> +</div> +</div> \ No newline at end of file diff --git a/docs/tags/--/page/1/index.html b/docs/tags/--/page/1/index.html index 7758c1e..5553dd4 100644 --- a/docs/tags/--/page/1/index.html +++ b/docs/tags/--/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/--/ - - - - - - +https://bit-orbit.github.io/tags/--/ + \ No newline at end of file diff --git a/docs/tags/0x0.st/index.html b/docs/tags/0x0.st/index.html index 6e90ba1..37b2a5e 100644 --- a/docs/tags/0x0.st/index.html +++ b/docs/tags/0x0.st/index.html @@ -1,559 +1,37 @@ - - - - -Tag: 0x0.st - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

0x0.st

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: 0x0.st - bit-orbit +

Tags

1 صفحه

0x0.st

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git a/docs/tags/0x0.st/index.xml b/docs/tags/0x0.st/index.xml index dbca75e..8ba34f4 100644 --- a/docs/tags/0x0.st/index.xml +++ b/docs/tags/0x0.st/index.xml @@ -1,79 +1,65 @@ - - - - 0x0.st on bit-orbit - https://bit-orbit.github.io/tags/0x0.st/ - Recent content in 0x0.st on bit-orbit - Hugo -- gohugo.io - fa - Wed, 06 Mar 2024 23:50:46 +0330 - Crul Paste - https://bit-orbit.github.io/p/crul-paste/ - Wed, 06 Mar 2024 23:50:46 +0330 - - https://bit-orbit.github.io/p/crul-paste/ - <img src="https://bit-orbit.github.io/images/post/curlpaste.jpg" alt="Featured image of post Crul Paste" /><p>اول بیایید ببینم +0x0.st on bit-orbithttps://bit-orbit.github.io/tags/0x0.st/Recent content in 0x0.st on bit-orbitHugo -- gohugo.iofaWed, 06 Mar 2024 23:50:46 +0330Crul Pastehttps://bit-orbit.github.io/p/crul-paste/Wed, 06 Mar 2024 23:50:46 +0330https://bit-orbit.github.io/p/crul-paste/<img src="https://bit-orbit.github.io/images/post/curlpaste.jpg" alt="Featured image of post Crul Paste" /><p>اول بیایید ببینم FileBin چیه! قبل از اون هم فکر می‌کنم همه بدونیم -<a class="link" href="https://virgool.io/@m_shabane/pastebin-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B1%D8%A7-%D9%87%DA%A9%D8%B1-%D9%87%D8%A7-%D8%B9%D8%A7%D8%B4%D9%82-%D8%A2%D9%86-%D9%87%D8%A7%D8%B3%D8%AA%D9%86%D8%AF-swafqm95gttp" target="_blank" rel="noopener" - >pastebin</a> +<a class="link" href="https://virgool.io/@m_shabane/pastebin-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B1%D8%A7-%D9%87%DA%A9%D8%B1-%D9%87%D8%A7-%D8%B9%D8%A7%D8%B4%D9%82-%D8%A2%D9%86-%D9%87%D8%A7%D8%B3%D8%AA%D9%86%D8%AF-swafqm95gttp" target="_blank" rel="noopener" +>pastebin</a> چیه. اگه نمی‌دونید خیلی ساده باید بگم یک سایتی که فقط روی اون متن به اشتراک می‌ذارن -مثلا ممکنه ارور ها یا حتی سورس یک برنامه باشه!</p> -<p>اما +مثلا ممکنه ارور ها یا حتی سورس یک برنامه باشه!</p> +<p>اما FileBin ها بجای تسکت فایل های شما رو نگهداری می‌کنند و به شما لینکی ارائه می‌کنند که فایل را برای دیگران اشتراک بگذارید، نمونه های زیادی هم وجود داره مثل -<a class="link" href="https://wormhole.app" target="_blank" rel="noopener" - >https://wormhole.app</a></p> -<p>اما خب از اونجایی که من زندگی‌ام رو توی ترمینال می‌گذرونم و ترمینال رو به باز کردن مرورگر برای اشتراک یک فایل ترجیح می‌دم، پس از +<a class="link" href="https://wormhole.app" target="_blank" rel="noopener" +>https://wormhole.app</a></p> +<p>اما خب از اونجایی که من زندگی‌ام رو توی ترمینال می‌گذرونم و ترمینال رو به باز کردن مرورگر برای اشتراک یک فایل ترجیح می‌دم، پس از FileBin هایی استفاده می‌کنم که بتونم تحت ترمینال به سادگی فایلم رو به اشتراک بذارم. برای مثال -<a class="link" href="https://0x0.st" target="_blank" rel="noopener" - >https://0x0.st</a></p> -<p>وقتی این رو سایت رو باز کنید هیچ گزینه‌ای برای انتخاب فایل و آپلود نمی‌بینید! خب پس چطور باید یک فایل را برای سایت آپلود کنید؟ +<a class="link" href="https://0x0.st" target="_blank" rel="noopener" +>https://0x0.st</a></p> +<p>وقتی این رو سایت رو باز کنید هیچ گزینه‌ای برای انتخاب فایل و آپلود نمی‌بینید! خب پس چطور باید یک فایل را برای سایت آپلود کنید؟ کافیه یک ریکوئست HTTP POST خیلی ساده به سایت بزنید که شامل فایتون باشه. این کار رو خیلی ساده می‌شه با curl -انجام داد.</p> -<p>مثلا بیایین اشتراک یک فایل رو ببینیم</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl https://0x0.st -F <span class="nv">file</span><span class="o">=</span>@/path/to/file -</span></span><span class="line"><span class="cl"><span class="c1"># https://0x0.st/zWKo.txt</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>این سایت خیلی خوبه +انجام داد.</p> +<p>مثلا بیایین اشتراک یک فایل رو ببینیم</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl https://0x0.st -F <span class="nv">file</span><span class="o">=</span>@/path/to/file +</span></span><span class="line"><span class="cl"><span class="c1"># https://0x0.st/zWKo.txt</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>این سایت خیلی خوبه اما از زمانی به بعد دیگه این سایت کاری که من نیاز دارم رو کفاف نداد! برای مثال من نیاز دارم فایلم بعد از اولین دانلود از روی سرور حذف بشه و از این مهم تر نیاز داشتم که چندین فایل رو با یک یوزنیم مشخص اپلود کنم که خب شخصی که قرار باشه فایل ها رو دانلود کنه، کافیه از یوزنیم استفاده کنه که راحت تر قابل حفظ کردن و اشتراک گذاشتنه. اینطوری بود که گفتم FileBin -خودم رو بنویسم :)</p> -<hr> -<p><strong>بیایید فیچر ها و روش استفاده ازش رو با هم ببینیم.</strong></p> -<p>فرض کنید شما یک فایل دارید که می‌خواهید با من به اشتراک بگذارید، +خودم رو بنویسم :)</p> +<hr> +<p><strong>بیایید فیچر ها و روش استفاده ازش رو با هم ببینیم.</strong></p> +<p>فرض کنید شما یک فایل دارید که می‌خواهید با من به اشتراک بگذارید، خیلی ساده ترمینال رو باز می‌کنید و با یک دستور فایل رو با یک URL -تقریبا تصادفی منتشر می‌کنید.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">file</span><span class="o">=</span>@/tmp/theFile.fli -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/theFile.fli</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>دقت کنید من از سوییچ +تقریبا تصادفی منتشر می‌کنید.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">file</span><span class="o">=</span>@/tmp/theFile.fli +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/theFile.fli</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>دقت کنید من از سوییچ -L استفاده می‌کنم، دلیل اینکار این هست که خب ممکنه سایت شما رو ریدایرکت کنه. مثلا از @@ -82,206 +68,201 @@ http https. برای همین این سوییچ رو استفاده می‌کنم. با این سوییچ دیگه نیازی نیست https:// -رو هم بنویسیم!</p> -</blockquote> -<p>حالا اگه نیاز دارین که فایلتون بعد از اولین دانلود از روی سرور حذف بشه و دیگه در دسترس نباشه +رو هم بنویسیم!</p> +</blockquote> +<p>حالا اگه نیاز دارین که فایلتون بعد از اولین دانلود از روی سرور حذف بشه و دیگه در دسترس نباشه کافیه از کلمه -<code>once</code> +<code>once</code> بجای -<code>file</code> -استفاده کنید.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@/tmp/theFile.fli -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/theFile_GKug7xb.fli</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>تا اینجای کار همه +<code>file</code> +استفاده کنید.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@/tmp/theFile.fli +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/theFile_GKug7xb.fli</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>تا اینجای کار همه URL های هر فایلی به صورت تصادفی هست و من نیاز دارم که چندین فایل رو زیر یک یوزنیم مشخص مثل -<code>arya</code> +<code>arya</code> قرار بدم. اینطوری وقتی قراره یک فایل رو برای همکارم توی شرکت بفرستم خیلی ساده ازش درخواست می‌کنم در سایت به ادرس -<code>/arya</code> +<code>/arya</code> بره. حالا چطوری اینکارو بکنیم خیلی ساده بجای -<code>once</code> +<code>once</code> یا -<code>file</code>, +<code>file</code>, همون -<code>username</code> -رو می‌نویسیم(توی مثال من از نام <strong><em>arya</em></strong> استفاده می‌کنیم)</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">arya</span><span class="o">=</span>@/tmp/pic.jpg -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/arya</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>تا اینجای کار مثلا شما چند بار چند فایل مختلف رو زیر یک یوزنیم قرار دادین -حالا چطور میشه همه اونها رو باهم دانلود کرد؟</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir/arya <span class="p">|</span> wget -i - -</span></span></code></pre></td></tr></table> -</div> -</div><p>حالا به این فکر کنید که یکنفر میاد و با یوزنیم های معقول ریکوئست میزنه به سایت و +<code>username</code> +رو می‌نویسیم(توی مثال من از نام <strong><em>arya</em></strong> استفاده می‌کنیم)</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">arya</span><span class="o">=</span>@/tmp/pic.jpg +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/arya</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>تا اینجای کار مثلا شما چند بار چند فایل مختلف رو زیر یک یوزنیم قرار دادین +حالا چطور میشه همه اونها رو باهم دانلود کرد؟</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir/arya <span class="p">|</span> wget -i - +</span></span></code></pre></td></tr></table> +</div> +</div><p>حالا به این فکر کنید که یکنفر میاد و با یوزنیم های معقول ریکوئست میزنه به سایت و فایل های بقیه رو دانلود می‌کنه، اینجاست که پسورد به کار میاد. برای گذاشتن پسورد روی هر فایل کافیه توی خود URL سایت پسورد رو بعنوان http parametr -بنویسد.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L <span class="s1">&#39;octocat.ir/?password=12345678&#39;</span> -F <span class="nv">once</span><span class="o">=</span>@/Desktop/TopSecret.fli -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/file/TopSecret/?password=12345678</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>اینجا دقت کنید که باید از کوتیشن استفاده کنیم چون علامت مساوی و علامت سوال رو bash وایلد کارد می‌بینه.</p> -</blockquote> -<p>برای دانلود هر فایلی هم که پسورد داره کافیه دقیقا مثل مثال قبلی عمل کنید و پسورد رو توی +بنویسد.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L <span class="s1">&#39;octocat.ir/?password=12345678&#39;</span> -F <span class="nv">once</span><span class="o">=</span>@/Desktop/TopSecret.fli +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/file/TopSecret/?password=12345678</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>اینجا دقت کنید که باید از کوتیشن استفاده کنیم چون علامت مساوی و علامت سوال رو bash وایلد کارد می‌بینه.</p> +</blockquote> +<p>برای دانلود هر فایلی هم که پسورد داره کافیه دقیقا مثل مثال قبلی عمل کنید و پسورد رو توی http parametr -وارد کنید</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ wget <span class="s1">&#39;octocat.ir/file/TopSecret/?password=12345678&#39;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>براتون سواله که چرا پسورد روی توی +وارد کنید</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ wget <span class="s1">&#39;octocat.ir/file/TopSecret/?password=12345678&#39;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>براتون سواله که چرا پسورد روی توی URL گذاشتم؟ می‌شد که مثلا توی http header پسورد بگیریم و بدیم، پس چرا توی -URL?</p> -<p>اینکار برای این هست که دسترسی به فایل ساده باشه. مثلا من وقتی می‌خام فایلی رو برای همکارم بفرستم +URL?</p> +<p>اینکار برای این هست که دسترسی به فایل ساده باشه. مثلا من وقتی می‌خام فایلی رو برای همکارم بفرستم و خب فرض کنم همکار من از header ها چیزی نمی‌دونه، و فقط با یک کلیک باید بتونه به فایل دسترسی پیدا کنه، اینجاست که من فقط یک URL -به اون می‌گم :)</p> -<hr> -<p>بعضی از ابزار ها +به اون می‌گم :)</p> +<hr> +<p>بعضی از ابزار ها hackable هستند! این به معنی ضعف امنیتی نیست، بلکه به این اشاره می‌کنه ابزار به روشی طراحی -شده که کاربران می‌تونند خارج از هدف اصلی اون ابزار از اون استفاه کنند.</p> -<p>برای مثال ابزار که من درست کردم برای اشتراک فایل هست، اما بنظرتون میشه یک دایرکتوری و یا یک متن رو هم باهاش به اشتراک گذاشت؟</p> -<p>قطعا! اما چطوری؟</p> -<p>برای اینکه یک دایرکتوری با تمامی ساب دایرکتوری هاش رو بفرستین +شده که کاربران می‌تونند خارج از هدف اصلی اون ابزار از اون استفاه کنند.</p> +<p>برای مثال ابزار که من درست کردم برای اشتراک فایل هست، اما بنظرتون میشه یک دایرکتوری و یا یک متن رو هم باهاش به اشتراک گذاشت؟</p> +<p>قطعا! اما چطوری؟</p> +<p>برای اینکه یک دایرکتوری با تمامی ساب دایرکتوری هاش رو بفرستین کافیه از -<code>tar</code> -استفاده کنید.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ tar -cf - ~/Pictures <span class="p">|</span> curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@- -</span></span><span class="line"><span class="cl"><span class="c1"># &#39;octocat.ir/file/_nUiuRPW/</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>با اینکار با استفاده از +<code>tar</code> +استفاده کنید.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ tar -cf - ~/Pictures <span class="p">|</span> curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@- +</span></span><span class="line"><span class="cl"><span class="c1"># &#39;octocat.ir/file/_nUiuRPW/</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>با اینکار با استفاده از tar تمامی فایل ها و دایرکتوری های مثلا پوشه -<em>~/Pictures</em> +<em>~/Pictures</em> رو به آرشیو -<code>tar</code> +<code>tar</code> تبدیل می‌کنید و بعد خروجی رو بعنوان ورودی به -<code>curl</code> -می‌فرستین.</p> -<p>حالا به این فکر کنید که بخواهیم یک متن رو منتشر کنیم، راهکار دقیقا مشابه قبلیه. +<code>curl</code> +می‌فرستین.</p> +<p>حالا به این فکر کنید که بخواهیم یک متن رو منتشر کنیم، راهکار دقیقا مشابه قبلیه. به این شکل که یک متن رو با استفاده از -<code>echo</code> +<code>echo</code> به ورودی استاندارد -<code>curl</code> -می‌فرستیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ <span class="nb">echo</span> <span class="s1">&#39;Some Random Text&#39;</span> <span class="p">|</span> curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@- -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/file/-_W00DSbS/</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>اینطوری خیلی راحت می‌شه خروجی هر کامندی رو روی به اشتراک گذاشت</p> -</blockquote> -<hr> -<p>سایت من توی آدرس +<code>curl</code> +می‌فرستیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ <span class="nb">echo</span> <span class="s1">&#39;Some Random Text&#39;</span> <span class="p">|</span> curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@- +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/file/-_W00DSbS/</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>اینطوری خیلی راحت می‌شه خروجی هر کامندی رو روی به اشتراک گذاشت</p> +</blockquote> +<hr> +<p>سایت من توی آدرس octocat.ir -در دسترسه، خوشحال می‌شم ازش استفاده کنید :)</p> -<blockquote> -<p>اینو بدونید که سایت به صورت دیفالت فایل ها رو برای 24 ساعت نگه‌میداره</p> -</blockquote> -<p>این سرویس رو منبع باز روی -<a class="link" href="https://github.com/shabane/CurlPaste/" target="_blank" rel="noopener" - >گیتهاب</a> -گذاشتم، اگه چیزی خواستید می‌تونید بهش اضافه کنید و یا مشکلاتش رو پچ کنید.</p> -<p>و اگه می‌خواهید برای خودتون این سرویس رو بیارید بالا از ایمیج داکر استفاده کنید</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">docker run -p 80:80 mshabane/curlpaste:latest -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>اگه نیاز دارین تا فایل ها برای تایم بالاتری نگه‌داری بشه، متغییر -<em>HOURS</em> +در دسترسه، خوشحال می‌شم ازش استفاده کنید :)</p> +<blockquote> +<p>اینو بدونید که سایت به صورت دیفالت فایل ها رو برای 24 ساعت نگه‌میداره</p> +</blockquote> +<p>این سرویس رو منبع باز روی +<a class="link" href="https://github.com/shabane/CurlPaste/" target="_blank" rel="noopener" +>گیتهاب</a> +گذاشتم، اگه چیزی خواستید می‌تونید بهش اضافه کنید و یا مشکلاتش رو پچ کنید.</p> +<p>و اگه می‌خواهید برای خودتون این سرویس رو بیارید بالا از ایمیج داکر استفاده کنید</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">docker run -p 80:80 mshabane/curlpaste:latest +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>اگه نیاز دارین تا فایل ها برای تایم بالاتری نگه‌داری بشه، متغییر +<em>HOURS</em> داخل فایل -<em>.env</em> -رو تغییر بدین.</p> -</blockquote> -<hr> -<p>ایده های دیگه‌ای هم برای سایت دارم، برای مثال اینکه کاربر بتونه زمان انقضای +<em>.env</em> +رو تغییر بدین.</p> +</blockquote> +<hr> +<p>ایده های دیگه‌ای هم برای سایت دارم، برای مثال اینکه کاربر بتونه زمان انقضای هر فایل رو خودش مشخص کنه. -مثلا به این شکل</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -L octocat.ir -F <span class="nv">arya_1</span><span class="o">=</span>/path/to/file -</span></span></code></pre></td></tr></table> -</div> -</div><p>اینطوری میشه یک زمان انقضا بر اساس ساعت برای هر فایل ایجاد کرد.</p> -<p>و خب همچنین میشه یک کوتاه کننده لینک هم بهش اضافه کنم، و لینک های کوتاه شده رو -ریدایرکت کنم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -L octocat.ir -F <span class="nv">url</span><span class="o">=</span><span class="s1">&#39;https://example.com/some/looooong/url/&#39;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>اگه اینها رو اضافه کنم، این پست رو اپدیت می‌کنم ولی خوشحال می‌شم شما -توی این پروژه مشارکت کنید.</p> - - - - - +مثلا به این شکل</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -L octocat.ir -F <span class="nv">arya_1</span><span class="o">=</span>/path/to/file +</span></span></code></pre></td></tr></table> +</div> +</div><p>اینطوری میشه یک زمان انقضا بر اساس ساعت برای هر فایل ایجاد کرد.</p> +<p>و خب همچنین میشه یک کوتاه کننده لینک هم بهش اضافه کنم، و لینک های کوتاه شده رو +ریدایرکت کنم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -L octocat.ir -F <span class="nv">url</span><span class="o">=</span><span class="s1">&#39;https://example.com/some/looooong/url/&#39;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>اگه اینها رو اضافه کنم، این پست رو اپدیت می‌کنم ولی خوشحال می‌شم شما +توی این پروژه مشارکت کنید.</p> \ No newline at end of file diff --git a/docs/tags/0x0.st/page/1/index.html b/docs/tags/0x0.st/page/1/index.html index 8564597..6d30816 100644 --- a/docs/tags/0x0.st/page/1/index.html +++ b/docs/tags/0x0.st/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/0x0.st/ - - - - - - +https://bit-orbit.github.io/tags/0x0.st/ + \ No newline at end of file diff --git a/docs/tags/arya-shabane/index.html b/docs/tags/arya-shabane/index.html index 4473b42..c1917ae 100644 --- a/docs/tags/arya-shabane/index.html +++ b/docs/tags/arya-shabane/index.html @@ -1,576 +1,37 @@ - - - - -Tag: Arya Shabane - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

2 صفحه

-

Arya Shabane

- -
-
-
- -
- - - - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: Arya Shabane - bit-orbit + \ No newline at end of file diff --git a/docs/tags/arya-shabane/index.xml b/docs/tags/arya-shabane/index.xml index be6ef29..0c0ae23 100644 --- a/docs/tags/arya-shabane/index.xml +++ b/docs/tags/arya-shabane/index.xml @@ -1,32 +1,18 @@ - - - - Arya Shabane on bit-orbit - https://bit-orbit.github.io/tags/arya-shabane/ - Recent content in Arya Shabane on bit-orbit - Hugo -- gohugo.io - fa - Thu, 01 Aug 2024 03:03:46 +0330 - etc/resolve.conf/ - https://bit-orbit.github.io/p/etc/resolve.conf/ - Thu, 01 Aug 2024 03:03:46 +0330 - - https://bit-orbit.github.io/p/etc/resolve.conf/ - <img src="https://bit-orbit.github.io/images/post/OIG4.jpeg" alt="Featured image of post etc/resolve.conf/" /><span style='font-size: 25px'> -<h3 id="مقدمه">مقدمه</h3> -<p>همیشه موقع ویرایش فایل -<em>resolve.conf</em> +Arya Shabane on bit-orbithttps://bit-orbit.github.io/tags/arya-shabane/Recent content in Arya Shabane on bit-orbitHugo -- gohugo.iofaThu, 01 Aug 2024 03:03:46 +0330etc/resolve.conf/https://bit-orbit.github.io/p/etc/resolve.conf/Thu, 01 Aug 2024 03:03:46 +0330https://bit-orbit.github.io/p/etc/resolve.conf/<img src="https://bit-orbit.github.io/images/post/OIG4.jpeg" alt="Featured image of post etc/resolve.conf/" /><span style='font-size: 25px'> +<h3 id="مقدمه">مقدمه +</h3><p>همیشه موقع ویرایش فایل +<em>resolve.conf</em> برام سوال بود که گزین های دیگه‌ای که توی این فایل تنظیم شده‌اند چکاری انجام می‌دهند. درواقع من همیشه دستور -<code>namveserver</code> +<code>namveserver</code> را برای تغییر سرور -<em>dns</em> +<em>dns</em> ویرایش می‌کردم. اما دستور هایی دیگه‌ای هم برای این فایل وجود دارد که لیست آنها در -<code>man resolve.conf</code> -توضیح داده شده است.</p> -<p>توی این پست من بعضی از دستورات این فایل را توضیح می‌دم.</p> -<blockquote> -<p>در مرحله اول یادتون باشه لینوکس هایی که +<code>man resolve.conf</code> +توضیح داده شده است.</p> +<p>توی این پست من بعضی از دستورات این فایل را توضیح می‌دم.</p> +<blockquote> +<p>در مرحله اول یادتون باشه لینوکس هایی که systemd دارند، معمولا از سرویس systemd-resolved @@ -36,48 +22,48 @@ DNS resolve می‌کند و سپس آنها را کش می‌کند که یک دامنه را چندین بار resolve -نکند.</p> -</blockquote> -<blockquote> -<p>یک دامنه حد اقل از <em>دو</em> بخش تشکیل می‌شود.</p> -<ol> -<li>TLD</li> -<li>Domain</li> -</ol> -</blockquote> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span><span class="lnt">3 -</span><span class="lnt">4 -</span><span class="lnt">5 -</span><span class="lnt">6 -</span><span class="lnt">7 -</span><span class="lnt">8 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">bin.example.com -</span></span><span class="line"><span class="cl">│ │ │ -</span></span><span class="line"><span class="cl">│ │ └─► TDL(Top Level Domain) -</span></span><span class="line"><span class="cl">│ │ -</span></span><span class="line"><span class="cl">│ └───────► Domain -</span></span><span class="line"><span class="cl">│ -</span></span><span class="line"><span class="cl">└─────────────► SubDomain -</span></span><span class="line"><span class="cl"> -</span></span></code></pre></td></tr></table> -</div> -</div><hr> -<h3 id="دستورات">دستورات</h3> -<ul> -<li> -<p>1 <code>nameserver</code></p> -<p>این دستور برای تعیین +نکند.</p> +</blockquote> +<blockquote> +<p>یک دامنه حد اقل از <em>دو</em> بخش تشکیل می‌شود.</p> +<ol> +<li>TLD</li> +<li>Domain</li> +</ol> +</blockquote> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span><span class="lnt">8 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">bin.example.com +</span></span><span class="line"><span class="cl">│ │ │ +</span></span><span class="line"><span class="cl">│ │ └─► TDL(Top Level Domain) +</span></span><span class="line"><span class="cl">│ │ +</span></span><span class="line"><span class="cl">│ └───────► Domain +</span></span><span class="line"><span class="cl">│ +</span></span><span class="line"><span class="cl">└─────────────► SubDomain +</span></span><span class="line"><span class="cl"> +</span></span></code></pre></td></tr></table> +</div> +</div><hr> +<h3 id="دستورات">دستورات +</h3><ul> +<li> +<p>1 <code>nameserver</code></p> +<p>این دستور برای تعیین IP یک سرور DNS -استفاده می‌شود.(در واقع اینجا منظورم یک سرویسی است که به نامه دامنه ها پاسخ دهد که به آن NS می‌گویم.)</p> -<p>شما می‌توانید تا حداقل سه +استفاده می‌شود.(در واقع اینجا منظورم یک سرویسی است که به نامه دامنه ها پاسخ دهد که به آن NS می‌گویم.)</p> +<p>شما می‌توانید تا حداقل سه IP لیست کنید، و resolver @@ -86,68 +72,68 @@ resolver NS جواب گو نباشد، از دیگر NS -های لیست شده استفاده خواهد شد.</p> -<p>اگر به همین ترتیب هر یک از +های لیست شده استفاده خواهد شد.</p> +<p>اگر به همین ترتیب هر یک از NS -ها جوابگو نباشد، کوئری ها از اول شروع می‌شود تا به حداکثر تعداد کوئری تعیین شده برسد.</p> -<p>برای مثال من می‌توانم چند +ها جوابگو نباشد، کوئری ها از اول شروع می‌شود تا به حداکثر تعداد کوئری تعیین شده برسد.</p> +<p>برای مثال من می‌توانم چند NS -مختلف را برای خودم تعیین کنم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">nameserver 1.1.1.1 -</span></span><span class="line"><span class="cl">nameserver 8.8.8.8 -</span></span></code></pre></td></tr></table> -</div> -</div></li> -</ul> -<hr> -<ul> -<li> -<p>2 <code>options</code></p> -<p>برای این دستور متغیر های مختلفی را می‌توان تعیین کرد.</p> -<ul> -<li> -<p>2.1 <code>ndots</code></p> -<ul> -<li> -<p>حداقل هر دامنه‌ای در سطح اینترنت یک نقطه دارد، برای مثال +مختلف را برای خودم تعیین کنم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">nameserver 1.1.1.1 +</span></span><span class="line"><span class="cl">nameserver 8.8.8.8 +</span></span></code></pre></td></tr></table> +</div> +</div></li> +</ul> +<hr> +<ul> +<li> +<p>2 <code>options</code></p> +<p>برای این دستور متغیر های مختلفی را می‌توان تعیین کرد.</p> +<ul> +<li> +<p>2.1 <code>ndots</code></p> +<ul> +<li> +<p>حداقل هر دامنه‌ای در سطح اینترنت یک نقطه دارد، برای مثال google.com یک نقطه دارد. شما می‌توانید با این متغیر تعین کنید که دامنه‌های در سطح اینترنت باید چند نقطه داشته باشند، هر نقطه نشانه ساب دامنه‌ است. -برای مثال به صورت پیشفرض این متغیر <em>1</em> تنظیم شده است. +برای مثال به صورت پیشفرض این متغیر <em>1</em> تنظیم شده است. به این معنی است که هر دامنه‌ای یک نقطه داشت، این دامنه در سطح اینترنت است. ولی اگر شما مقدار این متغیر را 2 تنظیم کنید، دامنه‌ای مثل -<code>google.com</code> +<code>google.com</code> بعنوان دامنه لوکال تشخیص داده خواهد شد و -<code>hostname</code> +<code>hostname</code> شما به اول دامنه اضافه خواهد شد. مثلا اگر -<code>hostname</code> +<code>hostname</code> شما -<code>arya</code> +<code>arya</code> باشد، دامنه به این شکل کوئری زده خواهد شد -<code>google.com.arya</code></p> -<p>در صورتی که شما برای جست و جوی یک دامنه از هیچ -<strong>TLD</strong> +<code>google.com.arya</code></p> +<p>در صورتی که شما برای جست و جوی یک دامنه از هیچ +<strong>TLD</strong> استفاده نکید، از -<code>hostname</code> +<code>hostname</code> و یا از مقداری که برای -<code>search</code> -مشخص کرده‌اید استفاده خواهد شد.</p> -</li> -</ul> -</li> -<li> -<p>2.2 <code>timeout</code></p> -<ul> -<li>این متغیر تعیین می‌کند که +<code>search</code> +مشخص کرده‌اید استفاده خواهد شد.</p> +</li> +</ul> +</li> +<li> +<p>2.2 <code>timeout</code></p> +<ul> +<li>این متغیر تعیین می‌کند که resolver چه مقدار زمانی باید منتظر جواب از سمت NS @@ -155,19 +141,19 @@ NS NS جواب نداد، از NS -های بعدی سوال کند.</li> -</ul> -</li> -<li> -<p>2.3 <code>attempts</code></p> -<ul> -<li>این متغیر تعین می‌کند که +های بعدی سوال کند.</li> +</ul> +</li> +<li> +<p>2.3 <code>attempts</code></p> +<ul> +<li>این متغیر تعین می‌کند که resolver در صورت جواب ندادن توسط NS -باید در نهایت چند کوئری دیگر ارسال کند.</li> -</ul> -<p>برای مثال اگر اولین +باید در نهایت چند کوئری دیگر ارسال کند.</li> +</ul> +<p>برای مثال اگر اولین NS پاسخ نداد، سوال از NS @@ -178,12 +164,12 @@ attempts attempts مجوع سوال ها از همه NS -ها است.)</p> -</li> -<li> -<p>2.4 <code>rotate</code></p> -<ul> -<li>به صورت پیشفرض کوئری های +ها است.)</p> +</li> +<li> +<p>2.4 <code>rotate</code></p> +<ul> +<li>به صورت پیشفرض کوئری های DNS همه برای اولین NS @@ -194,50 +180,50 @@ NS ها تقسیم کنیم، کافیست از این متغیر استفاده کنیم. اینکار باعث می‌شود که هر کوئری ها به صورت چرخشی به ترتیب به NS -های لیست شده ارسال شود.</li> -</ul> -</li> -</ul> -</li> -</ul> -<hr> -<ul> -<li>3 <code>search</code> +های لیست شده ارسال شود.</li> +</ul> +</li> +</ul> +</li> +</ul> +<hr> +<ul> +<li>3 <code>search</code> همانطور که در مثال بالا گفتم، ما نام دامنه ها را تنظیم می‌کنیم که حداقل وقتی یک نقطه دارند، resolver آنها را دامنه‌ در سطح اینترنت در نظر بگیرد و به NS کوئری بزند. ولی اگر هیچ نقطه‌ای نداشت و یا شما -<code>ndots</code> +<code>ndots</code> را بیشتر یا مساوی با 2 نتظیم کرده باشید، -<code>hostname</code> +<code>hostname</code> سیستم شما به آخر آن دامنه اضافه خواهد شد و یک دامنه داخلی (local) تلقی خواهد شد. اما اگر می‌خواهید قبل از اضافه شدن -<code>hostname</code> -به آن چیز دیگری اضافه کنید، کافیست متغیر سرچ را تعریف کنید و یک یا چند مقدار برای آن تعیین کنید.</li> -</ul> -<hr> -<h3 id="سرویس-systemd-resolve">سرویس systemd-resolve</h3> -<p>اگر به فایل +<code>hostname</code> +به آن چیز دیگری اضافه کنید، کافیست متغیر سرچ را تعریف کنید و یک یا چند مقدار برای آن تعیین کنید.</li> +</ul> +<hr> +<h3 id="سرویس-systemd-resolve">سرویس systemd-resolve +</h3><p>اگر به فایل /etc/resolve.conf نگاه کنید، می‌بینید که یک ns برای شما تنظیم شده است که IP -آن داخلی است.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl"># cat /etc/resolve.conf -</span></span><span class="line"><span class="cl">nameserver 127.0.0.53 -</span></span></code></pre></td></tr></table> -</div> -</div><p>همانطور که توی نکته‌ای در مقدمه این پست گفتم، +آن داخلی است.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl"># cat /etc/resolve.conf +</span></span><span class="line"><span class="cl">nameserver 127.0.0.53 +</span></span></code></pre></td></tr></table> +</div> +</div><p>همانطور که توی نکته‌ای در مقدمه این پست گفتم، سیستم عاملی هایی که از systemd استفاده می‌کنند معمولا سرویس @@ -249,87 +235,79 @@ IP 127.0.0.53 و 127.0.0.54 -شنود می‌کند.</p> -<p>این سرویس خودش یک کانفیگ در -<code>etc/ststemd/resolved.conf/</code> -دارد.</p> -<p>اگر داخل این فایل را نگاه کنیم، می‌بنیم که در قسمت +شنود می‌کند.</p> +<p>این سرویس خودش یک کانفیگ در +<code>etc/ststemd/resolved.conf/</code> +دارد.</p> +<p>اگر داخل این فایل را نگاه کنیم، می‌بنیم که در قسمت ‌DNS می‌توان NS های بالاتر را وارد کرد، اینکار باعث می‌شود که سیستم شما وقتی یک دامنه را در حافظه کش خود نداشت، از NS -های بالاتر که در این فایل تنظیم شده است سوال کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">[Resolve] -</span></span><span class="line"><span class="cl">DNS=1.1.1.1 8.8.8.8 -</span></span></code></pre></td></tr></table> -</div> -</div><p>ابته تاکید کنم در صورتی از این +های بالاتر که در این فایل تنظیم شده است سوال کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">[Resolve] +</span></span><span class="line"><span class="cl">DNS=1.1.1.1 8.8.8.8 +</span></span></code></pre></td></tr></table> +</div> +</div><p>ابته تاکید کنم در صورتی از این NS ها استفاده می‌شود که شما ‌از 127.0.0.53 و 127.0.0.54 در کانفیگ /etc/resolve.conf -استفاده کرده باشید.</p> -<blockquote> -<p>تفاوت 127.0.0.54 این است که هر کوئری را مستقیم به +استفاده کرده باشید.</p> +<blockquote> +<p>تفاوت 127.0.0.54 این است که هر کوئری را مستقیم به NS بالاتر ارسال خواهد کرد و از دیتای کش شده استفاده نمی‌کند. -ولی 127.0.0.53 از قابلیت کش استفاده می‌کند.</p> -</blockquote> -<hr> -<h3 id="مثال">مثال</h3> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt">10 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">nameserver 1.1.1.1 -</span></span><span class="line"><span class="cl">nameserver 8.8.8.8 -</span></span><span class="line"><span class="cl">nameserver 9.9.9.9 -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">options ndots:1 -</span></span><span class="line"><span class="cl">options timeout:2 -</span></span><span class="line"><span class="cl">options attempts:3 -</span></span><span class="line"><span class="cl">options rotate -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">search server1 server2 -</span></span></code></pre></td></tr></table> -</div> -</div><hr> -<h3 id="سخنی-با-شما">سخنی با شما</h3> -<p>این را بگم که +ولی 127.0.0.53 از قابلیت کش استفاده می‌کند.</p> +</blockquote> +<hr> +<h3 id="مثال">مثال +</h3><div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">nameserver 1.1.1.1 +</span></span><span class="line"><span class="cl">nameserver 8.8.8.8 +</span></span><span class="line"><span class="cl">nameserver 9.9.9.9 +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">options ndots:1 +</span></span><span class="line"><span class="cl">options timeout:2 +</span></span><span class="line"><span class="cl">options attempts:3 +</span></span><span class="line"><span class="cl">options rotate +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">search server1 server2 +</span></span></code></pre></td></tr></table> +</div> +</div><hr> +<h3 id="سخنی-با-شما">سخنی با شما +</h3><p>این را بگم که DNS به صورت recursive(بازگشتی) عمل می‌کنه، این یعنی وقتی شما یک کوئری ارسال می‌کنید، این کوئری هر بار به یک سرور بالاتر ارسال می‌شود تا در نهایت به جواب برسه. و خب این موضوع خودش در نهایت یک جریان -خیلی جالب داره که امیدوارم یک روز اون رو هم بنویسم :)</p> -</span> - - - فورک بمب چیست و چطور کار می‌کند؟ - https://bit-orbit.github.io/p/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B7%D9%88%D8%B1-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF/ - Wed, 27 Dec 2023 16:39:27 +0330 - - https://bit-orbit.github.io/p/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B7%D9%88%D8%B1-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF/ - <img src="https://bit-orbit.github.io/images/post/fork_bomb.jpg" alt="Featured image of post فورک بمب چیست و چطور کار می‌کند؟" /><p>اوایل که لینوکس نصب کرده بودم کامند هایی که توی +خیلی جالب داره که امیدوارم یک روز اون رو هم بنویسم :)</p> +</span>فورک بمب چیست و چطور کار می‌کند؟https://bit-orbit.github.io/p/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B7%D9%88%D8%B1-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF/Wed, 27 Dec 2023 16:39:27 +0330https://bit-orbit.github.io/p/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B7%D9%88%D8%B1-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF/<img src="https://bit-orbit.github.io/images/post/fork_bomb.jpg" alt="Featured image of post فورک بمب چیست و چطور کار می‌کند؟" /><p>اوایل که لینوکس نصب کرده بودم کامند هایی که توی فروم های مختلف می‌دیدم و برای من جدید بود را دوست داشتم یاد بگیرم و بدانم کار آنها چی هست، برای همین هر کامندی را که می‌دیدم در @@ -338,306 +316,283 @@ recursive(بازگشتی) هر کامندی اشتباهه بود. یکی از این کامند ها که اجرا کرده بودم، به اسم فورک بمب (fork bomb) -شناخته می‌شود. کامند به این صورت هست</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>:<span class="p">&amp;</span> <span class="o">}</span><span class="p">;</span>: -</span></span></code></pre></td></tr></table> -</div> -</div><p>اگر این کامند را اجرا کنید(امیدوارم تا الان نکرده باشید) تقریبا زیر یک دقیقه سیستم شما -هنگ می‌کند و مجبور می‌شوید سیستم را ریبوت کنید.</p> -<hr> -<p>توی این پست ساختار این کامند را تشریح می‌کنم و باهم +شناخته می‌شود. کامند به این صورت هست</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>:<span class="p">&amp;</span> <span class="o">}</span><span class="p">;</span>: +</span></span></code></pre></td></tr></table> +</div> +</div><p>اگر این کامند را اجرا کنید(امیدوارم تا الان نکرده باشید) تقریبا زیر یک دقیقه سیستم شما +هنگ می‌کند و مجبور می‌شوید سیستم را ریبوت کنید.</p> +<hr> +<p>توی این پست ساختار این کامند را تشریح می‌کنم و باهم کمی bash -یاد می‌گیریم.</p> -<p>بیایید اول با مفهوم +یاد می‌گیریم.</p> +<p>بیایید اول با مفهوم recustion آشنا بشیم، زمانی که یک قطعه کد خودش اجرا کند، recusion می‌گویم. مثلا شما یک فانکشن می‌نویسید به اسم -<em>fn</em> +<em>fn</em> و توی بدنه فانکشن فقط خود همین فانکشن را صدا می‌‌کنید، به این کار call recursion گفته می‌شود. فورک بمب دقیقا همین کار را می‌کند. به این -معنی که خودش را دائم اجرا می‌کند!</p> -<p>به این فکر کنید که وقتی یک پراسس خودش را اجرا می‌کند +معنی که خودش را دائم اجرا می‌کند!</p> +<p>به این فکر کنید که وقتی یک پراسس خودش را اجرا می‌کند ،مجدد پراسس های اجرا شده توسط اون هم دائم خودشان را اجرا می‌کنند، و دوباره هر پروسه‌ای که اجرا می‌شود بازم خودش را اجرا می‌کند و این روند تا زمانی که رم و پردازنده سیستم تحمل -داشته باشد ادامه دارد.</p> -<blockquote> -<p>درختی که می‌بینید را اجرای فورک بمب درنظر بگیرید، +داشته باشد ادامه دارد.</p> +<blockquote> +<p>درختی که می‌بینید را اجرای فورک بمب درنظر بگیرید، هر ستاره یک پروسه جدید است که توسط پروسه قبلی اجرا شده، و خودش هم دو پروسه جدید باز می‌کند و هر یک از پروسه ها -هم همین روند را ادامه می‌دهند.</p> -</blockquote> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt">10 -</span><span class="lnt">11 -</span><span class="lnt">12 -</span><span class="lnt">13 -</span><span class="lnt">14 -</span><span class="lnt">15 -</span><span class="lnt">16 -</span><span class="lnt">17 -</span><span class="lnt">18 -</span><span class="lnt">19 -</span><span class="lnt">20 -</span><span class="lnt">21 -</span><span class="lnt">22 -</span><span class="lnt">23 -</span><span class="lnt">24 -</span><span class="lnt">25 -</span><span class="lnt">26 -</span><span class="lnt">27 -</span><span class="lnt">28 -</span><span class="lnt">29 -</span><span class="lnt">30 -</span><span class="lnt">31 -</span><span class="lnt">32 -</span><span class="lnt">33 -</span><span class="lnt">34 -</span><span class="lnt">35 -</span><span class="lnt">36 -</span><span class="lnt">37 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w">   </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w">   </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><p>من برای اینکه سیستم‌ خودم هنگ نکند فورک بمب را روی داکر +هم همین روند را ادامه می‌دهند.</p> +</blockquote> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span><span class="lnt">19 +</span><span class="lnt">20 +</span><span class="lnt">21 +</span><span class="lnt">22 +</span><span class="lnt">23 +</span><span class="lnt">24 +</span><span class="lnt">25 +</span><span class="lnt">26 +</span><span class="lnt">27 +</span><span class="lnt">28 +</span><span class="lnt">29 +</span><span class="lnt">30 +</span><span class="lnt">31 +</span><span class="lnt">32 +</span><span class="lnt">33 +</span><span class="lnt">34 +</span><span class="lnt">35 +</span><span class="lnt">36 +</span><span class="lnt">37 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w">   </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w">   </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><p>من برای اینکه سیستم‌ خودم هنگ نکند فورک بمب را روی داکر اجرا کردم و خب حتی یک ثانیه هم طول نکشید و آن کانتینر -کاملا هنگ کرد.</p> -<blockquote> -<p>قبل از اجرا -<a class="link" href="https://bit-orbit.github.io/images/post/forkbomb_docker0.jpg" ><img src="https://bit-orbit.github.io/images/post/forkbomb_docker0.jpg" - - - - loading="lazy" - - alt="forkbomb on docker" - - -></a></p> -</blockquote> -<blockquote> -<p>زمان اجرا -<a class="link" href="https://bit-orbit.github.io/images/post/forkbomb_docker.jpg" ><img src="https://bit-orbit.github.io/images/post/forkbomb_docker.jpg" - - - - loading="lazy" - - alt="forkbomb on docker" - - -></a></p> -</blockquote> -<hr> -<p>بیایید وارد کد بشیم، این علامت ها و کاراکتر ها چی هستند؟</p> -<!-- برای تعریف یک فانکشن توی +کاملا هنگ کرد.</p> +<blockquote> +<p>قبل از اجرا +<a class="link" href="https://bit-orbit.github.io/images/post/forkbomb_docker0.jpg" ><img src="https://bit-orbit.github.io/images/post/forkbomb_docker0.jpg" +loading="lazy" +alt="forkbomb on docker" +></a></p> +</blockquote> +<blockquote> +<p>زمان اجرا +<a class="link" href="https://bit-orbit.github.io/images/post/forkbomb_docker.jpg" ><img src="https://bit-orbit.github.io/images/post/forkbomb_docker.jpg" +loading="lazy" +alt="forkbomb on docker" +></a></p> +</blockquote> +<hr> +<p>بیایید وارد کد بشیم، این علامت ها و کاراکتر ها چی هستند؟</p> +<!-- برای تعریف یک فانکشن توی bash -ما به این صورت عمل می‌کنیم که اول اسم فانکشن بعد پرانتز -و بعد کرلی براکت(توی فارسی می‌گیم آکولاد) و داخل کرلی +ما به این صورت عمل می‌کنیم که اول اسم فانکشن بعد پرانتز +و بعد کرلی براکت(توی فارسی می‌گیم آکولاد) و داخل کرلی براکت ما قطعه کد را می‌نویسیم. مثلا برای فانکشنی که یک اسم را روی صفحه چاپ کنه به این صورت عمل می‌کنیم - ```bash -pname(){ echo 'foo'; } -``` --> -<p>اگه دقت کنید اولین کاراکتر فورک بمب، علامت -<code>:</code> +pname(){ echo 'foo'; } +``` --> +<p>اگه دقت کنید اولین کاراکتر فورک بمب، علامت +<code>:</code> است. این علامت اسم فانکشن ما است. برخلاف قانون تعریف نام برای متغییر ها توی bash، می‌توانیم از کاراتر های یونیکد هم برای تعریف نام فانکشن استفاده کنیم، مثلا یک -کاراکتر چینی یا حتی ایموجی!</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span><span class="lnt">3 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">雨<span class="o">(){</span> <span class="nb">echo</span> <span class="s1">&#39;rain&#39;</span><span class="p">;</span> <span class="o">}</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">❤️<span class="o">(){</span> <span class="nb">echo</span> <span class="s1">&#39;love&#39;</span><span class="p">;</span> <span class="o">}</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>خب در ادامه علامت های -<code>()</code> +کاراکتر چینی یا حتی ایموجی!</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">雨<span class="o">(){</span> <span class="nb">echo</span> <span class="s1">&#39;rain&#39;</span><span class="p">;</span> <span class="o">}</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">❤️<span class="o">(){</span> <span class="nb">echo</span> <span class="s1">&#39;love&#39;</span><span class="p">;</span> <span class="o">}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>خب در ادامه علامت های +<code>()</code> را می‌بینیم، توی bash برای تعریف فانکشن قبل از اسم فانکشن هیچ کلمه کلیدی مثل fn, def, void و &hellip; نیاز نیست، فقط بجای آن باید -<strong>بعد از اسم فانکشن</strong> -پرانتز ها را بگذارید.</p> -<p>مثل خیلی از زبان های برنامه نویسی، بدنه فانکشن توی -کرلی براکت تعریف می‌شود.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){}</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>پس تا اینجا ما یک فانکشن ساده با نام -<code>:</code> -تعریف کردیم.</p> -<p>داخل بدنه این فانکشن، اسمی که برای فانکشن قرار دادیم +<strong>بعد از اسم فانکشن</strong> +پرانتز ها را بگذارید.</p> +<p>مثل خیلی از زبان های برنامه نویسی، بدنه فانکشن توی +کرلی براکت تعریف می‌شود.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>پس تا اینجا ما یک فانکشن ساده با نام +<code>:</code> +تعریف کردیم.</p> +<p>داخل بدنه این فانکشن، اسمی که برای فانکشن قرار دادیم همان -<code>:</code> +<code>:</code> را می‌نویسیم. با اینکار دقیقا call recursion را انجام دادیم، و باعث شدیم که برنامه خودش را -توی هر اجرا مجدد اجرا کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> : <span class="o">}</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>دقت کنید توی سینتکس +توی هر اجرا مجدد اجرا کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> : <span class="o">}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>دقت کنید توی سینتکس bash -حتما باید یک فاصله برای کدی که داخلی کرلی براکت می‌نویسم قرار بدیم</p> -</blockquote> -<p>علامت -<code>|</code> +حتما باید یک فاصله برای کدی که داخلی کرلی براکت می‌نویسم قرار بدیم</p> +</blockquote> +<p>علامت +<code>|</code> به اسم پایپ شناخته می‌شود، وظیفه این علامت دادن خروجی یک کامند بعنوان ورودی به یک کامند دیگر هست، حلا دقت کنید که ما خروجی اجرای -<code>:</code> -را به خودش می‌دهیم. دقیقا به این شکل</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>: <span class="o">}</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>با این علامت هر پروسه دو بار پروسه جدیدی از خودش می‌سازد +<code>:</code> +را به خودش می‌دهیم. دقیقا به این شکل</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>: <span class="o">}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>با این علامت هر پروسه دو بار پروسه جدیدی از خودش می‌سازد اگر از این علامت استفاده نکنیم، پروسه ما به صورت خطی خودش را اجرا خواهد کرد، اینطوری کد ما با یک حلقه -<code>while</code> -تفاوتی زیادی نخواهد داشت.</p> -<p>علامت -<code>&amp;</code> +<code>while</code> +تفاوتی زیادی نخواهد داشت.</p> +<p>علامت +<code>&amp;</code> اجرای یک کامند را به بکگراند(پس زمینه) می‌برد. برای مثال بعد از اجرای یک دستور باید صبر کنید پروسه آن تمام شود تا بتوانید دستور بعدی را اجرا کنید. ولی اگر از علامت -<code>&amp;</code> +<code>&amp;</code> بعد از هر دستور استفاده کنید، دیگر نیاز نیست صبر کنید تا روند اجرای آن برنامه تمام شود. درواقع با علامت -<code>&amp;</code> +<code>&amp;</code> شما می‌توانید هر برنامه را در بکگراند اجرا کنید. حالا توی فورک بمب این علامت باعث می‌شود تا فانشکنی که اجرا کردین درحالی که کارش به اتمام -نرسیده است، فانکشن بعدی اجرا بشود.</p> -<p><img src="https://bit-orbit.github.io/images/post/forkbomb_and.jpg" - - - - loading="lazy" - - alt="& in bash" - - -></p> -<p>و بعد علامت -<code>;</code> +نرسیده است، فانکشن بعدی اجرا بشود.</p> +<p><img src="https://bit-orbit.github.io/images/post/forkbomb_and.jpg" +loading="lazy" +alt="& in bash" +></p> +<p>و بعد علامت +<code>;</code> را می‌بینیم. این علامت کامند ها را از هم جدا می‌کند. مثلا شما می‌توانید چند کامند مختلف را توی یک خط بنویسید. توی فورک بمب این علامت فانکشنی که تعریف کردین را از -دستور بعدی(که اجرا کننده اون فانکشن هست)جدا می‌کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s1">&#39;foo&#39;</span><span class="p">;</span> <span class="nb">echo</span> <span class="s1">&#39;bar&#39;</span><span class="p">;</span> <span class="nb">echo</span> <span class="s1">&#39;baz&#39;</span><span class="p">;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>آخرین علامتی که توی فورک بمب داریم همون علامت -<code>:</code> +دستور بعدی(که اجرا کننده اون فانکشن هست)جدا می‌کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s1">&#39;foo&#39;</span><span class="p">;</span> <span class="nb">echo</span> <span class="s1">&#39;bar&#39;</span><span class="p">;</span> <span class="nb">echo</span> <span class="s1">&#39;baz&#39;</span><span class="p">;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>آخرین علامتی که توی فورک بمب داریم همون علامت +<code>:</code> یا همون اسمی هست که برای فانکشن قرار دادیم. خیلی ساده توی bash -برای اجرای یک فانکشن فقط اسم‌ش را می‌نویسیم.</p> -<p>و تمام! ما یاد گرفتیم چطور فورک بمب رو بنویسیم و دیگه -نیاز نیست حفظ‌ش کنیم :)</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>:<span class="p">&amp;</span> <span class="o">}</span><span class="p">;</span>: -</span></span></code></pre></td></tr></table> -</div> -</div> - - - - +برای اجرای یک فانکشن فقط اسم‌ش را می‌نویسیم.</p> +<p>و تمام! ما یاد گرفتیم چطور فورک بمب رو بنویسیم و دیگه +نیاز نیست حفظ‌ش کنیم :)</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>:<span class="p">&amp;</span> <span class="o">}</span><span class="p">;</span>: +</span></span></code></pre></td></tr></table> +</div> +</div> \ No newline at end of file diff --git a/docs/tags/arya-shabane/page/1/index.html b/docs/tags/arya-shabane/page/1/index.html index c537267..2450b25 100644 --- a/docs/tags/arya-shabane/page/1/index.html +++ b/docs/tags/arya-shabane/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/arya-shabane/ - - - - - - +https://bit-orbit.github.io/tags/arya-shabane/ + \ No newline at end of file diff --git a/docs/tags/bash/index.html b/docs/tags/bash/index.html index 121cf0c..a5fbad5 100644 --- a/docs/tags/bash/index.html +++ b/docs/tags/bash/index.html @@ -1,559 +1,37 @@ - - - - -Tag: Bash - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

Bash

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: Bash - bit-orbit + \ No newline at end of file diff --git a/docs/tags/bash/index.xml b/docs/tags/bash/index.xml index 6182169..26b447a 100644 --- a/docs/tags/bash/index.xml +++ b/docs/tags/bash/index.xml @@ -1,118 +1,86 @@ - - - - Bash on bit-orbit - https://bit-orbit.github.io/tags/bash/ - Recent content in Bash on bit-orbit - Hugo -- gohugo.io - fa - Tue, 11 Jan 2022 02:44:12 +0330 - zsh بهترین پلاگین های - https://bit-orbit.github.io/p/zsh-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C/ - Tue, 11 Jan 2022 02:44:12 +0330 - - https://bit-orbit.github.io/p/zsh-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C/ - <img src="https://bit-orbit.github.io/images/post/terminal.jpg" alt="Featured image of post zsh بهترین پلاگین های " /><p>نوشتن یک برنامه کار سختی نیست، بلکه نگه‌داری و آپدیت یک برنامه‌ست، پلاگین این ویژگی را می‌دهد تا به راحتی عملکرد یک برنامه را بی‌افزاییم.</p> -<hr> -<div dir='rtl' style='font-size:25px'> -<h3 id="themeshttpsgithubcomohmyzshohmyzshtreemasterpluginsthemes-"><a class="link" href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/themes" target="_blank" rel="noopener" - >themes</a> #Ⅳ</h3> -<p>انتخاب +Bash on bit-orbithttps://bit-orbit.github.io/tags/bash/Recent content in Bash on bit-orbitHugo -- gohugo.iofaTue, 11 Jan 2022 02:44:12 +0330 zsh بهترین پلاگین هایhttps://bit-orbit.github.io/p/zsh-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C/Tue, 11 Jan 2022 02:44:12 +0330https://bit-orbit.github.io/p/zsh-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C/<img src="https://bit-orbit.github.io/images/post/terminal.jpg" alt="Featured image of post zsh بهترین پلاگین های " /><p>نوشتن یک برنامه کار سختی نیست، بلکه نگه‌داری و آپدیت یک برنامه‌ست، پلاگین این ویژگی را می‌دهد تا به راحتی عملکرد یک برنامه را بی‌افزاییم.</p> +<hr> +<div dir='rtl' style='font-size:25px'> +<h3 id="themeshttpsgithubcomohmyzshohmyzshtreemasterpluginsthemes-"><a class="link" href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/themes" target="_blank" rel="noopener" +>themes</a> #Ⅳ +</h3><p>انتخاب بین تم های zsh واقعا کار سختیه!‌ هر تم ظاهر جدیدی به ترمینال شما می‌دهد که -کار کردن در ترمینال را جذاب تر می‌کند.</p> -<p>با استفاده از این پلاگین شما بدون نیاز به تغییر دستی فایل کانفیگ -<code>zshrc.</code>، -می‌توانید تم را تغییر بدین.</p> -<p><img src="https://bit-orbit.github.io/images/post/theme.gif" - - - - loading="lazy" - - alt="theme-plugin" - - -></p> -<blockquote> -<ul> -<li>تغییر به یک تم مشخص</li> -</ul> -<p><code>theme theme_name</code></p> -</blockquote> -<blockquote> -<ul> -<li>تغییر رندم تم</li> -</ul> -<p><code>theme</code></p> -</blockquote> -<blockquote> -<ul> -<li>دیدن لیستی از تم های نصب شده</li> -</ul> -<p><code>lstheme</code></p> -</blockquote> -<hr> -<h3 id="zsh-autosuggestionshttpsgithubcomzsh-userszsh-autosuggestions-"><a class="link" href="https://github.com/zsh-users/zsh-autosuggestions" target="_blank" rel="noopener" - >zsh-autosuggestions</a> #Ⅲ</h3> -<blockquote> -<p><a class="link" href="https://github.com/zsh-users/zsh-autosuggestions" target="_blank" rel="noopener" - >تنها پلاگینی که باید نصب بشه</a></p> -</blockquote> -<p>این یکی از پلاگین هایی است که بدون آن زندگی ممکن نیست!</p> -<p>همانطور که شما دستوری را تایپ می‌کنید، متنی به رنگ خاکستری ظاهر می‌شود که +کار کردن در ترمینال را جذاب تر می‌کند.</p> +<p>با استفاده از این پلاگین شما بدون نیاز به تغییر دستی فایل کانفیگ +<code>zshrc.</code>، +می‌توانید تم را تغییر بدین.</p> +<p><img src="https://bit-orbit.github.io/images/post/theme.gif" +loading="lazy" +alt="theme-plugin" +></p> +<blockquote> +<ul> +<li>تغییر به یک تم مشخص</li> +</ul> +<p><code>theme theme_name</code></p> +</blockquote> +<blockquote> +<ul> +<li>تغییر رندم تم</li> +</ul> +<p><code>theme</code></p> +</blockquote> +<blockquote> +<ul> +<li>دیدن لیستی از تم های نصب شده</li> +</ul> +<p><code>lstheme</code></p> +</blockquote> +<hr> +<h3 id="zsh-autosuggestionshttpsgithubcomzsh-userszsh-autosuggestions-"><a class="link" href="https://github.com/zsh-users/zsh-autosuggestions" target="_blank" rel="noopener" +>zsh-autosuggestions</a> #Ⅲ +</h3><blockquote> +<p><a class="link" href="https://github.com/zsh-users/zsh-autosuggestions" target="_blank" rel="noopener" +>تنها پلاگینی که باید نصب بشه</a></p> +</blockquote> +<p>این یکی از پلاگین هایی است که بدون آن زندگی ممکن نیست!</p> +<p>همانطور که شما دستوری را تایپ می‌کنید، متنی به رنگ خاکستری ظاهر می‌شود که به شما دستورات ممکن را پیشنهاد می‌دهد و یا از history دستور مشابه که قبلا اجرا کرده‌اید را جست و جو می‌کند و پیشنهاد می‌هد. و خب شما را برای تایپ کردن کامل دستور و سوییچ هایش راحت می‌کند. برای اینکه دستور ظاهر شده تایپ شود کافیست کلید -<code>right arrow key</code> +<code>right arrow key</code> یا همان -<code>فلش سمت راست</code> -را فشار دهید.</p> -<p><img src="https://bit-orbit.github.io/images/post/zsh-autosuggestions-gif.gif" - - - - loading="lazy" - - alt="zsh-autosuggestion" - - -></p> -<hr> -<h3 id="sudohttpsgithubcomohmyzshohmyzshtreemasterpluginssudo-"><a class="link" href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/sudo" target="_blank" rel="noopener" - >sudo</a> #Ⅱ</h3> -<p>بار ها اتفاق افتاده دستوری را که نیاز به دسترسی +<code>فلش سمت راست</code> +را فشار دهید.</p> +<p><img src="https://bit-orbit.github.io/images/post/zsh-autosuggestions-gif.gif" +loading="lazy" +alt="zsh-autosuggestion" +></p> +<hr> +<h3 id="sudohttpsgithubcomohmyzshohmyzshtreemasterpluginssudo-"><a class="link" href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/sudo" target="_blank" rel="noopener" +>sudo</a> #Ⅱ +</h3><p>بار ها اتفاق افتاده دستوری را که نیاز به دسترسی root داشته را بدون نوشتن کلمه -<em>sudo</em> +<em>sudo</em> اجرا کرده‌ام، و بعد از دیدن ارور، دستور را دوباره تایپ کردم و کلمه -<em>sudo</em> +<em>sudo</em> را هم به اول دستور اضافه کردم. اما این پلاگین بار تایپ مجدد یک دستور بخاطر فراموش کردن کلمه -<em>sudo</em> +<em>sudo</em> را از دوش ما بر‌ می‌دارد. کافیست بعد از نوشتن و اجرای دستور بدون -<em>sudo</em>، +<em>sudo</em>، دوبار کلید -<code>esc</code> -را بزنید</p> -<p><img src="https://bit-orbit.github.io/images/post/sudo.gif" - - - - loading="lazy" - - alt="zsh-sudo-theme" - - -></p> -<hr> -<h3 id="web-searchhttpsgithubcomohmyzshohmyzshtreemasterpluginsweb-search-"><a class="link" href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/web-search" target="_blank" rel="noopener" - >web-search</a> #Ⅰ</h3> -<p>وقتی با لینوکس کار می‌‌کنید، تمام لحظه ها در ترمینال هستنید. +<code>esc</code> +را بزنید</p> +<p><img src="https://bit-orbit.github.io/images/post/sudo.gif" +loading="lazy" +alt="zsh-sudo-theme" +></p> +<hr> +<h3 id="web-searchhttpsgithubcomohmyzshohmyzshtreemasterpluginsweb-search-"><a class="link" href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/web-search" target="_blank" rel="noopener" +>web-search</a> #Ⅰ +</h3><p>وقتی با لینوکس کار می‌‌کنید، تمام لحظه ها در ترمینال هستنید. فرض کنید سوالی دارید که باید آن را گوگل کنید،‌ شما مجبور می‌شوید مرورگر را باز کنید، یک تب جدید ایجاد کنید و متنتان را سرچ کنید. ولی به این فکر کنید که نیازی به باز کردن مرورگر و یا سوییچ کردن بین ویندوز ها ندارید، @@ -120,78 +88,67 @@ root google را در ترمینال تایپ کنید و متن خود را جلو آن بنوسید و در آخر دکمه اینتر را بزنید! -بنگ! گوگل باز می‌شود و حاصل جست و جوی شما آماده است.</p> -<p><img src="https://bit-orbit.github.io/images/post/web-search.gif" - - - - loading="lazy" - - alt="web-search" - - -></p> -</div> -<table> - <thead> - <tr> - <th style="text-align: center">دستور\موتور جست و جو</th> - </tr> - </thead> - <tbody> - <tr> - <td style="text-align: center"><code>bing</code></td> - </tr> - <tr> - <td style="text-align: center"><code>google</code></td> - </tr> - <tr> - <td style="text-align: center"><code>yahoo</code></td> - </tr> - <tr> - <td style="text-align: center"><code>ddg</code> or <code>duckduckgo</code></td> - </tr> - <tr> - <td style="text-align: center"><code>sp</code> or <code>startpage</code></td> - </tr> - <tr> - <td style="text-align: center"><code>yandex</code></td> - </tr> - <tr> - <td style="text-align: center"><code>github</code></td> - </tr> - <tr> - <td style="text-align: center"><code>baidu</code></td> - </tr> - <tr> - <td style="text-align: center"><code>ecosia</code></td> - </tr> - <tr> - <td style="text-align: center"><code>goodreads</code></td> - </tr> - <tr> - <td style="text-align: center"><code>qwant</code></td> - </tr> - <tr> - <td style="text-align: center"><code>givero</code></td> - </tr> - <tr> - <td style="text-align: center"><code>stackoverflow</code></td> - </tr> - <tr> - <td style="text-align: center"><code>wolframalpha</code></td> - </tr> - <tr> - <td style="text-align: center"><code>archive</code></td> - </tr> - <tr> - <td style="text-align: center"><code>scholar</code></td> - </tr> - </tbody> -</table> -<hr> - - - - - +بنگ! گوگل باز می‌شود و حاصل جست و جوی شما آماده است.</p> +<p><img src="https://bit-orbit.github.io/images/post/web-search.gif" +loading="lazy" +alt="web-search" +></p> +</div> +<table> +<thead> +<tr> +<th style="text-align: center">دستور\موتور جست و جو</th> +</tr> +</thead> +<tbody> +<tr> +<td style="text-align: center"><code>bing</code></td> +</tr> +<tr> +<td style="text-align: center"><code>google</code></td> +</tr> +<tr> +<td style="text-align: center"><code>yahoo</code></td> +</tr> +<tr> +<td style="text-align: center"><code>ddg</code> or <code>duckduckgo</code></td> +</tr> +<tr> +<td style="text-align: center"><code>sp</code> or <code>startpage</code></td> +</tr> +<tr> +<td style="text-align: center"><code>yandex</code></td> +</tr> +<tr> +<td style="text-align: center"><code>github</code></td> +</tr> +<tr> +<td style="text-align: center"><code>baidu</code></td> +</tr> +<tr> +<td style="text-align: center"><code>ecosia</code></td> +</tr> +<tr> +<td style="text-align: center"><code>goodreads</code></td> +</tr> +<tr> +<td style="text-align: center"><code>qwant</code></td> +</tr> +<tr> +<td style="text-align: center"><code>givero</code></td> +</tr> +<tr> +<td style="text-align: center"><code>stackoverflow</code></td> +</tr> +<tr> +<td style="text-align: center"><code>wolframalpha</code></td> +</tr> +<tr> +<td style="text-align: center"><code>archive</code></td> +</tr> +<tr> +<td style="text-align: center"><code>scholar</code></td> +</tr> +</tbody> +</table> +<hr> \ No newline at end of file diff --git a/docs/tags/bash/page/1/index.html b/docs/tags/bash/page/1/index.html index ff139df..f43178c 100644 --- a/docs/tags/bash/page/1/index.html +++ b/docs/tags/bash/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/bash/ - - - - - - +https://bit-orbit.github.io/tags/bash/ + \ No newline at end of file diff --git a/docs/tags/curl-paste/index.html b/docs/tags/curl-paste/index.html index a4e76b0..8f9b720 100644 --- a/docs/tags/curl-paste/index.html +++ b/docs/tags/curl-paste/index.html @@ -1,559 +1,37 @@ - - - - -Tag: Curl Paste - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

Curl Paste

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: Curl Paste - bit-orbit +

Tags

1 صفحه

Curl Paste

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git a/docs/tags/curl-paste/index.xml b/docs/tags/curl-paste/index.xml index 06573cb..0ff4265 100644 --- a/docs/tags/curl-paste/index.xml +++ b/docs/tags/curl-paste/index.xml @@ -1,79 +1,65 @@ - - - - Curl Paste on bit-orbit - https://bit-orbit.github.io/tags/curl-paste/ - Recent content in Curl Paste on bit-orbit - Hugo -- gohugo.io - fa - Wed, 06 Mar 2024 23:50:46 +0330 - Crul Paste - https://bit-orbit.github.io/p/crul-paste/ - Wed, 06 Mar 2024 23:50:46 +0330 - - https://bit-orbit.github.io/p/crul-paste/ - <img src="https://bit-orbit.github.io/images/post/curlpaste.jpg" alt="Featured image of post Crul Paste" /><p>اول بیایید ببینم +Curl Paste on bit-orbithttps://bit-orbit.github.io/tags/curl-paste/Recent content in Curl Paste on bit-orbitHugo -- gohugo.iofaWed, 06 Mar 2024 23:50:46 +0330Crul Pastehttps://bit-orbit.github.io/p/crul-paste/Wed, 06 Mar 2024 23:50:46 +0330https://bit-orbit.github.io/p/crul-paste/<img src="https://bit-orbit.github.io/images/post/curlpaste.jpg" alt="Featured image of post Crul Paste" /><p>اول بیایید ببینم FileBin چیه! قبل از اون هم فکر می‌کنم همه بدونیم -<a class="link" href="https://virgool.io/@m_shabane/pastebin-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B1%D8%A7-%D9%87%DA%A9%D8%B1-%D9%87%D8%A7-%D8%B9%D8%A7%D8%B4%D9%82-%D8%A2%D9%86-%D9%87%D8%A7%D8%B3%D8%AA%D9%86%D8%AF-swafqm95gttp" target="_blank" rel="noopener" - >pastebin</a> +<a class="link" href="https://virgool.io/@m_shabane/pastebin-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B1%D8%A7-%D9%87%DA%A9%D8%B1-%D9%87%D8%A7-%D8%B9%D8%A7%D8%B4%D9%82-%D8%A2%D9%86-%D9%87%D8%A7%D8%B3%D8%AA%D9%86%D8%AF-swafqm95gttp" target="_blank" rel="noopener" +>pastebin</a> چیه. اگه نمی‌دونید خیلی ساده باید بگم یک سایتی که فقط روی اون متن به اشتراک می‌ذارن -مثلا ممکنه ارور ها یا حتی سورس یک برنامه باشه!</p> -<p>اما +مثلا ممکنه ارور ها یا حتی سورس یک برنامه باشه!</p> +<p>اما FileBin ها بجای تسکت فایل های شما رو نگهداری می‌کنند و به شما لینکی ارائه می‌کنند که فایل را برای دیگران اشتراک بگذارید، نمونه های زیادی هم وجود داره مثل -<a class="link" href="https://wormhole.app" target="_blank" rel="noopener" - >https://wormhole.app</a></p> -<p>اما خب از اونجایی که من زندگی‌ام رو توی ترمینال می‌گذرونم و ترمینال رو به باز کردن مرورگر برای اشتراک یک فایل ترجیح می‌دم، پس از +<a class="link" href="https://wormhole.app" target="_blank" rel="noopener" +>https://wormhole.app</a></p> +<p>اما خب از اونجایی که من زندگی‌ام رو توی ترمینال می‌گذرونم و ترمینال رو به باز کردن مرورگر برای اشتراک یک فایل ترجیح می‌دم، پس از FileBin هایی استفاده می‌کنم که بتونم تحت ترمینال به سادگی فایلم رو به اشتراک بذارم. برای مثال -<a class="link" href="https://0x0.st" target="_blank" rel="noopener" - >https://0x0.st</a></p> -<p>وقتی این رو سایت رو باز کنید هیچ گزینه‌ای برای انتخاب فایل و آپلود نمی‌بینید! خب پس چطور باید یک فایل را برای سایت آپلود کنید؟ +<a class="link" href="https://0x0.st" target="_blank" rel="noopener" +>https://0x0.st</a></p> +<p>وقتی این رو سایت رو باز کنید هیچ گزینه‌ای برای انتخاب فایل و آپلود نمی‌بینید! خب پس چطور باید یک فایل را برای سایت آپلود کنید؟ کافیه یک ریکوئست HTTP POST خیلی ساده به سایت بزنید که شامل فایتون باشه. این کار رو خیلی ساده می‌شه با curl -انجام داد.</p> -<p>مثلا بیایین اشتراک یک فایل رو ببینیم</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl https://0x0.st -F <span class="nv">file</span><span class="o">=</span>@/path/to/file -</span></span><span class="line"><span class="cl"><span class="c1"># https://0x0.st/zWKo.txt</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>این سایت خیلی خوبه +انجام داد.</p> +<p>مثلا بیایین اشتراک یک فایل رو ببینیم</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl https://0x0.st -F <span class="nv">file</span><span class="o">=</span>@/path/to/file +</span></span><span class="line"><span class="cl"><span class="c1"># https://0x0.st/zWKo.txt</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>این سایت خیلی خوبه اما از زمانی به بعد دیگه این سایت کاری که من نیاز دارم رو کفاف نداد! برای مثال من نیاز دارم فایلم بعد از اولین دانلود از روی سرور حذف بشه و از این مهم تر نیاز داشتم که چندین فایل رو با یک یوزنیم مشخص اپلود کنم که خب شخصی که قرار باشه فایل ها رو دانلود کنه، کافیه از یوزنیم استفاده کنه که راحت تر قابل حفظ کردن و اشتراک گذاشتنه. اینطوری بود که گفتم FileBin -خودم رو بنویسم :)</p> -<hr> -<p><strong>بیایید فیچر ها و روش استفاده ازش رو با هم ببینیم.</strong></p> -<p>فرض کنید شما یک فایل دارید که می‌خواهید با من به اشتراک بگذارید، +خودم رو بنویسم :)</p> +<hr> +<p><strong>بیایید فیچر ها و روش استفاده ازش رو با هم ببینیم.</strong></p> +<p>فرض کنید شما یک فایل دارید که می‌خواهید با من به اشتراک بگذارید، خیلی ساده ترمینال رو باز می‌کنید و با یک دستور فایل رو با یک URL -تقریبا تصادفی منتشر می‌کنید.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">file</span><span class="o">=</span>@/tmp/theFile.fli -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/theFile.fli</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>دقت کنید من از سوییچ +تقریبا تصادفی منتشر می‌کنید.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">file</span><span class="o">=</span>@/tmp/theFile.fli +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/theFile.fli</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>دقت کنید من از سوییچ -L استفاده می‌کنم، دلیل اینکار این هست که خب ممکنه سایت شما رو ریدایرکت کنه. مثلا از @@ -82,206 +68,201 @@ http https. برای همین این سوییچ رو استفاده می‌کنم. با این سوییچ دیگه نیازی نیست https:// -رو هم بنویسیم!</p> -</blockquote> -<p>حالا اگه نیاز دارین که فایلتون بعد از اولین دانلود از روی سرور حذف بشه و دیگه در دسترس نباشه +رو هم بنویسیم!</p> +</blockquote> +<p>حالا اگه نیاز دارین که فایلتون بعد از اولین دانلود از روی سرور حذف بشه و دیگه در دسترس نباشه کافیه از کلمه -<code>once</code> +<code>once</code> بجای -<code>file</code> -استفاده کنید.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@/tmp/theFile.fli -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/theFile_GKug7xb.fli</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>تا اینجای کار همه +<code>file</code> +استفاده کنید.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@/tmp/theFile.fli +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/theFile_GKug7xb.fli</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>تا اینجای کار همه URL های هر فایلی به صورت تصادفی هست و من نیاز دارم که چندین فایل رو زیر یک یوزنیم مشخص مثل -<code>arya</code> +<code>arya</code> قرار بدم. اینطوری وقتی قراره یک فایل رو برای همکارم توی شرکت بفرستم خیلی ساده ازش درخواست می‌کنم در سایت به ادرس -<code>/arya</code> +<code>/arya</code> بره. حالا چطوری اینکارو بکنیم خیلی ساده بجای -<code>once</code> +<code>once</code> یا -<code>file</code>, +<code>file</code>, همون -<code>username</code> -رو می‌نویسیم(توی مثال من از نام <strong><em>arya</em></strong> استفاده می‌کنیم)</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">arya</span><span class="o">=</span>@/tmp/pic.jpg -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/arya</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>تا اینجای کار مثلا شما چند بار چند فایل مختلف رو زیر یک یوزنیم قرار دادین -حالا چطور میشه همه اونها رو باهم دانلود کرد؟</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir/arya <span class="p">|</span> wget -i - -</span></span></code></pre></td></tr></table> -</div> -</div><p>حالا به این فکر کنید که یکنفر میاد و با یوزنیم های معقول ریکوئست میزنه به سایت و +<code>username</code> +رو می‌نویسیم(توی مثال من از نام <strong><em>arya</em></strong> استفاده می‌کنیم)</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">arya</span><span class="o">=</span>@/tmp/pic.jpg +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/arya</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>تا اینجای کار مثلا شما چند بار چند فایل مختلف رو زیر یک یوزنیم قرار دادین +حالا چطور میشه همه اونها رو باهم دانلود کرد؟</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir/arya <span class="p">|</span> wget -i - +</span></span></code></pre></td></tr></table> +</div> +</div><p>حالا به این فکر کنید که یکنفر میاد و با یوزنیم های معقول ریکوئست میزنه به سایت و فایل های بقیه رو دانلود می‌کنه، اینجاست که پسورد به کار میاد. برای گذاشتن پسورد روی هر فایل کافیه توی خود URL سایت پسورد رو بعنوان http parametr -بنویسد.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L <span class="s1">&#39;octocat.ir/?password=12345678&#39;</span> -F <span class="nv">once</span><span class="o">=</span>@/Desktop/TopSecret.fli -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/file/TopSecret/?password=12345678</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>اینجا دقت کنید که باید از کوتیشن استفاده کنیم چون علامت مساوی و علامت سوال رو bash وایلد کارد می‌بینه.</p> -</blockquote> -<p>برای دانلود هر فایلی هم که پسورد داره کافیه دقیقا مثل مثال قبلی عمل کنید و پسورد رو توی +بنویسد.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L <span class="s1">&#39;octocat.ir/?password=12345678&#39;</span> -F <span class="nv">once</span><span class="o">=</span>@/Desktop/TopSecret.fli +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/file/TopSecret/?password=12345678</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>اینجا دقت کنید که باید از کوتیشن استفاده کنیم چون علامت مساوی و علامت سوال رو bash وایلد کارد می‌بینه.</p> +</blockquote> +<p>برای دانلود هر فایلی هم که پسورد داره کافیه دقیقا مثل مثال قبلی عمل کنید و پسورد رو توی http parametr -وارد کنید</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ wget <span class="s1">&#39;octocat.ir/file/TopSecret/?password=12345678&#39;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>براتون سواله که چرا پسورد روی توی +وارد کنید</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ wget <span class="s1">&#39;octocat.ir/file/TopSecret/?password=12345678&#39;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>براتون سواله که چرا پسورد روی توی URL گذاشتم؟ می‌شد که مثلا توی http header پسورد بگیریم و بدیم، پس چرا توی -URL?</p> -<p>اینکار برای این هست که دسترسی به فایل ساده باشه. مثلا من وقتی می‌خام فایلی رو برای همکارم بفرستم +URL?</p> +<p>اینکار برای این هست که دسترسی به فایل ساده باشه. مثلا من وقتی می‌خام فایلی رو برای همکارم بفرستم و خب فرض کنم همکار من از header ها چیزی نمی‌دونه، و فقط با یک کلیک باید بتونه به فایل دسترسی پیدا کنه، اینجاست که من فقط یک URL -به اون می‌گم :)</p> -<hr> -<p>بعضی از ابزار ها +به اون می‌گم :)</p> +<hr> +<p>بعضی از ابزار ها hackable هستند! این به معنی ضعف امنیتی نیست، بلکه به این اشاره می‌کنه ابزار به روشی طراحی -شده که کاربران می‌تونند خارج از هدف اصلی اون ابزار از اون استفاه کنند.</p> -<p>برای مثال ابزار که من درست کردم برای اشتراک فایل هست، اما بنظرتون میشه یک دایرکتوری و یا یک متن رو هم باهاش به اشتراک گذاشت؟</p> -<p>قطعا! اما چطوری؟</p> -<p>برای اینکه یک دایرکتوری با تمامی ساب دایرکتوری هاش رو بفرستین +شده که کاربران می‌تونند خارج از هدف اصلی اون ابزار از اون استفاه کنند.</p> +<p>برای مثال ابزار که من درست کردم برای اشتراک فایل هست، اما بنظرتون میشه یک دایرکتوری و یا یک متن رو هم باهاش به اشتراک گذاشت؟</p> +<p>قطعا! اما چطوری؟</p> +<p>برای اینکه یک دایرکتوری با تمامی ساب دایرکتوری هاش رو بفرستین کافیه از -<code>tar</code> -استفاده کنید.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ tar -cf - ~/Pictures <span class="p">|</span> curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@- -</span></span><span class="line"><span class="cl"><span class="c1"># &#39;octocat.ir/file/_nUiuRPW/</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>با اینکار با استفاده از +<code>tar</code> +استفاده کنید.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ tar -cf - ~/Pictures <span class="p">|</span> curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@- +</span></span><span class="line"><span class="cl"><span class="c1"># &#39;octocat.ir/file/_nUiuRPW/</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>با اینکار با استفاده از tar تمامی فایل ها و دایرکتوری های مثلا پوشه -<em>~/Pictures</em> +<em>~/Pictures</em> رو به آرشیو -<code>tar</code> +<code>tar</code> تبدیل می‌کنید و بعد خروجی رو بعنوان ورودی به -<code>curl</code> -می‌فرستین.</p> -<p>حالا به این فکر کنید که بخواهیم یک متن رو منتشر کنیم، راهکار دقیقا مشابه قبلیه. +<code>curl</code> +می‌فرستین.</p> +<p>حالا به این فکر کنید که بخواهیم یک متن رو منتشر کنیم، راهکار دقیقا مشابه قبلیه. به این شکل که یک متن رو با استفاده از -<code>echo</code> +<code>echo</code> به ورودی استاندارد -<code>curl</code> -می‌فرستیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ <span class="nb">echo</span> <span class="s1">&#39;Some Random Text&#39;</span> <span class="p">|</span> curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@- -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/file/-_W00DSbS/</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>اینطوری خیلی راحت می‌شه خروجی هر کامندی رو روی به اشتراک گذاشت</p> -</blockquote> -<hr> -<p>سایت من توی آدرس +<code>curl</code> +می‌فرستیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ <span class="nb">echo</span> <span class="s1">&#39;Some Random Text&#39;</span> <span class="p">|</span> curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@- +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/file/-_W00DSbS/</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>اینطوری خیلی راحت می‌شه خروجی هر کامندی رو روی به اشتراک گذاشت</p> +</blockquote> +<hr> +<p>سایت من توی آدرس octocat.ir -در دسترسه، خوشحال می‌شم ازش استفاده کنید :)</p> -<blockquote> -<p>اینو بدونید که سایت به صورت دیفالت فایل ها رو برای 24 ساعت نگه‌میداره</p> -</blockquote> -<p>این سرویس رو منبع باز روی -<a class="link" href="https://github.com/shabane/CurlPaste/" target="_blank" rel="noopener" - >گیتهاب</a> -گذاشتم، اگه چیزی خواستید می‌تونید بهش اضافه کنید و یا مشکلاتش رو پچ کنید.</p> -<p>و اگه می‌خواهید برای خودتون این سرویس رو بیارید بالا از ایمیج داکر استفاده کنید</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">docker run -p 80:80 mshabane/curlpaste:latest -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>اگه نیاز دارین تا فایل ها برای تایم بالاتری نگه‌داری بشه، متغییر -<em>HOURS</em> +در دسترسه، خوشحال می‌شم ازش استفاده کنید :)</p> +<blockquote> +<p>اینو بدونید که سایت به صورت دیفالت فایل ها رو برای 24 ساعت نگه‌میداره</p> +</blockquote> +<p>این سرویس رو منبع باز روی +<a class="link" href="https://github.com/shabane/CurlPaste/" target="_blank" rel="noopener" +>گیتهاب</a> +گذاشتم، اگه چیزی خواستید می‌تونید بهش اضافه کنید و یا مشکلاتش رو پچ کنید.</p> +<p>و اگه می‌خواهید برای خودتون این سرویس رو بیارید بالا از ایمیج داکر استفاده کنید</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">docker run -p 80:80 mshabane/curlpaste:latest +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>اگه نیاز دارین تا فایل ها برای تایم بالاتری نگه‌داری بشه، متغییر +<em>HOURS</em> داخل فایل -<em>.env</em> -رو تغییر بدین.</p> -</blockquote> -<hr> -<p>ایده های دیگه‌ای هم برای سایت دارم، برای مثال اینکه کاربر بتونه زمان انقضای +<em>.env</em> +رو تغییر بدین.</p> +</blockquote> +<hr> +<p>ایده های دیگه‌ای هم برای سایت دارم، برای مثال اینکه کاربر بتونه زمان انقضای هر فایل رو خودش مشخص کنه. -مثلا به این شکل</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -L octocat.ir -F <span class="nv">arya_1</span><span class="o">=</span>/path/to/file -</span></span></code></pre></td></tr></table> -</div> -</div><p>اینطوری میشه یک زمان انقضا بر اساس ساعت برای هر فایل ایجاد کرد.</p> -<p>و خب همچنین میشه یک کوتاه کننده لینک هم بهش اضافه کنم، و لینک های کوتاه شده رو -ریدایرکت کنم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -L octocat.ir -F <span class="nv">url</span><span class="o">=</span><span class="s1">&#39;https://example.com/some/looooong/url/&#39;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>اگه اینها رو اضافه کنم، این پست رو اپدیت می‌کنم ولی خوشحال می‌شم شما -توی این پروژه مشارکت کنید.</p> - - - - - +مثلا به این شکل</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -L octocat.ir -F <span class="nv">arya_1</span><span class="o">=</span>/path/to/file +</span></span></code></pre></td></tr></table> +</div> +</div><p>اینطوری میشه یک زمان انقضا بر اساس ساعت برای هر فایل ایجاد کرد.</p> +<p>و خب همچنین میشه یک کوتاه کننده لینک هم بهش اضافه کنم، و لینک های کوتاه شده رو +ریدایرکت کنم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -L octocat.ir -F <span class="nv">url</span><span class="o">=</span><span class="s1">&#39;https://example.com/some/looooong/url/&#39;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>اگه اینها رو اضافه کنم، این پست رو اپدیت می‌کنم ولی خوشحال می‌شم شما +توی این پروژه مشارکت کنید.</p> \ No newline at end of file diff --git a/docs/tags/curl-paste/page/1/index.html b/docs/tags/curl-paste/page/1/index.html index 8c3fb09..6f21930 100644 --- a/docs/tags/curl-paste/page/1/index.html +++ b/docs/tags/curl-paste/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/curl-paste/ - - - - - - +https://bit-orbit.github.io/tags/curl-paste/ + \ No newline at end of file diff --git a/docs/tags/curlpaste/index.html b/docs/tags/curlpaste/index.html index 42777e9..60a9d8d 100644 --- a/docs/tags/curlpaste/index.html +++ b/docs/tags/curlpaste/index.html @@ -1,559 +1,37 @@ - - - - -Tag: Curlpaste - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

Curlpaste

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: Curlpaste - bit-orbit +

Tags

1 صفحه

Curlpaste

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git a/docs/tags/curlpaste/index.xml b/docs/tags/curlpaste/index.xml index 58f3d5f..90ac784 100644 --- a/docs/tags/curlpaste/index.xml +++ b/docs/tags/curlpaste/index.xml @@ -1,79 +1,65 @@ - - - - Curlpaste on bit-orbit - https://bit-orbit.github.io/tags/curlpaste/ - Recent content in Curlpaste on bit-orbit - Hugo -- gohugo.io - fa - Wed, 06 Mar 2024 23:50:46 +0330 - Crul Paste - https://bit-orbit.github.io/p/crul-paste/ - Wed, 06 Mar 2024 23:50:46 +0330 - - https://bit-orbit.github.io/p/crul-paste/ - <img src="https://bit-orbit.github.io/images/post/curlpaste.jpg" alt="Featured image of post Crul Paste" /><p>اول بیایید ببینم +Curlpaste on bit-orbithttps://bit-orbit.github.io/tags/curlpaste/Recent content in Curlpaste on bit-orbitHugo -- gohugo.iofaWed, 06 Mar 2024 23:50:46 +0330Crul Pastehttps://bit-orbit.github.io/p/crul-paste/Wed, 06 Mar 2024 23:50:46 +0330https://bit-orbit.github.io/p/crul-paste/<img src="https://bit-orbit.github.io/images/post/curlpaste.jpg" alt="Featured image of post Crul Paste" /><p>اول بیایید ببینم FileBin چیه! قبل از اون هم فکر می‌کنم همه بدونیم -<a class="link" href="https://virgool.io/@m_shabane/pastebin-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B1%D8%A7-%D9%87%DA%A9%D8%B1-%D9%87%D8%A7-%D8%B9%D8%A7%D8%B4%D9%82-%D8%A2%D9%86-%D9%87%D8%A7%D8%B3%D8%AA%D9%86%D8%AF-swafqm95gttp" target="_blank" rel="noopener" - >pastebin</a> +<a class="link" href="https://virgool.io/@m_shabane/pastebin-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B1%D8%A7-%D9%87%DA%A9%D8%B1-%D9%87%D8%A7-%D8%B9%D8%A7%D8%B4%D9%82-%D8%A2%D9%86-%D9%87%D8%A7%D8%B3%D8%AA%D9%86%D8%AF-swafqm95gttp" target="_blank" rel="noopener" +>pastebin</a> چیه. اگه نمی‌دونید خیلی ساده باید بگم یک سایتی که فقط روی اون متن به اشتراک می‌ذارن -مثلا ممکنه ارور ها یا حتی سورس یک برنامه باشه!</p> -<p>اما +مثلا ممکنه ارور ها یا حتی سورس یک برنامه باشه!</p> +<p>اما FileBin ها بجای تسکت فایل های شما رو نگهداری می‌کنند و به شما لینکی ارائه می‌کنند که فایل را برای دیگران اشتراک بگذارید، نمونه های زیادی هم وجود داره مثل -<a class="link" href="https://wormhole.app" target="_blank" rel="noopener" - >https://wormhole.app</a></p> -<p>اما خب از اونجایی که من زندگی‌ام رو توی ترمینال می‌گذرونم و ترمینال رو به باز کردن مرورگر برای اشتراک یک فایل ترجیح می‌دم، پس از +<a class="link" href="https://wormhole.app" target="_blank" rel="noopener" +>https://wormhole.app</a></p> +<p>اما خب از اونجایی که من زندگی‌ام رو توی ترمینال می‌گذرونم و ترمینال رو به باز کردن مرورگر برای اشتراک یک فایل ترجیح می‌دم، پس از FileBin هایی استفاده می‌کنم که بتونم تحت ترمینال به سادگی فایلم رو به اشتراک بذارم. برای مثال -<a class="link" href="https://0x0.st" target="_blank" rel="noopener" - >https://0x0.st</a></p> -<p>وقتی این رو سایت رو باز کنید هیچ گزینه‌ای برای انتخاب فایل و آپلود نمی‌بینید! خب پس چطور باید یک فایل را برای سایت آپلود کنید؟ +<a class="link" href="https://0x0.st" target="_blank" rel="noopener" +>https://0x0.st</a></p> +<p>وقتی این رو سایت رو باز کنید هیچ گزینه‌ای برای انتخاب فایل و آپلود نمی‌بینید! خب پس چطور باید یک فایل را برای سایت آپلود کنید؟ کافیه یک ریکوئست HTTP POST خیلی ساده به سایت بزنید که شامل فایتون باشه. این کار رو خیلی ساده می‌شه با curl -انجام داد.</p> -<p>مثلا بیایین اشتراک یک فایل رو ببینیم</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl https://0x0.st -F <span class="nv">file</span><span class="o">=</span>@/path/to/file -</span></span><span class="line"><span class="cl"><span class="c1"># https://0x0.st/zWKo.txt</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>این سایت خیلی خوبه +انجام داد.</p> +<p>مثلا بیایین اشتراک یک فایل رو ببینیم</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl https://0x0.st -F <span class="nv">file</span><span class="o">=</span>@/path/to/file +</span></span><span class="line"><span class="cl"><span class="c1"># https://0x0.st/zWKo.txt</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>این سایت خیلی خوبه اما از زمانی به بعد دیگه این سایت کاری که من نیاز دارم رو کفاف نداد! برای مثال من نیاز دارم فایلم بعد از اولین دانلود از روی سرور حذف بشه و از این مهم تر نیاز داشتم که چندین فایل رو با یک یوزنیم مشخص اپلود کنم که خب شخصی که قرار باشه فایل ها رو دانلود کنه، کافیه از یوزنیم استفاده کنه که راحت تر قابل حفظ کردن و اشتراک گذاشتنه. اینطوری بود که گفتم FileBin -خودم رو بنویسم :)</p> -<hr> -<p><strong>بیایید فیچر ها و روش استفاده ازش رو با هم ببینیم.</strong></p> -<p>فرض کنید شما یک فایل دارید که می‌خواهید با من به اشتراک بگذارید، +خودم رو بنویسم :)</p> +<hr> +<p><strong>بیایید فیچر ها و روش استفاده ازش رو با هم ببینیم.</strong></p> +<p>فرض کنید شما یک فایل دارید که می‌خواهید با من به اشتراک بگذارید، خیلی ساده ترمینال رو باز می‌کنید و با یک دستور فایل رو با یک URL -تقریبا تصادفی منتشر می‌کنید.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">file</span><span class="o">=</span>@/tmp/theFile.fli -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/theFile.fli</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>دقت کنید من از سوییچ +تقریبا تصادفی منتشر می‌کنید.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">file</span><span class="o">=</span>@/tmp/theFile.fli +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/theFile.fli</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>دقت کنید من از سوییچ -L استفاده می‌کنم، دلیل اینکار این هست که خب ممکنه سایت شما رو ریدایرکت کنه. مثلا از @@ -82,206 +68,201 @@ http https. برای همین این سوییچ رو استفاده می‌کنم. با این سوییچ دیگه نیازی نیست https:// -رو هم بنویسیم!</p> -</blockquote> -<p>حالا اگه نیاز دارین که فایلتون بعد از اولین دانلود از روی سرور حذف بشه و دیگه در دسترس نباشه +رو هم بنویسیم!</p> +</blockquote> +<p>حالا اگه نیاز دارین که فایلتون بعد از اولین دانلود از روی سرور حذف بشه و دیگه در دسترس نباشه کافیه از کلمه -<code>once</code> +<code>once</code> بجای -<code>file</code> -استفاده کنید.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@/tmp/theFile.fli -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/theFile_GKug7xb.fli</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>تا اینجای کار همه +<code>file</code> +استفاده کنید.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@/tmp/theFile.fli +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/theFile_GKug7xb.fli</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>تا اینجای کار همه URL های هر فایلی به صورت تصادفی هست و من نیاز دارم که چندین فایل رو زیر یک یوزنیم مشخص مثل -<code>arya</code> +<code>arya</code> قرار بدم. اینطوری وقتی قراره یک فایل رو برای همکارم توی شرکت بفرستم خیلی ساده ازش درخواست می‌کنم در سایت به ادرس -<code>/arya</code> +<code>/arya</code> بره. حالا چطوری اینکارو بکنیم خیلی ساده بجای -<code>once</code> +<code>once</code> یا -<code>file</code>, +<code>file</code>, همون -<code>username</code> -رو می‌نویسیم(توی مثال من از نام <strong><em>arya</em></strong> استفاده می‌کنیم)</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">arya</span><span class="o">=</span>@/tmp/pic.jpg -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/arya</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>تا اینجای کار مثلا شما چند بار چند فایل مختلف رو زیر یک یوزنیم قرار دادین -حالا چطور میشه همه اونها رو باهم دانلود کرد؟</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir/arya <span class="p">|</span> wget -i - -</span></span></code></pre></td></tr></table> -</div> -</div><p>حالا به این فکر کنید که یکنفر میاد و با یوزنیم های معقول ریکوئست میزنه به سایت و +<code>username</code> +رو می‌نویسیم(توی مثال من از نام <strong><em>arya</em></strong> استفاده می‌کنیم)</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">arya</span><span class="o">=</span>@/tmp/pic.jpg +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/arya</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>تا اینجای کار مثلا شما چند بار چند فایل مختلف رو زیر یک یوزنیم قرار دادین +حالا چطور میشه همه اونها رو باهم دانلود کرد؟</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir/arya <span class="p">|</span> wget -i - +</span></span></code></pre></td></tr></table> +</div> +</div><p>حالا به این فکر کنید که یکنفر میاد و با یوزنیم های معقول ریکوئست میزنه به سایت و فایل های بقیه رو دانلود می‌کنه، اینجاست که پسورد به کار میاد. برای گذاشتن پسورد روی هر فایل کافیه توی خود URL سایت پسورد رو بعنوان http parametr -بنویسد.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L <span class="s1">&#39;octocat.ir/?password=12345678&#39;</span> -F <span class="nv">once</span><span class="o">=</span>@/Desktop/TopSecret.fli -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/file/TopSecret/?password=12345678</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>اینجا دقت کنید که باید از کوتیشن استفاده کنیم چون علامت مساوی و علامت سوال رو bash وایلد کارد می‌بینه.</p> -</blockquote> -<p>برای دانلود هر فایلی هم که پسورد داره کافیه دقیقا مثل مثال قبلی عمل کنید و پسورد رو توی +بنویسد.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L <span class="s1">&#39;octocat.ir/?password=12345678&#39;</span> -F <span class="nv">once</span><span class="o">=</span>@/Desktop/TopSecret.fli +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/file/TopSecret/?password=12345678</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>اینجا دقت کنید که باید از کوتیشن استفاده کنیم چون علامت مساوی و علامت سوال رو bash وایلد کارد می‌بینه.</p> +</blockquote> +<p>برای دانلود هر فایلی هم که پسورد داره کافیه دقیقا مثل مثال قبلی عمل کنید و پسورد رو توی http parametr -وارد کنید</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ wget <span class="s1">&#39;octocat.ir/file/TopSecret/?password=12345678&#39;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>براتون سواله که چرا پسورد روی توی +وارد کنید</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ wget <span class="s1">&#39;octocat.ir/file/TopSecret/?password=12345678&#39;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>براتون سواله که چرا پسورد روی توی URL گذاشتم؟ می‌شد که مثلا توی http header پسورد بگیریم و بدیم، پس چرا توی -URL?</p> -<p>اینکار برای این هست که دسترسی به فایل ساده باشه. مثلا من وقتی می‌خام فایلی رو برای همکارم بفرستم +URL?</p> +<p>اینکار برای این هست که دسترسی به فایل ساده باشه. مثلا من وقتی می‌خام فایلی رو برای همکارم بفرستم و خب فرض کنم همکار من از header ها چیزی نمی‌دونه، و فقط با یک کلیک باید بتونه به فایل دسترسی پیدا کنه، اینجاست که من فقط یک URL -به اون می‌گم :)</p> -<hr> -<p>بعضی از ابزار ها +به اون می‌گم :)</p> +<hr> +<p>بعضی از ابزار ها hackable هستند! این به معنی ضعف امنیتی نیست، بلکه به این اشاره می‌کنه ابزار به روشی طراحی -شده که کاربران می‌تونند خارج از هدف اصلی اون ابزار از اون استفاه کنند.</p> -<p>برای مثال ابزار که من درست کردم برای اشتراک فایل هست، اما بنظرتون میشه یک دایرکتوری و یا یک متن رو هم باهاش به اشتراک گذاشت؟</p> -<p>قطعا! اما چطوری؟</p> -<p>برای اینکه یک دایرکتوری با تمامی ساب دایرکتوری هاش رو بفرستین +شده که کاربران می‌تونند خارج از هدف اصلی اون ابزار از اون استفاه کنند.</p> +<p>برای مثال ابزار که من درست کردم برای اشتراک فایل هست، اما بنظرتون میشه یک دایرکتوری و یا یک متن رو هم باهاش به اشتراک گذاشت؟</p> +<p>قطعا! اما چطوری؟</p> +<p>برای اینکه یک دایرکتوری با تمامی ساب دایرکتوری هاش رو بفرستین کافیه از -<code>tar</code> -استفاده کنید.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ tar -cf - ~/Pictures <span class="p">|</span> curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@- -</span></span><span class="line"><span class="cl"><span class="c1"># &#39;octocat.ir/file/_nUiuRPW/</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>با اینکار با استفاده از +<code>tar</code> +استفاده کنید.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ tar -cf - ~/Pictures <span class="p">|</span> curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@- +</span></span><span class="line"><span class="cl"><span class="c1"># &#39;octocat.ir/file/_nUiuRPW/</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>با اینکار با استفاده از tar تمامی فایل ها و دایرکتوری های مثلا پوشه -<em>~/Pictures</em> +<em>~/Pictures</em> رو به آرشیو -<code>tar</code> +<code>tar</code> تبدیل می‌کنید و بعد خروجی رو بعنوان ورودی به -<code>curl</code> -می‌فرستین.</p> -<p>حالا به این فکر کنید که بخواهیم یک متن رو منتشر کنیم، راهکار دقیقا مشابه قبلیه. +<code>curl</code> +می‌فرستین.</p> +<p>حالا به این فکر کنید که بخواهیم یک متن رو منتشر کنیم، راهکار دقیقا مشابه قبلیه. به این شکل که یک متن رو با استفاده از -<code>echo</code> +<code>echo</code> به ورودی استاندارد -<code>curl</code> -می‌فرستیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ <span class="nb">echo</span> <span class="s1">&#39;Some Random Text&#39;</span> <span class="p">|</span> curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@- -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/file/-_W00DSbS/</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>اینطوری خیلی راحت می‌شه خروجی هر کامندی رو روی به اشتراک گذاشت</p> -</blockquote> -<hr> -<p>سایت من توی آدرس +<code>curl</code> +می‌فرستیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ <span class="nb">echo</span> <span class="s1">&#39;Some Random Text&#39;</span> <span class="p">|</span> curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@- +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/file/-_W00DSbS/</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>اینطوری خیلی راحت می‌شه خروجی هر کامندی رو روی به اشتراک گذاشت</p> +</blockquote> +<hr> +<p>سایت من توی آدرس octocat.ir -در دسترسه، خوشحال می‌شم ازش استفاده کنید :)</p> -<blockquote> -<p>اینو بدونید که سایت به صورت دیفالت فایل ها رو برای 24 ساعت نگه‌میداره</p> -</blockquote> -<p>این سرویس رو منبع باز روی -<a class="link" href="https://github.com/shabane/CurlPaste/" target="_blank" rel="noopener" - >گیتهاب</a> -گذاشتم، اگه چیزی خواستید می‌تونید بهش اضافه کنید و یا مشکلاتش رو پچ کنید.</p> -<p>و اگه می‌خواهید برای خودتون این سرویس رو بیارید بالا از ایمیج داکر استفاده کنید</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">docker run -p 80:80 mshabane/curlpaste:latest -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>اگه نیاز دارین تا فایل ها برای تایم بالاتری نگه‌داری بشه، متغییر -<em>HOURS</em> +در دسترسه، خوشحال می‌شم ازش استفاده کنید :)</p> +<blockquote> +<p>اینو بدونید که سایت به صورت دیفالت فایل ها رو برای 24 ساعت نگه‌میداره</p> +</blockquote> +<p>این سرویس رو منبع باز روی +<a class="link" href="https://github.com/shabane/CurlPaste/" target="_blank" rel="noopener" +>گیتهاب</a> +گذاشتم، اگه چیزی خواستید می‌تونید بهش اضافه کنید و یا مشکلاتش رو پچ کنید.</p> +<p>و اگه می‌خواهید برای خودتون این سرویس رو بیارید بالا از ایمیج داکر استفاده کنید</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">docker run -p 80:80 mshabane/curlpaste:latest +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>اگه نیاز دارین تا فایل ها برای تایم بالاتری نگه‌داری بشه، متغییر +<em>HOURS</em> داخل فایل -<em>.env</em> -رو تغییر بدین.</p> -</blockquote> -<hr> -<p>ایده های دیگه‌ای هم برای سایت دارم، برای مثال اینکه کاربر بتونه زمان انقضای +<em>.env</em> +رو تغییر بدین.</p> +</blockquote> +<hr> +<p>ایده های دیگه‌ای هم برای سایت دارم، برای مثال اینکه کاربر بتونه زمان انقضای هر فایل رو خودش مشخص کنه. -مثلا به این شکل</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -L octocat.ir -F <span class="nv">arya_1</span><span class="o">=</span>/path/to/file -</span></span></code></pre></td></tr></table> -</div> -</div><p>اینطوری میشه یک زمان انقضا بر اساس ساعت برای هر فایل ایجاد کرد.</p> -<p>و خب همچنین میشه یک کوتاه کننده لینک هم بهش اضافه کنم، و لینک های کوتاه شده رو -ریدایرکت کنم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -L octocat.ir -F <span class="nv">url</span><span class="o">=</span><span class="s1">&#39;https://example.com/some/looooong/url/&#39;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>اگه اینها رو اضافه کنم، این پست رو اپدیت می‌کنم ولی خوشحال می‌شم شما -توی این پروژه مشارکت کنید.</p> - - - - - +مثلا به این شکل</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -L octocat.ir -F <span class="nv">arya_1</span><span class="o">=</span>/path/to/file +</span></span></code></pre></td></tr></table> +</div> +</div><p>اینطوری میشه یک زمان انقضا بر اساس ساعت برای هر فایل ایجاد کرد.</p> +<p>و خب همچنین میشه یک کوتاه کننده لینک هم بهش اضافه کنم، و لینک های کوتاه شده رو +ریدایرکت کنم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -L octocat.ir -F <span class="nv">url</span><span class="o">=</span><span class="s1">&#39;https://example.com/some/looooong/url/&#39;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>اگه اینها رو اضافه کنم، این پست رو اپدیت می‌کنم ولی خوشحال می‌شم شما +توی این پروژه مشارکت کنید.</p> \ No newline at end of file diff --git a/docs/tags/curlpaste/page/1/index.html b/docs/tags/curlpaste/page/1/index.html index 029805d..1060910 100644 --- a/docs/tags/curlpaste/page/1/index.html +++ b/docs/tags/curlpaste/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/curlpaste/ - - - - - - +https://bit-orbit.github.io/tags/curlpaste/ + \ No newline at end of file diff --git a/docs/tags/decenterlize/index.html b/docs/tags/decenterlize/index.html index 2df4e7e..d7df2fd 100644 --- a/docs/tags/decenterlize/index.html +++ b/docs/tags/decenterlize/index.html @@ -1,559 +1,37 @@ - - - - -Tag: Decenterlize - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

Decenterlize

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: Decenterlize - bit-orbit + \ No newline at end of file diff --git a/docs/tags/decenterlize/index.xml b/docs/tags/decenterlize/index.xml index 1df03a7..ac1dc6b 100644 --- a/docs/tags/decenterlize/index.xml +++ b/docs/tags/decenterlize/index.xml @@ -1,18 +1,4 @@ - - - - Decenterlize on bit-orbit - https://bit-orbit.github.io/tags/decenterlize/ - Recent content in Decenterlize on bit-orbit - Hugo -- gohugo.io - fa - Sat, 01 Oct 2022 01:46:23 +0330 - ارتباط غیر متمرکز و در لحظه با پروتکل ماتریکس - https://bit-orbit.github.io/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/ - Sat, 01 Oct 2022 01:46:23 +0330 - - https://bit-orbit.github.io/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/ - <img src="https://bit-orbit.github.io/images/post/matrix.jpg" alt="Featured image of post ارتباط غیر متمرکز و در لحظه با پروتکل ماتریکس" /><p>ماتریکس یک پروتکل آزاد است! به این معنی که شما میتوانید از این پروتکل برای +Decenterlize on bit-orbithttps://bit-orbit.github.io/tags/decenterlize/Recent content in Decenterlize on bit-orbitHugo -- gohugo.iofaSat, 01 Oct 2022 01:46:23 +0330ارتباط غیر متمرکز و در لحظه با پروتکل ماتریکسhttps://bit-orbit.github.io/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/Sat, 01 Oct 2022 01:46:23 +0330https://bit-orbit.github.io/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/<img src="https://bit-orbit.github.io/images/post/matrix.jpg" alt="Featured image of post ارتباط غیر متمرکز و در لحظه با پروتکل ماتریکس" /><p>ماتریکس یک پروتکل آزاد است! به این معنی که شما میتوانید از این پروتکل برای ارتباطات تحت شبکه مانند پیامرسان، اینترنت چیز ها (IoT) و هر چیز دیگری @@ -20,76 +6,58 @@ های این پروتکل، رمزنگاری سر تا سر (E2E) است، این ویژگی باعث میشود حتی سرور های ماتریکس که داده های ما را -منتقل میکنند هم توانایی دسترسی به داده ها را نداشته باشند.</p> -<h3 id="پیام-رسان-ماتریکس">پیام رسان ماتریکس</h3> -<p>یکی از اصلی ترین استفاده های ماتریکس، پیامرسان است. +منتقل میکنند هم توانایی دسترسی به داده ها را نداشته باشند.</p> +<h3 id="پیام-رسان-ماتریکس">پیام رسان ماتریکس +</h3><p>یکی از اصلی ترین استفاده های ماتریکس، پیامرسان است. این پیامرسان به صورت غیر متمرکز عمل میکند. با این روش سانسور/فیلتر شدن سرور هایی که پیام ها را ذخیره و منتقل میکنند غیر ممکن میشود! چرا که این سرور ها قابل تغییر هستند و هر زمان که یکی از این سرور ها سانسور شود، شما همچنان میتوانید با سرور دیگری مجدد اکانت بسازید و در ارتباط بمانید. -و یا حتی از سرور خودتان استفاده کنید!</p> -<h3 id="ماتریکس-چگونه-کار-میکند">ماتریکس چگونه کار میکند؟</h3> -<p>هر سرور در ماتریکس -<em>HomeServer</em> +و یا حتی از سرور خودتان استفاده کنید!</p> +<h3 id="ماتریکس-چگونه-کار-میکند">ماتریکس چگونه کار میکند؟ +</h3><p>هر سرور در ماتریکس +<em>HomeServer</em> نامیده میشود، شما به عنوان -<em>Client</em> +<em>Client</em> انتخاب میکنید از هر HomeServer -که میخواهید استفاده کنید.</p> -<p>HomeServer +که میخواهید استفاده کنید.</p> +<p>HomeServer ها میتوانند سرور های عمومی مثل سروری که خود -<a class="link" href="matrix.org" ><strong>ماتریکس</strong></a> +<a class="link" href="matrix.org" ><strong>ماتریکس</strong></a> راه اندازی کرده است باشد و یا میتواند سرور های -<strong>شخصی خودتان</strong> -باشد.</p> -<p><a class="link" href="https://bit-orbit.github.io/images/post/page2-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page2-768x768.png" - - - - loading="lazy" - - alt="matrix-homeserver" - - -></a></p> -<p>زمانی که شما از یک +<strong>شخصی خودتان</strong> +باشد.</p> +<p><a class="link" href="https://bit-orbit.github.io/images/post/page2-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page2-768x768.png" +loading="lazy" +alt="matrix-homeserver" +></a></p> +<p>زمانی که شما از یک HomeServer استفاده میکنید، این به آن معنی است که کلاینت شما به اکانتتان در آن HomeServer -متصل میشود.</p> -<p><a class="link" href="https://bit-orbit.github.io/images/post/page3-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page3-768x768.png" - - - - loading="lazy" - - alt="matrix-homeserver" - - -></a></p> -<p>زمانی که شما پیامی ارسال میکنید، پیامتان به +متصل میشود.</p> +<p><a class="link" href="https://bit-orbit.github.io/images/post/page3-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page3-768x768.png" +loading="lazy" +alt="matrix-homeserver" +></a></p> +<p>زمانی که شما پیامی ارسال میکنید، پیامتان به HomeServer شما ارسال میشود، HomeServer -بعد از دریافت پیام از شما، آن را به کاربران مشترک در آن روم ارسال میکند.</p> -<blockquote> -<p>در ماتریکس هر نوع چت(شخصی و یا گروه) را +بعد از دریافت پیام از شما، آن را به کاربران مشترک در آن روم ارسال میکند.</p> +<blockquote> +<p>در ماتریکس هر نوع چت(شخصی و یا گروه) را room -مینامند</p> -</blockquote> -<p><a class="link" href="https://bit-orbit.github.io/images/post/page4-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page4-768x768.png" - - - - loading="lazy" - - alt="matrix-homeserver" - - -></a></p> -<p>در واقع زمانی که شما پیامی ارسال میکنید +مینامند</p> +</blockquote> +<p><a class="link" href="https://bit-orbit.github.io/images/post/page4-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page4-768x768.png" +loading="lazy" +alt="matrix-homeserver" +></a></p> +<p>در واقع زمانی که شما پیامی ارسال میکنید HomeServer پیام را برای کاربران ارسال میکند. این کاربران ممکن است کاربران همان HomeServer @@ -103,47 +71,41 @@ Homeserver HomerServer های دیگر ارسال خواهد کرد. و آن HomeServer -پیام را دریافت و به کاربران مربوطه ارسال خواهد کرد.</p> -<p><a class="link" href="https://bit-orbit.github.io/images/post/page6-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page6-768x768.png" - - - - loading="lazy" - - alt="matrix-homeserver" - - -></a></p> -<blockquote> -<p>زمانی که شما پیامی را برای کاربر +پیام را دریافت و به کاربران مربوطه ارسال خواهد کرد.</p> +<p><a class="link" href="https://bit-orbit.github.io/images/post/page6-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page6-768x768.png" +loading="lazy" +alt="matrix-homeserver" +></a></p> +<blockquote> +<p>زمانی که شما پیامی را برای کاربر HomeServer دیگری ارسال میکنید، پیام شما تنها در HomeServer خودتان ذخیره نخواهد شد. بلکه در HomeServer -کاربری/کاربرانی که پیام را به آن ارسال کرده اید هم ذخیره میشود.</p> -</blockquote> -<h3 id="اصطلاحات-در-ماتریکس">اصطلاحات در ماتریکس</h3> -<p>در ماتریکس چند اصطلاح وجود دارد که آشنایی با آنها به درک بهتر این پروتکل کمک میکند.</p> -<ul> -<li> -<p>HomeServer: +کاربری/کاربرانی که پیام را به آن ارسال کرده اید هم ذخیره میشود.</p> +</blockquote> +<h3 id="اصطلاحات-در-ماتریکس">اصطلاحات در ماتریکس +</h3><p>در ماتریکس چند اصطلاح وجود دارد که آشنایی با آنها به درک بهتر این پروتکل کمک میکند.</p> +<ul> +<li> +<p>HomeServer: سروری که شما در آن اکانت خود را میسازید. این سرور پیام های شما را ذخیره -و ارسال میکند.</p> -</li> -<li> -<p>Client: +و ارسال میکند.</p> +</li> +<li> +<p>Client: برای اینکه کاربران بتوانند از ماتریکس استفاده کنند، باید از ابزاری که از این -پروتکل بهره میبرد استفاده کنند. به اینگونه از ابزار ها کلاینت گفته میشود.</p> -</li> -<li> -<p>Event: +پروتکل بهره میبرد استفاده کنند. به اینگونه از ابزار ها کلاینت گفته میشود.</p> +</li> +<li> +<p>Event: هر نوع داده ای که توسط ماتریکس ارسال شود -<em>event</em> -نامیده میشود. برای مثال ممکن است شما پیام ارسال کنید و یا به یک پیام واکنش نشان دهید.</p> -</li> -<li> -<p>Room: +<em>event</em> +نامیده میشود. برای مثال ممکن است شما پیام ارسال کنید و یا به یک پیام واکنش نشان دهید.</p> +</li> +<li> +<p>Room: قسمتی است که کاربر با آن event ها را دریافت و ارسال میکند. @@ -154,10 +116,10 @@ room room میتوانند event -ها را دریافت کنند.</p> -</li> -<li> -<p>Space: +ها را دریافت کنند.</p> +</li> +<li> +<p>Space: Space نوعی خاصی از room @@ -165,66 +127,61 @@ room room ها است. space -میتواند هم شامل گروه و هم کاربران عادی شود.</p> -</li> -<li> -<p>Bridge: +میتواند هم شامل گروه و هم کاربران عادی شود.</p> +</li> +<li> +<p>Bridge: پل یا Bridge به راهکاری گفته میشود که شما میتوانید با استفاده از آن بین ماتریکس و پیامرسان های دیگر چت کنید. برای مثال شما با استفاده از Brdige تلگرام -میتوانید با ماتریکس به کاربران تلگرام پیام ارسال و دریافت کنید.</p> -</li> -</ul> -<h3 id="چگونه-از-ماتریکس-استفاده-کنیم">چگونه از ماتریکس استفاده کنیم؟</h3> -<p>برای استفاده از ماتریکس، شما کافیست یکی از کلاینت های آن را نصب و به یک +میتوانید با ماتریکس به کاربران تلگرام پیام ارسال و دریافت کنید.</p> +</li> +</ul> +<h3 id="چگونه-از-ماتریکس-استفاده-کنیم">چگونه از ماتریکس استفاده کنیم؟ +</h3><p>برای استفاده از ماتریکس، شما کافیست یکی از کلاینت های آن را نصب و به یک HomeServer -متصل شوید.</p> -<p>یکی از محبوب ترین کلاینت ها، کلاینت -<a class="link" href="https://element.io/" target="_blank" rel="noopener" - >Element</a> +متصل شوید.</p> +<p>یکی از محبوب ترین کلاینت ها، کلاینت +<a class="link" href="https://element.io/" target="_blank" rel="noopener" +>Element</a> است، که شامل نسخه -<a class="link" href="https://play.google.com/store/apps/details?id=im.vector.app" target="_blank" rel="noopener" - >Android</a>، -<a class="link" href="https://apps.apple.com/app/vector/id1083446067" target="_blank" rel="noopener" - >IOS</a>، -<a class="link" href="https://element.io/get-started#downloads" target="_blank" rel="noopener" - >Windows, Linux، Mac</a> +<a class="link" href="https://play.google.com/store/apps/details?id=im.vector.app" target="_blank" rel="noopener" +>Android</a>، +<a class="link" href="https://apps.apple.com/app/vector/id1083446067" target="_blank" rel="noopener" +>IOS</a>، +<a class="link" href="https://element.io/get-started#downloads" target="_blank" rel="noopener" +>Windows, Linux، Mac</a> و البته -<a class="link" href="https://app.element.io/" target="_blank" rel="noopener" - >نسخه تحت وب میشود</a>.</p> -<p>استفاده از المنت مانند هر پیامرسان دیگری ساده است، اما اگر نیاز به کمک دارید -<a class="link" href="https://static.element.io/pdfs/element-user-guide.pdf" target="_blank" rel="noopener" - >این لینک</a> -میتواند کمکتان کند.</p> -<h3 id="چطور-از-سرور-شخصی-خودمان-استفاده-کنیم">چطور از سرور شخصی خودمان استفاده کنیم؟</h3> -<p>شما مجبور نیستید سرویس ماتریکس را روی سرور شخصی خودتان اجرا کنید مگر اینکه:</p> -<ul> -<li>سرور های عمومی ماتریکس سانسور و از دسترس خارج شده باشند</li> -<li>و یا شاید نگران دیتایی هستید که روی سرور های -عمومی ماتریکس از طرف شما ذخیره میشود!(گرچه پیام ها تماما رمزنگاری سر تا سر میشود)</li> -<li>و یا حتی شاید میخواهید پیام رسان داخلی شرکت/خانه خودتان را داشته باشید</li> -<li>و یا البته ممکن است بخواهید +<a class="link" href="https://app.element.io/" target="_blank" rel="noopener" +>نسخه تحت وب میشود</a>.</p> +<p>استفاده از المنت مانند هر پیامرسان دیگری ساده است، اما اگر نیاز به کمک دارید +<a class="link" href="https://static.element.io/pdfs/element-user-guide.pdf" target="_blank" rel="noopener" +>این لینک</a> +میتواند کمکتان کند.</p> +<h3 id="چطور-از-سرور-شخصی-خودمان-استفاده-کنیم">چطور از سرور شخصی خودمان استفاده کنیم؟ +</h3><p>شما مجبور نیستید سرویس ماتریکس را روی سرور شخصی خودتان اجرا کنید مگر اینکه:</p> +<ul> +<li>سرور های عمومی ماتریکس سانسور و از دسترس خارج شده باشند</li> +<li>و یا شاید نگران دیتایی هستید که روی سرور های +عمومی ماتریکس از طرف شما ذخیره میشود!(گرچه پیام ها تماما رمزنگاری سر تا سر میشود)</li> +<li>و یا حتی شاید میخواهید پیام رسان داخلی شرکت/خانه خودتان را داشته باشید</li> +<li>و یا البته ممکن است بخواهید Bridge -بسازید.</li> -</ul> -<p>نسخه سرور ماتریکس -<a class="link" href="https://github.com/matrix-org/synapse" target="_blank" rel="noopener" - ><em>Synapse</em></a> +بسازید.</li> +</ul> +<p>نسخه سرور ماتریکس +<a class="link" href="https://github.com/matrix-org/synapse" target="_blank" rel="noopener" +><em>Synapse</em></a> نام دارد، شما میتوانید با استفاده از -<a class="link" href="https://hub.docker.com/r/matrixdotorg/synapse/" target="_blank" rel="noopener" - >ایمیج داکر رسمی ماتریکس</a>، -سرور شخصی خودتان را اجرا کنید.</p> -<h3 id="نتیجه-گیری">نتیجه گیری</h3> -<p>هدف من از نوشتن این پست در این روز های تلخ این بود که ابزاری را معرفی کنم +<a class="link" href="https://hub.docker.com/r/matrixdotorg/synapse/" target="_blank" rel="noopener" +>ایمیج داکر رسمی ماتریکس</a>، +سرور شخصی خودتان را اجرا کنید.</p> +<h3 id="نتیجه-گیری">نتیجه گیری +</h3><p>هدف من از نوشتن این پست در این روز های تلخ این بود که ابزاری را معرفی کنم تا ما با وجود قطعی های متعدد اینترنت و قطع دسترسی ما از سرور های خارجی، کماکان -در ارتباط نگهدارد و صدایمان را&hellip;</p> -<p>اگر روزی دسترسی ما از اینترنت قطع شد، کاری که لازم است برای در ارتباط ماندن انجام بدهیم -این است که یک سرویس ماتریکس داخلی راه اندازی کنیم.</p> -<hr> - - - - - +در ارتباط نگهدارد و صدایمان را&hellip;</p> +<p>اگر روزی دسترسی ما از اینترنت قطع شد، کاری که لازم است برای در ارتباط ماندن انجام بدهیم +این است که یک سرویس ماتریکس داخلی راه اندازی کنیم.</p> +<hr> \ No newline at end of file diff --git a/docs/tags/decenterlize/page/1/index.html b/docs/tags/decenterlize/page/1/index.html index af884cd..00d8143 100644 --- a/docs/tags/decenterlize/page/1/index.html +++ b/docs/tags/decenterlize/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/decenterlize/ - - - - - - +https://bit-orbit.github.io/tags/decenterlize/ + \ No newline at end of file diff --git "a/docs/tags/dns-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263/index.html" "b/docs/tags/dns-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263/index.html" index 89e09a1..b026250 100644 --- "a/docs/tags/dns-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263/index.html" +++ "b/docs/tags/dns-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263/index.html" @@ -1,559 +1,37 @@ - - - - -Tag: DNS در لینوکس - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

DNS در لینوکس

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: DNS در لینوکس - bit-orbit +

Tags

1 صفحه

DNS در لینوکس

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git "a/docs/tags/dns-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263/index.xml" "b/docs/tags/dns-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263/index.xml" index c7d5d47..4487ff8 100644 --- "a/docs/tags/dns-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263/index.xml" +++ "b/docs/tags/dns-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263/index.xml" @@ -1,32 +1,18 @@ - - - - DNS در لینوکس on bit-orbit - https://bit-orbit.github.io/tags/dns-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3/ - Recent content in DNS در لینوکس on bit-orbit - Hugo -- gohugo.io - fa - Thu, 01 Aug 2024 03:03:46 +0330 - etc/resolve.conf/ - https://bit-orbit.github.io/p/etc/resolve.conf/ - Thu, 01 Aug 2024 03:03:46 +0330 - - https://bit-orbit.github.io/p/etc/resolve.conf/ - <img src="https://bit-orbit.github.io/images/post/OIG4.jpeg" alt="Featured image of post etc/resolve.conf/" /><span style='font-size: 25px'> -<h3 id="مقدمه">مقدمه</h3> -<p>همیشه موقع ویرایش فایل -<em>resolve.conf</em> +DNS در لینوکس on bit-orbithttps://bit-orbit.github.io/tags/dns-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3/Recent content in DNS در لینوکس on bit-orbitHugo -- gohugo.iofaThu, 01 Aug 2024 03:03:46 +0330etc/resolve.conf/https://bit-orbit.github.io/p/etc/resolve.conf/Thu, 01 Aug 2024 03:03:46 +0330https://bit-orbit.github.io/p/etc/resolve.conf/<img src="https://bit-orbit.github.io/images/post/OIG4.jpeg" alt="Featured image of post etc/resolve.conf/" /><span style='font-size: 25px'> +<h3 id="مقدمه">مقدمه +</h3><p>همیشه موقع ویرایش فایل +<em>resolve.conf</em> برام سوال بود که گزین های دیگه‌ای که توی این فایل تنظیم شده‌اند چکاری انجام می‌دهند. درواقع من همیشه دستور -<code>namveserver</code> +<code>namveserver</code> را برای تغییر سرور -<em>dns</em> +<em>dns</em> ویرایش می‌کردم. اما دستور هایی دیگه‌ای هم برای این فایل وجود دارد که لیست آنها در -<code>man resolve.conf</code> -توضیح داده شده است.</p> -<p>توی این پست من بعضی از دستورات این فایل را توضیح می‌دم.</p> -<blockquote> -<p>در مرحله اول یادتون باشه لینوکس هایی که +<code>man resolve.conf</code> +توضیح داده شده است.</p> +<p>توی این پست من بعضی از دستورات این فایل را توضیح می‌دم.</p> +<blockquote> +<p>در مرحله اول یادتون باشه لینوکس هایی که systemd دارند، معمولا از سرویس systemd-resolved @@ -36,48 +22,48 @@ DNS resolve می‌کند و سپس آنها را کش می‌کند که یک دامنه را چندین بار resolve -نکند.</p> -</blockquote> -<blockquote> -<p>یک دامنه حد اقل از <em>دو</em> بخش تشکیل می‌شود.</p> -<ol> -<li>TLD</li> -<li>Domain</li> -</ol> -</blockquote> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span><span class="lnt">3 -</span><span class="lnt">4 -</span><span class="lnt">5 -</span><span class="lnt">6 -</span><span class="lnt">7 -</span><span class="lnt">8 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">bin.example.com -</span></span><span class="line"><span class="cl">│ │ │ -</span></span><span class="line"><span class="cl">│ │ └─► TDL(Top Level Domain) -</span></span><span class="line"><span class="cl">│ │ -</span></span><span class="line"><span class="cl">│ └───────► Domain -</span></span><span class="line"><span class="cl">│ -</span></span><span class="line"><span class="cl">└─────────────► SubDomain -</span></span><span class="line"><span class="cl"> -</span></span></code></pre></td></tr></table> -</div> -</div><hr> -<h3 id="دستورات">دستورات</h3> -<ul> -<li> -<p>1 <code>nameserver</code></p> -<p>این دستور برای تعیین +نکند.</p> +</blockquote> +<blockquote> +<p>یک دامنه حد اقل از <em>دو</em> بخش تشکیل می‌شود.</p> +<ol> +<li>TLD</li> +<li>Domain</li> +</ol> +</blockquote> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span><span class="lnt">8 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">bin.example.com +</span></span><span class="line"><span class="cl">│ │ │ +</span></span><span class="line"><span class="cl">│ │ └─► TDL(Top Level Domain) +</span></span><span class="line"><span class="cl">│ │ +</span></span><span class="line"><span class="cl">│ └───────► Domain +</span></span><span class="line"><span class="cl">│ +</span></span><span class="line"><span class="cl">└─────────────► SubDomain +</span></span><span class="line"><span class="cl"> +</span></span></code></pre></td></tr></table> +</div> +</div><hr> +<h3 id="دستورات">دستورات +</h3><ul> +<li> +<p>1 <code>nameserver</code></p> +<p>این دستور برای تعیین IP یک سرور DNS -استفاده می‌شود.(در واقع اینجا منظورم یک سرویسی است که به نامه دامنه ها پاسخ دهد که به آن NS می‌گویم.)</p> -<p>شما می‌توانید تا حداقل سه +استفاده می‌شود.(در واقع اینجا منظورم یک سرویسی است که به نامه دامنه ها پاسخ دهد که به آن NS می‌گویم.)</p> +<p>شما می‌توانید تا حداقل سه IP لیست کنید، و resolver @@ -86,68 +72,68 @@ resolver NS جواب گو نباشد، از دیگر NS -های لیست شده استفاده خواهد شد.</p> -<p>اگر به همین ترتیب هر یک از +های لیست شده استفاده خواهد شد.</p> +<p>اگر به همین ترتیب هر یک از NS -ها جوابگو نباشد، کوئری ها از اول شروع می‌شود تا به حداکثر تعداد کوئری تعیین شده برسد.</p> -<p>برای مثال من می‌توانم چند +ها جوابگو نباشد، کوئری ها از اول شروع می‌شود تا به حداکثر تعداد کوئری تعیین شده برسد.</p> +<p>برای مثال من می‌توانم چند NS -مختلف را برای خودم تعیین کنم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">nameserver 1.1.1.1 -</span></span><span class="line"><span class="cl">nameserver 8.8.8.8 -</span></span></code></pre></td></tr></table> -</div> -</div></li> -</ul> -<hr> -<ul> -<li> -<p>2 <code>options</code></p> -<p>برای این دستور متغیر های مختلفی را می‌توان تعیین کرد.</p> -<ul> -<li> -<p>2.1 <code>ndots</code></p> -<ul> -<li> -<p>حداقل هر دامنه‌ای در سطح اینترنت یک نقطه دارد، برای مثال +مختلف را برای خودم تعیین کنم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">nameserver 1.1.1.1 +</span></span><span class="line"><span class="cl">nameserver 8.8.8.8 +</span></span></code></pre></td></tr></table> +</div> +</div></li> +</ul> +<hr> +<ul> +<li> +<p>2 <code>options</code></p> +<p>برای این دستور متغیر های مختلفی را می‌توان تعیین کرد.</p> +<ul> +<li> +<p>2.1 <code>ndots</code></p> +<ul> +<li> +<p>حداقل هر دامنه‌ای در سطح اینترنت یک نقطه دارد، برای مثال google.com یک نقطه دارد. شما می‌توانید با این متغیر تعین کنید که دامنه‌های در سطح اینترنت باید چند نقطه داشته باشند، هر نقطه نشانه ساب دامنه‌ است. -برای مثال به صورت پیشفرض این متغیر <em>1</em> تنظیم شده است. +برای مثال به صورت پیشفرض این متغیر <em>1</em> تنظیم شده است. به این معنی است که هر دامنه‌ای یک نقطه داشت، این دامنه در سطح اینترنت است. ولی اگر شما مقدار این متغیر را 2 تنظیم کنید، دامنه‌ای مثل -<code>google.com</code> +<code>google.com</code> بعنوان دامنه لوکال تشخیص داده خواهد شد و -<code>hostname</code> +<code>hostname</code> شما به اول دامنه اضافه خواهد شد. مثلا اگر -<code>hostname</code> +<code>hostname</code> شما -<code>arya</code> +<code>arya</code> باشد، دامنه به این شکل کوئری زده خواهد شد -<code>google.com.arya</code></p> -<p>در صورتی که شما برای جست و جوی یک دامنه از هیچ -<strong>TLD</strong> +<code>google.com.arya</code></p> +<p>در صورتی که شما برای جست و جوی یک دامنه از هیچ +<strong>TLD</strong> استفاده نکید، از -<code>hostname</code> +<code>hostname</code> و یا از مقداری که برای -<code>search</code> -مشخص کرده‌اید استفاده خواهد شد.</p> -</li> -</ul> -</li> -<li> -<p>2.2 <code>timeout</code></p> -<ul> -<li>این متغیر تعیین می‌کند که +<code>search</code> +مشخص کرده‌اید استفاده خواهد شد.</p> +</li> +</ul> +</li> +<li> +<p>2.2 <code>timeout</code></p> +<ul> +<li>این متغیر تعیین می‌کند که resolver چه مقدار زمانی باید منتظر جواب از سمت NS @@ -155,19 +141,19 @@ NS NS جواب نداد، از NS -های بعدی سوال کند.</li> -</ul> -</li> -<li> -<p>2.3 <code>attempts</code></p> -<ul> -<li>این متغیر تعین می‌کند که +های بعدی سوال کند.</li> +</ul> +</li> +<li> +<p>2.3 <code>attempts</code></p> +<ul> +<li>این متغیر تعین می‌کند که resolver در صورت جواب ندادن توسط NS -باید در نهایت چند کوئری دیگر ارسال کند.</li> -</ul> -<p>برای مثال اگر اولین +باید در نهایت چند کوئری دیگر ارسال کند.</li> +</ul> +<p>برای مثال اگر اولین NS پاسخ نداد، سوال از NS @@ -178,12 +164,12 @@ attempts attempts مجوع سوال ها از همه NS -ها است.)</p> -</li> -<li> -<p>2.4 <code>rotate</code></p> -<ul> -<li>به صورت پیشفرض کوئری های +ها است.)</p> +</li> +<li> +<p>2.4 <code>rotate</code></p> +<ul> +<li>به صورت پیشفرض کوئری های DNS همه برای اولین NS @@ -194,50 +180,50 @@ NS ها تقسیم کنیم، کافیست از این متغیر استفاده کنیم. اینکار باعث می‌شود که هر کوئری ها به صورت چرخشی به ترتیب به NS -های لیست شده ارسال شود.</li> -</ul> -</li> -</ul> -</li> -</ul> -<hr> -<ul> -<li>3 <code>search</code> +های لیست شده ارسال شود.</li> +</ul> +</li> +</ul> +</li> +</ul> +<hr> +<ul> +<li>3 <code>search</code> همانطور که در مثال بالا گفتم، ما نام دامنه ها را تنظیم می‌کنیم که حداقل وقتی یک نقطه دارند، resolver آنها را دامنه‌ در سطح اینترنت در نظر بگیرد و به NS کوئری بزند. ولی اگر هیچ نقطه‌ای نداشت و یا شما -<code>ndots</code> +<code>ndots</code> را بیشتر یا مساوی با 2 نتظیم کرده باشید، -<code>hostname</code> +<code>hostname</code> سیستم شما به آخر آن دامنه اضافه خواهد شد و یک دامنه داخلی (local) تلقی خواهد شد. اما اگر می‌خواهید قبل از اضافه شدن -<code>hostname</code> -به آن چیز دیگری اضافه کنید، کافیست متغیر سرچ را تعریف کنید و یک یا چند مقدار برای آن تعیین کنید.</li> -</ul> -<hr> -<h3 id="سرویس-systemd-resolve">سرویس systemd-resolve</h3> -<p>اگر به فایل +<code>hostname</code> +به آن چیز دیگری اضافه کنید، کافیست متغیر سرچ را تعریف کنید و یک یا چند مقدار برای آن تعیین کنید.</li> +</ul> +<hr> +<h3 id="سرویس-systemd-resolve">سرویس systemd-resolve +</h3><p>اگر به فایل /etc/resolve.conf نگاه کنید، می‌بینید که یک ns برای شما تنظیم شده است که IP -آن داخلی است.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl"># cat /etc/resolve.conf -</span></span><span class="line"><span class="cl">nameserver 127.0.0.53 -</span></span></code></pre></td></tr></table> -</div> -</div><p>همانطور که توی نکته‌ای در مقدمه این پست گفتم، +آن داخلی است.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl"># cat /etc/resolve.conf +</span></span><span class="line"><span class="cl">nameserver 127.0.0.53 +</span></span></code></pre></td></tr></table> +</div> +</div><p>همانطور که توی نکته‌ای در مقدمه این پست گفتم، سیستم عاملی هایی که از systemd استفاده می‌کنند معمولا سرویس @@ -249,80 +235,76 @@ IP 127.0.0.53 و 127.0.0.54 -شنود می‌کند.</p> -<p>این سرویس خودش یک کانفیگ در -<code>etc/ststemd/resolved.conf/</code> -دارد.</p> -<p>اگر داخل این فایل را نگاه کنیم، می‌بنیم که در قسمت +شنود می‌کند.</p> +<p>این سرویس خودش یک کانفیگ در +<code>etc/ststemd/resolved.conf/</code> +دارد.</p> +<p>اگر داخل این فایل را نگاه کنیم، می‌بنیم که در قسمت ‌DNS می‌توان NS های بالاتر را وارد کرد، اینکار باعث می‌شود که سیستم شما وقتی یک دامنه را در حافظه کش خود نداشت، از NS -های بالاتر که در این فایل تنظیم شده است سوال کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">[Resolve] -</span></span><span class="line"><span class="cl">DNS=1.1.1.1 8.8.8.8 -</span></span></code></pre></td></tr></table> -</div> -</div><p>ابته تاکید کنم در صورتی از این +های بالاتر که در این فایل تنظیم شده است سوال کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">[Resolve] +</span></span><span class="line"><span class="cl">DNS=1.1.1.1 8.8.8.8 +</span></span></code></pre></td></tr></table> +</div> +</div><p>ابته تاکید کنم در صورتی از این NS ها استفاده می‌شود که شما ‌از 127.0.0.53 و 127.0.0.54 در کانفیگ /etc/resolve.conf -استفاده کرده باشید.</p> -<blockquote> -<p>تفاوت 127.0.0.54 این است که هر کوئری را مستقیم به +استفاده کرده باشید.</p> +<blockquote> +<p>تفاوت 127.0.0.54 این است که هر کوئری را مستقیم به NS بالاتر ارسال خواهد کرد و از دیتای کش شده استفاده نمی‌کند. -ولی 127.0.0.53 از قابلیت کش استفاده می‌کند.</p> -</blockquote> -<hr> -<h3 id="مثال">مثال</h3> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt">10 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">nameserver 1.1.1.1 -</span></span><span class="line"><span class="cl">nameserver 8.8.8.8 -</span></span><span class="line"><span class="cl">nameserver 9.9.9.9 -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">options ndots:1 -</span></span><span class="line"><span class="cl">options timeout:2 -</span></span><span class="line"><span class="cl">options attempts:3 -</span></span><span class="line"><span class="cl">options rotate -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">search server1 server2 -</span></span></code></pre></td></tr></table> -</div> -</div><hr> -<h3 id="سخنی-با-شما">سخنی با شما</h3> -<p>این را بگم که +ولی 127.0.0.53 از قابلیت کش استفاده می‌کند.</p> +</blockquote> +<hr> +<h3 id="مثال">مثال +</h3><div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">nameserver 1.1.1.1 +</span></span><span class="line"><span class="cl">nameserver 8.8.8.8 +</span></span><span class="line"><span class="cl">nameserver 9.9.9.9 +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">options ndots:1 +</span></span><span class="line"><span class="cl">options timeout:2 +</span></span><span class="line"><span class="cl">options attempts:3 +</span></span><span class="line"><span class="cl">options rotate +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">search server1 server2 +</span></span></code></pre></td></tr></table> +</div> +</div><hr> +<h3 id="سخنی-با-شما">سخنی با شما +</h3><p>این را بگم که DNS به صورت recursive(بازگشتی) عمل می‌کنه، این یعنی وقتی شما یک کوئری ارسال می‌کنید، این کوئری هر بار به یک سرور بالاتر ارسال می‌شود تا در نهایت به جواب برسه. و خب این موضوع خودش در نهایت یک جریان -خیلی جالب داره که امیدوارم یک روز اون رو هم بنویسم :)</p> -</span> - - - - +خیلی جالب داره که امیدوارم یک روز اون رو هم بنویسم :)</p> +</span> \ No newline at end of file diff --git "a/docs/tags/dns-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263/page/1/index.html" "b/docs/tags/dns-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263/page/1/index.html" index 42f5aab..ee6cd6c 100644 --- "a/docs/tags/dns-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263/page/1/index.html" +++ "b/docs/tags/dns-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263/page/1/index.html" @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/dns-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3/ - - - - - - +https://bit-orbit.github.io/tags/dns-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3/ + \ No newline at end of file diff --git a/docs/tags/download-with-wget/index.html b/docs/tags/download-with-wget/index.html index d39cd0e..8e80df0 100644 --- a/docs/tags/download-with-wget/index.html +++ b/docs/tags/download-with-wget/index.html @@ -1,559 +1,37 @@ - - - - -Tag: Download-With-Wget - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

Download-With-Wget

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: Download-With-Wget - bit-orbit +

Tags

1 صفحه

Download-With-Wget

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git a/docs/tags/download-with-wget/index.xml b/docs/tags/download-with-wget/index.xml index 96f5232..d3fa47f 100644 --- a/docs/tags/download-with-wget/index.xml +++ b/docs/tags/download-with-wget/index.xml @@ -1,107 +1,70 @@ - - - - Download-With-Wget on bit-orbit - https://bit-orbit.github.io/tags/download-with-wget/ - Recent content in Download-With-Wget on bit-orbit - Hugo -- gohugo.io - fa - Fri, 07 Jul 2023 02:45:19 +0330 - چرا لینوکس رو دوست دارم؟ - https://bit-orbit.github.io/p/%DA%86%D8%B1%D8%A7-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D8%B1%D9%88-%D8%AF%D9%88%D8%B3%D8%AA-%D8%AF%D8%A7%D8%B1%D9%85/ - Fri, 07 Jul 2023 02:45:19 +0330 - - https://bit-orbit.github.io/p/%DA%86%D8%B1%D8%A7-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D8%B1%D9%88-%D8%AF%D9%88%D8%B3%D8%AA-%D8%AF%D8%A7%D8%B1%D9%85/ - <img src="https://bit-orbit.github.io/images/post/ill.png" alt="Featured image of post چرا لینوکس رو دوست دارم؟" /><p>دوست داشتن لینوکس واقعا دلایل زیادی داره و احتمالا هر کسی به دلیل خاصی لینوکس رو دوست داره. -مثلا یکی ممکنه آزادی‌اش رو دوست داشته باشه یکی دیگه از پکیج منیجر علاقه رو به لینوکس پیدا کرده باشه و &hellip;</p> -<p>من ترمینال قدرتمند لینوکس رو دوست دارم، چیزی که هیچوقت توی ویندوز تجربه نکرده بودم. -یکی زیبایی های ترمینال برای من ترکیب ریزالت برنامه‌های مختلف با یکدیگر و بدست اوردن نتیجه جدیده</p> -<p>مثلا بابام برای چندین پست فرستاد که هر پست شامل چهار یا پنج لینکه که من باید همه‌ش رو دانلود کنم، +Download-With-Wget on bit-orbithttps://bit-orbit.github.io/tags/download-with-wget/Recent content in Download-With-Wget on bit-orbitHugo -- gohugo.iofaFri, 07 Jul 2023 02:45:19 +0330چرا لینوکس رو دوست دارم؟https://bit-orbit.github.io/p/%DA%86%D8%B1%D8%A7-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D8%B1%D9%88-%D8%AF%D9%88%D8%B3%D8%AA-%D8%AF%D8%A7%D8%B1%D9%85/Fri, 07 Jul 2023 02:45:19 +0330https://bit-orbit.github.io/p/%DA%86%D8%B1%D8%A7-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D8%B1%D9%88-%D8%AF%D9%88%D8%B3%D8%AA-%D8%AF%D8%A7%D8%B1%D9%85/<img src="https://bit-orbit.github.io/images/post/ill.png" alt="Featured image of post چرا لینوکس رو دوست دارم؟" /><p>دوست داشتن لینوکس واقعا دلایل زیادی داره و احتمالا هر کسی به دلیل خاصی لینوکس رو دوست داره. +مثلا یکی ممکنه آزادی‌اش رو دوست داشته باشه یکی دیگه از پکیج منیجر علاقه رو به لینوکس پیدا کرده باشه و &hellip;</p> +<p>من ترمینال قدرتمند لینوکس رو دوست دارم، چیزی که هیچوقت توی ویندوز تجربه نکرده بودم. +یکی زیبایی های ترمینال برای من ترکیب ریزالت برنامه‌های مختلف با یکدیگر و بدست اوردن نتیجه جدیده</p> +<p>مثلا بابام برای چندین پست فرستاد که هر پست شامل چهار یا پنج لینکه که من باید همه‌ش رو دانلود کنم، درحالت عادی اگر روی ویندوز بودم خب باید هر لینک رو کپی می‌کردم و بعد وارد دانلود منیجر می‌کردم برای دانلود. -ولی خب ما مجهزیم به قدرت ترمینال لینوکس :)</p> -<p><img src="https://bit-orbit.github.io/images/post/tfiles.jpg" - - - - loading="lazy" - - alt="telegram-post-contain-links" - - -></p> -<p>خب من کاری که می‌کنم اینه که متن پست ها رو کپی می‌کنم و توی یک فایل می‌ریزم -اینطوری هم متن های فارسی پست ها و هم لینک های فایل ها رو دارم</p> -<p><img src="https://bit-orbit.github.io/images/post/ffiles2.jpg" - - - - loading="lazy" - - alt="save-links-to-file" - - -></p> -<p>بعد با دستور +ولی خب ما مجهزیم به قدرت ترمینال لینوکس :)</p> +<p><img src="https://bit-orbit.github.io/images/post/tfiles.jpg" +loading="lazy" +alt="telegram-post-contain-links" +></p> +<p>خب من کاری که می‌کنم اینه که متن پست ها رو کپی می‌کنم و توی یک فایل می‌ریزم +اینطوری هم متن های فارسی پست ها و هم لینک های فایل ها رو دارم</p> +<p><img src="https://bit-orbit.github.io/images/post/ffiles2.jpg" +loading="lazy" +alt="save-links-to-file" +></p> +<p>بعد با دستور grep با یک پترن ساده regex همه لینک ها رو از متن های فارسی جدا می‌کنم و داخل یک فایل دیگه می‌ریزم. این پترن به این شکل هست که می‌گه هر خطی که اولش http -باشه رو پیدا کن.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">cat dl.txt <span class="p">|</span> egrep <span class="s1">&#39;^http&#39;</span> &gt; dl.lst -</span></span></code></pre></td></tr></table> -</div> -</div><p><img src="https://bit-orbit.github.io/images/post/tfiles3.jpg" - - - - loading="lazy" - - alt="save-links-to-file" - - -></p> -<p>و تمام، همه لینک ها رو یکجا آماده دارم، حالا کافیه با یک دستور همه فایل -ها رو دانلود کنم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">wget -c -i dl.lst -</span></span></code></pre></td></tr></table> -</div> -</div><p>خب بعد از دانلود شدن فایل ها، یک مشکلی که دارم این هست که هر پست شامل تمامی درس های یکی از فصل هایی هست +باشه رو پیدا کن.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">cat dl.txt <span class="p">|</span> egrep <span class="s1">&#39;^http&#39;</span> &gt; dl.lst +</span></span></code></pre></td></tr></table> +</div> +</div><p><img src="https://bit-orbit.github.io/images/post/tfiles3.jpg" +loading="lazy" +alt="save-links-to-file" +></p> +<p>و تمام، همه لینک ها رو یکجا آماده دارم، حالا کافیه با یک دستور همه فایل +ها رو دانلود کنم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">wget -c -i dl.lst +</span></span></code></pre></td></tr></table> +</div> +</div><p>خب بعد از دانلود شدن فایل ها، یک مشکلی که دارم این هست که هر پست شامل تمامی درس های یکی از فصل هایی هست که بابام می‌بینه. من باید فایل ها رو براساس فصل هاشون داخل دایرکتوری های مشخص خودش قرار بدم. اینم یک راهکار خیلی ساده داره. اسم فایل ها به این شکل هست که فصل رو داخلش نوشته -<code>Option402-J04-01.mp4</code> -کافیه با یه وایلد کارت هر فصل رو جدا کنم و داخل دایرکتوری خودش بریزم</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span><span class="lnt">3 -</span><span class="lnt">4 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mv Option402-J04* j04 -</span></span><span class="line"><span class="cl">mv Option402-J05* j05 -</span></span><span class="line"><span class="cl">mv Option402-J06* j06 -</span></span><span class="line"><span class="cl">mv Option402-J07* j07 -</span></span></code></pre></td></tr></table> -</div> -</div><p>این یک مثال ساده‌ای بود که می‌تونستم بزنم برای -توضیح اینکه چرا لینوکس برام جذاب تره و کارم رو ساده تر می‌کنه.</p> - - - - - +<code>Option402-J04-01.mp4</code> +کافیه با یه وایلد کارت هر فصل رو جدا کنم و داخل دایرکتوری خودش بریزم</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mv Option402-J04* j04 +</span></span><span class="line"><span class="cl">mv Option402-J05* j05 +</span></span><span class="line"><span class="cl">mv Option402-J06* j06 +</span></span><span class="line"><span class="cl">mv Option402-J07* j07 +</span></span></code></pre></td></tr></table> +</div> +</div><p>این یک مثال ساده‌ای بود که می‌تونستم بزنم برای +توضیح اینکه چرا لینوکس برام جذاب تره و کارم رو ساده تر می‌کنه.</p> \ No newline at end of file diff --git a/docs/tags/download-with-wget/page/1/index.html b/docs/tags/download-with-wget/page/1/index.html index a1a9e6d..83f89be 100644 --- a/docs/tags/download-with-wget/page/1/index.html +++ b/docs/tags/download-with-wget/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/download-with-wget/ - - - - - - +https://bit-orbit.github.io/tags/download-with-wget/ + \ No newline at end of file diff --git a/docs/tags/etc/resolve.conf/index.html b/docs/tags/etc/resolve.conf/index.html index 784ecdd..fc8758a 100644 --- a/docs/tags/etc/resolve.conf/index.html +++ b/docs/tags/etc/resolve.conf/index.html @@ -1,559 +1,37 @@ - - - - -Tag: /Etc/Resolve.conf - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

/Etc/Resolve.conf

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: /Etc/Resolve.conf - bit-orbit +

Tags

1 صفحه

/Etc/Resolve.conf

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git a/docs/tags/etc/resolve.conf/index.xml b/docs/tags/etc/resolve.conf/index.xml index e59c14d..e1fc89b 100644 --- a/docs/tags/etc/resolve.conf/index.xml +++ b/docs/tags/etc/resolve.conf/index.xml @@ -1,32 +1,18 @@ - - - - /Etc/Resolve.conf on bit-orbit - https://bit-orbit.github.io/tags/etc/resolve.conf/ - Recent content in /Etc/Resolve.conf on bit-orbit - Hugo -- gohugo.io - fa - Thu, 01 Aug 2024 03:03:46 +0330 - etc/resolve.conf/ - https://bit-orbit.github.io/p/etc/resolve.conf/ - Thu, 01 Aug 2024 03:03:46 +0330 - - https://bit-orbit.github.io/p/etc/resolve.conf/ - <img src="https://bit-orbit.github.io/images/post/OIG4.jpeg" alt="Featured image of post etc/resolve.conf/" /><span style='font-size: 25px'> -<h3 id="مقدمه">مقدمه</h3> -<p>همیشه موقع ویرایش فایل -<em>resolve.conf</em> +/Etc/Resolve.conf on bit-orbithttps://bit-orbit.github.io/tags/etc/resolve.conf/Recent content in /Etc/Resolve.conf on bit-orbitHugo -- gohugo.iofaThu, 01 Aug 2024 03:03:46 +0330etc/resolve.conf/https://bit-orbit.github.io/p/etc/resolve.conf/Thu, 01 Aug 2024 03:03:46 +0330https://bit-orbit.github.io/p/etc/resolve.conf/<img src="https://bit-orbit.github.io/images/post/OIG4.jpeg" alt="Featured image of post etc/resolve.conf/" /><span style='font-size: 25px'> +<h3 id="مقدمه">مقدمه +</h3><p>همیشه موقع ویرایش فایل +<em>resolve.conf</em> برام سوال بود که گزین های دیگه‌ای که توی این فایل تنظیم شده‌اند چکاری انجام می‌دهند. درواقع من همیشه دستور -<code>namveserver</code> +<code>namveserver</code> را برای تغییر سرور -<em>dns</em> +<em>dns</em> ویرایش می‌کردم. اما دستور هایی دیگه‌ای هم برای این فایل وجود دارد که لیست آنها در -<code>man resolve.conf</code> -توضیح داده شده است.</p> -<p>توی این پست من بعضی از دستورات این فایل را توضیح می‌دم.</p> -<blockquote> -<p>در مرحله اول یادتون باشه لینوکس هایی که +<code>man resolve.conf</code> +توضیح داده شده است.</p> +<p>توی این پست من بعضی از دستورات این فایل را توضیح می‌دم.</p> +<blockquote> +<p>در مرحله اول یادتون باشه لینوکس هایی که systemd دارند، معمولا از سرویس systemd-resolved @@ -36,48 +22,48 @@ DNS resolve می‌کند و سپس آنها را کش می‌کند که یک دامنه را چندین بار resolve -نکند.</p> -</blockquote> -<blockquote> -<p>یک دامنه حد اقل از <em>دو</em> بخش تشکیل می‌شود.</p> -<ol> -<li>TLD</li> -<li>Domain</li> -</ol> -</blockquote> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span><span class="lnt">3 -</span><span class="lnt">4 -</span><span class="lnt">5 -</span><span class="lnt">6 -</span><span class="lnt">7 -</span><span class="lnt">8 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">bin.example.com -</span></span><span class="line"><span class="cl">│ │ │ -</span></span><span class="line"><span class="cl">│ │ └─► TDL(Top Level Domain) -</span></span><span class="line"><span class="cl">│ │ -</span></span><span class="line"><span class="cl">│ └───────► Domain -</span></span><span class="line"><span class="cl">│ -</span></span><span class="line"><span class="cl">└─────────────► SubDomain -</span></span><span class="line"><span class="cl"> -</span></span></code></pre></td></tr></table> -</div> -</div><hr> -<h3 id="دستورات">دستورات</h3> -<ul> -<li> -<p>1 <code>nameserver</code></p> -<p>این دستور برای تعیین +نکند.</p> +</blockquote> +<blockquote> +<p>یک دامنه حد اقل از <em>دو</em> بخش تشکیل می‌شود.</p> +<ol> +<li>TLD</li> +<li>Domain</li> +</ol> +</blockquote> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span><span class="lnt">8 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">bin.example.com +</span></span><span class="line"><span class="cl">│ │ │ +</span></span><span class="line"><span class="cl">│ │ └─► TDL(Top Level Domain) +</span></span><span class="line"><span class="cl">│ │ +</span></span><span class="line"><span class="cl">│ └───────► Domain +</span></span><span class="line"><span class="cl">│ +</span></span><span class="line"><span class="cl">└─────────────► SubDomain +</span></span><span class="line"><span class="cl"> +</span></span></code></pre></td></tr></table> +</div> +</div><hr> +<h3 id="دستورات">دستورات +</h3><ul> +<li> +<p>1 <code>nameserver</code></p> +<p>این دستور برای تعیین IP یک سرور DNS -استفاده می‌شود.(در واقع اینجا منظورم یک سرویسی است که به نامه دامنه ها پاسخ دهد که به آن NS می‌گویم.)</p> -<p>شما می‌توانید تا حداقل سه +استفاده می‌شود.(در واقع اینجا منظورم یک سرویسی است که به نامه دامنه ها پاسخ دهد که به آن NS می‌گویم.)</p> +<p>شما می‌توانید تا حداقل سه IP لیست کنید، و resolver @@ -86,68 +72,68 @@ resolver NS جواب گو نباشد، از دیگر NS -های لیست شده استفاده خواهد شد.</p> -<p>اگر به همین ترتیب هر یک از +های لیست شده استفاده خواهد شد.</p> +<p>اگر به همین ترتیب هر یک از NS -ها جوابگو نباشد، کوئری ها از اول شروع می‌شود تا به حداکثر تعداد کوئری تعیین شده برسد.</p> -<p>برای مثال من می‌توانم چند +ها جوابگو نباشد، کوئری ها از اول شروع می‌شود تا به حداکثر تعداد کوئری تعیین شده برسد.</p> +<p>برای مثال من می‌توانم چند NS -مختلف را برای خودم تعیین کنم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">nameserver 1.1.1.1 -</span></span><span class="line"><span class="cl">nameserver 8.8.8.8 -</span></span></code></pre></td></tr></table> -</div> -</div></li> -</ul> -<hr> -<ul> -<li> -<p>2 <code>options</code></p> -<p>برای این دستور متغیر های مختلفی را می‌توان تعیین کرد.</p> -<ul> -<li> -<p>2.1 <code>ndots</code></p> -<ul> -<li> -<p>حداقل هر دامنه‌ای در سطح اینترنت یک نقطه دارد، برای مثال +مختلف را برای خودم تعیین کنم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">nameserver 1.1.1.1 +</span></span><span class="line"><span class="cl">nameserver 8.8.8.8 +</span></span></code></pre></td></tr></table> +</div> +</div></li> +</ul> +<hr> +<ul> +<li> +<p>2 <code>options</code></p> +<p>برای این دستور متغیر های مختلفی را می‌توان تعیین کرد.</p> +<ul> +<li> +<p>2.1 <code>ndots</code></p> +<ul> +<li> +<p>حداقل هر دامنه‌ای در سطح اینترنت یک نقطه دارد، برای مثال google.com یک نقطه دارد. شما می‌توانید با این متغیر تعین کنید که دامنه‌های در سطح اینترنت باید چند نقطه داشته باشند، هر نقطه نشانه ساب دامنه‌ است. -برای مثال به صورت پیشفرض این متغیر <em>1</em> تنظیم شده است. +برای مثال به صورت پیشفرض این متغیر <em>1</em> تنظیم شده است. به این معنی است که هر دامنه‌ای یک نقطه داشت، این دامنه در سطح اینترنت است. ولی اگر شما مقدار این متغیر را 2 تنظیم کنید، دامنه‌ای مثل -<code>google.com</code> +<code>google.com</code> بعنوان دامنه لوکال تشخیص داده خواهد شد و -<code>hostname</code> +<code>hostname</code> شما به اول دامنه اضافه خواهد شد. مثلا اگر -<code>hostname</code> +<code>hostname</code> شما -<code>arya</code> +<code>arya</code> باشد، دامنه به این شکل کوئری زده خواهد شد -<code>google.com.arya</code></p> -<p>در صورتی که شما برای جست و جوی یک دامنه از هیچ -<strong>TLD</strong> +<code>google.com.arya</code></p> +<p>در صورتی که شما برای جست و جوی یک دامنه از هیچ +<strong>TLD</strong> استفاده نکید، از -<code>hostname</code> +<code>hostname</code> و یا از مقداری که برای -<code>search</code> -مشخص کرده‌اید استفاده خواهد شد.</p> -</li> -</ul> -</li> -<li> -<p>2.2 <code>timeout</code></p> -<ul> -<li>این متغیر تعیین می‌کند که +<code>search</code> +مشخص کرده‌اید استفاده خواهد شد.</p> +</li> +</ul> +</li> +<li> +<p>2.2 <code>timeout</code></p> +<ul> +<li>این متغیر تعیین می‌کند که resolver چه مقدار زمانی باید منتظر جواب از سمت NS @@ -155,19 +141,19 @@ NS NS جواب نداد، از NS -های بعدی سوال کند.</li> -</ul> -</li> -<li> -<p>2.3 <code>attempts</code></p> -<ul> -<li>این متغیر تعین می‌کند که +های بعدی سوال کند.</li> +</ul> +</li> +<li> +<p>2.3 <code>attempts</code></p> +<ul> +<li>این متغیر تعین می‌کند که resolver در صورت جواب ندادن توسط NS -باید در نهایت چند کوئری دیگر ارسال کند.</li> -</ul> -<p>برای مثال اگر اولین +باید در نهایت چند کوئری دیگر ارسال کند.</li> +</ul> +<p>برای مثال اگر اولین NS پاسخ نداد، سوال از NS @@ -178,12 +164,12 @@ attempts attempts مجوع سوال ها از همه NS -ها است.)</p> -</li> -<li> -<p>2.4 <code>rotate</code></p> -<ul> -<li>به صورت پیشفرض کوئری های +ها است.)</p> +</li> +<li> +<p>2.4 <code>rotate</code></p> +<ul> +<li>به صورت پیشفرض کوئری های DNS همه برای اولین NS @@ -194,50 +180,50 @@ NS ها تقسیم کنیم، کافیست از این متغیر استفاده کنیم. اینکار باعث می‌شود که هر کوئری ها به صورت چرخشی به ترتیب به NS -های لیست شده ارسال شود.</li> -</ul> -</li> -</ul> -</li> -</ul> -<hr> -<ul> -<li>3 <code>search</code> +های لیست شده ارسال شود.</li> +</ul> +</li> +</ul> +</li> +</ul> +<hr> +<ul> +<li>3 <code>search</code> همانطور که در مثال بالا گفتم، ما نام دامنه ها را تنظیم می‌کنیم که حداقل وقتی یک نقطه دارند، resolver آنها را دامنه‌ در سطح اینترنت در نظر بگیرد و به NS کوئری بزند. ولی اگر هیچ نقطه‌ای نداشت و یا شما -<code>ndots</code> +<code>ndots</code> را بیشتر یا مساوی با 2 نتظیم کرده باشید، -<code>hostname</code> +<code>hostname</code> سیستم شما به آخر آن دامنه اضافه خواهد شد و یک دامنه داخلی (local) تلقی خواهد شد. اما اگر می‌خواهید قبل از اضافه شدن -<code>hostname</code> -به آن چیز دیگری اضافه کنید، کافیست متغیر سرچ را تعریف کنید و یک یا چند مقدار برای آن تعیین کنید.</li> -</ul> -<hr> -<h3 id="سرویس-systemd-resolve">سرویس systemd-resolve</h3> -<p>اگر به فایل +<code>hostname</code> +به آن چیز دیگری اضافه کنید، کافیست متغیر سرچ را تعریف کنید و یک یا چند مقدار برای آن تعیین کنید.</li> +</ul> +<hr> +<h3 id="سرویس-systemd-resolve">سرویس systemd-resolve +</h3><p>اگر به فایل /etc/resolve.conf نگاه کنید، می‌بینید که یک ns برای شما تنظیم شده است که IP -آن داخلی است.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl"># cat /etc/resolve.conf -</span></span><span class="line"><span class="cl">nameserver 127.0.0.53 -</span></span></code></pre></td></tr></table> -</div> -</div><p>همانطور که توی نکته‌ای در مقدمه این پست گفتم، +آن داخلی است.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl"># cat /etc/resolve.conf +</span></span><span class="line"><span class="cl">nameserver 127.0.0.53 +</span></span></code></pre></td></tr></table> +</div> +</div><p>همانطور که توی نکته‌ای در مقدمه این پست گفتم، سیستم عاملی هایی که از systemd استفاده می‌کنند معمولا سرویس @@ -249,80 +235,76 @@ IP 127.0.0.53 و 127.0.0.54 -شنود می‌کند.</p> -<p>این سرویس خودش یک کانفیگ در -<code>etc/ststemd/resolved.conf/</code> -دارد.</p> -<p>اگر داخل این فایل را نگاه کنیم، می‌بنیم که در قسمت +شنود می‌کند.</p> +<p>این سرویس خودش یک کانفیگ در +<code>etc/ststemd/resolved.conf/</code> +دارد.</p> +<p>اگر داخل این فایل را نگاه کنیم، می‌بنیم که در قسمت ‌DNS می‌توان NS های بالاتر را وارد کرد، اینکار باعث می‌شود که سیستم شما وقتی یک دامنه را در حافظه کش خود نداشت، از NS -های بالاتر که در این فایل تنظیم شده است سوال کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">[Resolve] -</span></span><span class="line"><span class="cl">DNS=1.1.1.1 8.8.8.8 -</span></span></code></pre></td></tr></table> -</div> -</div><p>ابته تاکید کنم در صورتی از این +های بالاتر که در این فایل تنظیم شده است سوال کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">[Resolve] +</span></span><span class="line"><span class="cl">DNS=1.1.1.1 8.8.8.8 +</span></span></code></pre></td></tr></table> +</div> +</div><p>ابته تاکید کنم در صورتی از این NS ها استفاده می‌شود که شما ‌از 127.0.0.53 و 127.0.0.54 در کانفیگ /etc/resolve.conf -استفاده کرده باشید.</p> -<blockquote> -<p>تفاوت 127.0.0.54 این است که هر کوئری را مستقیم به +استفاده کرده باشید.</p> +<blockquote> +<p>تفاوت 127.0.0.54 این است که هر کوئری را مستقیم به NS بالاتر ارسال خواهد کرد و از دیتای کش شده استفاده نمی‌کند. -ولی 127.0.0.53 از قابلیت کش استفاده می‌کند.</p> -</blockquote> -<hr> -<h3 id="مثال">مثال</h3> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt">10 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">nameserver 1.1.1.1 -</span></span><span class="line"><span class="cl">nameserver 8.8.8.8 -</span></span><span class="line"><span class="cl">nameserver 9.9.9.9 -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">options ndots:1 -</span></span><span class="line"><span class="cl">options timeout:2 -</span></span><span class="line"><span class="cl">options attempts:3 -</span></span><span class="line"><span class="cl">options rotate -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">search server1 server2 -</span></span></code></pre></td></tr></table> -</div> -</div><hr> -<h3 id="سخنی-با-شما">سخنی با شما</h3> -<p>این را بگم که +ولی 127.0.0.53 از قابلیت کش استفاده می‌کند.</p> +</blockquote> +<hr> +<h3 id="مثال">مثال +</h3><div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">nameserver 1.1.1.1 +</span></span><span class="line"><span class="cl">nameserver 8.8.8.8 +</span></span><span class="line"><span class="cl">nameserver 9.9.9.9 +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">options ndots:1 +</span></span><span class="line"><span class="cl">options timeout:2 +</span></span><span class="line"><span class="cl">options attempts:3 +</span></span><span class="line"><span class="cl">options rotate +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">search server1 server2 +</span></span></code></pre></td></tr></table> +</div> +</div><hr> +<h3 id="سخنی-با-شما">سخنی با شما +</h3><p>این را بگم که DNS به صورت recursive(بازگشتی) عمل می‌کنه، این یعنی وقتی شما یک کوئری ارسال می‌کنید، این کوئری هر بار به یک سرور بالاتر ارسال می‌شود تا در نهایت به جواب برسه. و خب این موضوع خودش در نهایت یک جریان -خیلی جالب داره که امیدوارم یک روز اون رو هم بنویسم :)</p> -</span> - - - - +خیلی جالب داره که امیدوارم یک روز اون رو هم بنویسم :)</p> +</span> \ No newline at end of file diff --git a/docs/tags/etc/resolve.conf/page/1/index.html b/docs/tags/etc/resolve.conf/page/1/index.html index 50d7f6d..3433972 100644 --- a/docs/tags/etc/resolve.conf/page/1/index.html +++ b/docs/tags/etc/resolve.conf/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/etc/resolve.conf/ - - - - - - +https://bit-orbit.github.io/tags/etc/resolve.conf/ + \ No newline at end of file diff --git a/docs/tags/etc/systemd/resolved.conf/index.html b/docs/tags/etc/systemd/resolved.conf/index.html index 2ce78ff..0bcd8a0 100644 --- a/docs/tags/etc/systemd/resolved.conf/index.html +++ b/docs/tags/etc/systemd/resolved.conf/index.html @@ -1,559 +1,37 @@ - - - - -Tag: /Etc/Systemd/Resolved.conf - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

/Etc/Systemd/Resolved.conf

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: /Etc/Systemd/Resolved.conf - bit-orbit +

Tags

1 صفحه

/Etc/Systemd/Resolved.conf

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git a/docs/tags/etc/systemd/resolved.conf/index.xml b/docs/tags/etc/systemd/resolved.conf/index.xml index 818a0df..4fdb3a7 100644 --- a/docs/tags/etc/systemd/resolved.conf/index.xml +++ b/docs/tags/etc/systemd/resolved.conf/index.xml @@ -1,32 +1,18 @@ - - - - /Etc/Systemd/Resolved.conf on bit-orbit - https://bit-orbit.github.io/tags/etc/systemd/resolved.conf/ - Recent content in /Etc/Systemd/Resolved.conf on bit-orbit - Hugo -- gohugo.io - fa - Thu, 01 Aug 2024 03:03:46 +0330 - etc/resolve.conf/ - https://bit-orbit.github.io/p/etc/resolve.conf/ - Thu, 01 Aug 2024 03:03:46 +0330 - - https://bit-orbit.github.io/p/etc/resolve.conf/ - <img src="https://bit-orbit.github.io/images/post/OIG4.jpeg" alt="Featured image of post etc/resolve.conf/" /><span style='font-size: 25px'> -<h3 id="مقدمه">مقدمه</h3> -<p>همیشه موقع ویرایش فایل -<em>resolve.conf</em> +/Etc/Systemd/Resolved.conf on bit-orbithttps://bit-orbit.github.io/tags/etc/systemd/resolved.conf/Recent content in /Etc/Systemd/Resolved.conf on bit-orbitHugo -- gohugo.iofaThu, 01 Aug 2024 03:03:46 +0330etc/resolve.conf/https://bit-orbit.github.io/p/etc/resolve.conf/Thu, 01 Aug 2024 03:03:46 +0330https://bit-orbit.github.io/p/etc/resolve.conf/<img src="https://bit-orbit.github.io/images/post/OIG4.jpeg" alt="Featured image of post etc/resolve.conf/" /><span style='font-size: 25px'> +<h3 id="مقدمه">مقدمه +</h3><p>همیشه موقع ویرایش فایل +<em>resolve.conf</em> برام سوال بود که گزین های دیگه‌ای که توی این فایل تنظیم شده‌اند چکاری انجام می‌دهند. درواقع من همیشه دستور -<code>namveserver</code> +<code>namveserver</code> را برای تغییر سرور -<em>dns</em> +<em>dns</em> ویرایش می‌کردم. اما دستور هایی دیگه‌ای هم برای این فایل وجود دارد که لیست آنها در -<code>man resolve.conf</code> -توضیح داده شده است.</p> -<p>توی این پست من بعضی از دستورات این فایل را توضیح می‌دم.</p> -<blockquote> -<p>در مرحله اول یادتون باشه لینوکس هایی که +<code>man resolve.conf</code> +توضیح داده شده است.</p> +<p>توی این پست من بعضی از دستورات این فایل را توضیح می‌دم.</p> +<blockquote> +<p>در مرحله اول یادتون باشه لینوکس هایی که systemd دارند، معمولا از سرویس systemd-resolved @@ -36,48 +22,48 @@ DNS resolve می‌کند و سپس آنها را کش می‌کند که یک دامنه را چندین بار resolve -نکند.</p> -</blockquote> -<blockquote> -<p>یک دامنه حد اقل از <em>دو</em> بخش تشکیل می‌شود.</p> -<ol> -<li>TLD</li> -<li>Domain</li> -</ol> -</blockquote> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span><span class="lnt">3 -</span><span class="lnt">4 -</span><span class="lnt">5 -</span><span class="lnt">6 -</span><span class="lnt">7 -</span><span class="lnt">8 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">bin.example.com -</span></span><span class="line"><span class="cl">│ │ │ -</span></span><span class="line"><span class="cl">│ │ └─► TDL(Top Level Domain) -</span></span><span class="line"><span class="cl">│ │ -</span></span><span class="line"><span class="cl">│ └───────► Domain -</span></span><span class="line"><span class="cl">│ -</span></span><span class="line"><span class="cl">└─────────────► SubDomain -</span></span><span class="line"><span class="cl"> -</span></span></code></pre></td></tr></table> -</div> -</div><hr> -<h3 id="دستورات">دستورات</h3> -<ul> -<li> -<p>1 <code>nameserver</code></p> -<p>این دستور برای تعیین +نکند.</p> +</blockquote> +<blockquote> +<p>یک دامنه حد اقل از <em>دو</em> بخش تشکیل می‌شود.</p> +<ol> +<li>TLD</li> +<li>Domain</li> +</ol> +</blockquote> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span><span class="lnt">8 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">bin.example.com +</span></span><span class="line"><span class="cl">│ │ │ +</span></span><span class="line"><span class="cl">│ │ └─► TDL(Top Level Domain) +</span></span><span class="line"><span class="cl">│ │ +</span></span><span class="line"><span class="cl">│ └───────► Domain +</span></span><span class="line"><span class="cl">│ +</span></span><span class="line"><span class="cl">└─────────────► SubDomain +</span></span><span class="line"><span class="cl"> +</span></span></code></pre></td></tr></table> +</div> +</div><hr> +<h3 id="دستورات">دستورات +</h3><ul> +<li> +<p>1 <code>nameserver</code></p> +<p>این دستور برای تعیین IP یک سرور DNS -استفاده می‌شود.(در واقع اینجا منظورم یک سرویسی است که به نامه دامنه ها پاسخ دهد که به آن NS می‌گویم.)</p> -<p>شما می‌توانید تا حداقل سه +استفاده می‌شود.(در واقع اینجا منظورم یک سرویسی است که به نامه دامنه ها پاسخ دهد که به آن NS می‌گویم.)</p> +<p>شما می‌توانید تا حداقل سه IP لیست کنید، و resolver @@ -86,68 +72,68 @@ resolver NS جواب گو نباشد، از دیگر NS -های لیست شده استفاده خواهد شد.</p> -<p>اگر به همین ترتیب هر یک از +های لیست شده استفاده خواهد شد.</p> +<p>اگر به همین ترتیب هر یک از NS -ها جوابگو نباشد، کوئری ها از اول شروع می‌شود تا به حداکثر تعداد کوئری تعیین شده برسد.</p> -<p>برای مثال من می‌توانم چند +ها جوابگو نباشد، کوئری ها از اول شروع می‌شود تا به حداکثر تعداد کوئری تعیین شده برسد.</p> +<p>برای مثال من می‌توانم چند NS -مختلف را برای خودم تعیین کنم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">nameserver 1.1.1.1 -</span></span><span class="line"><span class="cl">nameserver 8.8.8.8 -</span></span></code></pre></td></tr></table> -</div> -</div></li> -</ul> -<hr> -<ul> -<li> -<p>2 <code>options</code></p> -<p>برای این دستور متغیر های مختلفی را می‌توان تعیین کرد.</p> -<ul> -<li> -<p>2.1 <code>ndots</code></p> -<ul> -<li> -<p>حداقل هر دامنه‌ای در سطح اینترنت یک نقطه دارد، برای مثال +مختلف را برای خودم تعیین کنم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">nameserver 1.1.1.1 +</span></span><span class="line"><span class="cl">nameserver 8.8.8.8 +</span></span></code></pre></td></tr></table> +</div> +</div></li> +</ul> +<hr> +<ul> +<li> +<p>2 <code>options</code></p> +<p>برای این دستور متغیر های مختلفی را می‌توان تعیین کرد.</p> +<ul> +<li> +<p>2.1 <code>ndots</code></p> +<ul> +<li> +<p>حداقل هر دامنه‌ای در سطح اینترنت یک نقطه دارد، برای مثال google.com یک نقطه دارد. شما می‌توانید با این متغیر تعین کنید که دامنه‌های در سطح اینترنت باید چند نقطه داشته باشند، هر نقطه نشانه ساب دامنه‌ است. -برای مثال به صورت پیشفرض این متغیر <em>1</em> تنظیم شده است. +برای مثال به صورت پیشفرض این متغیر <em>1</em> تنظیم شده است. به این معنی است که هر دامنه‌ای یک نقطه داشت، این دامنه در سطح اینترنت است. ولی اگر شما مقدار این متغیر را 2 تنظیم کنید، دامنه‌ای مثل -<code>google.com</code> +<code>google.com</code> بعنوان دامنه لوکال تشخیص داده خواهد شد و -<code>hostname</code> +<code>hostname</code> شما به اول دامنه اضافه خواهد شد. مثلا اگر -<code>hostname</code> +<code>hostname</code> شما -<code>arya</code> +<code>arya</code> باشد، دامنه به این شکل کوئری زده خواهد شد -<code>google.com.arya</code></p> -<p>در صورتی که شما برای جست و جوی یک دامنه از هیچ -<strong>TLD</strong> +<code>google.com.arya</code></p> +<p>در صورتی که شما برای جست و جوی یک دامنه از هیچ +<strong>TLD</strong> استفاده نکید، از -<code>hostname</code> +<code>hostname</code> و یا از مقداری که برای -<code>search</code> -مشخص کرده‌اید استفاده خواهد شد.</p> -</li> -</ul> -</li> -<li> -<p>2.2 <code>timeout</code></p> -<ul> -<li>این متغیر تعیین می‌کند که +<code>search</code> +مشخص کرده‌اید استفاده خواهد شد.</p> +</li> +</ul> +</li> +<li> +<p>2.2 <code>timeout</code></p> +<ul> +<li>این متغیر تعیین می‌کند که resolver چه مقدار زمانی باید منتظر جواب از سمت NS @@ -155,19 +141,19 @@ NS NS جواب نداد، از NS -های بعدی سوال کند.</li> -</ul> -</li> -<li> -<p>2.3 <code>attempts</code></p> -<ul> -<li>این متغیر تعین می‌کند که +های بعدی سوال کند.</li> +</ul> +</li> +<li> +<p>2.3 <code>attempts</code></p> +<ul> +<li>این متغیر تعین می‌کند که resolver در صورت جواب ندادن توسط NS -باید در نهایت چند کوئری دیگر ارسال کند.</li> -</ul> -<p>برای مثال اگر اولین +باید در نهایت چند کوئری دیگر ارسال کند.</li> +</ul> +<p>برای مثال اگر اولین NS پاسخ نداد، سوال از NS @@ -178,12 +164,12 @@ attempts attempts مجوع سوال ها از همه NS -ها است.)</p> -</li> -<li> -<p>2.4 <code>rotate</code></p> -<ul> -<li>به صورت پیشفرض کوئری های +ها است.)</p> +</li> +<li> +<p>2.4 <code>rotate</code></p> +<ul> +<li>به صورت پیشفرض کوئری های DNS همه برای اولین NS @@ -194,50 +180,50 @@ NS ها تقسیم کنیم، کافیست از این متغیر استفاده کنیم. اینکار باعث می‌شود که هر کوئری ها به صورت چرخشی به ترتیب به NS -های لیست شده ارسال شود.</li> -</ul> -</li> -</ul> -</li> -</ul> -<hr> -<ul> -<li>3 <code>search</code> +های لیست شده ارسال شود.</li> +</ul> +</li> +</ul> +</li> +</ul> +<hr> +<ul> +<li>3 <code>search</code> همانطور که در مثال بالا گفتم، ما نام دامنه ها را تنظیم می‌کنیم که حداقل وقتی یک نقطه دارند، resolver آنها را دامنه‌ در سطح اینترنت در نظر بگیرد و به NS کوئری بزند. ولی اگر هیچ نقطه‌ای نداشت و یا شما -<code>ndots</code> +<code>ndots</code> را بیشتر یا مساوی با 2 نتظیم کرده باشید، -<code>hostname</code> +<code>hostname</code> سیستم شما به آخر آن دامنه اضافه خواهد شد و یک دامنه داخلی (local) تلقی خواهد شد. اما اگر می‌خواهید قبل از اضافه شدن -<code>hostname</code> -به آن چیز دیگری اضافه کنید، کافیست متغیر سرچ را تعریف کنید و یک یا چند مقدار برای آن تعیین کنید.</li> -</ul> -<hr> -<h3 id="سرویس-systemd-resolve">سرویس systemd-resolve</h3> -<p>اگر به فایل +<code>hostname</code> +به آن چیز دیگری اضافه کنید، کافیست متغیر سرچ را تعریف کنید و یک یا چند مقدار برای آن تعیین کنید.</li> +</ul> +<hr> +<h3 id="سرویس-systemd-resolve">سرویس systemd-resolve +</h3><p>اگر به فایل /etc/resolve.conf نگاه کنید، می‌بینید که یک ns برای شما تنظیم شده است که IP -آن داخلی است.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl"># cat /etc/resolve.conf -</span></span><span class="line"><span class="cl">nameserver 127.0.0.53 -</span></span></code></pre></td></tr></table> -</div> -</div><p>همانطور که توی نکته‌ای در مقدمه این پست گفتم، +آن داخلی است.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl"># cat /etc/resolve.conf +</span></span><span class="line"><span class="cl">nameserver 127.0.0.53 +</span></span></code></pre></td></tr></table> +</div> +</div><p>همانطور که توی نکته‌ای در مقدمه این پست گفتم، سیستم عاملی هایی که از systemd استفاده می‌کنند معمولا سرویس @@ -249,80 +235,76 @@ IP 127.0.0.53 و 127.0.0.54 -شنود می‌کند.</p> -<p>این سرویس خودش یک کانفیگ در -<code>etc/ststemd/resolved.conf/</code> -دارد.</p> -<p>اگر داخل این فایل را نگاه کنیم، می‌بنیم که در قسمت +شنود می‌کند.</p> +<p>این سرویس خودش یک کانفیگ در +<code>etc/ststemd/resolved.conf/</code> +دارد.</p> +<p>اگر داخل این فایل را نگاه کنیم، می‌بنیم که در قسمت ‌DNS می‌توان NS های بالاتر را وارد کرد، اینکار باعث می‌شود که سیستم شما وقتی یک دامنه را در حافظه کش خود نداشت، از NS -های بالاتر که در این فایل تنظیم شده است سوال کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">[Resolve] -</span></span><span class="line"><span class="cl">DNS=1.1.1.1 8.8.8.8 -</span></span></code></pre></td></tr></table> -</div> -</div><p>ابته تاکید کنم در صورتی از این +های بالاتر که در این فایل تنظیم شده است سوال کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">[Resolve] +</span></span><span class="line"><span class="cl">DNS=1.1.1.1 8.8.8.8 +</span></span></code></pre></td></tr></table> +</div> +</div><p>ابته تاکید کنم در صورتی از این NS ها استفاده می‌شود که شما ‌از 127.0.0.53 و 127.0.0.54 در کانفیگ /etc/resolve.conf -استفاده کرده باشید.</p> -<blockquote> -<p>تفاوت 127.0.0.54 این است که هر کوئری را مستقیم به +استفاده کرده باشید.</p> +<blockquote> +<p>تفاوت 127.0.0.54 این است که هر کوئری را مستقیم به NS بالاتر ارسال خواهد کرد و از دیتای کش شده استفاده نمی‌کند. -ولی 127.0.0.53 از قابلیت کش استفاده می‌کند.</p> -</blockquote> -<hr> -<h3 id="مثال">مثال</h3> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt">10 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">nameserver 1.1.1.1 -</span></span><span class="line"><span class="cl">nameserver 8.8.8.8 -</span></span><span class="line"><span class="cl">nameserver 9.9.9.9 -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">options ndots:1 -</span></span><span class="line"><span class="cl">options timeout:2 -</span></span><span class="line"><span class="cl">options attempts:3 -</span></span><span class="line"><span class="cl">options rotate -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">search server1 server2 -</span></span></code></pre></td></tr></table> -</div> -</div><hr> -<h3 id="سخنی-با-شما">سخنی با شما</h3> -<p>این را بگم که +ولی 127.0.0.53 از قابلیت کش استفاده می‌کند.</p> +</blockquote> +<hr> +<h3 id="مثال">مثال +</h3><div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">nameserver 1.1.1.1 +</span></span><span class="line"><span class="cl">nameserver 8.8.8.8 +</span></span><span class="line"><span class="cl">nameserver 9.9.9.9 +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">options ndots:1 +</span></span><span class="line"><span class="cl">options timeout:2 +</span></span><span class="line"><span class="cl">options attempts:3 +</span></span><span class="line"><span class="cl">options rotate +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">search server1 server2 +</span></span></code></pre></td></tr></table> +</div> +</div><hr> +<h3 id="سخنی-با-شما">سخنی با شما +</h3><p>این را بگم که DNS به صورت recursive(بازگشتی) عمل می‌کنه، این یعنی وقتی شما یک کوئری ارسال می‌کنید، این کوئری هر بار به یک سرور بالاتر ارسال می‌شود تا در نهایت به جواب برسه. و خب این موضوع خودش در نهایت یک جریان -خیلی جالب داره که امیدوارم یک روز اون رو هم بنویسم :)</p> -</span> - - - - +خیلی جالب داره که امیدوارم یک روز اون رو هم بنویسم :)</p> +</span> \ No newline at end of file diff --git a/docs/tags/etc/systemd/resolved.conf/page/1/index.html b/docs/tags/etc/systemd/resolved.conf/page/1/index.html index 4ffb262..08689e6 100644 --- a/docs/tags/etc/systemd/resolved.conf/page/1/index.html +++ b/docs/tags/etc/systemd/resolved.conf/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/etc/systemd/resolved.conf/ - - - - - - +https://bit-orbit.github.io/tags/etc/systemd/resolved.conf/ + \ No newline at end of file diff --git "a/docs/tags/file-locking-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263-\332\206\333\214\330\263\330\252/index.html" "b/docs/tags/file-locking-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263-\332\206\333\214\330\263\330\252/index.html" index e06dda2..3640281 100644 --- "a/docs/tags/file-locking-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263-\332\206\333\214\330\263\330\252/index.html" +++ "b/docs/tags/file-locking-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263-\332\206\333\214\330\263\330\252/index.html" @@ -1,559 +1,37 @@ - - - - -Tag: File Locking در لینوکس چیست؟ - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

File Locking در لینوکس چیست؟

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: File Locking در لینوکس چیست؟ - bit-orbit +

Tags

1 صفحه

File Locking در لینوکس چیست؟

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git "a/docs/tags/file-locking-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263-\332\206\333\214\330\263\330\252/index.xml" "b/docs/tags/file-locking-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263-\332\206\333\214\330\263\330\252/index.xml" index 63703bb..78c230d 100644 --- "a/docs/tags/file-locking-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263-\332\206\333\214\330\263\330\252/index.xml" +++ "b/docs/tags/file-locking-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263-\332\206\333\214\330\263\330\252/index.xml" @@ -1,186 +1,161 @@ - - - - File Locking در لینوکس چیست؟ on bit-orbit - https://bit-orbit.github.io/tags/file-locking-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA/ - Recent content in File Locking در لینوکس چیست؟ on bit-orbit - Hugo -- gohugo.io - fa - Fri, 09 Feb 2024 01:49:42 +0330 - Linux File Locking چیست؟ - https://bit-orbit.github.io/p/linux-file-locking-%DA%86%DB%8C%D8%B3%D8%AA/ - Fri, 09 Feb 2024 01:49:42 +0330 - - https://bit-orbit.github.io/p/linux-file-locking-%DA%86%DB%8C%D8%B3%D8%AA/ - <img src="https://bit-orbit.github.io/images/post/flilock.jpeg" alt="Featured image of post Linux File Locking چیست؟" /><p>بیایید قبل از اینکه راه حل را ببینیم، اول مشکل را دقیق تر برسی کنیم. +File Locking در لینوکس چیست؟ on bit-orbithttps://bit-orbit.github.io/tags/file-locking-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA/Recent content in File Locking در لینوکس چیست؟ on bit-orbitHugo -- gohugo.iofaFri, 09 Feb 2024 01:49:42 +0330Linux File Locking چیست؟https://bit-orbit.github.io/p/linux-file-locking-%DA%86%DB%8C%D8%B3%D8%AA/Fri, 09 Feb 2024 01:49:42 +0330https://bit-orbit.github.io/p/linux-file-locking-%DA%86%DB%8C%D8%B3%D8%AA/<img src="https://bit-orbit.github.io/images/post/flilock.jpeg" alt="Featured image of post Linux File Locking چیست؟" /><p>بیایید قبل از اینکه راه حل را ببینیم، اول مشکل را دقیق تر برسی کنیم. به این فکر کنید که شما یک فایلی دارید که شامل یک عدد است که اشاره می‌کند به مقدار اعتباری که کاربر در حسابش دارد. حالا اگر قرار باشد یک پورسه اون مقدار را بر اساس ارائه سرویسی، از حساب کاربر کم کند، و پروسه دیگری به دلیل افزایش اعتبار، مقداری را به حساب -کاربر اضافه کند، چه مشکلاتی اتفاق می‌افتد؟</p> -<p>برای اینکه دقیق تر بشیم، این روند رو باهم پیش می‌بریم. +کاربر اضافه کند، چه مشکلاتی اتفاق می‌افتد؟</p> +<p>برای اینکه دقیق تر بشیم، این روند رو باهم پیش می‌بریم. فرض کنید فایلی به اسم amount.txt مقدار 100 داخلش نوشته شده است. و دو پروسه کم و اضافه کردن را اجرا می‌کنیم. توی این مثال،‌ ما می‌خواهیم مقدار 20 از حساب کاربر کم و مقدار 50 به حساب کاربر -اضافه کنیم، پس ما انتظار داریم در انتها فایل ما مقدار 130 را درونش ذخیره کرده باشد.</p> -<ul> -<li>پروسه اول فایل را می‌خواند و مقدار 100 را در حاظه‌اش نگه می‌دارد</li> -<li>پروسه دوم فایل را می‌خواند و مقدار 100 را در حاظه‌اش نگه می‌دارد</li> -<li>پروسه اول مقدار 20 را از 100 کم می‌کند و مقدار 80 را در حافظه ذخیره می‌کند</li> -<li>پروسه دوم مقدار 50 را به 100 اضافه می‌کند و مقدار 150 را در حافظه ذخیره می‌کند</li> -<li>پروسه اول مقدار 80 را در فایل ذخیره می‌کند</li> -<li>پروسه دوم مقدار 150 را در فایل ذخیره می‌کند</li> -</ul> -<p>همینطور که همه ما انتظار داشتیم، ما باید در این فایل مقدار 130 را ذخیره می‌کردیم، +اضافه کنیم، پس ما انتظار داریم در انتها فایل ما مقدار 130 را درونش ذخیره کرده باشد.</p> +<ul> +<li>پروسه اول فایل را می‌خواند و مقدار 100 را در حاظه‌اش نگه می‌دارد</li> +<li>پروسه دوم فایل را می‌خواند و مقدار 100 را در حاظه‌اش نگه می‌دارد</li> +<li>پروسه اول مقدار 20 را از 100 کم می‌کند و مقدار 80 را در حافظه ذخیره می‌کند</li> +<li>پروسه دوم مقدار 50 را به 100 اضافه می‌کند و مقدار 150 را در حافظه ذخیره می‌کند</li> +<li>پروسه اول مقدار 80 را در فایل ذخیره می‌کند</li> +<li>پروسه دوم مقدار 150 را در فایل ذخیره می‌کند</li> +</ul> +<p>همینطور که همه ما انتظار داشتیم، ما باید در این فایل مقدار 130 را ذخیره می‌کردیم، اما پروسه های ما به دلیل اینکه هیچ همکاری و یا هیچ مکانیزمی دیگری ندارند که این مقدار ها را به یکدیگر اطلاع دهند، مشکل -<a class="link" href="https://en.wikipedia.org/wiki/Race_condition#Software" target="_blank" rel="noopener" - >Race condition</a> -رخ می‌دهد.</p> -<p>یکی از راه حل های این مشکل +<a class="link" href="https://en.wikipedia.org/wiki/Race_condition#Software" target="_blank" rel="noopener" +>Race condition</a> +رخ می‌دهد.</p> +<p>یکی از راه حل های این مشکل lock کردن فایل توسط هر پروسه است، که به این کار file locking -گفته می‌شود.</p> -<p><strong>file locking</strong> -یک مکانیزم برای کنترل دسترسی چندین پروسه به یک فایل است.</p> -<blockquote> -<p>توی لینوکس یکی از دستورات خطرناکی که داریم دستور +گفته می‌شود.</p> +<p><strong>file locking</strong> +یک مکانیزم برای کنترل دسترسی چندین پروسه به یک فایل است.</p> +<blockquote> +<p>توی لینوکس یکی از دستورات خطرناکی که داریم دستور sudo rm -rf / است. وقتی این دستور را اجرا کنیم کل فایل های لینوکس ما حذف می‌شود. دلیل اینکار این است که لینوکس به صورت پیشفرض فایل های باز شده را lock -نمی‌کند.</p> -</blockquote> -<p>با اینحال لینوکس دو مکانیزم مختلف -<em>advisory</em> و <em>mandatory</em> -را پشتیبانی می‌کند.</p> -<blockquote> -<p>توی این پست بیشتر تمرکز من روی مکانیزم +نمی‌کند.</p> +</blockquote> +<p>با اینحال لینوکس دو مکانیزم مختلف +<em>advisory</em> و <em>mandatory</em> +را پشتیبانی می‌کند.</p> +<blockquote> +<p>توی این پست بیشتر تمرکز من روی مکانیزم advisory locking(مشورتی) -است.</p> -</blockquote> -<p>این روش به این شکل عمل می‌کند که هیچ پروسه‌ای مجبور به اجرای این روش نیست و اگر حتی +است.</p> +</blockquote> +<p>این روش به این شکل عمل می‌کند که هیچ پروسه‌ای مجبور به اجرای این روش نیست و اگر حتی فایل توسط یک پروسه‌ای lock شده باشد، باز هم پروسه های دیگر می‌توانند به lock بودن فایل اهمیت ندهند و مقدار آن را تغییر دهند. این اتفاق به این دلیل می‌افتد که advisory lock -توسط سیستم عامل و یا فایل سیستم انجام نمی‌شود.</p> -<p>خب بیایید با یک مثال این فرایند را برسی کنیم. مثل مثال قبلی فرض کنید ما مقدار 100 +توسط سیستم عامل و یا فایل سیستم انجام نمی‌شود.</p> +<p>خب بیایید با یک مثال این فرایند را برسی کنیم. مثل مثال قبلی فرض کنید ما مقدار 100 را داخل فایل amount.txt -داریم و می‌خواهیم مقدار 20 از آن کم و مقدار 50 به آن اضافه کنیم.</p> -<ul> -<li>پروسه اول قبل از خواندن فایل، فایل را لاک می‌کند</li> -<li>پروسه دوم برای لاک کردن فایل اقدام می‌کند و از جایی که پروسه اول از پیش فایل را لاک کرده است، برای آزاد شدن لاک صبر می‌کند</li> -<li>پروسه اول مقدار 20 را از 100 کم می‌کند و مقدار 80 را درون فایل می‌نویسد</li> -<li>پروسه اول لاک فایل را آزاد می‌کند.</li> -<li>پروسه دوم فایل را لاک و مقدار جدید 80 را از فایل می‌خواند</li> -<li>پروسه دوم مقدار 50 را به 80 اضافه و مقدار 120 را درون فایل می‌نویسد</li> -<li>پروسه دوم لاک فایل را آزاد می‌کند تا پروسه های دیگر بتوانند با فایل کار کنند.</li> -</ul> -<hr> -<p>اگر شما می‌خواهید این مکانیزم را روی یک فایل اجرا کنید، دستور +داریم و می‌خواهیم مقدار 20 از آن کم و مقدار 50 به آن اضافه کنیم.</p> +<ul> +<li>پروسه اول قبل از خواندن فایل، فایل را لاک می‌کند</li> +<li>پروسه دوم برای لاک کردن فایل اقدام می‌کند و از جایی که پروسه اول از پیش فایل را لاک کرده است، برای آزاد شدن لاک صبر می‌کند</li> +<li>پروسه اول مقدار 20 را از 100 کم می‌کند و مقدار 80 را درون فایل می‌نویسد</li> +<li>پروسه اول لاک فایل را آزاد می‌کند.</li> +<li>پروسه دوم فایل را لاک و مقدار جدید 80 را از فایل می‌خواند</li> +<li>پروسه دوم مقدار 50 را به 80 اضافه و مقدار 120 را درون فایل می‌نویسد</li> +<li>پروسه دوم لاک فایل را آزاد می‌کند تا پروسه های دیگر بتوانند با فایل کار کنند.</li> +</ul> +<hr> +<p>اگر شما می‌خواهید این مکانیزم را روی یک فایل اجرا کنید، دستور flock -برای شما اینکار را خواهد کرد.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">flock <span class="o">[</span>options<span class="o">]</span> file<span class="p">|</span>directory <span class="nb">command</span> <span class="o">[</span>arguments<span class="o">]</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>این کامند در حالت عادی از شما یک فایل و یک دستور خواهد گرفت و مکانیزم +برای شما اینکار را خواهد کرد.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">flock <span class="o">[</span>options<span class="o">]</span> file<span class="p">|</span>directory <span class="nb">command</span> <span class="o">[</span>arguments<span class="o">]</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>این کامند در حالت عادی از شما یک فایل و یک دستور خواهد گرفت و مکانیزم advisory lock -را روی ان فایل اجرا خواهد کرد.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">flock /tmp/fli <span class="nb">echo</span> 12&gt;/tmp/fli -</span></span></code></pre></td></tr></table> -</div> -</div><p>برای اینکه روند را بهتر درک کنیم یک فایل +را روی ان فایل اجرا خواهد کرد.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">flock /tmp/fli <span class="nb">echo</span> 12&gt;/tmp/fli +</span></span></code></pre></td></tr></table> +</div> +</div><p>برای اینکه روند را بهتر درک کنیم یک فایل bash -می‌نویسیم که بتوانیم مثال اولیه را روی آن اجرا کنیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt">10 -</span><span class="lnt">11 -</span><span class="lnt">12 -</span><span class="lnt">13 -</span><span class="lnt">14 -</span><span class="lnt">15 -</span><span class="lnt">16 -</span><span class="lnt">17 -</span><span class="lnt">18 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="cp">#!/bin/bash -</span></span></span><span class="line"><span class="cl"><span class="cp"></span><span class="nv">file</span><span class="o">=</span><span class="s2">&#34;balance.dat&#34;</span> -</span></span><span class="line"><span class="cl"><span class="nv">value</span><span class="o">=</span><span class="k">$(</span>cat <span class="nv">$file</span><span class="k">)</span> -</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Read current balance:</span><span class="nv">$value</span><span class="s2">&#34;</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl"><span class="c1">#sleep 10 seconds to simulate business calculation</span> -</span></span><span class="line"><span class="cl"><span class="nv">progress</span><span class="o">=</span><span class="m">10</span> -</span></span><span class="line"><span class="cl"><span class="k">while</span> <span class="o">[[</span> <span class="nv">$progress</span> -lt <span class="m">101</span> <span class="o">]]</span><span class="p">;</span> <span class="k">do</span> -</span></span><span class="line"><span class="cl"> <span class="nb">echo</span> -n -e <span class="s2">&#34;\033[77DCalculating new balance..</span><span class="nv">$progress</span><span class="s2">%&#34;</span> -</span></span><span class="line"><span class="cl"> sleep <span class="m">1</span> -</span></span><span class="line"><span class="cl"> <span class="nv">progress</span><span class="o">=</span><span class="k">$((</span><span class="m">10</span><span class="o">+</span>progress<span class="k">))</span> -</span></span><span class="line"><span class="cl"><span class="k">done</span> -</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;&#34;</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl"><span class="nv">value</span><span class="o">=</span><span class="k">$((</span>value+<span class="nv">$1</span><span class="k">))</span> -</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Write new balance (</span><span class="nv">$value</span><span class="s2">) back to </span><span class="nv">$file</span><span class="s2">.&#34;</span> -</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="nv">$value</span> &gt; <span class="s2">&#34;</span><span class="nv">$file</span><span class="s2">&#34;</span> -</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Done.&#34;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>ما این فایل را همزمان با دو ترمینال اجرا می‌کنیم.</p> -<p><img src="https://bit-orbit.github.io/images/post/advisory_lock.gif" - - - - loading="lazy" - - alt="advisory lock" - - -></p> -<p>همینطور که می‌بینید پروسه دوم برای اینکه محتوای فایل را تغییر دهد، باید صبر کند تا لاک فایل -آزاد شود.</p> -<hr> -<p>این پست خلاصه‌ای بود از -<a class="link" href="https://www.baeldung.com/linux/file-locking" target="_blank" rel="noopener" - >این بلاگ</a> +می‌نویسیم که بتوانیم مثال اولیه را روی آن اجرا کنیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="cp">#!/bin/bash +</span></span></span><span class="line"><span class="cl"><span class="cp"></span><span class="nv">file</span><span class="o">=</span><span class="s2">&#34;balance.dat&#34;</span> +</span></span><span class="line"><span class="cl"><span class="nv">value</span><span class="o">=</span><span class="k">$(</span>cat <span class="nv">$file</span><span class="k">)</span> +</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Read current balance:</span><span class="nv">$value</span><span class="s2">&#34;</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="c1">#sleep 10 seconds to simulate business calculation</span> +</span></span><span class="line"><span class="cl"><span class="nv">progress</span><span class="o">=</span><span class="m">10</span> +</span></span><span class="line"><span class="cl"><span class="k">while</span> <span class="o">[[</span> <span class="nv">$progress</span> -lt <span class="m">101</span> <span class="o">]]</span><span class="p">;</span> <span class="k">do</span> +</span></span><span class="line"><span class="cl"> <span class="nb">echo</span> -n -e <span class="s2">&#34;\033[77DCalculating new balance..</span><span class="nv">$progress</span><span class="s2">%&#34;</span> +</span></span><span class="line"><span class="cl"> sleep <span class="m">1</span> +</span></span><span class="line"><span class="cl"> <span class="nv">progress</span><span class="o">=</span><span class="k">$((</span><span class="m">10</span><span class="o">+</span>progress<span class="k">))</span> +</span></span><span class="line"><span class="cl"><span class="k">done</span> +</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;&#34;</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="nv">value</span><span class="o">=</span><span class="k">$((</span>value+<span class="nv">$1</span><span class="k">))</span> +</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Write new balance (</span><span class="nv">$value</span><span class="s2">) back to </span><span class="nv">$file</span><span class="s2">.&#34;</span> +</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="nv">$value</span> &gt; <span class="s2">&#34;</span><span class="nv">$file</span><span class="s2">&#34;</span> +</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Done.&#34;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>ما این فایل را همزمان با دو ترمینال اجرا می‌کنیم.</p> +<p><img src="https://bit-orbit.github.io/images/post/advisory_lock.gif" +loading="lazy" +alt="advisory lock" +></p> +<p>همینطور که می‌بینید پروسه دوم برای اینکه محتوای فایل را تغییر دهد، باید صبر کند تا لاک فایل +آزاد شود.</p> +<hr> +<p>این پست خلاصه‌ای بود از +<a class="link" href="https://www.baeldung.com/linux/file-locking" target="_blank" rel="noopener" +>این بلاگ</a> که هر دو نوع advisory lock و mandatory lock -را توضیح می‌دهد.</p> -<p>برای من سوال بود که من چطور می‌توانم مکانیزمی که +را توضیح می‌دهد.</p> +<p>برای من سوال بود که من چطور می‌توانم مکانیزمی که flock استفاده می‌کند را در برنامه های خودم پیاده سازی کنم، و خب نتیجه این بود که معمولا برای advisory lock هر زبانی یک کتابخانه استاندار دارد توی -<a class="link" href="https://docs.python.org/3/library/fcntl.html" target="_blank" rel="noopener" - >پایتون کتابخانه</a> -<code>fcntl</code> -اینکار را انجام می‌دهد.</p> - - - - - +<a class="link" href="https://docs.python.org/3/library/fcntl.html" target="_blank" rel="noopener" +>پایتون کتابخانه</a> +<code>fcntl</code> +اینکار را انجام می‌دهد.</p> \ No newline at end of file diff --git "a/docs/tags/file-locking-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263-\332\206\333\214\330\263\330\252/page/1/index.html" "b/docs/tags/file-locking-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263-\332\206\333\214\330\263\330\252/page/1/index.html" index 14337b0..55dc0f6 100644 --- "a/docs/tags/file-locking-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263-\332\206\333\214\330\263\330\252/page/1/index.html" +++ "b/docs/tags/file-locking-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263-\332\206\333\214\330\263\330\252/page/1/index.html" @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/file-locking-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA/ - - - - - - +https://bit-orbit.github.io/tags/file-locking-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA/ + \ No newline at end of file diff --git "a/docs/tags/file-locking-\332\206\333\214\330\263\330\252/index.html" "b/docs/tags/file-locking-\332\206\333\214\330\263\330\252/index.html" index 645ddb7..63bd17c 100644 --- "a/docs/tags/file-locking-\332\206\333\214\330\263\330\252/index.html" +++ "b/docs/tags/file-locking-\332\206\333\214\330\263\330\252/index.html" @@ -1,559 +1,37 @@ - - - - -Tag: File Locking چیست - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

File Locking چیست

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: File Locking چیست - bit-orbit +

Tags

1 صفحه

File Locking چیست

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git "a/docs/tags/file-locking-\332\206\333\214\330\263\330\252/index.xml" "b/docs/tags/file-locking-\332\206\333\214\330\263\330\252/index.xml" index e4cdc3b..5d634ed 100644 --- "a/docs/tags/file-locking-\332\206\333\214\330\263\330\252/index.xml" +++ "b/docs/tags/file-locking-\332\206\333\214\330\263\330\252/index.xml" @@ -1,186 +1,161 @@ - - - - File Locking چیست on bit-orbit - https://bit-orbit.github.io/tags/file-locking-%DA%86%DB%8C%D8%B3%D8%AA/ - Recent content in File Locking چیست on bit-orbit - Hugo -- gohugo.io - fa - Fri, 09 Feb 2024 01:49:42 +0330 - Linux File Locking چیست؟ - https://bit-orbit.github.io/p/linux-file-locking-%DA%86%DB%8C%D8%B3%D8%AA/ - Fri, 09 Feb 2024 01:49:42 +0330 - - https://bit-orbit.github.io/p/linux-file-locking-%DA%86%DB%8C%D8%B3%D8%AA/ - <img src="https://bit-orbit.github.io/images/post/flilock.jpeg" alt="Featured image of post Linux File Locking چیست؟" /><p>بیایید قبل از اینکه راه حل را ببینیم، اول مشکل را دقیق تر برسی کنیم. +File Locking چیست on bit-orbithttps://bit-orbit.github.io/tags/file-locking-%DA%86%DB%8C%D8%B3%D8%AA/Recent content in File Locking چیست on bit-orbitHugo -- gohugo.iofaFri, 09 Feb 2024 01:49:42 +0330Linux File Locking چیست؟https://bit-orbit.github.io/p/linux-file-locking-%DA%86%DB%8C%D8%B3%D8%AA/Fri, 09 Feb 2024 01:49:42 +0330https://bit-orbit.github.io/p/linux-file-locking-%DA%86%DB%8C%D8%B3%D8%AA/<img src="https://bit-orbit.github.io/images/post/flilock.jpeg" alt="Featured image of post Linux File Locking چیست؟" /><p>بیایید قبل از اینکه راه حل را ببینیم، اول مشکل را دقیق تر برسی کنیم. به این فکر کنید که شما یک فایلی دارید که شامل یک عدد است که اشاره می‌کند به مقدار اعتباری که کاربر در حسابش دارد. حالا اگر قرار باشد یک پورسه اون مقدار را بر اساس ارائه سرویسی، از حساب کاربر کم کند، و پروسه دیگری به دلیل افزایش اعتبار، مقداری را به حساب -کاربر اضافه کند، چه مشکلاتی اتفاق می‌افتد؟</p> -<p>برای اینکه دقیق تر بشیم، این روند رو باهم پیش می‌بریم. +کاربر اضافه کند، چه مشکلاتی اتفاق می‌افتد؟</p> +<p>برای اینکه دقیق تر بشیم، این روند رو باهم پیش می‌بریم. فرض کنید فایلی به اسم amount.txt مقدار 100 داخلش نوشته شده است. و دو پروسه کم و اضافه کردن را اجرا می‌کنیم. توی این مثال،‌ ما می‌خواهیم مقدار 20 از حساب کاربر کم و مقدار 50 به حساب کاربر -اضافه کنیم، پس ما انتظار داریم در انتها فایل ما مقدار 130 را درونش ذخیره کرده باشد.</p> -<ul> -<li>پروسه اول فایل را می‌خواند و مقدار 100 را در حاظه‌اش نگه می‌دارد</li> -<li>پروسه دوم فایل را می‌خواند و مقدار 100 را در حاظه‌اش نگه می‌دارد</li> -<li>پروسه اول مقدار 20 را از 100 کم می‌کند و مقدار 80 را در حافظه ذخیره می‌کند</li> -<li>پروسه دوم مقدار 50 را به 100 اضافه می‌کند و مقدار 150 را در حافظه ذخیره می‌کند</li> -<li>پروسه اول مقدار 80 را در فایل ذخیره می‌کند</li> -<li>پروسه دوم مقدار 150 را در فایل ذخیره می‌کند</li> -</ul> -<p>همینطور که همه ما انتظار داشتیم، ما باید در این فایل مقدار 130 را ذخیره می‌کردیم، +اضافه کنیم، پس ما انتظار داریم در انتها فایل ما مقدار 130 را درونش ذخیره کرده باشد.</p> +<ul> +<li>پروسه اول فایل را می‌خواند و مقدار 100 را در حاظه‌اش نگه می‌دارد</li> +<li>پروسه دوم فایل را می‌خواند و مقدار 100 را در حاظه‌اش نگه می‌دارد</li> +<li>پروسه اول مقدار 20 را از 100 کم می‌کند و مقدار 80 را در حافظه ذخیره می‌کند</li> +<li>پروسه دوم مقدار 50 را به 100 اضافه می‌کند و مقدار 150 را در حافظه ذخیره می‌کند</li> +<li>پروسه اول مقدار 80 را در فایل ذخیره می‌کند</li> +<li>پروسه دوم مقدار 150 را در فایل ذخیره می‌کند</li> +</ul> +<p>همینطور که همه ما انتظار داشتیم، ما باید در این فایل مقدار 130 را ذخیره می‌کردیم، اما پروسه های ما به دلیل اینکه هیچ همکاری و یا هیچ مکانیزمی دیگری ندارند که این مقدار ها را به یکدیگر اطلاع دهند، مشکل -<a class="link" href="https://en.wikipedia.org/wiki/Race_condition#Software" target="_blank" rel="noopener" - >Race condition</a> -رخ می‌دهد.</p> -<p>یکی از راه حل های این مشکل +<a class="link" href="https://en.wikipedia.org/wiki/Race_condition#Software" target="_blank" rel="noopener" +>Race condition</a> +رخ می‌دهد.</p> +<p>یکی از راه حل های این مشکل lock کردن فایل توسط هر پروسه است، که به این کار file locking -گفته می‌شود.</p> -<p><strong>file locking</strong> -یک مکانیزم برای کنترل دسترسی چندین پروسه به یک فایل است.</p> -<blockquote> -<p>توی لینوکس یکی از دستورات خطرناکی که داریم دستور +گفته می‌شود.</p> +<p><strong>file locking</strong> +یک مکانیزم برای کنترل دسترسی چندین پروسه به یک فایل است.</p> +<blockquote> +<p>توی لینوکس یکی از دستورات خطرناکی که داریم دستور sudo rm -rf / است. وقتی این دستور را اجرا کنیم کل فایل های لینوکس ما حذف می‌شود. دلیل اینکار این است که لینوکس به صورت پیشفرض فایل های باز شده را lock -نمی‌کند.</p> -</blockquote> -<p>با اینحال لینوکس دو مکانیزم مختلف -<em>advisory</em> و <em>mandatory</em> -را پشتیبانی می‌کند.</p> -<blockquote> -<p>توی این پست بیشتر تمرکز من روی مکانیزم +نمی‌کند.</p> +</blockquote> +<p>با اینحال لینوکس دو مکانیزم مختلف +<em>advisory</em> و <em>mandatory</em> +را پشتیبانی می‌کند.</p> +<blockquote> +<p>توی این پست بیشتر تمرکز من روی مکانیزم advisory locking(مشورتی) -است.</p> -</blockquote> -<p>این روش به این شکل عمل می‌کند که هیچ پروسه‌ای مجبور به اجرای این روش نیست و اگر حتی +است.</p> +</blockquote> +<p>این روش به این شکل عمل می‌کند که هیچ پروسه‌ای مجبور به اجرای این روش نیست و اگر حتی فایل توسط یک پروسه‌ای lock شده باشد، باز هم پروسه های دیگر می‌توانند به lock بودن فایل اهمیت ندهند و مقدار آن را تغییر دهند. این اتفاق به این دلیل می‌افتد که advisory lock -توسط سیستم عامل و یا فایل سیستم انجام نمی‌شود.</p> -<p>خب بیایید با یک مثال این فرایند را برسی کنیم. مثل مثال قبلی فرض کنید ما مقدار 100 +توسط سیستم عامل و یا فایل سیستم انجام نمی‌شود.</p> +<p>خب بیایید با یک مثال این فرایند را برسی کنیم. مثل مثال قبلی فرض کنید ما مقدار 100 را داخل فایل amount.txt -داریم و می‌خواهیم مقدار 20 از آن کم و مقدار 50 به آن اضافه کنیم.</p> -<ul> -<li>پروسه اول قبل از خواندن فایل، فایل را لاک می‌کند</li> -<li>پروسه دوم برای لاک کردن فایل اقدام می‌کند و از جایی که پروسه اول از پیش فایل را لاک کرده است، برای آزاد شدن لاک صبر می‌کند</li> -<li>پروسه اول مقدار 20 را از 100 کم می‌کند و مقدار 80 را درون فایل می‌نویسد</li> -<li>پروسه اول لاک فایل را آزاد می‌کند.</li> -<li>پروسه دوم فایل را لاک و مقدار جدید 80 را از فایل می‌خواند</li> -<li>پروسه دوم مقدار 50 را به 80 اضافه و مقدار 120 را درون فایل می‌نویسد</li> -<li>پروسه دوم لاک فایل را آزاد می‌کند تا پروسه های دیگر بتوانند با فایل کار کنند.</li> -</ul> -<hr> -<p>اگر شما می‌خواهید این مکانیزم را روی یک فایل اجرا کنید، دستور +داریم و می‌خواهیم مقدار 20 از آن کم و مقدار 50 به آن اضافه کنیم.</p> +<ul> +<li>پروسه اول قبل از خواندن فایل، فایل را لاک می‌کند</li> +<li>پروسه دوم برای لاک کردن فایل اقدام می‌کند و از جایی که پروسه اول از پیش فایل را لاک کرده است، برای آزاد شدن لاک صبر می‌کند</li> +<li>پروسه اول مقدار 20 را از 100 کم می‌کند و مقدار 80 را درون فایل می‌نویسد</li> +<li>پروسه اول لاک فایل را آزاد می‌کند.</li> +<li>پروسه دوم فایل را لاک و مقدار جدید 80 را از فایل می‌خواند</li> +<li>پروسه دوم مقدار 50 را به 80 اضافه و مقدار 120 را درون فایل می‌نویسد</li> +<li>پروسه دوم لاک فایل را آزاد می‌کند تا پروسه های دیگر بتوانند با فایل کار کنند.</li> +</ul> +<hr> +<p>اگر شما می‌خواهید این مکانیزم را روی یک فایل اجرا کنید، دستور flock -برای شما اینکار را خواهد کرد.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">flock <span class="o">[</span>options<span class="o">]</span> file<span class="p">|</span>directory <span class="nb">command</span> <span class="o">[</span>arguments<span class="o">]</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>این کامند در حالت عادی از شما یک فایل و یک دستور خواهد گرفت و مکانیزم +برای شما اینکار را خواهد کرد.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">flock <span class="o">[</span>options<span class="o">]</span> file<span class="p">|</span>directory <span class="nb">command</span> <span class="o">[</span>arguments<span class="o">]</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>این کامند در حالت عادی از شما یک فایل و یک دستور خواهد گرفت و مکانیزم advisory lock -را روی ان فایل اجرا خواهد کرد.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">flock /tmp/fli <span class="nb">echo</span> 12&gt;/tmp/fli -</span></span></code></pre></td></tr></table> -</div> -</div><p>برای اینکه روند را بهتر درک کنیم یک فایل +را روی ان فایل اجرا خواهد کرد.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">flock /tmp/fli <span class="nb">echo</span> 12&gt;/tmp/fli +</span></span></code></pre></td></tr></table> +</div> +</div><p>برای اینکه روند را بهتر درک کنیم یک فایل bash -می‌نویسیم که بتوانیم مثال اولیه را روی آن اجرا کنیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt">10 -</span><span class="lnt">11 -</span><span class="lnt">12 -</span><span class="lnt">13 -</span><span class="lnt">14 -</span><span class="lnt">15 -</span><span class="lnt">16 -</span><span class="lnt">17 -</span><span class="lnt">18 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="cp">#!/bin/bash -</span></span></span><span class="line"><span class="cl"><span class="cp"></span><span class="nv">file</span><span class="o">=</span><span class="s2">&#34;balance.dat&#34;</span> -</span></span><span class="line"><span class="cl"><span class="nv">value</span><span class="o">=</span><span class="k">$(</span>cat <span class="nv">$file</span><span class="k">)</span> -</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Read current balance:</span><span class="nv">$value</span><span class="s2">&#34;</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl"><span class="c1">#sleep 10 seconds to simulate business calculation</span> -</span></span><span class="line"><span class="cl"><span class="nv">progress</span><span class="o">=</span><span class="m">10</span> -</span></span><span class="line"><span class="cl"><span class="k">while</span> <span class="o">[[</span> <span class="nv">$progress</span> -lt <span class="m">101</span> <span class="o">]]</span><span class="p">;</span> <span class="k">do</span> -</span></span><span class="line"><span class="cl"> <span class="nb">echo</span> -n -e <span class="s2">&#34;\033[77DCalculating new balance..</span><span class="nv">$progress</span><span class="s2">%&#34;</span> -</span></span><span class="line"><span class="cl"> sleep <span class="m">1</span> -</span></span><span class="line"><span class="cl"> <span class="nv">progress</span><span class="o">=</span><span class="k">$((</span><span class="m">10</span><span class="o">+</span>progress<span class="k">))</span> -</span></span><span class="line"><span class="cl"><span class="k">done</span> -</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;&#34;</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl"><span class="nv">value</span><span class="o">=</span><span class="k">$((</span>value+<span class="nv">$1</span><span class="k">))</span> -</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Write new balance (</span><span class="nv">$value</span><span class="s2">) back to </span><span class="nv">$file</span><span class="s2">.&#34;</span> -</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="nv">$value</span> &gt; <span class="s2">&#34;</span><span class="nv">$file</span><span class="s2">&#34;</span> -</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Done.&#34;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>ما این فایل را همزمان با دو ترمینال اجرا می‌کنیم.</p> -<p><img src="https://bit-orbit.github.io/images/post/advisory_lock.gif" - - - - loading="lazy" - - alt="advisory lock" - - -></p> -<p>همینطور که می‌بینید پروسه دوم برای اینکه محتوای فایل را تغییر دهد، باید صبر کند تا لاک فایل -آزاد شود.</p> -<hr> -<p>این پست خلاصه‌ای بود از -<a class="link" href="https://www.baeldung.com/linux/file-locking" target="_blank" rel="noopener" - >این بلاگ</a> +می‌نویسیم که بتوانیم مثال اولیه را روی آن اجرا کنیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="cp">#!/bin/bash +</span></span></span><span class="line"><span class="cl"><span class="cp"></span><span class="nv">file</span><span class="o">=</span><span class="s2">&#34;balance.dat&#34;</span> +</span></span><span class="line"><span class="cl"><span class="nv">value</span><span class="o">=</span><span class="k">$(</span>cat <span class="nv">$file</span><span class="k">)</span> +</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Read current balance:</span><span class="nv">$value</span><span class="s2">&#34;</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="c1">#sleep 10 seconds to simulate business calculation</span> +</span></span><span class="line"><span class="cl"><span class="nv">progress</span><span class="o">=</span><span class="m">10</span> +</span></span><span class="line"><span class="cl"><span class="k">while</span> <span class="o">[[</span> <span class="nv">$progress</span> -lt <span class="m">101</span> <span class="o">]]</span><span class="p">;</span> <span class="k">do</span> +</span></span><span class="line"><span class="cl"> <span class="nb">echo</span> -n -e <span class="s2">&#34;\033[77DCalculating new balance..</span><span class="nv">$progress</span><span class="s2">%&#34;</span> +</span></span><span class="line"><span class="cl"> sleep <span class="m">1</span> +</span></span><span class="line"><span class="cl"> <span class="nv">progress</span><span class="o">=</span><span class="k">$((</span><span class="m">10</span><span class="o">+</span>progress<span class="k">))</span> +</span></span><span class="line"><span class="cl"><span class="k">done</span> +</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;&#34;</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="nv">value</span><span class="o">=</span><span class="k">$((</span>value+<span class="nv">$1</span><span class="k">))</span> +</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Write new balance (</span><span class="nv">$value</span><span class="s2">) back to </span><span class="nv">$file</span><span class="s2">.&#34;</span> +</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="nv">$value</span> &gt; <span class="s2">&#34;</span><span class="nv">$file</span><span class="s2">&#34;</span> +</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Done.&#34;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>ما این فایل را همزمان با دو ترمینال اجرا می‌کنیم.</p> +<p><img src="https://bit-orbit.github.io/images/post/advisory_lock.gif" +loading="lazy" +alt="advisory lock" +></p> +<p>همینطور که می‌بینید پروسه دوم برای اینکه محتوای فایل را تغییر دهد، باید صبر کند تا لاک فایل +آزاد شود.</p> +<hr> +<p>این پست خلاصه‌ای بود از +<a class="link" href="https://www.baeldung.com/linux/file-locking" target="_blank" rel="noopener" +>این بلاگ</a> که هر دو نوع advisory lock و mandatory lock -را توضیح می‌دهد.</p> -<p>برای من سوال بود که من چطور می‌توانم مکانیزمی که +را توضیح می‌دهد.</p> +<p>برای من سوال بود که من چطور می‌توانم مکانیزمی که flock استفاده می‌کند را در برنامه های خودم پیاده سازی کنم، و خب نتیجه این بود که معمولا برای advisory lock هر زبانی یک کتابخانه استاندار دارد توی -<a class="link" href="https://docs.python.org/3/library/fcntl.html" target="_blank" rel="noopener" - >پایتون کتابخانه</a> -<code>fcntl</code> -اینکار را انجام می‌دهد.</p> - - - - - +<a class="link" href="https://docs.python.org/3/library/fcntl.html" target="_blank" rel="noopener" +>پایتون کتابخانه</a> +<code>fcntl</code> +اینکار را انجام می‌دهد.</p> \ No newline at end of file diff --git "a/docs/tags/file-locking-\332\206\333\214\330\263\330\252/page/1/index.html" "b/docs/tags/file-locking-\332\206\333\214\330\263\330\252/page/1/index.html" index 57b01e9..86f282f 100644 --- "a/docs/tags/file-locking-\332\206\333\214\330\263\330\252/page/1/index.html" +++ "b/docs/tags/file-locking-\332\206\333\214\330\263\330\252/page/1/index.html" @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/file-locking-%DA%86%DB%8C%D8%B3%D8%AA/ - - - - - - +https://bit-orbit.github.io/tags/file-locking-%DA%86%DB%8C%D8%B3%D8%AA/ + \ No newline at end of file diff --git "a/docs/tags/forkbomb-\332\206\333\214\330\263\330\252/index.html" "b/docs/tags/forkbomb-\332\206\333\214\330\263\330\252/index.html" index e7065eb..231f539 100644 --- "a/docs/tags/forkbomb-\332\206\333\214\330\263\330\252/index.html" +++ "b/docs/tags/forkbomb-\332\206\333\214\330\263\330\252/index.html" @@ -1,559 +1,37 @@ - - - - -Tag: Forkbomb چیست - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

Forkbomb چیست

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: Forkbomb چیست - bit-orbit + \ No newline at end of file diff --git "a/docs/tags/forkbomb-\332\206\333\214\330\263\330\252/index.xml" "b/docs/tags/forkbomb-\332\206\333\214\330\263\330\252/index.xml" index df96988..3ebbadc 100644 --- "a/docs/tags/forkbomb-\332\206\333\214\330\263\330\252/index.xml" +++ "b/docs/tags/forkbomb-\332\206\333\214\330\263\330\252/index.xml" @@ -1,18 +1,4 @@ - - - - Forkbomb چیست on bit-orbit - https://bit-orbit.github.io/tags/forkbomb-%DA%86%DB%8C%D8%B3%D8%AA/ - Recent content in Forkbomb چیست on bit-orbit - Hugo -- gohugo.io - fa - Wed, 27 Dec 2023 16:39:27 +0330 - فورک بمب چیست و چطور کار می‌کند؟ - https://bit-orbit.github.io/p/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B7%D9%88%D8%B1-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF/ - Wed, 27 Dec 2023 16:39:27 +0330 - - https://bit-orbit.github.io/p/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B7%D9%88%D8%B1-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF/ - <img src="https://bit-orbit.github.io/images/post/fork_bomb.jpg" alt="Featured image of post فورک بمب چیست و چطور کار می‌کند؟" /><p>اوایل که لینوکس نصب کرده بودم کامند هایی که توی +Forkbomb چیست on bit-orbithttps://bit-orbit.github.io/tags/forkbomb-%DA%86%DB%8C%D8%B3%D8%AA/Recent content in Forkbomb چیست on bit-orbitHugo -- gohugo.iofaWed, 27 Dec 2023 16:39:27 +0330فورک بمب چیست و چطور کار می‌کند؟https://bit-orbit.github.io/p/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B7%D9%88%D8%B1-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF/Wed, 27 Dec 2023 16:39:27 +0330https://bit-orbit.github.io/p/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B7%D9%88%D8%B1-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF/<img src="https://bit-orbit.github.io/images/post/fork_bomb.jpg" alt="Featured image of post فورک بمب چیست و چطور کار می‌کند؟" /><p>اوایل که لینوکس نصب کرده بودم کامند هایی که توی فروم های مختلف می‌دیدم و برای من جدید بود را دوست داشتم یاد بگیرم و بدانم کار آنها چی هست، برای همین هر کامندی را که می‌دیدم در @@ -21,306 +7,283 @@ هر کامندی اشتباهه بود. یکی از این کامند ها که اجرا کرده بودم، به اسم فورک بمب (fork bomb) -شناخته می‌شود. کامند به این صورت هست</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>:<span class="p">&amp;</span> <span class="o">}</span><span class="p">;</span>: -</span></span></code></pre></td></tr></table> -</div> -</div><p>اگر این کامند را اجرا کنید(امیدوارم تا الان نکرده باشید) تقریبا زیر یک دقیقه سیستم شما -هنگ می‌کند و مجبور می‌شوید سیستم را ریبوت کنید.</p> -<hr> -<p>توی این پست ساختار این کامند را تشریح می‌کنم و باهم +شناخته می‌شود. کامند به این صورت هست</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>:<span class="p">&amp;</span> <span class="o">}</span><span class="p">;</span>: +</span></span></code></pre></td></tr></table> +</div> +</div><p>اگر این کامند را اجرا کنید(امیدوارم تا الان نکرده باشید) تقریبا زیر یک دقیقه سیستم شما +هنگ می‌کند و مجبور می‌شوید سیستم را ریبوت کنید.</p> +<hr> +<p>توی این پست ساختار این کامند را تشریح می‌کنم و باهم کمی bash -یاد می‌گیریم.</p> -<p>بیایید اول با مفهوم +یاد می‌گیریم.</p> +<p>بیایید اول با مفهوم recustion آشنا بشیم، زمانی که یک قطعه کد خودش اجرا کند، recusion می‌گویم. مثلا شما یک فانکشن می‌نویسید به اسم -<em>fn</em> +<em>fn</em> و توی بدنه فانکشن فقط خود همین فانکشن را صدا می‌‌کنید، به این کار call recursion گفته می‌شود. فورک بمب دقیقا همین کار را می‌کند. به این -معنی که خودش را دائم اجرا می‌کند!</p> -<p>به این فکر کنید که وقتی یک پراسس خودش را اجرا می‌کند +معنی که خودش را دائم اجرا می‌کند!</p> +<p>به این فکر کنید که وقتی یک پراسس خودش را اجرا می‌کند ،مجدد پراسس های اجرا شده توسط اون هم دائم خودشان را اجرا می‌کنند، و دوباره هر پروسه‌ای که اجرا می‌شود بازم خودش را اجرا می‌کند و این روند تا زمانی که رم و پردازنده سیستم تحمل -داشته باشد ادامه دارد.</p> -<blockquote> -<p>درختی که می‌بینید را اجرای فورک بمب درنظر بگیرید، +داشته باشد ادامه دارد.</p> +<blockquote> +<p>درختی که می‌بینید را اجرای فورک بمب درنظر بگیرید، هر ستاره یک پروسه جدید است که توسط پروسه قبلی اجرا شده، و خودش هم دو پروسه جدید باز می‌کند و هر یک از پروسه ها -هم همین روند را ادامه می‌دهند.</p> -</blockquote> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt">10 -</span><span class="lnt">11 -</span><span class="lnt">12 -</span><span class="lnt">13 -</span><span class="lnt">14 -</span><span class="lnt">15 -</span><span class="lnt">16 -</span><span class="lnt">17 -</span><span class="lnt">18 -</span><span class="lnt">19 -</span><span class="lnt">20 -</span><span class="lnt">21 -</span><span class="lnt">22 -</span><span class="lnt">23 -</span><span class="lnt">24 -</span><span class="lnt">25 -</span><span class="lnt">26 -</span><span class="lnt">27 -</span><span class="lnt">28 -</span><span class="lnt">29 -</span><span class="lnt">30 -</span><span class="lnt">31 -</span><span class="lnt">32 -</span><span class="lnt">33 -</span><span class="lnt">34 -</span><span class="lnt">35 -</span><span class="lnt">36 -</span><span class="lnt">37 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w">   </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w">   </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><p>من برای اینکه سیستم‌ خودم هنگ نکند فورک بمب را روی داکر +هم همین روند را ادامه می‌دهند.</p> +</blockquote> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span><span class="lnt">19 +</span><span class="lnt">20 +</span><span class="lnt">21 +</span><span class="lnt">22 +</span><span class="lnt">23 +</span><span class="lnt">24 +</span><span class="lnt">25 +</span><span class="lnt">26 +</span><span class="lnt">27 +</span><span class="lnt">28 +</span><span class="lnt">29 +</span><span class="lnt">30 +</span><span class="lnt">31 +</span><span class="lnt">32 +</span><span class="lnt">33 +</span><span class="lnt">34 +</span><span class="lnt">35 +</span><span class="lnt">36 +</span><span class="lnt">37 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w">   </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w">   </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><p>من برای اینکه سیستم‌ خودم هنگ نکند فورک بمب را روی داکر اجرا کردم و خب حتی یک ثانیه هم طول نکشید و آن کانتینر -کاملا هنگ کرد.</p> -<blockquote> -<p>قبل از اجرا -<a class="link" href="https://bit-orbit.github.io/images/post/forkbomb_docker0.jpg" ><img src="https://bit-orbit.github.io/images/post/forkbomb_docker0.jpg" - - - - loading="lazy" - - alt="forkbomb on docker" - - -></a></p> -</blockquote> -<blockquote> -<p>زمان اجرا -<a class="link" href="https://bit-orbit.github.io/images/post/forkbomb_docker.jpg" ><img src="https://bit-orbit.github.io/images/post/forkbomb_docker.jpg" - - - - loading="lazy" - - alt="forkbomb on docker" - - -></a></p> -</blockquote> -<hr> -<p>بیایید وارد کد بشیم، این علامت ها و کاراکتر ها چی هستند؟</p> -<!-- برای تعریف یک فانکشن توی +کاملا هنگ کرد.</p> +<blockquote> +<p>قبل از اجرا +<a class="link" href="https://bit-orbit.github.io/images/post/forkbomb_docker0.jpg" ><img src="https://bit-orbit.github.io/images/post/forkbomb_docker0.jpg" +loading="lazy" +alt="forkbomb on docker" +></a></p> +</blockquote> +<blockquote> +<p>زمان اجرا +<a class="link" href="https://bit-orbit.github.io/images/post/forkbomb_docker.jpg" ><img src="https://bit-orbit.github.io/images/post/forkbomb_docker.jpg" +loading="lazy" +alt="forkbomb on docker" +></a></p> +</blockquote> +<hr> +<p>بیایید وارد کد بشیم، این علامت ها و کاراکتر ها چی هستند؟</p> +<!-- برای تعریف یک فانکشن توی bash -ما به این صورت عمل می‌کنیم که اول اسم فانکشن بعد پرانتز -و بعد کرلی براکت(توی فارسی می‌گیم آکولاد) و داخل کرلی +ما به این صورت عمل می‌کنیم که اول اسم فانکشن بعد پرانتز +و بعد کرلی براکت(توی فارسی می‌گیم آکولاد) و داخل کرلی براکت ما قطعه کد را می‌نویسیم. مثلا برای فانکشنی که یک اسم را روی صفحه چاپ کنه به این صورت عمل می‌کنیم - ```bash -pname(){ echo 'foo'; } -``` --> -<p>اگه دقت کنید اولین کاراکتر فورک بمب، علامت -<code>:</code> +pname(){ echo 'foo'; } +``` --> +<p>اگه دقت کنید اولین کاراکتر فورک بمب، علامت +<code>:</code> است. این علامت اسم فانکشن ما است. برخلاف قانون تعریف نام برای متغییر ها توی bash، می‌توانیم از کاراتر های یونیکد هم برای تعریف نام فانکشن استفاده کنیم، مثلا یک -کاراکتر چینی یا حتی ایموجی!</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span><span class="lnt">3 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">雨<span class="o">(){</span> <span class="nb">echo</span> <span class="s1">&#39;rain&#39;</span><span class="p">;</span> <span class="o">}</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">❤️<span class="o">(){</span> <span class="nb">echo</span> <span class="s1">&#39;love&#39;</span><span class="p">;</span> <span class="o">}</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>خب در ادامه علامت های -<code>()</code> +کاراکتر چینی یا حتی ایموجی!</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">雨<span class="o">(){</span> <span class="nb">echo</span> <span class="s1">&#39;rain&#39;</span><span class="p">;</span> <span class="o">}</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">❤️<span class="o">(){</span> <span class="nb">echo</span> <span class="s1">&#39;love&#39;</span><span class="p">;</span> <span class="o">}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>خب در ادامه علامت های +<code>()</code> را می‌بینیم، توی bash برای تعریف فانکشن قبل از اسم فانکشن هیچ کلمه کلیدی مثل fn, def, void و &hellip; نیاز نیست، فقط بجای آن باید -<strong>بعد از اسم فانکشن</strong> -پرانتز ها را بگذارید.</p> -<p>مثل خیلی از زبان های برنامه نویسی، بدنه فانکشن توی -کرلی براکت تعریف می‌شود.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){}</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>پس تا اینجا ما یک فانکشن ساده با نام -<code>:</code> -تعریف کردیم.</p> -<p>داخل بدنه این فانکشن، اسمی که برای فانکشن قرار دادیم +<strong>بعد از اسم فانکشن</strong> +پرانتز ها را بگذارید.</p> +<p>مثل خیلی از زبان های برنامه نویسی، بدنه فانکشن توی +کرلی براکت تعریف می‌شود.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>پس تا اینجا ما یک فانکشن ساده با نام +<code>:</code> +تعریف کردیم.</p> +<p>داخل بدنه این فانکشن، اسمی که برای فانکشن قرار دادیم همان -<code>:</code> +<code>:</code> را می‌نویسیم. با اینکار دقیقا call recursion را انجام دادیم، و باعث شدیم که برنامه خودش را -توی هر اجرا مجدد اجرا کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> : <span class="o">}</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>دقت کنید توی سینتکس +توی هر اجرا مجدد اجرا کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> : <span class="o">}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>دقت کنید توی سینتکس bash -حتما باید یک فاصله برای کدی که داخلی کرلی براکت می‌نویسم قرار بدیم</p> -</blockquote> -<p>علامت -<code>|</code> +حتما باید یک فاصله برای کدی که داخلی کرلی براکت می‌نویسم قرار بدیم</p> +</blockquote> +<p>علامت +<code>|</code> به اسم پایپ شناخته می‌شود، وظیفه این علامت دادن خروجی یک کامند بعنوان ورودی به یک کامند دیگر هست، حلا دقت کنید که ما خروجی اجرای -<code>:</code> -را به خودش می‌دهیم. دقیقا به این شکل</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>: <span class="o">}</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>با این علامت هر پروسه دو بار پروسه جدیدی از خودش می‌سازد +<code>:</code> +را به خودش می‌دهیم. دقیقا به این شکل</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>: <span class="o">}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>با این علامت هر پروسه دو بار پروسه جدیدی از خودش می‌سازد اگر از این علامت استفاده نکنیم، پروسه ما به صورت خطی خودش را اجرا خواهد کرد، اینطوری کد ما با یک حلقه -<code>while</code> -تفاوتی زیادی نخواهد داشت.</p> -<p>علامت -<code>&amp;</code> +<code>while</code> +تفاوتی زیادی نخواهد داشت.</p> +<p>علامت +<code>&amp;</code> اجرای یک کامند را به بکگراند(پس زمینه) می‌برد. برای مثال بعد از اجرای یک دستور باید صبر کنید پروسه آن تمام شود تا بتوانید دستور بعدی را اجرا کنید. ولی اگر از علامت -<code>&amp;</code> +<code>&amp;</code> بعد از هر دستور استفاده کنید، دیگر نیاز نیست صبر کنید تا روند اجرای آن برنامه تمام شود. درواقع با علامت -<code>&amp;</code> +<code>&amp;</code> شما می‌توانید هر برنامه را در بکگراند اجرا کنید. حالا توی فورک بمب این علامت باعث می‌شود تا فانشکنی که اجرا کردین درحالی که کارش به اتمام -نرسیده است، فانکشن بعدی اجرا بشود.</p> -<p><img src="https://bit-orbit.github.io/images/post/forkbomb_and.jpg" - - - - loading="lazy" - - alt="& in bash" - - -></p> -<p>و بعد علامت -<code>;</code> +نرسیده است، فانکشن بعدی اجرا بشود.</p> +<p><img src="https://bit-orbit.github.io/images/post/forkbomb_and.jpg" +loading="lazy" +alt="& in bash" +></p> +<p>و بعد علامت +<code>;</code> را می‌بینیم. این علامت کامند ها را از هم جدا می‌کند. مثلا شما می‌توانید چند کامند مختلف را توی یک خط بنویسید. توی فورک بمب این علامت فانکشنی که تعریف کردین را از -دستور بعدی(که اجرا کننده اون فانکشن هست)جدا می‌کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s1">&#39;foo&#39;</span><span class="p">;</span> <span class="nb">echo</span> <span class="s1">&#39;bar&#39;</span><span class="p">;</span> <span class="nb">echo</span> <span class="s1">&#39;baz&#39;</span><span class="p">;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>آخرین علامتی که توی فورک بمب داریم همون علامت -<code>:</code> +دستور بعدی(که اجرا کننده اون فانکشن هست)جدا می‌کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s1">&#39;foo&#39;</span><span class="p">;</span> <span class="nb">echo</span> <span class="s1">&#39;bar&#39;</span><span class="p">;</span> <span class="nb">echo</span> <span class="s1">&#39;baz&#39;</span><span class="p">;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>آخرین علامتی که توی فورک بمب داریم همون علامت +<code>:</code> یا همون اسمی هست که برای فانکشن قرار دادیم. خیلی ساده توی bash -برای اجرای یک فانکشن فقط اسم‌ش را می‌نویسیم.</p> -<p>و تمام! ما یاد گرفتیم چطور فورک بمب رو بنویسیم و دیگه -نیاز نیست حفظ‌ش کنیم :)</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>:<span class="p">&amp;</span> <span class="o">}</span><span class="p">;</span>: -</span></span></code></pre></td></tr></table> -</div> -</div> - - - - +برای اجرای یک فانکشن فقط اسم‌ش را می‌نویسیم.</p> +<p>و تمام! ما یاد گرفتیم چطور فورک بمب رو بنویسیم و دیگه +نیاز نیست حفظ‌ش کنیم :)</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>:<span class="p">&amp;</span> <span class="o">}</span><span class="p">;</span>: +</span></span></code></pre></td></tr></table> +</div> +</div> \ No newline at end of file diff --git "a/docs/tags/forkbomb-\332\206\333\214\330\263\330\252/page/1/index.html" "b/docs/tags/forkbomb-\332\206\333\214\330\263\330\252/page/1/index.html" index 172b67a..db8abd2 100644 --- "a/docs/tags/forkbomb-\332\206\333\214\330\263\330\252/page/1/index.html" +++ "b/docs/tags/forkbomb-\332\206\333\214\330\263\330\252/page/1/index.html" @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/forkbomb-%DA%86%DB%8C%D8%B3%D8%AA/ - - - - - - +https://bit-orbit.github.io/tags/forkbomb-%DA%86%DB%8C%D8%B3%D8%AA/ + \ No newline at end of file diff --git a/docs/tags/how-to-lock-file-in-linux/index.html b/docs/tags/how-to-lock-file-in-linux/index.html index 2fc1eda..aeb8140 100644 --- a/docs/tags/how-to-lock-file-in-linux/index.html +++ b/docs/tags/how-to-lock-file-in-linux/index.html @@ -1,559 +1,37 @@ - - - - -Tag: How to Lock File in Linux? - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

How to Lock File in Linux?

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: How to Lock File in Linux? - bit-orbit +

Tags

1 صفحه

How to Lock File in Linux?

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git a/docs/tags/how-to-lock-file-in-linux/index.xml b/docs/tags/how-to-lock-file-in-linux/index.xml index 2af298b..476994c 100644 --- a/docs/tags/how-to-lock-file-in-linux/index.xml +++ b/docs/tags/how-to-lock-file-in-linux/index.xml @@ -1,186 +1,161 @@ - - - - How to Lock File in Linux? on bit-orbit - https://bit-orbit.github.io/tags/how-to-lock-file-in-linux/ - Recent content in How to Lock File in Linux? on bit-orbit - Hugo -- gohugo.io - fa - Fri, 09 Feb 2024 01:49:42 +0330 - Linux File Locking چیست؟ - https://bit-orbit.github.io/p/linux-file-locking-%DA%86%DB%8C%D8%B3%D8%AA/ - Fri, 09 Feb 2024 01:49:42 +0330 - - https://bit-orbit.github.io/p/linux-file-locking-%DA%86%DB%8C%D8%B3%D8%AA/ - <img src="https://bit-orbit.github.io/images/post/flilock.jpeg" alt="Featured image of post Linux File Locking چیست؟" /><p>بیایید قبل از اینکه راه حل را ببینیم، اول مشکل را دقیق تر برسی کنیم. +How to Lock File in Linux? on bit-orbithttps://bit-orbit.github.io/tags/how-to-lock-file-in-linux/Recent content in How to Lock File in Linux? on bit-orbitHugo -- gohugo.iofaFri, 09 Feb 2024 01:49:42 +0330Linux File Locking چیست؟https://bit-orbit.github.io/p/linux-file-locking-%DA%86%DB%8C%D8%B3%D8%AA/Fri, 09 Feb 2024 01:49:42 +0330https://bit-orbit.github.io/p/linux-file-locking-%DA%86%DB%8C%D8%B3%D8%AA/<img src="https://bit-orbit.github.io/images/post/flilock.jpeg" alt="Featured image of post Linux File Locking چیست؟" /><p>بیایید قبل از اینکه راه حل را ببینیم، اول مشکل را دقیق تر برسی کنیم. به این فکر کنید که شما یک فایلی دارید که شامل یک عدد است که اشاره می‌کند به مقدار اعتباری که کاربر در حسابش دارد. حالا اگر قرار باشد یک پورسه اون مقدار را بر اساس ارائه سرویسی، از حساب کاربر کم کند، و پروسه دیگری به دلیل افزایش اعتبار، مقداری را به حساب -کاربر اضافه کند، چه مشکلاتی اتفاق می‌افتد؟</p> -<p>برای اینکه دقیق تر بشیم، این روند رو باهم پیش می‌بریم. +کاربر اضافه کند، چه مشکلاتی اتفاق می‌افتد؟</p> +<p>برای اینکه دقیق تر بشیم، این روند رو باهم پیش می‌بریم. فرض کنید فایلی به اسم amount.txt مقدار 100 داخلش نوشته شده است. و دو پروسه کم و اضافه کردن را اجرا می‌کنیم. توی این مثال،‌ ما می‌خواهیم مقدار 20 از حساب کاربر کم و مقدار 50 به حساب کاربر -اضافه کنیم، پس ما انتظار داریم در انتها فایل ما مقدار 130 را درونش ذخیره کرده باشد.</p> -<ul> -<li>پروسه اول فایل را می‌خواند و مقدار 100 را در حاظه‌اش نگه می‌دارد</li> -<li>پروسه دوم فایل را می‌خواند و مقدار 100 را در حاظه‌اش نگه می‌دارد</li> -<li>پروسه اول مقدار 20 را از 100 کم می‌کند و مقدار 80 را در حافظه ذخیره می‌کند</li> -<li>پروسه دوم مقدار 50 را به 100 اضافه می‌کند و مقدار 150 را در حافظه ذخیره می‌کند</li> -<li>پروسه اول مقدار 80 را در فایل ذخیره می‌کند</li> -<li>پروسه دوم مقدار 150 را در فایل ذخیره می‌کند</li> -</ul> -<p>همینطور که همه ما انتظار داشتیم، ما باید در این فایل مقدار 130 را ذخیره می‌کردیم، +اضافه کنیم، پس ما انتظار داریم در انتها فایل ما مقدار 130 را درونش ذخیره کرده باشد.</p> +<ul> +<li>پروسه اول فایل را می‌خواند و مقدار 100 را در حاظه‌اش نگه می‌دارد</li> +<li>پروسه دوم فایل را می‌خواند و مقدار 100 را در حاظه‌اش نگه می‌دارد</li> +<li>پروسه اول مقدار 20 را از 100 کم می‌کند و مقدار 80 را در حافظه ذخیره می‌کند</li> +<li>پروسه دوم مقدار 50 را به 100 اضافه می‌کند و مقدار 150 را در حافظه ذخیره می‌کند</li> +<li>پروسه اول مقدار 80 را در فایل ذخیره می‌کند</li> +<li>پروسه دوم مقدار 150 را در فایل ذخیره می‌کند</li> +</ul> +<p>همینطور که همه ما انتظار داشتیم، ما باید در این فایل مقدار 130 را ذخیره می‌کردیم، اما پروسه های ما به دلیل اینکه هیچ همکاری و یا هیچ مکانیزمی دیگری ندارند که این مقدار ها را به یکدیگر اطلاع دهند، مشکل -<a class="link" href="https://en.wikipedia.org/wiki/Race_condition#Software" target="_blank" rel="noopener" - >Race condition</a> -رخ می‌دهد.</p> -<p>یکی از راه حل های این مشکل +<a class="link" href="https://en.wikipedia.org/wiki/Race_condition#Software" target="_blank" rel="noopener" +>Race condition</a> +رخ می‌دهد.</p> +<p>یکی از راه حل های این مشکل lock کردن فایل توسط هر پروسه است، که به این کار file locking -گفته می‌شود.</p> -<p><strong>file locking</strong> -یک مکانیزم برای کنترل دسترسی چندین پروسه به یک فایل است.</p> -<blockquote> -<p>توی لینوکس یکی از دستورات خطرناکی که داریم دستور +گفته می‌شود.</p> +<p><strong>file locking</strong> +یک مکانیزم برای کنترل دسترسی چندین پروسه به یک فایل است.</p> +<blockquote> +<p>توی لینوکس یکی از دستورات خطرناکی که داریم دستور sudo rm -rf / است. وقتی این دستور را اجرا کنیم کل فایل های لینوکس ما حذف می‌شود. دلیل اینکار این است که لینوکس به صورت پیشفرض فایل های باز شده را lock -نمی‌کند.</p> -</blockquote> -<p>با اینحال لینوکس دو مکانیزم مختلف -<em>advisory</em> و <em>mandatory</em> -را پشتیبانی می‌کند.</p> -<blockquote> -<p>توی این پست بیشتر تمرکز من روی مکانیزم +نمی‌کند.</p> +</blockquote> +<p>با اینحال لینوکس دو مکانیزم مختلف +<em>advisory</em> و <em>mandatory</em> +را پشتیبانی می‌کند.</p> +<blockquote> +<p>توی این پست بیشتر تمرکز من روی مکانیزم advisory locking(مشورتی) -است.</p> -</blockquote> -<p>این روش به این شکل عمل می‌کند که هیچ پروسه‌ای مجبور به اجرای این روش نیست و اگر حتی +است.</p> +</blockquote> +<p>این روش به این شکل عمل می‌کند که هیچ پروسه‌ای مجبور به اجرای این روش نیست و اگر حتی فایل توسط یک پروسه‌ای lock شده باشد، باز هم پروسه های دیگر می‌توانند به lock بودن فایل اهمیت ندهند و مقدار آن را تغییر دهند. این اتفاق به این دلیل می‌افتد که advisory lock -توسط سیستم عامل و یا فایل سیستم انجام نمی‌شود.</p> -<p>خب بیایید با یک مثال این فرایند را برسی کنیم. مثل مثال قبلی فرض کنید ما مقدار 100 +توسط سیستم عامل و یا فایل سیستم انجام نمی‌شود.</p> +<p>خب بیایید با یک مثال این فرایند را برسی کنیم. مثل مثال قبلی فرض کنید ما مقدار 100 را داخل فایل amount.txt -داریم و می‌خواهیم مقدار 20 از آن کم و مقدار 50 به آن اضافه کنیم.</p> -<ul> -<li>پروسه اول قبل از خواندن فایل، فایل را لاک می‌کند</li> -<li>پروسه دوم برای لاک کردن فایل اقدام می‌کند و از جایی که پروسه اول از پیش فایل را لاک کرده است، برای آزاد شدن لاک صبر می‌کند</li> -<li>پروسه اول مقدار 20 را از 100 کم می‌کند و مقدار 80 را درون فایل می‌نویسد</li> -<li>پروسه اول لاک فایل را آزاد می‌کند.</li> -<li>پروسه دوم فایل را لاک و مقدار جدید 80 را از فایل می‌خواند</li> -<li>پروسه دوم مقدار 50 را به 80 اضافه و مقدار 120 را درون فایل می‌نویسد</li> -<li>پروسه دوم لاک فایل را آزاد می‌کند تا پروسه های دیگر بتوانند با فایل کار کنند.</li> -</ul> -<hr> -<p>اگر شما می‌خواهید این مکانیزم را روی یک فایل اجرا کنید، دستور +داریم و می‌خواهیم مقدار 20 از آن کم و مقدار 50 به آن اضافه کنیم.</p> +<ul> +<li>پروسه اول قبل از خواندن فایل، فایل را لاک می‌کند</li> +<li>پروسه دوم برای لاک کردن فایل اقدام می‌کند و از جایی که پروسه اول از پیش فایل را لاک کرده است، برای آزاد شدن لاک صبر می‌کند</li> +<li>پروسه اول مقدار 20 را از 100 کم می‌کند و مقدار 80 را درون فایل می‌نویسد</li> +<li>پروسه اول لاک فایل را آزاد می‌کند.</li> +<li>پروسه دوم فایل را لاک و مقدار جدید 80 را از فایل می‌خواند</li> +<li>پروسه دوم مقدار 50 را به 80 اضافه و مقدار 120 را درون فایل می‌نویسد</li> +<li>پروسه دوم لاک فایل را آزاد می‌کند تا پروسه های دیگر بتوانند با فایل کار کنند.</li> +</ul> +<hr> +<p>اگر شما می‌خواهید این مکانیزم را روی یک فایل اجرا کنید، دستور flock -برای شما اینکار را خواهد کرد.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">flock <span class="o">[</span>options<span class="o">]</span> file<span class="p">|</span>directory <span class="nb">command</span> <span class="o">[</span>arguments<span class="o">]</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>این کامند در حالت عادی از شما یک فایل و یک دستور خواهد گرفت و مکانیزم +برای شما اینکار را خواهد کرد.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">flock <span class="o">[</span>options<span class="o">]</span> file<span class="p">|</span>directory <span class="nb">command</span> <span class="o">[</span>arguments<span class="o">]</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>این کامند در حالت عادی از شما یک فایل و یک دستور خواهد گرفت و مکانیزم advisory lock -را روی ان فایل اجرا خواهد کرد.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">flock /tmp/fli <span class="nb">echo</span> 12&gt;/tmp/fli -</span></span></code></pre></td></tr></table> -</div> -</div><p>برای اینکه روند را بهتر درک کنیم یک فایل +را روی ان فایل اجرا خواهد کرد.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">flock /tmp/fli <span class="nb">echo</span> 12&gt;/tmp/fli +</span></span></code></pre></td></tr></table> +</div> +</div><p>برای اینکه روند را بهتر درک کنیم یک فایل bash -می‌نویسیم که بتوانیم مثال اولیه را روی آن اجرا کنیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt">10 -</span><span class="lnt">11 -</span><span class="lnt">12 -</span><span class="lnt">13 -</span><span class="lnt">14 -</span><span class="lnt">15 -</span><span class="lnt">16 -</span><span class="lnt">17 -</span><span class="lnt">18 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="cp">#!/bin/bash -</span></span></span><span class="line"><span class="cl"><span class="cp"></span><span class="nv">file</span><span class="o">=</span><span class="s2">&#34;balance.dat&#34;</span> -</span></span><span class="line"><span class="cl"><span class="nv">value</span><span class="o">=</span><span class="k">$(</span>cat <span class="nv">$file</span><span class="k">)</span> -</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Read current balance:</span><span class="nv">$value</span><span class="s2">&#34;</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl"><span class="c1">#sleep 10 seconds to simulate business calculation</span> -</span></span><span class="line"><span class="cl"><span class="nv">progress</span><span class="o">=</span><span class="m">10</span> -</span></span><span class="line"><span class="cl"><span class="k">while</span> <span class="o">[[</span> <span class="nv">$progress</span> -lt <span class="m">101</span> <span class="o">]]</span><span class="p">;</span> <span class="k">do</span> -</span></span><span class="line"><span class="cl"> <span class="nb">echo</span> -n -e <span class="s2">&#34;\033[77DCalculating new balance..</span><span class="nv">$progress</span><span class="s2">%&#34;</span> -</span></span><span class="line"><span class="cl"> sleep <span class="m">1</span> -</span></span><span class="line"><span class="cl"> <span class="nv">progress</span><span class="o">=</span><span class="k">$((</span><span class="m">10</span><span class="o">+</span>progress<span class="k">))</span> -</span></span><span class="line"><span class="cl"><span class="k">done</span> -</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;&#34;</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl"><span class="nv">value</span><span class="o">=</span><span class="k">$((</span>value+<span class="nv">$1</span><span class="k">))</span> -</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Write new balance (</span><span class="nv">$value</span><span class="s2">) back to </span><span class="nv">$file</span><span class="s2">.&#34;</span> -</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="nv">$value</span> &gt; <span class="s2">&#34;</span><span class="nv">$file</span><span class="s2">&#34;</span> -</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Done.&#34;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>ما این فایل را همزمان با دو ترمینال اجرا می‌کنیم.</p> -<p><img src="https://bit-orbit.github.io/images/post/advisory_lock.gif" - - - - loading="lazy" - - alt="advisory lock" - - -></p> -<p>همینطور که می‌بینید پروسه دوم برای اینکه محتوای فایل را تغییر دهد، باید صبر کند تا لاک فایل -آزاد شود.</p> -<hr> -<p>این پست خلاصه‌ای بود از -<a class="link" href="https://www.baeldung.com/linux/file-locking" target="_blank" rel="noopener" - >این بلاگ</a> +می‌نویسیم که بتوانیم مثال اولیه را روی آن اجرا کنیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="cp">#!/bin/bash +</span></span></span><span class="line"><span class="cl"><span class="cp"></span><span class="nv">file</span><span class="o">=</span><span class="s2">&#34;balance.dat&#34;</span> +</span></span><span class="line"><span class="cl"><span class="nv">value</span><span class="o">=</span><span class="k">$(</span>cat <span class="nv">$file</span><span class="k">)</span> +</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Read current balance:</span><span class="nv">$value</span><span class="s2">&#34;</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="c1">#sleep 10 seconds to simulate business calculation</span> +</span></span><span class="line"><span class="cl"><span class="nv">progress</span><span class="o">=</span><span class="m">10</span> +</span></span><span class="line"><span class="cl"><span class="k">while</span> <span class="o">[[</span> <span class="nv">$progress</span> -lt <span class="m">101</span> <span class="o">]]</span><span class="p">;</span> <span class="k">do</span> +</span></span><span class="line"><span class="cl"> <span class="nb">echo</span> -n -e <span class="s2">&#34;\033[77DCalculating new balance..</span><span class="nv">$progress</span><span class="s2">%&#34;</span> +</span></span><span class="line"><span class="cl"> sleep <span class="m">1</span> +</span></span><span class="line"><span class="cl"> <span class="nv">progress</span><span class="o">=</span><span class="k">$((</span><span class="m">10</span><span class="o">+</span>progress<span class="k">))</span> +</span></span><span class="line"><span class="cl"><span class="k">done</span> +</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;&#34;</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="nv">value</span><span class="o">=</span><span class="k">$((</span>value+<span class="nv">$1</span><span class="k">))</span> +</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Write new balance (</span><span class="nv">$value</span><span class="s2">) back to </span><span class="nv">$file</span><span class="s2">.&#34;</span> +</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="nv">$value</span> &gt; <span class="s2">&#34;</span><span class="nv">$file</span><span class="s2">&#34;</span> +</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Done.&#34;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>ما این فایل را همزمان با دو ترمینال اجرا می‌کنیم.</p> +<p><img src="https://bit-orbit.github.io/images/post/advisory_lock.gif" +loading="lazy" +alt="advisory lock" +></p> +<p>همینطور که می‌بینید پروسه دوم برای اینکه محتوای فایل را تغییر دهد، باید صبر کند تا لاک فایل +آزاد شود.</p> +<hr> +<p>این پست خلاصه‌ای بود از +<a class="link" href="https://www.baeldung.com/linux/file-locking" target="_blank" rel="noopener" +>این بلاگ</a> که هر دو نوع advisory lock و mandatory lock -را توضیح می‌دهد.</p> -<p>برای من سوال بود که من چطور می‌توانم مکانیزمی که +را توضیح می‌دهد.</p> +<p>برای من سوال بود که من چطور می‌توانم مکانیزمی که flock استفاده می‌کند را در برنامه های خودم پیاده سازی کنم، و خب نتیجه این بود که معمولا برای advisory lock هر زبانی یک کتابخانه استاندار دارد توی -<a class="link" href="https://docs.python.org/3/library/fcntl.html" target="_blank" rel="noopener" - >پایتون کتابخانه</a> -<code>fcntl</code> -اینکار را انجام می‌دهد.</p> - - - - - +<a class="link" href="https://docs.python.org/3/library/fcntl.html" target="_blank" rel="noopener" +>پایتون کتابخانه</a> +<code>fcntl</code> +اینکار را انجام می‌دهد.</p> \ No newline at end of file diff --git a/docs/tags/how-to-lock-file-in-linux/page/1/index.html b/docs/tags/how-to-lock-file-in-linux/page/1/index.html index 4dbedc5..efde85a 100644 --- a/docs/tags/how-to-lock-file-in-linux/page/1/index.html +++ b/docs/tags/how-to-lock-file-in-linux/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/how-to-lock-file-in-linux/ - - - - - - +https://bit-orbit.github.io/tags/how-to-lock-file-in-linux/ + \ No newline at end of file diff --git a/docs/tags/how-to-snapshot-a-single-site-page/index.html b/docs/tags/how-to-snapshot-a-single-site-page/index.html index b09e69c..a0cc117 100644 --- a/docs/tags/how-to-snapshot-a-single-site-page/index.html +++ b/docs/tags/how-to-snapshot-a-single-site-page/index.html @@ -1,559 +1,37 @@ - - - - -Tag: How-to-Snapshot-a-Single-Site-Page - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

How-to-Snapshot-a-Single-Site-Page

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: How-to-Snapshot-a-Single-Site-Page - bit-orbit + \ No newline at end of file diff --git a/docs/tags/how-to-snapshot-a-single-site-page/index.xml b/docs/tags/how-to-snapshot-a-single-site-page/index.xml index 6f6793d..214733f 100644 --- a/docs/tags/how-to-snapshot-a-single-site-page/index.xml +++ b/docs/tags/how-to-snapshot-a-single-site-page/index.xml @@ -1,33 +1,19 @@ - - - - How-to-Snapshot-a-Single-Site-Page on bit-orbit - https://bit-orbit.github.io/tags/how-to-snapshot-a-single-site-page/ - Recent content in How-to-Snapshot-a-Single-Site-Page on bit-orbit - Hugo -- gohugo.io - fa - Mon, 17 Jan 2022 14:56:14 +0330 - اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش(عکس، استایل، جاوا اسکریپت) - https://bit-orbit.github.io/p/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4%D8%B9%DA%A9%D8%B3-%D8%A7%D8%B3%D8%AA%D8%A7%DB%8C%D9%84-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA/ - Mon, 17 Jan 2022 14:56:14 +0330 - - https://bit-orbit.github.io/p/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4%D8%B9%DA%A9%D8%B3-%D8%A7%D8%B3%D8%AA%D8%A7%DB%8C%D9%84-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA/ - <img src="https://bit-orbit.github.io/images/post/snp.jpg" alt="Featured image of post اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش(عکس، استایل، جاوا اسکریپت)" /><div dir='rtl' style='font-size:23px'> -<p>زمانی که مقاله یا پستی را می‌خوانم، گاهی احساس می‌کنم ممکنه یک مطلب را فراموش کنم. +How-to-Snapshot-a-Single-Site-Page on bit-orbithttps://bit-orbit.github.io/tags/how-to-snapshot-a-single-site-page/Recent content in How-to-Snapshot-a-Single-Site-Page on bit-orbitHugo -- gohugo.iofaMon, 17 Jan 2022 14:56:14 +0330اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش(عکس، استایل، جاوا اسکریپت)https://bit-orbit.github.io/p/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4%D8%B9%DA%A9%D8%B3-%D8%A7%D8%B3%D8%AA%D8%A7%DB%8C%D9%84-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA/Mon, 17 Jan 2022 14:56:14 +0330https://bit-orbit.github.io/p/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4%D8%B9%DA%A9%D8%B3-%D8%A7%D8%B3%D8%AA%D8%A7%DB%8C%D9%84-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA/<img src="https://bit-orbit.github.io/images/post/snp.jpg" alt="Featured image of post اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش(عکس، استایل، جاوا اسکریپت)" /><div dir='rtl' style='font-size:23px'> +<p>زمانی که مقاله یا پستی را می‌خوانم، گاهی احساس می‌کنم ممکنه یک مطلب را فراموش کنم. مثلا اگه مقاله‌ای از ویرگول درباره یک دستور لینوکس بخوانم، برای اینکه مطلبش را فراموش نکنم باید هرزگاهی به پست سر بزنم و مطالب را مرور کنم. اما فکر کنید مطلب درباره برنامه‌ای باشد که می‌توان با استفاده از آن سانسور را دور زد، -ویرگول احتمالا آن مطلب را حذف می‌کند.</p> -<ul> -<li> -<p>چه راهی برای ذخیره پست پشنهاد می‌کنید که بعدا بتوان آن را بارها مرور کرد؟</p> -</li> -<li> -<p>اگر پست از سایت منبع حذف شود، و یا حتی خود سایت دیگر در دسترس نباشد، -باز هم پستی که ذخیره کرده‌اید در دسترس است؟</p> -</li> -</ul> -<p>در این پست با استفاده از ابزار +ویرگول احتمالا آن مطلب را حذف می‌کند.</p> +<ul> +<li> +<p>چه راهی برای ذخیره پست پشنهاد می‌کنید که بعدا بتوان آن را بارها مرور کرد؟</p> +</li> +<li> +<p>اگر پست از سایت منبع حذف شود، و یا حتی خود سایت دیگر در دسترس نباشد، +باز هم پستی که ذخیره کرده‌اید در دسترس است؟</p> +</li> +</ul> +<p>در این پست با استفاده از ابزار wget یک پست را با تمامی وابستگی هایش مانند عکس ها، فایل های js، @@ -36,62 +22,62 @@ css دانلود می‌کنیم و روی سیستم خودمان ذخیره می‌کنیم تا حتی اگر سایت در دسترس نباشد و یا پست -از منبع حذف شد، پست به صورت افلاین در دسترس بماند.</p> -<hr> -<h3 id="wget">wget</h3> -<p>می‌دونید که +از منبع حذف شد، پست به صورت افلاین در دسترس بماند.</p> +<hr> +<h3 id="wget">wget +</h3><p>می‌دونید که wget یک ابزار پیشرفته برای دانلود فایله، قابلیت های زیادی که داره باعث شده بعد از سالها که ابزار های پیشرفته دانلود هم نوشته شدن، همچنان wget استفاده بشه. این برنامه روی اکثر توزیع های لینوکس به صورت دیفالت نصبه پس بیایید بدون تلف کردن وقت -سوییچ های مهم برای میرور کردن یک صفحه سایت رو برسی کنیم.</p> -<p></br></br></p> -<p><strong>Ⅰ.</strong> <code>--adjust-extension</code>, <code>-E</code></p> -<p>شاید شما هم سایتی هایی را دیده باشید که -<em>url</em> +سوییچ های مهم برای میرور کردن یک صفحه سایت رو برسی کنیم.</p> +<p></br></br></p> +<p><strong>Ⅰ.</strong> <code>--adjust-extension</code>, <code>-E</code></p> +<p>شاید شما هم سایتی هایی را دیده باشید که +<em>url</em> صفحه هایشان با پسوند -<code>.asp</code> +<code>.asp</code> به پایان می‌رسند. برای مثال نگاهی به -<a class="link" href="https://www.w3schools.com/python/default.asp" target="_blank" rel="noopener" - >این آدرس</a> +<a class="link" href="https://www.w3schools.com/python/default.asp" target="_blank" rel="noopener" +>این آدرس</a> بیاندازید -<em><a class="link" href="https://www.w3schools.com/python/default.asp" target="_blank" rel="noopener" - >https://www.w3schools.com/python/default.asp</a></em> +<em><a class="link" href="https://www.w3schools.com/python/default.asp" target="_blank" rel="noopener" +>https://www.w3schools.com/python/default.asp</a></em> همانطور که می‌بینید با -<em>asp</em> +<em>asp</em> به پایان می‌رسد. زمانی که شما این صفحه را دانلود کنید، این صفحه بجای پسوند -<em>html.</em> +<em>html.</em> با پسوند -<em>asp.</em> -ذخیره خواهد شد.</p> -<blockquote> -<p>به همین دلیل ما از این سوییچ استفاده می‌کنیم تا صفحه ها را +<em>asp.</em> +ذخیره خواهد شد.</p> +<blockquote> +<p>به همین دلیل ما از این سوییچ استفاده می‌کنیم تا صفحه ها را با پسوند -<em>html.</em> -ذخیره کنیم.</p> -</blockquote> -<div dir='ltr'> -</br> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span><span class="lnt">3 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ https://example.com/some/where -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl"><span class="c1"># where.html</span> -</span></span></code></pre></td></tr></table> -</div> -</div></div> -<p></br></br></p> -<p><strong>Ⅱ.</strong> <code>--span-hosts</code>, <code>-H</code></p> -<p>اگر حتی فقط یک صفحه را میرور می‌کنیم، آن صفحه ممکن است به فایل های خارج از سایت +<em>html.</em> +ذخیره کنیم.</p> +</blockquote> +<div dir='ltr'> +</br> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ https://example.com/some/where +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="c1"># where.html</span> +</span></span></code></pre></td></tr></table> +</div> +</div></div> +<p></br></br></p> +<p><strong>Ⅱ.</strong> <code>--span-hosts</code>, <code>-H</code></p> +<p>اگر حتی فقط یک صفحه را میرور می‌کنیم، آن صفحه ممکن است به فایل های خارج از سایت که به روی یک CDN قرار گرفته اند @@ -99,1253 +85,1249 @@ CDN style sheet ها. از اینرو وقتی شما یک صفحه را میرور می‌کنید wget -فایل های خارج از سایت را دانلود نخواهد کرد.</p> -<blockquote> -<p>پوشش دادن فایل های خارج از سایت با استفاده از این سوییچ انجام داده می‌شود. +فایل های خارج از سایت را دانلود نخواهد کرد.</p> +<blockquote> +<p>پوشش دادن فایل های خارج از سایت با استفاده از این سوییچ انجام داده می‌شود. وقتی این سوییچ را روشن کنید wget همه لینک ها از جمله لینک هایی زیر دامنه را هم دانلود خواهد کرد، مگر اینکه عمق -پوشش دادن را محدود کنید.</p> -</blockquote> -<p></br></br></p> -<p><strong>Ⅲ.</strong> <code>--convert-links</code>, <code>-k</code></p> -<p>یک صفحه را که میرور کردیم با توجه به اینکه فایل های پیشیاز مثل عکس و استایل ها را +پوشش دادن را محدود کنید.</p> +</blockquote> +<p></br></br></p> +<p><strong>Ⅲ.</strong> <code>--convert-links</code>, <code>-k</code></p> +<p>یک صفحه را که میرور کردیم با توجه به اینکه فایل های پیشیاز مثل عکس و استایل ها را هم دانلود کردیم، وقتی فایل را با مرورگر باز کنیم همچنان صفحه html ما به فایل های داخل سایت منبع لینک شده است و فایل های پیشنازش را حتی با اینکه -روی سیستم داریم، باز هم از آدرس خارجی دریافت می‌کند و نمایش می‌دهد.</p> -<blockquote> -<p>برای اینکه یک صفحه فایل های پیشنیازش را از فایل هایی که در کنار صفحه اصلی دانلود +روی سیستم داریم، باز هم از آدرس خارجی دریافت می‌کند و نمایش می‌دهد.</p> +<blockquote> +<p>برای اینکه یک صفحه فایل های پیشنیازش را از فایل هایی که در کنار صفحه اصلی دانلود کرده است بگیرد، از این سوییچ استفاده می‌کنیم. این سوییچ تمامی لینک ها را به -لینک های داخلی تبدیل می‌کند و صفحه موقع لود شدن از فایل های داخلی استفاده می‌کند.</p> -</blockquote> -<p></br></br></p> -<p><strong>Ⅳ.</strong> <code>--page-requisites</code>, <code>-p</code></p> -<blockquote> -<p>این سوییچ باعث می‌شود که +لینک های داخلی تبدیل می‌کند و صفحه موقع لود شدن از فایل های داخلی استفاده می‌کند.</p> +</blockquote> +<p></br></br></p> +<p><strong>Ⅳ.</strong> <code>--page-requisites</code>, <code>-p</code></p> +<blockquote> +<p>این سوییچ باعث می‌شود که wget تمامی فایل های ضروری برای درست نمایش داده شدن html -را دانلود کند. این فایل ها شامل عکس ها، استایل ها و یا صدا ها می‌شود.</p> -</blockquote> -<p></br></br></p> -<p><strong>Ⅴ.</strong> <code>--no-directories</code>, <code>-nd</code></p> -<p>به صورت پیشفرض زمانی که صفحه‌ای با این ادرس را دانلود کنیم</p> -<p><code>https://example.com/some/where/page.html</code></p> -<p>برنامه +را دانلود کند. این فایل ها شامل عکس ها، استایل ها و یا صدا ها می‌شود.</p> +</blockquote> +<p></br></br></p> +<p><strong>Ⅴ.</strong> <code>--no-directories</code>, <code>-nd</code></p> +<p>به صورت پیشفرض زمانی که صفحه‌ای با این ادرس را دانلود کنیم</p> +<p><code>https://example.com/some/where/page.html</code></p> +<p>برنامه wget -این صفحه و فایل های مورد نیازش را به این صورت ذخیره خواهد کرد</p> -<p><code>some/where/page.html/.</code></p> -<p>اما با استفاده از سوییچ -<code>nd-</code> -آن صفحه و فایل های مورد نیازش فقط داخل یک دایرکتوری ذخیره خواهد شد. به این صورت</p> -<p><code>page.html/.</code></p> -<blockquote> -<p>با فعال کردن این سوییچ +این صفحه و فایل های مورد نیازش را به این صورت ذخیره خواهد کرد</p> +<p><code>some/where/page.html/.</code></p> +<p>اما با استفاده از سوییچ +<code>nd-</code> +آن صفحه و فایل های مورد نیازش فقط داخل یک دایرکتوری ذخیره خواهد شد. به این صورت</p> +<p><code>page.html/.</code></p> +<blockquote> +<p>با فعال کردن این سوییچ wget صفحه و فایل های پیشنیاز را داخل دایرکتوری فعلی ذخیره خواهد کرد. و اگر -نام یک فایل بیش از یکبار تکرار شود، به نام فایل پسوند اضافه خواهد شد.</p> -</blockquote> -<p></br></br></p> -<h3 id="مثال-کاربردی-و-خروجی">مثال کاربردی و خروجی</h3> -<ul> -<li>برای مثال من یک -<a class="link" href="https://vrgl.ir/c3fVa" target="_blank" rel="noopener" - >پست توی ویرگول</a> +نام یک فایل بیش از یکبار تکرار شود، به نام فایل پسوند اضافه خواهد شد.</p> +</blockquote> +<p></br></br></p> +<h3 id="مثال-کاربردی-و-خروجی">مثال کاربردی و خروجی +</h3><ul> +<li>برای مثال من یک +<a class="link" href="https://vrgl.ir/c3fVa" target="_blank" rel="noopener" +>پست توی ویرگول</a> که آموزش الگوریتم RSA -هست رو دانلود می‌کنم.</li> -</ul> -</br> -</div> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt"> 10 -</span><span class="lnt"> 11 -</span><span class="lnt"> 12 -</span><span class="lnt"> 13 -</span><span class="lnt"> 14 -</span><span class="lnt"> 15 -</span><span class="lnt"> 16 -</span><span class="lnt"> 17 -</span><span class="lnt"> 18 -</span><span class="lnt"> 19 -</span><span class="lnt"> 20 -</span><span class="lnt"> 21 -</span><span class="lnt"> 22 -</span><span class="lnt"> 23 -</span><span class="lnt"> 24 -</span><span class="lnt"> 25 -</span><span class="lnt"> 26 -</span><span class="lnt"> 27 -</span><span class="lnt"> 28 -</span><span class="lnt"> 29 -</span><span class="lnt"> 30 -</span><span class="lnt"> 31 -</span><span class="lnt"> 32 -</span><span class="lnt"> 33 -</span><span class="lnt"> 34 -</span><span class="lnt"> 35 -</span><span class="lnt"> 36 -</span><span class="lnt"> 37 -</span><span class="lnt"> 38 -</span><span class="lnt"> 39 -</span><span class="lnt"> 40 -</span><span class="lnt"> 41 -</span><span class="lnt"> 42 -</span><span class="lnt"> 43 -</span><span class="lnt"> 44 -</span><span class="lnt"> 45 -</span><span class="lnt"> 46 -</span><span class="lnt"> 47 -</span><span class="lnt"> 48 -</span><span class="lnt"> 49 -</span><span class="lnt"> 50 -</span><span class="lnt"> 51 -</span><span class="lnt"> 52 -</span><span class="lnt"> 53 -</span><span class="lnt"> 54 -</span><span class="lnt"> 55 -</span><span class="lnt"> 56 -</span><span class="lnt"> 57 -</span><span class="lnt"> 58 -</span><span class="lnt"> 59 -</span><span class="lnt"> 60 -</span><span class="lnt"> 61 -</span><span class="lnt"> 62 -</span><span class="lnt"> 63 -</span><span class="lnt"> 64 -</span><span class="lnt"> 65 -</span><span class="lnt"> 66 -</span><span class="lnt"> 67 -</span><span class="lnt"> 68 -</span><span class="lnt"> 69 -</span><span class="lnt"> 70 -</span><span class="lnt"> 71 -</span><span class="lnt"> 72 -</span><span class="lnt"> 73 -</span><span class="lnt"> 74 -</span><span class="lnt"> 75 -</span><span class="lnt"> 76 -</span><span class="lnt"> 77 -</span><span class="lnt"> 78 -</span><span class="lnt"> 79 -</span><span class="lnt"> 80 -</span><span class="lnt"> 81 -</span><span class="lnt"> 82 -</span><span class="lnt"> 83 -</span><span class="lnt"> 84 -</span><span class="lnt"> 85 -</span><span class="lnt"> 86 -</span><span class="lnt"> 87 -</span><span class="lnt"> 88 -</span><span class="lnt"> 89 -</span><span class="lnt"> 90 -</span><span class="lnt"> 91 -</span><span class="lnt"> 92 -</span><span class="lnt"> 93 -</span><span class="lnt"> 94 -</span><span class="lnt"> 95 -</span><span class="lnt"> 96 -</span><span class="lnt"> 97 -</span><span class="lnt"> 98 -</span><span class="lnt"> 99 -</span><span class="lnt">100 -</span><span class="lnt">101 -</span><span class="lnt">102 -</span><span class="lnt">103 -</span><span class="lnt">104 -</span><span class="lnt">105 -</span><span class="lnt">106 -</span><span class="lnt">107 -</span><span class="lnt">108 -</span><span class="lnt">109 -</span><span class="lnt">110 -</span><span class="lnt">111 -</span><span class="lnt">112 -</span><span class="lnt">113 -</span><span class="lnt">114 -</span><span class="lnt">115 -</span><span class="lnt">116 -</span><span class="lnt">117 -</span><span class="lnt">118 -</span><span class="lnt">119 -</span><span class="lnt">120 -</span><span class="lnt">121 -</span><span class="lnt">122 -</span><span class="lnt">123 -</span><span class="lnt">124 -</span><span class="lnt">125 -</span><span class="lnt">126 -</span><span class="lnt">127 -</span><span class="lnt">128 -</span><span class="lnt">129 -</span><span class="lnt">130 -</span><span class="lnt">131 -</span><span class="lnt">132 -</span><span class="lnt">133 -</span><span class="lnt">134 -</span><span class="lnt">135 -</span><span class="lnt">136 -</span><span class="lnt">137 -</span><span class="lnt">138 -</span><span class="lnt">139 -</span><span class="lnt">140 -</span><span class="lnt">141 -</span><span class="lnt">142 -</span><span class="lnt">143 -</span><span class="lnt">144 -</span><span class="lnt">145 -</span><span class="lnt">146 -</span><span class="lnt">147 -</span><span class="lnt">148 -</span><span class="lnt">149 -</span><span class="lnt">150 -</span><span class="lnt">151 -</span><span class="lnt">152 -</span><span class="lnt">153 -</span><span class="lnt">154 -</span><span class="lnt">155 -</span><span class="lnt">156 -</span><span class="lnt">157 -</span><span class="lnt">158 -</span><span class="lnt">159 -</span><span class="lnt">160 -</span><span class="lnt">161 -</span><span class="lnt">162 -</span><span class="lnt">163 -</span><span class="lnt">164 -</span><span class="lnt">165 -</span><span class="lnt">166 -</span><span class="lnt">167 -</span><span class="lnt">168 -</span><span class="lnt">169 -</span><span class="lnt">170 -</span><span class="lnt">171 -</span><span class="lnt">172 -</span><span class="lnt">173 -</span><span class="lnt">174 -</span><span class="lnt">175 -</span><span class="lnt">176 -</span><span class="lnt">177 -</span><span class="lnt">178 -</span><span class="lnt">179 -</span><span class="lnt">180 -</span><span class="lnt">181 -</span><span class="lnt">182 -</span><span class="lnt">183 -</span><span class="lnt">184 -</span><span class="lnt">185 -</span><span class="lnt">186 -</span><span class="lnt">187 -</span><span class="lnt">188 -</span><span class="lnt">189 -</span><span class="lnt">190 -</span><span class="lnt">191 -</span><span class="lnt">192 -</span><span class="lnt">193 -</span><span class="lnt">194 -</span><span class="lnt">195 -</span><span class="lnt">196 -</span><span class="lnt">197 -</span><span class="lnt">198 -</span><span class="lnt">199 -</span><span class="lnt">200 -</span><span class="lnt">201 -</span><span class="lnt">202 -</span><span class="lnt">203 -</span><span class="lnt">204 -</span><span class="lnt">205 -</span><span class="lnt">206 -</span><span class="lnt">207 -</span><span class="lnt">208 -</span><span class="lnt">209 -</span><span class="lnt">210 -</span><span class="lnt">211 -</span><span class="lnt">212 -</span><span class="lnt">213 -</span><span class="lnt">214 -</span><span class="lnt">215 -</span><span class="lnt">216 -</span><span class="lnt">217 -</span><span class="lnt">218 -</span><span class="lnt">219 -</span><span class="lnt">220 -</span><span class="lnt">221 -</span><span class="lnt">222 -</span><span class="lnt">223 -</span><span class="lnt">224 -</span><span class="lnt">225 -</span><span class="lnt">226 -</span><span class="lnt">227 -</span><span class="lnt">228 -</span><span class="lnt">229 -</span><span class="lnt">230 -</span><span class="lnt">231 -</span><span class="lnt">232 -</span><span class="lnt">233 -</span><span class="lnt">234 -</span><span class="lnt">235 -</span><span class="lnt">236 -</span><span class="lnt">237 -</span><span class="lnt">238 -</span><span class="lnt">239 -</span><span class="lnt">240 -</span><span class="lnt">241 -</span><span class="lnt">242 -</span><span class="lnt">243 -</span><span class="lnt">244 -</span><span class="lnt">245 -</span><span class="lnt">246 -</span><span class="lnt">247 -</span><span class="lnt">248 -</span><span class="lnt">249 -</span><span class="lnt">250 -</span><span class="lnt">251 -</span><span class="lnt">252 -</span><span class="lnt">253 -</span><span class="lnt">254 -</span><span class="lnt">255 -</span><span class="lnt">256 -</span><span class="lnt">257 -</span><span class="lnt">258 -</span><span class="lnt">259 -</span><span class="lnt">260 -</span><span class="lnt">261 -</span><span class="lnt">262 -</span><span class="lnt">263 -</span><span class="lnt">264 -</span><span class="lnt">265 -</span><span class="lnt">266 -</span><span class="lnt">267 -</span><span class="lnt">268 -</span><span class="lnt">269 -</span><span class="lnt">270 -</span><span class="lnt">271 -</span><span class="lnt">272 -</span><span class="lnt">273 -</span><span class="lnt">274 -</span><span class="lnt">275 -</span><span class="lnt">276 -</span><span class="lnt">277 -</span><span class="lnt">278 -</span><span class="lnt">279 -</span><span class="lnt">280 -</span><span class="lnt">281 -</span><span class="lnt">282 -</span><span class="lnt">283 -</span><span class="lnt">284 -</span><span class="lnt">285 -</span><span class="lnt">286 -</span><span class="lnt">287 -</span><span class="lnt">288 -</span><span class="lnt">289 -</span><span class="lnt">290 -</span><span class="lnt">291 -</span><span class="lnt">292 -</span><span class="lnt">293 -</span><span class="lnt">294 -</span><span class="lnt">295 -</span><span class="lnt">296 -</span><span class="lnt">297 -</span><span class="lnt">298 -</span><span class="lnt">299 -</span><span class="lnt">300 -</span><span class="lnt">301 -</span><span class="lnt">302 -</span><span class="lnt">303 -</span><span class="lnt">304 -</span><span class="lnt">305 -</span><span class="lnt">306 -</span><span class="lnt">307 -</span><span class="lnt">308 -</span><span class="lnt">309 -</span><span class="lnt">310 -</span><span class="lnt">311 -</span><span class="lnt">312 -</span><span class="lnt">313 -</span><span class="lnt">314 -</span><span class="lnt">315 -</span><span class="lnt">316 -</span><span class="lnt">317 -</span><span class="lnt">318 -</span><span class="lnt">319 -</span><span class="lnt">320 -</span><span class="lnt">321 -</span><span class="lnt">322 -</span><span class="lnt">323 -</span><span class="lnt">324 -</span><span class="lnt">325 -</span><span class="lnt">326 -</span><span class="lnt">327 -</span><span class="lnt">328 -</span><span class="lnt">329 -</span><span class="lnt">330 -</span><span class="lnt">331 -</span><span class="lnt">332 -</span><span class="lnt">333 -</span><span class="lnt">334 -</span><span class="lnt">335 -</span><span class="lnt">336 -</span><span class="lnt">337 -</span><span class="lnt">338 -</span><span class="lnt">339 -</span><span class="lnt">340 -</span><span class="lnt">341 -</span><span class="lnt">342 -</span><span class="lnt">343 -</span><span class="lnt">344 -</span><span class="lnt">345 -</span><span class="lnt">346 -</span><span class="lnt">347 -</span><span class="lnt">348 -</span><span class="lnt">349 -</span><span class="lnt">350 -</span><span class="lnt">351 -</span><span class="lnt">352 -</span><span class="lnt">353 -</span><span class="lnt">354 -</span><span class="lnt">355 -</span><span class="lnt">356 -</span><span class="lnt">357 -</span><span class="lnt">358 -</span><span class="lnt">359 -</span><span class="lnt">360 -</span><span class="lnt">361 -</span><span class="lnt">362 -</span><span class="lnt">363 -</span><span class="lnt">364 -</span><span class="lnt">365 -</span><span class="lnt">366 -</span><span class="lnt">367 -</span><span class="lnt">368 -</span><span class="lnt">369 -</span><span class="lnt">370 -</span><span class="lnt">371 -</span><span class="lnt">372 -</span><span class="lnt">373 -</span><span class="lnt">374 -</span><span class="lnt">375 -</span><span class="lnt">376 -</span><span class="lnt">377 -</span><span class="lnt">378 -</span><span class="lnt">379 -</span><span class="lnt">380 -</span><span class="lnt">381 -</span><span class="lnt">382 -</span><span class="lnt">383 -</span><span class="lnt">384 -</span><span class="lnt">385 -</span><span class="lnt">386 -</span><span class="lnt">387 -</span><span class="lnt">388 -</span><span class="lnt">389 -</span><span class="lnt">390 -</span><span class="lnt">391 -</span><span class="lnt">392 -</span><span class="lnt">393 -</span><span class="lnt">394 -</span><span class="lnt">395 -</span><span class="lnt">396 -</span><span class="lnt">397 -</span><span class="lnt">398 -</span><span class="lnt">399 -</span><span class="lnt">400 -</span><span class="lnt">401 -</span><span class="lnt">402 -</span><span class="lnt">403 -</span><span class="lnt">404 -</span><span class="lnt">405 -</span><span class="lnt">406 -</span><span class="lnt">407 -</span><span class="lnt">408 -</span><span class="lnt">409 -</span><span class="lnt">410 -</span><span class="lnt">411 -</span><span class="lnt">412 -</span><span class="lnt">413 -</span><span class="lnt">414 -</span><span class="lnt">415 -</span><span class="lnt">416 -</span><span class="lnt">417 -</span><span class="lnt">418 -</span><span class="lnt">419 -</span><span class="lnt">420 -</span><span class="lnt">421 -</span><span class="lnt">422 -</span><span class="lnt">423 -</span><span class="lnt">424 -</span><span class="lnt">425 -</span><span class="lnt">426 -</span><span class="lnt">427 -</span><span class="lnt">428 -</span><span class="lnt">429 -</span><span class="lnt">430 -</span><span class="lnt">431 -</span><span class="lnt">432 -</span><span class="lnt">433 -</span><span class="lnt">434 -</span><span class="lnt">435 -</span><span class="lnt">436 -</span><span class="lnt">437 -</span><span class="lnt">438 -</span><span class="lnt">439 -</span><span class="lnt">440 -</span><span class="lnt">441 -</span><span class="lnt">442 -</span><span class="lnt">443 -</span><span class="lnt">444 -</span><span class="lnt">445 -</span><span class="lnt">446 -</span><span class="lnt">447 -</span><span class="lnt">448 -</span><span class="lnt">449 -</span><span class="lnt">450 -</span><span class="lnt">451 -</span><span class="lnt">452 -</span><span class="lnt">453 -</span><span class="lnt">454 -</span><span class="lnt">455 -</span><span class="lnt">456 -</span><span class="lnt">457 -</span><span class="lnt">458 -</span><span class="lnt">459 -</span><span class="lnt">460 -</span><span class="lnt">461 -</span><span class="lnt">462 -</span><span class="lnt">463 -</span><span class="lnt">464 -</span><span class="lnt">465 -</span><span class="lnt">466 -</span><span class="lnt">467 -</span><span class="lnt">468 -</span><span class="lnt">469 -</span><span class="lnt">470 -</span><span class="lnt">471 -</span><span class="lnt">472 -</span><span class="lnt">473 -</span><span class="lnt">474 -</span><span class="lnt">475 -</span><span class="lnt">476 -</span><span class="lnt">477 -</span><span class="lnt">478 -</span><span class="lnt">479 -</span><span class="lnt">480 -</span><span class="lnt">481 -</span><span class="lnt">482 -</span><span class="lnt">483 -</span><span class="lnt">484 -</span><span class="lnt">485 -</span><span class="lnt">486 -</span><span class="lnt">487 -</span><span class="lnt">488 -</span><span class="lnt">489 -</span><span class="lnt">490 -</span><span class="lnt">491 -</span><span class="lnt">492 -</span><span class="lnt">493 -</span><span class="lnt">494 -</span><span class="lnt">495 -</span><span class="lnt">496 -</span><span class="lnt">497 -</span><span class="lnt">498 -</span><span class="lnt">499 -</span><span class="lnt">500 -</span><span class="lnt">501 -</span><span class="lnt">502 -</span><span class="lnt">503 -</span><span class="lnt">504 -</span><span class="lnt">505 -</span><span class="lnt">506 -</span><span class="lnt">507 -</span><span class="lnt">508 -</span><span class="lnt">509 -</span><span class="lnt">510 -</span><span class="lnt">511 -</span><span class="lnt">512 -</span><span class="lnt">513 -</span><span class="lnt">514 -</span><span class="lnt">515 -</span><span class="lnt">516 -</span><span class="lnt">517 -</span><span class="lnt">518 -</span><span class="lnt">519 -</span><span class="lnt">520 -</span><span class="lnt">521 -</span><span class="lnt">522 -</span><span class="lnt">523 -</span><span class="lnt">524 -</span><span class="lnt">525 -</span><span class="lnt">526 -</span><span class="lnt">527 -</span><span class="lnt">528 -</span><span class="lnt">529 -</span><span class="lnt">530 -</span><span class="lnt">531 -</span><span class="lnt">532 -</span><span class="lnt">533 -</span><span class="lnt">534 -</span><span class="lnt">535 -</span><span class="lnt">536 -</span><span class="lnt">537 -</span><span class="lnt">538 -</span><span class="lnt">539 -</span><span class="lnt">540 -</span><span class="lnt">541 -</span><span class="lnt">542 -</span><span class="lnt">543 -</span><span class="lnt">544 -</span><span class="lnt">545 -</span><span class="lnt">546 -</span><span class="lnt">547 -</span><span class="lnt">548 -</span><span class="lnt">549 -</span><span class="lnt">550 -</span><span class="lnt">551 -</span><span class="lnt">552 -</span><span class="lnt">553 -</span><span class="lnt">554 -</span><span class="lnt">555 -</span><span class="lnt">556 -</span><span class="lnt">557 -</span><span class="lnt">558 -</span><span class="lnt">559 -</span><span class="lnt">560 -</span><span class="lnt">561 -</span><span class="lnt">562 -</span><span class="lnt">563 -</span><span class="lnt">564 -</span><span class="lnt">565 -</span><span class="lnt">566 -</span><span class="lnt">567 -</span><span class="lnt">568 -</span><span class="lnt">569 -</span><span class="lnt">570 -</span><span class="lnt">571 -</span><span class="lnt">572 -</span><span class="lnt">573 -</span><span class="lnt">574 -</span><span class="lnt">575 -</span><span class="lnt">576 -</span><span class="lnt">577 -</span><span class="lnt">578 -</span><span class="lnt">579 -</span><span class="lnt">580 -</span><span class="lnt">581 -</span><span class="lnt">582 -</span><span class="lnt">583 -</span><span class="lnt">584 -</span><span class="lnt">585 -</span><span class="lnt">586 -</span><span class="lnt">587 -</span><span class="lnt">588 -</span><span class="lnt">589 -</span><span class="lnt">590 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">┌─<span class="o">[</span>loading<span class="o">]</span> <span class="o">[</span>/tmp/virgool<span class="o">]</span> <span class="o">[</span>0<span class="o">]</span> -</span></span><span class="line"><span class="cl">│ -</span></span><span class="line"><span class="cl">└──〉wget -nd -E -p -k -H https://vrgl.ir/c3fVa -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:03-- https://vrgl.ir/c3fVa -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">302</span> Found -</span></span><span class="line"><span class="cl">Location: https://virgool.io/@Novo/rsa-encryption-ao1poasym4cf <span class="o">[</span>following<span class="o">]</span> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:04-- https://virgool.io/@Novo/rsa-encryption-ao1poasym4cf -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/html<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘c3fVa.html’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">c3fVa.html <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 61.30K 200KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:06 <span class="o">(</span><span class="m">200</span> KB/s<span class="o">)</span> - ‘c3fVa.html’ saved <span class="o">[</span>62773<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:06-- https://virgool.io/robots.txt -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>document<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘robots.txt’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">robots.txt <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">484</span> --.-KB/s in 0s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:07 <span class="o">(</span>85.7 MB/s<span class="o">)</span> - ‘robots.txt’ saved <span class="o">[</span>484<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:07-- https://www.googletagmanager.com/robots.txt -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">404</span> Not Found -</span></span><span class="line"><span class="cl">2022-01-18 06:41:08 ERROR 404: Not Found. -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:08-- https://files.virgool.io/robots.txt -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">403</span> Forbidden -</span></span><span class="line"><span class="cl">2022-01-18 06:41:09 ERROR 403: Forbidden. -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:09-- https://static.cloudflareinsights.com/robots.txt -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">522</span> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:26 ERROR 522: <span class="o">(</span>no description<span class="o">)</span>. -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:26-- https://virgool.io/images/favicon.png?v<span class="o">=</span>v2.6.15 -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">9855</span> <span class="o">(</span>9.6K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘favicon.png?v<span class="o">=</span>v2.6.15’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">favicon.png?v<span class="o">=</span>v2.6.15 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 9.62K --.-KB/s in 0.07s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:27 <span class="o">(</span><span class="m">130</span> KB/s<span class="o">)</span> - ‘favicon.png?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>9855/9855<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:27-- https://virgool.io/css/styles.css?v<span class="o">=</span>v2.6.15 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/css<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘styles.css?v<span class="o">=</span>v2.6.15.css’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">styles.css?v<span class="o">=</span>v2.6.15.css <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 903.60K 592KB/s in 1.5s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:28 <span class="o">(</span><span class="m">592</span> KB/s<span class="o">)</span> - ‘styles.css?v<span class="o">=</span>v2.6.15.css’ saved <span class="o">[</span>925284<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:28-- https://virgool.test/robots.txt -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:28-- https://www.googletagmanager.com/ns.html?id<span class="o">=</span>GTM-5GS688K -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/html<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘ns.html?id<span class="o">=</span>GTM-5GS688K.html’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">ns.html?id<span class="o">=</span>GTM-5GS688K.html <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">266</span> --.-KB/s in 0s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:29 <span class="o">(</span>29.4 MB/s<span class="o">)</span> - ‘ns.html?id<span class="o">=</span>GTM-5GS688K.html’ saved <span class="o">[</span>266<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:29-- https://files.virgool.io/upload/users/31434/avatar/1C4LLE.png?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">39194</span> <span class="o">(</span>38K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_ 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 38.28K 173KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:30 <span class="o">(</span><span class="m">173</span> KB/s<span class="o">)</span> - ‘1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>39194/39194<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:30-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/qhokakomwyb5.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">179870</span> <span class="o">(</span>176K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘qhokakomwyb5.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">qhokakomwyb5.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 175.65K 567KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">567</span> KB/s<span class="o">)</span> - ‘qhokakomwyb5.png’ saved <span class="o">[</span>179870/179870<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/v1xnwpnewfys.webp -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">12770</span> <span class="o">(</span>12K<span class="o">)</span> <span class="o">[</span>image/webp<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘v1xnwpnewfys.webp’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">v1xnwpnewfys.webp 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 12.47K --.-KB/s in 0.07s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">180</span> KB/s<span class="o">)</span> - ‘v1xnwpnewfys.webp’ saved <span class="o">[</span>12770/12770<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/d28hpu2detkl.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">92847</span> <span class="o">(</span>91K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘d28hpu2detkl.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">d28hpu2detkl.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 90.67K --.-KB/s in 0.09s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">969</span> KB/s<span class="o">)</span> - ‘d28hpu2detkl.png’ saved <span class="o">[</span>92847/92847<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/rhyykrc8azq0.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">17539</span> <span class="o">(</span>17K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘rhyykrc8azq0.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">rhyykrc8azq0.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 17.13K --.-KB/s in 0.007s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>2.47 MB/s<span class="o">)</span> - ‘rhyykrc8azq0.png’ saved <span class="o">[</span>17539/17539<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/fjtc1ydzkuse.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">108524</span> <span class="o">(</span>106K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘fjtc1ydzkuse.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">fjtc1ydzkuse.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 105.98K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>1.06 MB/s<span class="o">)</span> - ‘fjtc1ydzkuse.png’ saved <span class="o">[</span>108524/108524<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/gfqhgyp18oic.jpeg -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">132085</span> <span class="o">(</span>129K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘gfqhgyp18oic.jpeg’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">gfqhgyp18oic.jpeg 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 128.99K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>1.28 MB/s<span class="o">)</span> - ‘gfqhgyp18oic.jpeg’ saved <span class="o">[</span>132085/132085<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/me0mpjtdmyom.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">113489</span> <span class="o">(</span>111K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘me0mpjtdmyom.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">me0mpjtdmyom.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 110.83K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span><span class="m">814</span> KB/s<span class="o">)</span> - ‘me0mpjtdmyom.png’ saved <span class="o">[</span>113489/113489<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/of7krju6oqzk.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">105746</span> <span class="o">(</span>103K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘of7krju6oqzk.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">of7krju6oqzk.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 103.27K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span>1.25 MB/s<span class="o">)</span> - ‘of7krju6oqzk.png’ saved <span class="o">[</span>105746/105746<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/oqwhflg4gbnq.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">120994</span> <span class="o">(</span>118K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘oqwhflg4gbnq.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">oqwhflg4gbnq.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 118.16K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span>1.14 MB/s<span class="o">)</span> - ‘oqwhflg4gbnq.png’ saved <span class="o">[</span>120994/120994<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/taqjnfnuzxcx.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">122678</span> <span class="o">(</span>120K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘taqjnfnuzxcx.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">taqjnfnuzxcx.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 119.80K --.-KB/s in 0.06s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span>2.00 MB/s<span class="o">)</span> - ‘taqjnfnuzxcx.png’ saved <span class="o">[</span>122678/122678<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/63/posts/qwqrubplfaau/g8vai2incgna.jpeg?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">88292</span> <span class="o">(</span>86K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fre 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 86.22K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span><span class="m">824</span> KB/s<span class="o">)</span> - ‘g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>88292/88292<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/63/avatar/o8jiNe.png?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">32037</span> <span class="o">(</span>31K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_ 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 31.29K --.-KB/s in 0.06s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span><span class="m">558</span> KB/s<span class="o">)</span> - ‘o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>32037/32037<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/31434/posts/e3oydlcfkr5e/figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">30356</span> <span class="o">(</span>30K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fre 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 29.64K --.-KB/s in 0.07s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span><span class="m">401</span> KB/s<span class="o">)</span> - ‘figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>30356/30356<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://files.virgool.io/upload/users/316150/posts/r8rhw88uh1xh/cs1ugyelv3zw.png?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">34459</span> <span class="o">(</span>34K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fres 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 33.65K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span><span class="m">399</span> KB/s<span class="o">)</span> - ‘cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>34459/34459<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://files.virgool.io/upload/users/316150/avatar/8sz7Rs.jpeg?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">14764</span> <span class="o">(</span>14K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 14.42K --.-KB/s in 0.007s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span>2.11 MB/s<span class="o">)</span> - ‘8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>14764/14764<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://virgool.io/js/commons.js?v<span class="o">=</span>v2.6.15 -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/javascript<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘commons.js?v<span class="o">=</span>v2.6.15’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">commons.js?v<span class="o">=</span>v2.6.15 <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 997.55K 337KB/s in 3.0s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:39 <span class="o">(</span><span class="m">337</span> KB/s<span class="o">)</span> - ‘commons.js?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>1021492<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:39-- https://virgool.io/js/main.js?v<span class="o">=</span>v2.6.15 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/javascript<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘main.js?v<span class="o">=</span>v2.6.15’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">main.js?v<span class="o">=</span>v2.6.15 <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 1.21M 580KB/s in 2.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:41 <span class="o">(</span><span class="m">580</span> KB/s<span class="o">)</span> - ‘main.js?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>1267632<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:41-- https://static.cloudflareinsights.com/beacon.min.js/v652eace1692a40cfa3763df669d7439c1639079717194 -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">13970</span> <span class="o">(</span>14K<span class="o">)</span> <span class="o">[</span>text/javascript<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘v652eace1692a40cfa3763df669d7439c1639079717194’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">v652eace1692a40cfa3763df669d743 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 13.64K --.-KB/s in 0.02s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:42 <span class="o">(</span><span class="m">600</span> KB/s<span class="o">)</span> - ‘v652eace1692a40cfa3763df669d7439c1639079717194’ saved <span class="o">[</span>13970/13970<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:42-- https://virgool.io/fonts/vazir/Vazir-Thin.ttf -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">98924</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Thin.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.61K 140KB/s in 0.7s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:43 <span class="o">(</span><span class="m">140</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.ttf’ saved <span class="o">[</span>98924/98924<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:43-- https://virgool.io/fonts/vazir/Vazir-Thin.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Thin.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.80K 276KB/s in 0.4s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:44 <span class="o">(</span><span class="m">276</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.eot?’ saved <span class="o">[</span>99120<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:44-- https://virgool.io/fonts/vazir/Vazir-Thin.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">54068</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Thin.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.80K --.-KB/s in 0.07s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:45 <span class="o">(</span><span class="m">770</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.woff’ saved <span class="o">[</span>54068/54068<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:45-- https://virgool.io/fonts/vazir/Vazir-Thin.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">43000</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Thin.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 41.99K --.-KB/s in 0.006s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:46 <span class="o">(</span>6.59 MB/s<span class="o">)</span> - ‘Vazir-Thin.woff2’ saved <span class="o">[</span>43000/43000<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:46-- https://virgool.io/fonts/vazir/Vazir-Light.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">105360</span> <span class="o">(</span>103K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Light.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 102.89K 478KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:46 <span class="o">(</span><span class="m">478</span> KB/s<span class="o">)</span> - ‘Vazir-Light.ttf’ saved <span class="o">[</span>105360/105360<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:46-- https://virgool.io/fonts/vazir/Vazir-Light.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Light.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 103.09K 470KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:47 <span class="o">(</span><span class="m">470</span> KB/s<span class="o">)</span> - ‘Vazir-Light.eot?’ saved <span class="o">[</span>105562<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:47-- https://virgool.io/fonts/vazir/Vazir-Light.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">59688</span> <span class="o">(</span>58K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Light.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 58.29K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:48 <span class="o">(</span><span class="m">758</span> KB/s<span class="o">)</span> - ‘Vazir-Light.woff’ saved <span class="o">[</span>59688/59688<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:48-- https://virgool.io/fonts/vazir/Vazir-Light.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">48168</span> <span class="o">(</span>47K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Light.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 47.04K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:48 <span class="o">(</span><span class="m">570</span> KB/s<span class="o">)</span> - ‘Vazir-Light.woff2’ saved <span class="o">[</span>48168/48168<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:48-- https://virgool.io/fonts/vazir/Vazir-Regular.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">98376</span> <span class="o">(</span>96K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Regular.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.07K 435KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:49 <span class="o">(</span><span class="m">435</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.ttf’ saved <span class="o">[</span>98376/98376<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:49-- https://virgool.io/fonts/vazir/Vazir-Regular.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Regular.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.26K 285KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:50 <span class="o">(</span><span class="m">285</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.eot?’ saved <span class="o">[</span>98574<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:50-- https://virgool.io/fonts/vazir/Vazir-Regular.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">53744</span> <span class="o">(</span>52K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Regular.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.48K --.-KB/s in 0.05s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:51 <span class="o">(</span>1.10 MB/s<span class="o">)</span> - ‘Vazir-Regular.woff’ saved <span class="o">[</span>53744/53744<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:51-- https://virgool.io/fonts/vazir/Vazir-Regular.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">42744</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Regular.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 41.74K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:51 <span class="o">(</span><span class="m">412</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.woff2’ saved <span class="o">[</span>42744/42744<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:51-- https://virgool.io/fonts/vazir/Vazir-Medium.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">98892</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Medium.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.57K 606KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:52 <span class="o">(</span><span class="m">606</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.ttf’ saved <span class="o">[</span>98892/98892<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:52-- https://virgool.io/fonts/vazir/Vazir-Medium.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Medium.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.78K 347KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:53 <span class="o">(</span><span class="m">347</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.eot?’ saved <span class="o">[</span>99100<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:53-- https://virgool.io/fonts/vazir/Vazir-Medium.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">54120</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Medium.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.85K 125KB/s in 0.4s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:54 <span class="o">(</span><span class="m">125</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.woff’ saved <span class="o">[</span>54120/54120<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:54-- https://virgool.io/fonts/vazir/Vazir-Medium.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">43152</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Medium.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.14K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:54 <span class="o">(</span><span class="m">541</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.woff2’ saved <span class="o">[</span>43152/43152<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:54-- https://virgool.io/fonts/vazir/Vazir-Bold.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">99840</span> <span class="o">(</span>98K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Bold.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 97.50K --.-KB/s in 0.04s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:55 <span class="o">(</span>2.61 MB/s<span class="o">)</span> - ‘Vazir-Bold.ttf’ saved <span class="o">[</span>99840/99840<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:55-- https://virgool.io/fonts/vazir/Vazir-Bold.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Bold.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 97.68K 560KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:56 <span class="o">(</span><span class="m">560</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.eot?’ saved <span class="o">[</span>100026<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:56-- https://virgool.io/fonts/vazir/Vazir-Bold.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">54560</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Bold.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 53.28K --.-KB/s in 0.06s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:56 <span class="o">(</span><span class="m">917</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.woff’ saved <span class="o">[</span>54560/54560<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:56-- https://virgool.io/fonts/vazir/Vazir-Bold.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">43604</span> <span class="o">(</span>43K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Bold.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.58K --.-KB/s in 0.06s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:57 <span class="o">(</span><span class="m">657</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.woff2’ saved <span class="o">[</span>43604/43604<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:57-- https://virgool.io/fonts/vazir/Vazir-Black.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">99772</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Black.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 97.43K --.-KB/s in 0.04s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:57 <span class="o">(</span>2.18 MB/s<span class="o">)</span> - ‘Vazir-Black.ttf’ saved <span class="o">[</span>99772/99772<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:57-- https://virgool.io/fonts/vazir/Vazir-Black.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Black.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 97.63K 478KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:58 <span class="o">(</span><span class="m">478</span> KB/s<span class="o">)</span> - ‘Vazir-Black.eot?’ saved <span class="o">[</span>99974<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:58-- https://virgool.io/fonts/vazir/Vazir-Black.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">54652</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Black.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 53.37K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:59 <span class="o">(</span><span class="m">691</span> KB/s<span class="o">)</span> - ‘Vazir-Black.woff’ saved <span class="o">[</span>54652/54652<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:59-- https://virgool.io/fonts/vazir/Vazir-Black.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">43332</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Black.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.32K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:00 <span class="o">(</span><span class="m">510</span> KB/s<span class="o">)</span> - ‘Vazir-Black.woff2’ saved <span class="o">[</span>43332/43332<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:00-- https://virgool.io/fonts/fontawesome/fa-solid-900.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">202616</span> <span class="o">(</span>198K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">fa-solid-900.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 197.87K 501KB/s in 0.4s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:01 <span class="o">(</span><span class="m">501</span> KB/s<span class="o">)</span> - ‘fa-solid-900.ttf’ saved <span class="o">[</span>202616/202616<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:01-- https://virgool.io/fonts/fontawesome/fa-solid-900.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">404</span> Not Found -</span></span><span class="line"><span class="cl">2022-01-18 06:42:01 ERROR 404: Not Found. -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:01-- https://virgool.io/fonts/fontawesome/fa-solid-900.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">103300</span> <span class="o">(</span>101K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">fa-solid-900.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 100.88K 358KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:02 <span class="o">(</span><span class="m">358</span> KB/s<span class="o">)</span> - ‘fa-solid-900.woff’ saved <span class="o">[</span>103300/103300<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:02-- https://virgool.io/fonts/fontawesome/fa-solid-900.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">79444</span> <span class="o">(</span>78K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">fa-solid-900.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 77.58K 394KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:03 <span class="o">(</span><span class="m">394</span> KB/s<span class="o">)</span> - ‘fa-solid-900.woff2’ saved <span class="o">[</span>79444/79444<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:03-- https://virgool.io/images/icons/plus.svg -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>image/svg+xml<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘plus.svg’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">plus.svg <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">942</span> --.-KB/s in 0.002s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:03 <span class="o">(</span><span class="m">383</span> KB/s<span class="o">)</span> - ‘plus.svg’ saved <span class="o">[</span>942<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:03-- https://virgool.io/images/icons/tick.svg -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>image/svg+xml<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘tick.svg’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">tick.svg <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">942</span> --.-KB/s in 0s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:04 <span class="o">(</span>89.8 MB/s<span class="o">)</span> - ‘tick.svg’ saved <span class="o">[</span>942<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:04-- https://virgool.io/images/typewriter.png -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">172558</span> <span class="o">(</span>169K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘typewriter.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">typewriter.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 168.51K 349KB/s in 0.5s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:05 <span class="o">(</span><span class="m">349</span> KB/s<span class="o">)</span> - ‘typewriter.png’ saved <span class="o">[</span>172558/172558<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:05-- https://virgool.test/images/download-audio.png -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:05-- https://virgool.test/images/download-ebook.png -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. -</span></span><span class="line"><span class="cl">FINISHED --2022-01-18 06:42:05-- -</span></span><span class="line"><span class="cl">Total wall clock time: 1m 2s -</span></span><span class="line"><span class="cl">Downloaded: <span class="m">54</span> files, 6.6M in 14s <span class="o">(</span><span class="m">479</span> KB/s<span class="o">)</span> -</span></span><span class="line"><span class="cl">Converting links in ns.html?id<span class="o">=</span>GTM-5GS688K.html... nothing to <span class="k">do</span>. -</span></span><span class="line"><span class="cl">Converting links in c3fVa.html... 38. -</span></span><span class="line"><span class="cl">31-7 -</span></span><span class="line"><span class="cl">Converting links in styles.css?v<span class="o">=</span>v2.6.15.css... 35. -</span></span><span class="line"><span class="cl">34-1 -</span></span><span class="line"><span class="cl">Converted links in <span class="m">3</span> files in 0.06 seconds. -</span></span></code></pre></td></tr></table> -</div> -</div> - - - - +هست رو دانلود می‌کنم.</li> +</ul> +</br> +</div> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt"> 10 +</span><span class="lnt"> 11 +</span><span class="lnt"> 12 +</span><span class="lnt"> 13 +</span><span class="lnt"> 14 +</span><span class="lnt"> 15 +</span><span class="lnt"> 16 +</span><span class="lnt"> 17 +</span><span class="lnt"> 18 +</span><span class="lnt"> 19 +</span><span class="lnt"> 20 +</span><span class="lnt"> 21 +</span><span class="lnt"> 22 +</span><span class="lnt"> 23 +</span><span class="lnt"> 24 +</span><span class="lnt"> 25 +</span><span class="lnt"> 26 +</span><span class="lnt"> 27 +</span><span class="lnt"> 28 +</span><span class="lnt"> 29 +</span><span class="lnt"> 30 +</span><span class="lnt"> 31 +</span><span class="lnt"> 32 +</span><span class="lnt"> 33 +</span><span class="lnt"> 34 +</span><span class="lnt"> 35 +</span><span class="lnt"> 36 +</span><span class="lnt"> 37 +</span><span class="lnt"> 38 +</span><span class="lnt"> 39 +</span><span class="lnt"> 40 +</span><span class="lnt"> 41 +</span><span class="lnt"> 42 +</span><span class="lnt"> 43 +</span><span class="lnt"> 44 +</span><span class="lnt"> 45 +</span><span class="lnt"> 46 +</span><span class="lnt"> 47 +</span><span class="lnt"> 48 +</span><span class="lnt"> 49 +</span><span class="lnt"> 50 +</span><span class="lnt"> 51 +</span><span class="lnt"> 52 +</span><span class="lnt"> 53 +</span><span class="lnt"> 54 +</span><span class="lnt"> 55 +</span><span class="lnt"> 56 +</span><span class="lnt"> 57 +</span><span class="lnt"> 58 +</span><span class="lnt"> 59 +</span><span class="lnt"> 60 +</span><span class="lnt"> 61 +</span><span class="lnt"> 62 +</span><span class="lnt"> 63 +</span><span class="lnt"> 64 +</span><span class="lnt"> 65 +</span><span class="lnt"> 66 +</span><span class="lnt"> 67 +</span><span class="lnt"> 68 +</span><span class="lnt"> 69 +</span><span class="lnt"> 70 +</span><span class="lnt"> 71 +</span><span class="lnt"> 72 +</span><span class="lnt"> 73 +</span><span class="lnt"> 74 +</span><span class="lnt"> 75 +</span><span class="lnt"> 76 +</span><span class="lnt"> 77 +</span><span class="lnt"> 78 +</span><span class="lnt"> 79 +</span><span class="lnt"> 80 +</span><span class="lnt"> 81 +</span><span class="lnt"> 82 +</span><span class="lnt"> 83 +</span><span class="lnt"> 84 +</span><span class="lnt"> 85 +</span><span class="lnt"> 86 +</span><span class="lnt"> 87 +</span><span class="lnt"> 88 +</span><span class="lnt"> 89 +</span><span class="lnt"> 90 +</span><span class="lnt"> 91 +</span><span class="lnt"> 92 +</span><span class="lnt"> 93 +</span><span class="lnt"> 94 +</span><span class="lnt"> 95 +</span><span class="lnt"> 96 +</span><span class="lnt"> 97 +</span><span class="lnt"> 98 +</span><span class="lnt"> 99 +</span><span class="lnt">100 +</span><span class="lnt">101 +</span><span class="lnt">102 +</span><span class="lnt">103 +</span><span class="lnt">104 +</span><span class="lnt">105 +</span><span class="lnt">106 +</span><span class="lnt">107 +</span><span class="lnt">108 +</span><span class="lnt">109 +</span><span class="lnt">110 +</span><span class="lnt">111 +</span><span class="lnt">112 +</span><span class="lnt">113 +</span><span class="lnt">114 +</span><span class="lnt">115 +</span><span class="lnt">116 +</span><span class="lnt">117 +</span><span class="lnt">118 +</span><span class="lnt">119 +</span><span class="lnt">120 +</span><span class="lnt">121 +</span><span class="lnt">122 +</span><span class="lnt">123 +</span><span class="lnt">124 +</span><span class="lnt">125 +</span><span class="lnt">126 +</span><span class="lnt">127 +</span><span class="lnt">128 +</span><span class="lnt">129 +</span><span class="lnt">130 +</span><span class="lnt">131 +</span><span class="lnt">132 +</span><span class="lnt">133 +</span><span class="lnt">134 +</span><span class="lnt">135 +</span><span class="lnt">136 +</span><span class="lnt">137 +</span><span class="lnt">138 +</span><span class="lnt">139 +</span><span class="lnt">140 +</span><span class="lnt">141 +</span><span class="lnt">142 +</span><span class="lnt">143 +</span><span class="lnt">144 +</span><span class="lnt">145 +</span><span class="lnt">146 +</span><span class="lnt">147 +</span><span class="lnt">148 +</span><span class="lnt">149 +</span><span class="lnt">150 +</span><span class="lnt">151 +</span><span class="lnt">152 +</span><span class="lnt">153 +</span><span class="lnt">154 +</span><span class="lnt">155 +</span><span class="lnt">156 +</span><span class="lnt">157 +</span><span class="lnt">158 +</span><span class="lnt">159 +</span><span class="lnt">160 +</span><span class="lnt">161 +</span><span class="lnt">162 +</span><span class="lnt">163 +</span><span class="lnt">164 +</span><span class="lnt">165 +</span><span class="lnt">166 +</span><span class="lnt">167 +</span><span class="lnt">168 +</span><span class="lnt">169 +</span><span class="lnt">170 +</span><span class="lnt">171 +</span><span class="lnt">172 +</span><span class="lnt">173 +</span><span class="lnt">174 +</span><span class="lnt">175 +</span><span class="lnt">176 +</span><span class="lnt">177 +</span><span class="lnt">178 +</span><span class="lnt">179 +</span><span class="lnt">180 +</span><span class="lnt">181 +</span><span class="lnt">182 +</span><span class="lnt">183 +</span><span class="lnt">184 +</span><span class="lnt">185 +</span><span class="lnt">186 +</span><span class="lnt">187 +</span><span class="lnt">188 +</span><span class="lnt">189 +</span><span class="lnt">190 +</span><span class="lnt">191 +</span><span class="lnt">192 +</span><span class="lnt">193 +</span><span class="lnt">194 +</span><span class="lnt">195 +</span><span class="lnt">196 +</span><span class="lnt">197 +</span><span class="lnt">198 +</span><span class="lnt">199 +</span><span class="lnt">200 +</span><span class="lnt">201 +</span><span class="lnt">202 +</span><span class="lnt">203 +</span><span class="lnt">204 +</span><span class="lnt">205 +</span><span class="lnt">206 +</span><span class="lnt">207 +</span><span class="lnt">208 +</span><span class="lnt">209 +</span><span class="lnt">210 +</span><span class="lnt">211 +</span><span class="lnt">212 +</span><span class="lnt">213 +</span><span class="lnt">214 +</span><span class="lnt">215 +</span><span class="lnt">216 +</span><span class="lnt">217 +</span><span class="lnt">218 +</span><span class="lnt">219 +</span><span class="lnt">220 +</span><span class="lnt">221 +</span><span class="lnt">222 +</span><span class="lnt">223 +</span><span class="lnt">224 +</span><span class="lnt">225 +</span><span class="lnt">226 +</span><span class="lnt">227 +</span><span class="lnt">228 +</span><span class="lnt">229 +</span><span class="lnt">230 +</span><span class="lnt">231 +</span><span class="lnt">232 +</span><span class="lnt">233 +</span><span class="lnt">234 +</span><span class="lnt">235 +</span><span class="lnt">236 +</span><span class="lnt">237 +</span><span class="lnt">238 +</span><span class="lnt">239 +</span><span class="lnt">240 +</span><span class="lnt">241 +</span><span class="lnt">242 +</span><span class="lnt">243 +</span><span class="lnt">244 +</span><span class="lnt">245 +</span><span class="lnt">246 +</span><span class="lnt">247 +</span><span class="lnt">248 +</span><span class="lnt">249 +</span><span class="lnt">250 +</span><span class="lnt">251 +</span><span class="lnt">252 +</span><span class="lnt">253 +</span><span class="lnt">254 +</span><span class="lnt">255 +</span><span class="lnt">256 +</span><span class="lnt">257 +</span><span class="lnt">258 +</span><span class="lnt">259 +</span><span class="lnt">260 +</span><span class="lnt">261 +</span><span class="lnt">262 +</span><span class="lnt">263 +</span><span class="lnt">264 +</span><span class="lnt">265 +</span><span class="lnt">266 +</span><span class="lnt">267 +</span><span class="lnt">268 +</span><span class="lnt">269 +</span><span class="lnt">270 +</span><span class="lnt">271 +</span><span class="lnt">272 +</span><span class="lnt">273 +</span><span class="lnt">274 +</span><span class="lnt">275 +</span><span class="lnt">276 +</span><span class="lnt">277 +</span><span class="lnt">278 +</span><span class="lnt">279 +</span><span class="lnt">280 +</span><span class="lnt">281 +</span><span class="lnt">282 +</span><span class="lnt">283 +</span><span class="lnt">284 +</span><span class="lnt">285 +</span><span class="lnt">286 +</span><span class="lnt">287 +</span><span class="lnt">288 +</span><span class="lnt">289 +</span><span class="lnt">290 +</span><span class="lnt">291 +</span><span class="lnt">292 +</span><span class="lnt">293 +</span><span class="lnt">294 +</span><span class="lnt">295 +</span><span class="lnt">296 +</span><span class="lnt">297 +</span><span class="lnt">298 +</span><span class="lnt">299 +</span><span class="lnt">300 +</span><span class="lnt">301 +</span><span class="lnt">302 +</span><span class="lnt">303 +</span><span class="lnt">304 +</span><span class="lnt">305 +</span><span class="lnt">306 +</span><span class="lnt">307 +</span><span class="lnt">308 +</span><span class="lnt">309 +</span><span class="lnt">310 +</span><span class="lnt">311 +</span><span class="lnt">312 +</span><span class="lnt">313 +</span><span class="lnt">314 +</span><span class="lnt">315 +</span><span class="lnt">316 +</span><span class="lnt">317 +</span><span class="lnt">318 +</span><span class="lnt">319 +</span><span class="lnt">320 +</span><span class="lnt">321 +</span><span class="lnt">322 +</span><span class="lnt">323 +</span><span class="lnt">324 +</span><span class="lnt">325 +</span><span class="lnt">326 +</span><span class="lnt">327 +</span><span class="lnt">328 +</span><span class="lnt">329 +</span><span class="lnt">330 +</span><span class="lnt">331 +</span><span class="lnt">332 +</span><span class="lnt">333 +</span><span class="lnt">334 +</span><span class="lnt">335 +</span><span class="lnt">336 +</span><span class="lnt">337 +</span><span class="lnt">338 +</span><span class="lnt">339 +</span><span class="lnt">340 +</span><span class="lnt">341 +</span><span class="lnt">342 +</span><span class="lnt">343 +</span><span class="lnt">344 +</span><span class="lnt">345 +</span><span class="lnt">346 +</span><span class="lnt">347 +</span><span class="lnt">348 +</span><span class="lnt">349 +</span><span class="lnt">350 +</span><span class="lnt">351 +</span><span class="lnt">352 +</span><span class="lnt">353 +</span><span class="lnt">354 +</span><span class="lnt">355 +</span><span class="lnt">356 +</span><span class="lnt">357 +</span><span class="lnt">358 +</span><span class="lnt">359 +</span><span class="lnt">360 +</span><span class="lnt">361 +</span><span class="lnt">362 +</span><span class="lnt">363 +</span><span class="lnt">364 +</span><span class="lnt">365 +</span><span class="lnt">366 +</span><span class="lnt">367 +</span><span class="lnt">368 +</span><span class="lnt">369 +</span><span class="lnt">370 +</span><span class="lnt">371 +</span><span class="lnt">372 +</span><span class="lnt">373 +</span><span class="lnt">374 +</span><span class="lnt">375 +</span><span class="lnt">376 +</span><span class="lnt">377 +</span><span class="lnt">378 +</span><span class="lnt">379 +</span><span class="lnt">380 +</span><span class="lnt">381 +</span><span class="lnt">382 +</span><span class="lnt">383 +</span><span class="lnt">384 +</span><span class="lnt">385 +</span><span class="lnt">386 +</span><span class="lnt">387 +</span><span class="lnt">388 +</span><span class="lnt">389 +</span><span class="lnt">390 +</span><span class="lnt">391 +</span><span class="lnt">392 +</span><span class="lnt">393 +</span><span class="lnt">394 +</span><span class="lnt">395 +</span><span class="lnt">396 +</span><span class="lnt">397 +</span><span class="lnt">398 +</span><span class="lnt">399 +</span><span class="lnt">400 +</span><span class="lnt">401 +</span><span class="lnt">402 +</span><span class="lnt">403 +</span><span class="lnt">404 +</span><span class="lnt">405 +</span><span class="lnt">406 +</span><span class="lnt">407 +</span><span class="lnt">408 +</span><span class="lnt">409 +</span><span class="lnt">410 +</span><span class="lnt">411 +</span><span class="lnt">412 +</span><span class="lnt">413 +</span><span class="lnt">414 +</span><span class="lnt">415 +</span><span class="lnt">416 +</span><span class="lnt">417 +</span><span class="lnt">418 +</span><span class="lnt">419 +</span><span class="lnt">420 +</span><span class="lnt">421 +</span><span class="lnt">422 +</span><span class="lnt">423 +</span><span class="lnt">424 +</span><span class="lnt">425 +</span><span class="lnt">426 +</span><span class="lnt">427 +</span><span class="lnt">428 +</span><span class="lnt">429 +</span><span class="lnt">430 +</span><span class="lnt">431 +</span><span class="lnt">432 +</span><span class="lnt">433 +</span><span class="lnt">434 +</span><span class="lnt">435 +</span><span class="lnt">436 +</span><span class="lnt">437 +</span><span class="lnt">438 +</span><span class="lnt">439 +</span><span class="lnt">440 +</span><span class="lnt">441 +</span><span class="lnt">442 +</span><span class="lnt">443 +</span><span class="lnt">444 +</span><span class="lnt">445 +</span><span class="lnt">446 +</span><span class="lnt">447 +</span><span class="lnt">448 +</span><span class="lnt">449 +</span><span class="lnt">450 +</span><span class="lnt">451 +</span><span class="lnt">452 +</span><span class="lnt">453 +</span><span class="lnt">454 +</span><span class="lnt">455 +</span><span class="lnt">456 +</span><span class="lnt">457 +</span><span class="lnt">458 +</span><span class="lnt">459 +</span><span class="lnt">460 +</span><span class="lnt">461 +</span><span class="lnt">462 +</span><span class="lnt">463 +</span><span class="lnt">464 +</span><span class="lnt">465 +</span><span class="lnt">466 +</span><span class="lnt">467 +</span><span class="lnt">468 +</span><span class="lnt">469 +</span><span class="lnt">470 +</span><span class="lnt">471 +</span><span class="lnt">472 +</span><span class="lnt">473 +</span><span class="lnt">474 +</span><span class="lnt">475 +</span><span class="lnt">476 +</span><span class="lnt">477 +</span><span class="lnt">478 +</span><span class="lnt">479 +</span><span class="lnt">480 +</span><span class="lnt">481 +</span><span class="lnt">482 +</span><span class="lnt">483 +</span><span class="lnt">484 +</span><span class="lnt">485 +</span><span class="lnt">486 +</span><span class="lnt">487 +</span><span class="lnt">488 +</span><span class="lnt">489 +</span><span class="lnt">490 +</span><span class="lnt">491 +</span><span class="lnt">492 +</span><span class="lnt">493 +</span><span class="lnt">494 +</span><span class="lnt">495 +</span><span class="lnt">496 +</span><span class="lnt">497 +</span><span class="lnt">498 +</span><span class="lnt">499 +</span><span class="lnt">500 +</span><span class="lnt">501 +</span><span class="lnt">502 +</span><span class="lnt">503 +</span><span class="lnt">504 +</span><span class="lnt">505 +</span><span class="lnt">506 +</span><span class="lnt">507 +</span><span class="lnt">508 +</span><span class="lnt">509 +</span><span class="lnt">510 +</span><span class="lnt">511 +</span><span class="lnt">512 +</span><span class="lnt">513 +</span><span class="lnt">514 +</span><span class="lnt">515 +</span><span class="lnt">516 +</span><span class="lnt">517 +</span><span class="lnt">518 +</span><span class="lnt">519 +</span><span class="lnt">520 +</span><span class="lnt">521 +</span><span class="lnt">522 +</span><span class="lnt">523 +</span><span class="lnt">524 +</span><span class="lnt">525 +</span><span class="lnt">526 +</span><span class="lnt">527 +</span><span class="lnt">528 +</span><span class="lnt">529 +</span><span class="lnt">530 +</span><span class="lnt">531 +</span><span class="lnt">532 +</span><span class="lnt">533 +</span><span class="lnt">534 +</span><span class="lnt">535 +</span><span class="lnt">536 +</span><span class="lnt">537 +</span><span class="lnt">538 +</span><span class="lnt">539 +</span><span class="lnt">540 +</span><span class="lnt">541 +</span><span class="lnt">542 +</span><span class="lnt">543 +</span><span class="lnt">544 +</span><span class="lnt">545 +</span><span class="lnt">546 +</span><span class="lnt">547 +</span><span class="lnt">548 +</span><span class="lnt">549 +</span><span class="lnt">550 +</span><span class="lnt">551 +</span><span class="lnt">552 +</span><span class="lnt">553 +</span><span class="lnt">554 +</span><span class="lnt">555 +</span><span class="lnt">556 +</span><span class="lnt">557 +</span><span class="lnt">558 +</span><span class="lnt">559 +</span><span class="lnt">560 +</span><span class="lnt">561 +</span><span class="lnt">562 +</span><span class="lnt">563 +</span><span class="lnt">564 +</span><span class="lnt">565 +</span><span class="lnt">566 +</span><span class="lnt">567 +</span><span class="lnt">568 +</span><span class="lnt">569 +</span><span class="lnt">570 +</span><span class="lnt">571 +</span><span class="lnt">572 +</span><span class="lnt">573 +</span><span class="lnt">574 +</span><span class="lnt">575 +</span><span class="lnt">576 +</span><span class="lnt">577 +</span><span class="lnt">578 +</span><span class="lnt">579 +</span><span class="lnt">580 +</span><span class="lnt">581 +</span><span class="lnt">582 +</span><span class="lnt">583 +</span><span class="lnt">584 +</span><span class="lnt">585 +</span><span class="lnt">586 +</span><span class="lnt">587 +</span><span class="lnt">588 +</span><span class="lnt">589 +</span><span class="lnt">590 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">┌─<span class="o">[</span>loading<span class="o">]</span> <span class="o">[</span>/tmp/virgool<span class="o">]</span> <span class="o">[</span>0<span class="o">]</span> +</span></span><span class="line"><span class="cl">│ +</span></span><span class="line"><span class="cl">└──〉wget -nd -E -p -k -H https://vrgl.ir/c3fVa +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:03-- https://vrgl.ir/c3fVa +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">302</span> Found +</span></span><span class="line"><span class="cl">Location: https://virgool.io/@Novo/rsa-encryption-ao1poasym4cf <span class="o">[</span>following<span class="o">]</span> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:04-- https://virgool.io/@Novo/rsa-encryption-ao1poasym4cf +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/html<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘c3fVa.html’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">c3fVa.html <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 61.30K 200KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:06 <span class="o">(</span><span class="m">200</span> KB/s<span class="o">)</span> - ‘c3fVa.html’ saved <span class="o">[</span>62773<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:06-- https://virgool.io/robots.txt +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>document<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘robots.txt’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">robots.txt <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">484</span> --.-KB/s in 0s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:07 <span class="o">(</span>85.7 MB/s<span class="o">)</span> - ‘robots.txt’ saved <span class="o">[</span>484<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:07-- https://www.googletagmanager.com/robots.txt +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">404</span> Not Found +</span></span><span class="line"><span class="cl">2022-01-18 06:41:08 ERROR 404: Not Found. +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:08-- https://files.virgool.io/robots.txt +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">403</span> Forbidden +</span></span><span class="line"><span class="cl">2022-01-18 06:41:09 ERROR 403: Forbidden. +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:09-- https://static.cloudflareinsights.com/robots.txt +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">522</span> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:26 ERROR 522: <span class="o">(</span>no description<span class="o">)</span>. +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:26-- https://virgool.io/images/favicon.png?v<span class="o">=</span>v2.6.15 +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">9855</span> <span class="o">(</span>9.6K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘favicon.png?v<span class="o">=</span>v2.6.15’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">favicon.png?v<span class="o">=</span>v2.6.15 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 9.62K --.-KB/s in 0.07s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:27 <span class="o">(</span><span class="m">130</span> KB/s<span class="o">)</span> - ‘favicon.png?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>9855/9855<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:27-- https://virgool.io/css/styles.css?v<span class="o">=</span>v2.6.15 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/css<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘styles.css?v<span class="o">=</span>v2.6.15.css’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">styles.css?v<span class="o">=</span>v2.6.15.css <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 903.60K 592KB/s in 1.5s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:28 <span class="o">(</span><span class="m">592</span> KB/s<span class="o">)</span> - ‘styles.css?v<span class="o">=</span>v2.6.15.css’ saved <span class="o">[</span>925284<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:28-- https://virgool.test/robots.txt +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:28-- https://www.googletagmanager.com/ns.html?id<span class="o">=</span>GTM-5GS688K +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/html<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘ns.html?id<span class="o">=</span>GTM-5GS688K.html’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">ns.html?id<span class="o">=</span>GTM-5GS688K.html <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">266</span> --.-KB/s in 0s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:29 <span class="o">(</span>29.4 MB/s<span class="o">)</span> - ‘ns.html?id<span class="o">=</span>GTM-5GS688K.html’ saved <span class="o">[</span>266<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:29-- https://files.virgool.io/upload/users/31434/avatar/1C4LLE.png?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">39194</span> <span class="o">(</span>38K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_ 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 38.28K 173KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:30 <span class="o">(</span><span class="m">173</span> KB/s<span class="o">)</span> - ‘1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>39194/39194<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:30-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/qhokakomwyb5.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">179870</span> <span class="o">(</span>176K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘qhokakomwyb5.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">qhokakomwyb5.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 175.65K 567KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">567</span> KB/s<span class="o">)</span> - ‘qhokakomwyb5.png’ saved <span class="o">[</span>179870/179870<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/v1xnwpnewfys.webp +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">12770</span> <span class="o">(</span>12K<span class="o">)</span> <span class="o">[</span>image/webp<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘v1xnwpnewfys.webp’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">v1xnwpnewfys.webp 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 12.47K --.-KB/s in 0.07s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">180</span> KB/s<span class="o">)</span> - ‘v1xnwpnewfys.webp’ saved <span class="o">[</span>12770/12770<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/d28hpu2detkl.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">92847</span> <span class="o">(</span>91K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘d28hpu2detkl.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">d28hpu2detkl.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 90.67K --.-KB/s in 0.09s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">969</span> KB/s<span class="o">)</span> - ‘d28hpu2detkl.png’ saved <span class="o">[</span>92847/92847<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/rhyykrc8azq0.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">17539</span> <span class="o">(</span>17K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘rhyykrc8azq0.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">rhyykrc8azq0.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 17.13K --.-KB/s in 0.007s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>2.47 MB/s<span class="o">)</span> - ‘rhyykrc8azq0.png’ saved <span class="o">[</span>17539/17539<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/fjtc1ydzkuse.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">108524</span> <span class="o">(</span>106K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘fjtc1ydzkuse.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">fjtc1ydzkuse.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 105.98K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>1.06 MB/s<span class="o">)</span> - ‘fjtc1ydzkuse.png’ saved <span class="o">[</span>108524/108524<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/gfqhgyp18oic.jpeg +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">132085</span> <span class="o">(</span>129K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘gfqhgyp18oic.jpeg’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">gfqhgyp18oic.jpeg 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 128.99K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>1.28 MB/s<span class="o">)</span> - ‘gfqhgyp18oic.jpeg’ saved <span class="o">[</span>132085/132085<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/me0mpjtdmyom.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">113489</span> <span class="o">(</span>111K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘me0mpjtdmyom.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">me0mpjtdmyom.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 110.83K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span><span class="m">814</span> KB/s<span class="o">)</span> - ‘me0mpjtdmyom.png’ saved <span class="o">[</span>113489/113489<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/of7krju6oqzk.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">105746</span> <span class="o">(</span>103K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘of7krju6oqzk.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">of7krju6oqzk.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 103.27K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span>1.25 MB/s<span class="o">)</span> - ‘of7krju6oqzk.png’ saved <span class="o">[</span>105746/105746<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/oqwhflg4gbnq.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">120994</span> <span class="o">(</span>118K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘oqwhflg4gbnq.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">oqwhflg4gbnq.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 118.16K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span>1.14 MB/s<span class="o">)</span> - ‘oqwhflg4gbnq.png’ saved <span class="o">[</span>120994/120994<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/taqjnfnuzxcx.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">122678</span> <span class="o">(</span>120K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘taqjnfnuzxcx.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">taqjnfnuzxcx.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 119.80K --.-KB/s in 0.06s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span>2.00 MB/s<span class="o">)</span> - ‘taqjnfnuzxcx.png’ saved <span class="o">[</span>122678/122678<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/63/posts/qwqrubplfaau/g8vai2incgna.jpeg?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">88292</span> <span class="o">(</span>86K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fre 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 86.22K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span><span class="m">824</span> KB/s<span class="o">)</span> - ‘g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>88292/88292<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/63/avatar/o8jiNe.png?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">32037</span> <span class="o">(</span>31K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_ 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 31.29K --.-KB/s in 0.06s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span><span class="m">558</span> KB/s<span class="o">)</span> - ‘o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>32037/32037<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/31434/posts/e3oydlcfkr5e/figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">30356</span> <span class="o">(</span>30K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fre 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 29.64K --.-KB/s in 0.07s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span><span class="m">401</span> KB/s<span class="o">)</span> - ‘figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>30356/30356<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://files.virgool.io/upload/users/316150/posts/r8rhw88uh1xh/cs1ugyelv3zw.png?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">34459</span> <span class="o">(</span>34K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fres 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 33.65K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span><span class="m">399</span> KB/s<span class="o">)</span> - ‘cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>34459/34459<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://files.virgool.io/upload/users/316150/avatar/8sz7Rs.jpeg?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">14764</span> <span class="o">(</span>14K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 14.42K --.-KB/s in 0.007s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span>2.11 MB/s<span class="o">)</span> - ‘8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>14764/14764<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://virgool.io/js/commons.js?v<span class="o">=</span>v2.6.15 +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/javascript<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘commons.js?v<span class="o">=</span>v2.6.15’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">commons.js?v<span class="o">=</span>v2.6.15 <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 997.55K 337KB/s in 3.0s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:39 <span class="o">(</span><span class="m">337</span> KB/s<span class="o">)</span> - ‘commons.js?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>1021492<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:39-- https://virgool.io/js/main.js?v<span class="o">=</span>v2.6.15 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/javascript<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘main.js?v<span class="o">=</span>v2.6.15’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">main.js?v<span class="o">=</span>v2.6.15 <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 1.21M 580KB/s in 2.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:41 <span class="o">(</span><span class="m">580</span> KB/s<span class="o">)</span> - ‘main.js?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>1267632<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:41-- https://static.cloudflareinsights.com/beacon.min.js/v652eace1692a40cfa3763df669d7439c1639079717194 +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">13970</span> <span class="o">(</span>14K<span class="o">)</span> <span class="o">[</span>text/javascript<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘v652eace1692a40cfa3763df669d7439c1639079717194’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">v652eace1692a40cfa3763df669d743 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 13.64K --.-KB/s in 0.02s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:42 <span class="o">(</span><span class="m">600</span> KB/s<span class="o">)</span> - ‘v652eace1692a40cfa3763df669d7439c1639079717194’ saved <span class="o">[</span>13970/13970<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:42-- https://virgool.io/fonts/vazir/Vazir-Thin.ttf +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">98924</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Thin.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.61K 140KB/s in 0.7s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:43 <span class="o">(</span><span class="m">140</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.ttf’ saved <span class="o">[</span>98924/98924<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:43-- https://virgool.io/fonts/vazir/Vazir-Thin.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Thin.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.80K 276KB/s in 0.4s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:44 <span class="o">(</span><span class="m">276</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.eot?’ saved <span class="o">[</span>99120<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:44-- https://virgool.io/fonts/vazir/Vazir-Thin.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">54068</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Thin.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.80K --.-KB/s in 0.07s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:45 <span class="o">(</span><span class="m">770</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.woff’ saved <span class="o">[</span>54068/54068<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:45-- https://virgool.io/fonts/vazir/Vazir-Thin.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">43000</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Thin.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 41.99K --.-KB/s in 0.006s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:46 <span class="o">(</span>6.59 MB/s<span class="o">)</span> - ‘Vazir-Thin.woff2’ saved <span class="o">[</span>43000/43000<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:46-- https://virgool.io/fonts/vazir/Vazir-Light.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">105360</span> <span class="o">(</span>103K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Light.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 102.89K 478KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:46 <span class="o">(</span><span class="m">478</span> KB/s<span class="o">)</span> - ‘Vazir-Light.ttf’ saved <span class="o">[</span>105360/105360<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:46-- https://virgool.io/fonts/vazir/Vazir-Light.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Light.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 103.09K 470KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:47 <span class="o">(</span><span class="m">470</span> KB/s<span class="o">)</span> - ‘Vazir-Light.eot?’ saved <span class="o">[</span>105562<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:47-- https://virgool.io/fonts/vazir/Vazir-Light.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">59688</span> <span class="o">(</span>58K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Light.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 58.29K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:48 <span class="o">(</span><span class="m">758</span> KB/s<span class="o">)</span> - ‘Vazir-Light.woff’ saved <span class="o">[</span>59688/59688<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:48-- https://virgool.io/fonts/vazir/Vazir-Light.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">48168</span> <span class="o">(</span>47K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Light.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 47.04K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:48 <span class="o">(</span><span class="m">570</span> KB/s<span class="o">)</span> - ‘Vazir-Light.woff2’ saved <span class="o">[</span>48168/48168<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:48-- https://virgool.io/fonts/vazir/Vazir-Regular.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">98376</span> <span class="o">(</span>96K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Regular.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.07K 435KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:49 <span class="o">(</span><span class="m">435</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.ttf’ saved <span class="o">[</span>98376/98376<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:49-- https://virgool.io/fonts/vazir/Vazir-Regular.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Regular.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.26K 285KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:50 <span class="o">(</span><span class="m">285</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.eot?’ saved <span class="o">[</span>98574<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:50-- https://virgool.io/fonts/vazir/Vazir-Regular.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">53744</span> <span class="o">(</span>52K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Regular.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.48K --.-KB/s in 0.05s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:51 <span class="o">(</span>1.10 MB/s<span class="o">)</span> - ‘Vazir-Regular.woff’ saved <span class="o">[</span>53744/53744<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:51-- https://virgool.io/fonts/vazir/Vazir-Regular.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">42744</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Regular.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 41.74K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:51 <span class="o">(</span><span class="m">412</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.woff2’ saved <span class="o">[</span>42744/42744<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:51-- https://virgool.io/fonts/vazir/Vazir-Medium.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">98892</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Medium.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.57K 606KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:52 <span class="o">(</span><span class="m">606</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.ttf’ saved <span class="o">[</span>98892/98892<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:52-- https://virgool.io/fonts/vazir/Vazir-Medium.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Medium.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.78K 347KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:53 <span class="o">(</span><span class="m">347</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.eot?’ saved <span class="o">[</span>99100<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:53-- https://virgool.io/fonts/vazir/Vazir-Medium.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">54120</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Medium.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.85K 125KB/s in 0.4s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:54 <span class="o">(</span><span class="m">125</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.woff’ saved <span class="o">[</span>54120/54120<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:54-- https://virgool.io/fonts/vazir/Vazir-Medium.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">43152</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Medium.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.14K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:54 <span class="o">(</span><span class="m">541</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.woff2’ saved <span class="o">[</span>43152/43152<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:54-- https://virgool.io/fonts/vazir/Vazir-Bold.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">99840</span> <span class="o">(</span>98K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Bold.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 97.50K --.-KB/s in 0.04s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:55 <span class="o">(</span>2.61 MB/s<span class="o">)</span> - ‘Vazir-Bold.ttf’ saved <span class="o">[</span>99840/99840<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:55-- https://virgool.io/fonts/vazir/Vazir-Bold.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Bold.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 97.68K 560KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:56 <span class="o">(</span><span class="m">560</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.eot?’ saved <span class="o">[</span>100026<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:56-- https://virgool.io/fonts/vazir/Vazir-Bold.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">54560</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Bold.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 53.28K --.-KB/s in 0.06s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:56 <span class="o">(</span><span class="m">917</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.woff’ saved <span class="o">[</span>54560/54560<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:56-- https://virgool.io/fonts/vazir/Vazir-Bold.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">43604</span> <span class="o">(</span>43K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Bold.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.58K --.-KB/s in 0.06s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:57 <span class="o">(</span><span class="m">657</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.woff2’ saved <span class="o">[</span>43604/43604<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:57-- https://virgool.io/fonts/vazir/Vazir-Black.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">99772</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Black.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 97.43K --.-KB/s in 0.04s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:57 <span class="o">(</span>2.18 MB/s<span class="o">)</span> - ‘Vazir-Black.ttf’ saved <span class="o">[</span>99772/99772<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:57-- https://virgool.io/fonts/vazir/Vazir-Black.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Black.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 97.63K 478KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:58 <span class="o">(</span><span class="m">478</span> KB/s<span class="o">)</span> - ‘Vazir-Black.eot?’ saved <span class="o">[</span>99974<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:58-- https://virgool.io/fonts/vazir/Vazir-Black.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">54652</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Black.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 53.37K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:59 <span class="o">(</span><span class="m">691</span> KB/s<span class="o">)</span> - ‘Vazir-Black.woff’ saved <span class="o">[</span>54652/54652<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:59-- https://virgool.io/fonts/vazir/Vazir-Black.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">43332</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Black.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.32K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:00 <span class="o">(</span><span class="m">510</span> KB/s<span class="o">)</span> - ‘Vazir-Black.woff2’ saved <span class="o">[</span>43332/43332<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:00-- https://virgool.io/fonts/fontawesome/fa-solid-900.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">202616</span> <span class="o">(</span>198K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">fa-solid-900.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 197.87K 501KB/s in 0.4s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:01 <span class="o">(</span><span class="m">501</span> KB/s<span class="o">)</span> - ‘fa-solid-900.ttf’ saved <span class="o">[</span>202616/202616<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:01-- https://virgool.io/fonts/fontawesome/fa-solid-900.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">404</span> Not Found +</span></span><span class="line"><span class="cl">2022-01-18 06:42:01 ERROR 404: Not Found. +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:01-- https://virgool.io/fonts/fontawesome/fa-solid-900.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">103300</span> <span class="o">(</span>101K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">fa-solid-900.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 100.88K 358KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:02 <span class="o">(</span><span class="m">358</span> KB/s<span class="o">)</span> - ‘fa-solid-900.woff’ saved <span class="o">[</span>103300/103300<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:02-- https://virgool.io/fonts/fontawesome/fa-solid-900.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">79444</span> <span class="o">(</span>78K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">fa-solid-900.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 77.58K 394KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:03 <span class="o">(</span><span class="m">394</span> KB/s<span class="o">)</span> - ‘fa-solid-900.woff2’ saved <span class="o">[</span>79444/79444<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:03-- https://virgool.io/images/icons/plus.svg +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>image/svg+xml<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘plus.svg’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">plus.svg <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">942</span> --.-KB/s in 0.002s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:03 <span class="o">(</span><span class="m">383</span> KB/s<span class="o">)</span> - ‘plus.svg’ saved <span class="o">[</span>942<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:03-- https://virgool.io/images/icons/tick.svg +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>image/svg+xml<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘tick.svg’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">tick.svg <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">942</span> --.-KB/s in 0s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:04 <span class="o">(</span>89.8 MB/s<span class="o">)</span> - ‘tick.svg’ saved <span class="o">[</span>942<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:04-- https://virgool.io/images/typewriter.png +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">172558</span> <span class="o">(</span>169K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘typewriter.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">typewriter.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 168.51K 349KB/s in 0.5s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:05 <span class="o">(</span><span class="m">349</span> KB/s<span class="o">)</span> - ‘typewriter.png’ saved <span class="o">[</span>172558/172558<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:05-- https://virgool.test/images/download-audio.png +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:05-- https://virgool.test/images/download-ebook.png +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. +</span></span><span class="line"><span class="cl">FINISHED --2022-01-18 06:42:05-- +</span></span><span class="line"><span class="cl">Total wall clock time: 1m 2s +</span></span><span class="line"><span class="cl">Downloaded: <span class="m">54</span> files, 6.6M in 14s <span class="o">(</span><span class="m">479</span> KB/s<span class="o">)</span> +</span></span><span class="line"><span class="cl">Converting links in ns.html?id<span class="o">=</span>GTM-5GS688K.html... nothing to <span class="k">do</span>. +</span></span><span class="line"><span class="cl">Converting links in c3fVa.html... 38. +</span></span><span class="line"><span class="cl">31-7 +</span></span><span class="line"><span class="cl">Converting links in styles.css?v<span class="o">=</span>v2.6.15.css... 35. +</span></span><span class="line"><span class="cl">34-1 +</span></span><span class="line"><span class="cl">Converted links in <span class="m">3</span> files in 0.06 seconds. +</span></span></code></pre></td></tr></table> +</div> +</div> \ No newline at end of file diff --git a/docs/tags/how-to-snapshot-a-single-site-page/page/1/index.html b/docs/tags/how-to-snapshot-a-single-site-page/page/1/index.html index c49062d..56aa0a0 100644 --- a/docs/tags/how-to-snapshot-a-single-site-page/page/1/index.html +++ b/docs/tags/how-to-snapshot-a-single-site-page/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/how-to-snapshot-a-single-site-page/ - - - - - - +https://bit-orbit.github.io/tags/how-to-snapshot-a-single-site-page/ + \ No newline at end of file diff --git a/docs/tags/index.html b/docs/tags/index.html index ec2b9cf..a039138 100644 --- a/docs/tags/index.html +++ b/docs/tags/index.html @@ -1,663 +1,40 @@ - - - - -Tags - - - - - - - - - - - - - - - -
- - - - -
-
-

- - بخش - -

- -
-
-

70 صفحه

-

Tags

- -
-
-
- -
- - - - - - - - - - - -
- - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tags + \ No newline at end of file diff --git a/docs/tags/index.xml b/docs/tags/index.xml index 1643242..5e0f578 100644 --- a/docs/tags/index.xml +++ b/docs/tags/index.xml @@ -1,571 +1 @@ - - - - Tags on bit-orbit - https://bit-orbit.github.io/tags/ - Recent content in Tags on bit-orbit - Hugo -- gohugo.io - fa - Thu, 01 Aug 2024 03:03:46 +0330 - /Etc/Resolve.conf - https://bit-orbit.github.io/tags/etc/resolve.conf/ - Thu, 01 Aug 2024 03:03:46 +0330 - - https://bit-orbit.github.io/tags/etc/resolve.conf/ - - - - /Etc/Systemd/Resolved.conf - https://bit-orbit.github.io/tags/etc/systemd/resolved.conf/ - Thu, 01 Aug 2024 03:03:46 +0330 - - https://bit-orbit.github.io/tags/etc/systemd/resolved.conf/ - - - - Arya Shabane - https://bit-orbit.github.io/tags/arya-shabane/ - Thu, 01 Aug 2024 03:03:46 +0330 - - https://bit-orbit.github.io/tags/arya-shabane/ - - - - DNS در لینوکس - https://bit-orbit.github.io/tags/dns-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3/ - Thu, 01 Aug 2024 03:03:46 +0330 - - https://bit-orbit.github.io/tags/dns-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3/ - - - - M_shabane - https://bit-orbit.github.io/tags/m_shabane/ - Thu, 01 Aug 2024 03:03:46 +0330 - - https://bit-orbit.github.io/tags/m_shabane/ - - - - کانفیگ کردن DNS در لینوکس - https://bit-orbit.github.io/tags/%DA%A9%D8%A7%D9%86%D9%81%DB%8C%DA%AF-%DA%A9%D8%B1%D8%AF%D9%86-dns-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3/ - Thu, 01 Aug 2024 03:03:46 +0330 - - https://bit-orbit.github.io/tags/%DA%A9%D8%A7%D9%86%D9%81%DB%8C%DA%AF-%DA%A9%D8%B1%D8%AF%D9%86-dns-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3/ - - - - 0x0.st - https://bit-orbit.github.io/tags/0x0.st/ - Wed, 06 Mar 2024 23:50:46 +0330 - - https://bit-orbit.github.io/tags/0x0.st/ - - - - Curl Paste - https://bit-orbit.github.io/tags/curl-paste/ - Wed, 06 Mar 2024 23:50:46 +0330 - - https://bit-orbit.github.io/tags/curl-paste/ - - - - Curlpaste - https://bit-orbit.github.io/tags/curlpaste/ - Wed, 06 Mar 2024 23:50:46 +0330 - - https://bit-orbit.github.io/tags/curlpaste/ - - - - Paste File With Curl - https://bit-orbit.github.io/tags/paste-file-with-curl/ - Wed, 06 Mar 2024 23:50:46 +0330 - - https://bit-orbit.github.io/tags/paste-file-with-curl/ - - - - اپلود موقت فایل - https://bit-orbit.github.io/tags/%D8%A7%D9%BE%D9%84%D9%88%D8%AF-%D9%85%D9%88%D9%82%D8%AA-%D9%81%D8%A7%DB%8C%D9%84/ - Wed, 06 Mar 2024 23:50:46 +0330 - - https://bit-orbit.github.io/tags/%D8%A7%D9%BE%D9%84%D9%88%D8%AF-%D9%85%D9%88%D9%82%D8%AA-%D9%81%D8%A7%DB%8C%D9%84/ - - - - شیر کردن فایل - https://bit-orbit.github.io/tags/%D8%B4%DB%8C%D8%B1-%DA%A9%D8%B1%D8%AF%D9%86-%D9%81%D8%A7%DB%8C%D9%84/ - Wed, 06 Mar 2024 23:50:46 +0330 - - https://bit-orbit.github.io/tags/%D8%B4%DB%8C%D8%B1-%DA%A9%D8%B1%D8%AF%D9%86-%D9%81%D8%A7%DB%8C%D9%84/ - - - - فایل بین با Curl - https://bit-orbit.github.io/tags/%D9%81%D8%A7%DB%8C%D9%84-%D8%A8%DB%8C%D9%86-%D8%A8%D8%A7-curl/ - Wed, 06 Mar 2024 23:50:46 +0330 - - https://bit-orbit.github.io/tags/%D9%81%D8%A7%DB%8C%D9%84-%D8%A8%DB%8C%D9%86-%D8%A8%D8%A7-curl/ - - - - File Locking چیست - https://bit-orbit.github.io/tags/file-locking-%DA%86%DB%8C%D8%B3%D8%AA/ - Fri, 09 Feb 2024 01:49:42 +0330 - - https://bit-orbit.github.io/tags/file-locking-%DA%86%DB%8C%D8%B3%D8%AA/ - - - - File Locking در لینوکس چیست؟ - https://bit-orbit.github.io/tags/file-locking-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA/ - Fri, 09 Feb 2024 01:49:42 +0330 - - https://bit-orbit.github.io/tags/file-locking-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA/ - - - - How to Lock File in Linux? - https://bit-orbit.github.io/tags/how-to-lock-file-in-linux/ - Fri, 09 Feb 2024 01:49:42 +0330 - - https://bit-orbit.github.io/tags/how-to-lock-file-in-linux/ - - - - What Is File Locking in Linux? - https://bit-orbit.github.io/tags/what-is-file-locking-in-linux/ - Fri, 09 Feb 2024 01:49:42 +0330 - - https://bit-orbit.github.io/tags/what-is-file-locking-in-linux/ - - - - لاک کردن فایل در لینوکس چیست؟ - https://bit-orbit.github.io/tags/%D9%84%D8%A7%DA%A9-%DA%A9%D8%B1%D8%AF%D9%86-%D9%81%D8%A7%DB%8C%D9%84-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA/ - Fri, 09 Feb 2024 01:49:42 +0330 - - https://bit-orbit.github.io/tags/%D9%84%D8%A7%DA%A9-%DA%A9%D8%B1%D8%AF%D9%86-%D9%81%D8%A7%DB%8C%D9%84-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA/ - - - - Rust - https://bit-orbit.github.io/tags/rust/ - Wed, 03 Jan 2024 01:30:52 +0330 - - https://bit-orbit.github.io/tags/rust/ - - - - آموزش Rust - https://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-rust/ - Wed, 03 Jan 2024 01:30:52 +0330 - - https://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-rust/ - - - - آموزش راست - https://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B1%D8%A7%D8%B3%D8%AA/ - Wed, 03 Jan 2024 01:30:52 +0330 - - https://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B1%D8%A7%D8%B3%D8%AA/ - - - - آموزش فارسی زبان Rust - https://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%B2%D8%A8%D8%A7%D9%86-rust/ - Wed, 03 Jan 2024 01:30:52 +0330 - - https://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%B2%D8%A8%D8%A7%D9%86-rust/ - - - - اموزش زبان Rust - https://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-rust/ - Wed, 03 Jan 2024 01:30:52 +0330 - - https://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-rust/ - - - - اموزش زبان راست - https://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-%D8%B1%D8%A7%D8%B3%D8%AA/ - Wed, 03 Jan 2024 01:30:52 +0330 - - https://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-%D8%B1%D8%A7%D8%B3%D8%AA/ - - - - اموزش فارسی زبان راست - https://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%B2%D8%A8%D8%A7%D9%86-%D8%B1%D8%A7%D8%B3%D8%AA/ - Wed, 03 Jan 2024 01:30:52 +0330 - - https://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%B2%D8%A8%D8%A7%D9%86-%D8%B1%D8%A7%D8%B3%D8%AA/ - - - - آموزش زبان Rust - https://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-rust/ - Sun, 31 Dec 2023 00:00:00 +0000 - - https://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-rust/ - - - - آموزش زبان راست - https://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-%D8%B1%D8%A7%D8%B3%D8%AA/ - Sun, 31 Dec 2023 00:00:00 +0000 - - https://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-%D8%B1%D8%A7%D8%B3%D8%AA/ - - - - اموزش Rust - https://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-rust/ - Sun, 31 Dec 2023 00:00:00 +0000 - - https://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-rust/ - - - - اموزش راست - https://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-%D8%B1%D8%A7%D8%B3%D8%AA/ - Sun, 31 Dec 2023 00:00:00 +0000 - - https://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-%D8%B1%D8%A7%D8%B3%D8%AA/ - - - - :(){ :|:& };: - https://bit-orbit.github.io/tags/--/ - Wed, 27 Dec 2023 16:39:27 +0330 - - https://bit-orbit.github.io/tags/--/ - - - - Forkbomb چیست - https://bit-orbit.github.io/tags/forkbomb-%DA%86%DB%8C%D8%B3%D8%AA/ - Wed, 27 Dec 2023 16:39:27 +0330 - - https://bit-orbit.github.io/tags/forkbomb-%DA%86%DB%8C%D8%B3%D8%AA/ - - - - Infinite Recursion - https://bit-orbit.github.io/tags/infinite-recursion/ - Wed, 27 Dec 2023 16:39:27 +0330 - - https://bit-orbit.github.io/tags/infinite-recursion/ - - - - Recursion - https://bit-orbit.github.io/tags/recursion/ - Wed, 27 Dec 2023 16:39:27 +0330 - - https://bit-orbit.github.io/tags/recursion/ - - - - آریا شبانه - https://bit-orbit.github.io/tags/%D8%A2%D8%B1%DB%8C%D8%A7-%D8%B4%D8%A8%D8%A7%D9%86%D9%87/ - Wed, 27 Dec 2023 16:39:27 +0330 - - https://bit-orbit.github.io/tags/%D8%A2%D8%B1%DB%8C%D8%A7-%D8%B4%D8%A8%D8%A7%D9%86%D9%87/ - - - - ریکرشن بینهایت - https://bit-orbit.github.io/tags/%D8%B1%DB%8C%DA%A9%D8%B1%D8%B4%D9%86-%D8%A8%DB%8C%D9%86%D9%87%D8%A7%DB%8C%D8%AA/ - Wed, 27 Dec 2023 16:39:27 +0330 - - https://bit-orbit.github.io/tags/%D8%B1%DB%8C%DA%A9%D8%B1%D8%B4%D9%86-%D8%A8%DB%8C%D9%86%D9%87%D8%A7%DB%8C%D8%AA/ - - - - فورک بومب چیست - https://bit-orbit.github.io/tags/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%88%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA/ - Wed, 27 Dec 2023 16:39:27 +0330 - - https://bit-orbit.github.io/tags/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%88%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA/ - - - - اپلود فایل به تلگرام بدون دانلود - https://bit-orbit.github.io/tags/%D8%A7%D9%BE%D9%84%D9%88%D8%AF-%D9%81%D8%A7%DB%8C%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85-%D8%A8%D8%AF%D9%88%D9%86-%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF/ - Mon, 18 Dec 2023 00:08:38 +0330 - - https://bit-orbit.github.io/tags/%D8%A7%D9%BE%D9%84%D9%88%D8%AF-%D9%81%D8%A7%DB%8C%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85-%D8%A8%D8%AF%D9%88%D9%86-%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF/ - - - - اپلود فایل به تلگرام بدون نیاز به سرور - https://bit-orbit.github.io/tags/%D8%A7%D9%BE%D9%84%D9%88%D8%AF-%D9%81%D8%A7%DB%8C%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85-%D8%A8%D8%AF%D9%88%D9%86-%D9%86%DB%8C%D8%A7%D8%B2-%D8%A8%D9%87-%D8%B3%D8%B1%D9%88%D8%B1/ - Mon, 18 Dec 2023 00:08:38 +0330 - - https://bit-orbit.github.io/tags/%D8%A7%D9%BE%D9%84%D9%88%D8%AF-%D9%81%D8%A7%DB%8C%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85-%D8%A8%D8%AF%D9%88%D9%86-%D9%86%DB%8C%D8%A7%D8%B2-%D8%A8%D9%87-%D8%B3%D8%B1%D9%88%D8%B1/ - - - - چطوری با سرور به تلگرام فایل اپلود کنیم - https://bit-orbit.github.io/tags/%DA%86%D8%B7%D9%88%D8%B1%DB%8C-%D8%A8%D8%A7-%D8%B3%D8%B1%D9%88%D8%B1-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85-%D9%81%D8%A7%DB%8C%D9%84-%D8%A7%D9%BE%D9%84%D9%88%D8%AF-%DA%A9%D9%86%DB%8C%D9%85/ - Mon, 18 Dec 2023 00:08:38 +0330 - - https://bit-orbit.github.io/tags/%DA%86%D8%B7%D9%88%D8%B1%DB%8C-%D8%A8%D8%A7-%D8%B3%D8%B1%D9%88%D8%B1-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85-%D9%81%D8%A7%DB%8C%D9%84-%D8%A7%D9%BE%D9%84%D9%88%D8%AF-%DA%A9%D9%86%DB%8C%D9%85/ - - - - نحوه استفاده از گوگل کولب - https://bit-orbit.github.io/tags/%D9%86%D8%AD%D9%88%D9%87-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%DA%A9%D9%88%D9%84%D8%A8/ - Mon, 18 Dec 2023 00:08:38 +0330 - - https://bit-orbit.github.io/tags/%D9%86%D8%AD%D9%88%D9%87-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%DA%A9%D9%88%D9%84%D8%A8/ - - - - Umbrel Os چیست - https://bit-orbit.github.io/tags/umbrel-os-%DA%86%DB%8C%D8%B3%D8%AA/ - Mon, 11 Dec 2023 01:39:34 +0330 - - https://bit-orbit.github.io/tags/umbrel-os-%DA%86%DB%8C%D8%B3%D8%AA/ - - - - What Is Umbrel Os - https://bit-orbit.github.io/tags/what-is-umbrel-os/ - Mon, 11 Dec 2023 01:39:34 +0330 - - https://bit-orbit.github.io/tags/what-is-umbrel-os/ - - - - چطور Cloud در خانه داشته باشیم - https://bit-orbit.github.io/tags/%DA%86%D8%B7%D9%88%D8%B1-cloud-%D8%AF%D8%B1-%D8%AE%D8%A7%D9%86%D9%87-%D8%AF%D8%A7%D8%B4%D8%AA%D9%87-%D8%A8%D8%A7%D8%B4%DB%8C%D9%85/ - Mon, 11 Dec 2023 01:39:34 +0330 - - https://bit-orbit.github.io/tags/%DA%86%D8%B7%D9%88%D8%B1-cloud-%D8%AF%D8%B1-%D8%AE%D8%A7%D9%86%D9%87-%D8%AF%D8%A7%D8%B4%D8%AA%D9%87-%D8%A8%D8%A7%D8%B4%DB%8C%D9%85/ - - - - سیستم عامل Umbrel جیست - https://bit-orbit.github.io/tags/%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-%D8%B9%D8%A7%D9%85%D9%84-umbrel-%D8%AC%DB%8C%D8%B3%D8%AA/ - Mon, 11 Dec 2023 01:39:34 +0330 - - https://bit-orbit.github.io/tags/%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-%D8%B9%D8%A7%D9%85%D9%84-umbrel-%D8%AC%DB%8C%D8%B3%D8%AA/ - - - - Static Linking vs Dynamic Linking - https://bit-orbit.github.io/tags/static-linking-vs-dynamic-linking/ - Fri, 03 Nov 2023 00:21:46 +0330 - - https://bit-orbit.github.io/tags/static-linking-vs-dynamic-linking/ - - - - تفاوت بین Static Linking و Dynamic Linking - https://bit-orbit.github.io/tags/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-%D8%A8%DB%8C%D9%86-static-linking-%D9%88-dynamic-linking/ - Fri, 03 Nov 2023 00:21:46 +0330 - - https://bit-orbit.github.io/tags/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-%D8%A8%DB%8C%D9%86-static-linking-%D9%88-dynamic-linking/ - - - - فرق بین Static Linking و Dynamic Linking چیست - https://bit-orbit.github.io/tags/%D9%81%D8%B1%D9%82-%D8%A8%DB%8C%D9%86-static-linking-%D9%88-dynamic-linking-%DA%86%DB%8C%D8%B3%D8%AA/ - Fri, 03 Nov 2023 00:21:46 +0330 - - https://bit-orbit.github.io/tags/%D9%81%D8%B1%D9%82-%D8%A8%DB%8C%D9%86-static-linking-%D9%88-dynamic-linking-%DA%86%DB%8C%D8%B3%D8%AA/ - - - - Download-With-Wget - https://bit-orbit.github.io/tags/download-with-wget/ - Fri, 07 Jul 2023 02:45:19 +0330 - - https://bit-orbit.github.io/tags/download-with-wget/ - - - - Linux - https://bit-orbit.github.io/tags/linux/ - Fri, 07 Jul 2023 02:45:19 +0330 - - https://bit-orbit.github.io/tags/linux/ - - - - Regex - https://bit-orbit.github.io/tags/regex/ - Fri, 07 Jul 2023 02:45:19 +0330 - - https://bit-orbit.github.io/tags/regex/ - - - - Wget - https://bit-orbit.github.io/tags/wget/ - Fri, 07 Jul 2023 02:45:19 +0330 - - https://bit-orbit.github.io/tags/wget/ - - - - Why-I-Love-Linux - https://bit-orbit.github.io/tags/why-i-love-linux/ - Fri, 07 Jul 2023 02:45:19 +0330 - - https://bit-orbit.github.io/tags/why-i-love-linux/ - - - - Decenterlize - https://bit-orbit.github.io/tags/decenterlize/ - Sat, 01 Oct 2022 01:46:23 +0330 - - https://bit-orbit.github.io/tags/decenterlize/ - - - - Messenger - https://bit-orbit.github.io/tags/messenger/ - Sat, 01 Oct 2022 01:46:23 +0330 - - https://bit-orbit.github.io/tags/messenger/ - - - - Open-Source - https://bit-orbit.github.io/tags/open-source/ - Sat, 01 Oct 2022 01:46:23 +0330 - - https://bit-orbit.github.io/tags/open-source/ - - - - پیامرسان - https://bit-orbit.github.io/tags/%D9%BE%DB%8C%D8%A7%D9%85%D8%B1%D8%B3%D8%A7%D9%86/ - Sat, 01 Oct 2022 01:46:23 +0330 - - https://bit-orbit.github.io/tags/%D9%BE%DB%8C%D8%A7%D9%85%D8%B1%D8%B3%D8%A7%D9%86/ - - - - جایگزین_برای_واتساپ_و_تلگرام - https://bit-orbit.github.io/tags/%D8%AC%D8%A7%DB%8C%DA%AF%D8%B2%DB%8C%D9%86_%D8%A8%D8%B1%D8%A7%DB%8C_%D9%88%D8%A7%D8%AA%D8%B3%D8%A7%D9%BE_%D9%88_%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/ - Sat, 01 Oct 2022 01:46:23 +0330 - - https://bit-orbit.github.io/tags/%D8%AC%D8%A7%DB%8C%DA%AF%D8%B2%DB%8C%D9%86_%D8%A8%D8%B1%D8%A7%DB%8C_%D9%88%D8%A7%D8%AA%D8%B3%D8%A7%D9%BE_%D9%88_%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/ - - - - ماتریکس_چیست - https://bit-orbit.github.io/tags/%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3_%DA%86%DB%8C%D8%B3%D8%AA/ - Sat, 01 Oct 2022 01:46:23 +0330 - - https://bit-orbit.github.io/tags/%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3_%DA%86%DB%8C%D8%B3%D8%AA/ - - - - Linux-Terminal - https://bit-orbit.github.io/tags/linux-terminal/ - Mon, 31 Jan 2022 19:57:05 +0330 - - https://bit-orbit.github.io/tags/linux-terminal/ - - - - Terminal - https://bit-orbit.github.io/tags/terminal/ - Mon, 31 Jan 2022 19:57:05 +0330 - - https://bit-orbit.github.io/tags/terminal/ - - - - Tty - https://bit-orbit.github.io/tags/tty/ - Mon, 31 Jan 2022 19:57:05 +0330 - - https://bit-orbit.github.io/tags/tty/ - - - - Tty چیست - https://bit-orbit.github.io/tags/tty-%DA%86%DB%8C%D8%B3%D8%AA/ - Mon, 31 Jan 2022 19:57:05 +0330 - - https://bit-orbit.github.io/tags/tty-%DA%86%DB%8C%D8%B3%D8%AA/ - - - - Tty در لینوکس چیست - https://bit-orbit.github.io/tags/tty-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA/ - Mon, 31 Jan 2022 19:57:05 +0330 - - https://bit-orbit.github.io/tags/tty-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA/ - - - - How-to-Snapshot-a-Single-Site-Page - https://bit-orbit.github.io/tags/how-to-snapshot-a-single-site-page/ - Mon, 17 Jan 2022 14:56:14 +0330 - - https://bit-orbit.github.io/tags/how-to-snapshot-a-single-site-page/ - - - - Mirror-a-Single-Web-Page - https://bit-orbit.github.io/tags/mirror-a-single-web-page/ - Mon, 17 Jan 2022 14:56:14 +0330 - - https://bit-orbit.github.io/tags/mirror-a-single-web-page/ - - - - Tech - https://bit-orbit.github.io/tags/tech/ - Mon, 17 Jan 2022 14:56:14 +0330 - - https://bit-orbit.github.io/tags/tech/ - - - - اسنپ شات گرفتن از یک صفحه سایت - https://bit-orbit.github.io/tags/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA/ - Mon, 17 Jan 2022 14:56:14 +0330 - - https://bit-orbit.github.io/tags/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA/ - - - - اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش - https://bit-orbit.github.io/tags/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4/ - Mon, 17 Jan 2022 14:56:14 +0330 - - https://bit-orbit.github.io/tags/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4/ - - - - Bash - https://bit-orbit.github.io/tags/bash/ - Tue, 11 Jan 2022 02:44:12 +0330 - - https://bit-orbit.github.io/tags/bash/ - - - - Zsh - https://bit-orbit.github.io/tags/zsh/ - Tue, 11 Jan 2022 02:44:12 +0330 - - https://bit-orbit.github.io/tags/zsh/ - - - - - +Tags on bit-orbithttps://bit-orbit.github.io/tags/Recent content in Tags on bit-orbitHugo -- gohugo.iofaThu, 01 Aug 2024 03:03:46 +0330/Etc/Resolve.confhttps://bit-orbit.github.io/tags/etc/resolve.conf/Thu, 01 Aug 2024 03:03:46 +0330https://bit-orbit.github.io/tags/etc/resolve.conf//Etc/Systemd/Resolved.confhttps://bit-orbit.github.io/tags/etc/systemd/resolved.conf/Thu, 01 Aug 2024 03:03:46 +0330https://bit-orbit.github.io/tags/etc/systemd/resolved.conf/Arya Shabanehttps://bit-orbit.github.io/tags/arya-shabane/Thu, 01 Aug 2024 03:03:46 +0330https://bit-orbit.github.io/tags/arya-shabane/DNS در لینوکسhttps://bit-orbit.github.io/tags/dns-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3/Thu, 01 Aug 2024 03:03:46 +0330https://bit-orbit.github.io/tags/dns-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3/M_shabanehttps://bit-orbit.github.io/tags/m_shabane/Thu, 01 Aug 2024 03:03:46 +0330https://bit-orbit.github.io/tags/m_shabane/کانفیگ کردن DNS در لینوکسhttps://bit-orbit.github.io/tags/%DA%A9%D8%A7%D9%86%D9%81%DB%8C%DA%AF-%DA%A9%D8%B1%D8%AF%D9%86-dns-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3/Thu, 01 Aug 2024 03:03:46 +0330https://bit-orbit.github.io/tags/%DA%A9%D8%A7%D9%86%D9%81%DB%8C%DA%AF-%DA%A9%D8%B1%D8%AF%D9%86-dns-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3/0x0.sthttps://bit-orbit.github.io/tags/0x0.st/Wed, 06 Mar 2024 23:50:46 +0330https://bit-orbit.github.io/tags/0x0.st/Curl Pastehttps://bit-orbit.github.io/tags/curl-paste/Wed, 06 Mar 2024 23:50:46 +0330https://bit-orbit.github.io/tags/curl-paste/Curlpastehttps://bit-orbit.github.io/tags/curlpaste/Wed, 06 Mar 2024 23:50:46 +0330https://bit-orbit.github.io/tags/curlpaste/Paste File With Curlhttps://bit-orbit.github.io/tags/paste-file-with-curl/Wed, 06 Mar 2024 23:50:46 +0330https://bit-orbit.github.io/tags/paste-file-with-curl/اپلود موقت فایلhttps://bit-orbit.github.io/tags/%D8%A7%D9%BE%D9%84%D9%88%D8%AF-%D9%85%D9%88%D9%82%D8%AA-%D9%81%D8%A7%DB%8C%D9%84/Wed, 06 Mar 2024 23:50:46 +0330https://bit-orbit.github.io/tags/%D8%A7%D9%BE%D9%84%D9%88%D8%AF-%D9%85%D9%88%D9%82%D8%AA-%D9%81%D8%A7%DB%8C%D9%84/شیر کردن فایلhttps://bit-orbit.github.io/tags/%D8%B4%DB%8C%D8%B1-%DA%A9%D8%B1%D8%AF%D9%86-%D9%81%D8%A7%DB%8C%D9%84/Wed, 06 Mar 2024 23:50:46 +0330https://bit-orbit.github.io/tags/%D8%B4%DB%8C%D8%B1-%DA%A9%D8%B1%D8%AF%D9%86-%D9%81%D8%A7%DB%8C%D9%84/فایل بین با Curlhttps://bit-orbit.github.io/tags/%D9%81%D8%A7%DB%8C%D9%84-%D8%A8%DB%8C%D9%86-%D8%A8%D8%A7-curl/Wed, 06 Mar 2024 23:50:46 +0330https://bit-orbit.github.io/tags/%D9%81%D8%A7%DB%8C%D9%84-%D8%A8%DB%8C%D9%86-%D8%A8%D8%A7-curl/File Locking چیستhttps://bit-orbit.github.io/tags/file-locking-%DA%86%DB%8C%D8%B3%D8%AA/Fri, 09 Feb 2024 01:49:42 +0330https://bit-orbit.github.io/tags/file-locking-%DA%86%DB%8C%D8%B3%D8%AA/File Locking در لینوکس چیست؟https://bit-orbit.github.io/tags/file-locking-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA/Fri, 09 Feb 2024 01:49:42 +0330https://bit-orbit.github.io/tags/file-locking-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA/How to Lock File in Linux?https://bit-orbit.github.io/tags/how-to-lock-file-in-linux/Fri, 09 Feb 2024 01:49:42 +0330https://bit-orbit.github.io/tags/how-to-lock-file-in-linux/What Is File Locking in Linux?https://bit-orbit.github.io/tags/what-is-file-locking-in-linux/Fri, 09 Feb 2024 01:49:42 +0330https://bit-orbit.github.io/tags/what-is-file-locking-in-linux/لاک کردن فایل در لینوکس چیست؟https://bit-orbit.github.io/tags/%D9%84%D8%A7%DA%A9-%DA%A9%D8%B1%D8%AF%D9%86-%D9%81%D8%A7%DB%8C%D9%84-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA/Fri, 09 Feb 2024 01:49:42 +0330https://bit-orbit.github.io/tags/%D9%84%D8%A7%DA%A9-%DA%A9%D8%B1%D8%AF%D9%86-%D9%81%D8%A7%DB%8C%D9%84-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA/Rusthttps://bit-orbit.github.io/tags/rust/Wed, 03 Jan 2024 01:30:52 +0330https://bit-orbit.github.io/tags/rust/آموزش Rusthttps://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-rust/Wed, 03 Jan 2024 01:30:52 +0330https://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-rust/آموزش راستhttps://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B1%D8%A7%D8%B3%D8%AA/Wed, 03 Jan 2024 01:30:52 +0330https://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B1%D8%A7%D8%B3%D8%AA/آموزش فارسی زبان Rusthttps://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%B2%D8%A8%D8%A7%D9%86-rust/Wed, 03 Jan 2024 01:30:52 +0330https://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%B2%D8%A8%D8%A7%D9%86-rust/اموزش زبان Rusthttps://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-rust/Wed, 03 Jan 2024 01:30:52 +0330https://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-rust/اموزش زبان راستhttps://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-%D8%B1%D8%A7%D8%B3%D8%AA/Wed, 03 Jan 2024 01:30:52 +0330https://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-%D8%B1%D8%A7%D8%B3%D8%AA/اموزش فارسی زبان راستhttps://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%B2%D8%A8%D8%A7%D9%86-%D8%B1%D8%A7%D8%B3%D8%AA/Wed, 03 Jan 2024 01:30:52 +0330https://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%B2%D8%A8%D8%A7%D9%86-%D8%B1%D8%A7%D8%B3%D8%AA/آموزش زبان Rusthttps://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-rust/Sun, 31 Dec 2023 00:00:00 +0000https://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-rust/آموزش زبان راستhttps://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-%D8%B1%D8%A7%D8%B3%D8%AA/Sun, 31 Dec 2023 00:00:00 +0000https://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-%D8%B1%D8%A7%D8%B3%D8%AA/اموزش Rusthttps://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-rust/Sun, 31 Dec 2023 00:00:00 +0000https://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-rust/اموزش راستhttps://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-%D8%B1%D8%A7%D8%B3%D8%AA/Sun, 31 Dec 2023 00:00:00 +0000https://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-%D8%B1%D8%A7%D8%B3%D8%AA/:(){ :|:& };:https://bit-orbit.github.io/tags/--/Wed, 27 Dec 2023 16:39:27 +0330https://bit-orbit.github.io/tags/--/Forkbomb چیستhttps://bit-orbit.github.io/tags/forkbomb-%DA%86%DB%8C%D8%B3%D8%AA/Wed, 27 Dec 2023 16:39:27 +0330https://bit-orbit.github.io/tags/forkbomb-%DA%86%DB%8C%D8%B3%D8%AA/Infinite Recursionhttps://bit-orbit.github.io/tags/infinite-recursion/Wed, 27 Dec 2023 16:39:27 +0330https://bit-orbit.github.io/tags/infinite-recursion/Recursionhttps://bit-orbit.github.io/tags/recursion/Wed, 27 Dec 2023 16:39:27 +0330https://bit-orbit.github.io/tags/recursion/آریا شبانهhttps://bit-orbit.github.io/tags/%D8%A2%D8%B1%DB%8C%D8%A7-%D8%B4%D8%A8%D8%A7%D9%86%D9%87/Wed, 27 Dec 2023 16:39:27 +0330https://bit-orbit.github.io/tags/%D8%A2%D8%B1%DB%8C%D8%A7-%D8%B4%D8%A8%D8%A7%D9%86%D9%87/ریکرشن بینهایتhttps://bit-orbit.github.io/tags/%D8%B1%DB%8C%DA%A9%D8%B1%D8%B4%D9%86-%D8%A8%DB%8C%D9%86%D9%87%D8%A7%DB%8C%D8%AA/Wed, 27 Dec 2023 16:39:27 +0330https://bit-orbit.github.io/tags/%D8%B1%DB%8C%DA%A9%D8%B1%D8%B4%D9%86-%D8%A8%DB%8C%D9%86%D9%87%D8%A7%DB%8C%D8%AA/فورک بومب چیستhttps://bit-orbit.github.io/tags/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%88%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA/Wed, 27 Dec 2023 16:39:27 +0330https://bit-orbit.github.io/tags/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%88%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA/اپلود فایل به تلگرام بدون دانلودhttps://bit-orbit.github.io/tags/%D8%A7%D9%BE%D9%84%D9%88%D8%AF-%D9%81%D8%A7%DB%8C%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85-%D8%A8%D8%AF%D9%88%D9%86-%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF/Mon, 18 Dec 2023 00:08:38 +0330https://bit-orbit.github.io/tags/%D8%A7%D9%BE%D9%84%D9%88%D8%AF-%D9%81%D8%A7%DB%8C%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85-%D8%A8%D8%AF%D9%88%D9%86-%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF/اپلود فایل به تلگرام بدون نیاز به سرورhttps://bit-orbit.github.io/tags/%D8%A7%D9%BE%D9%84%D9%88%D8%AF-%D9%81%D8%A7%DB%8C%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85-%D8%A8%D8%AF%D9%88%D9%86-%D9%86%DB%8C%D8%A7%D8%B2-%D8%A8%D9%87-%D8%B3%D8%B1%D9%88%D8%B1/Mon, 18 Dec 2023 00:08:38 +0330https://bit-orbit.github.io/tags/%D8%A7%D9%BE%D9%84%D9%88%D8%AF-%D9%81%D8%A7%DB%8C%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85-%D8%A8%D8%AF%D9%88%D9%86-%D9%86%DB%8C%D8%A7%D8%B2-%D8%A8%D9%87-%D8%B3%D8%B1%D9%88%D8%B1/چطوری با سرور به تلگرام فایل اپلود کنیمhttps://bit-orbit.github.io/tags/%DA%86%D8%B7%D9%88%D8%B1%DB%8C-%D8%A8%D8%A7-%D8%B3%D8%B1%D9%88%D8%B1-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85-%D9%81%D8%A7%DB%8C%D9%84-%D8%A7%D9%BE%D9%84%D9%88%D8%AF-%DA%A9%D9%86%DB%8C%D9%85/Mon, 18 Dec 2023 00:08:38 +0330https://bit-orbit.github.io/tags/%DA%86%D8%B7%D9%88%D8%B1%DB%8C-%D8%A8%D8%A7-%D8%B3%D8%B1%D9%88%D8%B1-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85-%D9%81%D8%A7%DB%8C%D9%84-%D8%A7%D9%BE%D9%84%D9%88%D8%AF-%DA%A9%D9%86%DB%8C%D9%85/نحوه استفاده از گوگل کولبhttps://bit-orbit.github.io/tags/%D9%86%D8%AD%D9%88%D9%87-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%DA%A9%D9%88%D9%84%D8%A8/Mon, 18 Dec 2023 00:08:38 +0330https://bit-orbit.github.io/tags/%D9%86%D8%AD%D9%88%D9%87-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%DA%A9%D9%88%D9%84%D8%A8/Umbrel Os چیستhttps://bit-orbit.github.io/tags/umbrel-os-%DA%86%DB%8C%D8%B3%D8%AA/Mon, 11 Dec 2023 01:39:34 +0330https://bit-orbit.github.io/tags/umbrel-os-%DA%86%DB%8C%D8%B3%D8%AA/What Is Umbrel Oshttps://bit-orbit.github.io/tags/what-is-umbrel-os/Mon, 11 Dec 2023 01:39:34 +0330https://bit-orbit.github.io/tags/what-is-umbrel-os/چطور Cloud در خانه داشته باشیمhttps://bit-orbit.github.io/tags/%DA%86%D8%B7%D9%88%D8%B1-cloud-%D8%AF%D8%B1-%D8%AE%D8%A7%D9%86%D9%87-%D8%AF%D8%A7%D8%B4%D8%AA%D9%87-%D8%A8%D8%A7%D8%B4%DB%8C%D9%85/Mon, 11 Dec 2023 01:39:34 +0330https://bit-orbit.github.io/tags/%DA%86%D8%B7%D9%88%D8%B1-cloud-%D8%AF%D8%B1-%D8%AE%D8%A7%D9%86%D9%87-%D8%AF%D8%A7%D8%B4%D8%AA%D9%87-%D8%A8%D8%A7%D8%B4%DB%8C%D9%85/سیستم عامل Umbrel جیستhttps://bit-orbit.github.io/tags/%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-%D8%B9%D8%A7%D9%85%D9%84-umbrel-%D8%AC%DB%8C%D8%B3%D8%AA/Mon, 11 Dec 2023 01:39:34 +0330https://bit-orbit.github.io/tags/%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-%D8%B9%D8%A7%D9%85%D9%84-umbrel-%D8%AC%DB%8C%D8%B3%D8%AA/Static Linking vs Dynamic Linkinghttps://bit-orbit.github.io/tags/static-linking-vs-dynamic-linking/Fri, 03 Nov 2023 00:21:46 +0330https://bit-orbit.github.io/tags/static-linking-vs-dynamic-linking/تفاوت بین Static Linking و Dynamic Linkinghttps://bit-orbit.github.io/tags/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-%D8%A8%DB%8C%D9%86-static-linking-%D9%88-dynamic-linking/Fri, 03 Nov 2023 00:21:46 +0330https://bit-orbit.github.io/tags/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-%D8%A8%DB%8C%D9%86-static-linking-%D9%88-dynamic-linking/فرق بین Static Linking و Dynamic Linking چیستhttps://bit-orbit.github.io/tags/%D9%81%D8%B1%D9%82-%D8%A8%DB%8C%D9%86-static-linking-%D9%88-dynamic-linking-%DA%86%DB%8C%D8%B3%D8%AA/Fri, 03 Nov 2023 00:21:46 +0330https://bit-orbit.github.io/tags/%D9%81%D8%B1%D9%82-%D8%A8%DB%8C%D9%86-static-linking-%D9%88-dynamic-linking-%DA%86%DB%8C%D8%B3%D8%AA/Download-With-Wgethttps://bit-orbit.github.io/tags/download-with-wget/Fri, 07 Jul 2023 02:45:19 +0330https://bit-orbit.github.io/tags/download-with-wget/Linuxhttps://bit-orbit.github.io/tags/linux/Fri, 07 Jul 2023 02:45:19 +0330https://bit-orbit.github.io/tags/linux/Regexhttps://bit-orbit.github.io/tags/regex/Fri, 07 Jul 2023 02:45:19 +0330https://bit-orbit.github.io/tags/regex/Wgethttps://bit-orbit.github.io/tags/wget/Fri, 07 Jul 2023 02:45:19 +0330https://bit-orbit.github.io/tags/wget/Why-I-Love-Linuxhttps://bit-orbit.github.io/tags/why-i-love-linux/Fri, 07 Jul 2023 02:45:19 +0330https://bit-orbit.github.io/tags/why-i-love-linux/Decenterlizehttps://bit-orbit.github.io/tags/decenterlize/Sat, 01 Oct 2022 01:46:23 +0330https://bit-orbit.github.io/tags/decenterlize/Messengerhttps://bit-orbit.github.io/tags/messenger/Sat, 01 Oct 2022 01:46:23 +0330https://bit-orbit.github.io/tags/messenger/Open-Sourcehttps://bit-orbit.github.io/tags/open-source/Sat, 01 Oct 2022 01:46:23 +0330https://bit-orbit.github.io/tags/open-source/پیامرسانhttps://bit-orbit.github.io/tags/%D9%BE%DB%8C%D8%A7%D9%85%D8%B1%D8%B3%D8%A7%D9%86/Sat, 01 Oct 2022 01:46:23 +0330https://bit-orbit.github.io/tags/%D9%BE%DB%8C%D8%A7%D9%85%D8%B1%D8%B3%D8%A7%D9%86/جایگزین_برای_واتساپ_و_تلگرامhttps://bit-orbit.github.io/tags/%D8%AC%D8%A7%DB%8C%DA%AF%D8%B2%DB%8C%D9%86_%D8%A8%D8%B1%D8%A7%DB%8C_%D9%88%D8%A7%D8%AA%D8%B3%D8%A7%D9%BE_%D9%88_%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/Sat, 01 Oct 2022 01:46:23 +0330https://bit-orbit.github.io/tags/%D8%AC%D8%A7%DB%8C%DA%AF%D8%B2%DB%8C%D9%86_%D8%A8%D8%B1%D8%A7%DB%8C_%D9%88%D8%A7%D8%AA%D8%B3%D8%A7%D9%BE_%D9%88_%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/ماتریکس_چیستhttps://bit-orbit.github.io/tags/%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3_%DA%86%DB%8C%D8%B3%D8%AA/Sat, 01 Oct 2022 01:46:23 +0330https://bit-orbit.github.io/tags/%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3_%DA%86%DB%8C%D8%B3%D8%AA/Linux-Terminalhttps://bit-orbit.github.io/tags/linux-terminal/Mon, 31 Jan 2022 19:57:05 +0330https://bit-orbit.github.io/tags/linux-terminal/Terminalhttps://bit-orbit.github.io/tags/terminal/Mon, 31 Jan 2022 19:57:05 +0330https://bit-orbit.github.io/tags/terminal/Ttyhttps://bit-orbit.github.io/tags/tty/Mon, 31 Jan 2022 19:57:05 +0330https://bit-orbit.github.io/tags/tty/Tty چیستhttps://bit-orbit.github.io/tags/tty-%DA%86%DB%8C%D8%B3%D8%AA/Mon, 31 Jan 2022 19:57:05 +0330https://bit-orbit.github.io/tags/tty-%DA%86%DB%8C%D8%B3%D8%AA/Tty در لینوکس چیستhttps://bit-orbit.github.io/tags/tty-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA/Mon, 31 Jan 2022 19:57:05 +0330https://bit-orbit.github.io/tags/tty-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA/How-to-Snapshot-a-Single-Site-Pagehttps://bit-orbit.github.io/tags/how-to-snapshot-a-single-site-page/Mon, 17 Jan 2022 14:56:14 +0330https://bit-orbit.github.io/tags/how-to-snapshot-a-single-site-page/Mirror-a-Single-Web-Pagehttps://bit-orbit.github.io/tags/mirror-a-single-web-page/Mon, 17 Jan 2022 14:56:14 +0330https://bit-orbit.github.io/tags/mirror-a-single-web-page/Techhttps://bit-orbit.github.io/tags/tech/Mon, 17 Jan 2022 14:56:14 +0330https://bit-orbit.github.io/tags/tech/اسنپ شات گرفتن از یک صفحه سایتhttps://bit-orbit.github.io/tags/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA/Mon, 17 Jan 2022 14:56:14 +0330https://bit-orbit.github.io/tags/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA/اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌شhttps://bit-orbit.github.io/tags/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4/Mon, 17 Jan 2022 14:56:14 +0330https://bit-orbit.github.io/tags/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4/Bashhttps://bit-orbit.github.io/tags/bash/Tue, 11 Jan 2022 02:44:12 +0330https://bit-orbit.github.io/tags/bash/Zshhttps://bit-orbit.github.io/tags/zsh/Tue, 11 Jan 2022 02:44:12 +0330https://bit-orbit.github.io/tags/zsh/ \ No newline at end of file diff --git a/docs/tags/infinite-recursion/index.html b/docs/tags/infinite-recursion/index.html index d2f1edf..74e6b70 100644 --- a/docs/tags/infinite-recursion/index.html +++ b/docs/tags/infinite-recursion/index.html @@ -1,559 +1,37 @@ - - - - -Tag: Infinite Recursion - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

Infinite Recursion

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: Infinite Recursion - bit-orbit + \ No newline at end of file diff --git a/docs/tags/infinite-recursion/index.xml b/docs/tags/infinite-recursion/index.xml index 2c1d21f..4409156 100644 --- a/docs/tags/infinite-recursion/index.xml +++ b/docs/tags/infinite-recursion/index.xml @@ -1,18 +1,4 @@ - - - - Infinite Recursion on bit-orbit - https://bit-orbit.github.io/tags/infinite-recursion/ - Recent content in Infinite Recursion on bit-orbit - Hugo -- gohugo.io - fa - Wed, 27 Dec 2023 16:39:27 +0330 - فورک بمب چیست و چطور کار می‌کند؟ - https://bit-orbit.github.io/p/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B7%D9%88%D8%B1-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF/ - Wed, 27 Dec 2023 16:39:27 +0330 - - https://bit-orbit.github.io/p/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B7%D9%88%D8%B1-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF/ - <img src="https://bit-orbit.github.io/images/post/fork_bomb.jpg" alt="Featured image of post فورک بمب چیست و چطور کار می‌کند؟" /><p>اوایل که لینوکس نصب کرده بودم کامند هایی که توی +Infinite Recursion on bit-orbithttps://bit-orbit.github.io/tags/infinite-recursion/Recent content in Infinite Recursion on bit-orbitHugo -- gohugo.iofaWed, 27 Dec 2023 16:39:27 +0330فورک بمب چیست و چطور کار می‌کند؟https://bit-orbit.github.io/p/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B7%D9%88%D8%B1-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF/Wed, 27 Dec 2023 16:39:27 +0330https://bit-orbit.github.io/p/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B7%D9%88%D8%B1-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF/<img src="https://bit-orbit.github.io/images/post/fork_bomb.jpg" alt="Featured image of post فورک بمب چیست و چطور کار می‌کند؟" /><p>اوایل که لینوکس نصب کرده بودم کامند هایی که توی فروم های مختلف می‌دیدم و برای من جدید بود را دوست داشتم یاد بگیرم و بدانم کار آنها چی هست، برای همین هر کامندی را که می‌دیدم در @@ -21,306 +7,283 @@ هر کامندی اشتباهه بود. یکی از این کامند ها که اجرا کرده بودم، به اسم فورک بمب (fork bomb) -شناخته می‌شود. کامند به این صورت هست</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>:<span class="p">&amp;</span> <span class="o">}</span><span class="p">;</span>: -</span></span></code></pre></td></tr></table> -</div> -</div><p>اگر این کامند را اجرا کنید(امیدوارم تا الان نکرده باشید) تقریبا زیر یک دقیقه سیستم شما -هنگ می‌کند و مجبور می‌شوید سیستم را ریبوت کنید.</p> -<hr> -<p>توی این پست ساختار این کامند را تشریح می‌کنم و باهم +شناخته می‌شود. کامند به این صورت هست</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>:<span class="p">&amp;</span> <span class="o">}</span><span class="p">;</span>: +</span></span></code></pre></td></tr></table> +</div> +</div><p>اگر این کامند را اجرا کنید(امیدوارم تا الان نکرده باشید) تقریبا زیر یک دقیقه سیستم شما +هنگ می‌کند و مجبور می‌شوید سیستم را ریبوت کنید.</p> +<hr> +<p>توی این پست ساختار این کامند را تشریح می‌کنم و باهم کمی bash -یاد می‌گیریم.</p> -<p>بیایید اول با مفهوم +یاد می‌گیریم.</p> +<p>بیایید اول با مفهوم recustion آشنا بشیم، زمانی که یک قطعه کد خودش اجرا کند، recusion می‌گویم. مثلا شما یک فانکشن می‌نویسید به اسم -<em>fn</em> +<em>fn</em> و توی بدنه فانکشن فقط خود همین فانکشن را صدا می‌‌کنید، به این کار call recursion گفته می‌شود. فورک بمب دقیقا همین کار را می‌کند. به این -معنی که خودش را دائم اجرا می‌کند!</p> -<p>به این فکر کنید که وقتی یک پراسس خودش را اجرا می‌کند +معنی که خودش را دائم اجرا می‌کند!</p> +<p>به این فکر کنید که وقتی یک پراسس خودش را اجرا می‌کند ،مجدد پراسس های اجرا شده توسط اون هم دائم خودشان را اجرا می‌کنند، و دوباره هر پروسه‌ای که اجرا می‌شود بازم خودش را اجرا می‌کند و این روند تا زمانی که رم و پردازنده سیستم تحمل -داشته باشد ادامه دارد.</p> -<blockquote> -<p>درختی که می‌بینید را اجرای فورک بمب درنظر بگیرید، +داشته باشد ادامه دارد.</p> +<blockquote> +<p>درختی که می‌بینید را اجرای فورک بمب درنظر بگیرید، هر ستاره یک پروسه جدید است که توسط پروسه قبلی اجرا شده، و خودش هم دو پروسه جدید باز می‌کند و هر یک از پروسه ها -هم همین روند را ادامه می‌دهند.</p> -</blockquote> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt">10 -</span><span class="lnt">11 -</span><span class="lnt">12 -</span><span class="lnt">13 -</span><span class="lnt">14 -</span><span class="lnt">15 -</span><span class="lnt">16 -</span><span class="lnt">17 -</span><span class="lnt">18 -</span><span class="lnt">19 -</span><span class="lnt">20 -</span><span class="lnt">21 -</span><span class="lnt">22 -</span><span class="lnt">23 -</span><span class="lnt">24 -</span><span class="lnt">25 -</span><span class="lnt">26 -</span><span class="lnt">27 -</span><span class="lnt">28 -</span><span class="lnt">29 -</span><span class="lnt">30 -</span><span class="lnt">31 -</span><span class="lnt">32 -</span><span class="lnt">33 -</span><span class="lnt">34 -</span><span class="lnt">35 -</span><span class="lnt">36 -</span><span class="lnt">37 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w">   </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w">   </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><p>من برای اینکه سیستم‌ خودم هنگ نکند فورک بمب را روی داکر +هم همین روند را ادامه می‌دهند.</p> +</blockquote> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span><span class="lnt">19 +</span><span class="lnt">20 +</span><span class="lnt">21 +</span><span class="lnt">22 +</span><span class="lnt">23 +</span><span class="lnt">24 +</span><span class="lnt">25 +</span><span class="lnt">26 +</span><span class="lnt">27 +</span><span class="lnt">28 +</span><span class="lnt">29 +</span><span class="lnt">30 +</span><span class="lnt">31 +</span><span class="lnt">32 +</span><span class="lnt">33 +</span><span class="lnt">34 +</span><span class="lnt">35 +</span><span class="lnt">36 +</span><span class="lnt">37 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w">   </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w">   </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><p>من برای اینکه سیستم‌ خودم هنگ نکند فورک بمب را روی داکر اجرا کردم و خب حتی یک ثانیه هم طول نکشید و آن کانتینر -کاملا هنگ کرد.</p> -<blockquote> -<p>قبل از اجرا -<a class="link" href="https://bit-orbit.github.io/images/post/forkbomb_docker0.jpg" ><img src="https://bit-orbit.github.io/images/post/forkbomb_docker0.jpg" - - - - loading="lazy" - - alt="forkbomb on docker" - - -></a></p> -</blockquote> -<blockquote> -<p>زمان اجرا -<a class="link" href="https://bit-orbit.github.io/images/post/forkbomb_docker.jpg" ><img src="https://bit-orbit.github.io/images/post/forkbomb_docker.jpg" - - - - loading="lazy" - - alt="forkbomb on docker" - - -></a></p> -</blockquote> -<hr> -<p>بیایید وارد کد بشیم، این علامت ها و کاراکتر ها چی هستند؟</p> -<!-- برای تعریف یک فانکشن توی +کاملا هنگ کرد.</p> +<blockquote> +<p>قبل از اجرا +<a class="link" href="https://bit-orbit.github.io/images/post/forkbomb_docker0.jpg" ><img src="https://bit-orbit.github.io/images/post/forkbomb_docker0.jpg" +loading="lazy" +alt="forkbomb on docker" +></a></p> +</blockquote> +<blockquote> +<p>زمان اجرا +<a class="link" href="https://bit-orbit.github.io/images/post/forkbomb_docker.jpg" ><img src="https://bit-orbit.github.io/images/post/forkbomb_docker.jpg" +loading="lazy" +alt="forkbomb on docker" +></a></p> +</blockquote> +<hr> +<p>بیایید وارد کد بشیم، این علامت ها و کاراکتر ها چی هستند؟</p> +<!-- برای تعریف یک فانکشن توی bash -ما به این صورت عمل می‌کنیم که اول اسم فانکشن بعد پرانتز -و بعد کرلی براکت(توی فارسی می‌گیم آکولاد) و داخل کرلی +ما به این صورت عمل می‌کنیم که اول اسم فانکشن بعد پرانتز +و بعد کرلی براکت(توی فارسی می‌گیم آکولاد) و داخل کرلی براکت ما قطعه کد را می‌نویسیم. مثلا برای فانکشنی که یک اسم را روی صفحه چاپ کنه به این صورت عمل می‌کنیم - ```bash -pname(){ echo 'foo'; } -``` --> -<p>اگه دقت کنید اولین کاراکتر فورک بمب، علامت -<code>:</code> +pname(){ echo 'foo'; } +``` --> +<p>اگه دقت کنید اولین کاراکتر فورک بمب، علامت +<code>:</code> است. این علامت اسم فانکشن ما است. برخلاف قانون تعریف نام برای متغییر ها توی bash، می‌توانیم از کاراتر های یونیکد هم برای تعریف نام فانکشن استفاده کنیم، مثلا یک -کاراکتر چینی یا حتی ایموجی!</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span><span class="lnt">3 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">雨<span class="o">(){</span> <span class="nb">echo</span> <span class="s1">&#39;rain&#39;</span><span class="p">;</span> <span class="o">}</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">❤️<span class="o">(){</span> <span class="nb">echo</span> <span class="s1">&#39;love&#39;</span><span class="p">;</span> <span class="o">}</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>خب در ادامه علامت های -<code>()</code> +کاراکتر چینی یا حتی ایموجی!</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">雨<span class="o">(){</span> <span class="nb">echo</span> <span class="s1">&#39;rain&#39;</span><span class="p">;</span> <span class="o">}</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">❤️<span class="o">(){</span> <span class="nb">echo</span> <span class="s1">&#39;love&#39;</span><span class="p">;</span> <span class="o">}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>خب در ادامه علامت های +<code>()</code> را می‌بینیم، توی bash برای تعریف فانکشن قبل از اسم فانکشن هیچ کلمه کلیدی مثل fn, def, void و &hellip; نیاز نیست، فقط بجای آن باید -<strong>بعد از اسم فانکشن</strong> -پرانتز ها را بگذارید.</p> -<p>مثل خیلی از زبان های برنامه نویسی، بدنه فانکشن توی -کرلی براکت تعریف می‌شود.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){}</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>پس تا اینجا ما یک فانکشن ساده با نام -<code>:</code> -تعریف کردیم.</p> -<p>داخل بدنه این فانکشن، اسمی که برای فانکشن قرار دادیم +<strong>بعد از اسم فانکشن</strong> +پرانتز ها را بگذارید.</p> +<p>مثل خیلی از زبان های برنامه نویسی، بدنه فانکشن توی +کرلی براکت تعریف می‌شود.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>پس تا اینجا ما یک فانکشن ساده با نام +<code>:</code> +تعریف کردیم.</p> +<p>داخل بدنه این فانکشن، اسمی که برای فانکشن قرار دادیم همان -<code>:</code> +<code>:</code> را می‌نویسیم. با اینکار دقیقا call recursion را انجام دادیم، و باعث شدیم که برنامه خودش را -توی هر اجرا مجدد اجرا کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> : <span class="o">}</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>دقت کنید توی سینتکس +توی هر اجرا مجدد اجرا کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> : <span class="o">}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>دقت کنید توی سینتکس bash -حتما باید یک فاصله برای کدی که داخلی کرلی براکت می‌نویسم قرار بدیم</p> -</blockquote> -<p>علامت -<code>|</code> +حتما باید یک فاصله برای کدی که داخلی کرلی براکت می‌نویسم قرار بدیم</p> +</blockquote> +<p>علامت +<code>|</code> به اسم پایپ شناخته می‌شود، وظیفه این علامت دادن خروجی یک کامند بعنوان ورودی به یک کامند دیگر هست، حلا دقت کنید که ما خروجی اجرای -<code>:</code> -را به خودش می‌دهیم. دقیقا به این شکل</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>: <span class="o">}</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>با این علامت هر پروسه دو بار پروسه جدیدی از خودش می‌سازد +<code>:</code> +را به خودش می‌دهیم. دقیقا به این شکل</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>: <span class="o">}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>با این علامت هر پروسه دو بار پروسه جدیدی از خودش می‌سازد اگر از این علامت استفاده نکنیم، پروسه ما به صورت خطی خودش را اجرا خواهد کرد، اینطوری کد ما با یک حلقه -<code>while</code> -تفاوتی زیادی نخواهد داشت.</p> -<p>علامت -<code>&amp;</code> +<code>while</code> +تفاوتی زیادی نخواهد داشت.</p> +<p>علامت +<code>&amp;</code> اجرای یک کامند را به بکگراند(پس زمینه) می‌برد. برای مثال بعد از اجرای یک دستور باید صبر کنید پروسه آن تمام شود تا بتوانید دستور بعدی را اجرا کنید. ولی اگر از علامت -<code>&amp;</code> +<code>&amp;</code> بعد از هر دستور استفاده کنید، دیگر نیاز نیست صبر کنید تا روند اجرای آن برنامه تمام شود. درواقع با علامت -<code>&amp;</code> +<code>&amp;</code> شما می‌توانید هر برنامه را در بکگراند اجرا کنید. حالا توی فورک بمب این علامت باعث می‌شود تا فانشکنی که اجرا کردین درحالی که کارش به اتمام -نرسیده است، فانکشن بعدی اجرا بشود.</p> -<p><img src="https://bit-orbit.github.io/images/post/forkbomb_and.jpg" - - - - loading="lazy" - - alt="& in bash" - - -></p> -<p>و بعد علامت -<code>;</code> +نرسیده است، فانکشن بعدی اجرا بشود.</p> +<p><img src="https://bit-orbit.github.io/images/post/forkbomb_and.jpg" +loading="lazy" +alt="& in bash" +></p> +<p>و بعد علامت +<code>;</code> را می‌بینیم. این علامت کامند ها را از هم جدا می‌کند. مثلا شما می‌توانید چند کامند مختلف را توی یک خط بنویسید. توی فورک بمب این علامت فانکشنی که تعریف کردین را از -دستور بعدی(که اجرا کننده اون فانکشن هست)جدا می‌کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s1">&#39;foo&#39;</span><span class="p">;</span> <span class="nb">echo</span> <span class="s1">&#39;bar&#39;</span><span class="p">;</span> <span class="nb">echo</span> <span class="s1">&#39;baz&#39;</span><span class="p">;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>آخرین علامتی که توی فورک بمب داریم همون علامت -<code>:</code> +دستور بعدی(که اجرا کننده اون فانکشن هست)جدا می‌کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s1">&#39;foo&#39;</span><span class="p">;</span> <span class="nb">echo</span> <span class="s1">&#39;bar&#39;</span><span class="p">;</span> <span class="nb">echo</span> <span class="s1">&#39;baz&#39;</span><span class="p">;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>آخرین علامتی که توی فورک بمب داریم همون علامت +<code>:</code> یا همون اسمی هست که برای فانکشن قرار دادیم. خیلی ساده توی bash -برای اجرای یک فانکشن فقط اسم‌ش را می‌نویسیم.</p> -<p>و تمام! ما یاد گرفتیم چطور فورک بمب رو بنویسیم و دیگه -نیاز نیست حفظ‌ش کنیم :)</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>:<span class="p">&amp;</span> <span class="o">}</span><span class="p">;</span>: -</span></span></code></pre></td></tr></table> -</div> -</div> - - - - +برای اجرای یک فانکشن فقط اسم‌ش را می‌نویسیم.</p> +<p>و تمام! ما یاد گرفتیم چطور فورک بمب رو بنویسیم و دیگه +نیاز نیست حفظ‌ش کنیم :)</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>:<span class="p">&amp;</span> <span class="o">}</span><span class="p">;</span>: +</span></span></code></pre></td></tr></table> +</div> +</div> \ No newline at end of file diff --git a/docs/tags/infinite-recursion/page/1/index.html b/docs/tags/infinite-recursion/page/1/index.html index 8be53d2..71b0ff4 100644 --- a/docs/tags/infinite-recursion/page/1/index.html +++ b/docs/tags/infinite-recursion/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/infinite-recursion/ - - - - - - +https://bit-orbit.github.io/tags/infinite-recursion/ + \ No newline at end of file diff --git a/docs/tags/linux-terminal/index.html b/docs/tags/linux-terminal/index.html index eb6699e..f6ac6b0 100644 --- a/docs/tags/linux-terminal/index.html +++ b/docs/tags/linux-terminal/index.html @@ -1,559 +1,37 @@ - - - - -Tag: Linux-Terminal - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

Linux-Terminal

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: Linux-Terminal - bit-orbit +

Tags

1 صفحه

Linux-Terminal

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git a/docs/tags/linux-terminal/index.xml b/docs/tags/linux-terminal/index.xml index 0a6ed38..7017997 100644 --- a/docs/tags/linux-terminal/index.xml +++ b/docs/tags/linux-terminal/index.xml @@ -1,50 +1,36 @@ - - - - Linux-Terminal on bit-orbit - https://bit-orbit.github.io/tags/linux-terminal/ - Recent content in Linux-Terminal on bit-orbit - Hugo -- gohugo.io - fa - Mon, 31 Jan 2022 19:57:05 +0330 - در لینوکس چیست؟ TTY - https://bit-orbit.github.io/p/%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA-tty/ - Mon, 31 Jan 2022 19:57:05 +0330 - - https://bit-orbit.github.io/p/%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA-tty/ - <img src="https://bit-orbit.github.io/images/post/tty.jpg" alt="Featured image of post در لینوکس چیست؟ TTY " /><div dir='rtl' style='font-size:x-large'> -<p>شما باید درباره اصطلاح +Linux-Terminal on bit-orbithttps://bit-orbit.github.io/tags/linux-terminal/Recent content in Linux-Terminal on bit-orbitHugo -- gohugo.iofaMon, 31 Jan 2022 19:57:05 +0330 در لینوکس چیست؟ TTYhttps://bit-orbit.github.io/p/%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA-tty/Mon, 31 Jan 2022 19:57:05 +0330https://bit-orbit.github.io/p/%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA-tty/<img src="https://bit-orbit.github.io/images/post/tty.jpg" alt="Featured image of post در لینوکس چیست؟ TTY " /><div dir='rtl' style='font-size:x-large'> +<p>شما باید درباره اصطلاح tty زمانی که به لینوکس و یونیکس آمد، شنیده باشید. اما tty -چیست؟</p> -<p>آیا برای شما به عنوان یک کاربر دستکتاپ مفید است؟</p> -<p>به آن نیاز دارید؟ می‌توانید با آن چه کار کنید؟</p> -<p>اجازه دهید هر چیز ضروری برای آشنا کردن شما با اصطلاح +چیست؟</p> +<p>آیا برای شما به عنوان یک کاربر دستکتاپ مفید است؟</p> +<p>به آن نیاز دارید؟ می‌توانید با آن چه کار کنید؟</p> +<p>اجازه دهید هر چیز ضروری برای آشنا کردن شما با اصطلاح tty -را در این پست برسی کنیم.</p> -<p>به یاد داشته باشید که پاسخ قطعی برای این سوال وجود ندارد، +را در این پست برسی کنیم.</p> +<p>به یاد داشته باشید که پاسخ قطعی برای این سوال وجود ندارد، اما به نحوه تعامل دستگاه های input/output(ورودی/خروجی) -در گذشته ربط دارد.</p> -<p>برای اینکه تصویری شفاف از آن داشته باشید باید کمی از تاریخ‌ش را بدانید.</p> -<h3 id="تاریخ-پشت-اصطلاح-tty">تاریخ پشت اصطلاح tty</h3> -<p>همه چیز از یک -<em>teleprinter</em> -در سال 1830 شروع شد.</p> -<p>teleprinter +در گذشته ربط دارد.</p> +<p>برای اینکه تصویری شفاف از آن داشته باشید باید کمی از تاریخ‌ش را بدانید.</p> +<h3 id="تاریخ-پشت-اصطلاح-tty">تاریخ پشت اصطلاح tty +</h3><p>همه چیز از یک +<em>teleprinter</em> +در سال 1830 شروع شد.</p> +<p>teleprinter به شما اجازه می‌داد که از طریق سیم پیام ارسال و دریافت کنید. teleprinter جایگزینی برای ارطبات مورس کد بود در آن دو اپراتور برای ارطبات با یکدیگر مود نیاز بود. اما در teleprinter -فقط به یک اپراتور برای ارسال پیام نیاز داشت. درحالی که +فقط به یک اپراتور برای ارسال پیام نیاز داشت. درحالی که teleprinter یک صفحه کلید مدرن نداشت، بعد ها سیستم آن توسط Donald Murray به یک صفحه کلید -<em>teletypewriter</em> -تکامل یافت.</p> -<p>Murray +<em>teletypewriter</em> +تکامل یافت.</p> +<p>Murray زحمت اپراتور ها را برای ارسال و پیام را کاهش داد و این امکان را برای teletypeprinter @@ -54,16 +40,11 @@ teletypewriter tty نام کوتاه شده teletypewrite -است.</p> -<p><img src="https://bit-orbit.github.io/images/post/teletypewrite.jpg" - - - - loading="lazy" - - -></p> -<p>تفاوت بین +است.</p> +<p><img src="https://bit-orbit.github.io/images/post/teletypewrite.jpg" +loading="lazy" +></p> +<p>تفاوت بین teletypewrite و typewriter @@ -74,89 +55,77 @@ teletypewriter ارطبات سریع تری را تا اکنون برای انسال بدون استفاده از کامپیوتر مقدور کرده است. و اینجا جایی است که tty -بوجود آمد.</p> -<h3 id="مفهوم-مدرن">مفهوم مدرن</h3> -<p>اکنون شما باید متعجب شده باشید که چطور +بوجود آمد.</p> +<h3 id="مفهوم-مدرن">مفهوم مدرن +</h3><p>اکنون شما باید متعجب شده باشید که چطور tty -به لینوکس و کامپیوتر مدرن آمده است.</p> -<p>بسیار خب، برای شروع، زمانی که +به لینوکس و کامپیوتر مدرن آمده است.</p> +<p>بسیار خب، برای شروع، زمانی که teletypewriter به بازار رسید، چند سال بعد ترانزیستور های نیمه هادی(نیمه رسانا) توسعه داده شد که به میکروپروسسور(micro proccessor) -هایی تبدیل شدند که کامپیوتر را ممکن می‌کرند.</p> -<p>کامپیوتر های اولیه مفهومی به اسم صفحه کلید نداشتند. -<a class="link" href="https://en.wikipedia.org/wiki/Punched_card" target="_blank" rel="noopener" - >کارت های پانج</a> -روش ورودی دادن به کامپیوتر ها بود</p> -<p><img src="https://bit-orbit.github.io/images/post/punch-card.jpg" - - - - loading="lazy" - - alt="card-punch" - - -></p> -<p>درحالی که کامپیوتر ها توسعه پیدا می‌کردند، بالاخره کارت های پانچ با +هایی تبدیل شدند که کامپیوتر را ممکن می‌کرند.</p> +<p>کامپیوتر های اولیه مفهومی به اسم صفحه کلید نداشتند. +<a class="link" href="https://en.wikipedia.org/wiki/Punched_card" target="_blank" rel="noopener" +>کارت های پانج</a> +روش ورودی دادن به کامپیوتر ها بود</p> +<p><img src="https://bit-orbit.github.io/images/post/punch-card.jpg" +loading="lazy" +alt="card-punch" +></p> +<p>درحالی که کامپیوتر ها توسعه پیدا می‌کردند، بالاخره کارت های پانچ با teletypewriter -به عنوان دستگاه <em><strong><u>ورودی/خروجی</u></strong></em> مناسب جایگزین شد.    </p> -<p><img src="https://bit-orbit.github.io/images/post/pc-tty.jpg" - - - - loading="lazy" - - alt="LGP-30 computer in 1956 with a TTY attached to it" - - -></p> -<p>با توسعه تکنولوژی +به عنوان دستگاه <em><strong><u>ورودی/خروجی</u></strong></em> مناسب جایگزین شد.    </p> +<p><img src="https://bit-orbit.github.io/images/post/pc-tty.jpg" +loading="lazy" +alt="LGP-30 computer in 1956 with a TTY attached to it" +></p> +<p>با توسعه تکنولوژی teletypewriter ها با استفاده از الکترونیک مجازی شدند. پس شما به یک tty فیزیکی، مکانیکی نیاز پیدا نمی‌کنید، بلکه به یک tty -مجازی، الکترونیکی نیاز دارید.</p> -<p>اوایل کامپیوتر ها صفحه نمایش هم نداشتند. چیز ها بجای نمایش داده شدن بروی صفحه نمایش +مجازی، الکترونیکی نیاز دارید.</p> +<p>اوایل کامپیوتر ها صفحه نمایش هم نداشتند. چیز ها بجای نمایش داده شدن بروی صفحه نمایش (که وجود نداشت) به روی کاغذ چاپ می‌شدند. به همین دلیل شما بجای دیدن اصطلاح -<code>display</code> +<code>display</code> اصطلاح -<code>print</code> +<code>print</code> را می‌بینید. ویدیو ها به عنوان تکنولوژی پیشرفته به ترمینال(پایانه) ها اضافه شد. به عبارت دیگر شما باید درباره ترمینال های ویدیویی شنیده باشید. یا شما می‌توانید -آن ها را ترمینال های فیزیکی بنامید.</p> -<p>سپس اینها به ترمینال های نرم افزاری شبیه سازی شده تکامل پیدا کردند که با قابلیت ها و +آن ها را ترمینال های فیزیکی بنامید.</p> +<p>سپس اینها به ترمینال های نرم افزاری شبیه سازی شده تکامل پیدا کردند که با قابلیت ها و ویژگی های تسوسعه یافته‌ای همرا بود. این چیزی است که شما آن را terminal emulator -می‌نامید.</p> -<p>برای نمونه ترمینال -<a class="link" href="https://en.wikipedia.org/wiki/GNOME_Terminal" target="_blank" rel="noopener" - >گنوم -(Gnome)</a> +می‌نامید.</p> +<p>برای نمونه ترمینال +<a class="link" href="https://en.wikipedia.org/wiki/GNOME_Terminal" target="_blank" rel="noopener" +>گنوم +(Gnome)</a> یا -<a class="link" href="https://konsole.kde.org/" target="_blank" rel="noopener" - >کنسول -(Konsole)</a> -<a class="link" href="https://itsfoss.com/linux-terminal-emulators/" target="_blank" rel="noopener" - >چنتا از بهترین ترمینال هایی هستند که می‌توانید برای لینوکس پیدا کنید.</a></p> -<h3 id="بسیارخب-tty-در-لینوکس-چیست">بسیارخب tty در لینوکس چیست؟</h3> -<p>زمانی که +<a class="link" href="https://konsole.kde.org/" target="_blank" rel="noopener" +>کنسول +(Konsole)</a> +<a class="link" href="https://itsfoss.com/linux-terminal-emulators/" target="_blank" rel="noopener" +>چنتا از بهترین ترمینال هایی هستند که می‌توانید برای لینوکس پیدا کنید.</a></p> +<h3 id="بسیارخب-tty-در-لینوکس-چیست">بسیارخب tty در لینوکس چیست؟ +</h3><p>زمانی که tty به لینوکس و یونیکس آمد، یک دستگاه مستقل در یونیکس و لینوکس بود گاهی tty به یک دستگاه ورودی فیزیکی مانند serial port(درگاه سریال) اشاره می‌کرد، و گاهی به ترمینال های مجازی اشاره می‌کرد که به کاربران اجازه تعامل با -سیستم را می‌داد.</p> -<p>tty +سیستم را می‌داد.</p> +<p>tty یک زیر سیستم در لینوکس و یونیکس است که مدریت فرایند، ویرایش خط و مدیریت نشست ها را در سطح کرنل از طریق درایور های tty -ممکن می‌کند.</p> -<p>از دیدگاه برنامه نویسی شما باید در این موضوع عمیق تر شوید. اما محدوده این +ممکن می‌کند.</p> +<p>از دیدگاه برنامه نویسی شما باید در این موضوع عمیق تر شوید. اما محدوده این پست را در نظر بگیرید، این مقاله باید یک توضیح ساده برای درک بهتر باشد. در حقیقت، هر گاه یک ترمینال را باز می‌کنیم یا هر نوع shell @@ -165,114 +134,92 @@ shell با tty مجازی که -<em>PTY</em> +<em>PTY</em> یا -<em>pseudo-tty</em> -هم شناخته می‌شوند، تعامل خواهد داشت.</p> -<p>شما می‌توانید +<em>pseudo-tty</em> +هم شناخته می‌شوند، تعامل خواهد داشت.</p> +<p>شما می‌توانید tty را در ترمینال تایپ کنید و pty -مرتبط را پیدا کنید.</p> -<h3 id="چگونه-به-tty-در-لینوکس-دسترسی-داشته-باشیم">چگونه به tty در لینوکس دسترسی داشته باشیم؟</h3> -<p><img src="https://bit-orbit.github.io/images/post/ubuntu-tty.png" - - - - loading="lazy" - - alt="tty-in-ubuntu" - - -></p> -<p>دسترسی به +مرتبط را پیدا کنید.</p> +<h3 id="چگونه-به-tty-در-لینوکس-دسترسی-داشته-باشیم">چگونه به tty در لینوکس دسترسی داشته باشیم؟ +</h3><p><img src="https://bit-orbit.github.io/images/post/ubuntu-tty.png" +loading="lazy" +alt="tty-in-ubuntu" +></p> +<p>دسترسی به tty در لینوکس ساده است. در حقیت زمانی که هیچ سرنخی از اینکه tty چیست نداشتم، به طور اتفاقی به آن دسترسی پیدا کردم و از اینکه چطوری باید -از آن خارج شوم وحشت زده شدم!</p> -<p>شما می‌توانید با کلید های میانبر زیر در اکثر توزیع های لینوکس به صفحه -tty -دسترسی پیدا کنید.</p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F1</code> – <strong>Lockscreen</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F2</code> – <strong>Desktop Environment</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F3</code> – <strong>TTY3</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F4</code> – <strong>TTY4</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F5</code> – <strong>TT5</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F6</code> – <strong>TTY6</strong></p> -<p>شما می‌توانید حد اکثر به -<u>6</u> +از آن خارج شوم وحشت زده شدم!</p> +<p>شما می‌توانید با کلید های میانبر زیر در اکثر توزیع های لینوکس به صفحه +tty +دسترسی پیدا کنید.</p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F1</code> – <strong>Lockscreen</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F2</code> – <strong>Desktop Environment</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F3</code> – <strong>TTY3</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F4</code> – <strong>TTY4</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F5</code> – <strong>TT5</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F6</code> – <strong>TTY6</strong></p> +<p>شما می‌توانید حد اکثر به +<u>6</u> tty دسترسی داشته باشید، با این حال دو تا از اولین کلید های میانبر به صفحه قفل -و محیط دسکتاپ اشاره دارد.</p> -<p><img src="https://bit-orbit.github.io/images/post/ubuntu-tty4.png" - - - - loading="lazy" - - alt="cmd-with-tty" - - -></p> -<p>بنابر این، با باقی کلید های میانبر شما به محیط +و محیط دسکتاپ اشاره دارد.</p> +<p><img src="https://bit-orbit.github.io/images/post/ubuntu-tty4.png" +loading="lazy" +alt="cmd-with-tty" +></p> +<p>بنابر این، با باقی کلید های میانبر شما به محیط command-line -دسترسی می‌گیرید.</p> -<h3 id="چه-زمانی-شما-از-tty-در-لینوکس-استفاده-خواهید-کرد">چه زمانی شما از tty در لینوکس استفاده خواهید کرد؟</h3> -<p>tty -فقط یک گنج تکنیکی نیست. حتی برای کاربرانی مثل من که توسعه دهنده هم نیستند مفید است.</p> -<p>زمانی که محیط گرافیکی فریز می‌شود باید به کار بیاید. در بعضی از مواقع +دسترسی می‌گیرید.</p> +<h3 id="چه-زمانی-شما-از-tty-در-لینوکس-استفاده-خواهید-کرد">چه زمانی شما از tty در لینوکس استفاده خواهید کرد؟ +</h3><p>tty +فقط یک گنج تکنیکی نیست. حتی برای کاربرانی مثل من که توسعه دهنده هم نیستند مفید است.</p> +<p>زمانی که محیط گرافیکی فریز می‌شود باید به کار بیاید. در بعضی از مواقع نصب مجدد محیط گرافیکی با استفاده از tty -می‌تواند مشکل را حل کند.</p> -<p>یا شما می‌توانید +می‌تواند مشکل را حل کند.</p> +<p>یا شما می‌توانید tty را برای انجام کار هایی مثل آپدیت انتخاب کنید جایی که شما نمی‌خواهید مشکلات بصری فرایند -های شما را مختل کند.</p> -<p>بد ترین مورد سناریو، شما می‌تواند زمانی که محیط دستکتاپ جواب نمی‌دهد، برای ریبوت +های شما را مختل کند.</p> +<p>بد ترین مورد سناریو، شما می‌تواند زمانی که محیط دستکتاپ جواب نمی‌دهد، برای ریبوت به tty -مراجعه کنید.</p> -<p>بعضی از کاربران ترجیح می‌دهند که فایل های بزرگ را با +مراجعه کنید.</p> +<p>بعضی از کاربران ترجیح می‌دهند که فایل های بزرگ را با tty -منتقل کنند(من از آنها نیستم)</p> -<h3 id="tty-به-عنوان-یک-دستور-در-لینوکس">tty به عنوان یک دستور در لینوکس</h3> -<p><img src="https://bit-orbit.github.io/images/post/tty-cmd.png" - - - - loading="lazy" - - alt="tty-cmd" - - -></p> -<p>همانطور که در صفحه راهنمای +منتقل کنند(من از آنها نیستم)</p> +<h3 id="tty-به-عنوان-یک-دستور-در-لینوکس">tty به عنوان یک دستور در لینوکس +</h3><p><img src="https://bit-orbit.github.io/images/post/tty-cmd.png" +loading="lazy" +alt="tty-cmd" +></p> +<p>همانطور که در صفحه راهنمای (man page) tty توضیح داده شده است، زمانی که شما tty -را در ترمینال تایپ کنید، نام فایل ترمینال که به وردی استاندارد متصل است را چاپ می‌کند.</p> -<p>به عبارت دیگر برای دانستن عدد +را در ترمینال تایپ کنید، نام فایل ترمینال که به وردی استاندارد متصل است را چاپ می‌کند.</p> +<p>به عبارت دیگر برای دانستن عدد tty که به آن متصل هستید، فقط tty را در ترمینال تایپ کنید. اگر چند کاربر از راه دور به سیستم لینوکس متصل هستند، می‌توانید برای برسی اینکه به چه متصل هستند از کامند -<code>who</code> -استفاده کنید.</p> -<h3 id="خارج-از-ترجمه">خارج از ترجمه</h3> -<p>متن ترجمه شده بود و خب من یک مترجم تخصصی نیستم، من یک برنامه نویسم که بلاگ نویسی +<code>who</code> +استفاده کنید.</p> +<h3 id="خارج-از-ترجمه">خارج از ترجمه +</h3><p>متن ترجمه شده بود و خب من یک مترجم تخصصی نیستم، من یک برنامه نویسم که بلاگ نویسی و ترجمه رو هم دوست دارم، سعی کردم به بهترین نحو متن را ترجمه کنم و در اختیار بقیه بذارم، اگر حس کردین جایی از متن مشکلی داره، خیلی خوشحال می‌شوم -که مشکلم رو بهم بیگید، این کمک بزرگیه.</p> -<p>متن اصلی رو می‌توانید از -<a class="link" href="https://itsfoss.com/what-is-tty-in-linux/" target="_blank" rel="noopener" - >این لینک</a> -بخوانید.</p> -</div> - - - - +که مشکلم رو بهم بیگید، این کمک بزرگیه.</p> +<p>متن اصلی رو می‌توانید از +<a class="link" href="https://itsfoss.com/what-is-tty-in-linux/" target="_blank" rel="noopener" +>این لینک</a> +بخوانید.</p> +</div> \ No newline at end of file diff --git a/docs/tags/linux-terminal/page/1/index.html b/docs/tags/linux-terminal/page/1/index.html index 1c2dba2..f9b29d4 100644 --- a/docs/tags/linux-terminal/page/1/index.html +++ b/docs/tags/linux-terminal/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/linux-terminal/ - - - - - - +https://bit-orbit.github.io/tags/linux-terminal/ + \ No newline at end of file diff --git a/docs/tags/linux/index.html b/docs/tags/linux/index.html index 10a75e1..05f3653 100644 --- a/docs/tags/linux/index.html +++ b/docs/tags/linux/index.html @@ -1,610 +1,37 @@ - - - - -Tag: Linux - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

4 صفحه

-

Linux

- -
-
-
- -
- - - - - - - - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: Linux - bit-orbit + \ No newline at end of file diff --git a/docs/tags/linux/index.xml b/docs/tags/linux/index.xml index e482118..fa99395 100644 --- a/docs/tags/linux/index.xml +++ b/docs/tags/linux/index.xml @@ -1,146 +1,105 @@ - - - - Linux on bit-orbit - https://bit-orbit.github.io/tags/linux/ - Recent content in Linux on bit-orbit - Hugo -- gohugo.io - fa - Fri, 07 Jul 2023 02:45:19 +0330 - چرا لینوکس رو دوست دارم؟ - https://bit-orbit.github.io/p/%DA%86%D8%B1%D8%A7-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D8%B1%D9%88-%D8%AF%D9%88%D8%B3%D8%AA-%D8%AF%D8%A7%D8%B1%D9%85/ - Fri, 07 Jul 2023 02:45:19 +0330 - - https://bit-orbit.github.io/p/%DA%86%D8%B1%D8%A7-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D8%B1%D9%88-%D8%AF%D9%88%D8%B3%D8%AA-%D8%AF%D8%A7%D8%B1%D9%85/ - <img src="https://bit-orbit.github.io/images/post/ill.png" alt="Featured image of post چرا لینوکس رو دوست دارم؟" /><p>دوست داشتن لینوکس واقعا دلایل زیادی داره و احتمالا هر کسی به دلیل خاصی لینوکس رو دوست داره. -مثلا یکی ممکنه آزادی‌اش رو دوست داشته باشه یکی دیگه از پکیج منیجر علاقه رو به لینوکس پیدا کرده باشه و &hellip;</p> -<p>من ترمینال قدرتمند لینوکس رو دوست دارم، چیزی که هیچوقت توی ویندوز تجربه نکرده بودم. -یکی زیبایی های ترمینال برای من ترکیب ریزالت برنامه‌های مختلف با یکدیگر و بدست اوردن نتیجه جدیده</p> -<p>مثلا بابام برای چندین پست فرستاد که هر پست شامل چهار یا پنج لینکه که من باید همه‌ش رو دانلود کنم، +Linux on bit-orbithttps://bit-orbit.github.io/tags/linux/Recent content in Linux on bit-orbitHugo -- gohugo.iofaFri, 07 Jul 2023 02:45:19 +0330چرا لینوکس رو دوست دارم؟https://bit-orbit.github.io/p/%DA%86%D8%B1%D8%A7-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D8%B1%D9%88-%D8%AF%D9%88%D8%B3%D8%AA-%D8%AF%D8%A7%D8%B1%D9%85/Fri, 07 Jul 2023 02:45:19 +0330https://bit-orbit.github.io/p/%DA%86%D8%B1%D8%A7-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D8%B1%D9%88-%D8%AF%D9%88%D8%B3%D8%AA-%D8%AF%D8%A7%D8%B1%D9%85/<img src="https://bit-orbit.github.io/images/post/ill.png" alt="Featured image of post چرا لینوکس رو دوست دارم؟" /><p>دوست داشتن لینوکس واقعا دلایل زیادی داره و احتمالا هر کسی به دلیل خاصی لینوکس رو دوست داره. +مثلا یکی ممکنه آزادی‌اش رو دوست داشته باشه یکی دیگه از پکیج منیجر علاقه رو به لینوکس پیدا کرده باشه و &hellip;</p> +<p>من ترمینال قدرتمند لینوکس رو دوست دارم، چیزی که هیچوقت توی ویندوز تجربه نکرده بودم. +یکی زیبایی های ترمینال برای من ترکیب ریزالت برنامه‌های مختلف با یکدیگر و بدست اوردن نتیجه جدیده</p> +<p>مثلا بابام برای چندین پست فرستاد که هر پست شامل چهار یا پنج لینکه که من باید همه‌ش رو دانلود کنم، درحالت عادی اگر روی ویندوز بودم خب باید هر لینک رو کپی می‌کردم و بعد وارد دانلود منیجر می‌کردم برای دانلود. -ولی خب ما مجهزیم به قدرت ترمینال لینوکس :)</p> -<p><img src="https://bit-orbit.github.io/images/post/tfiles.jpg" - - - - loading="lazy" - - alt="telegram-post-contain-links" - - -></p> -<p>خب من کاری که می‌کنم اینه که متن پست ها رو کپی می‌کنم و توی یک فایل می‌ریزم -اینطوری هم متن های فارسی پست ها و هم لینک های فایل ها رو دارم</p> -<p><img src="https://bit-orbit.github.io/images/post/ffiles2.jpg" - - - - loading="lazy" - - alt="save-links-to-file" - - -></p> -<p>بعد با دستور +ولی خب ما مجهزیم به قدرت ترمینال لینوکس :)</p> +<p><img src="https://bit-orbit.github.io/images/post/tfiles.jpg" +loading="lazy" +alt="telegram-post-contain-links" +></p> +<p>خب من کاری که می‌کنم اینه که متن پست ها رو کپی می‌کنم و توی یک فایل می‌ریزم +اینطوری هم متن های فارسی پست ها و هم لینک های فایل ها رو دارم</p> +<p><img src="https://bit-orbit.github.io/images/post/ffiles2.jpg" +loading="lazy" +alt="save-links-to-file" +></p> +<p>بعد با دستور grep با یک پترن ساده regex همه لینک ها رو از متن های فارسی جدا می‌کنم و داخل یک فایل دیگه می‌ریزم. این پترن به این شکل هست که می‌گه هر خطی که اولش http -باشه رو پیدا کن.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">cat dl.txt <span class="p">|</span> egrep <span class="s1">&#39;^http&#39;</span> &gt; dl.lst -</span></span></code></pre></td></tr></table> -</div> -</div><p><img src="https://bit-orbit.github.io/images/post/tfiles3.jpg" - - - - loading="lazy" - - alt="save-links-to-file" - - -></p> -<p>و تمام، همه لینک ها رو یکجا آماده دارم، حالا کافیه با یک دستور همه فایل -ها رو دانلود کنم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">wget -c -i dl.lst -</span></span></code></pre></td></tr></table> -</div> -</div><p>خب بعد از دانلود شدن فایل ها، یک مشکلی که دارم این هست که هر پست شامل تمامی درس های یکی از فصل هایی هست +باشه رو پیدا کن.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">cat dl.txt <span class="p">|</span> egrep <span class="s1">&#39;^http&#39;</span> &gt; dl.lst +</span></span></code></pre></td></tr></table> +</div> +</div><p><img src="https://bit-orbit.github.io/images/post/tfiles3.jpg" +loading="lazy" +alt="save-links-to-file" +></p> +<p>و تمام، همه لینک ها رو یکجا آماده دارم، حالا کافیه با یک دستور همه فایل +ها رو دانلود کنم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">wget -c -i dl.lst +</span></span></code></pre></td></tr></table> +</div> +</div><p>خب بعد از دانلود شدن فایل ها، یک مشکلی که دارم این هست که هر پست شامل تمامی درس های یکی از فصل هایی هست که بابام می‌بینه. من باید فایل ها رو براساس فصل هاشون داخل دایرکتوری های مشخص خودش قرار بدم. اینم یک راهکار خیلی ساده داره. اسم فایل ها به این شکل هست که فصل رو داخلش نوشته -<code>Option402-J04-01.mp4</code> -کافیه با یه وایلد کارت هر فصل رو جدا کنم و داخل دایرکتوری خودش بریزم</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span><span class="lnt">3 -</span><span class="lnt">4 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mv Option402-J04* j04 -</span></span><span class="line"><span class="cl">mv Option402-J05* j05 -</span></span><span class="line"><span class="cl">mv Option402-J06* j06 -</span></span><span class="line"><span class="cl">mv Option402-J07* j07 -</span></span></code></pre></td></tr></table> -</div> -</div><p>این یک مثال ساده‌ای بود که می‌تونستم بزنم برای -توضیح اینکه چرا لینوکس برام جذاب تره و کارم رو ساده تر می‌کنه.</p> - - - - در لینوکس چیست؟ TTY - https://bit-orbit.github.io/p/%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA-tty/ - Mon, 31 Jan 2022 19:57:05 +0330 - - https://bit-orbit.github.io/p/%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA-tty/ - <img src="https://bit-orbit.github.io/images/post/tty.jpg" alt="Featured image of post در لینوکس چیست؟ TTY " /><div dir='rtl' style='font-size:x-large'> -<p>شما باید درباره اصطلاح +<code>Option402-J04-01.mp4</code> +کافیه با یه وایلد کارت هر فصل رو جدا کنم و داخل دایرکتوری خودش بریزم</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mv Option402-J04* j04 +</span></span><span class="line"><span class="cl">mv Option402-J05* j05 +</span></span><span class="line"><span class="cl">mv Option402-J06* j06 +</span></span><span class="line"><span class="cl">mv Option402-J07* j07 +</span></span></code></pre></td></tr></table> +</div> +</div><p>این یک مثال ساده‌ای بود که می‌تونستم بزنم برای +توضیح اینکه چرا لینوکس برام جذاب تره و کارم رو ساده تر می‌کنه.</p> در لینوکس چیست؟ TTYhttps://bit-orbit.github.io/p/%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA-tty/Mon, 31 Jan 2022 19:57:05 +0330https://bit-orbit.github.io/p/%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA-tty/<img src="https://bit-orbit.github.io/images/post/tty.jpg" alt="Featured image of post در لینوکس چیست؟ TTY " /><div dir='rtl' style='font-size:x-large'> +<p>شما باید درباره اصطلاح tty زمانی که به لینوکس و یونیکس آمد، شنیده باشید. اما tty -چیست؟</p> -<p>آیا برای شما به عنوان یک کاربر دستکتاپ مفید است؟</p> -<p>به آن نیاز دارید؟ می‌توانید با آن چه کار کنید؟</p> -<p>اجازه دهید هر چیز ضروری برای آشنا کردن شما با اصطلاح +چیست؟</p> +<p>آیا برای شما به عنوان یک کاربر دستکتاپ مفید است؟</p> +<p>به آن نیاز دارید؟ می‌توانید با آن چه کار کنید؟</p> +<p>اجازه دهید هر چیز ضروری برای آشنا کردن شما با اصطلاح tty -را در این پست برسی کنیم.</p> -<p>به یاد داشته باشید که پاسخ قطعی برای این سوال وجود ندارد، +را در این پست برسی کنیم.</p> +<p>به یاد داشته باشید که پاسخ قطعی برای این سوال وجود ندارد، اما به نحوه تعامل دستگاه های input/output(ورودی/خروجی) -در گذشته ربط دارد.</p> -<p>برای اینکه تصویری شفاف از آن داشته باشید باید کمی از تاریخ‌ش را بدانید.</p> -<h3 id="تاریخ-پشت-اصطلاح-tty">تاریخ پشت اصطلاح tty</h3> -<p>همه چیز از یک -<em>teleprinter</em> -در سال 1830 شروع شد.</p> -<p>teleprinter +در گذشته ربط دارد.</p> +<p>برای اینکه تصویری شفاف از آن داشته باشید باید کمی از تاریخ‌ش را بدانید.</p> +<h3 id="تاریخ-پشت-اصطلاح-tty">تاریخ پشت اصطلاح tty +</h3><p>همه چیز از یک +<em>teleprinter</em> +در سال 1830 شروع شد.</p> +<p>teleprinter به شما اجازه می‌داد که از طریق سیم پیام ارسال و دریافت کنید. teleprinter جایگزینی برای ارطبات مورس کد بود در آن دو اپراتور برای ارطبات با یکدیگر مود نیاز بود. اما در teleprinter -فقط به یک اپراتور برای ارسال پیام نیاز داشت. درحالی که +فقط به یک اپراتور برای ارسال پیام نیاز داشت. درحالی که teleprinter یک صفحه کلید مدرن نداشت، بعد ها سیستم آن توسط Donald Murray به یک صفحه کلید -<em>teletypewriter</em> -تکامل یافت.</p> -<p>Murray +<em>teletypewriter</em> +تکامل یافت.</p> +<p>Murray زحمت اپراتور ها را برای ارسال و پیام را کاهش داد و این امکان را برای teletypeprinter @@ -150,16 +109,11 @@ teletypewriter tty نام کوتاه شده teletypewrite -است.</p> -<p><img src="https://bit-orbit.github.io/images/post/teletypewrite.jpg" - - - - loading="lazy" - - -></p> -<p>تفاوت بین +است.</p> +<p><img src="https://bit-orbit.github.io/images/post/teletypewrite.jpg" +loading="lazy" +></p> +<p>تفاوت بین teletypewrite و typewriter @@ -170,89 +124,77 @@ teletypewriter ارطبات سریع تری را تا اکنون برای انسال بدون استفاده از کامپیوتر مقدور کرده است. و اینجا جایی است که tty -بوجود آمد.</p> -<h3 id="مفهوم-مدرن">مفهوم مدرن</h3> -<p>اکنون شما باید متعجب شده باشید که چطور +بوجود آمد.</p> +<h3 id="مفهوم-مدرن">مفهوم مدرن +</h3><p>اکنون شما باید متعجب شده باشید که چطور tty -به لینوکس و کامپیوتر مدرن آمده است.</p> -<p>بسیار خب، برای شروع، زمانی که +به لینوکس و کامپیوتر مدرن آمده است.</p> +<p>بسیار خب، برای شروع، زمانی که teletypewriter به بازار رسید، چند سال بعد ترانزیستور های نیمه هادی(نیمه رسانا) توسعه داده شد که به میکروپروسسور(micro proccessor) -هایی تبدیل شدند که کامپیوتر را ممکن می‌کرند.</p> -<p>کامپیوتر های اولیه مفهومی به اسم صفحه کلید نداشتند. -<a class="link" href="https://en.wikipedia.org/wiki/Punched_card" target="_blank" rel="noopener" - >کارت های پانج</a> -روش ورودی دادن به کامپیوتر ها بود</p> -<p><img src="https://bit-orbit.github.io/images/post/punch-card.jpg" - - - - loading="lazy" - - alt="card-punch" - - -></p> -<p>درحالی که کامپیوتر ها توسعه پیدا می‌کردند، بالاخره کارت های پانچ با +هایی تبدیل شدند که کامپیوتر را ممکن می‌کرند.</p> +<p>کامپیوتر های اولیه مفهومی به اسم صفحه کلید نداشتند. +<a class="link" href="https://en.wikipedia.org/wiki/Punched_card" target="_blank" rel="noopener" +>کارت های پانج</a> +روش ورودی دادن به کامپیوتر ها بود</p> +<p><img src="https://bit-orbit.github.io/images/post/punch-card.jpg" +loading="lazy" +alt="card-punch" +></p> +<p>درحالی که کامپیوتر ها توسعه پیدا می‌کردند، بالاخره کارت های پانچ با teletypewriter -به عنوان دستگاه <em><strong><u>ورودی/خروجی</u></strong></em> مناسب جایگزین شد.    </p> -<p><img src="https://bit-orbit.github.io/images/post/pc-tty.jpg" - - - - loading="lazy" - - alt="LGP-30 computer in 1956 with a TTY attached to it" - - -></p> -<p>با توسعه تکنولوژی +به عنوان دستگاه <em><strong><u>ورودی/خروجی</u></strong></em> مناسب جایگزین شد.    </p> +<p><img src="https://bit-orbit.github.io/images/post/pc-tty.jpg" +loading="lazy" +alt="LGP-30 computer in 1956 with a TTY attached to it" +></p> +<p>با توسعه تکنولوژی teletypewriter ها با استفاده از الکترونیک مجازی شدند. پس شما به یک tty فیزیکی، مکانیکی نیاز پیدا نمی‌کنید، بلکه به یک tty -مجازی، الکترونیکی نیاز دارید.</p> -<p>اوایل کامپیوتر ها صفحه نمایش هم نداشتند. چیز ها بجای نمایش داده شدن بروی صفحه نمایش +مجازی، الکترونیکی نیاز دارید.</p> +<p>اوایل کامپیوتر ها صفحه نمایش هم نداشتند. چیز ها بجای نمایش داده شدن بروی صفحه نمایش (که وجود نداشت) به روی کاغذ چاپ می‌شدند. به همین دلیل شما بجای دیدن اصطلاح -<code>display</code> +<code>display</code> اصطلاح -<code>print</code> +<code>print</code> را می‌بینید. ویدیو ها به عنوان تکنولوژی پیشرفته به ترمینال(پایانه) ها اضافه شد. به عبارت دیگر شما باید درباره ترمینال های ویدیویی شنیده باشید. یا شما می‌توانید -آن ها را ترمینال های فیزیکی بنامید.</p> -<p>سپس اینها به ترمینال های نرم افزاری شبیه سازی شده تکامل پیدا کردند که با قابلیت ها و +آن ها را ترمینال های فیزیکی بنامید.</p> +<p>سپس اینها به ترمینال های نرم افزاری شبیه سازی شده تکامل پیدا کردند که با قابلیت ها و ویژگی های تسوسعه یافته‌ای همرا بود. این چیزی است که شما آن را terminal emulator -می‌نامید.</p> -<p>برای نمونه ترمینال -<a class="link" href="https://en.wikipedia.org/wiki/GNOME_Terminal" target="_blank" rel="noopener" - >گنوم -(Gnome)</a> +می‌نامید.</p> +<p>برای نمونه ترمینال +<a class="link" href="https://en.wikipedia.org/wiki/GNOME_Terminal" target="_blank" rel="noopener" +>گنوم +(Gnome)</a> یا -<a class="link" href="https://konsole.kde.org/" target="_blank" rel="noopener" - >کنسول -(Konsole)</a> -<a class="link" href="https://itsfoss.com/linux-terminal-emulators/" target="_blank" rel="noopener" - >چنتا از بهترین ترمینال هایی هستند که می‌توانید برای لینوکس پیدا کنید.</a></p> -<h3 id="بسیارخب-tty-در-لینوکس-چیست">بسیارخب tty در لینوکس چیست؟</h3> -<p>زمانی که +<a class="link" href="https://konsole.kde.org/" target="_blank" rel="noopener" +>کنسول +(Konsole)</a> +<a class="link" href="https://itsfoss.com/linux-terminal-emulators/" target="_blank" rel="noopener" +>چنتا از بهترین ترمینال هایی هستند که می‌توانید برای لینوکس پیدا کنید.</a></p> +<h3 id="بسیارخب-tty-در-لینوکس-چیست">بسیارخب tty در لینوکس چیست؟ +</h3><p>زمانی که tty به لینوکس و یونیکس آمد، یک دستگاه مستقل در یونیکس و لینوکس بود گاهی tty به یک دستگاه ورودی فیزیکی مانند serial port(درگاه سریال) اشاره می‌کرد، و گاهی به ترمینال های مجازی اشاره می‌کرد که به کاربران اجازه تعامل با -سیستم را می‌داد.</p> -<p>tty +سیستم را می‌داد.</p> +<p>tty یک زیر سیستم در لینوکس و یونیکس است که مدریت فرایند، ویرایش خط و مدیریت نشست ها را در سطح کرنل از طریق درایور های tty -ممکن می‌کند.</p> -<p>از دیدگاه برنامه نویسی شما باید در این موضوع عمیق تر شوید. اما محدوده این +ممکن می‌کند.</p> +<p>از دیدگاه برنامه نویسی شما باید در این موضوع عمیق تر شوید. اما محدوده این پست را در نظر بگیرید، این مقاله باید یک توضیح ساده برای درک بهتر باشد. در حقیقت، هر گاه یک ترمینال را باز می‌کنیم یا هر نوع shell @@ -261,136 +203,110 @@ shell با tty مجازی که -<em>PTY</em> +<em>PTY</em> یا -<em>pseudo-tty</em> -هم شناخته می‌شوند، تعامل خواهد داشت.</p> -<p>شما می‌توانید +<em>pseudo-tty</em> +هم شناخته می‌شوند، تعامل خواهد داشت.</p> +<p>شما می‌توانید tty را در ترمینال تایپ کنید و pty -مرتبط را پیدا کنید.</p> -<h3 id="چگونه-به-tty-در-لینوکس-دسترسی-داشته-باشیم">چگونه به tty در لینوکس دسترسی داشته باشیم؟</h3> -<p><img src="https://bit-orbit.github.io/images/post/ubuntu-tty.png" - - - - loading="lazy" - - alt="tty-in-ubuntu" - - -></p> -<p>دسترسی به +مرتبط را پیدا کنید.</p> +<h3 id="چگونه-به-tty-در-لینوکس-دسترسی-داشته-باشیم">چگونه به tty در لینوکس دسترسی داشته باشیم؟ +</h3><p><img src="https://bit-orbit.github.io/images/post/ubuntu-tty.png" +loading="lazy" +alt="tty-in-ubuntu" +></p> +<p>دسترسی به tty در لینوکس ساده است. در حقیت زمانی که هیچ سرنخی از اینکه tty چیست نداشتم، به طور اتفاقی به آن دسترسی پیدا کردم و از اینکه چطوری باید -از آن خارج شوم وحشت زده شدم!</p> -<p>شما می‌توانید با کلید های میانبر زیر در اکثر توزیع های لینوکس به صفحه +از آن خارج شوم وحشت زده شدم!</p> +<p>شما می‌توانید با کلید های میانبر زیر در اکثر توزیع های لینوکس به صفحه tty -دسترسی پیدا کنید.</p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F1</code> – <strong>Lockscreen</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F2</code> – <strong>Desktop Environment</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F3</code> – <strong>TTY3</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F4</code> – <strong>TTY4</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F5</code> – <strong>TT5</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F6</code> – <strong>TTY6</strong></p> -<p>شما می‌توانید حد اکثر به -<u>6</u> +دسترسی پیدا کنید.</p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F1</code> – <strong>Lockscreen</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F2</code> – <strong>Desktop Environment</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F3</code> – <strong>TTY3</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F4</code> – <strong>TTY4</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F5</code> – <strong>TT5</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F6</code> – <strong>TTY6</strong></p> +<p>شما می‌توانید حد اکثر به +<u>6</u> tty دسترسی داشته باشید، با این حال دو تا از اولین کلید های میانبر به صفحه قفل -و محیط دسکتاپ اشاره دارد.</p> -<p><img src="https://bit-orbit.github.io/images/post/ubuntu-tty4.png" - - - - loading="lazy" - - alt="cmd-with-tty" - - -></p> -<p>بنابر این، با باقی کلید های میانبر شما به محیط +و محیط دسکتاپ اشاره دارد.</p> +<p><img src="https://bit-orbit.github.io/images/post/ubuntu-tty4.png" +loading="lazy" +alt="cmd-with-tty" +></p> +<p>بنابر این، با باقی کلید های میانبر شما به محیط command-line -دسترسی می‌گیرید.</p> -<h3 id="چه-زمانی-شما-از-tty-در-لینوکس-استفاده-خواهید-کرد">چه زمانی شما از tty در لینوکس استفاده خواهید کرد؟</h3> -<p>tty -فقط یک گنج تکنیکی نیست. حتی برای کاربرانی مثل من که توسعه دهنده هم نیستند مفید است.</p> -<p>زمانی که محیط گرافیکی فریز می‌شود باید به کار بیاید. در بعضی از مواقع +دسترسی می‌گیرید.</p> +<h3 id="چه-زمانی-شما-از-tty-در-لینوکس-استفاده-خواهید-کرد">چه زمانی شما از tty در لینوکس استفاده خواهید کرد؟ +</h3><p>tty +فقط یک گنج تکنیکی نیست. حتی برای کاربرانی مثل من که توسعه دهنده هم نیستند مفید است.</p> +<p>زمانی که محیط گرافیکی فریز می‌شود باید به کار بیاید. در بعضی از مواقع نصب مجدد محیط گرافیکی با استفاده از tty -می‌تواند مشکل را حل کند.</p> -<p>یا شما می‌توانید +می‌تواند مشکل را حل کند.</p> +<p>یا شما می‌توانید tty را برای انجام کار هایی مثل آپدیت انتخاب کنید جایی که شما نمی‌خواهید مشکلات بصری فرایند -های شما را مختل کند.</p> -<p>بد ترین مورد سناریو، شما می‌تواند زمانی که محیط دستکتاپ جواب نمی‌دهد، برای ریبوت +های شما را مختل کند.</p> +<p>بد ترین مورد سناریو، شما می‌تواند زمانی که محیط دستکتاپ جواب نمی‌دهد، برای ریبوت به tty -مراجعه کنید.</p> -<p>بعضی از کاربران ترجیح می‌دهند که فایل های بزرگ را با +مراجعه کنید.</p> +<p>بعضی از کاربران ترجیح می‌دهند که فایل های بزرگ را با tty -منتقل کنند(من از آنها نیستم)</p> -<h3 id="tty-به-عنوان-یک-دستور-در-لینوکس">tty به عنوان یک دستور در لینوکس</h3> -<p><img src="https://bit-orbit.github.io/images/post/tty-cmd.png" - - - - loading="lazy" - - alt="tty-cmd" - - -></p> -<p>همانطور که در صفحه راهنمای +منتقل کنند(من از آنها نیستم)</p> +<h3 id="tty-به-عنوان-یک-دستور-در-لینوکس">tty به عنوان یک دستور در لینوکس +</h3><p><img src="https://bit-orbit.github.io/images/post/tty-cmd.png" +loading="lazy" +alt="tty-cmd" +></p> +<p>همانطور که در صفحه راهنمای (man page) tty توضیح داده شده است، زمانی که شما tty -را در ترمینال تایپ کنید، نام فایل ترمینال که به وردی استاندارد متصل است را چاپ می‌کند.</p> -<p>به عبارت دیگر برای دانستن عدد +را در ترمینال تایپ کنید، نام فایل ترمینال که به وردی استاندارد متصل است را چاپ می‌کند.</p> +<p>به عبارت دیگر برای دانستن عدد tty که به آن متصل هستید، فقط tty را در ترمینال تایپ کنید. اگر چند کاربر از راه دور به سیستم لینوکس متصل هستند، می‌توانید برای برسی اینکه به چه متصل هستند از کامند -<code>who</code> -استفاده کنید.</p> -<h3 id="خارج-از-ترجمه">خارج از ترجمه</h3> -<p>متن ترجمه شده بود و خب من یک مترجم تخصصی نیستم، من یک برنامه نویسم که بلاگ نویسی +<code>who</code> +استفاده کنید.</p> +<h3 id="خارج-از-ترجمه">خارج از ترجمه +</h3><p>متن ترجمه شده بود و خب من یک مترجم تخصصی نیستم، من یک برنامه نویسم که بلاگ نویسی و ترجمه رو هم دوست دارم، سعی کردم به بهترین نحو متن را ترجمه کنم و در اختیار بقیه بذارم، اگر حس کردین جایی از متن مشکلی داره، خیلی خوشحال می‌شوم -که مشکلم رو بهم بیگید، این کمک بزرگیه.</p> -<p>متن اصلی رو می‌توانید از -<a class="link" href="https://itsfoss.com/what-is-tty-in-linux/" target="_blank" rel="noopener" - >این لینک</a> -بخوانید.</p> -</div> - - - اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش(عکس، استایل، جاوا اسکریپت) - https://bit-orbit.github.io/p/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4%D8%B9%DA%A9%D8%B3-%D8%A7%D8%B3%D8%AA%D8%A7%DB%8C%D9%84-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA/ - Mon, 17 Jan 2022 14:56:14 +0330 - - https://bit-orbit.github.io/p/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4%D8%B9%DA%A9%D8%B3-%D8%A7%D8%B3%D8%AA%D8%A7%DB%8C%D9%84-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA/ - <img src="https://bit-orbit.github.io/images/post/snp.jpg" alt="Featured image of post اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش(عکس، استایل، جاوا اسکریپت)" /><div dir='rtl' style='font-size:23px'> -<p>زمانی که مقاله یا پستی را می‌خوانم، گاهی احساس می‌کنم ممکنه یک مطلب را فراموش کنم. +که مشکلم رو بهم بیگید، این کمک بزرگیه.</p> +<p>متن اصلی رو می‌توانید از +<a class="link" href="https://itsfoss.com/what-is-tty-in-linux/" target="_blank" rel="noopener" +>این لینک</a> +بخوانید.</p> +</div>اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش(عکس، استایل، جاوا اسکریپت)https://bit-orbit.github.io/p/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4%D8%B9%DA%A9%D8%B3-%D8%A7%D8%B3%D8%AA%D8%A7%DB%8C%D9%84-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA/Mon, 17 Jan 2022 14:56:14 +0330https://bit-orbit.github.io/p/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4%D8%B9%DA%A9%D8%B3-%D8%A7%D8%B3%D8%AA%D8%A7%DB%8C%D9%84-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA/<img src="https://bit-orbit.github.io/images/post/snp.jpg" alt="Featured image of post اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش(عکس، استایل، جاوا اسکریپت)" /><div dir='rtl' style='font-size:23px'> +<p>زمانی که مقاله یا پستی را می‌خوانم، گاهی احساس می‌کنم ممکنه یک مطلب را فراموش کنم. مثلا اگه مقاله‌ای از ویرگول درباره یک دستور لینوکس بخوانم، برای اینکه مطلبش را فراموش نکنم باید هرزگاهی به پست سر بزنم و مطالب را مرور کنم. اما فکر کنید مطلب درباره برنامه‌ای باشد که می‌توان با استفاده از آن سانسور را دور زد، -ویرگول احتمالا آن مطلب را حذف می‌کند.</p> -<ul> -<li> -<p>چه راهی برای ذخیره پست پشنهاد می‌کنید که بعدا بتوان آن را بارها مرور کرد؟</p> -</li> -<li> -<p>اگر پست از سایت منبع حذف شود، و یا حتی خود سایت دیگر در دسترس نباشد، -باز هم پستی که ذخیره کرده‌اید در دسترس است؟</p> -</li> -</ul> -<p>در این پست با استفاده از ابزار +ویرگول احتمالا آن مطلب را حذف می‌کند.</p> +<ul> +<li> +<p>چه راهی برای ذخیره پست پشنهاد می‌کنید که بعدا بتوان آن را بارها مرور کرد؟</p> +</li> +<li> +<p>اگر پست از سایت منبع حذف شود، و یا حتی خود سایت دیگر در دسترس نباشد، +باز هم پستی که ذخیره کرده‌اید در دسترس است؟</p> +</li> +</ul> +<p>در این پست با استفاده از ابزار wget یک پست را با تمامی وابستگی هایش مانند عکس ها، فایل های js، @@ -399,62 +315,62 @@ css دانلود می‌کنیم و روی سیستم خودمان ذخیره می‌کنیم تا حتی اگر سایت در دسترس نباشد و یا پست -از منبع حذف شد، پست به صورت افلاین در دسترس بماند.</p> -<hr> -<h3 id="wget">wget</h3> -<p>می‌دونید که +از منبع حذف شد، پست به صورت افلاین در دسترس بماند.</p> +<hr> +<h3 id="wget">wget +</h3><p>می‌دونید که wget یک ابزار پیشرفته برای دانلود فایله، قابلیت های زیادی که داره باعث شده بعد از سالها که ابزار های پیشرفته دانلود هم نوشته شدن، همچنان wget استفاده بشه. این برنامه روی اکثر توزیع های لینوکس به صورت دیفالت نصبه پس بیایید بدون تلف کردن وقت -سوییچ های مهم برای میرور کردن یک صفحه سایت رو برسی کنیم.</p> -<p></br></br></p> -<p><strong>Ⅰ.</strong> <code>--adjust-extension</code>, <code>-E</code></p> -<p>شاید شما هم سایتی هایی را دیده باشید که -<em>url</em> +سوییچ های مهم برای میرور کردن یک صفحه سایت رو برسی کنیم.</p> +<p></br></br></p> +<p><strong>Ⅰ.</strong> <code>--adjust-extension</code>, <code>-E</code></p> +<p>شاید شما هم سایتی هایی را دیده باشید که +<em>url</em> صفحه هایشان با پسوند -<code>.asp</code> +<code>.asp</code> به پایان می‌رسند. برای مثال نگاهی به -<a class="link" href="https://www.w3schools.com/python/default.asp" target="_blank" rel="noopener" - >این آدرس</a> +<a class="link" href="https://www.w3schools.com/python/default.asp" target="_blank" rel="noopener" +>این آدرس</a> بیاندازید -<em><a class="link" href="https://www.w3schools.com/python/default.asp" target="_blank" rel="noopener" - >https://www.w3schools.com/python/default.asp</a></em> +<em><a class="link" href="https://www.w3schools.com/python/default.asp" target="_blank" rel="noopener" +>https://www.w3schools.com/python/default.asp</a></em> همانطور که می‌بینید با -<em>asp</em> +<em>asp</em> به پایان می‌رسد. زمانی که شما این صفحه را دانلود کنید، این صفحه بجای پسوند -<em>html.</em> +<em>html.</em> با پسوند -<em>asp.</em> -ذخیره خواهد شد.</p> -<blockquote> -<p>به همین دلیل ما از این سوییچ استفاده می‌کنیم تا صفحه ها را +<em>asp.</em> +ذخیره خواهد شد.</p> +<blockquote> +<p>به همین دلیل ما از این سوییچ استفاده می‌کنیم تا صفحه ها را با پسوند -<em>html.</em> -ذخیره کنیم.</p> -</blockquote> -<div dir='ltr'> -</br> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span><span class="lnt">3 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ https://example.com/some/where -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl"><span class="c1"># where.html</span> -</span></span></code></pre></td></tr></table> -</div> -</div></div> -<p></br></br></p> -<p><strong>Ⅱ.</strong> <code>--span-hosts</code>, <code>-H</code></p> -<p>اگر حتی فقط یک صفحه را میرور می‌کنیم، آن صفحه ممکن است به فایل های خارج از سایت +<em>html.</em> +ذخیره کنیم.</p> +</blockquote> +<div dir='ltr'> +</br> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ https://example.com/some/where +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="c1"># where.html</span> +</span></span></code></pre></td></tr></table> +</div> +</div></div> +<p></br></br></p> +<p><strong>Ⅱ.</strong> <code>--span-hosts</code>, <code>-H</code></p> +<p>اگر حتی فقط یک صفحه را میرور می‌کنیم، آن صفحه ممکن است به فایل های خارج از سایت که به روی یک CDN قرار گرفته اند @@ -462,1360 +378,1334 @@ CDN style sheet ها. از اینرو وقتی شما یک صفحه را میرور می‌کنید wget -فایل های خارج از سایت را دانلود نخواهد کرد.</p> -<blockquote> -<p>پوشش دادن فایل های خارج از سایت با استفاده از این سوییچ انجام داده می‌شود. +فایل های خارج از سایت را دانلود نخواهد کرد.</p> +<blockquote> +<p>پوشش دادن فایل های خارج از سایت با استفاده از این سوییچ انجام داده می‌شود. وقتی این سوییچ را روشن کنید wget همه لینک ها از جمله لینک هایی زیر دامنه را هم دانلود خواهد کرد، مگر اینکه عمق -پوشش دادن را محدود کنید.</p> -</blockquote> -<p></br></br></p> -<p><strong>Ⅲ.</strong> <code>--convert-links</code>, <code>-k</code></p> -<p>یک صفحه را که میرور کردیم با توجه به اینکه فایل های پیشیاز مثل عکس و استایل ها را +پوشش دادن را محدود کنید.</p> +</blockquote> +<p></br></br></p> +<p><strong>Ⅲ.</strong> <code>--convert-links</code>, <code>-k</code></p> +<p>یک صفحه را که میرور کردیم با توجه به اینکه فایل های پیشیاز مثل عکس و استایل ها را هم دانلود کردیم، وقتی فایل را با مرورگر باز کنیم همچنان صفحه html ما به فایل های داخل سایت منبع لینک شده است و فایل های پیشنازش را حتی با اینکه -روی سیستم داریم، باز هم از آدرس خارجی دریافت می‌کند و نمایش می‌دهد.</p> -<blockquote> -<p>برای اینکه یک صفحه فایل های پیشنیازش را از فایل هایی که در کنار صفحه اصلی دانلود +روی سیستم داریم، باز هم از آدرس خارجی دریافت می‌کند و نمایش می‌دهد.</p> +<blockquote> +<p>برای اینکه یک صفحه فایل های پیشنیازش را از فایل هایی که در کنار صفحه اصلی دانلود کرده است بگیرد، از این سوییچ استفاده می‌کنیم. این سوییچ تمامی لینک ها را به -لینک های داخلی تبدیل می‌کند و صفحه موقع لود شدن از فایل های داخلی استفاده می‌کند.</p> -</blockquote> -<p></br></br></p> -<p><strong>Ⅳ.</strong> <code>--page-requisites</code>, <code>-p</code></p> -<blockquote> -<p>این سوییچ باعث می‌شود که +لینک های داخلی تبدیل می‌کند و صفحه موقع لود شدن از فایل های داخلی استفاده می‌کند.</p> +</blockquote> +<p></br></br></p> +<p><strong>Ⅳ.</strong> <code>--page-requisites</code>, <code>-p</code></p> +<blockquote> +<p>این سوییچ باعث می‌شود که wget تمامی فایل های ضروری برای درست نمایش داده شدن html -را دانلود کند. این فایل ها شامل عکس ها، استایل ها و یا صدا ها می‌شود.</p> -</blockquote> -<p></br></br></p> -<p><strong>Ⅴ.</strong> <code>--no-directories</code>, <code>-nd</code></p> -<p>به صورت پیشفرض زمانی که صفحه‌ای با این ادرس را دانلود کنیم</p> -<p><code>https://example.com/some/where/page.html</code></p> -<p>برنامه +را دانلود کند. این فایل ها شامل عکس ها، استایل ها و یا صدا ها می‌شود.</p> +</blockquote> +<p></br></br></p> +<p><strong>Ⅴ.</strong> <code>--no-directories</code>, <code>-nd</code></p> +<p>به صورت پیشفرض زمانی که صفحه‌ای با این ادرس را دانلود کنیم</p> +<p><code>https://example.com/some/where/page.html</code></p> +<p>برنامه wget -این صفحه و فایل های مورد نیازش را به این صورت ذخیره خواهد کرد</p> -<p><code>some/where/page.html/.</code></p> -<p>اما با استفاده از سوییچ -<code>nd-</code> -آن صفحه و فایل های مورد نیازش فقط داخل یک دایرکتوری ذخیره خواهد شد. به این صورت</p> -<p><code>page.html/.</code></p> -<blockquote> -<p>با فعال کردن این سوییچ +این صفحه و فایل های مورد نیازش را به این صورت ذخیره خواهد کرد</p> +<p><code>some/where/page.html/.</code></p> +<p>اما با استفاده از سوییچ +<code>nd-</code> +آن صفحه و فایل های مورد نیازش فقط داخل یک دایرکتوری ذخیره خواهد شد. به این صورت</p> +<p><code>page.html/.</code></p> +<blockquote> +<p>با فعال کردن این سوییچ wget صفحه و فایل های پیشنیاز را داخل دایرکتوری فعلی ذخیره خواهد کرد. و اگر -نام یک فایل بیش از یکبار تکرار شود، به نام فایل پسوند اضافه خواهد شد.</p> -</blockquote> -<p></br></br></p> -<h3 id="مثال-کاربردی-و-خروجی">مثال کاربردی و خروجی</h3> -<ul> -<li>برای مثال من یک -<a class="link" href="https://vrgl.ir/c3fVa" target="_blank" rel="noopener" - >پست توی ویرگول</a> +نام یک فایل بیش از یکبار تکرار شود، به نام فایل پسوند اضافه خواهد شد.</p> +</blockquote> +<p></br></br></p> +<h3 id="مثال-کاربردی-و-خروجی">مثال کاربردی و خروجی +</h3><ul> +<li>برای مثال من یک +<a class="link" href="https://vrgl.ir/c3fVa" target="_blank" rel="noopener" +>پست توی ویرگول</a> که آموزش الگوریتم RSA -هست رو دانلود می‌کنم.</li> -</ul> -</br> -</div> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt"> 10 -</span><span class="lnt"> 11 -</span><span class="lnt"> 12 -</span><span class="lnt"> 13 -</span><span class="lnt"> 14 -</span><span class="lnt"> 15 -</span><span class="lnt"> 16 -</span><span class="lnt"> 17 -</span><span class="lnt"> 18 -</span><span class="lnt"> 19 -</span><span class="lnt"> 20 -</span><span class="lnt"> 21 -</span><span class="lnt"> 22 -</span><span class="lnt"> 23 -</span><span class="lnt"> 24 -</span><span class="lnt"> 25 -</span><span class="lnt"> 26 -</span><span class="lnt"> 27 -</span><span class="lnt"> 28 -</span><span class="lnt"> 29 -</span><span class="lnt"> 30 -</span><span class="lnt"> 31 -</span><span class="lnt"> 32 -</span><span class="lnt"> 33 -</span><span class="lnt"> 34 -</span><span class="lnt"> 35 -</span><span class="lnt"> 36 -</span><span class="lnt"> 37 -</span><span class="lnt"> 38 -</span><span class="lnt"> 39 -</span><span class="lnt"> 40 -</span><span class="lnt"> 41 -</span><span class="lnt"> 42 -</span><span class="lnt"> 43 -</span><span class="lnt"> 44 -</span><span class="lnt"> 45 -</span><span class="lnt"> 46 -</span><span class="lnt"> 47 -</span><span class="lnt"> 48 -</span><span class="lnt"> 49 -</span><span class="lnt"> 50 -</span><span class="lnt"> 51 -</span><span class="lnt"> 52 -</span><span class="lnt"> 53 -</span><span class="lnt"> 54 -</span><span class="lnt"> 55 -</span><span class="lnt"> 56 -</span><span class="lnt"> 57 -</span><span class="lnt"> 58 -</span><span class="lnt"> 59 -</span><span class="lnt"> 60 -</span><span class="lnt"> 61 -</span><span class="lnt"> 62 -</span><span class="lnt"> 63 -</span><span class="lnt"> 64 -</span><span class="lnt"> 65 -</span><span class="lnt"> 66 -</span><span class="lnt"> 67 -</span><span class="lnt"> 68 -</span><span class="lnt"> 69 -</span><span class="lnt"> 70 -</span><span class="lnt"> 71 -</span><span class="lnt"> 72 -</span><span class="lnt"> 73 -</span><span class="lnt"> 74 -</span><span class="lnt"> 75 -</span><span class="lnt"> 76 -</span><span class="lnt"> 77 -</span><span class="lnt"> 78 -</span><span class="lnt"> 79 -</span><span class="lnt"> 80 -</span><span class="lnt"> 81 -</span><span class="lnt"> 82 -</span><span class="lnt"> 83 -</span><span class="lnt"> 84 -</span><span class="lnt"> 85 -</span><span class="lnt"> 86 -</span><span class="lnt"> 87 -</span><span class="lnt"> 88 -</span><span class="lnt"> 89 -</span><span class="lnt"> 90 -</span><span class="lnt"> 91 -</span><span class="lnt"> 92 -</span><span class="lnt"> 93 -</span><span class="lnt"> 94 -</span><span class="lnt"> 95 -</span><span class="lnt"> 96 -</span><span class="lnt"> 97 -</span><span class="lnt"> 98 -</span><span class="lnt"> 99 -</span><span class="lnt">100 -</span><span class="lnt">101 -</span><span class="lnt">102 -</span><span class="lnt">103 -</span><span class="lnt">104 -</span><span class="lnt">105 -</span><span class="lnt">106 -</span><span class="lnt">107 -</span><span class="lnt">108 -</span><span class="lnt">109 -</span><span class="lnt">110 -</span><span class="lnt">111 -</span><span class="lnt">112 -</span><span class="lnt">113 -</span><span class="lnt">114 -</span><span class="lnt">115 -</span><span class="lnt">116 -</span><span class="lnt">117 -</span><span class="lnt">118 -</span><span class="lnt">119 -</span><span class="lnt">120 -</span><span class="lnt">121 -</span><span class="lnt">122 -</span><span class="lnt">123 -</span><span class="lnt">124 -</span><span class="lnt">125 -</span><span class="lnt">126 -</span><span class="lnt">127 -</span><span class="lnt">128 -</span><span class="lnt">129 -</span><span class="lnt">130 -</span><span class="lnt">131 -</span><span class="lnt">132 -</span><span class="lnt">133 -</span><span class="lnt">134 -</span><span class="lnt">135 -</span><span class="lnt">136 -</span><span class="lnt">137 -</span><span class="lnt">138 -</span><span class="lnt">139 -</span><span class="lnt">140 -</span><span class="lnt">141 -</span><span class="lnt">142 -</span><span class="lnt">143 -</span><span class="lnt">144 -</span><span class="lnt">145 -</span><span class="lnt">146 -</span><span class="lnt">147 -</span><span class="lnt">148 -</span><span class="lnt">149 -</span><span class="lnt">150 -</span><span class="lnt">151 -</span><span class="lnt">152 -</span><span class="lnt">153 -</span><span class="lnt">154 -</span><span class="lnt">155 -</span><span class="lnt">156 -</span><span class="lnt">157 -</span><span class="lnt">158 -</span><span class="lnt">159 -</span><span class="lnt">160 -</span><span class="lnt">161 -</span><span class="lnt">162 -</span><span class="lnt">163 -</span><span class="lnt">164 -</span><span class="lnt">165 -</span><span class="lnt">166 -</span><span class="lnt">167 -</span><span class="lnt">168 -</span><span class="lnt">169 -</span><span class="lnt">170 -</span><span class="lnt">171 -</span><span class="lnt">172 -</span><span class="lnt">173 -</span><span class="lnt">174 -</span><span class="lnt">175 -</span><span class="lnt">176 -</span><span class="lnt">177 -</span><span class="lnt">178 -</span><span class="lnt">179 -</span><span class="lnt">180 -</span><span class="lnt">181 -</span><span class="lnt">182 -</span><span class="lnt">183 -</span><span class="lnt">184 -</span><span class="lnt">185 -</span><span class="lnt">186 -</span><span class="lnt">187 -</span><span class="lnt">188 -</span><span class="lnt">189 -</span><span class="lnt">190 -</span><span class="lnt">191 -</span><span class="lnt">192 -</span><span class="lnt">193 -</span><span class="lnt">194 -</span><span class="lnt">195 -</span><span class="lnt">196 -</span><span class="lnt">197 -</span><span class="lnt">198 -</span><span class="lnt">199 -</span><span class="lnt">200 -</span><span class="lnt">201 -</span><span class="lnt">202 -</span><span class="lnt">203 -</span><span class="lnt">204 -</span><span class="lnt">205 -</span><span class="lnt">206 -</span><span class="lnt">207 -</span><span class="lnt">208 -</span><span class="lnt">209 -</span><span class="lnt">210 -</span><span class="lnt">211 -</span><span class="lnt">212 -</span><span class="lnt">213 -</span><span class="lnt">214 -</span><span class="lnt">215 -</span><span class="lnt">216 -</span><span class="lnt">217 -</span><span class="lnt">218 -</span><span class="lnt">219 -</span><span class="lnt">220 -</span><span class="lnt">221 -</span><span class="lnt">222 -</span><span class="lnt">223 -</span><span class="lnt">224 -</span><span class="lnt">225 -</span><span class="lnt">226 -</span><span class="lnt">227 -</span><span class="lnt">228 -</span><span class="lnt">229 -</span><span class="lnt">230 -</span><span class="lnt">231 -</span><span class="lnt">232 -</span><span class="lnt">233 -</span><span class="lnt">234 -</span><span class="lnt">235 -</span><span class="lnt">236 -</span><span class="lnt">237 -</span><span class="lnt">238 -</span><span class="lnt">239 -</span><span class="lnt">240 -</span><span class="lnt">241 -</span><span class="lnt">242 -</span><span class="lnt">243 -</span><span class="lnt">244 -</span><span class="lnt">245 -</span><span class="lnt">246 -</span><span class="lnt">247 -</span><span class="lnt">248 -</span><span class="lnt">249 -</span><span class="lnt">250 -</span><span class="lnt">251 -</span><span class="lnt">252 -</span><span class="lnt">253 -</span><span class="lnt">254 -</span><span class="lnt">255 -</span><span class="lnt">256 -</span><span class="lnt">257 -</span><span class="lnt">258 -</span><span class="lnt">259 -</span><span class="lnt">260 -</span><span class="lnt">261 -</span><span class="lnt">262 -</span><span class="lnt">263 -</span><span class="lnt">264 -</span><span class="lnt">265 -</span><span class="lnt">266 -</span><span class="lnt">267 -</span><span class="lnt">268 -</span><span class="lnt">269 -</span><span class="lnt">270 -</span><span class="lnt">271 -</span><span class="lnt">272 -</span><span class="lnt">273 -</span><span class="lnt">274 -</span><span class="lnt">275 -</span><span class="lnt">276 -</span><span class="lnt">277 -</span><span class="lnt">278 -</span><span class="lnt">279 -</span><span class="lnt">280 -</span><span class="lnt">281 -</span><span class="lnt">282 -</span><span class="lnt">283 -</span><span class="lnt">284 -</span><span class="lnt">285 -</span><span class="lnt">286 -</span><span class="lnt">287 -</span><span class="lnt">288 -</span><span class="lnt">289 -</span><span class="lnt">290 -</span><span class="lnt">291 -</span><span class="lnt">292 -</span><span class="lnt">293 -</span><span class="lnt">294 -</span><span class="lnt">295 -</span><span class="lnt">296 -</span><span class="lnt">297 -</span><span class="lnt">298 -</span><span class="lnt">299 -</span><span class="lnt">300 -</span><span class="lnt">301 -</span><span class="lnt">302 -</span><span class="lnt">303 -</span><span class="lnt">304 -</span><span class="lnt">305 -</span><span class="lnt">306 -</span><span class="lnt">307 -</span><span class="lnt">308 -</span><span class="lnt">309 -</span><span class="lnt">310 -</span><span class="lnt">311 -</span><span class="lnt">312 -</span><span class="lnt">313 -</span><span class="lnt">314 -</span><span class="lnt">315 -</span><span class="lnt">316 -</span><span class="lnt">317 -</span><span class="lnt">318 -</span><span class="lnt">319 -</span><span class="lnt">320 -</span><span class="lnt">321 -</span><span class="lnt">322 -</span><span class="lnt">323 -</span><span class="lnt">324 -</span><span class="lnt">325 -</span><span class="lnt">326 -</span><span class="lnt">327 -</span><span class="lnt">328 -</span><span class="lnt">329 -</span><span class="lnt">330 -</span><span class="lnt">331 -</span><span class="lnt">332 -</span><span class="lnt">333 -</span><span class="lnt">334 -</span><span class="lnt">335 -</span><span class="lnt">336 -</span><span class="lnt">337 -</span><span class="lnt">338 -</span><span class="lnt">339 -</span><span class="lnt">340 -</span><span class="lnt">341 -</span><span class="lnt">342 -</span><span class="lnt">343 -</span><span class="lnt">344 -</span><span class="lnt">345 -</span><span class="lnt">346 -</span><span class="lnt">347 -</span><span class="lnt">348 -</span><span class="lnt">349 -</span><span class="lnt">350 -</span><span class="lnt">351 -</span><span class="lnt">352 -</span><span class="lnt">353 -</span><span class="lnt">354 -</span><span class="lnt">355 -</span><span class="lnt">356 -</span><span class="lnt">357 -</span><span class="lnt">358 -</span><span class="lnt">359 -</span><span class="lnt">360 -</span><span class="lnt">361 -</span><span class="lnt">362 -</span><span class="lnt">363 -</span><span class="lnt">364 -</span><span class="lnt">365 -</span><span class="lnt">366 -</span><span class="lnt">367 -</span><span class="lnt">368 -</span><span class="lnt">369 -</span><span class="lnt">370 -</span><span class="lnt">371 -</span><span class="lnt">372 -</span><span class="lnt">373 -</span><span class="lnt">374 -</span><span class="lnt">375 -</span><span class="lnt">376 -</span><span class="lnt">377 -</span><span class="lnt">378 -</span><span class="lnt">379 -</span><span class="lnt">380 -</span><span class="lnt">381 -</span><span class="lnt">382 -</span><span class="lnt">383 -</span><span class="lnt">384 -</span><span class="lnt">385 -</span><span class="lnt">386 -</span><span class="lnt">387 -</span><span class="lnt">388 -</span><span class="lnt">389 -</span><span class="lnt">390 -</span><span class="lnt">391 -</span><span class="lnt">392 -</span><span class="lnt">393 -</span><span class="lnt">394 -</span><span class="lnt">395 -</span><span class="lnt">396 -</span><span class="lnt">397 -</span><span class="lnt">398 -</span><span class="lnt">399 -</span><span class="lnt">400 -</span><span class="lnt">401 -</span><span class="lnt">402 -</span><span class="lnt">403 -</span><span class="lnt">404 -</span><span class="lnt">405 -</span><span class="lnt">406 -</span><span class="lnt">407 -</span><span class="lnt">408 -</span><span class="lnt">409 -</span><span class="lnt">410 -</span><span class="lnt">411 -</span><span class="lnt">412 -</span><span class="lnt">413 -</span><span class="lnt">414 -</span><span class="lnt">415 -</span><span class="lnt">416 -</span><span class="lnt">417 -</span><span class="lnt">418 -</span><span class="lnt">419 -</span><span class="lnt">420 -</span><span class="lnt">421 -</span><span class="lnt">422 -</span><span class="lnt">423 -</span><span class="lnt">424 -</span><span class="lnt">425 -</span><span class="lnt">426 -</span><span class="lnt">427 -</span><span class="lnt">428 -</span><span class="lnt">429 -</span><span class="lnt">430 -</span><span class="lnt">431 -</span><span class="lnt">432 -</span><span class="lnt">433 -</span><span class="lnt">434 -</span><span class="lnt">435 -</span><span class="lnt">436 -</span><span class="lnt">437 -</span><span class="lnt">438 -</span><span class="lnt">439 -</span><span class="lnt">440 -</span><span class="lnt">441 -</span><span class="lnt">442 -</span><span class="lnt">443 -</span><span class="lnt">444 -</span><span class="lnt">445 -</span><span class="lnt">446 -</span><span class="lnt">447 -</span><span class="lnt">448 -</span><span class="lnt">449 -</span><span class="lnt">450 -</span><span class="lnt">451 -</span><span class="lnt">452 -</span><span class="lnt">453 -</span><span class="lnt">454 -</span><span class="lnt">455 -</span><span class="lnt">456 -</span><span class="lnt">457 -</span><span class="lnt">458 -</span><span class="lnt">459 -</span><span class="lnt">460 -</span><span class="lnt">461 -</span><span class="lnt">462 -</span><span class="lnt">463 -</span><span class="lnt">464 -</span><span class="lnt">465 -</span><span class="lnt">466 -</span><span class="lnt">467 -</span><span class="lnt">468 -</span><span class="lnt">469 -</span><span class="lnt">470 -</span><span class="lnt">471 -</span><span class="lnt">472 -</span><span class="lnt">473 -</span><span class="lnt">474 -</span><span class="lnt">475 -</span><span class="lnt">476 -</span><span class="lnt">477 -</span><span class="lnt">478 -</span><span class="lnt">479 -</span><span class="lnt">480 -</span><span class="lnt">481 -</span><span class="lnt">482 -</span><span class="lnt">483 -</span><span class="lnt">484 -</span><span class="lnt">485 -</span><span class="lnt">486 -</span><span class="lnt">487 -</span><span class="lnt">488 -</span><span class="lnt">489 -</span><span class="lnt">490 -</span><span class="lnt">491 -</span><span class="lnt">492 -</span><span class="lnt">493 -</span><span class="lnt">494 -</span><span class="lnt">495 -</span><span class="lnt">496 -</span><span class="lnt">497 -</span><span class="lnt">498 -</span><span class="lnt">499 -</span><span class="lnt">500 -</span><span class="lnt">501 -</span><span class="lnt">502 -</span><span class="lnt">503 -</span><span class="lnt">504 -</span><span class="lnt">505 -</span><span class="lnt">506 -</span><span class="lnt">507 -</span><span class="lnt">508 -</span><span class="lnt">509 -</span><span class="lnt">510 -</span><span class="lnt">511 -</span><span class="lnt">512 -</span><span class="lnt">513 -</span><span class="lnt">514 -</span><span class="lnt">515 -</span><span class="lnt">516 -</span><span class="lnt">517 -</span><span class="lnt">518 -</span><span class="lnt">519 -</span><span class="lnt">520 -</span><span class="lnt">521 -</span><span class="lnt">522 -</span><span class="lnt">523 -</span><span class="lnt">524 -</span><span class="lnt">525 -</span><span class="lnt">526 -</span><span class="lnt">527 -</span><span class="lnt">528 -</span><span class="lnt">529 -</span><span class="lnt">530 -</span><span class="lnt">531 -</span><span class="lnt">532 -</span><span class="lnt">533 -</span><span class="lnt">534 -</span><span class="lnt">535 -</span><span class="lnt">536 -</span><span class="lnt">537 -</span><span class="lnt">538 -</span><span class="lnt">539 -</span><span class="lnt">540 -</span><span class="lnt">541 -</span><span class="lnt">542 -</span><span class="lnt">543 -</span><span class="lnt">544 -</span><span class="lnt">545 -</span><span class="lnt">546 -</span><span class="lnt">547 -</span><span class="lnt">548 -</span><span class="lnt">549 -</span><span class="lnt">550 -</span><span class="lnt">551 -</span><span class="lnt">552 -</span><span class="lnt">553 -</span><span class="lnt">554 -</span><span class="lnt">555 -</span><span class="lnt">556 -</span><span class="lnt">557 -</span><span class="lnt">558 -</span><span class="lnt">559 -</span><span class="lnt">560 -</span><span class="lnt">561 -</span><span class="lnt">562 -</span><span class="lnt">563 -</span><span class="lnt">564 -</span><span class="lnt">565 -</span><span class="lnt">566 -</span><span class="lnt">567 -</span><span class="lnt">568 -</span><span class="lnt">569 -</span><span class="lnt">570 -</span><span class="lnt">571 -</span><span class="lnt">572 -</span><span class="lnt">573 -</span><span class="lnt">574 -</span><span class="lnt">575 -</span><span class="lnt">576 -</span><span class="lnt">577 -</span><span class="lnt">578 -</span><span class="lnt">579 -</span><span class="lnt">580 -</span><span class="lnt">581 -</span><span class="lnt">582 -</span><span class="lnt">583 -</span><span class="lnt">584 -</span><span class="lnt">585 -</span><span class="lnt">586 -</span><span class="lnt">587 -</span><span class="lnt">588 -</span><span class="lnt">589 -</span><span class="lnt">590 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">┌─<span class="o">[</span>loading<span class="o">]</span> <span class="o">[</span>/tmp/virgool<span class="o">]</span> <span class="o">[</span>0<span class="o">]</span> -</span></span><span class="line"><span class="cl">│ -</span></span><span class="line"><span class="cl">└──〉wget -nd -E -p -k -H https://vrgl.ir/c3fVa -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:03-- https://vrgl.ir/c3fVa -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">302</span> Found -</span></span><span class="line"><span class="cl">Location: https://virgool.io/@Novo/rsa-encryption-ao1poasym4cf <span class="o">[</span>following<span class="o">]</span> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:04-- https://virgool.io/@Novo/rsa-encryption-ao1poasym4cf -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/html<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘c3fVa.html’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">c3fVa.html <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 61.30K 200KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:06 <span class="o">(</span><span class="m">200</span> KB/s<span class="o">)</span> - ‘c3fVa.html’ saved <span class="o">[</span>62773<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:06-- https://virgool.io/robots.txt -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>document<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘robots.txt’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">robots.txt <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">484</span> --.-KB/s in 0s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:07 <span class="o">(</span>85.7 MB/s<span class="o">)</span> - ‘robots.txt’ saved <span class="o">[</span>484<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:07-- https://www.googletagmanager.com/robots.txt -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">404</span> Not Found -</span></span><span class="line"><span class="cl">2022-01-18 06:41:08 ERROR 404: Not Found. -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:08-- https://files.virgool.io/robots.txt -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">403</span> Forbidden -</span></span><span class="line"><span class="cl">2022-01-18 06:41:09 ERROR 403: Forbidden. -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:09-- https://static.cloudflareinsights.com/robots.txt -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">522</span> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:26 ERROR 522: <span class="o">(</span>no description<span class="o">)</span>. -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:26-- https://virgool.io/images/favicon.png?v<span class="o">=</span>v2.6.15 -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">9855</span> <span class="o">(</span>9.6K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘favicon.png?v<span class="o">=</span>v2.6.15’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">favicon.png?v<span class="o">=</span>v2.6.15 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 9.62K --.-KB/s in 0.07s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:27 <span class="o">(</span><span class="m">130</span> KB/s<span class="o">)</span> - ‘favicon.png?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>9855/9855<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:27-- https://virgool.io/css/styles.css?v<span class="o">=</span>v2.6.15 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/css<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘styles.css?v<span class="o">=</span>v2.6.15.css’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">styles.css?v<span class="o">=</span>v2.6.15.css <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 903.60K 592KB/s in 1.5s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:28 <span class="o">(</span><span class="m">592</span> KB/s<span class="o">)</span> - ‘styles.css?v<span class="o">=</span>v2.6.15.css’ saved <span class="o">[</span>925284<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:28-- https://virgool.test/robots.txt -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:28-- https://www.googletagmanager.com/ns.html?id<span class="o">=</span>GTM-5GS688K -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/html<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘ns.html?id<span class="o">=</span>GTM-5GS688K.html’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">ns.html?id<span class="o">=</span>GTM-5GS688K.html <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">266</span> --.-KB/s in 0s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:29 <span class="o">(</span>29.4 MB/s<span class="o">)</span> - ‘ns.html?id<span class="o">=</span>GTM-5GS688K.html’ saved <span class="o">[</span>266<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:29-- https://files.virgool.io/upload/users/31434/avatar/1C4LLE.png?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">39194</span> <span class="o">(</span>38K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_ 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 38.28K 173KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:30 <span class="o">(</span><span class="m">173</span> KB/s<span class="o">)</span> - ‘1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>39194/39194<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:30-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/qhokakomwyb5.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">179870</span> <span class="o">(</span>176K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘qhokakomwyb5.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">qhokakomwyb5.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 175.65K 567KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">567</span> KB/s<span class="o">)</span> - ‘qhokakomwyb5.png’ saved <span class="o">[</span>179870/179870<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/v1xnwpnewfys.webp -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">12770</span> <span class="o">(</span>12K<span class="o">)</span> <span class="o">[</span>image/webp<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘v1xnwpnewfys.webp’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">v1xnwpnewfys.webp 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 12.47K --.-KB/s in 0.07s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">180</span> KB/s<span class="o">)</span> - ‘v1xnwpnewfys.webp’ saved <span class="o">[</span>12770/12770<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/d28hpu2detkl.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">92847</span> <span class="o">(</span>91K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘d28hpu2detkl.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">d28hpu2detkl.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 90.67K --.-KB/s in 0.09s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">969</span> KB/s<span class="o">)</span> - ‘d28hpu2detkl.png’ saved <span class="o">[</span>92847/92847<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/rhyykrc8azq0.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">17539</span> <span class="o">(</span>17K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘rhyykrc8azq0.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">rhyykrc8azq0.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 17.13K --.-KB/s in 0.007s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>2.47 MB/s<span class="o">)</span> - ‘rhyykrc8azq0.png’ saved <span class="o">[</span>17539/17539<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/fjtc1ydzkuse.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">108524</span> <span class="o">(</span>106K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘fjtc1ydzkuse.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">fjtc1ydzkuse.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 105.98K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>1.06 MB/s<span class="o">)</span> - ‘fjtc1ydzkuse.png’ saved <span class="o">[</span>108524/108524<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/gfqhgyp18oic.jpeg -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">132085</span> <span class="o">(</span>129K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘gfqhgyp18oic.jpeg’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">gfqhgyp18oic.jpeg 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 128.99K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>1.28 MB/s<span class="o">)</span> - ‘gfqhgyp18oic.jpeg’ saved <span class="o">[</span>132085/132085<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/me0mpjtdmyom.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">113489</span> <span class="o">(</span>111K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘me0mpjtdmyom.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">me0mpjtdmyom.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 110.83K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span><span class="m">814</span> KB/s<span class="o">)</span> - ‘me0mpjtdmyom.png’ saved <span class="o">[</span>113489/113489<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/of7krju6oqzk.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">105746</span> <span class="o">(</span>103K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘of7krju6oqzk.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">of7krju6oqzk.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 103.27K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span>1.25 MB/s<span class="o">)</span> - ‘of7krju6oqzk.png’ saved <span class="o">[</span>105746/105746<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/oqwhflg4gbnq.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">120994</span> <span class="o">(</span>118K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘oqwhflg4gbnq.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">oqwhflg4gbnq.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 118.16K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span>1.14 MB/s<span class="o">)</span> - ‘oqwhflg4gbnq.png’ saved <span class="o">[</span>120994/120994<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/taqjnfnuzxcx.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">122678</span> <span class="o">(</span>120K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘taqjnfnuzxcx.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">taqjnfnuzxcx.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 119.80K --.-KB/s in 0.06s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span>2.00 MB/s<span class="o">)</span> - ‘taqjnfnuzxcx.png’ saved <span class="o">[</span>122678/122678<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/63/posts/qwqrubplfaau/g8vai2incgna.jpeg?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">88292</span> <span class="o">(</span>86K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fre 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 86.22K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span><span class="m">824</span> KB/s<span class="o">)</span> - ‘g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>88292/88292<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/63/avatar/o8jiNe.png?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">32037</span> <span class="o">(</span>31K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_ 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 31.29K --.-KB/s in 0.06s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span><span class="m">558</span> KB/s<span class="o">)</span> - ‘o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>32037/32037<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/31434/posts/e3oydlcfkr5e/figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">30356</span> <span class="o">(</span>30K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fre 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 29.64K --.-KB/s in 0.07s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span><span class="m">401</span> KB/s<span class="o">)</span> - ‘figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>30356/30356<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://files.virgool.io/upload/users/316150/posts/r8rhw88uh1xh/cs1ugyelv3zw.png?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">34459</span> <span class="o">(</span>34K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fres 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 33.65K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span><span class="m">399</span> KB/s<span class="o">)</span> - ‘cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>34459/34459<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://files.virgool.io/upload/users/316150/avatar/8sz7Rs.jpeg?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">14764</span> <span class="o">(</span>14K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 14.42K --.-KB/s in 0.007s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span>2.11 MB/s<span class="o">)</span> - ‘8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>14764/14764<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://virgool.io/js/commons.js?v<span class="o">=</span>v2.6.15 -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/javascript<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘commons.js?v<span class="o">=</span>v2.6.15’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">commons.js?v<span class="o">=</span>v2.6.15 <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 997.55K 337KB/s in 3.0s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:39 <span class="o">(</span><span class="m">337</span> KB/s<span class="o">)</span> - ‘commons.js?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>1021492<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:39-- https://virgool.io/js/main.js?v<span class="o">=</span>v2.6.15 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/javascript<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘main.js?v<span class="o">=</span>v2.6.15’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">main.js?v<span class="o">=</span>v2.6.15 <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 1.21M 580KB/s in 2.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:41 <span class="o">(</span><span class="m">580</span> KB/s<span class="o">)</span> - ‘main.js?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>1267632<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:41-- https://static.cloudflareinsights.com/beacon.min.js/v652eace1692a40cfa3763df669d7439c1639079717194 -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">13970</span> <span class="o">(</span>14K<span class="o">)</span> <span class="o">[</span>text/javascript<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘v652eace1692a40cfa3763df669d7439c1639079717194’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">v652eace1692a40cfa3763df669d743 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 13.64K --.-KB/s in 0.02s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:42 <span class="o">(</span><span class="m">600</span> KB/s<span class="o">)</span> - ‘v652eace1692a40cfa3763df669d7439c1639079717194’ saved <span class="o">[</span>13970/13970<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:42-- https://virgool.io/fonts/vazir/Vazir-Thin.ttf -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">98924</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Thin.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.61K 140KB/s in 0.7s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:43 <span class="o">(</span><span class="m">140</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.ttf’ saved <span class="o">[</span>98924/98924<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:43-- https://virgool.io/fonts/vazir/Vazir-Thin.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Thin.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.80K 276KB/s in 0.4s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:44 <span class="o">(</span><span class="m">276</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.eot?’ saved <span class="o">[</span>99120<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:44-- https://virgool.io/fonts/vazir/Vazir-Thin.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">54068</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Thin.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.80K --.-KB/s in 0.07s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:45 <span class="o">(</span><span class="m">770</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.woff’ saved <span class="o">[</span>54068/54068<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:45-- https://virgool.io/fonts/vazir/Vazir-Thin.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">43000</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Thin.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 41.99K --.-KB/s in 0.006s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:46 <span class="o">(</span>6.59 MB/s<span class="o">)</span> - ‘Vazir-Thin.woff2’ saved <span class="o">[</span>43000/43000<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:46-- https://virgool.io/fonts/vazir/Vazir-Light.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">105360</span> <span class="o">(</span>103K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Light.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 102.89K 478KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:46 <span class="o">(</span><span class="m">478</span> KB/s<span class="o">)</span> - ‘Vazir-Light.ttf’ saved <span class="o">[</span>105360/105360<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:46-- https://virgool.io/fonts/vazir/Vazir-Light.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Light.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 103.09K 470KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:47 <span class="o">(</span><span class="m">470</span> KB/s<span class="o">)</span> - ‘Vazir-Light.eot?’ saved <span class="o">[</span>105562<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:47-- https://virgool.io/fonts/vazir/Vazir-Light.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">59688</span> <span class="o">(</span>58K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Light.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 58.29K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:48 <span class="o">(</span><span class="m">758</span> KB/s<span class="o">)</span> - ‘Vazir-Light.woff’ saved <span class="o">[</span>59688/59688<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:48-- https://virgool.io/fonts/vazir/Vazir-Light.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">48168</span> <span class="o">(</span>47K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Light.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 47.04K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:48 <span class="o">(</span><span class="m">570</span> KB/s<span class="o">)</span> - ‘Vazir-Light.woff2’ saved <span class="o">[</span>48168/48168<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:48-- https://virgool.io/fonts/vazir/Vazir-Regular.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">98376</span> <span class="o">(</span>96K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Regular.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.07K 435KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:49 <span class="o">(</span><span class="m">435</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.ttf’ saved <span class="o">[</span>98376/98376<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:49-- https://virgool.io/fonts/vazir/Vazir-Regular.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Regular.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.26K 285KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:50 <span class="o">(</span><span class="m">285</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.eot?’ saved <span class="o">[</span>98574<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:50-- https://virgool.io/fonts/vazir/Vazir-Regular.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">53744</span> <span class="o">(</span>52K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Regular.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.48K --.-KB/s in 0.05s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:51 <span class="o">(</span>1.10 MB/s<span class="o">)</span> - ‘Vazir-Regular.woff’ saved <span class="o">[</span>53744/53744<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:51-- https://virgool.io/fonts/vazir/Vazir-Regular.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">42744</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Regular.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 41.74K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:51 <span class="o">(</span><span class="m">412</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.woff2’ saved <span class="o">[</span>42744/42744<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:51-- https://virgool.io/fonts/vazir/Vazir-Medium.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">98892</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Medium.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.57K 606KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:52 <span class="o">(</span><span class="m">606</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.ttf’ saved <span class="o">[</span>98892/98892<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:52-- https://virgool.io/fonts/vazir/Vazir-Medium.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Medium.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.78K 347KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:53 <span class="o">(</span><span class="m">347</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.eot?’ saved <span class="o">[</span>99100<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:53-- https://virgool.io/fonts/vazir/Vazir-Medium.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">54120</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Medium.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.85K 125KB/s in 0.4s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:54 <span class="o">(</span><span class="m">125</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.woff’ saved <span class="o">[</span>54120/54120<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:54-- https://virgool.io/fonts/vazir/Vazir-Medium.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">43152</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Medium.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.14K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:54 <span class="o">(</span><span class="m">541</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.woff2’ saved <span class="o">[</span>43152/43152<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:54-- https://virgool.io/fonts/vazir/Vazir-Bold.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">99840</span> <span class="o">(</span>98K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Bold.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 97.50K --.-KB/s in 0.04s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:55 <span class="o">(</span>2.61 MB/s<span class="o">)</span> - ‘Vazir-Bold.ttf’ saved <span class="o">[</span>99840/99840<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:55-- https://virgool.io/fonts/vazir/Vazir-Bold.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Bold.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 97.68K 560KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:56 <span class="o">(</span><span class="m">560</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.eot?’ saved <span class="o">[</span>100026<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:56-- https://virgool.io/fonts/vazir/Vazir-Bold.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">54560</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Bold.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 53.28K --.-KB/s in 0.06s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:56 <span class="o">(</span><span class="m">917</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.woff’ saved <span class="o">[</span>54560/54560<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:56-- https://virgool.io/fonts/vazir/Vazir-Bold.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">43604</span> <span class="o">(</span>43K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Bold.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.58K --.-KB/s in 0.06s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:57 <span class="o">(</span><span class="m">657</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.woff2’ saved <span class="o">[</span>43604/43604<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:57-- https://virgool.io/fonts/vazir/Vazir-Black.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">99772</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Black.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 97.43K --.-KB/s in 0.04s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:57 <span class="o">(</span>2.18 MB/s<span class="o">)</span> - ‘Vazir-Black.ttf’ saved <span class="o">[</span>99772/99772<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:57-- https://virgool.io/fonts/vazir/Vazir-Black.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Black.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 97.63K 478KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:58 <span class="o">(</span><span class="m">478</span> KB/s<span class="o">)</span> - ‘Vazir-Black.eot?’ saved <span class="o">[</span>99974<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:58-- https://virgool.io/fonts/vazir/Vazir-Black.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">54652</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Black.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 53.37K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:59 <span class="o">(</span><span class="m">691</span> KB/s<span class="o">)</span> - ‘Vazir-Black.woff’ saved <span class="o">[</span>54652/54652<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:59-- https://virgool.io/fonts/vazir/Vazir-Black.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">43332</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Black.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.32K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:00 <span class="o">(</span><span class="m">510</span> KB/s<span class="o">)</span> - ‘Vazir-Black.woff2’ saved <span class="o">[</span>43332/43332<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:00-- https://virgool.io/fonts/fontawesome/fa-solid-900.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">202616</span> <span class="o">(</span>198K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">fa-solid-900.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 197.87K 501KB/s in 0.4s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:01 <span class="o">(</span><span class="m">501</span> KB/s<span class="o">)</span> - ‘fa-solid-900.ttf’ saved <span class="o">[</span>202616/202616<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:01-- https://virgool.io/fonts/fontawesome/fa-solid-900.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">404</span> Not Found -</span></span><span class="line"><span class="cl">2022-01-18 06:42:01 ERROR 404: Not Found. -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:01-- https://virgool.io/fonts/fontawesome/fa-solid-900.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">103300</span> <span class="o">(</span>101K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">fa-solid-900.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 100.88K 358KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:02 <span class="o">(</span><span class="m">358</span> KB/s<span class="o">)</span> - ‘fa-solid-900.woff’ saved <span class="o">[</span>103300/103300<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:02-- https://virgool.io/fonts/fontawesome/fa-solid-900.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">79444</span> <span class="o">(</span>78K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">fa-solid-900.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 77.58K 394KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:03 <span class="o">(</span><span class="m">394</span> KB/s<span class="o">)</span> - ‘fa-solid-900.woff2’ saved <span class="o">[</span>79444/79444<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:03-- https://virgool.io/images/icons/plus.svg -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>image/svg+xml<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘plus.svg’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">plus.svg <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">942</span> --.-KB/s in 0.002s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:03 <span class="o">(</span><span class="m">383</span> KB/s<span class="o">)</span> - ‘plus.svg’ saved <span class="o">[</span>942<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:03-- https://virgool.io/images/icons/tick.svg -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>image/svg+xml<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘tick.svg’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">tick.svg <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">942</span> --.-KB/s in 0s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:04 <span class="o">(</span>89.8 MB/s<span class="o">)</span> - ‘tick.svg’ saved <span class="o">[</span>942<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:04-- https://virgool.io/images/typewriter.png -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">172558</span> <span class="o">(</span>169K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘typewriter.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">typewriter.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 168.51K 349KB/s in 0.5s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:05 <span class="o">(</span><span class="m">349</span> KB/s<span class="o">)</span> - ‘typewriter.png’ saved <span class="o">[</span>172558/172558<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:05-- https://virgool.test/images/download-audio.png -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:05-- https://virgool.test/images/download-ebook.png -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. -</span></span><span class="line"><span class="cl">FINISHED --2022-01-18 06:42:05-- -</span></span><span class="line"><span class="cl">Total wall clock time: 1m 2s -</span></span><span class="line"><span class="cl">Downloaded: <span class="m">54</span> files, 6.6M in 14s <span class="o">(</span><span class="m">479</span> KB/s<span class="o">)</span> -</span></span><span class="line"><span class="cl">Converting links in ns.html?id<span class="o">=</span>GTM-5GS688K.html... nothing to <span class="k">do</span>. -</span></span><span class="line"><span class="cl">Converting links in c3fVa.html... 38. -</span></span><span class="line"><span class="cl">31-7 -</span></span><span class="line"><span class="cl">Converting links in styles.css?v<span class="o">=</span>v2.6.15.css... 35. -</span></span><span class="line"><span class="cl">34-1 -</span></span><span class="line"><span class="cl">Converted links in <span class="m">3</span> files in 0.06 seconds. -</span></span></code></pre></td></tr></table> -</div> -</div> - - - zsh بهترین پلاگین های - https://bit-orbit.github.io/p/zsh-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C/ - Tue, 11 Jan 2022 02:44:12 +0330 - - https://bit-orbit.github.io/p/zsh-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C/ - <img src="https://bit-orbit.github.io/images/post/terminal.jpg" alt="Featured image of post zsh بهترین پلاگین های " /><p>نوشتن یک برنامه کار سختی نیست، بلکه نگه‌داری و آپدیت یک برنامه‌ست، پلاگین این ویژگی را می‌دهد تا به راحتی عملکرد یک برنامه را بی‌افزاییم.</p> -<hr> -<div dir='rtl' style='font-size:25px'> -<h3 id="themeshttpsgithubcomohmyzshohmyzshtreemasterpluginsthemes-"><a class="link" href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/themes" target="_blank" rel="noopener" - >themes</a> #Ⅳ</h3> -<p>انتخاب +هست رو دانلود می‌کنم.</li> +</ul> +</br> +</div> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt"> 10 +</span><span class="lnt"> 11 +</span><span class="lnt"> 12 +</span><span class="lnt"> 13 +</span><span class="lnt"> 14 +</span><span class="lnt"> 15 +</span><span class="lnt"> 16 +</span><span class="lnt"> 17 +</span><span class="lnt"> 18 +</span><span class="lnt"> 19 +</span><span class="lnt"> 20 +</span><span class="lnt"> 21 +</span><span class="lnt"> 22 +</span><span class="lnt"> 23 +</span><span class="lnt"> 24 +</span><span class="lnt"> 25 +</span><span class="lnt"> 26 +</span><span class="lnt"> 27 +</span><span class="lnt"> 28 +</span><span class="lnt"> 29 +</span><span class="lnt"> 30 +</span><span class="lnt"> 31 +</span><span class="lnt"> 32 +</span><span class="lnt"> 33 +</span><span class="lnt"> 34 +</span><span class="lnt"> 35 +</span><span class="lnt"> 36 +</span><span class="lnt"> 37 +</span><span class="lnt"> 38 +</span><span class="lnt"> 39 +</span><span class="lnt"> 40 +</span><span class="lnt"> 41 +</span><span class="lnt"> 42 +</span><span class="lnt"> 43 +</span><span class="lnt"> 44 +</span><span class="lnt"> 45 +</span><span class="lnt"> 46 +</span><span class="lnt"> 47 +</span><span class="lnt"> 48 +</span><span class="lnt"> 49 +</span><span class="lnt"> 50 +</span><span class="lnt"> 51 +</span><span class="lnt"> 52 +</span><span class="lnt"> 53 +</span><span class="lnt"> 54 +</span><span class="lnt"> 55 +</span><span class="lnt"> 56 +</span><span class="lnt"> 57 +</span><span class="lnt"> 58 +</span><span class="lnt"> 59 +</span><span class="lnt"> 60 +</span><span class="lnt"> 61 +</span><span class="lnt"> 62 +</span><span class="lnt"> 63 +</span><span class="lnt"> 64 +</span><span class="lnt"> 65 +</span><span class="lnt"> 66 +</span><span class="lnt"> 67 +</span><span class="lnt"> 68 +</span><span class="lnt"> 69 +</span><span class="lnt"> 70 +</span><span class="lnt"> 71 +</span><span class="lnt"> 72 +</span><span class="lnt"> 73 +</span><span class="lnt"> 74 +</span><span class="lnt"> 75 +</span><span class="lnt"> 76 +</span><span class="lnt"> 77 +</span><span class="lnt"> 78 +</span><span class="lnt"> 79 +</span><span class="lnt"> 80 +</span><span class="lnt"> 81 +</span><span class="lnt"> 82 +</span><span class="lnt"> 83 +</span><span class="lnt"> 84 +</span><span class="lnt"> 85 +</span><span class="lnt"> 86 +</span><span class="lnt"> 87 +</span><span class="lnt"> 88 +</span><span class="lnt"> 89 +</span><span class="lnt"> 90 +</span><span class="lnt"> 91 +</span><span class="lnt"> 92 +</span><span class="lnt"> 93 +</span><span class="lnt"> 94 +</span><span class="lnt"> 95 +</span><span class="lnt"> 96 +</span><span class="lnt"> 97 +</span><span class="lnt"> 98 +</span><span class="lnt"> 99 +</span><span class="lnt">100 +</span><span class="lnt">101 +</span><span class="lnt">102 +</span><span class="lnt">103 +</span><span class="lnt">104 +</span><span class="lnt">105 +</span><span class="lnt">106 +</span><span class="lnt">107 +</span><span class="lnt">108 +</span><span class="lnt">109 +</span><span class="lnt">110 +</span><span class="lnt">111 +</span><span class="lnt">112 +</span><span class="lnt">113 +</span><span class="lnt">114 +</span><span class="lnt">115 +</span><span class="lnt">116 +</span><span class="lnt">117 +</span><span class="lnt">118 +</span><span class="lnt">119 +</span><span class="lnt">120 +</span><span class="lnt">121 +</span><span class="lnt">122 +</span><span class="lnt">123 +</span><span class="lnt">124 +</span><span class="lnt">125 +</span><span class="lnt">126 +</span><span class="lnt">127 +</span><span class="lnt">128 +</span><span class="lnt">129 +</span><span class="lnt">130 +</span><span class="lnt">131 +</span><span class="lnt">132 +</span><span class="lnt">133 +</span><span class="lnt">134 +</span><span class="lnt">135 +</span><span class="lnt">136 +</span><span class="lnt">137 +</span><span class="lnt">138 +</span><span class="lnt">139 +</span><span class="lnt">140 +</span><span class="lnt">141 +</span><span class="lnt">142 +</span><span class="lnt">143 +</span><span class="lnt">144 +</span><span class="lnt">145 +</span><span class="lnt">146 +</span><span class="lnt">147 +</span><span class="lnt">148 +</span><span class="lnt">149 +</span><span class="lnt">150 +</span><span class="lnt">151 +</span><span class="lnt">152 +</span><span class="lnt">153 +</span><span class="lnt">154 +</span><span class="lnt">155 +</span><span class="lnt">156 +</span><span class="lnt">157 +</span><span class="lnt">158 +</span><span class="lnt">159 +</span><span class="lnt">160 +</span><span class="lnt">161 +</span><span class="lnt">162 +</span><span class="lnt">163 +</span><span class="lnt">164 +</span><span class="lnt">165 +</span><span class="lnt">166 +</span><span class="lnt">167 +</span><span class="lnt">168 +</span><span class="lnt">169 +</span><span class="lnt">170 +</span><span class="lnt">171 +</span><span class="lnt">172 +</span><span class="lnt">173 +</span><span class="lnt">174 +</span><span class="lnt">175 +</span><span class="lnt">176 +</span><span class="lnt">177 +</span><span class="lnt">178 +</span><span class="lnt">179 +</span><span class="lnt">180 +</span><span class="lnt">181 +</span><span class="lnt">182 +</span><span class="lnt">183 +</span><span class="lnt">184 +</span><span class="lnt">185 +</span><span class="lnt">186 +</span><span class="lnt">187 +</span><span class="lnt">188 +</span><span class="lnt">189 +</span><span class="lnt">190 +</span><span class="lnt">191 +</span><span class="lnt">192 +</span><span class="lnt">193 +</span><span class="lnt">194 +</span><span class="lnt">195 +</span><span class="lnt">196 +</span><span class="lnt">197 +</span><span class="lnt">198 +</span><span class="lnt">199 +</span><span class="lnt">200 +</span><span class="lnt">201 +</span><span class="lnt">202 +</span><span class="lnt">203 +</span><span class="lnt">204 +</span><span class="lnt">205 +</span><span class="lnt">206 +</span><span class="lnt">207 +</span><span class="lnt">208 +</span><span class="lnt">209 +</span><span class="lnt">210 +</span><span class="lnt">211 +</span><span class="lnt">212 +</span><span class="lnt">213 +</span><span class="lnt">214 +</span><span class="lnt">215 +</span><span class="lnt">216 +</span><span class="lnt">217 +</span><span class="lnt">218 +</span><span class="lnt">219 +</span><span class="lnt">220 +</span><span class="lnt">221 +</span><span class="lnt">222 +</span><span class="lnt">223 +</span><span class="lnt">224 +</span><span class="lnt">225 +</span><span class="lnt">226 +</span><span class="lnt">227 +</span><span class="lnt">228 +</span><span class="lnt">229 +</span><span class="lnt">230 +</span><span class="lnt">231 +</span><span class="lnt">232 +</span><span class="lnt">233 +</span><span class="lnt">234 +</span><span class="lnt">235 +</span><span class="lnt">236 +</span><span class="lnt">237 +</span><span class="lnt">238 +</span><span class="lnt">239 +</span><span class="lnt">240 +</span><span class="lnt">241 +</span><span class="lnt">242 +</span><span class="lnt">243 +</span><span class="lnt">244 +</span><span class="lnt">245 +</span><span class="lnt">246 +</span><span class="lnt">247 +</span><span class="lnt">248 +</span><span class="lnt">249 +</span><span class="lnt">250 +</span><span class="lnt">251 +</span><span class="lnt">252 +</span><span class="lnt">253 +</span><span class="lnt">254 +</span><span class="lnt">255 +</span><span class="lnt">256 +</span><span class="lnt">257 +</span><span class="lnt">258 +</span><span class="lnt">259 +</span><span class="lnt">260 +</span><span class="lnt">261 +</span><span class="lnt">262 +</span><span class="lnt">263 +</span><span class="lnt">264 +</span><span class="lnt">265 +</span><span class="lnt">266 +</span><span class="lnt">267 +</span><span class="lnt">268 +</span><span class="lnt">269 +</span><span class="lnt">270 +</span><span class="lnt">271 +</span><span class="lnt">272 +</span><span class="lnt">273 +</span><span class="lnt">274 +</span><span class="lnt">275 +</span><span class="lnt">276 +</span><span class="lnt">277 +</span><span class="lnt">278 +</span><span class="lnt">279 +</span><span class="lnt">280 +</span><span class="lnt">281 +</span><span class="lnt">282 +</span><span class="lnt">283 +</span><span class="lnt">284 +</span><span class="lnt">285 +</span><span class="lnt">286 +</span><span class="lnt">287 +</span><span class="lnt">288 +</span><span class="lnt">289 +</span><span class="lnt">290 +</span><span class="lnt">291 +</span><span class="lnt">292 +</span><span class="lnt">293 +</span><span class="lnt">294 +</span><span class="lnt">295 +</span><span class="lnt">296 +</span><span class="lnt">297 +</span><span class="lnt">298 +</span><span class="lnt">299 +</span><span class="lnt">300 +</span><span class="lnt">301 +</span><span class="lnt">302 +</span><span class="lnt">303 +</span><span class="lnt">304 +</span><span class="lnt">305 +</span><span class="lnt">306 +</span><span class="lnt">307 +</span><span class="lnt">308 +</span><span class="lnt">309 +</span><span class="lnt">310 +</span><span class="lnt">311 +</span><span class="lnt">312 +</span><span class="lnt">313 +</span><span class="lnt">314 +</span><span class="lnt">315 +</span><span class="lnt">316 +</span><span class="lnt">317 +</span><span class="lnt">318 +</span><span class="lnt">319 +</span><span class="lnt">320 +</span><span class="lnt">321 +</span><span class="lnt">322 +</span><span class="lnt">323 +</span><span class="lnt">324 +</span><span class="lnt">325 +</span><span class="lnt">326 +</span><span class="lnt">327 +</span><span class="lnt">328 +</span><span class="lnt">329 +</span><span class="lnt">330 +</span><span class="lnt">331 +</span><span class="lnt">332 +</span><span class="lnt">333 +</span><span class="lnt">334 +</span><span class="lnt">335 +</span><span class="lnt">336 +</span><span class="lnt">337 +</span><span class="lnt">338 +</span><span class="lnt">339 +</span><span class="lnt">340 +</span><span class="lnt">341 +</span><span class="lnt">342 +</span><span class="lnt">343 +</span><span class="lnt">344 +</span><span class="lnt">345 +</span><span class="lnt">346 +</span><span class="lnt">347 +</span><span class="lnt">348 +</span><span class="lnt">349 +</span><span class="lnt">350 +</span><span class="lnt">351 +</span><span class="lnt">352 +</span><span class="lnt">353 +</span><span class="lnt">354 +</span><span class="lnt">355 +</span><span class="lnt">356 +</span><span class="lnt">357 +</span><span class="lnt">358 +</span><span class="lnt">359 +</span><span class="lnt">360 +</span><span class="lnt">361 +</span><span class="lnt">362 +</span><span class="lnt">363 +</span><span class="lnt">364 +</span><span class="lnt">365 +</span><span class="lnt">366 +</span><span class="lnt">367 +</span><span class="lnt">368 +</span><span class="lnt">369 +</span><span class="lnt">370 +</span><span class="lnt">371 +</span><span class="lnt">372 +</span><span class="lnt">373 +</span><span class="lnt">374 +</span><span class="lnt">375 +</span><span class="lnt">376 +</span><span class="lnt">377 +</span><span class="lnt">378 +</span><span class="lnt">379 +</span><span class="lnt">380 +</span><span class="lnt">381 +</span><span class="lnt">382 +</span><span class="lnt">383 +</span><span class="lnt">384 +</span><span class="lnt">385 +</span><span class="lnt">386 +</span><span class="lnt">387 +</span><span class="lnt">388 +</span><span class="lnt">389 +</span><span class="lnt">390 +</span><span class="lnt">391 +</span><span class="lnt">392 +</span><span class="lnt">393 +</span><span class="lnt">394 +</span><span class="lnt">395 +</span><span class="lnt">396 +</span><span class="lnt">397 +</span><span class="lnt">398 +</span><span class="lnt">399 +</span><span class="lnt">400 +</span><span class="lnt">401 +</span><span class="lnt">402 +</span><span class="lnt">403 +</span><span class="lnt">404 +</span><span class="lnt">405 +</span><span class="lnt">406 +</span><span class="lnt">407 +</span><span class="lnt">408 +</span><span class="lnt">409 +</span><span class="lnt">410 +</span><span class="lnt">411 +</span><span class="lnt">412 +</span><span class="lnt">413 +</span><span class="lnt">414 +</span><span class="lnt">415 +</span><span class="lnt">416 +</span><span class="lnt">417 +</span><span class="lnt">418 +</span><span class="lnt">419 +</span><span class="lnt">420 +</span><span class="lnt">421 +</span><span class="lnt">422 +</span><span class="lnt">423 +</span><span class="lnt">424 +</span><span class="lnt">425 +</span><span class="lnt">426 +</span><span class="lnt">427 +</span><span class="lnt">428 +</span><span class="lnt">429 +</span><span class="lnt">430 +</span><span class="lnt">431 +</span><span class="lnt">432 +</span><span class="lnt">433 +</span><span class="lnt">434 +</span><span class="lnt">435 +</span><span class="lnt">436 +</span><span class="lnt">437 +</span><span class="lnt">438 +</span><span class="lnt">439 +</span><span class="lnt">440 +</span><span class="lnt">441 +</span><span class="lnt">442 +</span><span class="lnt">443 +</span><span class="lnt">444 +</span><span class="lnt">445 +</span><span class="lnt">446 +</span><span class="lnt">447 +</span><span class="lnt">448 +</span><span class="lnt">449 +</span><span class="lnt">450 +</span><span class="lnt">451 +</span><span class="lnt">452 +</span><span class="lnt">453 +</span><span class="lnt">454 +</span><span class="lnt">455 +</span><span class="lnt">456 +</span><span class="lnt">457 +</span><span class="lnt">458 +</span><span class="lnt">459 +</span><span class="lnt">460 +</span><span class="lnt">461 +</span><span class="lnt">462 +</span><span class="lnt">463 +</span><span class="lnt">464 +</span><span class="lnt">465 +</span><span class="lnt">466 +</span><span class="lnt">467 +</span><span class="lnt">468 +</span><span class="lnt">469 +</span><span class="lnt">470 +</span><span class="lnt">471 +</span><span class="lnt">472 +</span><span class="lnt">473 +</span><span class="lnt">474 +</span><span class="lnt">475 +</span><span class="lnt">476 +</span><span class="lnt">477 +</span><span class="lnt">478 +</span><span class="lnt">479 +</span><span class="lnt">480 +</span><span class="lnt">481 +</span><span class="lnt">482 +</span><span class="lnt">483 +</span><span class="lnt">484 +</span><span class="lnt">485 +</span><span class="lnt">486 +</span><span class="lnt">487 +</span><span class="lnt">488 +</span><span class="lnt">489 +</span><span class="lnt">490 +</span><span class="lnt">491 +</span><span class="lnt">492 +</span><span class="lnt">493 +</span><span class="lnt">494 +</span><span class="lnt">495 +</span><span class="lnt">496 +</span><span class="lnt">497 +</span><span class="lnt">498 +</span><span class="lnt">499 +</span><span class="lnt">500 +</span><span class="lnt">501 +</span><span class="lnt">502 +</span><span class="lnt">503 +</span><span class="lnt">504 +</span><span class="lnt">505 +</span><span class="lnt">506 +</span><span class="lnt">507 +</span><span class="lnt">508 +</span><span class="lnt">509 +</span><span class="lnt">510 +</span><span class="lnt">511 +</span><span class="lnt">512 +</span><span class="lnt">513 +</span><span class="lnt">514 +</span><span class="lnt">515 +</span><span class="lnt">516 +</span><span class="lnt">517 +</span><span class="lnt">518 +</span><span class="lnt">519 +</span><span class="lnt">520 +</span><span class="lnt">521 +</span><span class="lnt">522 +</span><span class="lnt">523 +</span><span class="lnt">524 +</span><span class="lnt">525 +</span><span class="lnt">526 +</span><span class="lnt">527 +</span><span class="lnt">528 +</span><span class="lnt">529 +</span><span class="lnt">530 +</span><span class="lnt">531 +</span><span class="lnt">532 +</span><span class="lnt">533 +</span><span class="lnt">534 +</span><span class="lnt">535 +</span><span class="lnt">536 +</span><span class="lnt">537 +</span><span class="lnt">538 +</span><span class="lnt">539 +</span><span class="lnt">540 +</span><span class="lnt">541 +</span><span class="lnt">542 +</span><span class="lnt">543 +</span><span class="lnt">544 +</span><span class="lnt">545 +</span><span class="lnt">546 +</span><span class="lnt">547 +</span><span class="lnt">548 +</span><span class="lnt">549 +</span><span class="lnt">550 +</span><span class="lnt">551 +</span><span class="lnt">552 +</span><span class="lnt">553 +</span><span class="lnt">554 +</span><span class="lnt">555 +</span><span class="lnt">556 +</span><span class="lnt">557 +</span><span class="lnt">558 +</span><span class="lnt">559 +</span><span class="lnt">560 +</span><span class="lnt">561 +</span><span class="lnt">562 +</span><span class="lnt">563 +</span><span class="lnt">564 +</span><span class="lnt">565 +</span><span class="lnt">566 +</span><span class="lnt">567 +</span><span class="lnt">568 +</span><span class="lnt">569 +</span><span class="lnt">570 +</span><span class="lnt">571 +</span><span class="lnt">572 +</span><span class="lnt">573 +</span><span class="lnt">574 +</span><span class="lnt">575 +</span><span class="lnt">576 +</span><span class="lnt">577 +</span><span class="lnt">578 +</span><span class="lnt">579 +</span><span class="lnt">580 +</span><span class="lnt">581 +</span><span class="lnt">582 +</span><span class="lnt">583 +</span><span class="lnt">584 +</span><span class="lnt">585 +</span><span class="lnt">586 +</span><span class="lnt">587 +</span><span class="lnt">588 +</span><span class="lnt">589 +</span><span class="lnt">590 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">┌─<span class="o">[</span>loading<span class="o">]</span> <span class="o">[</span>/tmp/virgool<span class="o">]</span> <span class="o">[</span>0<span class="o">]</span> +</span></span><span class="line"><span class="cl">│ +</span></span><span class="line"><span class="cl">└──〉wget -nd -E -p -k -H https://vrgl.ir/c3fVa +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:03-- https://vrgl.ir/c3fVa +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">302</span> Found +</span></span><span class="line"><span class="cl">Location: https://virgool.io/@Novo/rsa-encryption-ao1poasym4cf <span class="o">[</span>following<span class="o">]</span> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:04-- https://virgool.io/@Novo/rsa-encryption-ao1poasym4cf +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/html<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘c3fVa.html’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">c3fVa.html <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 61.30K 200KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:06 <span class="o">(</span><span class="m">200</span> KB/s<span class="o">)</span> - ‘c3fVa.html’ saved <span class="o">[</span>62773<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:06-- https://virgool.io/robots.txt +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>document<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘robots.txt’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">robots.txt <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">484</span> --.-KB/s in 0s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:07 <span class="o">(</span>85.7 MB/s<span class="o">)</span> - ‘robots.txt’ saved <span class="o">[</span>484<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:07-- https://www.googletagmanager.com/robots.txt +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">404</span> Not Found +</span></span><span class="line"><span class="cl">2022-01-18 06:41:08 ERROR 404: Not Found. +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:08-- https://files.virgool.io/robots.txt +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">403</span> Forbidden +</span></span><span class="line"><span class="cl">2022-01-18 06:41:09 ERROR 403: Forbidden. +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:09-- https://static.cloudflareinsights.com/robots.txt +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">522</span> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:26 ERROR 522: <span class="o">(</span>no description<span class="o">)</span>. +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:26-- https://virgool.io/images/favicon.png?v<span class="o">=</span>v2.6.15 +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">9855</span> <span class="o">(</span>9.6K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘favicon.png?v<span class="o">=</span>v2.6.15’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">favicon.png?v<span class="o">=</span>v2.6.15 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 9.62K --.-KB/s in 0.07s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:27 <span class="o">(</span><span class="m">130</span> KB/s<span class="o">)</span> - ‘favicon.png?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>9855/9855<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:27-- https://virgool.io/css/styles.css?v<span class="o">=</span>v2.6.15 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/css<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘styles.css?v<span class="o">=</span>v2.6.15.css’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">styles.css?v<span class="o">=</span>v2.6.15.css <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 903.60K 592KB/s in 1.5s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:28 <span class="o">(</span><span class="m">592</span> KB/s<span class="o">)</span> - ‘styles.css?v<span class="o">=</span>v2.6.15.css’ saved <span class="o">[</span>925284<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:28-- https://virgool.test/robots.txt +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:28-- https://www.googletagmanager.com/ns.html?id<span class="o">=</span>GTM-5GS688K +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/html<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘ns.html?id<span class="o">=</span>GTM-5GS688K.html’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">ns.html?id<span class="o">=</span>GTM-5GS688K.html <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">266</span> --.-KB/s in 0s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:29 <span class="o">(</span>29.4 MB/s<span class="o">)</span> - ‘ns.html?id<span class="o">=</span>GTM-5GS688K.html’ saved <span class="o">[</span>266<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:29-- https://files.virgool.io/upload/users/31434/avatar/1C4LLE.png?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">39194</span> <span class="o">(</span>38K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_ 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 38.28K 173KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:30 <span class="o">(</span><span class="m">173</span> KB/s<span class="o">)</span> - ‘1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>39194/39194<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:30-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/qhokakomwyb5.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">179870</span> <span class="o">(</span>176K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘qhokakomwyb5.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">qhokakomwyb5.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 175.65K 567KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">567</span> KB/s<span class="o">)</span> - ‘qhokakomwyb5.png’ saved <span class="o">[</span>179870/179870<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/v1xnwpnewfys.webp +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">12770</span> <span class="o">(</span>12K<span class="o">)</span> <span class="o">[</span>image/webp<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘v1xnwpnewfys.webp’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">v1xnwpnewfys.webp 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 12.47K --.-KB/s in 0.07s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">180</span> KB/s<span class="o">)</span> - ‘v1xnwpnewfys.webp’ saved <span class="o">[</span>12770/12770<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/d28hpu2detkl.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">92847</span> <span class="o">(</span>91K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘d28hpu2detkl.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">d28hpu2detkl.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 90.67K --.-KB/s in 0.09s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">969</span> KB/s<span class="o">)</span> - ‘d28hpu2detkl.png’ saved <span class="o">[</span>92847/92847<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/rhyykrc8azq0.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">17539</span> <span class="o">(</span>17K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘rhyykrc8azq0.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">rhyykrc8azq0.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 17.13K --.-KB/s in 0.007s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>2.47 MB/s<span class="o">)</span> - ‘rhyykrc8azq0.png’ saved <span class="o">[</span>17539/17539<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/fjtc1ydzkuse.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">108524</span> <span class="o">(</span>106K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘fjtc1ydzkuse.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">fjtc1ydzkuse.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 105.98K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>1.06 MB/s<span class="o">)</span> - ‘fjtc1ydzkuse.png’ saved <span class="o">[</span>108524/108524<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/gfqhgyp18oic.jpeg +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">132085</span> <span class="o">(</span>129K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘gfqhgyp18oic.jpeg’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">gfqhgyp18oic.jpeg 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 128.99K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>1.28 MB/s<span class="o">)</span> - ‘gfqhgyp18oic.jpeg’ saved <span class="o">[</span>132085/132085<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/me0mpjtdmyom.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">113489</span> <span class="o">(</span>111K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘me0mpjtdmyom.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">me0mpjtdmyom.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 110.83K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span><span class="m">814</span> KB/s<span class="o">)</span> - ‘me0mpjtdmyom.png’ saved <span class="o">[</span>113489/113489<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/of7krju6oqzk.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">105746</span> <span class="o">(</span>103K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘of7krju6oqzk.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">of7krju6oqzk.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 103.27K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span>1.25 MB/s<span class="o">)</span> - ‘of7krju6oqzk.png’ saved <span class="o">[</span>105746/105746<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/oqwhflg4gbnq.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">120994</span> <span class="o">(</span>118K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘oqwhflg4gbnq.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">oqwhflg4gbnq.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 118.16K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span>1.14 MB/s<span class="o">)</span> - ‘oqwhflg4gbnq.png’ saved <span class="o">[</span>120994/120994<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/taqjnfnuzxcx.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">122678</span> <span class="o">(</span>120K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘taqjnfnuzxcx.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">taqjnfnuzxcx.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 119.80K --.-KB/s in 0.06s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span>2.00 MB/s<span class="o">)</span> - ‘taqjnfnuzxcx.png’ saved <span class="o">[</span>122678/122678<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/63/posts/qwqrubplfaau/g8vai2incgna.jpeg?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">88292</span> <span class="o">(</span>86K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fre 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 86.22K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span><span class="m">824</span> KB/s<span class="o">)</span> - ‘g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>88292/88292<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/63/avatar/o8jiNe.png?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">32037</span> <span class="o">(</span>31K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_ 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 31.29K --.-KB/s in 0.06s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span><span class="m">558</span> KB/s<span class="o">)</span> - ‘o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>32037/32037<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/31434/posts/e3oydlcfkr5e/figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">30356</span> <span class="o">(</span>30K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fre 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 29.64K --.-KB/s in 0.07s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span><span class="m">401</span> KB/s<span class="o">)</span> - ‘figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>30356/30356<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://files.virgool.io/upload/users/316150/posts/r8rhw88uh1xh/cs1ugyelv3zw.png?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">34459</span> <span class="o">(</span>34K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fres 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 33.65K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span><span class="m">399</span> KB/s<span class="o">)</span> - ‘cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>34459/34459<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://files.virgool.io/upload/users/316150/avatar/8sz7Rs.jpeg?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">14764</span> <span class="o">(</span>14K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 14.42K --.-KB/s in 0.007s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span>2.11 MB/s<span class="o">)</span> - ‘8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>14764/14764<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://virgool.io/js/commons.js?v<span class="o">=</span>v2.6.15 +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/javascript<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘commons.js?v<span class="o">=</span>v2.6.15’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">commons.js?v<span class="o">=</span>v2.6.15 <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 997.55K 337KB/s in 3.0s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:39 <span class="o">(</span><span class="m">337</span> KB/s<span class="o">)</span> - ‘commons.js?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>1021492<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:39-- https://virgool.io/js/main.js?v<span class="o">=</span>v2.6.15 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/javascript<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘main.js?v<span class="o">=</span>v2.6.15’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">main.js?v<span class="o">=</span>v2.6.15 <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 1.21M 580KB/s in 2.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:41 <span class="o">(</span><span class="m">580</span> KB/s<span class="o">)</span> - ‘main.js?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>1267632<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:41-- https://static.cloudflareinsights.com/beacon.min.js/v652eace1692a40cfa3763df669d7439c1639079717194 +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">13970</span> <span class="o">(</span>14K<span class="o">)</span> <span class="o">[</span>text/javascript<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘v652eace1692a40cfa3763df669d7439c1639079717194’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">v652eace1692a40cfa3763df669d743 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 13.64K --.-KB/s in 0.02s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:42 <span class="o">(</span><span class="m">600</span> KB/s<span class="o">)</span> - ‘v652eace1692a40cfa3763df669d7439c1639079717194’ saved <span class="o">[</span>13970/13970<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:42-- https://virgool.io/fonts/vazir/Vazir-Thin.ttf +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">98924</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Thin.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.61K 140KB/s in 0.7s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:43 <span class="o">(</span><span class="m">140</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.ttf’ saved <span class="o">[</span>98924/98924<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:43-- https://virgool.io/fonts/vazir/Vazir-Thin.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Thin.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.80K 276KB/s in 0.4s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:44 <span class="o">(</span><span class="m">276</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.eot?’ saved <span class="o">[</span>99120<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:44-- https://virgool.io/fonts/vazir/Vazir-Thin.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">54068</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Thin.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.80K --.-KB/s in 0.07s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:45 <span class="o">(</span><span class="m">770</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.woff’ saved <span class="o">[</span>54068/54068<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:45-- https://virgool.io/fonts/vazir/Vazir-Thin.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">43000</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Thin.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 41.99K --.-KB/s in 0.006s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:46 <span class="o">(</span>6.59 MB/s<span class="o">)</span> - ‘Vazir-Thin.woff2’ saved <span class="o">[</span>43000/43000<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:46-- https://virgool.io/fonts/vazir/Vazir-Light.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">105360</span> <span class="o">(</span>103K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Light.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 102.89K 478KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:46 <span class="o">(</span><span class="m">478</span> KB/s<span class="o">)</span> - ‘Vazir-Light.ttf’ saved <span class="o">[</span>105360/105360<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:46-- https://virgool.io/fonts/vazir/Vazir-Light.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Light.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 103.09K 470KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:47 <span class="o">(</span><span class="m">470</span> KB/s<span class="o">)</span> - ‘Vazir-Light.eot?’ saved <span class="o">[</span>105562<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:47-- https://virgool.io/fonts/vazir/Vazir-Light.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">59688</span> <span class="o">(</span>58K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Light.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 58.29K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:48 <span class="o">(</span><span class="m">758</span> KB/s<span class="o">)</span> - ‘Vazir-Light.woff’ saved <span class="o">[</span>59688/59688<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:48-- https://virgool.io/fonts/vazir/Vazir-Light.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">48168</span> <span class="o">(</span>47K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Light.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 47.04K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:48 <span class="o">(</span><span class="m">570</span> KB/s<span class="o">)</span> - ‘Vazir-Light.woff2’ saved <span class="o">[</span>48168/48168<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:48-- https://virgool.io/fonts/vazir/Vazir-Regular.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">98376</span> <span class="o">(</span>96K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Regular.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.07K 435KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:49 <span class="o">(</span><span class="m">435</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.ttf’ saved <span class="o">[</span>98376/98376<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:49-- https://virgool.io/fonts/vazir/Vazir-Regular.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Regular.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.26K 285KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:50 <span class="o">(</span><span class="m">285</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.eot?’ saved <span class="o">[</span>98574<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:50-- https://virgool.io/fonts/vazir/Vazir-Regular.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">53744</span> <span class="o">(</span>52K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Regular.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.48K --.-KB/s in 0.05s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:51 <span class="o">(</span>1.10 MB/s<span class="o">)</span> - ‘Vazir-Regular.woff’ saved <span class="o">[</span>53744/53744<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:51-- https://virgool.io/fonts/vazir/Vazir-Regular.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">42744</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Regular.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 41.74K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:51 <span class="o">(</span><span class="m">412</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.woff2’ saved <span class="o">[</span>42744/42744<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:51-- https://virgool.io/fonts/vazir/Vazir-Medium.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">98892</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Medium.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.57K 606KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:52 <span class="o">(</span><span class="m">606</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.ttf’ saved <span class="o">[</span>98892/98892<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:52-- https://virgool.io/fonts/vazir/Vazir-Medium.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Medium.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.78K 347KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:53 <span class="o">(</span><span class="m">347</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.eot?’ saved <span class="o">[</span>99100<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:53-- https://virgool.io/fonts/vazir/Vazir-Medium.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">54120</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Medium.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.85K 125KB/s in 0.4s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:54 <span class="o">(</span><span class="m">125</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.woff’ saved <span class="o">[</span>54120/54120<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:54-- https://virgool.io/fonts/vazir/Vazir-Medium.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">43152</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Medium.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.14K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:54 <span class="o">(</span><span class="m">541</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.woff2’ saved <span class="o">[</span>43152/43152<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:54-- https://virgool.io/fonts/vazir/Vazir-Bold.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">99840</span> <span class="o">(</span>98K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Bold.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 97.50K --.-KB/s in 0.04s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:55 <span class="o">(</span>2.61 MB/s<span class="o">)</span> - ‘Vazir-Bold.ttf’ saved <span class="o">[</span>99840/99840<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:55-- https://virgool.io/fonts/vazir/Vazir-Bold.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Bold.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 97.68K 560KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:56 <span class="o">(</span><span class="m">560</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.eot?’ saved <span class="o">[</span>100026<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:56-- https://virgool.io/fonts/vazir/Vazir-Bold.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">54560</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Bold.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 53.28K --.-KB/s in 0.06s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:56 <span class="o">(</span><span class="m">917</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.woff’ saved <span class="o">[</span>54560/54560<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:56-- https://virgool.io/fonts/vazir/Vazir-Bold.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">43604</span> <span class="o">(</span>43K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Bold.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.58K --.-KB/s in 0.06s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:57 <span class="o">(</span><span class="m">657</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.woff2’ saved <span class="o">[</span>43604/43604<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:57-- https://virgool.io/fonts/vazir/Vazir-Black.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">99772</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Black.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 97.43K --.-KB/s in 0.04s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:57 <span class="o">(</span>2.18 MB/s<span class="o">)</span> - ‘Vazir-Black.ttf’ saved <span class="o">[</span>99772/99772<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:57-- https://virgool.io/fonts/vazir/Vazir-Black.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Black.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 97.63K 478KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:58 <span class="o">(</span><span class="m">478</span> KB/s<span class="o">)</span> - ‘Vazir-Black.eot?’ saved <span class="o">[</span>99974<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:58-- https://virgool.io/fonts/vazir/Vazir-Black.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">54652</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Black.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 53.37K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:59 <span class="o">(</span><span class="m">691</span> KB/s<span class="o">)</span> - ‘Vazir-Black.woff’ saved <span class="o">[</span>54652/54652<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:59-- https://virgool.io/fonts/vazir/Vazir-Black.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">43332</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Black.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.32K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:00 <span class="o">(</span><span class="m">510</span> KB/s<span class="o">)</span> - ‘Vazir-Black.woff2’ saved <span class="o">[</span>43332/43332<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:00-- https://virgool.io/fonts/fontawesome/fa-solid-900.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">202616</span> <span class="o">(</span>198K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">fa-solid-900.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 197.87K 501KB/s in 0.4s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:01 <span class="o">(</span><span class="m">501</span> KB/s<span class="o">)</span> - ‘fa-solid-900.ttf’ saved <span class="o">[</span>202616/202616<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:01-- https://virgool.io/fonts/fontawesome/fa-solid-900.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">404</span> Not Found +</span></span><span class="line"><span class="cl">2022-01-18 06:42:01 ERROR 404: Not Found. +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:01-- https://virgool.io/fonts/fontawesome/fa-solid-900.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">103300</span> <span class="o">(</span>101K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">fa-solid-900.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 100.88K 358KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:02 <span class="o">(</span><span class="m">358</span> KB/s<span class="o">)</span> - ‘fa-solid-900.woff’ saved <span class="o">[</span>103300/103300<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:02-- https://virgool.io/fonts/fontawesome/fa-solid-900.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">79444</span> <span class="o">(</span>78K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">fa-solid-900.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 77.58K 394KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:03 <span class="o">(</span><span class="m">394</span> KB/s<span class="o">)</span> - ‘fa-solid-900.woff2’ saved <span class="o">[</span>79444/79444<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:03-- https://virgool.io/images/icons/plus.svg +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>image/svg+xml<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘plus.svg’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">plus.svg <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">942</span> --.-KB/s in 0.002s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:03 <span class="o">(</span><span class="m">383</span> KB/s<span class="o">)</span> - ‘plus.svg’ saved <span class="o">[</span>942<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:03-- https://virgool.io/images/icons/tick.svg +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>image/svg+xml<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘tick.svg’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">tick.svg <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">942</span> --.-KB/s in 0s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:04 <span class="o">(</span>89.8 MB/s<span class="o">)</span> - ‘tick.svg’ saved <span class="o">[</span>942<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:04-- https://virgool.io/images/typewriter.png +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">172558</span> <span class="o">(</span>169K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘typewriter.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">typewriter.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 168.51K 349KB/s in 0.5s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:05 <span class="o">(</span><span class="m">349</span> KB/s<span class="o">)</span> - ‘typewriter.png’ saved <span class="o">[</span>172558/172558<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:05-- https://virgool.test/images/download-audio.png +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:05-- https://virgool.test/images/download-ebook.png +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. +</span></span><span class="line"><span class="cl">FINISHED --2022-01-18 06:42:05-- +</span></span><span class="line"><span class="cl">Total wall clock time: 1m 2s +</span></span><span class="line"><span class="cl">Downloaded: <span class="m">54</span> files, 6.6M in 14s <span class="o">(</span><span class="m">479</span> KB/s<span class="o">)</span> +</span></span><span class="line"><span class="cl">Converting links in ns.html?id<span class="o">=</span>GTM-5GS688K.html... nothing to <span class="k">do</span>. +</span></span><span class="line"><span class="cl">Converting links in c3fVa.html... 38. +</span></span><span class="line"><span class="cl">31-7 +</span></span><span class="line"><span class="cl">Converting links in styles.css?v<span class="o">=</span>v2.6.15.css... 35. +</span></span><span class="line"><span class="cl">34-1 +</span></span><span class="line"><span class="cl">Converted links in <span class="m">3</span> files in 0.06 seconds. +</span></span></code></pre></td></tr></table> +</div> +</div> zsh بهترین پلاگین هایhttps://bit-orbit.github.io/p/zsh-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C/Tue, 11 Jan 2022 02:44:12 +0330https://bit-orbit.github.io/p/zsh-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C/<img src="https://bit-orbit.github.io/images/post/terminal.jpg" alt="Featured image of post zsh بهترین پلاگین های " /><p>نوشتن یک برنامه کار سختی نیست، بلکه نگه‌داری و آپدیت یک برنامه‌ست، پلاگین این ویژگی را می‌دهد تا به راحتی عملکرد یک برنامه را بی‌افزاییم.</p> +<hr> +<div dir='rtl' style='font-size:25px'> +<h3 id="themeshttpsgithubcomohmyzshohmyzshtreemasterpluginsthemes-"><a class="link" href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/themes" target="_blank" rel="noopener" +>themes</a> #Ⅳ +</h3><p>انتخاب بین تم های zsh واقعا کار سختیه!‌ هر تم ظاهر جدیدی به ترمینال شما می‌دهد که -کار کردن در ترمینال را جذاب تر می‌کند.</p> -<p>با استفاده از این پلاگین شما بدون نیاز به تغییر دستی فایل کانفیگ -<code>zshrc.</code>، -می‌توانید تم را تغییر بدین.</p> -<p><img src="https://bit-orbit.github.io/images/post/theme.gif" - - - - loading="lazy" - - alt="theme-plugin" - - -></p> -<blockquote> -<ul> -<li>تغییر به یک تم مشخص</li> -</ul> -<p><code>theme theme_name</code></p> -</blockquote> -<blockquote> -<ul> -<li>تغییر رندم تم</li> -</ul> -<p><code>theme</code></p> -</blockquote> -<blockquote> -<ul> -<li>دیدن لیستی از تم های نصب شده</li> -</ul> -<p><code>lstheme</code></p> -</blockquote> -<hr> -<h3 id="zsh-autosuggestionshttpsgithubcomzsh-userszsh-autosuggestions-"><a class="link" href="https://github.com/zsh-users/zsh-autosuggestions" target="_blank" rel="noopener" - >zsh-autosuggestions</a> #Ⅲ</h3> -<blockquote> -<p><a class="link" href="https://github.com/zsh-users/zsh-autosuggestions" target="_blank" rel="noopener" - >تنها پلاگینی که باید نصب بشه</a></p> -</blockquote> -<p>این یکی از پلاگین هایی است که بدون آن زندگی ممکن نیست!</p> -<p>همانطور که شما دستوری را تایپ می‌کنید، متنی به رنگ خاکستری ظاهر می‌شود که +کار کردن در ترمینال را جذاب تر می‌کند.</p> +<p>با استفاده از این پلاگین شما بدون نیاز به تغییر دستی فایل کانفیگ +<code>zshrc.</code>، +می‌توانید تم را تغییر بدین.</p> +<p><img src="https://bit-orbit.github.io/images/post/theme.gif" +loading="lazy" +alt="theme-plugin" +></p> +<blockquote> +<ul> +<li>تغییر به یک تم مشخص</li> +</ul> +<p><code>theme theme_name</code></p> +</blockquote> +<blockquote> +<ul> +<li>تغییر رندم تم</li> +</ul> +<p><code>theme</code></p> +</blockquote> +<blockquote> +<ul> +<li>دیدن لیستی از تم های نصب شده</li> +</ul> +<p><code>lstheme</code></p> +</blockquote> +<hr> +<h3 id="zsh-autosuggestionshttpsgithubcomzsh-userszsh-autosuggestions-"><a class="link" href="https://github.com/zsh-users/zsh-autosuggestions" target="_blank" rel="noopener" +>zsh-autosuggestions</a> #Ⅲ +</h3><blockquote> +<p><a class="link" href="https://github.com/zsh-users/zsh-autosuggestions" target="_blank" rel="noopener" +>تنها پلاگینی که باید نصب بشه</a></p> +</blockquote> +<p>این یکی از پلاگین هایی است که بدون آن زندگی ممکن نیست!</p> +<p>همانطور که شما دستوری را تایپ می‌کنید، متنی به رنگ خاکستری ظاهر می‌شود که به شما دستورات ممکن را پیشنهاد می‌دهد و یا از history دستور مشابه که قبلا اجرا کرده‌اید را جست و جو می‌کند و پیشنهاد می‌هد. و خب شما را برای تایپ کردن کامل دستور و سوییچ هایش راحت می‌کند. برای اینکه دستور ظاهر شده تایپ شود کافیست کلید -<code>right arrow key</code> +<code>right arrow key</code> یا همان -<code>فلش سمت راست</code> -را فشار دهید.</p> -<p><img src="https://bit-orbit.github.io/images/post/zsh-autosuggestions-gif.gif" - - - - loading="lazy" - - alt="zsh-autosuggestion" - - -></p> -<hr> -<h3 id="sudohttpsgithubcomohmyzshohmyzshtreemasterpluginssudo-"><a class="link" href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/sudo" target="_blank" rel="noopener" - >sudo</a> #Ⅱ</h3> -<p>بار ها اتفاق افتاده دستوری را که نیاز به دسترسی +<code>فلش سمت راست</code> +را فشار دهید.</p> +<p><img src="https://bit-orbit.github.io/images/post/zsh-autosuggestions-gif.gif" +loading="lazy" +alt="zsh-autosuggestion" +></p> +<hr> +<h3 id="sudohttpsgithubcomohmyzshohmyzshtreemasterpluginssudo-"><a class="link" href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/sudo" target="_blank" rel="noopener" +>sudo</a> #Ⅱ +</h3><p>بار ها اتفاق افتاده دستوری را که نیاز به دسترسی root داشته را بدون نوشتن کلمه -<em>sudo</em> +<em>sudo</em> اجرا کرده‌ام، و بعد از دیدن ارور، دستور را دوباره تایپ کردم و کلمه -<em>sudo</em> +<em>sudo</em> را هم به اول دستور اضافه کردم. اما این پلاگین بار تایپ مجدد یک دستور بخاطر فراموش کردن کلمه -<em>sudo</em> +<em>sudo</em> را از دوش ما بر‌ می‌دارد. کافیست بعد از نوشتن و اجرای دستور بدون -<em>sudo</em>، +<em>sudo</em>، دوبار کلید -<code>esc</code> -را بزنید</p> -<p><img src="https://bit-orbit.github.io/images/post/sudo.gif" - - - - loading="lazy" - - alt="zsh-sudo-theme" - - -></p> -<hr> -<h3 id="web-searchhttpsgithubcomohmyzshohmyzshtreemasterpluginsweb-search-"><a class="link" href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/web-search" target="_blank" rel="noopener" - >web-search</a> #Ⅰ</h3> -<p>وقتی با لینوکس کار می‌‌کنید، تمام لحظه ها در ترمینال هستنید. +<code>esc</code> +را بزنید</p> +<p><img src="https://bit-orbit.github.io/images/post/sudo.gif" +loading="lazy" +alt="zsh-sudo-theme" +></p> +<hr> +<h3 id="web-searchhttpsgithubcomohmyzshohmyzshtreemasterpluginsweb-search-"><a class="link" href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/web-search" target="_blank" rel="noopener" +>web-search</a> #Ⅰ +</h3><p>وقتی با لینوکس کار می‌‌کنید، تمام لحظه ها در ترمینال هستنید. فرض کنید سوالی دارید که باید آن را گوگل کنید،‌ شما مجبور می‌شوید مرورگر را باز کنید، یک تب جدید ایجاد کنید و متنتان را سرچ کنید. ولی به این فکر کنید که نیازی به باز کردن مرورگر و یا سوییچ کردن بین ویندوز ها ندارید، @@ -1823,78 +1713,67 @@ root google را در ترمینال تایپ کنید و متن خود را جلو آن بنوسید و در آخر دکمه اینتر را بزنید! -بنگ! گوگل باز می‌شود و حاصل جست و جوی شما آماده است.</p> -<p><img src="https://bit-orbit.github.io/images/post/web-search.gif" - - - - loading="lazy" - - alt="web-search" - - -></p> -</div> -<table> - <thead> - <tr> - <th style="text-align: center">دستور\موتور جست و جو</th> - </tr> - </thead> - <tbody> - <tr> - <td style="text-align: center"><code>bing</code></td> - </tr> - <tr> - <td style="text-align: center"><code>google</code></td> - </tr> - <tr> - <td style="text-align: center"><code>yahoo</code></td> - </tr> - <tr> - <td style="text-align: center"><code>ddg</code> or <code>duckduckgo</code></td> - </tr> - <tr> - <td style="text-align: center"><code>sp</code> or <code>startpage</code></td> - </tr> - <tr> - <td style="text-align: center"><code>yandex</code></td> - </tr> - <tr> - <td style="text-align: center"><code>github</code></td> - </tr> - <tr> - <td style="text-align: center"><code>baidu</code></td> - </tr> - <tr> - <td style="text-align: center"><code>ecosia</code></td> - </tr> - <tr> - <td style="text-align: center"><code>goodreads</code></td> - </tr> - <tr> - <td style="text-align: center"><code>qwant</code></td> - </tr> - <tr> - <td style="text-align: center"><code>givero</code></td> - </tr> - <tr> - <td style="text-align: center"><code>stackoverflow</code></td> - </tr> - <tr> - <td style="text-align: center"><code>wolframalpha</code></td> - </tr> - <tr> - <td style="text-align: center"><code>archive</code></td> - </tr> - <tr> - <td style="text-align: center"><code>scholar</code></td> - </tr> - </tbody> -</table> -<hr> - - - - - +بنگ! گوگل باز می‌شود و حاصل جست و جوی شما آماده است.</p> +<p><img src="https://bit-orbit.github.io/images/post/web-search.gif" +loading="lazy" +alt="web-search" +></p> +</div> +<table> +<thead> +<tr> +<th style="text-align: center">دستور\موتور جست و جو</th> +</tr> +</thead> +<tbody> +<tr> +<td style="text-align: center"><code>bing</code></td> +</tr> +<tr> +<td style="text-align: center"><code>google</code></td> +</tr> +<tr> +<td style="text-align: center"><code>yahoo</code></td> +</tr> +<tr> +<td style="text-align: center"><code>ddg</code> or <code>duckduckgo</code></td> +</tr> +<tr> +<td style="text-align: center"><code>sp</code> or <code>startpage</code></td> +</tr> +<tr> +<td style="text-align: center"><code>yandex</code></td> +</tr> +<tr> +<td style="text-align: center"><code>github</code></td> +</tr> +<tr> +<td style="text-align: center"><code>baidu</code></td> +</tr> +<tr> +<td style="text-align: center"><code>ecosia</code></td> +</tr> +<tr> +<td style="text-align: center"><code>goodreads</code></td> +</tr> +<tr> +<td style="text-align: center"><code>qwant</code></td> +</tr> +<tr> +<td style="text-align: center"><code>givero</code></td> +</tr> +<tr> +<td style="text-align: center"><code>stackoverflow</code></td> +</tr> +<tr> +<td style="text-align: center"><code>wolframalpha</code></td> +</tr> +<tr> +<td style="text-align: center"><code>archive</code></td> +</tr> +<tr> +<td style="text-align: center"><code>scholar</code></td> +</tr> +</tbody> +</table> +<hr> \ No newline at end of file diff --git a/docs/tags/linux/page/1/index.html b/docs/tags/linux/page/1/index.html index 2da92bb..931299f 100644 --- a/docs/tags/linux/page/1/index.html +++ b/docs/tags/linux/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/linux/ - - - - - - +https://bit-orbit.github.io/tags/linux/ + \ No newline at end of file diff --git a/docs/tags/m_shabane/index.html b/docs/tags/m_shabane/index.html index 42431f7..e139198 100644 --- a/docs/tags/m_shabane/index.html +++ b/docs/tags/m_shabane/index.html @@ -1,559 +1,37 @@ - - - - -Tag: M_shabane - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

M_shabane

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: M_shabane - bit-orbit +

Tags

1 صفحه

M_shabane

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git a/docs/tags/m_shabane/index.xml b/docs/tags/m_shabane/index.xml index 8550ba9..569a62e 100644 --- a/docs/tags/m_shabane/index.xml +++ b/docs/tags/m_shabane/index.xml @@ -1,32 +1,18 @@ - - - - M_shabane on bit-orbit - https://bit-orbit.github.io/tags/m_shabane/ - Recent content in M_shabane on bit-orbit - Hugo -- gohugo.io - fa - Thu, 01 Aug 2024 03:03:46 +0330 - etc/resolve.conf/ - https://bit-orbit.github.io/p/etc/resolve.conf/ - Thu, 01 Aug 2024 03:03:46 +0330 - - https://bit-orbit.github.io/p/etc/resolve.conf/ - <img src="https://bit-orbit.github.io/images/post/OIG4.jpeg" alt="Featured image of post etc/resolve.conf/" /><span style='font-size: 25px'> -<h3 id="مقدمه">مقدمه</h3> -<p>همیشه موقع ویرایش فایل -<em>resolve.conf</em> +M_shabane on bit-orbithttps://bit-orbit.github.io/tags/m_shabane/Recent content in M_shabane on bit-orbitHugo -- gohugo.iofaThu, 01 Aug 2024 03:03:46 +0330etc/resolve.conf/https://bit-orbit.github.io/p/etc/resolve.conf/Thu, 01 Aug 2024 03:03:46 +0330https://bit-orbit.github.io/p/etc/resolve.conf/<img src="https://bit-orbit.github.io/images/post/OIG4.jpeg" alt="Featured image of post etc/resolve.conf/" /><span style='font-size: 25px'> +<h3 id="مقدمه">مقدمه +</h3><p>همیشه موقع ویرایش فایل +<em>resolve.conf</em> برام سوال بود که گزین های دیگه‌ای که توی این فایل تنظیم شده‌اند چکاری انجام می‌دهند. درواقع من همیشه دستور -<code>namveserver</code> +<code>namveserver</code> را برای تغییر سرور -<em>dns</em> +<em>dns</em> ویرایش می‌کردم. اما دستور هایی دیگه‌ای هم برای این فایل وجود دارد که لیست آنها در -<code>man resolve.conf</code> -توضیح داده شده است.</p> -<p>توی این پست من بعضی از دستورات این فایل را توضیح می‌دم.</p> -<blockquote> -<p>در مرحله اول یادتون باشه لینوکس هایی که +<code>man resolve.conf</code> +توضیح داده شده است.</p> +<p>توی این پست من بعضی از دستورات این فایل را توضیح می‌دم.</p> +<blockquote> +<p>در مرحله اول یادتون باشه لینوکس هایی که systemd دارند، معمولا از سرویس systemd-resolved @@ -36,48 +22,48 @@ DNS resolve می‌کند و سپس آنها را کش می‌کند که یک دامنه را چندین بار resolve -نکند.</p> -</blockquote> -<blockquote> -<p>یک دامنه حد اقل از <em>دو</em> بخش تشکیل می‌شود.</p> -<ol> -<li>TLD</li> -<li>Domain</li> -</ol> -</blockquote> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span><span class="lnt">3 -</span><span class="lnt">4 -</span><span class="lnt">5 -</span><span class="lnt">6 -</span><span class="lnt">7 -</span><span class="lnt">8 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">bin.example.com -</span></span><span class="line"><span class="cl">│ │ │ -</span></span><span class="line"><span class="cl">│ │ └─► TDL(Top Level Domain) -</span></span><span class="line"><span class="cl">│ │ -</span></span><span class="line"><span class="cl">│ └───────► Domain -</span></span><span class="line"><span class="cl">│ -</span></span><span class="line"><span class="cl">└─────────────► SubDomain -</span></span><span class="line"><span class="cl"> -</span></span></code></pre></td></tr></table> -</div> -</div><hr> -<h3 id="دستورات">دستورات</h3> -<ul> -<li> -<p>1 <code>nameserver</code></p> -<p>این دستور برای تعیین +نکند.</p> +</blockquote> +<blockquote> +<p>یک دامنه حد اقل از <em>دو</em> بخش تشکیل می‌شود.</p> +<ol> +<li>TLD</li> +<li>Domain</li> +</ol> +</blockquote> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span><span class="lnt">8 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">bin.example.com +</span></span><span class="line"><span class="cl">│ │ │ +</span></span><span class="line"><span class="cl">│ │ └─► TDL(Top Level Domain) +</span></span><span class="line"><span class="cl">│ │ +</span></span><span class="line"><span class="cl">│ └───────► Domain +</span></span><span class="line"><span class="cl">│ +</span></span><span class="line"><span class="cl">└─────────────► SubDomain +</span></span><span class="line"><span class="cl"> +</span></span></code></pre></td></tr></table> +</div> +</div><hr> +<h3 id="دستورات">دستورات +</h3><ul> +<li> +<p>1 <code>nameserver</code></p> +<p>این دستور برای تعیین IP یک سرور DNS -استفاده می‌شود.(در واقع اینجا منظورم یک سرویسی است که به نامه دامنه ها پاسخ دهد که به آن NS می‌گویم.)</p> -<p>شما می‌توانید تا حداقل سه +استفاده می‌شود.(در واقع اینجا منظورم یک سرویسی است که به نامه دامنه ها پاسخ دهد که به آن NS می‌گویم.)</p> +<p>شما می‌توانید تا حداقل سه IP لیست کنید، و resolver @@ -86,68 +72,68 @@ resolver NS جواب گو نباشد، از دیگر NS -های لیست شده استفاده خواهد شد.</p> -<p>اگر به همین ترتیب هر یک از +های لیست شده استفاده خواهد شد.</p> +<p>اگر به همین ترتیب هر یک از NS -ها جوابگو نباشد، کوئری ها از اول شروع می‌شود تا به حداکثر تعداد کوئری تعیین شده برسد.</p> -<p>برای مثال من می‌توانم چند +ها جوابگو نباشد، کوئری ها از اول شروع می‌شود تا به حداکثر تعداد کوئری تعیین شده برسد.</p> +<p>برای مثال من می‌توانم چند NS -مختلف را برای خودم تعیین کنم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">nameserver 1.1.1.1 -</span></span><span class="line"><span class="cl">nameserver 8.8.8.8 -</span></span></code></pre></td></tr></table> -</div> -</div></li> -</ul> -<hr> -<ul> -<li> -<p>2 <code>options</code></p> -<p>برای این دستور متغیر های مختلفی را می‌توان تعیین کرد.</p> -<ul> -<li> -<p>2.1 <code>ndots</code></p> -<ul> -<li> -<p>حداقل هر دامنه‌ای در سطح اینترنت یک نقطه دارد، برای مثال +مختلف را برای خودم تعیین کنم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">nameserver 1.1.1.1 +</span></span><span class="line"><span class="cl">nameserver 8.8.8.8 +</span></span></code></pre></td></tr></table> +</div> +</div></li> +</ul> +<hr> +<ul> +<li> +<p>2 <code>options</code></p> +<p>برای این دستور متغیر های مختلفی را می‌توان تعیین کرد.</p> +<ul> +<li> +<p>2.1 <code>ndots</code></p> +<ul> +<li> +<p>حداقل هر دامنه‌ای در سطح اینترنت یک نقطه دارد، برای مثال google.com یک نقطه دارد. شما می‌توانید با این متغیر تعین کنید که دامنه‌های در سطح اینترنت باید چند نقطه داشته باشند، هر نقطه نشانه ساب دامنه‌ است. -برای مثال به صورت پیشفرض این متغیر <em>1</em> تنظیم شده است. +برای مثال به صورت پیشفرض این متغیر <em>1</em> تنظیم شده است. به این معنی است که هر دامنه‌ای یک نقطه داشت، این دامنه در سطح اینترنت است. ولی اگر شما مقدار این متغیر را 2 تنظیم کنید، دامنه‌ای مثل -<code>google.com</code> +<code>google.com</code> بعنوان دامنه لوکال تشخیص داده خواهد شد و -<code>hostname</code> +<code>hostname</code> شما به اول دامنه اضافه خواهد شد. مثلا اگر -<code>hostname</code> +<code>hostname</code> شما -<code>arya</code> +<code>arya</code> باشد، دامنه به این شکل کوئری زده خواهد شد -<code>google.com.arya</code></p> -<p>در صورتی که شما برای جست و جوی یک دامنه از هیچ -<strong>TLD</strong> +<code>google.com.arya</code></p> +<p>در صورتی که شما برای جست و جوی یک دامنه از هیچ +<strong>TLD</strong> استفاده نکید، از -<code>hostname</code> +<code>hostname</code> و یا از مقداری که برای -<code>search</code> -مشخص کرده‌اید استفاده خواهد شد.</p> -</li> -</ul> -</li> -<li> -<p>2.2 <code>timeout</code></p> -<ul> -<li>این متغیر تعیین می‌کند که +<code>search</code> +مشخص کرده‌اید استفاده خواهد شد.</p> +</li> +</ul> +</li> +<li> +<p>2.2 <code>timeout</code></p> +<ul> +<li>این متغیر تعیین می‌کند که resolver چه مقدار زمانی باید منتظر جواب از سمت NS @@ -155,19 +141,19 @@ NS NS جواب نداد، از NS -های بعدی سوال کند.</li> -</ul> -</li> -<li> -<p>2.3 <code>attempts</code></p> -<ul> -<li>این متغیر تعین می‌کند که +های بعدی سوال کند.</li> +</ul> +</li> +<li> +<p>2.3 <code>attempts</code></p> +<ul> +<li>این متغیر تعین می‌کند که resolver در صورت جواب ندادن توسط NS -باید در نهایت چند کوئری دیگر ارسال کند.</li> -</ul> -<p>برای مثال اگر اولین +باید در نهایت چند کوئری دیگر ارسال کند.</li> +</ul> +<p>برای مثال اگر اولین NS پاسخ نداد، سوال از NS @@ -178,12 +164,12 @@ attempts attempts مجوع سوال ها از همه NS -ها است.)</p> -</li> -<li> -<p>2.4 <code>rotate</code></p> -<ul> -<li>به صورت پیشفرض کوئری های +ها است.)</p> +</li> +<li> +<p>2.4 <code>rotate</code></p> +<ul> +<li>به صورت پیشفرض کوئری های DNS همه برای اولین NS @@ -194,50 +180,50 @@ NS ها تقسیم کنیم، کافیست از این متغیر استفاده کنیم. اینکار باعث می‌شود که هر کوئری ها به صورت چرخشی به ترتیب به NS -های لیست شده ارسال شود.</li> -</ul> -</li> -</ul> -</li> -</ul> -<hr> -<ul> -<li>3 <code>search</code> +های لیست شده ارسال شود.</li> +</ul> +</li> +</ul> +</li> +</ul> +<hr> +<ul> +<li>3 <code>search</code> همانطور که در مثال بالا گفتم، ما نام دامنه ها را تنظیم می‌کنیم که حداقل وقتی یک نقطه دارند، resolver آنها را دامنه‌ در سطح اینترنت در نظر بگیرد و به NS کوئری بزند. ولی اگر هیچ نقطه‌ای نداشت و یا شما -<code>ndots</code> +<code>ndots</code> را بیشتر یا مساوی با 2 نتظیم کرده باشید، -<code>hostname</code> +<code>hostname</code> سیستم شما به آخر آن دامنه اضافه خواهد شد و یک دامنه داخلی (local) تلقی خواهد شد. اما اگر می‌خواهید قبل از اضافه شدن -<code>hostname</code> -به آن چیز دیگری اضافه کنید، کافیست متغیر سرچ را تعریف کنید و یک یا چند مقدار برای آن تعیین کنید.</li> -</ul> -<hr> -<h3 id="سرویس-systemd-resolve">سرویس systemd-resolve</h3> -<p>اگر به فایل +<code>hostname</code> +به آن چیز دیگری اضافه کنید، کافیست متغیر سرچ را تعریف کنید و یک یا چند مقدار برای آن تعیین کنید.</li> +</ul> +<hr> +<h3 id="سرویس-systemd-resolve">سرویس systemd-resolve +</h3><p>اگر به فایل /etc/resolve.conf نگاه کنید، می‌بینید که یک ns برای شما تنظیم شده است که IP -آن داخلی است.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl"># cat /etc/resolve.conf -</span></span><span class="line"><span class="cl">nameserver 127.0.0.53 -</span></span></code></pre></td></tr></table> -</div> -</div><p>همانطور که توی نکته‌ای در مقدمه این پست گفتم، +آن داخلی است.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl"># cat /etc/resolve.conf +</span></span><span class="line"><span class="cl">nameserver 127.0.0.53 +</span></span></code></pre></td></tr></table> +</div> +</div><p>همانطور که توی نکته‌ای در مقدمه این پست گفتم، سیستم عاملی هایی که از systemd استفاده می‌کنند معمولا سرویس @@ -249,80 +235,76 @@ IP 127.0.0.53 و 127.0.0.54 -شنود می‌کند.</p> -<p>این سرویس خودش یک کانفیگ در -<code>etc/ststemd/resolved.conf/</code> -دارد.</p> -<p>اگر داخل این فایل را نگاه کنیم، می‌بنیم که در قسمت +شنود می‌کند.</p> +<p>این سرویس خودش یک کانفیگ در +<code>etc/ststemd/resolved.conf/</code> +دارد.</p> +<p>اگر داخل این فایل را نگاه کنیم، می‌بنیم که در قسمت ‌DNS می‌توان NS های بالاتر را وارد کرد، اینکار باعث می‌شود که سیستم شما وقتی یک دامنه را در حافظه کش خود نداشت، از NS -های بالاتر که در این فایل تنظیم شده است سوال کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">[Resolve] -</span></span><span class="line"><span class="cl">DNS=1.1.1.1 8.8.8.8 -</span></span></code></pre></td></tr></table> -</div> -</div><p>ابته تاکید کنم در صورتی از این +های بالاتر که در این فایل تنظیم شده است سوال کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">[Resolve] +</span></span><span class="line"><span class="cl">DNS=1.1.1.1 8.8.8.8 +</span></span></code></pre></td></tr></table> +</div> +</div><p>ابته تاکید کنم در صورتی از این NS ها استفاده می‌شود که شما ‌از 127.0.0.53 و 127.0.0.54 در کانفیگ /etc/resolve.conf -استفاده کرده باشید.</p> -<blockquote> -<p>تفاوت 127.0.0.54 این است که هر کوئری را مستقیم به +استفاده کرده باشید.</p> +<blockquote> +<p>تفاوت 127.0.0.54 این است که هر کوئری را مستقیم به NS بالاتر ارسال خواهد کرد و از دیتای کش شده استفاده نمی‌کند. -ولی 127.0.0.53 از قابلیت کش استفاده می‌کند.</p> -</blockquote> -<hr> -<h3 id="مثال">مثال</h3> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt">10 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">nameserver 1.1.1.1 -</span></span><span class="line"><span class="cl">nameserver 8.8.8.8 -</span></span><span class="line"><span class="cl">nameserver 9.9.9.9 -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">options ndots:1 -</span></span><span class="line"><span class="cl">options timeout:2 -</span></span><span class="line"><span class="cl">options attempts:3 -</span></span><span class="line"><span class="cl">options rotate -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">search server1 server2 -</span></span></code></pre></td></tr></table> -</div> -</div><hr> -<h3 id="سخنی-با-شما">سخنی با شما</h3> -<p>این را بگم که +ولی 127.0.0.53 از قابلیت کش استفاده می‌کند.</p> +</blockquote> +<hr> +<h3 id="مثال">مثال +</h3><div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">nameserver 1.1.1.1 +</span></span><span class="line"><span class="cl">nameserver 8.8.8.8 +</span></span><span class="line"><span class="cl">nameserver 9.9.9.9 +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">options ndots:1 +</span></span><span class="line"><span class="cl">options timeout:2 +</span></span><span class="line"><span class="cl">options attempts:3 +</span></span><span class="line"><span class="cl">options rotate +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">search server1 server2 +</span></span></code></pre></td></tr></table> +</div> +</div><hr> +<h3 id="سخنی-با-شما">سخنی با شما +</h3><p>این را بگم که DNS به صورت recursive(بازگشتی) عمل می‌کنه، این یعنی وقتی شما یک کوئری ارسال می‌کنید، این کوئری هر بار به یک سرور بالاتر ارسال می‌شود تا در نهایت به جواب برسه. و خب این موضوع خودش در نهایت یک جریان -خیلی جالب داره که امیدوارم یک روز اون رو هم بنویسم :)</p> -</span> - - - - +خیلی جالب داره که امیدوارم یک روز اون رو هم بنویسم :)</p> +</span> \ No newline at end of file diff --git a/docs/tags/m_shabane/page/1/index.html b/docs/tags/m_shabane/page/1/index.html index c9f23af..77f23f8 100644 --- a/docs/tags/m_shabane/page/1/index.html +++ b/docs/tags/m_shabane/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/m_shabane/ - - - - - - +https://bit-orbit.github.io/tags/m_shabane/ + \ No newline at end of file diff --git a/docs/tags/messenger/index.html b/docs/tags/messenger/index.html index d830f60..52d1d4c 100644 --- a/docs/tags/messenger/index.html +++ b/docs/tags/messenger/index.html @@ -1,559 +1,37 @@ - - - - -Tag: Messenger - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

Messenger

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: Messenger - bit-orbit + \ No newline at end of file diff --git a/docs/tags/messenger/index.xml b/docs/tags/messenger/index.xml index fceb8f4..7682919 100644 --- a/docs/tags/messenger/index.xml +++ b/docs/tags/messenger/index.xml @@ -1,18 +1,4 @@ - - - - Messenger on bit-orbit - https://bit-orbit.github.io/tags/messenger/ - Recent content in Messenger on bit-orbit - Hugo -- gohugo.io - fa - Sat, 01 Oct 2022 01:46:23 +0330 - ارتباط غیر متمرکز و در لحظه با پروتکل ماتریکس - https://bit-orbit.github.io/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/ - Sat, 01 Oct 2022 01:46:23 +0330 - - https://bit-orbit.github.io/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/ - <img src="https://bit-orbit.github.io/images/post/matrix.jpg" alt="Featured image of post ارتباط غیر متمرکز و در لحظه با پروتکل ماتریکس" /><p>ماتریکس یک پروتکل آزاد است! به این معنی که شما میتوانید از این پروتکل برای +Messenger on bit-orbithttps://bit-orbit.github.io/tags/messenger/Recent content in Messenger on bit-orbitHugo -- gohugo.iofaSat, 01 Oct 2022 01:46:23 +0330ارتباط غیر متمرکز و در لحظه با پروتکل ماتریکسhttps://bit-orbit.github.io/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/Sat, 01 Oct 2022 01:46:23 +0330https://bit-orbit.github.io/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/<img src="https://bit-orbit.github.io/images/post/matrix.jpg" alt="Featured image of post ارتباط غیر متمرکز و در لحظه با پروتکل ماتریکس" /><p>ماتریکس یک پروتکل آزاد است! به این معنی که شما میتوانید از این پروتکل برای ارتباطات تحت شبکه مانند پیامرسان، اینترنت چیز ها (IoT) و هر چیز دیگری @@ -20,76 +6,58 @@ های این پروتکل، رمزنگاری سر تا سر (E2E) است، این ویژگی باعث میشود حتی سرور های ماتریکس که داده های ما را -منتقل میکنند هم توانایی دسترسی به داده ها را نداشته باشند.</p> -<h3 id="پیام-رسان-ماتریکس">پیام رسان ماتریکس</h3> -<p>یکی از اصلی ترین استفاده های ماتریکس، پیامرسان است. +منتقل میکنند هم توانایی دسترسی به داده ها را نداشته باشند.</p> +<h3 id="پیام-رسان-ماتریکس">پیام رسان ماتریکس +</h3><p>یکی از اصلی ترین استفاده های ماتریکس، پیامرسان است. این پیامرسان به صورت غیر متمرکز عمل میکند. با این روش سانسور/فیلتر شدن سرور هایی که پیام ها را ذخیره و منتقل میکنند غیر ممکن میشود! چرا که این سرور ها قابل تغییر هستند و هر زمان که یکی از این سرور ها سانسور شود، شما همچنان میتوانید با سرور دیگری مجدد اکانت بسازید و در ارتباط بمانید. -و یا حتی از سرور خودتان استفاده کنید!</p> -<h3 id="ماتریکس-چگونه-کار-میکند">ماتریکس چگونه کار میکند؟</h3> -<p>هر سرور در ماتریکس -<em>HomeServer</em> +و یا حتی از سرور خودتان استفاده کنید!</p> +<h3 id="ماتریکس-چگونه-کار-میکند">ماتریکس چگونه کار میکند؟ +</h3><p>هر سرور در ماتریکس +<em>HomeServer</em> نامیده میشود، شما به عنوان -<em>Client</em> +<em>Client</em> انتخاب میکنید از هر HomeServer -که میخواهید استفاده کنید.</p> -<p>HomeServer +که میخواهید استفاده کنید.</p> +<p>HomeServer ها میتوانند سرور های عمومی مثل سروری که خود -<a class="link" href="matrix.org" ><strong>ماتریکس</strong></a> +<a class="link" href="matrix.org" ><strong>ماتریکس</strong></a> راه اندازی کرده است باشد و یا میتواند سرور های -<strong>شخصی خودتان</strong> -باشد.</p> -<p><a class="link" href="https://bit-orbit.github.io/images/post/page2-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page2-768x768.png" - - - - loading="lazy" - - alt="matrix-homeserver" - - -></a></p> -<p>زمانی که شما از یک +<strong>شخصی خودتان</strong> +باشد.</p> +<p><a class="link" href="https://bit-orbit.github.io/images/post/page2-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page2-768x768.png" +loading="lazy" +alt="matrix-homeserver" +></a></p> +<p>زمانی که شما از یک HomeServer استفاده میکنید، این به آن معنی است که کلاینت شما به اکانتتان در آن HomeServer -متصل میشود.</p> -<p><a class="link" href="https://bit-orbit.github.io/images/post/page3-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page3-768x768.png" - - - - loading="lazy" - - alt="matrix-homeserver" - - -></a></p> -<p>زمانی که شما پیامی ارسال میکنید، پیامتان به +متصل میشود.</p> +<p><a class="link" href="https://bit-orbit.github.io/images/post/page3-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page3-768x768.png" +loading="lazy" +alt="matrix-homeserver" +></a></p> +<p>زمانی که شما پیامی ارسال میکنید، پیامتان به HomeServer شما ارسال میشود، HomeServer -بعد از دریافت پیام از شما، آن را به کاربران مشترک در آن روم ارسال میکند.</p> -<blockquote> -<p>در ماتریکس هر نوع چت(شخصی و یا گروه) را +بعد از دریافت پیام از شما، آن را به کاربران مشترک در آن روم ارسال میکند.</p> +<blockquote> +<p>در ماتریکس هر نوع چت(شخصی و یا گروه) را room -مینامند</p> -</blockquote> -<p><a class="link" href="https://bit-orbit.github.io/images/post/page4-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page4-768x768.png" - - - - loading="lazy" - - alt="matrix-homeserver" - - -></a></p> -<p>در واقع زمانی که شما پیامی ارسال میکنید +مینامند</p> +</blockquote> +<p><a class="link" href="https://bit-orbit.github.io/images/post/page4-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page4-768x768.png" +loading="lazy" +alt="matrix-homeserver" +></a></p> +<p>در واقع زمانی که شما پیامی ارسال میکنید HomeServer پیام را برای کاربران ارسال میکند. این کاربران ممکن است کاربران همان HomeServer @@ -103,47 +71,41 @@ Homeserver HomerServer های دیگر ارسال خواهد کرد. و آن HomeServer -پیام را دریافت و به کاربران مربوطه ارسال خواهد کرد.</p> -<p><a class="link" href="https://bit-orbit.github.io/images/post/page6-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page6-768x768.png" - - - - loading="lazy" - - alt="matrix-homeserver" - - -></a></p> -<blockquote> -<p>زمانی که شما پیامی را برای کاربر +پیام را دریافت و به کاربران مربوطه ارسال خواهد کرد.</p> +<p><a class="link" href="https://bit-orbit.github.io/images/post/page6-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page6-768x768.png" +loading="lazy" +alt="matrix-homeserver" +></a></p> +<blockquote> +<p>زمانی که شما پیامی را برای کاربر HomeServer دیگری ارسال میکنید، پیام شما تنها در HomeServer خودتان ذخیره نخواهد شد. بلکه در HomeServer -کاربری/کاربرانی که پیام را به آن ارسال کرده اید هم ذخیره میشود.</p> -</blockquote> -<h3 id="اصطلاحات-در-ماتریکس">اصطلاحات در ماتریکس</h3> -<p>در ماتریکس چند اصطلاح وجود دارد که آشنایی با آنها به درک بهتر این پروتکل کمک میکند.</p> -<ul> -<li> -<p>HomeServer: +کاربری/کاربرانی که پیام را به آن ارسال کرده اید هم ذخیره میشود.</p> +</blockquote> +<h3 id="اصطلاحات-در-ماتریکس">اصطلاحات در ماتریکس +</h3><p>در ماتریکس چند اصطلاح وجود دارد که آشنایی با آنها به درک بهتر این پروتکل کمک میکند.</p> +<ul> +<li> +<p>HomeServer: سروری که شما در آن اکانت خود را میسازید. این سرور پیام های شما را ذخیره -و ارسال میکند.</p> -</li> -<li> -<p>Client: +و ارسال میکند.</p> +</li> +<li> +<p>Client: برای اینکه کاربران بتوانند از ماتریکس استفاده کنند، باید از ابزاری که از این -پروتکل بهره میبرد استفاده کنند. به اینگونه از ابزار ها کلاینت گفته میشود.</p> -</li> -<li> -<p>Event: +پروتکل بهره میبرد استفاده کنند. به اینگونه از ابزار ها کلاینت گفته میشود.</p> +</li> +<li> +<p>Event: هر نوع داده ای که توسط ماتریکس ارسال شود -<em>event</em> -نامیده میشود. برای مثال ممکن است شما پیام ارسال کنید و یا به یک پیام واکنش نشان دهید.</p> -</li> -<li> -<p>Room: +<em>event</em> +نامیده میشود. برای مثال ممکن است شما پیام ارسال کنید و یا به یک پیام واکنش نشان دهید.</p> +</li> +<li> +<p>Room: قسمتی است که کاربر با آن event ها را دریافت و ارسال میکند. @@ -154,10 +116,10 @@ room room میتوانند event -ها را دریافت کنند.</p> -</li> -<li> -<p>Space: +ها را دریافت کنند.</p> +</li> +<li> +<p>Space: Space نوعی خاصی از room @@ -165,66 +127,61 @@ room room ها است. space -میتواند هم شامل گروه و هم کاربران عادی شود.</p> -</li> -<li> -<p>Bridge: +میتواند هم شامل گروه و هم کاربران عادی شود.</p> +</li> +<li> +<p>Bridge: پل یا Bridge به راهکاری گفته میشود که شما میتوانید با استفاده از آن بین ماتریکس و پیامرسان های دیگر چت کنید. برای مثال شما با استفاده از Brdige تلگرام -میتوانید با ماتریکس به کاربران تلگرام پیام ارسال و دریافت کنید.</p> -</li> -</ul> -<h3 id="چگونه-از-ماتریکس-استفاده-کنیم">چگونه از ماتریکس استفاده کنیم؟</h3> -<p>برای استفاده از ماتریکس، شما کافیست یکی از کلاینت های آن را نصب و به یک +میتوانید با ماتریکس به کاربران تلگرام پیام ارسال و دریافت کنید.</p> +</li> +</ul> +<h3 id="چگونه-از-ماتریکس-استفاده-کنیم">چگونه از ماتریکس استفاده کنیم؟ +</h3><p>برای استفاده از ماتریکس، شما کافیست یکی از کلاینت های آن را نصب و به یک HomeServer -متصل شوید.</p> -<p>یکی از محبوب ترین کلاینت ها، کلاینت -<a class="link" href="https://element.io/" target="_blank" rel="noopener" - >Element</a> +متصل شوید.</p> +<p>یکی از محبوب ترین کلاینت ها، کلاینت +<a class="link" href="https://element.io/" target="_blank" rel="noopener" +>Element</a> است، که شامل نسخه -<a class="link" href="https://play.google.com/store/apps/details?id=im.vector.app" target="_blank" rel="noopener" - >Android</a>، -<a class="link" href="https://apps.apple.com/app/vector/id1083446067" target="_blank" rel="noopener" - >IOS</a>، -<a class="link" href="https://element.io/get-started#downloads" target="_blank" rel="noopener" - >Windows, Linux، Mac</a> +<a class="link" href="https://play.google.com/store/apps/details?id=im.vector.app" target="_blank" rel="noopener" +>Android</a>، +<a class="link" href="https://apps.apple.com/app/vector/id1083446067" target="_blank" rel="noopener" +>IOS</a>، +<a class="link" href="https://element.io/get-started#downloads" target="_blank" rel="noopener" +>Windows, Linux، Mac</a> و البته -<a class="link" href="https://app.element.io/" target="_blank" rel="noopener" - >نسخه تحت وب میشود</a>.</p> -<p>استفاده از المنت مانند هر پیامرسان دیگری ساده است، اما اگر نیاز به کمک دارید -<a class="link" href="https://static.element.io/pdfs/element-user-guide.pdf" target="_blank" rel="noopener" - >این لینک</a> -میتواند کمکتان کند.</p> -<h3 id="چطور-از-سرور-شخصی-خودمان-استفاده-کنیم">چطور از سرور شخصی خودمان استفاده کنیم؟</h3> -<p>شما مجبور نیستید سرویس ماتریکس را روی سرور شخصی خودتان اجرا کنید مگر اینکه:</p> -<ul> -<li>سرور های عمومی ماتریکس سانسور و از دسترس خارج شده باشند</li> -<li>و یا شاید نگران دیتایی هستید که روی سرور های -عمومی ماتریکس از طرف شما ذخیره میشود!(گرچه پیام ها تماما رمزنگاری سر تا سر میشود)</li> -<li>و یا حتی شاید میخواهید پیام رسان داخلی شرکت/خانه خودتان را داشته باشید</li> -<li>و یا البته ممکن است بخواهید +<a class="link" href="https://app.element.io/" target="_blank" rel="noopener" +>نسخه تحت وب میشود</a>.</p> +<p>استفاده از المنت مانند هر پیامرسان دیگری ساده است، اما اگر نیاز به کمک دارید +<a class="link" href="https://static.element.io/pdfs/element-user-guide.pdf" target="_blank" rel="noopener" +>این لینک</a> +میتواند کمکتان کند.</p> +<h3 id="چطور-از-سرور-شخصی-خودمان-استفاده-کنیم">چطور از سرور شخصی خودمان استفاده کنیم؟ +</h3><p>شما مجبور نیستید سرویس ماتریکس را روی سرور شخصی خودتان اجرا کنید مگر اینکه:</p> +<ul> +<li>سرور های عمومی ماتریکس سانسور و از دسترس خارج شده باشند</li> +<li>و یا شاید نگران دیتایی هستید که روی سرور های +عمومی ماتریکس از طرف شما ذخیره میشود!(گرچه پیام ها تماما رمزنگاری سر تا سر میشود)</li> +<li>و یا حتی شاید میخواهید پیام رسان داخلی شرکت/خانه خودتان را داشته باشید</li> +<li>و یا البته ممکن است بخواهید Bridge -بسازید.</li> -</ul> -<p>نسخه سرور ماتریکس -<a class="link" href="https://github.com/matrix-org/synapse" target="_blank" rel="noopener" - ><em>Synapse</em></a> +بسازید.</li> +</ul> +<p>نسخه سرور ماتریکس +<a class="link" href="https://github.com/matrix-org/synapse" target="_blank" rel="noopener" +><em>Synapse</em></a> نام دارد، شما میتوانید با استفاده از -<a class="link" href="https://hub.docker.com/r/matrixdotorg/synapse/" target="_blank" rel="noopener" - >ایمیج داکر رسمی ماتریکس</a>، -سرور شخصی خودتان را اجرا کنید.</p> -<h3 id="نتیجه-گیری">نتیجه گیری</h3> -<p>هدف من از نوشتن این پست در این روز های تلخ این بود که ابزاری را معرفی کنم +<a class="link" href="https://hub.docker.com/r/matrixdotorg/synapse/" target="_blank" rel="noopener" +>ایمیج داکر رسمی ماتریکس</a>، +سرور شخصی خودتان را اجرا کنید.</p> +<h3 id="نتیجه-گیری">نتیجه گیری +</h3><p>هدف من از نوشتن این پست در این روز های تلخ این بود که ابزاری را معرفی کنم تا ما با وجود قطعی های متعدد اینترنت و قطع دسترسی ما از سرور های خارجی، کماکان -در ارتباط نگهدارد و صدایمان را&hellip;</p> -<p>اگر روزی دسترسی ما از اینترنت قطع شد، کاری که لازم است برای در ارتباط ماندن انجام بدهیم -این است که یک سرویس ماتریکس داخلی راه اندازی کنیم.</p> -<hr> - - - - - +در ارتباط نگهدارد و صدایمان را&hellip;</p> +<p>اگر روزی دسترسی ما از اینترنت قطع شد، کاری که لازم است برای در ارتباط ماندن انجام بدهیم +این است که یک سرویس ماتریکس داخلی راه اندازی کنیم.</p> +<hr> \ No newline at end of file diff --git a/docs/tags/messenger/page/1/index.html b/docs/tags/messenger/page/1/index.html index 0011501..ded6c64 100644 --- a/docs/tags/messenger/page/1/index.html +++ b/docs/tags/messenger/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/messenger/ - - - - - - +https://bit-orbit.github.io/tags/messenger/ + \ No newline at end of file diff --git a/docs/tags/mirror-a-single-web-page/index.html b/docs/tags/mirror-a-single-web-page/index.html index 2b91f10..2eb72da 100644 --- a/docs/tags/mirror-a-single-web-page/index.html +++ b/docs/tags/mirror-a-single-web-page/index.html @@ -1,559 +1,37 @@ - - - - -Tag: Mirror-a-Single-Web-Page - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

Mirror-a-Single-Web-Page

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: Mirror-a-Single-Web-Page - bit-orbit + \ No newline at end of file diff --git a/docs/tags/mirror-a-single-web-page/index.xml b/docs/tags/mirror-a-single-web-page/index.xml index ba44889..9e1c835 100644 --- a/docs/tags/mirror-a-single-web-page/index.xml +++ b/docs/tags/mirror-a-single-web-page/index.xml @@ -1,33 +1,19 @@ - - - - Mirror-a-Single-Web-Page on bit-orbit - https://bit-orbit.github.io/tags/mirror-a-single-web-page/ - Recent content in Mirror-a-Single-Web-Page on bit-orbit - Hugo -- gohugo.io - fa - Mon, 17 Jan 2022 14:56:14 +0330 - اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش(عکس، استایل، جاوا اسکریپت) - https://bit-orbit.github.io/p/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4%D8%B9%DA%A9%D8%B3-%D8%A7%D8%B3%D8%AA%D8%A7%DB%8C%D9%84-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA/ - Mon, 17 Jan 2022 14:56:14 +0330 - - https://bit-orbit.github.io/p/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4%D8%B9%DA%A9%D8%B3-%D8%A7%D8%B3%D8%AA%D8%A7%DB%8C%D9%84-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA/ - <img src="https://bit-orbit.github.io/images/post/snp.jpg" alt="Featured image of post اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش(عکس، استایل، جاوا اسکریپت)" /><div dir='rtl' style='font-size:23px'> -<p>زمانی که مقاله یا پستی را می‌خوانم، گاهی احساس می‌کنم ممکنه یک مطلب را فراموش کنم. +Mirror-a-Single-Web-Page on bit-orbithttps://bit-orbit.github.io/tags/mirror-a-single-web-page/Recent content in Mirror-a-Single-Web-Page on bit-orbitHugo -- gohugo.iofaMon, 17 Jan 2022 14:56:14 +0330اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش(عکس، استایل، جاوا اسکریپت)https://bit-orbit.github.io/p/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4%D8%B9%DA%A9%D8%B3-%D8%A7%D8%B3%D8%AA%D8%A7%DB%8C%D9%84-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA/Mon, 17 Jan 2022 14:56:14 +0330https://bit-orbit.github.io/p/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4%D8%B9%DA%A9%D8%B3-%D8%A7%D8%B3%D8%AA%D8%A7%DB%8C%D9%84-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA/<img src="https://bit-orbit.github.io/images/post/snp.jpg" alt="Featured image of post اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش(عکس، استایل، جاوا اسکریپت)" /><div dir='rtl' style='font-size:23px'> +<p>زمانی که مقاله یا پستی را می‌خوانم، گاهی احساس می‌کنم ممکنه یک مطلب را فراموش کنم. مثلا اگه مقاله‌ای از ویرگول درباره یک دستور لینوکس بخوانم، برای اینکه مطلبش را فراموش نکنم باید هرزگاهی به پست سر بزنم و مطالب را مرور کنم. اما فکر کنید مطلب درباره برنامه‌ای باشد که می‌توان با استفاده از آن سانسور را دور زد، -ویرگول احتمالا آن مطلب را حذف می‌کند.</p> -<ul> -<li> -<p>چه راهی برای ذخیره پست پشنهاد می‌کنید که بعدا بتوان آن را بارها مرور کرد؟</p> -</li> -<li> -<p>اگر پست از سایت منبع حذف شود، و یا حتی خود سایت دیگر در دسترس نباشد، -باز هم پستی که ذخیره کرده‌اید در دسترس است؟</p> -</li> -</ul> -<p>در این پست با استفاده از ابزار +ویرگول احتمالا آن مطلب را حذف می‌کند.</p> +<ul> +<li> +<p>چه راهی برای ذخیره پست پشنهاد می‌کنید که بعدا بتوان آن را بارها مرور کرد؟</p> +</li> +<li> +<p>اگر پست از سایت منبع حذف شود، و یا حتی خود سایت دیگر در دسترس نباشد، +باز هم پستی که ذخیره کرده‌اید در دسترس است؟</p> +</li> +</ul> +<p>در این پست با استفاده از ابزار wget یک پست را با تمامی وابستگی هایش مانند عکس ها، فایل های js، @@ -36,62 +22,62 @@ css دانلود می‌کنیم و روی سیستم خودمان ذخیره می‌کنیم تا حتی اگر سایت در دسترس نباشد و یا پست -از منبع حذف شد، پست به صورت افلاین در دسترس بماند.</p> -<hr> -<h3 id="wget">wget</h3> -<p>می‌دونید که +از منبع حذف شد، پست به صورت افلاین در دسترس بماند.</p> +<hr> +<h3 id="wget">wget +</h3><p>می‌دونید که wget یک ابزار پیشرفته برای دانلود فایله، قابلیت های زیادی که داره باعث شده بعد از سالها که ابزار های پیشرفته دانلود هم نوشته شدن، همچنان wget استفاده بشه. این برنامه روی اکثر توزیع های لینوکس به صورت دیفالت نصبه پس بیایید بدون تلف کردن وقت -سوییچ های مهم برای میرور کردن یک صفحه سایت رو برسی کنیم.</p> -<p></br></br></p> -<p><strong>Ⅰ.</strong> <code>--adjust-extension</code>, <code>-E</code></p> -<p>شاید شما هم سایتی هایی را دیده باشید که -<em>url</em> +سوییچ های مهم برای میرور کردن یک صفحه سایت رو برسی کنیم.</p> +<p></br></br></p> +<p><strong>Ⅰ.</strong> <code>--adjust-extension</code>, <code>-E</code></p> +<p>شاید شما هم سایتی هایی را دیده باشید که +<em>url</em> صفحه هایشان با پسوند -<code>.asp</code> +<code>.asp</code> به پایان می‌رسند. برای مثال نگاهی به -<a class="link" href="https://www.w3schools.com/python/default.asp" target="_blank" rel="noopener" - >این آدرس</a> +<a class="link" href="https://www.w3schools.com/python/default.asp" target="_blank" rel="noopener" +>این آدرس</a> بیاندازید -<em><a class="link" href="https://www.w3schools.com/python/default.asp" target="_blank" rel="noopener" - >https://www.w3schools.com/python/default.asp</a></em> +<em><a class="link" href="https://www.w3schools.com/python/default.asp" target="_blank" rel="noopener" +>https://www.w3schools.com/python/default.asp</a></em> همانطور که می‌بینید با -<em>asp</em> +<em>asp</em> به پایان می‌رسد. زمانی که شما این صفحه را دانلود کنید، این صفحه بجای پسوند -<em>html.</em> +<em>html.</em> با پسوند -<em>asp.</em> -ذخیره خواهد شد.</p> -<blockquote> -<p>به همین دلیل ما از این سوییچ استفاده می‌کنیم تا صفحه ها را +<em>asp.</em> +ذخیره خواهد شد.</p> +<blockquote> +<p>به همین دلیل ما از این سوییچ استفاده می‌کنیم تا صفحه ها را با پسوند -<em>html.</em> -ذخیره کنیم.</p> -</blockquote> -<div dir='ltr'> -</br> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span><span class="lnt">3 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ https://example.com/some/where -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl"><span class="c1"># where.html</span> -</span></span></code></pre></td></tr></table> -</div> -</div></div> -<p></br></br></p> -<p><strong>Ⅱ.</strong> <code>--span-hosts</code>, <code>-H</code></p> -<p>اگر حتی فقط یک صفحه را میرور می‌کنیم، آن صفحه ممکن است به فایل های خارج از سایت +<em>html.</em> +ذخیره کنیم.</p> +</blockquote> +<div dir='ltr'> +</br> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ https://example.com/some/where +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="c1"># where.html</span> +</span></span></code></pre></td></tr></table> +</div> +</div></div> +<p></br></br></p> +<p><strong>Ⅱ.</strong> <code>--span-hosts</code>, <code>-H</code></p> +<p>اگر حتی فقط یک صفحه را میرور می‌کنیم، آن صفحه ممکن است به فایل های خارج از سایت که به روی یک CDN قرار گرفته اند @@ -99,1253 +85,1249 @@ CDN style sheet ها. از اینرو وقتی شما یک صفحه را میرور می‌کنید wget -فایل های خارج از سایت را دانلود نخواهد کرد.</p> -<blockquote> -<p>پوشش دادن فایل های خارج از سایت با استفاده از این سوییچ انجام داده می‌شود. +فایل های خارج از سایت را دانلود نخواهد کرد.</p> +<blockquote> +<p>پوشش دادن فایل های خارج از سایت با استفاده از این سوییچ انجام داده می‌شود. وقتی این سوییچ را روشن کنید wget همه لینک ها از جمله لینک هایی زیر دامنه را هم دانلود خواهد کرد، مگر اینکه عمق -پوشش دادن را محدود کنید.</p> -</blockquote> -<p></br></br></p> -<p><strong>Ⅲ.</strong> <code>--convert-links</code>, <code>-k</code></p> -<p>یک صفحه را که میرور کردیم با توجه به اینکه فایل های پیشیاز مثل عکس و استایل ها را +پوشش دادن را محدود کنید.</p> +</blockquote> +<p></br></br></p> +<p><strong>Ⅲ.</strong> <code>--convert-links</code>, <code>-k</code></p> +<p>یک صفحه را که میرور کردیم با توجه به اینکه فایل های پیشیاز مثل عکس و استایل ها را هم دانلود کردیم، وقتی فایل را با مرورگر باز کنیم همچنان صفحه html ما به فایل های داخل سایت منبع لینک شده است و فایل های پیشنازش را حتی با اینکه -روی سیستم داریم، باز هم از آدرس خارجی دریافت می‌کند و نمایش می‌دهد.</p> -<blockquote> -<p>برای اینکه یک صفحه فایل های پیشنیازش را از فایل هایی که در کنار صفحه اصلی دانلود +روی سیستم داریم، باز هم از آدرس خارجی دریافت می‌کند و نمایش می‌دهد.</p> +<blockquote> +<p>برای اینکه یک صفحه فایل های پیشنیازش را از فایل هایی که در کنار صفحه اصلی دانلود کرده است بگیرد، از این سوییچ استفاده می‌کنیم. این سوییچ تمامی لینک ها را به -لینک های داخلی تبدیل می‌کند و صفحه موقع لود شدن از فایل های داخلی استفاده می‌کند.</p> -</blockquote> -<p></br></br></p> -<p><strong>Ⅳ.</strong> <code>--page-requisites</code>, <code>-p</code></p> -<blockquote> -<p>این سوییچ باعث می‌شود که +لینک های داخلی تبدیل می‌کند و صفحه موقع لود شدن از فایل های داخلی استفاده می‌کند.</p> +</blockquote> +<p></br></br></p> +<p><strong>Ⅳ.</strong> <code>--page-requisites</code>, <code>-p</code></p> +<blockquote> +<p>این سوییچ باعث می‌شود که wget تمامی فایل های ضروری برای درست نمایش داده شدن html -را دانلود کند. این فایل ها شامل عکس ها، استایل ها و یا صدا ها می‌شود.</p> -</blockquote> -<p></br></br></p> -<p><strong>Ⅴ.</strong> <code>--no-directories</code>, <code>-nd</code></p> -<p>به صورت پیشفرض زمانی که صفحه‌ای با این ادرس را دانلود کنیم</p> -<p><code>https://example.com/some/where/page.html</code></p> -<p>برنامه +را دانلود کند. این فایل ها شامل عکس ها، استایل ها و یا صدا ها می‌شود.</p> +</blockquote> +<p></br></br></p> +<p><strong>Ⅴ.</strong> <code>--no-directories</code>, <code>-nd</code></p> +<p>به صورت پیشفرض زمانی که صفحه‌ای با این ادرس را دانلود کنیم</p> +<p><code>https://example.com/some/where/page.html</code></p> +<p>برنامه wget -این صفحه و فایل های مورد نیازش را به این صورت ذخیره خواهد کرد</p> -<p><code>some/where/page.html/.</code></p> -<p>اما با استفاده از سوییچ -<code>nd-</code> -آن صفحه و فایل های مورد نیازش فقط داخل یک دایرکتوری ذخیره خواهد شد. به این صورت</p> -<p><code>page.html/.</code></p> -<blockquote> -<p>با فعال کردن این سوییچ +این صفحه و فایل های مورد نیازش را به این صورت ذخیره خواهد کرد</p> +<p><code>some/where/page.html/.</code></p> +<p>اما با استفاده از سوییچ +<code>nd-</code> +آن صفحه و فایل های مورد نیازش فقط داخل یک دایرکتوری ذخیره خواهد شد. به این صورت</p> +<p><code>page.html/.</code></p> +<blockquote> +<p>با فعال کردن این سوییچ wget صفحه و فایل های پیشنیاز را داخل دایرکتوری فعلی ذخیره خواهد کرد. و اگر -نام یک فایل بیش از یکبار تکرار شود، به نام فایل پسوند اضافه خواهد شد.</p> -</blockquote> -<p></br></br></p> -<h3 id="مثال-کاربردی-و-خروجی">مثال کاربردی و خروجی</h3> -<ul> -<li>برای مثال من یک -<a class="link" href="https://vrgl.ir/c3fVa" target="_blank" rel="noopener" - >پست توی ویرگول</a> +نام یک فایل بیش از یکبار تکرار شود، به نام فایل پسوند اضافه خواهد شد.</p> +</blockquote> +<p></br></br></p> +<h3 id="مثال-کاربردی-و-خروجی">مثال کاربردی و خروجی +</h3><ul> +<li>برای مثال من یک +<a class="link" href="https://vrgl.ir/c3fVa" target="_blank" rel="noopener" +>پست توی ویرگول</a> که آموزش الگوریتم RSA -هست رو دانلود می‌کنم.</li> -</ul> -</br> -</div> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt"> 10 -</span><span class="lnt"> 11 -</span><span class="lnt"> 12 -</span><span class="lnt"> 13 -</span><span class="lnt"> 14 -</span><span class="lnt"> 15 -</span><span class="lnt"> 16 -</span><span class="lnt"> 17 -</span><span class="lnt"> 18 -</span><span class="lnt"> 19 -</span><span class="lnt"> 20 -</span><span class="lnt"> 21 -</span><span class="lnt"> 22 -</span><span class="lnt"> 23 -</span><span class="lnt"> 24 -</span><span class="lnt"> 25 -</span><span class="lnt"> 26 -</span><span class="lnt"> 27 -</span><span class="lnt"> 28 -</span><span class="lnt"> 29 -</span><span class="lnt"> 30 -</span><span class="lnt"> 31 -</span><span class="lnt"> 32 -</span><span class="lnt"> 33 -</span><span class="lnt"> 34 -</span><span class="lnt"> 35 -</span><span class="lnt"> 36 -</span><span class="lnt"> 37 -</span><span class="lnt"> 38 -</span><span class="lnt"> 39 -</span><span class="lnt"> 40 -</span><span class="lnt"> 41 -</span><span class="lnt"> 42 -</span><span class="lnt"> 43 -</span><span class="lnt"> 44 -</span><span class="lnt"> 45 -</span><span class="lnt"> 46 -</span><span class="lnt"> 47 -</span><span class="lnt"> 48 -</span><span class="lnt"> 49 -</span><span class="lnt"> 50 -</span><span class="lnt"> 51 -</span><span class="lnt"> 52 -</span><span class="lnt"> 53 -</span><span class="lnt"> 54 -</span><span class="lnt"> 55 -</span><span class="lnt"> 56 -</span><span class="lnt"> 57 -</span><span class="lnt"> 58 -</span><span class="lnt"> 59 -</span><span class="lnt"> 60 -</span><span class="lnt"> 61 -</span><span class="lnt"> 62 -</span><span class="lnt"> 63 -</span><span class="lnt"> 64 -</span><span class="lnt"> 65 -</span><span class="lnt"> 66 -</span><span class="lnt"> 67 -</span><span class="lnt"> 68 -</span><span class="lnt"> 69 -</span><span class="lnt"> 70 -</span><span class="lnt"> 71 -</span><span class="lnt"> 72 -</span><span class="lnt"> 73 -</span><span class="lnt"> 74 -</span><span class="lnt"> 75 -</span><span class="lnt"> 76 -</span><span class="lnt"> 77 -</span><span class="lnt"> 78 -</span><span class="lnt"> 79 -</span><span class="lnt"> 80 -</span><span class="lnt"> 81 -</span><span class="lnt"> 82 -</span><span class="lnt"> 83 -</span><span class="lnt"> 84 -</span><span class="lnt"> 85 -</span><span class="lnt"> 86 -</span><span class="lnt"> 87 -</span><span class="lnt"> 88 -</span><span class="lnt"> 89 -</span><span class="lnt"> 90 -</span><span class="lnt"> 91 -</span><span class="lnt"> 92 -</span><span class="lnt"> 93 -</span><span class="lnt"> 94 -</span><span class="lnt"> 95 -</span><span class="lnt"> 96 -</span><span class="lnt"> 97 -</span><span class="lnt"> 98 -</span><span class="lnt"> 99 -</span><span class="lnt">100 -</span><span class="lnt">101 -</span><span class="lnt">102 -</span><span class="lnt">103 -</span><span class="lnt">104 -</span><span class="lnt">105 -</span><span class="lnt">106 -</span><span class="lnt">107 -</span><span class="lnt">108 -</span><span class="lnt">109 -</span><span class="lnt">110 -</span><span class="lnt">111 -</span><span class="lnt">112 -</span><span class="lnt">113 -</span><span class="lnt">114 -</span><span class="lnt">115 -</span><span class="lnt">116 -</span><span class="lnt">117 -</span><span class="lnt">118 -</span><span class="lnt">119 -</span><span class="lnt">120 -</span><span class="lnt">121 -</span><span class="lnt">122 -</span><span class="lnt">123 -</span><span class="lnt">124 -</span><span class="lnt">125 -</span><span class="lnt">126 -</span><span class="lnt">127 -</span><span class="lnt">128 -</span><span class="lnt">129 -</span><span class="lnt">130 -</span><span class="lnt">131 -</span><span class="lnt">132 -</span><span class="lnt">133 -</span><span class="lnt">134 -</span><span class="lnt">135 -</span><span class="lnt">136 -</span><span class="lnt">137 -</span><span class="lnt">138 -</span><span class="lnt">139 -</span><span class="lnt">140 -</span><span class="lnt">141 -</span><span class="lnt">142 -</span><span class="lnt">143 -</span><span class="lnt">144 -</span><span class="lnt">145 -</span><span class="lnt">146 -</span><span class="lnt">147 -</span><span class="lnt">148 -</span><span class="lnt">149 -</span><span class="lnt">150 -</span><span class="lnt">151 -</span><span class="lnt">152 -</span><span class="lnt">153 -</span><span class="lnt">154 -</span><span class="lnt">155 -</span><span class="lnt">156 -</span><span class="lnt">157 -</span><span class="lnt">158 -</span><span class="lnt">159 -</span><span class="lnt">160 -</span><span class="lnt">161 -</span><span class="lnt">162 -</span><span class="lnt">163 -</span><span class="lnt">164 -</span><span class="lnt">165 -</span><span class="lnt">166 -</span><span class="lnt">167 -</span><span class="lnt">168 -</span><span class="lnt">169 -</span><span class="lnt">170 -</span><span class="lnt">171 -</span><span class="lnt">172 -</span><span class="lnt">173 -</span><span class="lnt">174 -</span><span class="lnt">175 -</span><span class="lnt">176 -</span><span class="lnt">177 -</span><span class="lnt">178 -</span><span class="lnt">179 -</span><span class="lnt">180 -</span><span class="lnt">181 -</span><span class="lnt">182 -</span><span class="lnt">183 -</span><span class="lnt">184 -</span><span class="lnt">185 -</span><span class="lnt">186 -</span><span class="lnt">187 -</span><span class="lnt">188 -</span><span class="lnt">189 -</span><span class="lnt">190 -</span><span class="lnt">191 -</span><span class="lnt">192 -</span><span class="lnt">193 -</span><span class="lnt">194 -</span><span class="lnt">195 -</span><span class="lnt">196 -</span><span class="lnt">197 -</span><span class="lnt">198 -</span><span class="lnt">199 -</span><span class="lnt">200 -</span><span class="lnt">201 -</span><span class="lnt">202 -</span><span class="lnt">203 -</span><span class="lnt">204 -</span><span class="lnt">205 -</span><span class="lnt">206 -</span><span class="lnt">207 -</span><span class="lnt">208 -</span><span class="lnt">209 -</span><span class="lnt">210 -</span><span class="lnt">211 -</span><span class="lnt">212 -</span><span class="lnt">213 -</span><span class="lnt">214 -</span><span class="lnt">215 -</span><span class="lnt">216 -</span><span class="lnt">217 -</span><span class="lnt">218 -</span><span class="lnt">219 -</span><span class="lnt">220 -</span><span class="lnt">221 -</span><span class="lnt">222 -</span><span class="lnt">223 -</span><span class="lnt">224 -</span><span class="lnt">225 -</span><span class="lnt">226 -</span><span class="lnt">227 -</span><span class="lnt">228 -</span><span class="lnt">229 -</span><span class="lnt">230 -</span><span class="lnt">231 -</span><span class="lnt">232 -</span><span class="lnt">233 -</span><span class="lnt">234 -</span><span class="lnt">235 -</span><span class="lnt">236 -</span><span class="lnt">237 -</span><span class="lnt">238 -</span><span class="lnt">239 -</span><span class="lnt">240 -</span><span class="lnt">241 -</span><span class="lnt">242 -</span><span class="lnt">243 -</span><span class="lnt">244 -</span><span class="lnt">245 -</span><span class="lnt">246 -</span><span class="lnt">247 -</span><span class="lnt">248 -</span><span class="lnt">249 -</span><span class="lnt">250 -</span><span class="lnt">251 -</span><span class="lnt">252 -</span><span class="lnt">253 -</span><span class="lnt">254 -</span><span class="lnt">255 -</span><span class="lnt">256 -</span><span class="lnt">257 -</span><span class="lnt">258 -</span><span class="lnt">259 -</span><span class="lnt">260 -</span><span class="lnt">261 -</span><span class="lnt">262 -</span><span class="lnt">263 -</span><span class="lnt">264 -</span><span class="lnt">265 -</span><span class="lnt">266 -</span><span class="lnt">267 -</span><span class="lnt">268 -</span><span class="lnt">269 -</span><span class="lnt">270 -</span><span class="lnt">271 -</span><span class="lnt">272 -</span><span class="lnt">273 -</span><span class="lnt">274 -</span><span class="lnt">275 -</span><span class="lnt">276 -</span><span class="lnt">277 -</span><span class="lnt">278 -</span><span class="lnt">279 -</span><span class="lnt">280 -</span><span class="lnt">281 -</span><span class="lnt">282 -</span><span class="lnt">283 -</span><span class="lnt">284 -</span><span class="lnt">285 -</span><span class="lnt">286 -</span><span class="lnt">287 -</span><span class="lnt">288 -</span><span class="lnt">289 -</span><span class="lnt">290 -</span><span class="lnt">291 -</span><span class="lnt">292 -</span><span class="lnt">293 -</span><span class="lnt">294 -</span><span class="lnt">295 -</span><span class="lnt">296 -</span><span class="lnt">297 -</span><span class="lnt">298 -</span><span class="lnt">299 -</span><span class="lnt">300 -</span><span class="lnt">301 -</span><span class="lnt">302 -</span><span class="lnt">303 -</span><span class="lnt">304 -</span><span class="lnt">305 -</span><span class="lnt">306 -</span><span class="lnt">307 -</span><span class="lnt">308 -</span><span class="lnt">309 -</span><span class="lnt">310 -</span><span class="lnt">311 -</span><span class="lnt">312 -</span><span class="lnt">313 -</span><span class="lnt">314 -</span><span class="lnt">315 -</span><span class="lnt">316 -</span><span class="lnt">317 -</span><span class="lnt">318 -</span><span class="lnt">319 -</span><span class="lnt">320 -</span><span class="lnt">321 -</span><span class="lnt">322 -</span><span class="lnt">323 -</span><span class="lnt">324 -</span><span class="lnt">325 -</span><span class="lnt">326 -</span><span class="lnt">327 -</span><span class="lnt">328 -</span><span class="lnt">329 -</span><span class="lnt">330 -</span><span class="lnt">331 -</span><span class="lnt">332 -</span><span class="lnt">333 -</span><span class="lnt">334 -</span><span class="lnt">335 -</span><span class="lnt">336 -</span><span class="lnt">337 -</span><span class="lnt">338 -</span><span class="lnt">339 -</span><span class="lnt">340 -</span><span class="lnt">341 -</span><span class="lnt">342 -</span><span class="lnt">343 -</span><span class="lnt">344 -</span><span class="lnt">345 -</span><span class="lnt">346 -</span><span class="lnt">347 -</span><span class="lnt">348 -</span><span class="lnt">349 -</span><span class="lnt">350 -</span><span class="lnt">351 -</span><span class="lnt">352 -</span><span class="lnt">353 -</span><span class="lnt">354 -</span><span class="lnt">355 -</span><span class="lnt">356 -</span><span class="lnt">357 -</span><span class="lnt">358 -</span><span class="lnt">359 -</span><span class="lnt">360 -</span><span class="lnt">361 -</span><span class="lnt">362 -</span><span class="lnt">363 -</span><span class="lnt">364 -</span><span class="lnt">365 -</span><span class="lnt">366 -</span><span class="lnt">367 -</span><span class="lnt">368 -</span><span class="lnt">369 -</span><span class="lnt">370 -</span><span class="lnt">371 -</span><span class="lnt">372 -</span><span class="lnt">373 -</span><span class="lnt">374 -</span><span class="lnt">375 -</span><span class="lnt">376 -</span><span class="lnt">377 -</span><span class="lnt">378 -</span><span class="lnt">379 -</span><span class="lnt">380 -</span><span class="lnt">381 -</span><span class="lnt">382 -</span><span class="lnt">383 -</span><span class="lnt">384 -</span><span class="lnt">385 -</span><span class="lnt">386 -</span><span class="lnt">387 -</span><span class="lnt">388 -</span><span class="lnt">389 -</span><span class="lnt">390 -</span><span class="lnt">391 -</span><span class="lnt">392 -</span><span class="lnt">393 -</span><span class="lnt">394 -</span><span class="lnt">395 -</span><span class="lnt">396 -</span><span class="lnt">397 -</span><span class="lnt">398 -</span><span class="lnt">399 -</span><span class="lnt">400 -</span><span class="lnt">401 -</span><span class="lnt">402 -</span><span class="lnt">403 -</span><span class="lnt">404 -</span><span class="lnt">405 -</span><span class="lnt">406 -</span><span class="lnt">407 -</span><span class="lnt">408 -</span><span class="lnt">409 -</span><span class="lnt">410 -</span><span class="lnt">411 -</span><span class="lnt">412 -</span><span class="lnt">413 -</span><span class="lnt">414 -</span><span class="lnt">415 -</span><span class="lnt">416 -</span><span class="lnt">417 -</span><span class="lnt">418 -</span><span class="lnt">419 -</span><span class="lnt">420 -</span><span class="lnt">421 -</span><span class="lnt">422 -</span><span class="lnt">423 -</span><span class="lnt">424 -</span><span class="lnt">425 -</span><span class="lnt">426 -</span><span class="lnt">427 -</span><span class="lnt">428 -</span><span class="lnt">429 -</span><span class="lnt">430 -</span><span class="lnt">431 -</span><span class="lnt">432 -</span><span class="lnt">433 -</span><span class="lnt">434 -</span><span class="lnt">435 -</span><span class="lnt">436 -</span><span class="lnt">437 -</span><span class="lnt">438 -</span><span class="lnt">439 -</span><span class="lnt">440 -</span><span class="lnt">441 -</span><span class="lnt">442 -</span><span class="lnt">443 -</span><span class="lnt">444 -</span><span class="lnt">445 -</span><span class="lnt">446 -</span><span class="lnt">447 -</span><span class="lnt">448 -</span><span class="lnt">449 -</span><span class="lnt">450 -</span><span class="lnt">451 -</span><span class="lnt">452 -</span><span class="lnt">453 -</span><span class="lnt">454 -</span><span class="lnt">455 -</span><span class="lnt">456 -</span><span class="lnt">457 -</span><span class="lnt">458 -</span><span class="lnt">459 -</span><span class="lnt">460 -</span><span class="lnt">461 -</span><span class="lnt">462 -</span><span class="lnt">463 -</span><span class="lnt">464 -</span><span class="lnt">465 -</span><span class="lnt">466 -</span><span class="lnt">467 -</span><span class="lnt">468 -</span><span class="lnt">469 -</span><span class="lnt">470 -</span><span class="lnt">471 -</span><span class="lnt">472 -</span><span class="lnt">473 -</span><span class="lnt">474 -</span><span class="lnt">475 -</span><span class="lnt">476 -</span><span class="lnt">477 -</span><span class="lnt">478 -</span><span class="lnt">479 -</span><span class="lnt">480 -</span><span class="lnt">481 -</span><span class="lnt">482 -</span><span class="lnt">483 -</span><span class="lnt">484 -</span><span class="lnt">485 -</span><span class="lnt">486 -</span><span class="lnt">487 -</span><span class="lnt">488 -</span><span class="lnt">489 -</span><span class="lnt">490 -</span><span class="lnt">491 -</span><span class="lnt">492 -</span><span class="lnt">493 -</span><span class="lnt">494 -</span><span class="lnt">495 -</span><span class="lnt">496 -</span><span class="lnt">497 -</span><span class="lnt">498 -</span><span class="lnt">499 -</span><span class="lnt">500 -</span><span class="lnt">501 -</span><span class="lnt">502 -</span><span class="lnt">503 -</span><span class="lnt">504 -</span><span class="lnt">505 -</span><span class="lnt">506 -</span><span class="lnt">507 -</span><span class="lnt">508 -</span><span class="lnt">509 -</span><span class="lnt">510 -</span><span class="lnt">511 -</span><span class="lnt">512 -</span><span class="lnt">513 -</span><span class="lnt">514 -</span><span class="lnt">515 -</span><span class="lnt">516 -</span><span class="lnt">517 -</span><span class="lnt">518 -</span><span class="lnt">519 -</span><span class="lnt">520 -</span><span class="lnt">521 -</span><span class="lnt">522 -</span><span class="lnt">523 -</span><span class="lnt">524 -</span><span class="lnt">525 -</span><span class="lnt">526 -</span><span class="lnt">527 -</span><span class="lnt">528 -</span><span class="lnt">529 -</span><span class="lnt">530 -</span><span class="lnt">531 -</span><span class="lnt">532 -</span><span class="lnt">533 -</span><span class="lnt">534 -</span><span class="lnt">535 -</span><span class="lnt">536 -</span><span class="lnt">537 -</span><span class="lnt">538 -</span><span class="lnt">539 -</span><span class="lnt">540 -</span><span class="lnt">541 -</span><span class="lnt">542 -</span><span class="lnt">543 -</span><span class="lnt">544 -</span><span class="lnt">545 -</span><span class="lnt">546 -</span><span class="lnt">547 -</span><span class="lnt">548 -</span><span class="lnt">549 -</span><span class="lnt">550 -</span><span class="lnt">551 -</span><span class="lnt">552 -</span><span class="lnt">553 -</span><span class="lnt">554 -</span><span class="lnt">555 -</span><span class="lnt">556 -</span><span class="lnt">557 -</span><span class="lnt">558 -</span><span class="lnt">559 -</span><span class="lnt">560 -</span><span class="lnt">561 -</span><span class="lnt">562 -</span><span class="lnt">563 -</span><span class="lnt">564 -</span><span class="lnt">565 -</span><span class="lnt">566 -</span><span class="lnt">567 -</span><span class="lnt">568 -</span><span class="lnt">569 -</span><span class="lnt">570 -</span><span class="lnt">571 -</span><span class="lnt">572 -</span><span class="lnt">573 -</span><span class="lnt">574 -</span><span class="lnt">575 -</span><span class="lnt">576 -</span><span class="lnt">577 -</span><span class="lnt">578 -</span><span class="lnt">579 -</span><span class="lnt">580 -</span><span class="lnt">581 -</span><span class="lnt">582 -</span><span class="lnt">583 -</span><span class="lnt">584 -</span><span class="lnt">585 -</span><span class="lnt">586 -</span><span class="lnt">587 -</span><span class="lnt">588 -</span><span class="lnt">589 -</span><span class="lnt">590 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">┌─<span class="o">[</span>loading<span class="o">]</span> <span class="o">[</span>/tmp/virgool<span class="o">]</span> <span class="o">[</span>0<span class="o">]</span> -</span></span><span class="line"><span class="cl">│ -</span></span><span class="line"><span class="cl">└──〉wget -nd -E -p -k -H https://vrgl.ir/c3fVa -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:03-- https://vrgl.ir/c3fVa -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">302</span> Found -</span></span><span class="line"><span class="cl">Location: https://virgool.io/@Novo/rsa-encryption-ao1poasym4cf <span class="o">[</span>following<span class="o">]</span> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:04-- https://virgool.io/@Novo/rsa-encryption-ao1poasym4cf -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/html<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘c3fVa.html’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">c3fVa.html <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 61.30K 200KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:06 <span class="o">(</span><span class="m">200</span> KB/s<span class="o">)</span> - ‘c3fVa.html’ saved <span class="o">[</span>62773<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:06-- https://virgool.io/robots.txt -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>document<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘robots.txt’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">robots.txt <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">484</span> --.-KB/s in 0s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:07 <span class="o">(</span>85.7 MB/s<span class="o">)</span> - ‘robots.txt’ saved <span class="o">[</span>484<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:07-- https://www.googletagmanager.com/robots.txt -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">404</span> Not Found -</span></span><span class="line"><span class="cl">2022-01-18 06:41:08 ERROR 404: Not Found. -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:08-- https://files.virgool.io/robots.txt -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">403</span> Forbidden -</span></span><span class="line"><span class="cl">2022-01-18 06:41:09 ERROR 403: Forbidden. -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:09-- https://static.cloudflareinsights.com/robots.txt -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">522</span> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:26 ERROR 522: <span class="o">(</span>no description<span class="o">)</span>. -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:26-- https://virgool.io/images/favicon.png?v<span class="o">=</span>v2.6.15 -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">9855</span> <span class="o">(</span>9.6K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘favicon.png?v<span class="o">=</span>v2.6.15’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">favicon.png?v<span class="o">=</span>v2.6.15 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 9.62K --.-KB/s in 0.07s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:27 <span class="o">(</span><span class="m">130</span> KB/s<span class="o">)</span> - ‘favicon.png?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>9855/9855<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:27-- https://virgool.io/css/styles.css?v<span class="o">=</span>v2.6.15 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/css<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘styles.css?v<span class="o">=</span>v2.6.15.css’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">styles.css?v<span class="o">=</span>v2.6.15.css <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 903.60K 592KB/s in 1.5s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:28 <span class="o">(</span><span class="m">592</span> KB/s<span class="o">)</span> - ‘styles.css?v<span class="o">=</span>v2.6.15.css’ saved <span class="o">[</span>925284<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:28-- https://virgool.test/robots.txt -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:28-- https://www.googletagmanager.com/ns.html?id<span class="o">=</span>GTM-5GS688K -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/html<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘ns.html?id<span class="o">=</span>GTM-5GS688K.html’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">ns.html?id<span class="o">=</span>GTM-5GS688K.html <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">266</span> --.-KB/s in 0s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:29 <span class="o">(</span>29.4 MB/s<span class="o">)</span> - ‘ns.html?id<span class="o">=</span>GTM-5GS688K.html’ saved <span class="o">[</span>266<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:29-- https://files.virgool.io/upload/users/31434/avatar/1C4LLE.png?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">39194</span> <span class="o">(</span>38K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_ 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 38.28K 173KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:30 <span class="o">(</span><span class="m">173</span> KB/s<span class="o">)</span> - ‘1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>39194/39194<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:30-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/qhokakomwyb5.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">179870</span> <span class="o">(</span>176K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘qhokakomwyb5.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">qhokakomwyb5.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 175.65K 567KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">567</span> KB/s<span class="o">)</span> - ‘qhokakomwyb5.png’ saved <span class="o">[</span>179870/179870<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/v1xnwpnewfys.webp -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">12770</span> <span class="o">(</span>12K<span class="o">)</span> <span class="o">[</span>image/webp<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘v1xnwpnewfys.webp’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">v1xnwpnewfys.webp 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 12.47K --.-KB/s in 0.07s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">180</span> KB/s<span class="o">)</span> - ‘v1xnwpnewfys.webp’ saved <span class="o">[</span>12770/12770<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/d28hpu2detkl.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">92847</span> <span class="o">(</span>91K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘d28hpu2detkl.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">d28hpu2detkl.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 90.67K --.-KB/s in 0.09s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">969</span> KB/s<span class="o">)</span> - ‘d28hpu2detkl.png’ saved <span class="o">[</span>92847/92847<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/rhyykrc8azq0.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">17539</span> <span class="o">(</span>17K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘rhyykrc8azq0.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">rhyykrc8azq0.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 17.13K --.-KB/s in 0.007s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>2.47 MB/s<span class="o">)</span> - ‘rhyykrc8azq0.png’ saved <span class="o">[</span>17539/17539<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/fjtc1ydzkuse.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">108524</span> <span class="o">(</span>106K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘fjtc1ydzkuse.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">fjtc1ydzkuse.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 105.98K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>1.06 MB/s<span class="o">)</span> - ‘fjtc1ydzkuse.png’ saved <span class="o">[</span>108524/108524<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/gfqhgyp18oic.jpeg -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">132085</span> <span class="o">(</span>129K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘gfqhgyp18oic.jpeg’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">gfqhgyp18oic.jpeg 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 128.99K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>1.28 MB/s<span class="o">)</span> - ‘gfqhgyp18oic.jpeg’ saved <span class="o">[</span>132085/132085<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/me0mpjtdmyom.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">113489</span> <span class="o">(</span>111K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘me0mpjtdmyom.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">me0mpjtdmyom.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 110.83K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span><span class="m">814</span> KB/s<span class="o">)</span> - ‘me0mpjtdmyom.png’ saved <span class="o">[</span>113489/113489<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/of7krju6oqzk.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">105746</span> <span class="o">(</span>103K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘of7krju6oqzk.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">of7krju6oqzk.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 103.27K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span>1.25 MB/s<span class="o">)</span> - ‘of7krju6oqzk.png’ saved <span class="o">[</span>105746/105746<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/oqwhflg4gbnq.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">120994</span> <span class="o">(</span>118K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘oqwhflg4gbnq.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">oqwhflg4gbnq.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 118.16K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span>1.14 MB/s<span class="o">)</span> - ‘oqwhflg4gbnq.png’ saved <span class="o">[</span>120994/120994<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/taqjnfnuzxcx.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">122678</span> <span class="o">(</span>120K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘taqjnfnuzxcx.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">taqjnfnuzxcx.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 119.80K --.-KB/s in 0.06s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span>2.00 MB/s<span class="o">)</span> - ‘taqjnfnuzxcx.png’ saved <span class="o">[</span>122678/122678<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/63/posts/qwqrubplfaau/g8vai2incgna.jpeg?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">88292</span> <span class="o">(</span>86K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fre 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 86.22K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span><span class="m">824</span> KB/s<span class="o">)</span> - ‘g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>88292/88292<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/63/avatar/o8jiNe.png?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">32037</span> <span class="o">(</span>31K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_ 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 31.29K --.-KB/s in 0.06s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span><span class="m">558</span> KB/s<span class="o">)</span> - ‘o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>32037/32037<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/31434/posts/e3oydlcfkr5e/figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">30356</span> <span class="o">(</span>30K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fre 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 29.64K --.-KB/s in 0.07s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span><span class="m">401</span> KB/s<span class="o">)</span> - ‘figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>30356/30356<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://files.virgool.io/upload/users/316150/posts/r8rhw88uh1xh/cs1ugyelv3zw.png?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">34459</span> <span class="o">(</span>34K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fres 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 33.65K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span><span class="m">399</span> KB/s<span class="o">)</span> - ‘cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>34459/34459<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://files.virgool.io/upload/users/316150/avatar/8sz7Rs.jpeg?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">14764</span> <span class="o">(</span>14K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 14.42K --.-KB/s in 0.007s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span>2.11 MB/s<span class="o">)</span> - ‘8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>14764/14764<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://virgool.io/js/commons.js?v<span class="o">=</span>v2.6.15 -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/javascript<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘commons.js?v<span class="o">=</span>v2.6.15’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">commons.js?v<span class="o">=</span>v2.6.15 <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 997.55K 337KB/s in 3.0s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:39 <span class="o">(</span><span class="m">337</span> KB/s<span class="o">)</span> - ‘commons.js?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>1021492<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:39-- https://virgool.io/js/main.js?v<span class="o">=</span>v2.6.15 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/javascript<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘main.js?v<span class="o">=</span>v2.6.15’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">main.js?v<span class="o">=</span>v2.6.15 <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 1.21M 580KB/s in 2.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:41 <span class="o">(</span><span class="m">580</span> KB/s<span class="o">)</span> - ‘main.js?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>1267632<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:41-- https://static.cloudflareinsights.com/beacon.min.js/v652eace1692a40cfa3763df669d7439c1639079717194 -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">13970</span> <span class="o">(</span>14K<span class="o">)</span> <span class="o">[</span>text/javascript<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘v652eace1692a40cfa3763df669d7439c1639079717194’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">v652eace1692a40cfa3763df669d743 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 13.64K --.-KB/s in 0.02s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:42 <span class="o">(</span><span class="m">600</span> KB/s<span class="o">)</span> - ‘v652eace1692a40cfa3763df669d7439c1639079717194’ saved <span class="o">[</span>13970/13970<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:42-- https://virgool.io/fonts/vazir/Vazir-Thin.ttf -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">98924</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Thin.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.61K 140KB/s in 0.7s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:43 <span class="o">(</span><span class="m">140</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.ttf’ saved <span class="o">[</span>98924/98924<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:43-- https://virgool.io/fonts/vazir/Vazir-Thin.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Thin.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.80K 276KB/s in 0.4s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:44 <span class="o">(</span><span class="m">276</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.eot?’ saved <span class="o">[</span>99120<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:44-- https://virgool.io/fonts/vazir/Vazir-Thin.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">54068</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Thin.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.80K --.-KB/s in 0.07s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:45 <span class="o">(</span><span class="m">770</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.woff’ saved <span class="o">[</span>54068/54068<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:45-- https://virgool.io/fonts/vazir/Vazir-Thin.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">43000</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Thin.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 41.99K --.-KB/s in 0.006s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:46 <span class="o">(</span>6.59 MB/s<span class="o">)</span> - ‘Vazir-Thin.woff2’ saved <span class="o">[</span>43000/43000<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:46-- https://virgool.io/fonts/vazir/Vazir-Light.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">105360</span> <span class="o">(</span>103K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Light.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 102.89K 478KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:46 <span class="o">(</span><span class="m">478</span> KB/s<span class="o">)</span> - ‘Vazir-Light.ttf’ saved <span class="o">[</span>105360/105360<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:46-- https://virgool.io/fonts/vazir/Vazir-Light.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Light.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 103.09K 470KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:47 <span class="o">(</span><span class="m">470</span> KB/s<span class="o">)</span> - ‘Vazir-Light.eot?’ saved <span class="o">[</span>105562<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:47-- https://virgool.io/fonts/vazir/Vazir-Light.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">59688</span> <span class="o">(</span>58K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Light.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 58.29K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:48 <span class="o">(</span><span class="m">758</span> KB/s<span class="o">)</span> - ‘Vazir-Light.woff’ saved <span class="o">[</span>59688/59688<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:48-- https://virgool.io/fonts/vazir/Vazir-Light.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">48168</span> <span class="o">(</span>47K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Light.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 47.04K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:48 <span class="o">(</span><span class="m">570</span> KB/s<span class="o">)</span> - ‘Vazir-Light.woff2’ saved <span class="o">[</span>48168/48168<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:48-- https://virgool.io/fonts/vazir/Vazir-Regular.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">98376</span> <span class="o">(</span>96K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Regular.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.07K 435KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:49 <span class="o">(</span><span class="m">435</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.ttf’ saved <span class="o">[</span>98376/98376<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:49-- https://virgool.io/fonts/vazir/Vazir-Regular.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Regular.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.26K 285KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:50 <span class="o">(</span><span class="m">285</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.eot?’ saved <span class="o">[</span>98574<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:50-- https://virgool.io/fonts/vazir/Vazir-Regular.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">53744</span> <span class="o">(</span>52K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Regular.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.48K --.-KB/s in 0.05s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:51 <span class="o">(</span>1.10 MB/s<span class="o">)</span> - ‘Vazir-Regular.woff’ saved <span class="o">[</span>53744/53744<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:51-- https://virgool.io/fonts/vazir/Vazir-Regular.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">42744</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Regular.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 41.74K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:51 <span class="o">(</span><span class="m">412</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.woff2’ saved <span class="o">[</span>42744/42744<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:51-- https://virgool.io/fonts/vazir/Vazir-Medium.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">98892</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Medium.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.57K 606KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:52 <span class="o">(</span><span class="m">606</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.ttf’ saved <span class="o">[</span>98892/98892<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:52-- https://virgool.io/fonts/vazir/Vazir-Medium.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Medium.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.78K 347KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:53 <span class="o">(</span><span class="m">347</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.eot?’ saved <span class="o">[</span>99100<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:53-- https://virgool.io/fonts/vazir/Vazir-Medium.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">54120</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Medium.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.85K 125KB/s in 0.4s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:54 <span class="o">(</span><span class="m">125</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.woff’ saved <span class="o">[</span>54120/54120<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:54-- https://virgool.io/fonts/vazir/Vazir-Medium.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">43152</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Medium.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.14K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:54 <span class="o">(</span><span class="m">541</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.woff2’ saved <span class="o">[</span>43152/43152<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:54-- https://virgool.io/fonts/vazir/Vazir-Bold.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">99840</span> <span class="o">(</span>98K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Bold.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 97.50K --.-KB/s in 0.04s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:55 <span class="o">(</span>2.61 MB/s<span class="o">)</span> - ‘Vazir-Bold.ttf’ saved <span class="o">[</span>99840/99840<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:55-- https://virgool.io/fonts/vazir/Vazir-Bold.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Bold.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 97.68K 560KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:56 <span class="o">(</span><span class="m">560</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.eot?’ saved <span class="o">[</span>100026<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:56-- https://virgool.io/fonts/vazir/Vazir-Bold.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">54560</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Bold.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 53.28K --.-KB/s in 0.06s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:56 <span class="o">(</span><span class="m">917</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.woff’ saved <span class="o">[</span>54560/54560<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:56-- https://virgool.io/fonts/vazir/Vazir-Bold.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">43604</span> <span class="o">(</span>43K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Bold.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.58K --.-KB/s in 0.06s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:57 <span class="o">(</span><span class="m">657</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.woff2’ saved <span class="o">[</span>43604/43604<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:57-- https://virgool.io/fonts/vazir/Vazir-Black.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">99772</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Black.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 97.43K --.-KB/s in 0.04s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:57 <span class="o">(</span>2.18 MB/s<span class="o">)</span> - ‘Vazir-Black.ttf’ saved <span class="o">[</span>99772/99772<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:57-- https://virgool.io/fonts/vazir/Vazir-Black.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Black.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 97.63K 478KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:58 <span class="o">(</span><span class="m">478</span> KB/s<span class="o">)</span> - ‘Vazir-Black.eot?’ saved <span class="o">[</span>99974<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:58-- https://virgool.io/fonts/vazir/Vazir-Black.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">54652</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Black.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 53.37K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:59 <span class="o">(</span><span class="m">691</span> KB/s<span class="o">)</span> - ‘Vazir-Black.woff’ saved <span class="o">[</span>54652/54652<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:59-- https://virgool.io/fonts/vazir/Vazir-Black.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">43332</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Black.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.32K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:00 <span class="o">(</span><span class="m">510</span> KB/s<span class="o">)</span> - ‘Vazir-Black.woff2’ saved <span class="o">[</span>43332/43332<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:00-- https://virgool.io/fonts/fontawesome/fa-solid-900.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">202616</span> <span class="o">(</span>198K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">fa-solid-900.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 197.87K 501KB/s in 0.4s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:01 <span class="o">(</span><span class="m">501</span> KB/s<span class="o">)</span> - ‘fa-solid-900.ttf’ saved <span class="o">[</span>202616/202616<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:01-- https://virgool.io/fonts/fontawesome/fa-solid-900.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">404</span> Not Found -</span></span><span class="line"><span class="cl">2022-01-18 06:42:01 ERROR 404: Not Found. -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:01-- https://virgool.io/fonts/fontawesome/fa-solid-900.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">103300</span> <span class="o">(</span>101K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">fa-solid-900.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 100.88K 358KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:02 <span class="o">(</span><span class="m">358</span> KB/s<span class="o">)</span> - ‘fa-solid-900.woff’ saved <span class="o">[</span>103300/103300<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:02-- https://virgool.io/fonts/fontawesome/fa-solid-900.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">79444</span> <span class="o">(</span>78K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">fa-solid-900.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 77.58K 394KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:03 <span class="o">(</span><span class="m">394</span> KB/s<span class="o">)</span> - ‘fa-solid-900.woff2’ saved <span class="o">[</span>79444/79444<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:03-- https://virgool.io/images/icons/plus.svg -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>image/svg+xml<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘plus.svg’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">plus.svg <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">942</span> --.-KB/s in 0.002s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:03 <span class="o">(</span><span class="m">383</span> KB/s<span class="o">)</span> - ‘plus.svg’ saved <span class="o">[</span>942<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:03-- https://virgool.io/images/icons/tick.svg -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>image/svg+xml<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘tick.svg’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">tick.svg <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">942</span> --.-KB/s in 0s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:04 <span class="o">(</span>89.8 MB/s<span class="o">)</span> - ‘tick.svg’ saved <span class="o">[</span>942<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:04-- https://virgool.io/images/typewriter.png -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">172558</span> <span class="o">(</span>169K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘typewriter.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">typewriter.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 168.51K 349KB/s in 0.5s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:05 <span class="o">(</span><span class="m">349</span> KB/s<span class="o">)</span> - ‘typewriter.png’ saved <span class="o">[</span>172558/172558<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:05-- https://virgool.test/images/download-audio.png -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:05-- https://virgool.test/images/download-ebook.png -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. -</span></span><span class="line"><span class="cl">FINISHED --2022-01-18 06:42:05-- -</span></span><span class="line"><span class="cl">Total wall clock time: 1m 2s -</span></span><span class="line"><span class="cl">Downloaded: <span class="m">54</span> files, 6.6M in 14s <span class="o">(</span><span class="m">479</span> KB/s<span class="o">)</span> -</span></span><span class="line"><span class="cl">Converting links in ns.html?id<span class="o">=</span>GTM-5GS688K.html... nothing to <span class="k">do</span>. -</span></span><span class="line"><span class="cl">Converting links in c3fVa.html... 38. -</span></span><span class="line"><span class="cl">31-7 -</span></span><span class="line"><span class="cl">Converting links in styles.css?v<span class="o">=</span>v2.6.15.css... 35. -</span></span><span class="line"><span class="cl">34-1 -</span></span><span class="line"><span class="cl">Converted links in <span class="m">3</span> files in 0.06 seconds. -</span></span></code></pre></td></tr></table> -</div> -</div> - - - - +هست رو دانلود می‌کنم.</li> +</ul> +</br> +</div> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt"> 10 +</span><span class="lnt"> 11 +</span><span class="lnt"> 12 +</span><span class="lnt"> 13 +</span><span class="lnt"> 14 +</span><span class="lnt"> 15 +</span><span class="lnt"> 16 +</span><span class="lnt"> 17 +</span><span class="lnt"> 18 +</span><span class="lnt"> 19 +</span><span class="lnt"> 20 +</span><span class="lnt"> 21 +</span><span class="lnt"> 22 +</span><span class="lnt"> 23 +</span><span class="lnt"> 24 +</span><span class="lnt"> 25 +</span><span class="lnt"> 26 +</span><span class="lnt"> 27 +</span><span class="lnt"> 28 +</span><span class="lnt"> 29 +</span><span class="lnt"> 30 +</span><span class="lnt"> 31 +</span><span class="lnt"> 32 +</span><span class="lnt"> 33 +</span><span class="lnt"> 34 +</span><span class="lnt"> 35 +</span><span class="lnt"> 36 +</span><span class="lnt"> 37 +</span><span class="lnt"> 38 +</span><span class="lnt"> 39 +</span><span class="lnt"> 40 +</span><span class="lnt"> 41 +</span><span class="lnt"> 42 +</span><span class="lnt"> 43 +</span><span class="lnt"> 44 +</span><span class="lnt"> 45 +</span><span class="lnt"> 46 +</span><span class="lnt"> 47 +</span><span class="lnt"> 48 +</span><span class="lnt"> 49 +</span><span class="lnt"> 50 +</span><span class="lnt"> 51 +</span><span class="lnt"> 52 +</span><span class="lnt"> 53 +</span><span class="lnt"> 54 +</span><span class="lnt"> 55 +</span><span class="lnt"> 56 +</span><span class="lnt"> 57 +</span><span class="lnt"> 58 +</span><span class="lnt"> 59 +</span><span class="lnt"> 60 +</span><span class="lnt"> 61 +</span><span class="lnt"> 62 +</span><span class="lnt"> 63 +</span><span class="lnt"> 64 +</span><span class="lnt"> 65 +</span><span class="lnt"> 66 +</span><span class="lnt"> 67 +</span><span class="lnt"> 68 +</span><span class="lnt"> 69 +</span><span class="lnt"> 70 +</span><span class="lnt"> 71 +</span><span class="lnt"> 72 +</span><span class="lnt"> 73 +</span><span class="lnt"> 74 +</span><span class="lnt"> 75 +</span><span class="lnt"> 76 +</span><span class="lnt"> 77 +</span><span class="lnt"> 78 +</span><span class="lnt"> 79 +</span><span class="lnt"> 80 +</span><span class="lnt"> 81 +</span><span class="lnt"> 82 +</span><span class="lnt"> 83 +</span><span class="lnt"> 84 +</span><span class="lnt"> 85 +</span><span class="lnt"> 86 +</span><span class="lnt"> 87 +</span><span class="lnt"> 88 +</span><span class="lnt"> 89 +</span><span class="lnt"> 90 +</span><span class="lnt"> 91 +</span><span class="lnt"> 92 +</span><span class="lnt"> 93 +</span><span class="lnt"> 94 +</span><span class="lnt"> 95 +</span><span class="lnt"> 96 +</span><span class="lnt"> 97 +</span><span class="lnt"> 98 +</span><span class="lnt"> 99 +</span><span class="lnt">100 +</span><span class="lnt">101 +</span><span class="lnt">102 +</span><span class="lnt">103 +</span><span class="lnt">104 +</span><span class="lnt">105 +</span><span class="lnt">106 +</span><span class="lnt">107 +</span><span class="lnt">108 +</span><span class="lnt">109 +</span><span class="lnt">110 +</span><span class="lnt">111 +</span><span class="lnt">112 +</span><span class="lnt">113 +</span><span class="lnt">114 +</span><span class="lnt">115 +</span><span class="lnt">116 +</span><span class="lnt">117 +</span><span class="lnt">118 +</span><span class="lnt">119 +</span><span class="lnt">120 +</span><span class="lnt">121 +</span><span class="lnt">122 +</span><span class="lnt">123 +</span><span class="lnt">124 +</span><span class="lnt">125 +</span><span class="lnt">126 +</span><span class="lnt">127 +</span><span class="lnt">128 +</span><span class="lnt">129 +</span><span class="lnt">130 +</span><span class="lnt">131 +</span><span class="lnt">132 +</span><span class="lnt">133 +</span><span class="lnt">134 +</span><span class="lnt">135 +</span><span class="lnt">136 +</span><span class="lnt">137 +</span><span class="lnt">138 +</span><span class="lnt">139 +</span><span class="lnt">140 +</span><span class="lnt">141 +</span><span class="lnt">142 +</span><span class="lnt">143 +</span><span class="lnt">144 +</span><span class="lnt">145 +</span><span class="lnt">146 +</span><span class="lnt">147 +</span><span class="lnt">148 +</span><span class="lnt">149 +</span><span class="lnt">150 +</span><span class="lnt">151 +</span><span class="lnt">152 +</span><span class="lnt">153 +</span><span class="lnt">154 +</span><span class="lnt">155 +</span><span class="lnt">156 +</span><span class="lnt">157 +</span><span class="lnt">158 +</span><span class="lnt">159 +</span><span class="lnt">160 +</span><span class="lnt">161 +</span><span class="lnt">162 +</span><span class="lnt">163 +</span><span class="lnt">164 +</span><span class="lnt">165 +</span><span class="lnt">166 +</span><span class="lnt">167 +</span><span class="lnt">168 +</span><span class="lnt">169 +</span><span class="lnt">170 +</span><span class="lnt">171 +</span><span class="lnt">172 +</span><span class="lnt">173 +</span><span class="lnt">174 +</span><span class="lnt">175 +</span><span class="lnt">176 +</span><span class="lnt">177 +</span><span class="lnt">178 +</span><span class="lnt">179 +</span><span class="lnt">180 +</span><span class="lnt">181 +</span><span class="lnt">182 +</span><span class="lnt">183 +</span><span class="lnt">184 +</span><span class="lnt">185 +</span><span class="lnt">186 +</span><span class="lnt">187 +</span><span class="lnt">188 +</span><span class="lnt">189 +</span><span class="lnt">190 +</span><span class="lnt">191 +</span><span class="lnt">192 +</span><span class="lnt">193 +</span><span class="lnt">194 +</span><span class="lnt">195 +</span><span class="lnt">196 +</span><span class="lnt">197 +</span><span class="lnt">198 +</span><span class="lnt">199 +</span><span class="lnt">200 +</span><span class="lnt">201 +</span><span class="lnt">202 +</span><span class="lnt">203 +</span><span class="lnt">204 +</span><span class="lnt">205 +</span><span class="lnt">206 +</span><span class="lnt">207 +</span><span class="lnt">208 +</span><span class="lnt">209 +</span><span class="lnt">210 +</span><span class="lnt">211 +</span><span class="lnt">212 +</span><span class="lnt">213 +</span><span class="lnt">214 +</span><span class="lnt">215 +</span><span class="lnt">216 +</span><span class="lnt">217 +</span><span class="lnt">218 +</span><span class="lnt">219 +</span><span class="lnt">220 +</span><span class="lnt">221 +</span><span class="lnt">222 +</span><span class="lnt">223 +</span><span class="lnt">224 +</span><span class="lnt">225 +</span><span class="lnt">226 +</span><span class="lnt">227 +</span><span class="lnt">228 +</span><span class="lnt">229 +</span><span class="lnt">230 +</span><span class="lnt">231 +</span><span class="lnt">232 +</span><span class="lnt">233 +</span><span class="lnt">234 +</span><span class="lnt">235 +</span><span class="lnt">236 +</span><span class="lnt">237 +</span><span class="lnt">238 +</span><span class="lnt">239 +</span><span class="lnt">240 +</span><span class="lnt">241 +</span><span class="lnt">242 +</span><span class="lnt">243 +</span><span class="lnt">244 +</span><span class="lnt">245 +</span><span class="lnt">246 +</span><span class="lnt">247 +</span><span class="lnt">248 +</span><span class="lnt">249 +</span><span class="lnt">250 +</span><span class="lnt">251 +</span><span class="lnt">252 +</span><span class="lnt">253 +</span><span class="lnt">254 +</span><span class="lnt">255 +</span><span class="lnt">256 +</span><span class="lnt">257 +</span><span class="lnt">258 +</span><span class="lnt">259 +</span><span class="lnt">260 +</span><span class="lnt">261 +</span><span class="lnt">262 +</span><span class="lnt">263 +</span><span class="lnt">264 +</span><span class="lnt">265 +</span><span class="lnt">266 +</span><span class="lnt">267 +</span><span class="lnt">268 +</span><span class="lnt">269 +</span><span class="lnt">270 +</span><span class="lnt">271 +</span><span class="lnt">272 +</span><span class="lnt">273 +</span><span class="lnt">274 +</span><span class="lnt">275 +</span><span class="lnt">276 +</span><span class="lnt">277 +</span><span class="lnt">278 +</span><span class="lnt">279 +</span><span class="lnt">280 +</span><span class="lnt">281 +</span><span class="lnt">282 +</span><span class="lnt">283 +</span><span class="lnt">284 +</span><span class="lnt">285 +</span><span class="lnt">286 +</span><span class="lnt">287 +</span><span class="lnt">288 +</span><span class="lnt">289 +</span><span class="lnt">290 +</span><span class="lnt">291 +</span><span class="lnt">292 +</span><span class="lnt">293 +</span><span class="lnt">294 +</span><span class="lnt">295 +</span><span class="lnt">296 +</span><span class="lnt">297 +</span><span class="lnt">298 +</span><span class="lnt">299 +</span><span class="lnt">300 +</span><span class="lnt">301 +</span><span class="lnt">302 +</span><span class="lnt">303 +</span><span class="lnt">304 +</span><span class="lnt">305 +</span><span class="lnt">306 +</span><span class="lnt">307 +</span><span class="lnt">308 +</span><span class="lnt">309 +</span><span class="lnt">310 +</span><span class="lnt">311 +</span><span class="lnt">312 +</span><span class="lnt">313 +</span><span class="lnt">314 +</span><span class="lnt">315 +</span><span class="lnt">316 +</span><span class="lnt">317 +</span><span class="lnt">318 +</span><span class="lnt">319 +</span><span class="lnt">320 +</span><span class="lnt">321 +</span><span class="lnt">322 +</span><span class="lnt">323 +</span><span class="lnt">324 +</span><span class="lnt">325 +</span><span class="lnt">326 +</span><span class="lnt">327 +</span><span class="lnt">328 +</span><span class="lnt">329 +</span><span class="lnt">330 +</span><span class="lnt">331 +</span><span class="lnt">332 +</span><span class="lnt">333 +</span><span class="lnt">334 +</span><span class="lnt">335 +</span><span class="lnt">336 +</span><span class="lnt">337 +</span><span class="lnt">338 +</span><span class="lnt">339 +</span><span class="lnt">340 +</span><span class="lnt">341 +</span><span class="lnt">342 +</span><span class="lnt">343 +</span><span class="lnt">344 +</span><span class="lnt">345 +</span><span class="lnt">346 +</span><span class="lnt">347 +</span><span class="lnt">348 +</span><span class="lnt">349 +</span><span class="lnt">350 +</span><span class="lnt">351 +</span><span class="lnt">352 +</span><span class="lnt">353 +</span><span class="lnt">354 +</span><span class="lnt">355 +</span><span class="lnt">356 +</span><span class="lnt">357 +</span><span class="lnt">358 +</span><span class="lnt">359 +</span><span class="lnt">360 +</span><span class="lnt">361 +</span><span class="lnt">362 +</span><span class="lnt">363 +</span><span class="lnt">364 +</span><span class="lnt">365 +</span><span class="lnt">366 +</span><span class="lnt">367 +</span><span class="lnt">368 +</span><span class="lnt">369 +</span><span class="lnt">370 +</span><span class="lnt">371 +</span><span class="lnt">372 +</span><span class="lnt">373 +</span><span class="lnt">374 +</span><span class="lnt">375 +</span><span class="lnt">376 +</span><span class="lnt">377 +</span><span class="lnt">378 +</span><span class="lnt">379 +</span><span class="lnt">380 +</span><span class="lnt">381 +</span><span class="lnt">382 +</span><span class="lnt">383 +</span><span class="lnt">384 +</span><span class="lnt">385 +</span><span class="lnt">386 +</span><span class="lnt">387 +</span><span class="lnt">388 +</span><span class="lnt">389 +</span><span class="lnt">390 +</span><span class="lnt">391 +</span><span class="lnt">392 +</span><span class="lnt">393 +</span><span class="lnt">394 +</span><span class="lnt">395 +</span><span class="lnt">396 +</span><span class="lnt">397 +</span><span class="lnt">398 +</span><span class="lnt">399 +</span><span class="lnt">400 +</span><span class="lnt">401 +</span><span class="lnt">402 +</span><span class="lnt">403 +</span><span class="lnt">404 +</span><span class="lnt">405 +</span><span class="lnt">406 +</span><span class="lnt">407 +</span><span class="lnt">408 +</span><span class="lnt">409 +</span><span class="lnt">410 +</span><span class="lnt">411 +</span><span class="lnt">412 +</span><span class="lnt">413 +</span><span class="lnt">414 +</span><span class="lnt">415 +</span><span class="lnt">416 +</span><span class="lnt">417 +</span><span class="lnt">418 +</span><span class="lnt">419 +</span><span class="lnt">420 +</span><span class="lnt">421 +</span><span class="lnt">422 +</span><span class="lnt">423 +</span><span class="lnt">424 +</span><span class="lnt">425 +</span><span class="lnt">426 +</span><span class="lnt">427 +</span><span class="lnt">428 +</span><span class="lnt">429 +</span><span class="lnt">430 +</span><span class="lnt">431 +</span><span class="lnt">432 +</span><span class="lnt">433 +</span><span class="lnt">434 +</span><span class="lnt">435 +</span><span class="lnt">436 +</span><span class="lnt">437 +</span><span class="lnt">438 +</span><span class="lnt">439 +</span><span class="lnt">440 +</span><span class="lnt">441 +</span><span class="lnt">442 +</span><span class="lnt">443 +</span><span class="lnt">444 +</span><span class="lnt">445 +</span><span class="lnt">446 +</span><span class="lnt">447 +</span><span class="lnt">448 +</span><span class="lnt">449 +</span><span class="lnt">450 +</span><span class="lnt">451 +</span><span class="lnt">452 +</span><span class="lnt">453 +</span><span class="lnt">454 +</span><span class="lnt">455 +</span><span class="lnt">456 +</span><span class="lnt">457 +</span><span class="lnt">458 +</span><span class="lnt">459 +</span><span class="lnt">460 +</span><span class="lnt">461 +</span><span class="lnt">462 +</span><span class="lnt">463 +</span><span class="lnt">464 +</span><span class="lnt">465 +</span><span class="lnt">466 +</span><span class="lnt">467 +</span><span class="lnt">468 +</span><span class="lnt">469 +</span><span class="lnt">470 +</span><span class="lnt">471 +</span><span class="lnt">472 +</span><span class="lnt">473 +</span><span class="lnt">474 +</span><span class="lnt">475 +</span><span class="lnt">476 +</span><span class="lnt">477 +</span><span class="lnt">478 +</span><span class="lnt">479 +</span><span class="lnt">480 +</span><span class="lnt">481 +</span><span class="lnt">482 +</span><span class="lnt">483 +</span><span class="lnt">484 +</span><span class="lnt">485 +</span><span class="lnt">486 +</span><span class="lnt">487 +</span><span class="lnt">488 +</span><span class="lnt">489 +</span><span class="lnt">490 +</span><span class="lnt">491 +</span><span class="lnt">492 +</span><span class="lnt">493 +</span><span class="lnt">494 +</span><span class="lnt">495 +</span><span class="lnt">496 +</span><span class="lnt">497 +</span><span class="lnt">498 +</span><span class="lnt">499 +</span><span class="lnt">500 +</span><span class="lnt">501 +</span><span class="lnt">502 +</span><span class="lnt">503 +</span><span class="lnt">504 +</span><span class="lnt">505 +</span><span class="lnt">506 +</span><span class="lnt">507 +</span><span class="lnt">508 +</span><span class="lnt">509 +</span><span class="lnt">510 +</span><span class="lnt">511 +</span><span class="lnt">512 +</span><span class="lnt">513 +</span><span class="lnt">514 +</span><span class="lnt">515 +</span><span class="lnt">516 +</span><span class="lnt">517 +</span><span class="lnt">518 +</span><span class="lnt">519 +</span><span class="lnt">520 +</span><span class="lnt">521 +</span><span class="lnt">522 +</span><span class="lnt">523 +</span><span class="lnt">524 +</span><span class="lnt">525 +</span><span class="lnt">526 +</span><span class="lnt">527 +</span><span class="lnt">528 +</span><span class="lnt">529 +</span><span class="lnt">530 +</span><span class="lnt">531 +</span><span class="lnt">532 +</span><span class="lnt">533 +</span><span class="lnt">534 +</span><span class="lnt">535 +</span><span class="lnt">536 +</span><span class="lnt">537 +</span><span class="lnt">538 +</span><span class="lnt">539 +</span><span class="lnt">540 +</span><span class="lnt">541 +</span><span class="lnt">542 +</span><span class="lnt">543 +</span><span class="lnt">544 +</span><span class="lnt">545 +</span><span class="lnt">546 +</span><span class="lnt">547 +</span><span class="lnt">548 +</span><span class="lnt">549 +</span><span class="lnt">550 +</span><span class="lnt">551 +</span><span class="lnt">552 +</span><span class="lnt">553 +</span><span class="lnt">554 +</span><span class="lnt">555 +</span><span class="lnt">556 +</span><span class="lnt">557 +</span><span class="lnt">558 +</span><span class="lnt">559 +</span><span class="lnt">560 +</span><span class="lnt">561 +</span><span class="lnt">562 +</span><span class="lnt">563 +</span><span class="lnt">564 +</span><span class="lnt">565 +</span><span class="lnt">566 +</span><span class="lnt">567 +</span><span class="lnt">568 +</span><span class="lnt">569 +</span><span class="lnt">570 +</span><span class="lnt">571 +</span><span class="lnt">572 +</span><span class="lnt">573 +</span><span class="lnt">574 +</span><span class="lnt">575 +</span><span class="lnt">576 +</span><span class="lnt">577 +</span><span class="lnt">578 +</span><span class="lnt">579 +</span><span class="lnt">580 +</span><span class="lnt">581 +</span><span class="lnt">582 +</span><span class="lnt">583 +</span><span class="lnt">584 +</span><span class="lnt">585 +</span><span class="lnt">586 +</span><span class="lnt">587 +</span><span class="lnt">588 +</span><span class="lnt">589 +</span><span class="lnt">590 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">┌─<span class="o">[</span>loading<span class="o">]</span> <span class="o">[</span>/tmp/virgool<span class="o">]</span> <span class="o">[</span>0<span class="o">]</span> +</span></span><span class="line"><span class="cl">│ +</span></span><span class="line"><span class="cl">└──〉wget -nd -E -p -k -H https://vrgl.ir/c3fVa +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:03-- https://vrgl.ir/c3fVa +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">302</span> Found +</span></span><span class="line"><span class="cl">Location: https://virgool.io/@Novo/rsa-encryption-ao1poasym4cf <span class="o">[</span>following<span class="o">]</span> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:04-- https://virgool.io/@Novo/rsa-encryption-ao1poasym4cf +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/html<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘c3fVa.html’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">c3fVa.html <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 61.30K 200KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:06 <span class="o">(</span><span class="m">200</span> KB/s<span class="o">)</span> - ‘c3fVa.html’ saved <span class="o">[</span>62773<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:06-- https://virgool.io/robots.txt +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>document<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘robots.txt’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">robots.txt <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">484</span> --.-KB/s in 0s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:07 <span class="o">(</span>85.7 MB/s<span class="o">)</span> - ‘robots.txt’ saved <span class="o">[</span>484<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:07-- https://www.googletagmanager.com/robots.txt +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">404</span> Not Found +</span></span><span class="line"><span class="cl">2022-01-18 06:41:08 ERROR 404: Not Found. +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:08-- https://files.virgool.io/robots.txt +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">403</span> Forbidden +</span></span><span class="line"><span class="cl">2022-01-18 06:41:09 ERROR 403: Forbidden. +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:09-- https://static.cloudflareinsights.com/robots.txt +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">522</span> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:26 ERROR 522: <span class="o">(</span>no description<span class="o">)</span>. +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:26-- https://virgool.io/images/favicon.png?v<span class="o">=</span>v2.6.15 +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">9855</span> <span class="o">(</span>9.6K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘favicon.png?v<span class="o">=</span>v2.6.15’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">favicon.png?v<span class="o">=</span>v2.6.15 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 9.62K --.-KB/s in 0.07s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:27 <span class="o">(</span><span class="m">130</span> KB/s<span class="o">)</span> - ‘favicon.png?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>9855/9855<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:27-- https://virgool.io/css/styles.css?v<span class="o">=</span>v2.6.15 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/css<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘styles.css?v<span class="o">=</span>v2.6.15.css’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">styles.css?v<span class="o">=</span>v2.6.15.css <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 903.60K 592KB/s in 1.5s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:28 <span class="o">(</span><span class="m">592</span> KB/s<span class="o">)</span> - ‘styles.css?v<span class="o">=</span>v2.6.15.css’ saved <span class="o">[</span>925284<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:28-- https://virgool.test/robots.txt +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:28-- https://www.googletagmanager.com/ns.html?id<span class="o">=</span>GTM-5GS688K +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/html<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘ns.html?id<span class="o">=</span>GTM-5GS688K.html’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">ns.html?id<span class="o">=</span>GTM-5GS688K.html <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">266</span> --.-KB/s in 0s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:29 <span class="o">(</span>29.4 MB/s<span class="o">)</span> - ‘ns.html?id<span class="o">=</span>GTM-5GS688K.html’ saved <span class="o">[</span>266<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:29-- https://files.virgool.io/upload/users/31434/avatar/1C4LLE.png?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">39194</span> <span class="o">(</span>38K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_ 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 38.28K 173KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:30 <span class="o">(</span><span class="m">173</span> KB/s<span class="o">)</span> - ‘1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>39194/39194<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:30-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/qhokakomwyb5.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">179870</span> <span class="o">(</span>176K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘qhokakomwyb5.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">qhokakomwyb5.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 175.65K 567KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">567</span> KB/s<span class="o">)</span> - ‘qhokakomwyb5.png’ saved <span class="o">[</span>179870/179870<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/v1xnwpnewfys.webp +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">12770</span> <span class="o">(</span>12K<span class="o">)</span> <span class="o">[</span>image/webp<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘v1xnwpnewfys.webp’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">v1xnwpnewfys.webp 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 12.47K --.-KB/s in 0.07s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">180</span> KB/s<span class="o">)</span> - ‘v1xnwpnewfys.webp’ saved <span class="o">[</span>12770/12770<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/d28hpu2detkl.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">92847</span> <span class="o">(</span>91K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘d28hpu2detkl.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">d28hpu2detkl.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 90.67K --.-KB/s in 0.09s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">969</span> KB/s<span class="o">)</span> - ‘d28hpu2detkl.png’ saved <span class="o">[</span>92847/92847<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/rhyykrc8azq0.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">17539</span> <span class="o">(</span>17K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘rhyykrc8azq0.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">rhyykrc8azq0.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 17.13K --.-KB/s in 0.007s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>2.47 MB/s<span class="o">)</span> - ‘rhyykrc8azq0.png’ saved <span class="o">[</span>17539/17539<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/fjtc1ydzkuse.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">108524</span> <span class="o">(</span>106K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘fjtc1ydzkuse.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">fjtc1ydzkuse.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 105.98K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>1.06 MB/s<span class="o">)</span> - ‘fjtc1ydzkuse.png’ saved <span class="o">[</span>108524/108524<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/gfqhgyp18oic.jpeg +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">132085</span> <span class="o">(</span>129K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘gfqhgyp18oic.jpeg’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">gfqhgyp18oic.jpeg 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 128.99K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>1.28 MB/s<span class="o">)</span> - ‘gfqhgyp18oic.jpeg’ saved <span class="o">[</span>132085/132085<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/me0mpjtdmyom.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">113489</span> <span class="o">(</span>111K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘me0mpjtdmyom.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">me0mpjtdmyom.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 110.83K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span><span class="m">814</span> KB/s<span class="o">)</span> - ‘me0mpjtdmyom.png’ saved <span class="o">[</span>113489/113489<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/of7krju6oqzk.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">105746</span> <span class="o">(</span>103K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘of7krju6oqzk.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">of7krju6oqzk.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 103.27K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span>1.25 MB/s<span class="o">)</span> - ‘of7krju6oqzk.png’ saved <span class="o">[</span>105746/105746<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/oqwhflg4gbnq.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">120994</span> <span class="o">(</span>118K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘oqwhflg4gbnq.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">oqwhflg4gbnq.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 118.16K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span>1.14 MB/s<span class="o">)</span> - ‘oqwhflg4gbnq.png’ saved <span class="o">[</span>120994/120994<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/taqjnfnuzxcx.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">122678</span> <span class="o">(</span>120K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘taqjnfnuzxcx.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">taqjnfnuzxcx.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 119.80K --.-KB/s in 0.06s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span>2.00 MB/s<span class="o">)</span> - ‘taqjnfnuzxcx.png’ saved <span class="o">[</span>122678/122678<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/63/posts/qwqrubplfaau/g8vai2incgna.jpeg?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">88292</span> <span class="o">(</span>86K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fre 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 86.22K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span><span class="m">824</span> KB/s<span class="o">)</span> - ‘g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>88292/88292<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/63/avatar/o8jiNe.png?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">32037</span> <span class="o">(</span>31K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_ 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 31.29K --.-KB/s in 0.06s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span><span class="m">558</span> KB/s<span class="o">)</span> - ‘o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>32037/32037<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/31434/posts/e3oydlcfkr5e/figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">30356</span> <span class="o">(</span>30K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fre 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 29.64K --.-KB/s in 0.07s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span><span class="m">401</span> KB/s<span class="o">)</span> - ‘figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>30356/30356<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://files.virgool.io/upload/users/316150/posts/r8rhw88uh1xh/cs1ugyelv3zw.png?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">34459</span> <span class="o">(</span>34K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fres 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 33.65K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span><span class="m">399</span> KB/s<span class="o">)</span> - ‘cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>34459/34459<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://files.virgool.io/upload/users/316150/avatar/8sz7Rs.jpeg?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">14764</span> <span class="o">(</span>14K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 14.42K --.-KB/s in 0.007s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span>2.11 MB/s<span class="o">)</span> - ‘8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>14764/14764<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://virgool.io/js/commons.js?v<span class="o">=</span>v2.6.15 +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/javascript<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘commons.js?v<span class="o">=</span>v2.6.15’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">commons.js?v<span class="o">=</span>v2.6.15 <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 997.55K 337KB/s in 3.0s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:39 <span class="o">(</span><span class="m">337</span> KB/s<span class="o">)</span> - ‘commons.js?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>1021492<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:39-- https://virgool.io/js/main.js?v<span class="o">=</span>v2.6.15 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/javascript<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘main.js?v<span class="o">=</span>v2.6.15’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">main.js?v<span class="o">=</span>v2.6.15 <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 1.21M 580KB/s in 2.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:41 <span class="o">(</span><span class="m">580</span> KB/s<span class="o">)</span> - ‘main.js?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>1267632<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:41-- https://static.cloudflareinsights.com/beacon.min.js/v652eace1692a40cfa3763df669d7439c1639079717194 +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">13970</span> <span class="o">(</span>14K<span class="o">)</span> <span class="o">[</span>text/javascript<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘v652eace1692a40cfa3763df669d7439c1639079717194’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">v652eace1692a40cfa3763df669d743 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 13.64K --.-KB/s in 0.02s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:42 <span class="o">(</span><span class="m">600</span> KB/s<span class="o">)</span> - ‘v652eace1692a40cfa3763df669d7439c1639079717194’ saved <span class="o">[</span>13970/13970<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:42-- https://virgool.io/fonts/vazir/Vazir-Thin.ttf +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">98924</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Thin.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.61K 140KB/s in 0.7s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:43 <span class="o">(</span><span class="m">140</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.ttf’ saved <span class="o">[</span>98924/98924<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:43-- https://virgool.io/fonts/vazir/Vazir-Thin.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Thin.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.80K 276KB/s in 0.4s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:44 <span class="o">(</span><span class="m">276</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.eot?’ saved <span class="o">[</span>99120<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:44-- https://virgool.io/fonts/vazir/Vazir-Thin.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">54068</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Thin.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.80K --.-KB/s in 0.07s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:45 <span class="o">(</span><span class="m">770</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.woff’ saved <span class="o">[</span>54068/54068<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:45-- https://virgool.io/fonts/vazir/Vazir-Thin.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">43000</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Thin.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 41.99K --.-KB/s in 0.006s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:46 <span class="o">(</span>6.59 MB/s<span class="o">)</span> - ‘Vazir-Thin.woff2’ saved <span class="o">[</span>43000/43000<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:46-- https://virgool.io/fonts/vazir/Vazir-Light.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">105360</span> <span class="o">(</span>103K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Light.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 102.89K 478KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:46 <span class="o">(</span><span class="m">478</span> KB/s<span class="o">)</span> - ‘Vazir-Light.ttf’ saved <span class="o">[</span>105360/105360<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:46-- https://virgool.io/fonts/vazir/Vazir-Light.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Light.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 103.09K 470KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:47 <span class="o">(</span><span class="m">470</span> KB/s<span class="o">)</span> - ‘Vazir-Light.eot?’ saved <span class="o">[</span>105562<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:47-- https://virgool.io/fonts/vazir/Vazir-Light.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">59688</span> <span class="o">(</span>58K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Light.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 58.29K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:48 <span class="o">(</span><span class="m">758</span> KB/s<span class="o">)</span> - ‘Vazir-Light.woff’ saved <span class="o">[</span>59688/59688<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:48-- https://virgool.io/fonts/vazir/Vazir-Light.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">48168</span> <span class="o">(</span>47K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Light.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 47.04K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:48 <span class="o">(</span><span class="m">570</span> KB/s<span class="o">)</span> - ‘Vazir-Light.woff2’ saved <span class="o">[</span>48168/48168<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:48-- https://virgool.io/fonts/vazir/Vazir-Regular.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">98376</span> <span class="o">(</span>96K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Regular.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.07K 435KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:49 <span class="o">(</span><span class="m">435</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.ttf’ saved <span class="o">[</span>98376/98376<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:49-- https://virgool.io/fonts/vazir/Vazir-Regular.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Regular.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.26K 285KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:50 <span class="o">(</span><span class="m">285</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.eot?’ saved <span class="o">[</span>98574<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:50-- https://virgool.io/fonts/vazir/Vazir-Regular.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">53744</span> <span class="o">(</span>52K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Regular.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.48K --.-KB/s in 0.05s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:51 <span class="o">(</span>1.10 MB/s<span class="o">)</span> - ‘Vazir-Regular.woff’ saved <span class="o">[</span>53744/53744<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:51-- https://virgool.io/fonts/vazir/Vazir-Regular.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">42744</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Regular.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 41.74K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:51 <span class="o">(</span><span class="m">412</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.woff2’ saved <span class="o">[</span>42744/42744<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:51-- https://virgool.io/fonts/vazir/Vazir-Medium.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">98892</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Medium.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.57K 606KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:52 <span class="o">(</span><span class="m">606</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.ttf’ saved <span class="o">[</span>98892/98892<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:52-- https://virgool.io/fonts/vazir/Vazir-Medium.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Medium.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.78K 347KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:53 <span class="o">(</span><span class="m">347</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.eot?’ saved <span class="o">[</span>99100<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:53-- https://virgool.io/fonts/vazir/Vazir-Medium.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">54120</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Medium.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.85K 125KB/s in 0.4s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:54 <span class="o">(</span><span class="m">125</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.woff’ saved <span class="o">[</span>54120/54120<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:54-- https://virgool.io/fonts/vazir/Vazir-Medium.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">43152</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Medium.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.14K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:54 <span class="o">(</span><span class="m">541</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.woff2’ saved <span class="o">[</span>43152/43152<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:54-- https://virgool.io/fonts/vazir/Vazir-Bold.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">99840</span> <span class="o">(</span>98K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Bold.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 97.50K --.-KB/s in 0.04s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:55 <span class="o">(</span>2.61 MB/s<span class="o">)</span> - ‘Vazir-Bold.ttf’ saved <span class="o">[</span>99840/99840<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:55-- https://virgool.io/fonts/vazir/Vazir-Bold.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Bold.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 97.68K 560KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:56 <span class="o">(</span><span class="m">560</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.eot?’ saved <span class="o">[</span>100026<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:56-- https://virgool.io/fonts/vazir/Vazir-Bold.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">54560</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Bold.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 53.28K --.-KB/s in 0.06s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:56 <span class="o">(</span><span class="m">917</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.woff’ saved <span class="o">[</span>54560/54560<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:56-- https://virgool.io/fonts/vazir/Vazir-Bold.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">43604</span> <span class="o">(</span>43K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Bold.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.58K --.-KB/s in 0.06s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:57 <span class="o">(</span><span class="m">657</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.woff2’ saved <span class="o">[</span>43604/43604<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:57-- https://virgool.io/fonts/vazir/Vazir-Black.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">99772</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Black.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 97.43K --.-KB/s in 0.04s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:57 <span class="o">(</span>2.18 MB/s<span class="o">)</span> - ‘Vazir-Black.ttf’ saved <span class="o">[</span>99772/99772<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:57-- https://virgool.io/fonts/vazir/Vazir-Black.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Black.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 97.63K 478KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:58 <span class="o">(</span><span class="m">478</span> KB/s<span class="o">)</span> - ‘Vazir-Black.eot?’ saved <span class="o">[</span>99974<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:58-- https://virgool.io/fonts/vazir/Vazir-Black.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">54652</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Black.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 53.37K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:59 <span class="o">(</span><span class="m">691</span> KB/s<span class="o">)</span> - ‘Vazir-Black.woff’ saved <span class="o">[</span>54652/54652<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:59-- https://virgool.io/fonts/vazir/Vazir-Black.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">43332</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Black.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.32K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:00 <span class="o">(</span><span class="m">510</span> KB/s<span class="o">)</span> - ‘Vazir-Black.woff2’ saved <span class="o">[</span>43332/43332<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:00-- https://virgool.io/fonts/fontawesome/fa-solid-900.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">202616</span> <span class="o">(</span>198K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">fa-solid-900.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 197.87K 501KB/s in 0.4s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:01 <span class="o">(</span><span class="m">501</span> KB/s<span class="o">)</span> - ‘fa-solid-900.ttf’ saved <span class="o">[</span>202616/202616<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:01-- https://virgool.io/fonts/fontawesome/fa-solid-900.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">404</span> Not Found +</span></span><span class="line"><span class="cl">2022-01-18 06:42:01 ERROR 404: Not Found. +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:01-- https://virgool.io/fonts/fontawesome/fa-solid-900.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">103300</span> <span class="o">(</span>101K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">fa-solid-900.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 100.88K 358KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:02 <span class="o">(</span><span class="m">358</span> KB/s<span class="o">)</span> - ‘fa-solid-900.woff’ saved <span class="o">[</span>103300/103300<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:02-- https://virgool.io/fonts/fontawesome/fa-solid-900.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">79444</span> <span class="o">(</span>78K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">fa-solid-900.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 77.58K 394KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:03 <span class="o">(</span><span class="m">394</span> KB/s<span class="o">)</span> - ‘fa-solid-900.woff2’ saved <span class="o">[</span>79444/79444<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:03-- https://virgool.io/images/icons/plus.svg +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>image/svg+xml<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘plus.svg’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">plus.svg <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">942</span> --.-KB/s in 0.002s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:03 <span class="o">(</span><span class="m">383</span> KB/s<span class="o">)</span> - ‘plus.svg’ saved <span class="o">[</span>942<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:03-- https://virgool.io/images/icons/tick.svg +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>image/svg+xml<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘tick.svg’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">tick.svg <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">942</span> --.-KB/s in 0s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:04 <span class="o">(</span>89.8 MB/s<span class="o">)</span> - ‘tick.svg’ saved <span class="o">[</span>942<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:04-- https://virgool.io/images/typewriter.png +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">172558</span> <span class="o">(</span>169K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘typewriter.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">typewriter.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 168.51K 349KB/s in 0.5s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:05 <span class="o">(</span><span class="m">349</span> KB/s<span class="o">)</span> - ‘typewriter.png’ saved <span class="o">[</span>172558/172558<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:05-- https://virgool.test/images/download-audio.png +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:05-- https://virgool.test/images/download-ebook.png +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. +</span></span><span class="line"><span class="cl">FINISHED --2022-01-18 06:42:05-- +</span></span><span class="line"><span class="cl">Total wall clock time: 1m 2s +</span></span><span class="line"><span class="cl">Downloaded: <span class="m">54</span> files, 6.6M in 14s <span class="o">(</span><span class="m">479</span> KB/s<span class="o">)</span> +</span></span><span class="line"><span class="cl">Converting links in ns.html?id<span class="o">=</span>GTM-5GS688K.html... nothing to <span class="k">do</span>. +</span></span><span class="line"><span class="cl">Converting links in c3fVa.html... 38. +</span></span><span class="line"><span class="cl">31-7 +</span></span><span class="line"><span class="cl">Converting links in styles.css?v<span class="o">=</span>v2.6.15.css... 35. +</span></span><span class="line"><span class="cl">34-1 +</span></span><span class="line"><span class="cl">Converted links in <span class="m">3</span> files in 0.06 seconds. +</span></span></code></pre></td></tr></table> +</div> +</div> \ No newline at end of file diff --git a/docs/tags/mirror-a-single-web-page/page/1/index.html b/docs/tags/mirror-a-single-web-page/page/1/index.html index ac3a6a0..d9975e9 100644 --- a/docs/tags/mirror-a-single-web-page/page/1/index.html +++ b/docs/tags/mirror-a-single-web-page/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/mirror-a-single-web-page/ - - - - - - +https://bit-orbit.github.io/tags/mirror-a-single-web-page/ + \ No newline at end of file diff --git a/docs/tags/open-source/index.html b/docs/tags/open-source/index.html index 10b1bb6..51bc03e 100644 --- a/docs/tags/open-source/index.html +++ b/docs/tags/open-source/index.html @@ -1,559 +1,37 @@ - - - - -Tag: Open-Source - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

Open-Source

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: Open-Source - bit-orbit + \ No newline at end of file diff --git a/docs/tags/open-source/index.xml b/docs/tags/open-source/index.xml index 5f5e63b..a7e4aae 100644 --- a/docs/tags/open-source/index.xml +++ b/docs/tags/open-source/index.xml @@ -1,18 +1,4 @@ - - - - Open-Source on bit-orbit - https://bit-orbit.github.io/tags/open-source/ - Recent content in Open-Source on bit-orbit - Hugo -- gohugo.io - fa - Sat, 01 Oct 2022 01:46:23 +0330 - ارتباط غیر متمرکز و در لحظه با پروتکل ماتریکس - https://bit-orbit.github.io/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/ - Sat, 01 Oct 2022 01:46:23 +0330 - - https://bit-orbit.github.io/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/ - <img src="https://bit-orbit.github.io/images/post/matrix.jpg" alt="Featured image of post ارتباط غیر متمرکز و در لحظه با پروتکل ماتریکس" /><p>ماتریکس یک پروتکل آزاد است! به این معنی که شما میتوانید از این پروتکل برای +Open-Source on bit-orbithttps://bit-orbit.github.io/tags/open-source/Recent content in Open-Source on bit-orbitHugo -- gohugo.iofaSat, 01 Oct 2022 01:46:23 +0330ارتباط غیر متمرکز و در لحظه با پروتکل ماتریکسhttps://bit-orbit.github.io/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/Sat, 01 Oct 2022 01:46:23 +0330https://bit-orbit.github.io/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/<img src="https://bit-orbit.github.io/images/post/matrix.jpg" alt="Featured image of post ارتباط غیر متمرکز و در لحظه با پروتکل ماتریکس" /><p>ماتریکس یک پروتکل آزاد است! به این معنی که شما میتوانید از این پروتکل برای ارتباطات تحت شبکه مانند پیامرسان، اینترنت چیز ها (IoT) و هر چیز دیگری @@ -20,76 +6,58 @@ های این پروتکل، رمزنگاری سر تا سر (E2E) است، این ویژگی باعث میشود حتی سرور های ماتریکس که داده های ما را -منتقل میکنند هم توانایی دسترسی به داده ها را نداشته باشند.</p> -<h3 id="پیام-رسان-ماتریکس">پیام رسان ماتریکس</h3> -<p>یکی از اصلی ترین استفاده های ماتریکس، پیامرسان است. +منتقل میکنند هم توانایی دسترسی به داده ها را نداشته باشند.</p> +<h3 id="پیام-رسان-ماتریکس">پیام رسان ماتریکس +</h3><p>یکی از اصلی ترین استفاده های ماتریکس، پیامرسان است. این پیامرسان به صورت غیر متمرکز عمل میکند. با این روش سانسور/فیلتر شدن سرور هایی که پیام ها را ذخیره و منتقل میکنند غیر ممکن میشود! چرا که این سرور ها قابل تغییر هستند و هر زمان که یکی از این سرور ها سانسور شود، شما همچنان میتوانید با سرور دیگری مجدد اکانت بسازید و در ارتباط بمانید. -و یا حتی از سرور خودتان استفاده کنید!</p> -<h3 id="ماتریکس-چگونه-کار-میکند">ماتریکس چگونه کار میکند؟</h3> -<p>هر سرور در ماتریکس -<em>HomeServer</em> +و یا حتی از سرور خودتان استفاده کنید!</p> +<h3 id="ماتریکس-چگونه-کار-میکند">ماتریکس چگونه کار میکند؟ +</h3><p>هر سرور در ماتریکس +<em>HomeServer</em> نامیده میشود، شما به عنوان -<em>Client</em> +<em>Client</em> انتخاب میکنید از هر HomeServer -که میخواهید استفاده کنید.</p> -<p>HomeServer +که میخواهید استفاده کنید.</p> +<p>HomeServer ها میتوانند سرور های عمومی مثل سروری که خود -<a class="link" href="matrix.org" ><strong>ماتریکس</strong></a> +<a class="link" href="matrix.org" ><strong>ماتریکس</strong></a> راه اندازی کرده است باشد و یا میتواند سرور های -<strong>شخصی خودتان</strong> -باشد.</p> -<p><a class="link" href="https://bit-orbit.github.io/images/post/page2-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page2-768x768.png" - - - - loading="lazy" - - alt="matrix-homeserver" - - -></a></p> -<p>زمانی که شما از یک +<strong>شخصی خودتان</strong> +باشد.</p> +<p><a class="link" href="https://bit-orbit.github.io/images/post/page2-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page2-768x768.png" +loading="lazy" +alt="matrix-homeserver" +></a></p> +<p>زمانی که شما از یک HomeServer استفاده میکنید، این به آن معنی است که کلاینت شما به اکانتتان در آن HomeServer -متصل میشود.</p> -<p><a class="link" href="https://bit-orbit.github.io/images/post/page3-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page3-768x768.png" - - - - loading="lazy" - - alt="matrix-homeserver" - - -></a></p> -<p>زمانی که شما پیامی ارسال میکنید، پیامتان به +متصل میشود.</p> +<p><a class="link" href="https://bit-orbit.github.io/images/post/page3-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page3-768x768.png" +loading="lazy" +alt="matrix-homeserver" +></a></p> +<p>زمانی که شما پیامی ارسال میکنید، پیامتان به HomeServer شما ارسال میشود، HomeServer -بعد از دریافت پیام از شما، آن را به کاربران مشترک در آن روم ارسال میکند.</p> -<blockquote> -<p>در ماتریکس هر نوع چت(شخصی و یا گروه) را +بعد از دریافت پیام از شما، آن را به کاربران مشترک در آن روم ارسال میکند.</p> +<blockquote> +<p>در ماتریکس هر نوع چت(شخصی و یا گروه) را room -مینامند</p> -</blockquote> -<p><a class="link" href="https://bit-orbit.github.io/images/post/page4-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page4-768x768.png" - - - - loading="lazy" - - alt="matrix-homeserver" - - -></a></p> -<p>در واقع زمانی که شما پیامی ارسال میکنید +مینامند</p> +</blockquote> +<p><a class="link" href="https://bit-orbit.github.io/images/post/page4-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page4-768x768.png" +loading="lazy" +alt="matrix-homeserver" +></a></p> +<p>در واقع زمانی که شما پیامی ارسال میکنید HomeServer پیام را برای کاربران ارسال میکند. این کاربران ممکن است کاربران همان HomeServer @@ -103,47 +71,41 @@ Homeserver HomerServer های دیگر ارسال خواهد کرد. و آن HomeServer -پیام را دریافت و به کاربران مربوطه ارسال خواهد کرد.</p> -<p><a class="link" href="https://bit-orbit.github.io/images/post/page6-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page6-768x768.png" - - - - loading="lazy" - - alt="matrix-homeserver" - - -></a></p> -<blockquote> -<p>زمانی که شما پیامی را برای کاربر +پیام را دریافت و به کاربران مربوطه ارسال خواهد کرد.</p> +<p><a class="link" href="https://bit-orbit.github.io/images/post/page6-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page6-768x768.png" +loading="lazy" +alt="matrix-homeserver" +></a></p> +<blockquote> +<p>زمانی که شما پیامی را برای کاربر HomeServer دیگری ارسال میکنید، پیام شما تنها در HomeServer خودتان ذخیره نخواهد شد. بلکه در HomeServer -کاربری/کاربرانی که پیام را به آن ارسال کرده اید هم ذخیره میشود.</p> -</blockquote> -<h3 id="اصطلاحات-در-ماتریکس">اصطلاحات در ماتریکس</h3> -<p>در ماتریکس چند اصطلاح وجود دارد که آشنایی با آنها به درک بهتر این پروتکل کمک میکند.</p> -<ul> -<li> -<p>HomeServer: +کاربری/کاربرانی که پیام را به آن ارسال کرده اید هم ذخیره میشود.</p> +</blockquote> +<h3 id="اصطلاحات-در-ماتریکس">اصطلاحات در ماتریکس +</h3><p>در ماتریکس چند اصطلاح وجود دارد که آشنایی با آنها به درک بهتر این پروتکل کمک میکند.</p> +<ul> +<li> +<p>HomeServer: سروری که شما در آن اکانت خود را میسازید. این سرور پیام های شما را ذخیره -و ارسال میکند.</p> -</li> -<li> -<p>Client: +و ارسال میکند.</p> +</li> +<li> +<p>Client: برای اینکه کاربران بتوانند از ماتریکس استفاده کنند، باید از ابزاری که از این -پروتکل بهره میبرد استفاده کنند. به اینگونه از ابزار ها کلاینت گفته میشود.</p> -</li> -<li> -<p>Event: +پروتکل بهره میبرد استفاده کنند. به اینگونه از ابزار ها کلاینت گفته میشود.</p> +</li> +<li> +<p>Event: هر نوع داده ای که توسط ماتریکس ارسال شود -<em>event</em> -نامیده میشود. برای مثال ممکن است شما پیام ارسال کنید و یا به یک پیام واکنش نشان دهید.</p> -</li> -<li> -<p>Room: +<em>event</em> +نامیده میشود. برای مثال ممکن است شما پیام ارسال کنید و یا به یک پیام واکنش نشان دهید.</p> +</li> +<li> +<p>Room: قسمتی است که کاربر با آن event ها را دریافت و ارسال میکند. @@ -154,10 +116,10 @@ room room میتوانند event -ها را دریافت کنند.</p> -</li> -<li> -<p>Space: +ها را دریافت کنند.</p> +</li> +<li> +<p>Space: Space نوعی خاصی از room @@ -165,66 +127,61 @@ room room ها است. space -میتواند هم شامل گروه و هم کاربران عادی شود.</p> -</li> -<li> -<p>Bridge: +میتواند هم شامل گروه و هم کاربران عادی شود.</p> +</li> +<li> +<p>Bridge: پل یا Bridge به راهکاری گفته میشود که شما میتوانید با استفاده از آن بین ماتریکس و پیامرسان های دیگر چت کنید. برای مثال شما با استفاده از Brdige تلگرام -میتوانید با ماتریکس به کاربران تلگرام پیام ارسال و دریافت کنید.</p> -</li> -</ul> -<h3 id="چگونه-از-ماتریکس-استفاده-کنیم">چگونه از ماتریکس استفاده کنیم؟</h3> -<p>برای استفاده از ماتریکس، شما کافیست یکی از کلاینت های آن را نصب و به یک +میتوانید با ماتریکس به کاربران تلگرام پیام ارسال و دریافت کنید.</p> +</li> +</ul> +<h3 id="چگونه-از-ماتریکس-استفاده-کنیم">چگونه از ماتریکس استفاده کنیم؟ +</h3><p>برای استفاده از ماتریکس، شما کافیست یکی از کلاینت های آن را نصب و به یک HomeServer -متصل شوید.</p> -<p>یکی از محبوب ترین کلاینت ها، کلاینت -<a class="link" href="https://element.io/" target="_blank" rel="noopener" - >Element</a> +متصل شوید.</p> +<p>یکی از محبوب ترین کلاینت ها، کلاینت +<a class="link" href="https://element.io/" target="_blank" rel="noopener" +>Element</a> است، که شامل نسخه -<a class="link" href="https://play.google.com/store/apps/details?id=im.vector.app" target="_blank" rel="noopener" - >Android</a>، -<a class="link" href="https://apps.apple.com/app/vector/id1083446067" target="_blank" rel="noopener" - >IOS</a>، -<a class="link" href="https://element.io/get-started#downloads" target="_blank" rel="noopener" - >Windows, Linux، Mac</a> +<a class="link" href="https://play.google.com/store/apps/details?id=im.vector.app" target="_blank" rel="noopener" +>Android</a>، +<a class="link" href="https://apps.apple.com/app/vector/id1083446067" target="_blank" rel="noopener" +>IOS</a>، +<a class="link" href="https://element.io/get-started#downloads" target="_blank" rel="noopener" +>Windows, Linux، Mac</a> و البته -<a class="link" href="https://app.element.io/" target="_blank" rel="noopener" - >نسخه تحت وب میشود</a>.</p> -<p>استفاده از المنت مانند هر پیامرسان دیگری ساده است، اما اگر نیاز به کمک دارید -<a class="link" href="https://static.element.io/pdfs/element-user-guide.pdf" target="_blank" rel="noopener" - >این لینک</a> -میتواند کمکتان کند.</p> -<h3 id="چطور-از-سرور-شخصی-خودمان-استفاده-کنیم">چطور از سرور شخصی خودمان استفاده کنیم؟</h3> -<p>شما مجبور نیستید سرویس ماتریکس را روی سرور شخصی خودتان اجرا کنید مگر اینکه:</p> -<ul> -<li>سرور های عمومی ماتریکس سانسور و از دسترس خارج شده باشند</li> -<li>و یا شاید نگران دیتایی هستید که روی سرور های -عمومی ماتریکس از طرف شما ذخیره میشود!(گرچه پیام ها تماما رمزنگاری سر تا سر میشود)</li> -<li>و یا حتی شاید میخواهید پیام رسان داخلی شرکت/خانه خودتان را داشته باشید</li> -<li>و یا البته ممکن است بخواهید +<a class="link" href="https://app.element.io/" target="_blank" rel="noopener" +>نسخه تحت وب میشود</a>.</p> +<p>استفاده از المنت مانند هر پیامرسان دیگری ساده است، اما اگر نیاز به کمک دارید +<a class="link" href="https://static.element.io/pdfs/element-user-guide.pdf" target="_blank" rel="noopener" +>این لینک</a> +میتواند کمکتان کند.</p> +<h3 id="چطور-از-سرور-شخصی-خودمان-استفاده-کنیم">چطور از سرور شخصی خودمان استفاده کنیم؟ +</h3><p>شما مجبور نیستید سرویس ماتریکس را روی سرور شخصی خودتان اجرا کنید مگر اینکه:</p> +<ul> +<li>سرور های عمومی ماتریکس سانسور و از دسترس خارج شده باشند</li> +<li>و یا شاید نگران دیتایی هستید که روی سرور های +عمومی ماتریکس از طرف شما ذخیره میشود!(گرچه پیام ها تماما رمزنگاری سر تا سر میشود)</li> +<li>و یا حتی شاید میخواهید پیام رسان داخلی شرکت/خانه خودتان را داشته باشید</li> +<li>و یا البته ممکن است بخواهید Bridge -بسازید.</li> -</ul> -<p>نسخه سرور ماتریکس -<a class="link" href="https://github.com/matrix-org/synapse" target="_blank" rel="noopener" - ><em>Synapse</em></a> +بسازید.</li> +</ul> +<p>نسخه سرور ماتریکس +<a class="link" href="https://github.com/matrix-org/synapse" target="_blank" rel="noopener" +><em>Synapse</em></a> نام دارد، شما میتوانید با استفاده از -<a class="link" href="https://hub.docker.com/r/matrixdotorg/synapse/" target="_blank" rel="noopener" - >ایمیج داکر رسمی ماتریکس</a>، -سرور شخصی خودتان را اجرا کنید.</p> -<h3 id="نتیجه-گیری">نتیجه گیری</h3> -<p>هدف من از نوشتن این پست در این روز های تلخ این بود که ابزاری را معرفی کنم +<a class="link" href="https://hub.docker.com/r/matrixdotorg/synapse/" target="_blank" rel="noopener" +>ایمیج داکر رسمی ماتریکس</a>، +سرور شخصی خودتان را اجرا کنید.</p> +<h3 id="نتیجه-گیری">نتیجه گیری +</h3><p>هدف من از نوشتن این پست در این روز های تلخ این بود که ابزاری را معرفی کنم تا ما با وجود قطعی های متعدد اینترنت و قطع دسترسی ما از سرور های خارجی، کماکان -در ارتباط نگهدارد و صدایمان را&hellip;</p> -<p>اگر روزی دسترسی ما از اینترنت قطع شد، کاری که لازم است برای در ارتباط ماندن انجام بدهیم -این است که یک سرویس ماتریکس داخلی راه اندازی کنیم.</p> -<hr> - - - - - +در ارتباط نگهدارد و صدایمان را&hellip;</p> +<p>اگر روزی دسترسی ما از اینترنت قطع شد، کاری که لازم است برای در ارتباط ماندن انجام بدهیم +این است که یک سرویس ماتریکس داخلی راه اندازی کنیم.</p> +<hr> \ No newline at end of file diff --git a/docs/tags/open-source/page/1/index.html b/docs/tags/open-source/page/1/index.html index 49aec1e..102c9ed 100644 --- a/docs/tags/open-source/page/1/index.html +++ b/docs/tags/open-source/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/open-source/ - - - - - - +https://bit-orbit.github.io/tags/open-source/ + \ No newline at end of file diff --git a/docs/tags/page/1/index.html b/docs/tags/page/1/index.html index ca2d821..8a47de4 100644 --- a/docs/tags/page/1/index.html +++ b/docs/tags/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/ - - - - - - +https://bit-orbit.github.io/tags/ + \ No newline at end of file diff --git a/docs/tags/page/10/index.html b/docs/tags/page/10/index.html index 0656586..bdd88a5 100644 --- a/docs/tags/page/10/index.html +++ b/docs/tags/page/10/index.html @@ -1,666 +1,43 @@ - - - - -Tags - - - - - - - - - - - - - - - -
- - - - -
-
-

- - بخش - -

- -
-
-

70 صفحه

-

Tags

- -
-
-
- -
- - - - - - - - - - - -
- - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tags + \ No newline at end of file diff --git a/docs/tags/page/11/index.html b/docs/tags/page/11/index.html index f7217ce..19d6287 100644 --- a/docs/tags/page/11/index.html +++ b/docs/tags/page/11/index.html @@ -1,666 +1,43 @@ - - - - -Tags - - - - - - - - - - - - - - - -
- - - - -
-
-

- - بخش - -

- -
-
-

70 صفحه

-

Tags

- -
-
-
- -
- - - - - - - - - - - -
- - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tags + \ No newline at end of file diff --git a/docs/tags/page/12/index.html b/docs/tags/page/12/index.html index 093ff73..04897d0 100644 --- a/docs/tags/page/12/index.html +++ b/docs/tags/page/12/index.html @@ -1,663 +1,42 @@ - - - - -Tags - - - - - - - - - - - - - - - -
- - - - -
-
-

- - بخش - -

- -
-
-

70 صفحه

-

Tags

- -
-
-
- -
- - - - - - - - - - - -
- - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tags + \ No newline at end of file diff --git a/docs/tags/page/13/index.html b/docs/tags/page/13/index.html index b7615ba..4cc3974 100644 --- a/docs/tags/page/13/index.html +++ b/docs/tags/page/13/index.html @@ -1,663 +1,41 @@ - - - - -Tags - - - - - - - - - - - - - - - -
- - - - -
-
-

- - بخش - -

- -
-
-

70 صفحه

-

Tags

- -
-
-
- -
- - - - - - - - - - - -
- - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tags + \ No newline at end of file diff --git a/docs/tags/page/14/index.html b/docs/tags/page/14/index.html index 39c2919..349ce23 100644 --- a/docs/tags/page/14/index.html +++ b/docs/tags/page/14/index.html @@ -1,663 +1,40 @@ - - - - -Tags - - - - - - - - - - - - - - - -
- - - - -
-
-

- - بخش - -

- -
-
-

70 صفحه

-

Tags

- -
-
-
- -
- - - - - - - - - - - -
- - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tags + \ No newline at end of file diff --git a/docs/tags/page/2/index.html b/docs/tags/page/2/index.html index 0e3e5d3..43af394 100644 --- a/docs/tags/page/2/index.html +++ b/docs/tags/page/2/index.html @@ -1,663 +1,41 @@ - - - - -Tags - - - - - - - - - - - - - - - -
- - - - -
-
-

- - بخش - -

- -
-
-

70 صفحه

-

Tags

- -
-
-
- -
- - - - - - - - - - - -
- - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tags + \ No newline at end of file diff --git a/docs/tags/page/3/index.html b/docs/tags/page/3/index.html index 5aa0515..ec400ba 100644 --- a/docs/tags/page/3/index.html +++ b/docs/tags/page/3/index.html @@ -1,663 +1,42 @@ - - - - -Tags - - - - - - - - - - - - - - - -
- - - - -
-
-

- - بخش - -

- -
-
-

70 صفحه

-

Tags

- -
-
-
- -
- - - - - - - - - - - -
- - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tags + \ No newline at end of file diff --git a/docs/tags/page/4/index.html b/docs/tags/page/4/index.html index dddffc1..9264fe5 100644 --- a/docs/tags/page/4/index.html +++ b/docs/tags/page/4/index.html @@ -1,666 +1,43 @@ - - - - -Tags - - - - - - - - - - - - - - - -
- - - - -
-
-

- - بخش - -

- -
-
-

70 صفحه

-

Tags

- -
-
-
- -
- - - - - - - - - - - -
- - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tags + \ No newline at end of file diff --git a/docs/tags/page/5/index.html b/docs/tags/page/5/index.html index 3e2ac6a..cb786cb 100644 --- a/docs/tags/page/5/index.html +++ b/docs/tags/page/5/index.html @@ -1,666 +1,43 @@ - - - - -Tags - - - - - - - - - - - - - - - -
- - - - -
-
-

- - بخش - -

- -
-
-

70 صفحه

-

Tags

- -
-
-
- -
- - - - - - - - - - - -
- - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tags + \ No newline at end of file diff --git a/docs/tags/page/6/index.html b/docs/tags/page/6/index.html index bc31b2a..3630a5c 100644 --- a/docs/tags/page/6/index.html +++ b/docs/tags/page/6/index.html @@ -1,666 +1,43 @@ - - - - -Tags - - - - - - - - - - - - - - - -
- - - - -
-
-

- - بخش - -

- -
-
-

70 صفحه

-

Tags

- -
-
-
- -
- - - - - - - - - - - -
- - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tags + \ No newline at end of file diff --git a/docs/tags/page/7/index.html b/docs/tags/page/7/index.html index eb3c57f..b49075c 100644 --- a/docs/tags/page/7/index.html +++ b/docs/tags/page/7/index.html @@ -1,666 +1,43 @@ - - - - -Tags - - - - - - - - - - - - - - - -
- - - - -
-
-

- - بخش - -

- -
-
-

70 صفحه

-

Tags

- -
-
-
- -
- - - - - - - - - - - -
- - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tags + \ No newline at end of file diff --git a/docs/tags/page/8/index.html b/docs/tags/page/8/index.html index d0ca646..6bf299e 100644 --- a/docs/tags/page/8/index.html +++ b/docs/tags/page/8/index.html @@ -1,666 +1,43 @@ - - - - -Tags - - - - - - - - - - - - - - - -
- - - - -
-
-

- - بخش - -

- -
-
-

70 صفحه

-

Tags

- -
-
-
- -
- - - - - - - - - - - -
- - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tags + \ No newline at end of file diff --git a/docs/tags/page/9/index.html b/docs/tags/page/9/index.html index 34be150..31af9a6 100644 --- a/docs/tags/page/9/index.html +++ b/docs/tags/page/9/index.html @@ -1,666 +1,43 @@ - - - - -Tags - - - - - - - - - - - - - - - -
- - - - -
-
-

- - بخش - -

- -
-
-

70 صفحه

-

Tags

- -
-
-
- -
- - - - - - - - - - - -
- - -
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tags + \ No newline at end of file diff --git a/docs/tags/paste-file-with-curl/index.html b/docs/tags/paste-file-with-curl/index.html index 7806b4f..3e8b21e 100644 --- a/docs/tags/paste-file-with-curl/index.html +++ b/docs/tags/paste-file-with-curl/index.html @@ -1,559 +1,37 @@ - - - - -Tag: Paste File With Curl - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

Paste File With Curl

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: Paste File With Curl - bit-orbit +

Tags

1 صفحه

Paste File With Curl

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git a/docs/tags/paste-file-with-curl/index.xml b/docs/tags/paste-file-with-curl/index.xml index badbbe7..f7b86a1 100644 --- a/docs/tags/paste-file-with-curl/index.xml +++ b/docs/tags/paste-file-with-curl/index.xml @@ -1,79 +1,65 @@ - - - - Paste File With Curl on bit-orbit - https://bit-orbit.github.io/tags/paste-file-with-curl/ - Recent content in Paste File With Curl on bit-orbit - Hugo -- gohugo.io - fa - Wed, 06 Mar 2024 23:50:46 +0330 - Crul Paste - https://bit-orbit.github.io/p/crul-paste/ - Wed, 06 Mar 2024 23:50:46 +0330 - - https://bit-orbit.github.io/p/crul-paste/ - <img src="https://bit-orbit.github.io/images/post/curlpaste.jpg" alt="Featured image of post Crul Paste" /><p>اول بیایید ببینم +Paste File With Curl on bit-orbithttps://bit-orbit.github.io/tags/paste-file-with-curl/Recent content in Paste File With Curl on bit-orbitHugo -- gohugo.iofaWed, 06 Mar 2024 23:50:46 +0330Crul Pastehttps://bit-orbit.github.io/p/crul-paste/Wed, 06 Mar 2024 23:50:46 +0330https://bit-orbit.github.io/p/crul-paste/<img src="https://bit-orbit.github.io/images/post/curlpaste.jpg" alt="Featured image of post Crul Paste" /><p>اول بیایید ببینم FileBin چیه! قبل از اون هم فکر می‌کنم همه بدونیم -<a class="link" href="https://virgool.io/@m_shabane/pastebin-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B1%D8%A7-%D9%87%DA%A9%D8%B1-%D9%87%D8%A7-%D8%B9%D8%A7%D8%B4%D9%82-%D8%A2%D9%86-%D9%87%D8%A7%D8%B3%D8%AA%D9%86%D8%AF-swafqm95gttp" target="_blank" rel="noopener" - >pastebin</a> +<a class="link" href="https://virgool.io/@m_shabane/pastebin-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B1%D8%A7-%D9%87%DA%A9%D8%B1-%D9%87%D8%A7-%D8%B9%D8%A7%D8%B4%D9%82-%D8%A2%D9%86-%D9%87%D8%A7%D8%B3%D8%AA%D9%86%D8%AF-swafqm95gttp" target="_blank" rel="noopener" +>pastebin</a> چیه. اگه نمی‌دونید خیلی ساده باید بگم یک سایتی که فقط روی اون متن به اشتراک می‌ذارن -مثلا ممکنه ارور ها یا حتی سورس یک برنامه باشه!</p> -<p>اما +مثلا ممکنه ارور ها یا حتی سورس یک برنامه باشه!</p> +<p>اما FileBin ها بجای تسکت فایل های شما رو نگهداری می‌کنند و به شما لینکی ارائه می‌کنند که فایل را برای دیگران اشتراک بگذارید، نمونه های زیادی هم وجود داره مثل -<a class="link" href="https://wormhole.app" target="_blank" rel="noopener" - >https://wormhole.app</a></p> -<p>اما خب از اونجایی که من زندگی‌ام رو توی ترمینال می‌گذرونم و ترمینال رو به باز کردن مرورگر برای اشتراک یک فایل ترجیح می‌دم، پس از +<a class="link" href="https://wormhole.app" target="_blank" rel="noopener" +>https://wormhole.app</a></p> +<p>اما خب از اونجایی که من زندگی‌ام رو توی ترمینال می‌گذرونم و ترمینال رو به باز کردن مرورگر برای اشتراک یک فایل ترجیح می‌دم، پس از FileBin هایی استفاده می‌کنم که بتونم تحت ترمینال به سادگی فایلم رو به اشتراک بذارم. برای مثال -<a class="link" href="https://0x0.st" target="_blank" rel="noopener" - >https://0x0.st</a></p> -<p>وقتی این رو سایت رو باز کنید هیچ گزینه‌ای برای انتخاب فایل و آپلود نمی‌بینید! خب پس چطور باید یک فایل را برای سایت آپلود کنید؟ +<a class="link" href="https://0x0.st" target="_blank" rel="noopener" +>https://0x0.st</a></p> +<p>وقتی این رو سایت رو باز کنید هیچ گزینه‌ای برای انتخاب فایل و آپلود نمی‌بینید! خب پس چطور باید یک فایل را برای سایت آپلود کنید؟ کافیه یک ریکوئست HTTP POST خیلی ساده به سایت بزنید که شامل فایتون باشه. این کار رو خیلی ساده می‌شه با curl -انجام داد.</p> -<p>مثلا بیایین اشتراک یک فایل رو ببینیم</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl https://0x0.st -F <span class="nv">file</span><span class="o">=</span>@/path/to/file -</span></span><span class="line"><span class="cl"><span class="c1"># https://0x0.st/zWKo.txt</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>این سایت خیلی خوبه +انجام داد.</p> +<p>مثلا بیایین اشتراک یک فایل رو ببینیم</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl https://0x0.st -F <span class="nv">file</span><span class="o">=</span>@/path/to/file +</span></span><span class="line"><span class="cl"><span class="c1"># https://0x0.st/zWKo.txt</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>این سایت خیلی خوبه اما از زمانی به بعد دیگه این سایت کاری که من نیاز دارم رو کفاف نداد! برای مثال من نیاز دارم فایلم بعد از اولین دانلود از روی سرور حذف بشه و از این مهم تر نیاز داشتم که چندین فایل رو با یک یوزنیم مشخص اپلود کنم که خب شخصی که قرار باشه فایل ها رو دانلود کنه، کافیه از یوزنیم استفاده کنه که راحت تر قابل حفظ کردن و اشتراک گذاشتنه. اینطوری بود که گفتم FileBin -خودم رو بنویسم :)</p> -<hr> -<p><strong>بیایید فیچر ها و روش استفاده ازش رو با هم ببینیم.</strong></p> -<p>فرض کنید شما یک فایل دارید که می‌خواهید با من به اشتراک بگذارید، +خودم رو بنویسم :)</p> +<hr> +<p><strong>بیایید فیچر ها و روش استفاده ازش رو با هم ببینیم.</strong></p> +<p>فرض کنید شما یک فایل دارید که می‌خواهید با من به اشتراک بگذارید، خیلی ساده ترمینال رو باز می‌کنید و با یک دستور فایل رو با یک URL -تقریبا تصادفی منتشر می‌کنید.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">file</span><span class="o">=</span>@/tmp/theFile.fli -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/theFile.fli</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>دقت کنید من از سوییچ +تقریبا تصادفی منتشر می‌کنید.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">file</span><span class="o">=</span>@/tmp/theFile.fli +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/theFile.fli</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>دقت کنید من از سوییچ -L استفاده می‌کنم، دلیل اینکار این هست که خب ممکنه سایت شما رو ریدایرکت کنه. مثلا از @@ -82,206 +68,201 @@ http https. برای همین این سوییچ رو استفاده می‌کنم. با این سوییچ دیگه نیازی نیست https:// -رو هم بنویسیم!</p> -</blockquote> -<p>حالا اگه نیاز دارین که فایلتون بعد از اولین دانلود از روی سرور حذف بشه و دیگه در دسترس نباشه +رو هم بنویسیم!</p> +</blockquote> +<p>حالا اگه نیاز دارین که فایلتون بعد از اولین دانلود از روی سرور حذف بشه و دیگه در دسترس نباشه کافیه از کلمه -<code>once</code> +<code>once</code> بجای -<code>file</code> -استفاده کنید.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@/tmp/theFile.fli -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/theFile_GKug7xb.fli</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>تا اینجای کار همه +<code>file</code> +استفاده کنید.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@/tmp/theFile.fli +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/theFile_GKug7xb.fli</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>تا اینجای کار همه URL های هر فایلی به صورت تصادفی هست و من نیاز دارم که چندین فایل رو زیر یک یوزنیم مشخص مثل -<code>arya</code> +<code>arya</code> قرار بدم. اینطوری وقتی قراره یک فایل رو برای همکارم توی شرکت بفرستم خیلی ساده ازش درخواست می‌کنم در سایت به ادرس -<code>/arya</code> +<code>/arya</code> بره. حالا چطوری اینکارو بکنیم خیلی ساده بجای -<code>once</code> +<code>once</code> یا -<code>file</code>, +<code>file</code>, همون -<code>username</code> -رو می‌نویسیم(توی مثال من از نام <strong><em>arya</em></strong> استفاده می‌کنیم)</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">arya</span><span class="o">=</span>@/tmp/pic.jpg -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/arya</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>تا اینجای کار مثلا شما چند بار چند فایل مختلف رو زیر یک یوزنیم قرار دادین -حالا چطور میشه همه اونها رو باهم دانلود کرد؟</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir/arya <span class="p">|</span> wget -i - -</span></span></code></pre></td></tr></table> -</div> -</div><p>حالا به این فکر کنید که یکنفر میاد و با یوزنیم های معقول ریکوئست میزنه به سایت و +<code>username</code> +رو می‌نویسیم(توی مثال من از نام <strong><em>arya</em></strong> استفاده می‌کنیم)</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">arya</span><span class="o">=</span>@/tmp/pic.jpg +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/arya</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>تا اینجای کار مثلا شما چند بار چند فایل مختلف رو زیر یک یوزنیم قرار دادین +حالا چطور میشه همه اونها رو باهم دانلود کرد؟</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir/arya <span class="p">|</span> wget -i - +</span></span></code></pre></td></tr></table> +</div> +</div><p>حالا به این فکر کنید که یکنفر میاد و با یوزنیم های معقول ریکوئست میزنه به سایت و فایل های بقیه رو دانلود می‌کنه، اینجاست که پسورد به کار میاد. برای گذاشتن پسورد روی هر فایل کافیه توی خود URL سایت پسورد رو بعنوان http parametr -بنویسد.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L <span class="s1">&#39;octocat.ir/?password=12345678&#39;</span> -F <span class="nv">once</span><span class="o">=</span>@/Desktop/TopSecret.fli -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/file/TopSecret/?password=12345678</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>اینجا دقت کنید که باید از کوتیشن استفاده کنیم چون علامت مساوی و علامت سوال رو bash وایلد کارد می‌بینه.</p> -</blockquote> -<p>برای دانلود هر فایلی هم که پسورد داره کافیه دقیقا مثل مثال قبلی عمل کنید و پسورد رو توی +بنویسد.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L <span class="s1">&#39;octocat.ir/?password=12345678&#39;</span> -F <span class="nv">once</span><span class="o">=</span>@/Desktop/TopSecret.fli +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/file/TopSecret/?password=12345678</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>اینجا دقت کنید که باید از کوتیشن استفاده کنیم چون علامت مساوی و علامت سوال رو bash وایلد کارد می‌بینه.</p> +</blockquote> +<p>برای دانلود هر فایلی هم که پسورد داره کافیه دقیقا مثل مثال قبلی عمل کنید و پسورد رو توی http parametr -وارد کنید</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ wget <span class="s1">&#39;octocat.ir/file/TopSecret/?password=12345678&#39;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>براتون سواله که چرا پسورد روی توی +وارد کنید</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ wget <span class="s1">&#39;octocat.ir/file/TopSecret/?password=12345678&#39;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>براتون سواله که چرا پسورد روی توی URL گذاشتم؟ می‌شد که مثلا توی http header پسورد بگیریم و بدیم، پس چرا توی -URL?</p> -<p>اینکار برای این هست که دسترسی به فایل ساده باشه. مثلا من وقتی می‌خام فایلی رو برای همکارم بفرستم +URL?</p> +<p>اینکار برای این هست که دسترسی به فایل ساده باشه. مثلا من وقتی می‌خام فایلی رو برای همکارم بفرستم و خب فرض کنم همکار من از header ها چیزی نمی‌دونه، و فقط با یک کلیک باید بتونه به فایل دسترسی پیدا کنه، اینجاست که من فقط یک URL -به اون می‌گم :)</p> -<hr> -<p>بعضی از ابزار ها +به اون می‌گم :)</p> +<hr> +<p>بعضی از ابزار ها hackable هستند! این به معنی ضعف امنیتی نیست، بلکه به این اشاره می‌کنه ابزار به روشی طراحی -شده که کاربران می‌تونند خارج از هدف اصلی اون ابزار از اون استفاه کنند.</p> -<p>برای مثال ابزار که من درست کردم برای اشتراک فایل هست، اما بنظرتون میشه یک دایرکتوری و یا یک متن رو هم باهاش به اشتراک گذاشت؟</p> -<p>قطعا! اما چطوری؟</p> -<p>برای اینکه یک دایرکتوری با تمامی ساب دایرکتوری هاش رو بفرستین +شده که کاربران می‌تونند خارج از هدف اصلی اون ابزار از اون استفاه کنند.</p> +<p>برای مثال ابزار که من درست کردم برای اشتراک فایل هست، اما بنظرتون میشه یک دایرکتوری و یا یک متن رو هم باهاش به اشتراک گذاشت؟</p> +<p>قطعا! اما چطوری؟</p> +<p>برای اینکه یک دایرکتوری با تمامی ساب دایرکتوری هاش رو بفرستین کافیه از -<code>tar</code> -استفاده کنید.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ tar -cf - ~/Pictures <span class="p">|</span> curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@- -</span></span><span class="line"><span class="cl"><span class="c1"># &#39;octocat.ir/file/_nUiuRPW/</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>با اینکار با استفاده از +<code>tar</code> +استفاده کنید.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ tar -cf - ~/Pictures <span class="p">|</span> curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@- +</span></span><span class="line"><span class="cl"><span class="c1"># &#39;octocat.ir/file/_nUiuRPW/</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>با اینکار با استفاده از tar تمامی فایل ها و دایرکتوری های مثلا پوشه -<em>~/Pictures</em> +<em>~/Pictures</em> رو به آرشیو -<code>tar</code> +<code>tar</code> تبدیل می‌کنید و بعد خروجی رو بعنوان ورودی به -<code>curl</code> -می‌فرستین.</p> -<p>حالا به این فکر کنید که بخواهیم یک متن رو منتشر کنیم، راهکار دقیقا مشابه قبلیه. +<code>curl</code> +می‌فرستین.</p> +<p>حالا به این فکر کنید که بخواهیم یک متن رو منتشر کنیم، راهکار دقیقا مشابه قبلیه. به این شکل که یک متن رو با استفاده از -<code>echo</code> +<code>echo</code> به ورودی استاندارد -<code>curl</code> -می‌فرستیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ <span class="nb">echo</span> <span class="s1">&#39;Some Random Text&#39;</span> <span class="p">|</span> curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@- -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/file/-_W00DSbS/</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>اینطوری خیلی راحت می‌شه خروجی هر کامندی رو روی به اشتراک گذاشت</p> -</blockquote> -<hr> -<p>سایت من توی آدرس +<code>curl</code> +می‌فرستیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ <span class="nb">echo</span> <span class="s1">&#39;Some Random Text&#39;</span> <span class="p">|</span> curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@- +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/file/-_W00DSbS/</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>اینطوری خیلی راحت می‌شه خروجی هر کامندی رو روی به اشتراک گذاشت</p> +</blockquote> +<hr> +<p>سایت من توی آدرس octocat.ir -در دسترسه، خوشحال می‌شم ازش استفاده کنید :)</p> -<blockquote> -<p>اینو بدونید که سایت به صورت دیفالت فایل ها رو برای 24 ساعت نگه‌میداره</p> -</blockquote> -<p>این سرویس رو منبع باز روی -<a class="link" href="https://github.com/shabane/CurlPaste/" target="_blank" rel="noopener" - >گیتهاب</a> -گذاشتم، اگه چیزی خواستید می‌تونید بهش اضافه کنید و یا مشکلاتش رو پچ کنید.</p> -<p>و اگه می‌خواهید برای خودتون این سرویس رو بیارید بالا از ایمیج داکر استفاده کنید</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">docker run -p 80:80 mshabane/curlpaste:latest -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>اگه نیاز دارین تا فایل ها برای تایم بالاتری نگه‌داری بشه، متغییر -<em>HOURS</em> +در دسترسه، خوشحال می‌شم ازش استفاده کنید :)</p> +<blockquote> +<p>اینو بدونید که سایت به صورت دیفالت فایل ها رو برای 24 ساعت نگه‌میداره</p> +</blockquote> +<p>این سرویس رو منبع باز روی +<a class="link" href="https://github.com/shabane/CurlPaste/" target="_blank" rel="noopener" +>گیتهاب</a> +گذاشتم، اگه چیزی خواستید می‌تونید بهش اضافه کنید و یا مشکلاتش رو پچ کنید.</p> +<p>و اگه می‌خواهید برای خودتون این سرویس رو بیارید بالا از ایمیج داکر استفاده کنید</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">docker run -p 80:80 mshabane/curlpaste:latest +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>اگه نیاز دارین تا فایل ها برای تایم بالاتری نگه‌داری بشه، متغییر +<em>HOURS</em> داخل فایل -<em>.env</em> -رو تغییر بدین.</p> -</blockquote> -<hr> -<p>ایده های دیگه‌ای هم برای سایت دارم، برای مثال اینکه کاربر بتونه زمان انقضای +<em>.env</em> +رو تغییر بدین.</p> +</blockquote> +<hr> +<p>ایده های دیگه‌ای هم برای سایت دارم، برای مثال اینکه کاربر بتونه زمان انقضای هر فایل رو خودش مشخص کنه. -مثلا به این شکل</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -L octocat.ir -F <span class="nv">arya_1</span><span class="o">=</span>/path/to/file -</span></span></code></pre></td></tr></table> -</div> -</div><p>اینطوری میشه یک زمان انقضا بر اساس ساعت برای هر فایل ایجاد کرد.</p> -<p>و خب همچنین میشه یک کوتاه کننده لینک هم بهش اضافه کنم، و لینک های کوتاه شده رو -ریدایرکت کنم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -L octocat.ir -F <span class="nv">url</span><span class="o">=</span><span class="s1">&#39;https://example.com/some/looooong/url/&#39;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>اگه اینها رو اضافه کنم، این پست رو اپدیت می‌کنم ولی خوشحال می‌شم شما -توی این پروژه مشارکت کنید.</p> - - - - - +مثلا به این شکل</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -L octocat.ir -F <span class="nv">arya_1</span><span class="o">=</span>/path/to/file +</span></span></code></pre></td></tr></table> +</div> +</div><p>اینطوری میشه یک زمان انقضا بر اساس ساعت برای هر فایل ایجاد کرد.</p> +<p>و خب همچنین میشه یک کوتاه کننده لینک هم بهش اضافه کنم، و لینک های کوتاه شده رو +ریدایرکت کنم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -L octocat.ir -F <span class="nv">url</span><span class="o">=</span><span class="s1">&#39;https://example.com/some/looooong/url/&#39;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>اگه اینها رو اضافه کنم، این پست رو اپدیت می‌کنم ولی خوشحال می‌شم شما +توی این پروژه مشارکت کنید.</p> \ No newline at end of file diff --git a/docs/tags/paste-file-with-curl/page/1/index.html b/docs/tags/paste-file-with-curl/page/1/index.html index 5592980..c60a286 100644 --- a/docs/tags/paste-file-with-curl/page/1/index.html +++ b/docs/tags/paste-file-with-curl/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/paste-file-with-curl/ - - - - - - +https://bit-orbit.github.io/tags/paste-file-with-curl/ + \ No newline at end of file diff --git a/docs/tags/recursion/index.html b/docs/tags/recursion/index.html index c1d16c0..b1c850f 100644 --- a/docs/tags/recursion/index.html +++ b/docs/tags/recursion/index.html @@ -1,559 +1,37 @@ - - - - -Tag: Recursion - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

Recursion

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: Recursion - bit-orbit + \ No newline at end of file diff --git a/docs/tags/recursion/index.xml b/docs/tags/recursion/index.xml index cee2015..57fe1e6 100644 --- a/docs/tags/recursion/index.xml +++ b/docs/tags/recursion/index.xml @@ -1,18 +1,4 @@ - - - - Recursion on bit-orbit - https://bit-orbit.github.io/tags/recursion/ - Recent content in Recursion on bit-orbit - Hugo -- gohugo.io - fa - Wed, 27 Dec 2023 16:39:27 +0330 - فورک بمب چیست و چطور کار می‌کند؟ - https://bit-orbit.github.io/p/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B7%D9%88%D8%B1-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF/ - Wed, 27 Dec 2023 16:39:27 +0330 - - https://bit-orbit.github.io/p/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B7%D9%88%D8%B1-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF/ - <img src="https://bit-orbit.github.io/images/post/fork_bomb.jpg" alt="Featured image of post فورک بمب چیست و چطور کار می‌کند؟" /><p>اوایل که لینوکس نصب کرده بودم کامند هایی که توی +Recursion on bit-orbithttps://bit-orbit.github.io/tags/recursion/Recent content in Recursion on bit-orbitHugo -- gohugo.iofaWed, 27 Dec 2023 16:39:27 +0330فورک بمب چیست و چطور کار می‌کند؟https://bit-orbit.github.io/p/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B7%D9%88%D8%B1-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF/Wed, 27 Dec 2023 16:39:27 +0330https://bit-orbit.github.io/p/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B7%D9%88%D8%B1-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF/<img src="https://bit-orbit.github.io/images/post/fork_bomb.jpg" alt="Featured image of post فورک بمب چیست و چطور کار می‌کند؟" /><p>اوایل که لینوکس نصب کرده بودم کامند هایی که توی فروم های مختلف می‌دیدم و برای من جدید بود را دوست داشتم یاد بگیرم و بدانم کار آنها چی هست، برای همین هر کامندی را که می‌دیدم در @@ -21,306 +7,283 @@ هر کامندی اشتباهه بود. یکی از این کامند ها که اجرا کرده بودم، به اسم فورک بمب (fork bomb) -شناخته می‌شود. کامند به این صورت هست</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>:<span class="p">&amp;</span> <span class="o">}</span><span class="p">;</span>: -</span></span></code></pre></td></tr></table> -</div> -</div><p>اگر این کامند را اجرا کنید(امیدوارم تا الان نکرده باشید) تقریبا زیر یک دقیقه سیستم شما -هنگ می‌کند و مجبور می‌شوید سیستم را ریبوت کنید.</p> -<hr> -<p>توی این پست ساختار این کامند را تشریح می‌کنم و باهم +شناخته می‌شود. کامند به این صورت هست</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>:<span class="p">&amp;</span> <span class="o">}</span><span class="p">;</span>: +</span></span></code></pre></td></tr></table> +</div> +</div><p>اگر این کامند را اجرا کنید(امیدوارم تا الان نکرده باشید) تقریبا زیر یک دقیقه سیستم شما +هنگ می‌کند و مجبور می‌شوید سیستم را ریبوت کنید.</p> +<hr> +<p>توی این پست ساختار این کامند را تشریح می‌کنم و باهم کمی bash -یاد می‌گیریم.</p> -<p>بیایید اول با مفهوم +یاد می‌گیریم.</p> +<p>بیایید اول با مفهوم recustion آشنا بشیم، زمانی که یک قطعه کد خودش اجرا کند، recusion می‌گویم. مثلا شما یک فانکشن می‌نویسید به اسم -<em>fn</em> +<em>fn</em> و توی بدنه فانکشن فقط خود همین فانکشن را صدا می‌‌کنید، به این کار call recursion گفته می‌شود. فورک بمب دقیقا همین کار را می‌کند. به این -معنی که خودش را دائم اجرا می‌کند!</p> -<p>به این فکر کنید که وقتی یک پراسس خودش را اجرا می‌کند +معنی که خودش را دائم اجرا می‌کند!</p> +<p>به این فکر کنید که وقتی یک پراسس خودش را اجرا می‌کند ،مجدد پراسس های اجرا شده توسط اون هم دائم خودشان را اجرا می‌کنند، و دوباره هر پروسه‌ای که اجرا می‌شود بازم خودش را اجرا می‌کند و این روند تا زمانی که رم و پردازنده سیستم تحمل -داشته باشد ادامه دارد.</p> -<blockquote> -<p>درختی که می‌بینید را اجرای فورک بمب درنظر بگیرید، +داشته باشد ادامه دارد.</p> +<blockquote> +<p>درختی که می‌بینید را اجرای فورک بمب درنظر بگیرید، هر ستاره یک پروسه جدید است که توسط پروسه قبلی اجرا شده، و خودش هم دو پروسه جدید باز می‌کند و هر یک از پروسه ها -هم همین روند را ادامه می‌دهند.</p> -</blockquote> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt">10 -</span><span class="lnt">11 -</span><span class="lnt">12 -</span><span class="lnt">13 -</span><span class="lnt">14 -</span><span class="lnt">15 -</span><span class="lnt">16 -</span><span class="lnt">17 -</span><span class="lnt">18 -</span><span class="lnt">19 -</span><span class="lnt">20 -</span><span class="lnt">21 -</span><span class="lnt">22 -</span><span class="lnt">23 -</span><span class="lnt">24 -</span><span class="lnt">25 -</span><span class="lnt">26 -</span><span class="lnt">27 -</span><span class="lnt">28 -</span><span class="lnt">29 -</span><span class="lnt">30 -</span><span class="lnt">31 -</span><span class="lnt">32 -</span><span class="lnt">33 -</span><span class="lnt">34 -</span><span class="lnt">35 -</span><span class="lnt">36 -</span><span class="lnt">37 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w">   </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w">   </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><p>من برای اینکه سیستم‌ خودم هنگ نکند فورک بمب را روی داکر +هم همین روند را ادامه می‌دهند.</p> +</blockquote> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span><span class="lnt">19 +</span><span class="lnt">20 +</span><span class="lnt">21 +</span><span class="lnt">22 +</span><span class="lnt">23 +</span><span class="lnt">24 +</span><span class="lnt">25 +</span><span class="lnt">26 +</span><span class="lnt">27 +</span><span class="lnt">28 +</span><span class="lnt">29 +</span><span class="lnt">30 +</span><span class="lnt">31 +</span><span class="lnt">32 +</span><span class="lnt">33 +</span><span class="lnt">34 +</span><span class="lnt">35 +</span><span class="lnt">36 +</span><span class="lnt">37 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w">   </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w">   </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><p>من برای اینکه سیستم‌ خودم هنگ نکند فورک بمب را روی داکر اجرا کردم و خب حتی یک ثانیه هم طول نکشید و آن کانتینر -کاملا هنگ کرد.</p> -<blockquote> -<p>قبل از اجرا -<a class="link" href="https://bit-orbit.github.io/images/post/forkbomb_docker0.jpg" ><img src="https://bit-orbit.github.io/images/post/forkbomb_docker0.jpg" - - - - loading="lazy" - - alt="forkbomb on docker" - - -></a></p> -</blockquote> -<blockquote> -<p>زمان اجرا -<a class="link" href="https://bit-orbit.github.io/images/post/forkbomb_docker.jpg" ><img src="https://bit-orbit.github.io/images/post/forkbomb_docker.jpg" - - - - loading="lazy" - - alt="forkbomb on docker" - - -></a></p> -</blockquote> -<hr> -<p>بیایید وارد کد بشیم، این علامت ها و کاراکتر ها چی هستند؟</p> -<!-- برای تعریف یک فانکشن توی +کاملا هنگ کرد.</p> +<blockquote> +<p>قبل از اجرا +<a class="link" href="https://bit-orbit.github.io/images/post/forkbomb_docker0.jpg" ><img src="https://bit-orbit.github.io/images/post/forkbomb_docker0.jpg" +loading="lazy" +alt="forkbomb on docker" +></a></p> +</blockquote> +<blockquote> +<p>زمان اجرا +<a class="link" href="https://bit-orbit.github.io/images/post/forkbomb_docker.jpg" ><img src="https://bit-orbit.github.io/images/post/forkbomb_docker.jpg" +loading="lazy" +alt="forkbomb on docker" +></a></p> +</blockquote> +<hr> +<p>بیایید وارد کد بشیم، این علامت ها و کاراکتر ها چی هستند؟</p> +<!-- برای تعریف یک فانکشن توی bash -ما به این صورت عمل می‌کنیم که اول اسم فانکشن بعد پرانتز -و بعد کرلی براکت(توی فارسی می‌گیم آکولاد) و داخل کرلی +ما به این صورت عمل می‌کنیم که اول اسم فانکشن بعد پرانتز +و بعد کرلی براکت(توی فارسی می‌گیم آکولاد) و داخل کرلی براکت ما قطعه کد را می‌نویسیم. مثلا برای فانکشنی که یک اسم را روی صفحه چاپ کنه به این صورت عمل می‌کنیم - ```bash -pname(){ echo 'foo'; } -``` --> -<p>اگه دقت کنید اولین کاراکتر فورک بمب، علامت -<code>:</code> +pname(){ echo 'foo'; } +``` --> +<p>اگه دقت کنید اولین کاراکتر فورک بمب، علامت +<code>:</code> است. این علامت اسم فانکشن ما است. برخلاف قانون تعریف نام برای متغییر ها توی bash، می‌توانیم از کاراتر های یونیکد هم برای تعریف نام فانکشن استفاده کنیم، مثلا یک -کاراکتر چینی یا حتی ایموجی!</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span><span class="lnt">3 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">雨<span class="o">(){</span> <span class="nb">echo</span> <span class="s1">&#39;rain&#39;</span><span class="p">;</span> <span class="o">}</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">❤️<span class="o">(){</span> <span class="nb">echo</span> <span class="s1">&#39;love&#39;</span><span class="p">;</span> <span class="o">}</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>خب در ادامه علامت های -<code>()</code> +کاراکتر چینی یا حتی ایموجی!</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">雨<span class="o">(){</span> <span class="nb">echo</span> <span class="s1">&#39;rain&#39;</span><span class="p">;</span> <span class="o">}</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">❤️<span class="o">(){</span> <span class="nb">echo</span> <span class="s1">&#39;love&#39;</span><span class="p">;</span> <span class="o">}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>خب در ادامه علامت های +<code>()</code> را می‌بینیم، توی bash برای تعریف فانکشن قبل از اسم فانکشن هیچ کلمه کلیدی مثل fn, def, void و &hellip; نیاز نیست، فقط بجای آن باید -<strong>بعد از اسم فانکشن</strong> -پرانتز ها را بگذارید.</p> -<p>مثل خیلی از زبان های برنامه نویسی، بدنه فانکشن توی -کرلی براکت تعریف می‌شود.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){}</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>پس تا اینجا ما یک فانکشن ساده با نام -<code>:</code> -تعریف کردیم.</p> -<p>داخل بدنه این فانکشن، اسمی که برای فانکشن قرار دادیم +<strong>بعد از اسم فانکشن</strong> +پرانتز ها را بگذارید.</p> +<p>مثل خیلی از زبان های برنامه نویسی، بدنه فانکشن توی +کرلی براکت تعریف می‌شود.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>پس تا اینجا ما یک فانکشن ساده با نام +<code>:</code> +تعریف کردیم.</p> +<p>داخل بدنه این فانکشن، اسمی که برای فانکشن قرار دادیم همان -<code>:</code> +<code>:</code> را می‌نویسیم. با اینکار دقیقا call recursion را انجام دادیم، و باعث شدیم که برنامه خودش را -توی هر اجرا مجدد اجرا کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> : <span class="o">}</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>دقت کنید توی سینتکس +توی هر اجرا مجدد اجرا کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> : <span class="o">}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>دقت کنید توی سینتکس bash -حتما باید یک فاصله برای کدی که داخلی کرلی براکت می‌نویسم قرار بدیم</p> -</blockquote> -<p>علامت -<code>|</code> +حتما باید یک فاصله برای کدی که داخلی کرلی براکت می‌نویسم قرار بدیم</p> +</blockquote> +<p>علامت +<code>|</code> به اسم پایپ شناخته می‌شود، وظیفه این علامت دادن خروجی یک کامند بعنوان ورودی به یک کامند دیگر هست، حلا دقت کنید که ما خروجی اجرای -<code>:</code> -را به خودش می‌دهیم. دقیقا به این شکل</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>: <span class="o">}</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>با این علامت هر پروسه دو بار پروسه جدیدی از خودش می‌سازد +<code>:</code> +را به خودش می‌دهیم. دقیقا به این شکل</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>: <span class="o">}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>با این علامت هر پروسه دو بار پروسه جدیدی از خودش می‌سازد اگر از این علامت استفاده نکنیم، پروسه ما به صورت خطی خودش را اجرا خواهد کرد، اینطوری کد ما با یک حلقه -<code>while</code> -تفاوتی زیادی نخواهد داشت.</p> -<p>علامت -<code>&amp;</code> +<code>while</code> +تفاوتی زیادی نخواهد داشت.</p> +<p>علامت +<code>&amp;</code> اجرای یک کامند را به بکگراند(پس زمینه) می‌برد. برای مثال بعد از اجرای یک دستور باید صبر کنید پروسه آن تمام شود تا بتوانید دستور بعدی را اجرا کنید. ولی اگر از علامت -<code>&amp;</code> +<code>&amp;</code> بعد از هر دستور استفاده کنید، دیگر نیاز نیست صبر کنید تا روند اجرای آن برنامه تمام شود. درواقع با علامت -<code>&amp;</code> +<code>&amp;</code> شما می‌توانید هر برنامه را در بکگراند اجرا کنید. حالا توی فورک بمب این علامت باعث می‌شود تا فانشکنی که اجرا کردین درحالی که کارش به اتمام -نرسیده است، فانکشن بعدی اجرا بشود.</p> -<p><img src="https://bit-orbit.github.io/images/post/forkbomb_and.jpg" - - - - loading="lazy" - - alt="& in bash" - - -></p> -<p>و بعد علامت -<code>;</code> +نرسیده است، فانکشن بعدی اجرا بشود.</p> +<p><img src="https://bit-orbit.github.io/images/post/forkbomb_and.jpg" +loading="lazy" +alt="& in bash" +></p> +<p>و بعد علامت +<code>;</code> را می‌بینیم. این علامت کامند ها را از هم جدا می‌کند. مثلا شما می‌توانید چند کامند مختلف را توی یک خط بنویسید. توی فورک بمب این علامت فانکشنی که تعریف کردین را از -دستور بعدی(که اجرا کننده اون فانکشن هست)جدا می‌کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s1">&#39;foo&#39;</span><span class="p">;</span> <span class="nb">echo</span> <span class="s1">&#39;bar&#39;</span><span class="p">;</span> <span class="nb">echo</span> <span class="s1">&#39;baz&#39;</span><span class="p">;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>آخرین علامتی که توی فورک بمب داریم همون علامت -<code>:</code> +دستور بعدی(که اجرا کننده اون فانکشن هست)جدا می‌کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s1">&#39;foo&#39;</span><span class="p">;</span> <span class="nb">echo</span> <span class="s1">&#39;bar&#39;</span><span class="p">;</span> <span class="nb">echo</span> <span class="s1">&#39;baz&#39;</span><span class="p">;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>آخرین علامتی که توی فورک بمب داریم همون علامت +<code>:</code> یا همون اسمی هست که برای فانکشن قرار دادیم. خیلی ساده توی bash -برای اجرای یک فانکشن فقط اسم‌ش را می‌نویسیم.</p> -<p>و تمام! ما یاد گرفتیم چطور فورک بمب رو بنویسیم و دیگه -نیاز نیست حفظ‌ش کنیم :)</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>:<span class="p">&amp;</span> <span class="o">}</span><span class="p">;</span>: -</span></span></code></pre></td></tr></table> -</div> -</div> - - - - +برای اجرای یک فانکشن فقط اسم‌ش را می‌نویسیم.</p> +<p>و تمام! ما یاد گرفتیم چطور فورک بمب رو بنویسیم و دیگه +نیاز نیست حفظ‌ش کنیم :)</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>:<span class="p">&amp;</span> <span class="o">}</span><span class="p">;</span>: +</span></span></code></pre></td></tr></table> +</div> +</div> \ No newline at end of file diff --git a/docs/tags/recursion/page/1/index.html b/docs/tags/recursion/page/1/index.html index 2fee6b5..5aa0a6a 100644 --- a/docs/tags/recursion/page/1/index.html +++ b/docs/tags/recursion/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/recursion/ - - - - - - +https://bit-orbit.github.io/tags/recursion/ + \ No newline at end of file diff --git a/docs/tags/regex/index.html b/docs/tags/regex/index.html index ae9edf3..2644718 100644 --- a/docs/tags/regex/index.html +++ b/docs/tags/regex/index.html @@ -1,559 +1,37 @@ - - - - -Tag: Regex - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

Regex

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: Regex - bit-orbit + \ No newline at end of file diff --git a/docs/tags/regex/index.xml b/docs/tags/regex/index.xml index 404e3e9..2e261b7 100644 --- a/docs/tags/regex/index.xml +++ b/docs/tags/regex/index.xml @@ -1,107 +1,70 @@ - - - - Regex on bit-orbit - https://bit-orbit.github.io/tags/regex/ - Recent content in Regex on bit-orbit - Hugo -- gohugo.io - fa - Fri, 07 Jul 2023 02:45:19 +0330 - چرا لینوکس رو دوست دارم؟ - https://bit-orbit.github.io/p/%DA%86%D8%B1%D8%A7-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D8%B1%D9%88-%D8%AF%D9%88%D8%B3%D8%AA-%D8%AF%D8%A7%D8%B1%D9%85/ - Fri, 07 Jul 2023 02:45:19 +0330 - - https://bit-orbit.github.io/p/%DA%86%D8%B1%D8%A7-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D8%B1%D9%88-%D8%AF%D9%88%D8%B3%D8%AA-%D8%AF%D8%A7%D8%B1%D9%85/ - <img src="https://bit-orbit.github.io/images/post/ill.png" alt="Featured image of post چرا لینوکس رو دوست دارم؟" /><p>دوست داشتن لینوکس واقعا دلایل زیادی داره و احتمالا هر کسی به دلیل خاصی لینوکس رو دوست داره. -مثلا یکی ممکنه آزادی‌اش رو دوست داشته باشه یکی دیگه از پکیج منیجر علاقه رو به لینوکس پیدا کرده باشه و &hellip;</p> -<p>من ترمینال قدرتمند لینوکس رو دوست دارم، چیزی که هیچوقت توی ویندوز تجربه نکرده بودم. -یکی زیبایی های ترمینال برای من ترکیب ریزالت برنامه‌های مختلف با یکدیگر و بدست اوردن نتیجه جدیده</p> -<p>مثلا بابام برای چندین پست فرستاد که هر پست شامل چهار یا پنج لینکه که من باید همه‌ش رو دانلود کنم، +Regex on bit-orbithttps://bit-orbit.github.io/tags/regex/Recent content in Regex on bit-orbitHugo -- gohugo.iofaFri, 07 Jul 2023 02:45:19 +0330چرا لینوکس رو دوست دارم؟https://bit-orbit.github.io/p/%DA%86%D8%B1%D8%A7-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D8%B1%D9%88-%D8%AF%D9%88%D8%B3%D8%AA-%D8%AF%D8%A7%D8%B1%D9%85/Fri, 07 Jul 2023 02:45:19 +0330https://bit-orbit.github.io/p/%DA%86%D8%B1%D8%A7-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D8%B1%D9%88-%D8%AF%D9%88%D8%B3%D8%AA-%D8%AF%D8%A7%D8%B1%D9%85/<img src="https://bit-orbit.github.io/images/post/ill.png" alt="Featured image of post چرا لینوکس رو دوست دارم؟" /><p>دوست داشتن لینوکس واقعا دلایل زیادی داره و احتمالا هر کسی به دلیل خاصی لینوکس رو دوست داره. +مثلا یکی ممکنه آزادی‌اش رو دوست داشته باشه یکی دیگه از پکیج منیجر علاقه رو به لینوکس پیدا کرده باشه و &hellip;</p> +<p>من ترمینال قدرتمند لینوکس رو دوست دارم، چیزی که هیچوقت توی ویندوز تجربه نکرده بودم. +یکی زیبایی های ترمینال برای من ترکیب ریزالت برنامه‌های مختلف با یکدیگر و بدست اوردن نتیجه جدیده</p> +<p>مثلا بابام برای چندین پست فرستاد که هر پست شامل چهار یا پنج لینکه که من باید همه‌ش رو دانلود کنم، درحالت عادی اگر روی ویندوز بودم خب باید هر لینک رو کپی می‌کردم و بعد وارد دانلود منیجر می‌کردم برای دانلود. -ولی خب ما مجهزیم به قدرت ترمینال لینوکس :)</p> -<p><img src="https://bit-orbit.github.io/images/post/tfiles.jpg" - - - - loading="lazy" - - alt="telegram-post-contain-links" - - -></p> -<p>خب من کاری که می‌کنم اینه که متن پست ها رو کپی می‌کنم و توی یک فایل می‌ریزم -اینطوری هم متن های فارسی پست ها و هم لینک های فایل ها رو دارم</p> -<p><img src="https://bit-orbit.github.io/images/post/ffiles2.jpg" - - - - loading="lazy" - - alt="save-links-to-file" - - -></p> -<p>بعد با دستور +ولی خب ما مجهزیم به قدرت ترمینال لینوکس :)</p> +<p><img src="https://bit-orbit.github.io/images/post/tfiles.jpg" +loading="lazy" +alt="telegram-post-contain-links" +></p> +<p>خب من کاری که می‌کنم اینه که متن پست ها رو کپی می‌کنم و توی یک فایل می‌ریزم +اینطوری هم متن های فارسی پست ها و هم لینک های فایل ها رو دارم</p> +<p><img src="https://bit-orbit.github.io/images/post/ffiles2.jpg" +loading="lazy" +alt="save-links-to-file" +></p> +<p>بعد با دستور grep با یک پترن ساده regex همه لینک ها رو از متن های فارسی جدا می‌کنم و داخل یک فایل دیگه می‌ریزم. این پترن به این شکل هست که می‌گه هر خطی که اولش http -باشه رو پیدا کن.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">cat dl.txt <span class="p">|</span> egrep <span class="s1">&#39;^http&#39;</span> &gt; dl.lst -</span></span></code></pre></td></tr></table> -</div> -</div><p><img src="https://bit-orbit.github.io/images/post/tfiles3.jpg" - - - - loading="lazy" - - alt="save-links-to-file" - - -></p> -<p>و تمام، همه لینک ها رو یکجا آماده دارم، حالا کافیه با یک دستور همه فایل -ها رو دانلود کنم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">wget -c -i dl.lst -</span></span></code></pre></td></tr></table> -</div> -</div><p>خب بعد از دانلود شدن فایل ها، یک مشکلی که دارم این هست که هر پست شامل تمامی درس های یکی از فصل هایی هست +باشه رو پیدا کن.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">cat dl.txt <span class="p">|</span> egrep <span class="s1">&#39;^http&#39;</span> &gt; dl.lst +</span></span></code></pre></td></tr></table> +</div> +</div><p><img src="https://bit-orbit.github.io/images/post/tfiles3.jpg" +loading="lazy" +alt="save-links-to-file" +></p> +<p>و تمام، همه لینک ها رو یکجا آماده دارم، حالا کافیه با یک دستور همه فایل +ها رو دانلود کنم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">wget -c -i dl.lst +</span></span></code></pre></td></tr></table> +</div> +</div><p>خب بعد از دانلود شدن فایل ها، یک مشکلی که دارم این هست که هر پست شامل تمامی درس های یکی از فصل هایی هست که بابام می‌بینه. من باید فایل ها رو براساس فصل هاشون داخل دایرکتوری های مشخص خودش قرار بدم. اینم یک راهکار خیلی ساده داره. اسم فایل ها به این شکل هست که فصل رو داخلش نوشته -<code>Option402-J04-01.mp4</code> -کافیه با یه وایلد کارت هر فصل رو جدا کنم و داخل دایرکتوری خودش بریزم</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span><span class="lnt">3 -</span><span class="lnt">4 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mv Option402-J04* j04 -</span></span><span class="line"><span class="cl">mv Option402-J05* j05 -</span></span><span class="line"><span class="cl">mv Option402-J06* j06 -</span></span><span class="line"><span class="cl">mv Option402-J07* j07 -</span></span></code></pre></td></tr></table> -</div> -</div><p>این یک مثال ساده‌ای بود که می‌تونستم بزنم برای -توضیح اینکه چرا لینوکس برام جذاب تره و کارم رو ساده تر می‌کنه.</p> - - - - - +<code>Option402-J04-01.mp4</code> +کافیه با یه وایلد کارت هر فصل رو جدا کنم و داخل دایرکتوری خودش بریزم</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mv Option402-J04* j04 +</span></span><span class="line"><span class="cl">mv Option402-J05* j05 +</span></span><span class="line"><span class="cl">mv Option402-J06* j06 +</span></span><span class="line"><span class="cl">mv Option402-J07* j07 +</span></span></code></pre></td></tr></table> +</div> +</div><p>این یک مثال ساده‌ای بود که می‌تونستم بزنم برای +توضیح اینکه چرا لینوکس برام جذاب تره و کارم رو ساده تر می‌کنه.</p> \ No newline at end of file diff --git a/docs/tags/regex/page/1/index.html b/docs/tags/regex/page/1/index.html index b657593..722525b 100644 --- a/docs/tags/regex/page/1/index.html +++ b/docs/tags/regex/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/regex/ - - - - - - +https://bit-orbit.github.io/tags/regex/ + \ No newline at end of file diff --git a/docs/tags/rust/index.html b/docs/tags/rust/index.html index b3c2e43..b8b0ec2 100644 --- a/docs/tags/rust/index.html +++ b/docs/tags/rust/index.html @@ -1,576 +1,37 @@ - - - - -Tag: Rust - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

2 صفحه

-

Rust

- -
-
-
- -
- - - - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: Rust - bit-orbit + \ No newline at end of file diff --git a/docs/tags/rust/index.xml b/docs/tags/rust/index.xml index cdd181e..abc879f 100644 --- a/docs/tags/rust/index.xml +++ b/docs/tags/rust/index.xml @@ -1,227 +1,200 @@ - - - - Rust on bit-orbit - https://bit-orbit.github.io/tags/rust/ - Recent content in Rust on bit-orbit - Hugo -- gohugo.io - fa - Wed, 03 Jan 2024 01:30:52 +0330 - انواع داده های اولیه در rust - https://bit-orbit.github.io/p/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%D9%88%D9%84%DB%8C%D9%87-%D8%AF%D8%B1-rust/ - Wed, 03 Jan 2024 01:30:52 +0330 - - https://bit-orbit.github.io/p/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%D9%88%D9%84%DB%8C%D9%87-%D8%AF%D8%B1-rust/ - <img src="https://bit-orbit.github.io/images/post/rustdatatypes.jpg" alt="Featured image of post انواع داده های اولیه در rust" /><p>هر زبان برنامه نویسی انواعی از داده ها رو داره، مثلا +Rust on bit-orbithttps://bit-orbit.github.io/tags/rust/Recent content in Rust on bit-orbitHugo -- gohugo.iofaWed, 03 Jan 2024 01:30:52 +0330انواع داده های اولیه در rusthttps://bit-orbit.github.io/p/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%D9%88%D9%84%DB%8C%D9%87-%D8%AF%D8%B1-rust/Wed, 03 Jan 2024 01:30:52 +0330https://bit-orbit.github.io/p/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%D9%88%D9%84%DB%8C%D9%87-%D8%AF%D8%B1-rust/<img src="https://bit-orbit.github.io/images/post/rustdatatypes.jpg" alt="Featured image of post انواع داده های اولیه در rust" /><p>هر زبان برنامه نویسی انواعی از داده ها رو داره، مثلا داده های عددی، کاراکتر و یا رشته‌ای از کاراکتر ها. زبان rust هم انواع داده‌ای زیادی رو پشتیبانی می‌کنه و خب حتی اگر جایی کمبودی حس کردین، می‌توانید ساختار داده‌ی خودتان -را بسازید.</p> -<blockquote> -<p>‌ انواع داده ترجمه‌ی کلمه +را بسازید.</p> +<blockquote> +<p>‌ انواع داده ترجمه‌ی کلمه data type هست. و خب برای من استفاده از کلمه انگلیسی‌اش خیلی راحت -تره.</p> -</blockquote> -<h4 id="نوع-داده-عدد-صحیح">نوع داده عدد صحیح</h4> -<p>همینطور که می‌دونید عدد صحیح از منفی بی‌نهایت تا مثبت -بی‌نهایت است(بدون هیچ علامت کسر، رادیکال و بدون اعشار).</p> -<p>این نوع داده در +تره.</p> +</blockquote> +<h4 id="نوع-داده-عدد-صحیح">نوع داده عدد صحیح +</h4><p>همینطور که می‌دونید عدد صحیح از منفی بی‌نهایت تا مثبت +بی‌نهایت است(بدون هیچ علامت کسر، رادیکال و بدون اعشار).</p> +<p>این نوع داده در rust -به این صورت است</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">variable_name</span>: <span class="kt">i32</span> <span class="o">=</span><span class="w"> </span><span class="o">-</span><span class="mi">2147483648</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">variable_name</span>: <span class="kt">i32</span> <span class="o">=</span><span class="w"> </span><span class="mi">2147483647</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><p>به این باید دقت کنیم که هر متغییری مقداری فضا نیاز دارد +به این صورت است</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">variable_name</span>: <span class="kt">i32</span> <span class="o">=</span><span class="w"> </span><span class="o">-</span><span class="mi">2147483648</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">variable_name</span>: <span class="kt">i32</span> <span class="o">=</span><span class="w"> </span><span class="mi">2147483647</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><p>به این باید دقت کنیم که هر متغییری مقداری فضا نیاز دارد برای مثال این نوع داده که داده اصلی است به پنج صورت پیاده سازی می‌شود i8, i16, i32, i64, i128 اعداد پس از کاراکتر i نشان دهنده تعداد بیت هایی است که این نوع متغییر می‌تواند -اشغال کند. مثلا i128 می‌تواند به اندازه 128 بیت فضا اشغال کند.</p> -<h4 id="نوع-داده-عدد-اعشاری">نوع داده عدد اعشاری</h4> -<p>این نوع داده هم مثل نوع عدد صحیح است اما با این تفاوت که اعداد اعشاری را درون خودش ذخیره می‌کند</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">variable_name</span>: <span class="kt">f32</span> <span class="o">=</span><span class="w"> </span><span class="mf">3.14</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">variable_name</span>: <span class="kt">f32</span> <span class="o">=</span><span class="w"> </span><span class="o">-</span><span class="mf">3.14</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="نوع-داده-کاراکتر">نوع داده کاراکتر</h4> -<p>کاراکتر نوع داده‌ای است که فقط یک مقدار از حروف الفبا یا عدد و یا سیمبول را می‌تواند درون +اشغال کند. مثلا i128 می‌تواند به اندازه 128 بیت فضا اشغال کند.</p> +<h4 id="نوع-داده-عدد-اعشاری">نوع داده عدد اعشاری +</h4><p>این نوع داده هم مثل نوع عدد صحیح است اما با این تفاوت که اعداد اعشاری را درون خودش ذخیره می‌کند</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">variable_name</span>: <span class="kt">f32</span> <span class="o">=</span><span class="w"> </span><span class="mf">3.14</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">variable_name</span>: <span class="kt">f32</span> <span class="o">=</span><span class="w"> </span><span class="o">-</span><span class="mf">3.14</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="نوع-داده-کاراکتر">نوع داده کاراکتر +</h4><p>کاراکتر نوع داده‌ای است که فقط یک مقدار از حروف الفبا یا عدد و یا سیمبول را می‌تواند درون خودش ذخیره کند. پس باید به اندازه 8 بیت فضا اشغال کند اما به دلیل اینکه کاراکتر های زبان های دیگر را هم بتواند ذخیره کند از انکدینگ(encoding) utf-16 -استفاده می‌کند که 16 بیت فضا اشغال می‌کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">a</span>: <span class="kt">char</span> <span class="o">=</span><span class="w"> </span><span class="sc">&#39;a&#39;</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="داده-stringرشتهای-از-کاراکتر-ها">داده string(رشته‌ای از کاراکتر ها)</h4> -<p>String +استفاده می‌کند که 16 بیت فضا اشغال می‌کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">a</span>: <span class="kt">char</span> <span class="o">=</span><span class="w"> </span><span class="sc">&#39;a&#39;</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="داده-stringرشتهای-از-کاراکتر-ها">داده string(رشته‌ای از کاراکتر ها) +</h4><p>String نوع داده‌ای است که درواقع رشته‌ای از کاراکتر ها را درون یک نوع vector -ذخیره می‌کند.</p> -<blockquote> -<p>این نکته را هم بگم که +ذخیره می‌کند.</p> +<blockquote> +<p>این نکته را هم بگم که encoding رشته UTF-8 -است. به این معنی که هر نوع کاراکتری را می‌تواند داخل خودش ذخیره کند حتی ایموجی.</p> -</blockquote> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">heart</span>: <span class="nb">String</span> <span class="o">=</span><span class="w"> </span><span class="nb">String</span>::<span class="n">from</span><span class="p">(</span><span class="s">&#34;♥&#34;</span><span class="p">);</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="نوع-داده-منطقی">نوع داده منطقی</h4> -<p>نوع داده منطقی به اسم +است. به این معنی که هر نوع کاراکتری را می‌تواند داخل خودش ذخیره کند حتی ایموجی.</p> +</blockquote> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">heart</span>: <span class="nb">String</span> <span class="o">=</span><span class="w"> </span><span class="nb">String</span>::<span class="n">from</span><span class="p">(</span><span class="s">&#34;♥&#34;</span><span class="p">);</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="نوع-داده-منطقی">نوع داده منطقی +</h4><p>نوع داده منطقی به اسم boolian است. این نوع مقدار هایt true و یا false -را ذخیره می‌کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">is_good</span>: <span class="kt">bool</span> <span class="o">=</span><span class="w"> </span><span class="kc">true</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="نوع-داده-ترکیبی">نوع داده ترکیبی</h4> -<p>این نوع داده ها را توی پست های مجزا توضیح می‌دم.</p> -<ul> -<li>tuple</li> -<li>array</li> -<li>list</li> -<li>vector</li> -</ul> - - - - متغیر در rust - https://bit-orbit.github.io/p/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-rust/ - Mon, 01 Jan 2024 01:39:05 +0330 - - https://bit-orbit.github.io/p/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-rust/ - <img src="https://bit-orbit.github.io/images/post/datatypes-rust.jpg" alt="Featured image of post متغیر در rust" /><h4 id="تعریف-متغیر">تعریف متغیر</h4> -<p>در هر زبانی تعریف متغیر سینتکس خودش را دارد. +را ذخیره می‌کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">is_good</span>: <span class="kt">bool</span> <span class="o">=</span><span class="w"> </span><span class="kc">true</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="نوع-داده-ترکیبی">نوع داده ترکیبی +</h4><p>این نوع داده ها را توی پست های مجزا توضیح می‌دم.</p> +<ul> +<li>tuple</li> +<li>array</li> +<li>list</li> +<li>vector</li> +</ul>متغیر در rusthttps://bit-orbit.github.io/p/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-rust/Mon, 01 Jan 2024 01:39:05 +0330https://bit-orbit.github.io/p/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-rust/<img src="https://bit-orbit.github.io/images/post/datatypes-rust.jpg" alt="Featured image of post متغیر در rust" /><h4 id="تعریف-متغیر">تعریف متغیر +</h4><p>در هر زبانی تعریف متغیر سینتکس خودش را دارد. مثلا اگر زبان های خانواده c را کار کرده باشید (مثل c++, c#) متوجه می‌شوید که نوع داده‌ای متغیر، قبل از اسم آن تعریف می‌شود. و یا مثلا توی زبان پایتون تعریف نوع داده‌ای -یک متغیر حتی اهمیتی هم ندارد!</p> -<blockquote> -<p>انواع نوع داده یا +یک متغیر حتی اهمیتی هم ندارد!</p> +<blockquote> +<p>انواع نوع داده یا date types -را توی پست بعدی می‌نویسم</p> -</blockquote> -<p>توی زبان +را توی پست بعدی می‌نویسم</p> +</blockquote> +<p>توی زبان rust بعد از اسم متغیر، نوع آن نوشته می‌شود. مثلا برای تعریف یک متغیر عددی به اندازه یک بایت از کلمه کلیدی -<code>i8</code> +<code>i8</code> بعد اسم استفاده می‌کنیم. البته قبل از اسم هر متغیر هم ما باید از کلمه کلیدی -<code>let</code> -استفاده کنیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="c1">//let name: type = value; -</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="kd">let</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="متغیر-های-تغییرپذیر">متغیر های تغییرپذیر</h4> -<p>توی زبان +<code>let</code> +استفاده کنیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="c1">//let name: type = value; +</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="kd">let</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="متغیر-های-تغییرپذیر">متغیر های تغییرپذیر +</h4><p>توی زبان rust هر متغیری که تعریف می‌کنیم غیر قابل تغیر است. توی مثال بالا من پیشفرض مقدار 22 را برای متغیر age قرار داده‌ام، حالا اگر بخواهم مقدار آن را -به 23 تغیر بدهم به ارور می‌خورم</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt">10 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">error</span><span class="p">[</span><span class="n">E0384</span><span class="p">]</span>: <span class="nc">cannot</span><span class="w"> </span><span class="n">assign</span><span class="w"> </span><span class="n">twice</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">immutable</span><span class="w"> </span><span class="n">variable</span><span class="w"> </span><span class="err">`</span><span class="n">age</span><span class="err">`</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">-</span>-&gt; <span class="nc">src</span><span class="o">/</span><span class="n">main</span><span class="p">.</span><span class="n">rs</span>:<span class="mi">3</span>:<span class="mi">5</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">---</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">first</span><span class="w"> </span><span class="n">assignment</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="err">`</span><span class="n">age</span><span class="err">`</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">help</span>: <span class="nc">consider</span><span class="w"> </span><span class="n">making</span><span class="w"> </span><span class="n">this</span><span class="w"> </span><span class="n">binding</span><span class="w"> </span><span class="n">mutable</span>: <span class="err">`</span><span class="k">mut</span><span class="w"> </span><span class="n">age</span><span class="err">`</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="mi">3</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">^^^^^^^^</span><span class="w"> </span><span class="n">cannot</span><span class="w"> </span><span class="n">assign</span><span class="w"> </span><span class="n">twice</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">immutable</span><span class="w"> </span><span class="n">variable</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><p>خب برای همین اگر می‌خواهیم مقدار متغیری را تغییر +به 23 تغیر بدهم به ارور می‌خورم</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">error</span><span class="p">[</span><span class="n">E0384</span><span class="p">]</span>: <span class="nc">cannot</span><span class="w"> </span><span class="n">assign</span><span class="w"> </span><span class="n">twice</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">immutable</span><span class="w"> </span><span class="n">variable</span><span class="w"> </span><span class="err">`</span><span class="n">age</span><span class="err">`</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">-</span>-&gt; <span class="nc">src</span><span class="o">/</span><span class="n">main</span><span class="p">.</span><span class="n">rs</span>:<span class="mi">3</span>:<span class="mi">5</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">---</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">first</span><span class="w"> </span><span class="n">assignment</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="err">`</span><span class="n">age</span><span class="err">`</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">help</span>: <span class="nc">consider</span><span class="w"> </span><span class="n">making</span><span class="w"> </span><span class="n">this</span><span class="w"> </span><span class="n">binding</span><span class="w"> </span><span class="n">mutable</span>: <span class="err">`</span><span class="k">mut</span><span class="w"> </span><span class="n">age</span><span class="err">`</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="mi">3</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">^^^^^^^^</span><span class="w"> </span><span class="n">cannot</span><span class="w"> </span><span class="n">assign</span><span class="w"> </span><span class="n">twice</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">immutable</span><span class="w"> </span><span class="n">variable</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><p>خب برای همین اگر می‌خواهیم مقدار متغیری را تغییر بدهیم آن را باید از اول مشخص کنیم. مشخص کردن آن با کلمه کلیدی -<code>mut</code> +<code>mut</code> بعد از کلمه -<code>let</code> +<code>let</code> است. کلمه mut مخفف -<strong>mutable</strong> +<strong>mutable</strong> به معنی -<strong>قابل تغییر</strong> -است. خب بیایید اینکار را برای مثال اولیه انجام بدهیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div> - - - - +<strong>قابل تغییر</strong> +است. خب بیایید اینکار را برای مثال اولیه انجام بدهیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div> \ No newline at end of file diff --git a/docs/tags/rust/page/1/index.html b/docs/tags/rust/page/1/index.html index dc0b1a1..9e1b380 100644 --- a/docs/tags/rust/page/1/index.html +++ b/docs/tags/rust/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/rust/ - - - - - - +https://bit-orbit.github.io/tags/rust/ + \ No newline at end of file diff --git a/docs/tags/static-linking-vs-dynamic-linking/index.html b/docs/tags/static-linking-vs-dynamic-linking/index.html index d9fa278..b595417 100644 --- a/docs/tags/static-linking-vs-dynamic-linking/index.html +++ b/docs/tags/static-linking-vs-dynamic-linking/index.html @@ -1,559 +1,37 @@ - - - - -Tag: Static Linking vs Dynamic Linking - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

Static Linking vs Dynamic Linking

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: Static Linking vs Dynamic Linking - bit-orbit + \ No newline at end of file diff --git a/docs/tags/static-linking-vs-dynamic-linking/index.xml b/docs/tags/static-linking-vs-dynamic-linking/index.xml index 275f0d5..aab1717 100644 --- a/docs/tags/static-linking-vs-dynamic-linking/index.xml +++ b/docs/tags/static-linking-vs-dynamic-linking/index.xml @@ -1,92 +1,73 @@ - - - - Static Linking vs Dynamic Linking on bit-orbit - https://bit-orbit.github.io/tags/static-linking-vs-dynamic-linking/ - Recent content in Static Linking vs Dynamic Linking on bit-orbit - Hugo -- gohugo.io - fa - Fri, 03 Nov 2023 00:21:46 +0330 - تفاوت Staticlink و Dynamiclink در زبان های برنامه نویسی - https://bit-orbit.github.io/p/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-staticlink-%D9%88-dynamiclink-%D8%AF%D8%B1-%D8%B2%D8%A8%D8%A7%D9%86-%D9%87%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C/ - Fri, 03 Nov 2023 00:21:46 +0330 - - https://bit-orbit.github.io/p/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-staticlink-%D9%88-dynamiclink-%D8%AF%D8%B1-%D8%B2%D8%A8%D8%A7%D9%86-%D9%87%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C/ - <img src="https://bit-orbit.github.io/images/post/staticvsdynamic.jpg" alt="Featured image of post تفاوت Staticlink و Dynamiclink در زبان های برنامه نویسی" /><p>یکسری مفاهیمی در برنامه نویسی داریم که من تصمیم داریم درباره آنها توی چند پست توضیح بدم، اولین مورد +Static Linking vs Dynamic Linking on bit-orbithttps://bit-orbit.github.io/tags/static-linking-vs-dynamic-linking/Recent content in Static Linking vs Dynamic Linking on bit-orbitHugo -- gohugo.iofaFri, 03 Nov 2023 00:21:46 +0330تفاوت Staticlink و Dynamiclink در زبان های برنامه نویسیhttps://bit-orbit.github.io/p/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-staticlink-%D9%88-dynamiclink-%D8%AF%D8%B1-%D8%B2%D8%A8%D8%A7%D9%86-%D9%87%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C/Fri, 03 Nov 2023 00:21:46 +0330https://bit-orbit.github.io/p/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-staticlink-%D9%88-dynamiclink-%D8%AF%D8%B1-%D8%B2%D8%A8%D8%A7%D9%86-%D9%87%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C/<img src="https://bit-orbit.github.io/images/post/staticvsdynamic.jpg" alt="Featured image of post تفاوت Staticlink و Dynamiclink در زبان های برنامه نویسی" /><p>یکسری مفاهیمی در برنامه نویسی داریم که من تصمیم داریم درباره آنها توی چند پست توضیح بدم، اولین مورد که شامل این پست می‌شه تفاوت static linking و dynamic linking در زبان های برامه نویسی هست‌ش. مفاهیم دیگه‌ای که داخل پست های بعدی می‌نویسم چیز هایی مثل -<strong>static type, dynamic type, compiler language, interpreter language</strong> و &hellip; -خواهد بود.</p> -<hr> -<ul> -<li> -<p>دو مفهموم +<strong>static type, dynamic type, compiler language, interpreter language</strong> و &hellip; +خواهد بود.</p> +<hr> +<ul> +<li> +<p>دو مفهموم static linking و dynamic linking -چه هستند؟</p> -</li> -<li> -<p>هر کدام چه مشکلات و فوایدی دارند؟</p> -</li> -</ul> -<hr> -<p>ما در نوشتن برنامه ها معمولا از لایبراری های زیادی استفاده می‌کنیم، حتی یک برانامه ساده. +چه هستند؟</p> +</li> +<li> +<p>هر کدام چه مشکلات و فوایدی دارند؟</p> +</li> +</ul> +<hr> +<p>ما در نوشتن برنامه ها معمولا از لایبراری های زیادی استفاده می‌کنیم، حتی یک برانامه ساده. سیستم ما برای اجرای یک برنامه، کد برنامه رو به ماشین-کد تبدیل می‌کنه و بعد خط به خط -اون ها رو اجرا می‌کنه.</p> -<p>اصطلاح +اون ها رو اجرا می‌کنه.</p> +<p>اصطلاح linking به روندی گفته می‌شود که کد شما به اشیاء(کد و داده) های خارجی برای استفاده از انها اشاره کند. معمولا دو روش برای اینکار وجود دارد، static linking(لینک کردن ایستا), -dynamic linking(لینک کردن پویا).</p> -<blockquote> -<p>static linking -زمانی اتفاق می‌افتد که کامپایلر منابع خارجی(لایبراری) ها را داخل فایل اجرایی برنامه کپی کند</p> -</blockquote> -<p>در واقع در این روش برنامه شما تمامی لایبراری هایی که شما در کد استفاده کردین رو +dynamic linking(لینک کردن پویا).</p> +<blockquote> +<p>static linking +زمانی اتفاق می‌افتد که کامپایلر منابع خارجی(لایبراری) ها را داخل فایل اجرایی برنامه کپی کند</p> +</blockquote> +<p>در واقع در این روش برنامه شما تمامی لایبراری هایی که شما در کد استفاده کردین رو با کد شما درون یک فایل اجرایی کامپایل می‌کند، زمانی که برنامه اجرا شود، تمامی لایبراری های -مورد نیازش وارد مموری کامپیوتر می‌شود.</p> -<p>فایده هایی که می‌تونم بهش اشاره کنم</p> -<ul> -<li>توی منتشر کردن برنامه به دیگران، مشکل نصب کامپوننت ها رو دیگه ندارن، و به راحتی اجرا می‌کنند.</li> -<li>ممکنه برنامه اندکی سریع تر اجرا بشه</li> -</ul> -<p>این روش واقعا خوبیه ولی خب معایب خودش رو هم داره</p> -<ul> -<li>فایل اجرایی حجم زیادی‌تری نسب‌ت به لینک کردن پویا داره</li> -<li>وقتی برنامه اجرا بشه، بخاطر اینکه همه لایبراری و داده های مورد نیاز داخل همان فایل اجرایی بود، برنامه رم زیادی استفاده می‌کنه.</li> -<li>اگر لایبراری های مورد استفاده تغییر کنند، برنامه نویس باید مجدد برنامه رو کامپایل و منتشر کنه</li> -</ul> -<blockquote> -<p>dynamic linking +مورد نیازش وارد مموری کامپیوتر می‌شود.</p> +<p>فایده هایی که می‌تونم بهش اشاره کنم</p> +<ul> +<li>توی منتشر کردن برنامه به دیگران، مشکل نصب کامپوننت ها رو دیگه ندارن، و به راحتی اجرا می‌کنند.</li> +<li>ممکنه برنامه اندکی سریع تر اجرا بشه</li> +</ul> +<p>این روش واقعا خوبیه ولی خب معایب خودش رو هم داره</p> +<ul> +<li>فایل اجرایی حجم زیادی‌تری نسب‌ت به لینک کردن پویا داره</li> +<li>وقتی برنامه اجرا بشه، بخاطر اینکه همه لایبراری و داده های مورد نیاز داخل همان فایل اجرایی بود، برنامه رم زیادی استفاده می‌کنه.</li> +<li>اگر لایبراری های مورد استفاده تغییر کنند، برنامه نویس باید مجدد برنامه رو کامپایل و منتشر کنه</li> +</ul> +<blockquote> +<p>dynamic linking لینک کردن پویا زمانی است که نام لایبراری خارجی در زمان اجرا وارد فایل اجرایی می‌شود. -و اینکه فقط در این زمان است که لایبراری مورد نیاز وارد مموری می‌شود.</p> -</blockquote> -<p>در این مواقع لایبراری ها باید در سیستم عامل از قبل نصب شده باشند، و یا در موقغ نصب برنامه جدید +و اینکه فقط در این زمان است که لایبراری مورد نیاز وارد مموری می‌شود.</p> +</blockquote> +<p>در این مواقع لایبراری ها باید در سیستم عامل از قبل نصب شده باشند، و یا در موقغ نصب برنامه جدید اون لایبراری ها نصب شوند. و اگر هر تغییری در لایبرار رخ بده، برنامه نویس نیاز نیست دوباره برنامه رو -کامپایل و منتشر کند، فقط لایبراری مورد نیاز اپدیت می‌شود.</p> -<p>این روش هم مزیت های خودش رو داره، مثلا:</p> -<ul> -<li>حجم فایل های اجرایی خیلی کمتری داره</li> -<li>تا زمانی که نیاز به لایبراری نشده باشد(اگر در کد نویسی رعایت شده باشه) لایبراری ها رم اشغال نمی‌کنند.</li> -</ul> -<p>مهمترین عیبی که می‌تونه این روش داشته باشه اینه که -حذف شدن و یا خراب شدن لایبراری باعث می‌شه برنامه دیگه اجرا نشه.</p> -<hr> -<blockquote> -<p>این مطلب خلاصه‌ای کلی بود برای آشنایی با این دو مفهموم +کامپایل و منتشر کند، فقط لایبراری مورد نیاز اپدیت می‌شود.</p> +<p>این روش هم مزیت های خودش رو داره، مثلا:</p> +<ul> +<li>حجم فایل های اجرایی خیلی کمتری داره</li> +<li>تا زمانی که نیاز به لایبراری نشده باشد(اگر در کد نویسی رعایت شده باشه) لایبراری ها رم اشغال نمی‌کنند.</li> +</ul> +<p>مهمترین عیبی که می‌تونه این روش داشته باشه اینه که +حذف شدن و یا خراب شدن لایبراری باعث می‌شه برنامه دیگه اجرا نشه.</p> +<hr> +<blockquote> +<p>این مطلب خلاصه‌ای کلی بود برای آشنایی با این دو مفهموم برای مطالعه بیشتر این -<a class="link" href="https://blog.hubspot.com/website/static-vs-dynamic-linking#static-linking" target="_blank" rel="noopener" - >لینک</a> -می‌تونه مفید باشه.</p> -</blockquote> -<hr> - - - - - +<a class="link" href="https://blog.hubspot.com/website/static-vs-dynamic-linking#static-linking" target="_blank" rel="noopener" +>لینک</a> +می‌تونه مفید باشه.</p> +</blockquote> +<hr> \ No newline at end of file diff --git a/docs/tags/static-linking-vs-dynamic-linking/page/1/index.html b/docs/tags/static-linking-vs-dynamic-linking/page/1/index.html index f42f83f..d4b0e6b 100644 --- a/docs/tags/static-linking-vs-dynamic-linking/page/1/index.html +++ b/docs/tags/static-linking-vs-dynamic-linking/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/static-linking-vs-dynamic-linking/ - - - - - - +https://bit-orbit.github.io/tags/static-linking-vs-dynamic-linking/ + \ No newline at end of file diff --git a/docs/tags/tech/index.html b/docs/tags/tech/index.html index 8fe82d9..041c38c 100644 --- a/docs/tags/tech/index.html +++ b/docs/tags/tech/index.html @@ -1,576 +1,37 @@ - - - - -Tag: Tech - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

2 صفحه

-

Tech

- -
-
-
- -
- - - - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: Tech - bit-orbit + \ No newline at end of file diff --git a/docs/tags/tech/index.xml b/docs/tags/tech/index.xml index ea61510..4019414 100644 --- a/docs/tags/tech/index.xml +++ b/docs/tags/tech/index.xml @@ -1,33 +1,19 @@ - - - - Tech on bit-orbit - https://bit-orbit.github.io/tags/tech/ - Recent content in Tech on bit-orbit - Hugo -- gohugo.io - fa - Mon, 17 Jan 2022 14:56:14 +0330 - اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش(عکس، استایل، جاوا اسکریپت) - https://bit-orbit.github.io/p/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4%D8%B9%DA%A9%D8%B3-%D8%A7%D8%B3%D8%AA%D8%A7%DB%8C%D9%84-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA/ - Mon, 17 Jan 2022 14:56:14 +0330 - - https://bit-orbit.github.io/p/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4%D8%B9%DA%A9%D8%B3-%D8%A7%D8%B3%D8%AA%D8%A7%DB%8C%D9%84-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA/ - <img src="https://bit-orbit.github.io/images/post/snp.jpg" alt="Featured image of post اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش(عکس، استایل، جاوا اسکریپت)" /><div dir='rtl' style='font-size:23px'> -<p>زمانی که مقاله یا پستی را می‌خوانم، گاهی احساس می‌کنم ممکنه یک مطلب را فراموش کنم. +Tech on bit-orbithttps://bit-orbit.github.io/tags/tech/Recent content in Tech on bit-orbitHugo -- gohugo.iofaMon, 17 Jan 2022 14:56:14 +0330اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش(عکس، استایل، جاوا اسکریپت)https://bit-orbit.github.io/p/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4%D8%B9%DA%A9%D8%B3-%D8%A7%D8%B3%D8%AA%D8%A7%DB%8C%D9%84-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA/Mon, 17 Jan 2022 14:56:14 +0330https://bit-orbit.github.io/p/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4%D8%B9%DA%A9%D8%B3-%D8%A7%D8%B3%D8%AA%D8%A7%DB%8C%D9%84-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA/<img src="https://bit-orbit.github.io/images/post/snp.jpg" alt="Featured image of post اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش(عکس، استایل، جاوا اسکریپت)" /><div dir='rtl' style='font-size:23px'> +<p>زمانی که مقاله یا پستی را می‌خوانم، گاهی احساس می‌کنم ممکنه یک مطلب را فراموش کنم. مثلا اگه مقاله‌ای از ویرگول درباره یک دستور لینوکس بخوانم، برای اینکه مطلبش را فراموش نکنم باید هرزگاهی به پست سر بزنم و مطالب را مرور کنم. اما فکر کنید مطلب درباره برنامه‌ای باشد که می‌توان با استفاده از آن سانسور را دور زد، -ویرگول احتمالا آن مطلب را حذف می‌کند.</p> -<ul> -<li> -<p>چه راهی برای ذخیره پست پشنهاد می‌کنید که بعدا بتوان آن را بارها مرور کرد؟</p> -</li> -<li> -<p>اگر پست از سایت منبع حذف شود، و یا حتی خود سایت دیگر در دسترس نباشد، -باز هم پستی که ذخیره کرده‌اید در دسترس است؟</p> -</li> -</ul> -<p>در این پست با استفاده از ابزار +ویرگول احتمالا آن مطلب را حذف می‌کند.</p> +<ul> +<li> +<p>چه راهی برای ذخیره پست پشنهاد می‌کنید که بعدا بتوان آن را بارها مرور کرد؟</p> +</li> +<li> +<p>اگر پست از سایت منبع حذف شود، و یا حتی خود سایت دیگر در دسترس نباشد، +باز هم پستی که ذخیره کرده‌اید در دسترس است؟</p> +</li> +</ul> +<p>در این پست با استفاده از ابزار wget یک پست را با تمامی وابستگی هایش مانند عکس ها، فایل های js، @@ -36,62 +22,62 @@ css دانلود می‌کنیم و روی سیستم خودمان ذخیره می‌کنیم تا حتی اگر سایت در دسترس نباشد و یا پست -از منبع حذف شد، پست به صورت افلاین در دسترس بماند.</p> -<hr> -<h3 id="wget">wget</h3> -<p>می‌دونید که +از منبع حذف شد، پست به صورت افلاین در دسترس بماند.</p> +<hr> +<h3 id="wget">wget +</h3><p>می‌دونید که wget یک ابزار پیشرفته برای دانلود فایله، قابلیت های زیادی که داره باعث شده بعد از سالها که ابزار های پیشرفته دانلود هم نوشته شدن، همچنان wget استفاده بشه. این برنامه روی اکثر توزیع های لینوکس به صورت دیفالت نصبه پس بیایید بدون تلف کردن وقت -سوییچ های مهم برای میرور کردن یک صفحه سایت رو برسی کنیم.</p> -<p></br></br></p> -<p><strong>Ⅰ.</strong> <code>--adjust-extension</code>, <code>-E</code></p> -<p>شاید شما هم سایتی هایی را دیده باشید که -<em>url</em> +سوییچ های مهم برای میرور کردن یک صفحه سایت رو برسی کنیم.</p> +<p></br></br></p> +<p><strong>Ⅰ.</strong> <code>--adjust-extension</code>, <code>-E</code></p> +<p>شاید شما هم سایتی هایی را دیده باشید که +<em>url</em> صفحه هایشان با پسوند -<code>.asp</code> +<code>.asp</code> به پایان می‌رسند. برای مثال نگاهی به -<a class="link" href="https://www.w3schools.com/python/default.asp" target="_blank" rel="noopener" - >این آدرس</a> +<a class="link" href="https://www.w3schools.com/python/default.asp" target="_blank" rel="noopener" +>این آدرس</a> بیاندازید -<em><a class="link" href="https://www.w3schools.com/python/default.asp" target="_blank" rel="noopener" - >https://www.w3schools.com/python/default.asp</a></em> +<em><a class="link" href="https://www.w3schools.com/python/default.asp" target="_blank" rel="noopener" +>https://www.w3schools.com/python/default.asp</a></em> همانطور که می‌بینید با -<em>asp</em> +<em>asp</em> به پایان می‌رسد. زمانی که شما این صفحه را دانلود کنید، این صفحه بجای پسوند -<em>html.</em> +<em>html.</em> با پسوند -<em>asp.</em> -ذخیره خواهد شد.</p> -<blockquote> -<p>به همین دلیل ما از این سوییچ استفاده می‌کنیم تا صفحه ها را +<em>asp.</em> +ذخیره خواهد شد.</p> +<blockquote> +<p>به همین دلیل ما از این سوییچ استفاده می‌کنیم تا صفحه ها را با پسوند -<em>html.</em> -ذخیره کنیم.</p> -</blockquote> -<div dir='ltr'> -</br> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span><span class="lnt">3 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ https://example.com/some/where -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl"><span class="c1"># where.html</span> -</span></span></code></pre></td></tr></table> -</div> -</div></div> -<p></br></br></p> -<p><strong>Ⅱ.</strong> <code>--span-hosts</code>, <code>-H</code></p> -<p>اگر حتی فقط یک صفحه را میرور می‌کنیم، آن صفحه ممکن است به فایل های خارج از سایت +<em>html.</em> +ذخیره کنیم.</p> +</blockquote> +<div dir='ltr'> +</br> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ https://example.com/some/where +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="c1"># where.html</span> +</span></span></code></pre></td></tr></table> +</div> +</div></div> +<p></br></br></p> +<p><strong>Ⅱ.</strong> <code>--span-hosts</code>, <code>-H</code></p> +<p>اگر حتی فقط یک صفحه را میرور می‌کنیم، آن صفحه ممکن است به فایل های خارج از سایت که به روی یک CDN قرار گرفته اند @@ -99,1360 +85,1334 @@ CDN style sheet ها. از اینرو وقتی شما یک صفحه را میرور می‌کنید wget -فایل های خارج از سایت را دانلود نخواهد کرد.</p> -<blockquote> -<p>پوشش دادن فایل های خارج از سایت با استفاده از این سوییچ انجام داده می‌شود. +فایل های خارج از سایت را دانلود نخواهد کرد.</p> +<blockquote> +<p>پوشش دادن فایل های خارج از سایت با استفاده از این سوییچ انجام داده می‌شود. وقتی این سوییچ را روشن کنید wget همه لینک ها از جمله لینک هایی زیر دامنه را هم دانلود خواهد کرد، مگر اینکه عمق -پوشش دادن را محدود کنید.</p> -</blockquote> -<p></br></br></p> -<p><strong>Ⅲ.</strong> <code>--convert-links</code>, <code>-k</code></p> -<p>یک صفحه را که میرور کردیم با توجه به اینکه فایل های پیشیاز مثل عکس و استایل ها را +پوشش دادن را محدود کنید.</p> +</blockquote> +<p></br></br></p> +<p><strong>Ⅲ.</strong> <code>--convert-links</code>, <code>-k</code></p> +<p>یک صفحه را که میرور کردیم با توجه به اینکه فایل های پیشیاز مثل عکس و استایل ها را هم دانلود کردیم، وقتی فایل را با مرورگر باز کنیم همچنان صفحه html ما به فایل های داخل سایت منبع لینک شده است و فایل های پیشنازش را حتی با اینکه -روی سیستم داریم، باز هم از آدرس خارجی دریافت می‌کند و نمایش می‌دهد.</p> -<blockquote> -<p>برای اینکه یک صفحه فایل های پیشنیازش را از فایل هایی که در کنار صفحه اصلی دانلود +روی سیستم داریم، باز هم از آدرس خارجی دریافت می‌کند و نمایش می‌دهد.</p> +<blockquote> +<p>برای اینکه یک صفحه فایل های پیشنیازش را از فایل هایی که در کنار صفحه اصلی دانلود کرده است بگیرد، از این سوییچ استفاده می‌کنیم. این سوییچ تمامی لینک ها را به -لینک های داخلی تبدیل می‌کند و صفحه موقع لود شدن از فایل های داخلی استفاده می‌کند.</p> -</blockquote> -<p></br></br></p> -<p><strong>Ⅳ.</strong> <code>--page-requisites</code>, <code>-p</code></p> -<blockquote> -<p>این سوییچ باعث می‌شود که +لینک های داخلی تبدیل می‌کند و صفحه موقع لود شدن از فایل های داخلی استفاده می‌کند.</p> +</blockquote> +<p></br></br></p> +<p><strong>Ⅳ.</strong> <code>--page-requisites</code>, <code>-p</code></p> +<blockquote> +<p>این سوییچ باعث می‌شود که wget تمامی فایل های ضروری برای درست نمایش داده شدن html -را دانلود کند. این فایل ها شامل عکس ها، استایل ها و یا صدا ها می‌شود.</p> -</blockquote> -<p></br></br></p> -<p><strong>Ⅴ.</strong> <code>--no-directories</code>, <code>-nd</code></p> -<p>به صورت پیشفرض زمانی که صفحه‌ای با این ادرس را دانلود کنیم</p> -<p><code>https://example.com/some/where/page.html</code></p> -<p>برنامه +را دانلود کند. این فایل ها شامل عکس ها، استایل ها و یا صدا ها می‌شود.</p> +</blockquote> +<p></br></br></p> +<p><strong>Ⅴ.</strong> <code>--no-directories</code>, <code>-nd</code></p> +<p>به صورت پیشفرض زمانی که صفحه‌ای با این ادرس را دانلود کنیم</p> +<p><code>https://example.com/some/where/page.html</code></p> +<p>برنامه wget -این صفحه و فایل های مورد نیازش را به این صورت ذخیره خواهد کرد</p> -<p><code>some/where/page.html/.</code></p> -<p>اما با استفاده از سوییچ -<code>nd-</code> -آن صفحه و فایل های مورد نیازش فقط داخل یک دایرکتوری ذخیره خواهد شد. به این صورت</p> -<p><code>page.html/.</code></p> -<blockquote> -<p>با فعال کردن این سوییچ +این صفحه و فایل های مورد نیازش را به این صورت ذخیره خواهد کرد</p> +<p><code>some/where/page.html/.</code></p> +<p>اما با استفاده از سوییچ +<code>nd-</code> +آن صفحه و فایل های مورد نیازش فقط داخل یک دایرکتوری ذخیره خواهد شد. به این صورت</p> +<p><code>page.html/.</code></p> +<blockquote> +<p>با فعال کردن این سوییچ wget صفحه و فایل های پیشنیاز را داخل دایرکتوری فعلی ذخیره خواهد کرد. و اگر -نام یک فایل بیش از یکبار تکرار شود، به نام فایل پسوند اضافه خواهد شد.</p> -</blockquote> -<p></br></br></p> -<h3 id="مثال-کاربردی-و-خروجی">مثال کاربردی و خروجی</h3> -<ul> -<li>برای مثال من یک -<a class="link" href="https://vrgl.ir/c3fVa" target="_blank" rel="noopener" - >پست توی ویرگول</a> +نام یک فایل بیش از یکبار تکرار شود، به نام فایل پسوند اضافه خواهد شد.</p> +</blockquote> +<p></br></br></p> +<h3 id="مثال-کاربردی-و-خروجی">مثال کاربردی و خروجی +</h3><ul> +<li>برای مثال من یک +<a class="link" href="https://vrgl.ir/c3fVa" target="_blank" rel="noopener" +>پست توی ویرگول</a> که آموزش الگوریتم RSA -هست رو دانلود می‌کنم.</li> -</ul> -</br> -</div> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt"> 10 -</span><span class="lnt"> 11 -</span><span class="lnt"> 12 -</span><span class="lnt"> 13 -</span><span class="lnt"> 14 -</span><span class="lnt"> 15 -</span><span class="lnt"> 16 -</span><span class="lnt"> 17 -</span><span class="lnt"> 18 -</span><span class="lnt"> 19 -</span><span class="lnt"> 20 -</span><span class="lnt"> 21 -</span><span class="lnt"> 22 -</span><span class="lnt"> 23 -</span><span class="lnt"> 24 -</span><span class="lnt"> 25 -</span><span class="lnt"> 26 -</span><span class="lnt"> 27 -</span><span class="lnt"> 28 -</span><span class="lnt"> 29 -</span><span class="lnt"> 30 -</span><span class="lnt"> 31 -</span><span class="lnt"> 32 -</span><span class="lnt"> 33 -</span><span class="lnt"> 34 -</span><span class="lnt"> 35 -</span><span class="lnt"> 36 -</span><span class="lnt"> 37 -</span><span class="lnt"> 38 -</span><span class="lnt"> 39 -</span><span class="lnt"> 40 -</span><span class="lnt"> 41 -</span><span class="lnt"> 42 -</span><span class="lnt"> 43 -</span><span class="lnt"> 44 -</span><span class="lnt"> 45 -</span><span class="lnt"> 46 -</span><span class="lnt"> 47 -</span><span class="lnt"> 48 -</span><span class="lnt"> 49 -</span><span class="lnt"> 50 -</span><span class="lnt"> 51 -</span><span class="lnt"> 52 -</span><span class="lnt"> 53 -</span><span class="lnt"> 54 -</span><span class="lnt"> 55 -</span><span class="lnt"> 56 -</span><span class="lnt"> 57 -</span><span class="lnt"> 58 -</span><span class="lnt"> 59 -</span><span class="lnt"> 60 -</span><span class="lnt"> 61 -</span><span class="lnt"> 62 -</span><span class="lnt"> 63 -</span><span class="lnt"> 64 -</span><span class="lnt"> 65 -</span><span class="lnt"> 66 -</span><span class="lnt"> 67 -</span><span class="lnt"> 68 -</span><span class="lnt"> 69 -</span><span class="lnt"> 70 -</span><span class="lnt"> 71 -</span><span class="lnt"> 72 -</span><span class="lnt"> 73 -</span><span class="lnt"> 74 -</span><span class="lnt"> 75 -</span><span class="lnt"> 76 -</span><span class="lnt"> 77 -</span><span class="lnt"> 78 -</span><span class="lnt"> 79 -</span><span class="lnt"> 80 -</span><span class="lnt"> 81 -</span><span class="lnt"> 82 -</span><span class="lnt"> 83 -</span><span class="lnt"> 84 -</span><span class="lnt"> 85 -</span><span class="lnt"> 86 -</span><span class="lnt"> 87 -</span><span class="lnt"> 88 -</span><span class="lnt"> 89 -</span><span class="lnt"> 90 -</span><span class="lnt"> 91 -</span><span class="lnt"> 92 -</span><span class="lnt"> 93 -</span><span class="lnt"> 94 -</span><span class="lnt"> 95 -</span><span class="lnt"> 96 -</span><span class="lnt"> 97 -</span><span class="lnt"> 98 -</span><span class="lnt"> 99 -</span><span class="lnt">100 -</span><span class="lnt">101 -</span><span class="lnt">102 -</span><span class="lnt">103 -</span><span class="lnt">104 -</span><span class="lnt">105 -</span><span class="lnt">106 -</span><span class="lnt">107 -</span><span class="lnt">108 -</span><span class="lnt">109 -</span><span class="lnt">110 -</span><span class="lnt">111 -</span><span class="lnt">112 -</span><span class="lnt">113 -</span><span class="lnt">114 -</span><span class="lnt">115 -</span><span class="lnt">116 -</span><span class="lnt">117 -</span><span class="lnt">118 -</span><span class="lnt">119 -</span><span class="lnt">120 -</span><span class="lnt">121 -</span><span class="lnt">122 -</span><span class="lnt">123 -</span><span class="lnt">124 -</span><span class="lnt">125 -</span><span class="lnt">126 -</span><span class="lnt">127 -</span><span class="lnt">128 -</span><span class="lnt">129 -</span><span class="lnt">130 -</span><span class="lnt">131 -</span><span class="lnt">132 -</span><span class="lnt">133 -</span><span class="lnt">134 -</span><span class="lnt">135 -</span><span class="lnt">136 -</span><span class="lnt">137 -</span><span class="lnt">138 -</span><span class="lnt">139 -</span><span class="lnt">140 -</span><span class="lnt">141 -</span><span class="lnt">142 -</span><span class="lnt">143 -</span><span class="lnt">144 -</span><span class="lnt">145 -</span><span class="lnt">146 -</span><span class="lnt">147 -</span><span class="lnt">148 -</span><span class="lnt">149 -</span><span class="lnt">150 -</span><span class="lnt">151 -</span><span class="lnt">152 -</span><span class="lnt">153 -</span><span class="lnt">154 -</span><span class="lnt">155 -</span><span class="lnt">156 -</span><span class="lnt">157 -</span><span class="lnt">158 -</span><span class="lnt">159 -</span><span class="lnt">160 -</span><span class="lnt">161 -</span><span class="lnt">162 -</span><span class="lnt">163 -</span><span class="lnt">164 -</span><span class="lnt">165 -</span><span class="lnt">166 -</span><span class="lnt">167 -</span><span class="lnt">168 -</span><span class="lnt">169 -</span><span class="lnt">170 -</span><span class="lnt">171 -</span><span class="lnt">172 -</span><span class="lnt">173 -</span><span class="lnt">174 -</span><span class="lnt">175 -</span><span class="lnt">176 -</span><span class="lnt">177 -</span><span class="lnt">178 -</span><span class="lnt">179 -</span><span class="lnt">180 -</span><span class="lnt">181 -</span><span class="lnt">182 -</span><span class="lnt">183 -</span><span class="lnt">184 -</span><span class="lnt">185 -</span><span class="lnt">186 -</span><span class="lnt">187 -</span><span class="lnt">188 -</span><span class="lnt">189 -</span><span class="lnt">190 -</span><span class="lnt">191 -</span><span class="lnt">192 -</span><span class="lnt">193 -</span><span class="lnt">194 -</span><span class="lnt">195 -</span><span class="lnt">196 -</span><span class="lnt">197 -</span><span class="lnt">198 -</span><span class="lnt">199 -</span><span class="lnt">200 -</span><span class="lnt">201 -</span><span class="lnt">202 -</span><span class="lnt">203 -</span><span class="lnt">204 -</span><span class="lnt">205 -</span><span class="lnt">206 -</span><span class="lnt">207 -</span><span class="lnt">208 -</span><span class="lnt">209 -</span><span class="lnt">210 -</span><span class="lnt">211 -</span><span class="lnt">212 -</span><span class="lnt">213 -</span><span class="lnt">214 -</span><span class="lnt">215 -</span><span class="lnt">216 -</span><span class="lnt">217 -</span><span class="lnt">218 -</span><span class="lnt">219 -</span><span class="lnt">220 -</span><span class="lnt">221 -</span><span class="lnt">222 -</span><span class="lnt">223 -</span><span class="lnt">224 -</span><span class="lnt">225 -</span><span class="lnt">226 -</span><span class="lnt">227 -</span><span class="lnt">228 -</span><span class="lnt">229 -</span><span class="lnt">230 -</span><span class="lnt">231 -</span><span class="lnt">232 -</span><span class="lnt">233 -</span><span class="lnt">234 -</span><span class="lnt">235 -</span><span class="lnt">236 -</span><span class="lnt">237 -</span><span class="lnt">238 -</span><span class="lnt">239 -</span><span class="lnt">240 -</span><span class="lnt">241 -</span><span class="lnt">242 -</span><span class="lnt">243 -</span><span class="lnt">244 -</span><span class="lnt">245 -</span><span class="lnt">246 -</span><span class="lnt">247 -</span><span class="lnt">248 -</span><span class="lnt">249 -</span><span class="lnt">250 -</span><span class="lnt">251 -</span><span class="lnt">252 -</span><span class="lnt">253 -</span><span class="lnt">254 -</span><span class="lnt">255 -</span><span class="lnt">256 -</span><span class="lnt">257 -</span><span class="lnt">258 -</span><span class="lnt">259 -</span><span class="lnt">260 -</span><span class="lnt">261 -</span><span class="lnt">262 -</span><span class="lnt">263 -</span><span class="lnt">264 -</span><span class="lnt">265 -</span><span class="lnt">266 -</span><span class="lnt">267 -</span><span class="lnt">268 -</span><span class="lnt">269 -</span><span class="lnt">270 -</span><span class="lnt">271 -</span><span class="lnt">272 -</span><span class="lnt">273 -</span><span class="lnt">274 -</span><span class="lnt">275 -</span><span class="lnt">276 -</span><span class="lnt">277 -</span><span class="lnt">278 -</span><span class="lnt">279 -</span><span class="lnt">280 -</span><span class="lnt">281 -</span><span class="lnt">282 -</span><span class="lnt">283 -</span><span class="lnt">284 -</span><span class="lnt">285 -</span><span class="lnt">286 -</span><span class="lnt">287 -</span><span class="lnt">288 -</span><span class="lnt">289 -</span><span class="lnt">290 -</span><span class="lnt">291 -</span><span class="lnt">292 -</span><span class="lnt">293 -</span><span class="lnt">294 -</span><span class="lnt">295 -</span><span class="lnt">296 -</span><span class="lnt">297 -</span><span class="lnt">298 -</span><span class="lnt">299 -</span><span class="lnt">300 -</span><span class="lnt">301 -</span><span class="lnt">302 -</span><span class="lnt">303 -</span><span class="lnt">304 -</span><span class="lnt">305 -</span><span class="lnt">306 -</span><span class="lnt">307 -</span><span class="lnt">308 -</span><span class="lnt">309 -</span><span class="lnt">310 -</span><span class="lnt">311 -</span><span class="lnt">312 -</span><span class="lnt">313 -</span><span class="lnt">314 -</span><span class="lnt">315 -</span><span class="lnt">316 -</span><span class="lnt">317 -</span><span class="lnt">318 -</span><span class="lnt">319 -</span><span class="lnt">320 -</span><span class="lnt">321 -</span><span class="lnt">322 -</span><span class="lnt">323 -</span><span class="lnt">324 -</span><span class="lnt">325 -</span><span class="lnt">326 -</span><span class="lnt">327 -</span><span class="lnt">328 -</span><span class="lnt">329 -</span><span class="lnt">330 -</span><span class="lnt">331 -</span><span class="lnt">332 -</span><span class="lnt">333 -</span><span class="lnt">334 -</span><span class="lnt">335 -</span><span class="lnt">336 -</span><span class="lnt">337 -</span><span class="lnt">338 -</span><span class="lnt">339 -</span><span class="lnt">340 -</span><span class="lnt">341 -</span><span class="lnt">342 -</span><span class="lnt">343 -</span><span class="lnt">344 -</span><span class="lnt">345 -</span><span class="lnt">346 -</span><span class="lnt">347 -</span><span class="lnt">348 -</span><span class="lnt">349 -</span><span class="lnt">350 -</span><span class="lnt">351 -</span><span class="lnt">352 -</span><span class="lnt">353 -</span><span class="lnt">354 -</span><span class="lnt">355 -</span><span class="lnt">356 -</span><span class="lnt">357 -</span><span class="lnt">358 -</span><span class="lnt">359 -</span><span class="lnt">360 -</span><span class="lnt">361 -</span><span class="lnt">362 -</span><span class="lnt">363 -</span><span class="lnt">364 -</span><span class="lnt">365 -</span><span class="lnt">366 -</span><span class="lnt">367 -</span><span class="lnt">368 -</span><span class="lnt">369 -</span><span class="lnt">370 -</span><span class="lnt">371 -</span><span class="lnt">372 -</span><span class="lnt">373 -</span><span class="lnt">374 -</span><span class="lnt">375 -</span><span class="lnt">376 -</span><span class="lnt">377 -</span><span class="lnt">378 -</span><span class="lnt">379 -</span><span class="lnt">380 -</span><span class="lnt">381 -</span><span class="lnt">382 -</span><span class="lnt">383 -</span><span class="lnt">384 -</span><span class="lnt">385 -</span><span class="lnt">386 -</span><span class="lnt">387 -</span><span class="lnt">388 -</span><span class="lnt">389 -</span><span class="lnt">390 -</span><span class="lnt">391 -</span><span class="lnt">392 -</span><span class="lnt">393 -</span><span class="lnt">394 -</span><span class="lnt">395 -</span><span class="lnt">396 -</span><span class="lnt">397 -</span><span class="lnt">398 -</span><span class="lnt">399 -</span><span class="lnt">400 -</span><span class="lnt">401 -</span><span class="lnt">402 -</span><span class="lnt">403 -</span><span class="lnt">404 -</span><span class="lnt">405 -</span><span class="lnt">406 -</span><span class="lnt">407 -</span><span class="lnt">408 -</span><span class="lnt">409 -</span><span class="lnt">410 -</span><span class="lnt">411 -</span><span class="lnt">412 -</span><span class="lnt">413 -</span><span class="lnt">414 -</span><span class="lnt">415 -</span><span class="lnt">416 -</span><span class="lnt">417 -</span><span class="lnt">418 -</span><span class="lnt">419 -</span><span class="lnt">420 -</span><span class="lnt">421 -</span><span class="lnt">422 -</span><span class="lnt">423 -</span><span class="lnt">424 -</span><span class="lnt">425 -</span><span class="lnt">426 -</span><span class="lnt">427 -</span><span class="lnt">428 -</span><span class="lnt">429 -</span><span class="lnt">430 -</span><span class="lnt">431 -</span><span class="lnt">432 -</span><span class="lnt">433 -</span><span class="lnt">434 -</span><span class="lnt">435 -</span><span class="lnt">436 -</span><span class="lnt">437 -</span><span class="lnt">438 -</span><span class="lnt">439 -</span><span class="lnt">440 -</span><span class="lnt">441 -</span><span class="lnt">442 -</span><span class="lnt">443 -</span><span class="lnt">444 -</span><span class="lnt">445 -</span><span class="lnt">446 -</span><span class="lnt">447 -</span><span class="lnt">448 -</span><span class="lnt">449 -</span><span class="lnt">450 -</span><span class="lnt">451 -</span><span class="lnt">452 -</span><span class="lnt">453 -</span><span class="lnt">454 -</span><span class="lnt">455 -</span><span class="lnt">456 -</span><span class="lnt">457 -</span><span class="lnt">458 -</span><span class="lnt">459 -</span><span class="lnt">460 -</span><span class="lnt">461 -</span><span class="lnt">462 -</span><span class="lnt">463 -</span><span class="lnt">464 -</span><span class="lnt">465 -</span><span class="lnt">466 -</span><span class="lnt">467 -</span><span class="lnt">468 -</span><span class="lnt">469 -</span><span class="lnt">470 -</span><span class="lnt">471 -</span><span class="lnt">472 -</span><span class="lnt">473 -</span><span class="lnt">474 -</span><span class="lnt">475 -</span><span class="lnt">476 -</span><span class="lnt">477 -</span><span class="lnt">478 -</span><span class="lnt">479 -</span><span class="lnt">480 -</span><span class="lnt">481 -</span><span class="lnt">482 -</span><span class="lnt">483 -</span><span class="lnt">484 -</span><span class="lnt">485 -</span><span class="lnt">486 -</span><span class="lnt">487 -</span><span class="lnt">488 -</span><span class="lnt">489 -</span><span class="lnt">490 -</span><span class="lnt">491 -</span><span class="lnt">492 -</span><span class="lnt">493 -</span><span class="lnt">494 -</span><span class="lnt">495 -</span><span class="lnt">496 -</span><span class="lnt">497 -</span><span class="lnt">498 -</span><span class="lnt">499 -</span><span class="lnt">500 -</span><span class="lnt">501 -</span><span class="lnt">502 -</span><span class="lnt">503 -</span><span class="lnt">504 -</span><span class="lnt">505 -</span><span class="lnt">506 -</span><span class="lnt">507 -</span><span class="lnt">508 -</span><span class="lnt">509 -</span><span class="lnt">510 -</span><span class="lnt">511 -</span><span class="lnt">512 -</span><span class="lnt">513 -</span><span class="lnt">514 -</span><span class="lnt">515 -</span><span class="lnt">516 -</span><span class="lnt">517 -</span><span class="lnt">518 -</span><span class="lnt">519 -</span><span class="lnt">520 -</span><span class="lnt">521 -</span><span class="lnt">522 -</span><span class="lnt">523 -</span><span class="lnt">524 -</span><span class="lnt">525 -</span><span class="lnt">526 -</span><span class="lnt">527 -</span><span class="lnt">528 -</span><span class="lnt">529 -</span><span class="lnt">530 -</span><span class="lnt">531 -</span><span class="lnt">532 -</span><span class="lnt">533 -</span><span class="lnt">534 -</span><span class="lnt">535 -</span><span class="lnt">536 -</span><span class="lnt">537 -</span><span class="lnt">538 -</span><span class="lnt">539 -</span><span class="lnt">540 -</span><span class="lnt">541 -</span><span class="lnt">542 -</span><span class="lnt">543 -</span><span class="lnt">544 -</span><span class="lnt">545 -</span><span class="lnt">546 -</span><span class="lnt">547 -</span><span class="lnt">548 -</span><span class="lnt">549 -</span><span class="lnt">550 -</span><span class="lnt">551 -</span><span class="lnt">552 -</span><span class="lnt">553 -</span><span class="lnt">554 -</span><span class="lnt">555 -</span><span class="lnt">556 -</span><span class="lnt">557 -</span><span class="lnt">558 -</span><span class="lnt">559 -</span><span class="lnt">560 -</span><span class="lnt">561 -</span><span class="lnt">562 -</span><span class="lnt">563 -</span><span class="lnt">564 -</span><span class="lnt">565 -</span><span class="lnt">566 -</span><span class="lnt">567 -</span><span class="lnt">568 -</span><span class="lnt">569 -</span><span class="lnt">570 -</span><span class="lnt">571 -</span><span class="lnt">572 -</span><span class="lnt">573 -</span><span class="lnt">574 -</span><span class="lnt">575 -</span><span class="lnt">576 -</span><span class="lnt">577 -</span><span class="lnt">578 -</span><span class="lnt">579 -</span><span class="lnt">580 -</span><span class="lnt">581 -</span><span class="lnt">582 -</span><span class="lnt">583 -</span><span class="lnt">584 -</span><span class="lnt">585 -</span><span class="lnt">586 -</span><span class="lnt">587 -</span><span class="lnt">588 -</span><span class="lnt">589 -</span><span class="lnt">590 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">┌─<span class="o">[</span>loading<span class="o">]</span> <span class="o">[</span>/tmp/virgool<span class="o">]</span> <span class="o">[</span>0<span class="o">]</span> -</span></span><span class="line"><span class="cl">│ -</span></span><span class="line"><span class="cl">└──〉wget -nd -E -p -k -H https://vrgl.ir/c3fVa -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:03-- https://vrgl.ir/c3fVa -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">302</span> Found -</span></span><span class="line"><span class="cl">Location: https://virgool.io/@Novo/rsa-encryption-ao1poasym4cf <span class="o">[</span>following<span class="o">]</span> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:04-- https://virgool.io/@Novo/rsa-encryption-ao1poasym4cf -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/html<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘c3fVa.html’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">c3fVa.html <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 61.30K 200KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:06 <span class="o">(</span><span class="m">200</span> KB/s<span class="o">)</span> - ‘c3fVa.html’ saved <span class="o">[</span>62773<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:06-- https://virgool.io/robots.txt -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>document<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘robots.txt’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">robots.txt <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">484</span> --.-KB/s in 0s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:07 <span class="o">(</span>85.7 MB/s<span class="o">)</span> - ‘robots.txt’ saved <span class="o">[</span>484<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:07-- https://www.googletagmanager.com/robots.txt -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">404</span> Not Found -</span></span><span class="line"><span class="cl">2022-01-18 06:41:08 ERROR 404: Not Found. -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:08-- https://files.virgool.io/robots.txt -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">403</span> Forbidden -</span></span><span class="line"><span class="cl">2022-01-18 06:41:09 ERROR 403: Forbidden. -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:09-- https://static.cloudflareinsights.com/robots.txt -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">522</span> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:26 ERROR 522: <span class="o">(</span>no description<span class="o">)</span>. -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:26-- https://virgool.io/images/favicon.png?v<span class="o">=</span>v2.6.15 -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">9855</span> <span class="o">(</span>9.6K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘favicon.png?v<span class="o">=</span>v2.6.15’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">favicon.png?v<span class="o">=</span>v2.6.15 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 9.62K --.-KB/s in 0.07s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:27 <span class="o">(</span><span class="m">130</span> KB/s<span class="o">)</span> - ‘favicon.png?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>9855/9855<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:27-- https://virgool.io/css/styles.css?v<span class="o">=</span>v2.6.15 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/css<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘styles.css?v<span class="o">=</span>v2.6.15.css’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">styles.css?v<span class="o">=</span>v2.6.15.css <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 903.60K 592KB/s in 1.5s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:28 <span class="o">(</span><span class="m">592</span> KB/s<span class="o">)</span> - ‘styles.css?v<span class="o">=</span>v2.6.15.css’ saved <span class="o">[</span>925284<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:28-- https://virgool.test/robots.txt -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:28-- https://www.googletagmanager.com/ns.html?id<span class="o">=</span>GTM-5GS688K -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/html<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘ns.html?id<span class="o">=</span>GTM-5GS688K.html’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">ns.html?id<span class="o">=</span>GTM-5GS688K.html <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">266</span> --.-KB/s in 0s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:29 <span class="o">(</span>29.4 MB/s<span class="o">)</span> - ‘ns.html?id<span class="o">=</span>GTM-5GS688K.html’ saved <span class="o">[</span>266<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:29-- https://files.virgool.io/upload/users/31434/avatar/1C4LLE.png?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">39194</span> <span class="o">(</span>38K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_ 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 38.28K 173KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:30 <span class="o">(</span><span class="m">173</span> KB/s<span class="o">)</span> - ‘1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>39194/39194<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:30-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/qhokakomwyb5.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">179870</span> <span class="o">(</span>176K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘qhokakomwyb5.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">qhokakomwyb5.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 175.65K 567KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">567</span> KB/s<span class="o">)</span> - ‘qhokakomwyb5.png’ saved <span class="o">[</span>179870/179870<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/v1xnwpnewfys.webp -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">12770</span> <span class="o">(</span>12K<span class="o">)</span> <span class="o">[</span>image/webp<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘v1xnwpnewfys.webp’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">v1xnwpnewfys.webp 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 12.47K --.-KB/s in 0.07s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">180</span> KB/s<span class="o">)</span> - ‘v1xnwpnewfys.webp’ saved <span class="o">[</span>12770/12770<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/d28hpu2detkl.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">92847</span> <span class="o">(</span>91K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘d28hpu2detkl.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">d28hpu2detkl.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 90.67K --.-KB/s in 0.09s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">969</span> KB/s<span class="o">)</span> - ‘d28hpu2detkl.png’ saved <span class="o">[</span>92847/92847<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/rhyykrc8azq0.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">17539</span> <span class="o">(</span>17K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘rhyykrc8azq0.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">rhyykrc8azq0.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 17.13K --.-KB/s in 0.007s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>2.47 MB/s<span class="o">)</span> - ‘rhyykrc8azq0.png’ saved <span class="o">[</span>17539/17539<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/fjtc1ydzkuse.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">108524</span> <span class="o">(</span>106K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘fjtc1ydzkuse.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">fjtc1ydzkuse.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 105.98K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>1.06 MB/s<span class="o">)</span> - ‘fjtc1ydzkuse.png’ saved <span class="o">[</span>108524/108524<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/gfqhgyp18oic.jpeg -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">132085</span> <span class="o">(</span>129K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘gfqhgyp18oic.jpeg’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">gfqhgyp18oic.jpeg 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 128.99K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>1.28 MB/s<span class="o">)</span> - ‘gfqhgyp18oic.jpeg’ saved <span class="o">[</span>132085/132085<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/me0mpjtdmyom.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">113489</span> <span class="o">(</span>111K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘me0mpjtdmyom.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">me0mpjtdmyom.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 110.83K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span><span class="m">814</span> KB/s<span class="o">)</span> - ‘me0mpjtdmyom.png’ saved <span class="o">[</span>113489/113489<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/of7krju6oqzk.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">105746</span> <span class="o">(</span>103K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘of7krju6oqzk.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">of7krju6oqzk.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 103.27K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span>1.25 MB/s<span class="o">)</span> - ‘of7krju6oqzk.png’ saved <span class="o">[</span>105746/105746<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/oqwhflg4gbnq.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">120994</span> <span class="o">(</span>118K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘oqwhflg4gbnq.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">oqwhflg4gbnq.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 118.16K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span>1.14 MB/s<span class="o">)</span> - ‘oqwhflg4gbnq.png’ saved <span class="o">[</span>120994/120994<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/taqjnfnuzxcx.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">122678</span> <span class="o">(</span>120K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘taqjnfnuzxcx.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">taqjnfnuzxcx.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 119.80K --.-KB/s in 0.06s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span>2.00 MB/s<span class="o">)</span> - ‘taqjnfnuzxcx.png’ saved <span class="o">[</span>122678/122678<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/63/posts/qwqrubplfaau/g8vai2incgna.jpeg?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">88292</span> <span class="o">(</span>86K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fre 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 86.22K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span><span class="m">824</span> KB/s<span class="o">)</span> - ‘g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>88292/88292<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/63/avatar/o8jiNe.png?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">32037</span> <span class="o">(</span>31K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_ 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 31.29K --.-KB/s in 0.06s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span><span class="m">558</span> KB/s<span class="o">)</span> - ‘o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>32037/32037<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/31434/posts/e3oydlcfkr5e/figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">30356</span> <span class="o">(</span>30K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fre 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 29.64K --.-KB/s in 0.07s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span><span class="m">401</span> KB/s<span class="o">)</span> - ‘figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>30356/30356<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://files.virgool.io/upload/users/316150/posts/r8rhw88uh1xh/cs1ugyelv3zw.png?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">34459</span> <span class="o">(</span>34K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fres 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 33.65K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span><span class="m">399</span> KB/s<span class="o">)</span> - ‘cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>34459/34459<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://files.virgool.io/upload/users/316150/avatar/8sz7Rs.jpeg?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">14764</span> <span class="o">(</span>14K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 14.42K --.-KB/s in 0.007s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span>2.11 MB/s<span class="o">)</span> - ‘8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>14764/14764<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://virgool.io/js/commons.js?v<span class="o">=</span>v2.6.15 -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/javascript<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘commons.js?v<span class="o">=</span>v2.6.15’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">commons.js?v<span class="o">=</span>v2.6.15 <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 997.55K 337KB/s in 3.0s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:39 <span class="o">(</span><span class="m">337</span> KB/s<span class="o">)</span> - ‘commons.js?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>1021492<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:39-- https://virgool.io/js/main.js?v<span class="o">=</span>v2.6.15 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/javascript<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘main.js?v<span class="o">=</span>v2.6.15’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">main.js?v<span class="o">=</span>v2.6.15 <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 1.21M 580KB/s in 2.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:41 <span class="o">(</span><span class="m">580</span> KB/s<span class="o">)</span> - ‘main.js?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>1267632<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:41-- https://static.cloudflareinsights.com/beacon.min.js/v652eace1692a40cfa3763df669d7439c1639079717194 -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">13970</span> <span class="o">(</span>14K<span class="o">)</span> <span class="o">[</span>text/javascript<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘v652eace1692a40cfa3763df669d7439c1639079717194’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">v652eace1692a40cfa3763df669d743 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 13.64K --.-KB/s in 0.02s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:42 <span class="o">(</span><span class="m">600</span> KB/s<span class="o">)</span> - ‘v652eace1692a40cfa3763df669d7439c1639079717194’ saved <span class="o">[</span>13970/13970<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:42-- https://virgool.io/fonts/vazir/Vazir-Thin.ttf -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">98924</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Thin.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.61K 140KB/s in 0.7s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:43 <span class="o">(</span><span class="m">140</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.ttf’ saved <span class="o">[</span>98924/98924<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:43-- https://virgool.io/fonts/vazir/Vazir-Thin.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Thin.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.80K 276KB/s in 0.4s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:44 <span class="o">(</span><span class="m">276</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.eot?’ saved <span class="o">[</span>99120<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:44-- https://virgool.io/fonts/vazir/Vazir-Thin.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">54068</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Thin.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.80K --.-KB/s in 0.07s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:45 <span class="o">(</span><span class="m">770</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.woff’ saved <span class="o">[</span>54068/54068<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:45-- https://virgool.io/fonts/vazir/Vazir-Thin.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">43000</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Thin.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 41.99K --.-KB/s in 0.006s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:46 <span class="o">(</span>6.59 MB/s<span class="o">)</span> - ‘Vazir-Thin.woff2’ saved <span class="o">[</span>43000/43000<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:46-- https://virgool.io/fonts/vazir/Vazir-Light.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">105360</span> <span class="o">(</span>103K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Light.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 102.89K 478KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:46 <span class="o">(</span><span class="m">478</span> KB/s<span class="o">)</span> - ‘Vazir-Light.ttf’ saved <span class="o">[</span>105360/105360<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:46-- https://virgool.io/fonts/vazir/Vazir-Light.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Light.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 103.09K 470KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:47 <span class="o">(</span><span class="m">470</span> KB/s<span class="o">)</span> - ‘Vazir-Light.eot?’ saved <span class="o">[</span>105562<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:47-- https://virgool.io/fonts/vazir/Vazir-Light.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">59688</span> <span class="o">(</span>58K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Light.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 58.29K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:48 <span class="o">(</span><span class="m">758</span> KB/s<span class="o">)</span> - ‘Vazir-Light.woff’ saved <span class="o">[</span>59688/59688<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:48-- https://virgool.io/fonts/vazir/Vazir-Light.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">48168</span> <span class="o">(</span>47K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Light.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 47.04K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:48 <span class="o">(</span><span class="m">570</span> KB/s<span class="o">)</span> - ‘Vazir-Light.woff2’ saved <span class="o">[</span>48168/48168<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:48-- https://virgool.io/fonts/vazir/Vazir-Regular.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">98376</span> <span class="o">(</span>96K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Regular.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.07K 435KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:49 <span class="o">(</span><span class="m">435</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.ttf’ saved <span class="o">[</span>98376/98376<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:49-- https://virgool.io/fonts/vazir/Vazir-Regular.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Regular.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.26K 285KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:50 <span class="o">(</span><span class="m">285</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.eot?’ saved <span class="o">[</span>98574<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:50-- https://virgool.io/fonts/vazir/Vazir-Regular.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">53744</span> <span class="o">(</span>52K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Regular.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.48K --.-KB/s in 0.05s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:51 <span class="o">(</span>1.10 MB/s<span class="o">)</span> - ‘Vazir-Regular.woff’ saved <span class="o">[</span>53744/53744<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:51-- https://virgool.io/fonts/vazir/Vazir-Regular.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">42744</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Regular.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 41.74K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:51 <span class="o">(</span><span class="m">412</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.woff2’ saved <span class="o">[</span>42744/42744<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:51-- https://virgool.io/fonts/vazir/Vazir-Medium.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">98892</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Medium.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.57K 606KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:52 <span class="o">(</span><span class="m">606</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.ttf’ saved <span class="o">[</span>98892/98892<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:52-- https://virgool.io/fonts/vazir/Vazir-Medium.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Medium.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.78K 347KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:53 <span class="o">(</span><span class="m">347</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.eot?’ saved <span class="o">[</span>99100<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:53-- https://virgool.io/fonts/vazir/Vazir-Medium.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">54120</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Medium.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.85K 125KB/s in 0.4s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:54 <span class="o">(</span><span class="m">125</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.woff’ saved <span class="o">[</span>54120/54120<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:54-- https://virgool.io/fonts/vazir/Vazir-Medium.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">43152</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Medium.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.14K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:54 <span class="o">(</span><span class="m">541</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.woff2’ saved <span class="o">[</span>43152/43152<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:54-- https://virgool.io/fonts/vazir/Vazir-Bold.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">99840</span> <span class="o">(</span>98K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Bold.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 97.50K --.-KB/s in 0.04s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:55 <span class="o">(</span>2.61 MB/s<span class="o">)</span> - ‘Vazir-Bold.ttf’ saved <span class="o">[</span>99840/99840<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:55-- https://virgool.io/fonts/vazir/Vazir-Bold.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Bold.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 97.68K 560KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:56 <span class="o">(</span><span class="m">560</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.eot?’ saved <span class="o">[</span>100026<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:56-- https://virgool.io/fonts/vazir/Vazir-Bold.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">54560</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Bold.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 53.28K --.-KB/s in 0.06s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:56 <span class="o">(</span><span class="m">917</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.woff’ saved <span class="o">[</span>54560/54560<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:56-- https://virgool.io/fonts/vazir/Vazir-Bold.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">43604</span> <span class="o">(</span>43K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Bold.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.58K --.-KB/s in 0.06s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:57 <span class="o">(</span><span class="m">657</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.woff2’ saved <span class="o">[</span>43604/43604<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:57-- https://virgool.io/fonts/vazir/Vazir-Black.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">99772</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Black.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 97.43K --.-KB/s in 0.04s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:57 <span class="o">(</span>2.18 MB/s<span class="o">)</span> - ‘Vazir-Black.ttf’ saved <span class="o">[</span>99772/99772<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:57-- https://virgool.io/fonts/vazir/Vazir-Black.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Black.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 97.63K 478KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:58 <span class="o">(</span><span class="m">478</span> KB/s<span class="o">)</span> - ‘Vazir-Black.eot?’ saved <span class="o">[</span>99974<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:58-- https://virgool.io/fonts/vazir/Vazir-Black.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">54652</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Black.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 53.37K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:59 <span class="o">(</span><span class="m">691</span> KB/s<span class="o">)</span> - ‘Vazir-Black.woff’ saved <span class="o">[</span>54652/54652<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:59-- https://virgool.io/fonts/vazir/Vazir-Black.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">43332</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Black.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.32K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:00 <span class="o">(</span><span class="m">510</span> KB/s<span class="o">)</span> - ‘Vazir-Black.woff2’ saved <span class="o">[</span>43332/43332<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:00-- https://virgool.io/fonts/fontawesome/fa-solid-900.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">202616</span> <span class="o">(</span>198K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">fa-solid-900.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 197.87K 501KB/s in 0.4s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:01 <span class="o">(</span><span class="m">501</span> KB/s<span class="o">)</span> - ‘fa-solid-900.ttf’ saved <span class="o">[</span>202616/202616<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:01-- https://virgool.io/fonts/fontawesome/fa-solid-900.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">404</span> Not Found -</span></span><span class="line"><span class="cl">2022-01-18 06:42:01 ERROR 404: Not Found. -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:01-- https://virgool.io/fonts/fontawesome/fa-solid-900.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">103300</span> <span class="o">(</span>101K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">fa-solid-900.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 100.88K 358KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:02 <span class="o">(</span><span class="m">358</span> KB/s<span class="o">)</span> - ‘fa-solid-900.woff’ saved <span class="o">[</span>103300/103300<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:02-- https://virgool.io/fonts/fontawesome/fa-solid-900.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">79444</span> <span class="o">(</span>78K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">fa-solid-900.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 77.58K 394KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:03 <span class="o">(</span><span class="m">394</span> KB/s<span class="o">)</span> - ‘fa-solid-900.woff2’ saved <span class="o">[</span>79444/79444<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:03-- https://virgool.io/images/icons/plus.svg -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>image/svg+xml<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘plus.svg’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">plus.svg <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">942</span> --.-KB/s in 0.002s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:03 <span class="o">(</span><span class="m">383</span> KB/s<span class="o">)</span> - ‘plus.svg’ saved <span class="o">[</span>942<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:03-- https://virgool.io/images/icons/tick.svg -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>image/svg+xml<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘tick.svg’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">tick.svg <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">942</span> --.-KB/s in 0s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:04 <span class="o">(</span>89.8 MB/s<span class="o">)</span> - ‘tick.svg’ saved <span class="o">[</span>942<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:04-- https://virgool.io/images/typewriter.png -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">172558</span> <span class="o">(</span>169K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘typewriter.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">typewriter.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 168.51K 349KB/s in 0.5s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:05 <span class="o">(</span><span class="m">349</span> KB/s<span class="o">)</span> - ‘typewriter.png’ saved <span class="o">[</span>172558/172558<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:05-- https://virgool.test/images/download-audio.png -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:05-- https://virgool.test/images/download-ebook.png -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. -</span></span><span class="line"><span class="cl">FINISHED --2022-01-18 06:42:05-- -</span></span><span class="line"><span class="cl">Total wall clock time: 1m 2s -</span></span><span class="line"><span class="cl">Downloaded: <span class="m">54</span> files, 6.6M in 14s <span class="o">(</span><span class="m">479</span> KB/s<span class="o">)</span> -</span></span><span class="line"><span class="cl">Converting links in ns.html?id<span class="o">=</span>GTM-5GS688K.html... nothing to <span class="k">do</span>. -</span></span><span class="line"><span class="cl">Converting links in c3fVa.html... 38. -</span></span><span class="line"><span class="cl">31-7 -</span></span><span class="line"><span class="cl">Converting links in styles.css?v<span class="o">=</span>v2.6.15.css... 35. -</span></span><span class="line"><span class="cl">34-1 -</span></span><span class="line"><span class="cl">Converted links in <span class="m">3</span> files in 0.06 seconds. -</span></span></code></pre></td></tr></table> -</div> -</div> - - - zsh بهترین پلاگین های - https://bit-orbit.github.io/p/zsh-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C/ - Tue, 11 Jan 2022 02:44:12 +0330 - - https://bit-orbit.github.io/p/zsh-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C/ - <img src="https://bit-orbit.github.io/images/post/terminal.jpg" alt="Featured image of post zsh بهترین پلاگین های " /><p>نوشتن یک برنامه کار سختی نیست، بلکه نگه‌داری و آپدیت یک برنامه‌ست، پلاگین این ویژگی را می‌دهد تا به راحتی عملکرد یک برنامه را بی‌افزاییم.</p> -<hr> -<div dir='rtl' style='font-size:25px'> -<h3 id="themeshttpsgithubcomohmyzshohmyzshtreemasterpluginsthemes-"><a class="link" href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/themes" target="_blank" rel="noopener" - >themes</a> #Ⅳ</h3> -<p>انتخاب +هست رو دانلود می‌کنم.</li> +</ul> +</br> +</div> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt"> 10 +</span><span class="lnt"> 11 +</span><span class="lnt"> 12 +</span><span class="lnt"> 13 +</span><span class="lnt"> 14 +</span><span class="lnt"> 15 +</span><span class="lnt"> 16 +</span><span class="lnt"> 17 +</span><span class="lnt"> 18 +</span><span class="lnt"> 19 +</span><span class="lnt"> 20 +</span><span class="lnt"> 21 +</span><span class="lnt"> 22 +</span><span class="lnt"> 23 +</span><span class="lnt"> 24 +</span><span class="lnt"> 25 +</span><span class="lnt"> 26 +</span><span class="lnt"> 27 +</span><span class="lnt"> 28 +</span><span class="lnt"> 29 +</span><span class="lnt"> 30 +</span><span class="lnt"> 31 +</span><span class="lnt"> 32 +</span><span class="lnt"> 33 +</span><span class="lnt"> 34 +</span><span class="lnt"> 35 +</span><span class="lnt"> 36 +</span><span class="lnt"> 37 +</span><span class="lnt"> 38 +</span><span class="lnt"> 39 +</span><span class="lnt"> 40 +</span><span class="lnt"> 41 +</span><span class="lnt"> 42 +</span><span class="lnt"> 43 +</span><span class="lnt"> 44 +</span><span class="lnt"> 45 +</span><span class="lnt"> 46 +</span><span class="lnt"> 47 +</span><span class="lnt"> 48 +</span><span class="lnt"> 49 +</span><span class="lnt"> 50 +</span><span class="lnt"> 51 +</span><span class="lnt"> 52 +</span><span class="lnt"> 53 +</span><span class="lnt"> 54 +</span><span class="lnt"> 55 +</span><span class="lnt"> 56 +</span><span class="lnt"> 57 +</span><span class="lnt"> 58 +</span><span class="lnt"> 59 +</span><span class="lnt"> 60 +</span><span class="lnt"> 61 +</span><span class="lnt"> 62 +</span><span class="lnt"> 63 +</span><span class="lnt"> 64 +</span><span class="lnt"> 65 +</span><span class="lnt"> 66 +</span><span class="lnt"> 67 +</span><span class="lnt"> 68 +</span><span class="lnt"> 69 +</span><span class="lnt"> 70 +</span><span class="lnt"> 71 +</span><span class="lnt"> 72 +</span><span class="lnt"> 73 +</span><span class="lnt"> 74 +</span><span class="lnt"> 75 +</span><span class="lnt"> 76 +</span><span class="lnt"> 77 +</span><span class="lnt"> 78 +</span><span class="lnt"> 79 +</span><span class="lnt"> 80 +</span><span class="lnt"> 81 +</span><span class="lnt"> 82 +</span><span class="lnt"> 83 +</span><span class="lnt"> 84 +</span><span class="lnt"> 85 +</span><span class="lnt"> 86 +</span><span class="lnt"> 87 +</span><span class="lnt"> 88 +</span><span class="lnt"> 89 +</span><span class="lnt"> 90 +</span><span class="lnt"> 91 +</span><span class="lnt"> 92 +</span><span class="lnt"> 93 +</span><span class="lnt"> 94 +</span><span class="lnt"> 95 +</span><span class="lnt"> 96 +</span><span class="lnt"> 97 +</span><span class="lnt"> 98 +</span><span class="lnt"> 99 +</span><span class="lnt">100 +</span><span class="lnt">101 +</span><span class="lnt">102 +</span><span class="lnt">103 +</span><span class="lnt">104 +</span><span class="lnt">105 +</span><span class="lnt">106 +</span><span class="lnt">107 +</span><span class="lnt">108 +</span><span class="lnt">109 +</span><span class="lnt">110 +</span><span class="lnt">111 +</span><span class="lnt">112 +</span><span class="lnt">113 +</span><span class="lnt">114 +</span><span class="lnt">115 +</span><span class="lnt">116 +</span><span class="lnt">117 +</span><span class="lnt">118 +</span><span class="lnt">119 +</span><span class="lnt">120 +</span><span class="lnt">121 +</span><span class="lnt">122 +</span><span class="lnt">123 +</span><span class="lnt">124 +</span><span class="lnt">125 +</span><span class="lnt">126 +</span><span class="lnt">127 +</span><span class="lnt">128 +</span><span class="lnt">129 +</span><span class="lnt">130 +</span><span class="lnt">131 +</span><span class="lnt">132 +</span><span class="lnt">133 +</span><span class="lnt">134 +</span><span class="lnt">135 +</span><span class="lnt">136 +</span><span class="lnt">137 +</span><span class="lnt">138 +</span><span class="lnt">139 +</span><span class="lnt">140 +</span><span class="lnt">141 +</span><span class="lnt">142 +</span><span class="lnt">143 +</span><span class="lnt">144 +</span><span class="lnt">145 +</span><span class="lnt">146 +</span><span class="lnt">147 +</span><span class="lnt">148 +</span><span class="lnt">149 +</span><span class="lnt">150 +</span><span class="lnt">151 +</span><span class="lnt">152 +</span><span class="lnt">153 +</span><span class="lnt">154 +</span><span class="lnt">155 +</span><span class="lnt">156 +</span><span class="lnt">157 +</span><span class="lnt">158 +</span><span class="lnt">159 +</span><span class="lnt">160 +</span><span class="lnt">161 +</span><span class="lnt">162 +</span><span class="lnt">163 +</span><span class="lnt">164 +</span><span class="lnt">165 +</span><span class="lnt">166 +</span><span class="lnt">167 +</span><span class="lnt">168 +</span><span class="lnt">169 +</span><span class="lnt">170 +</span><span class="lnt">171 +</span><span class="lnt">172 +</span><span class="lnt">173 +</span><span class="lnt">174 +</span><span class="lnt">175 +</span><span class="lnt">176 +</span><span class="lnt">177 +</span><span class="lnt">178 +</span><span class="lnt">179 +</span><span class="lnt">180 +</span><span class="lnt">181 +</span><span class="lnt">182 +</span><span class="lnt">183 +</span><span class="lnt">184 +</span><span class="lnt">185 +</span><span class="lnt">186 +</span><span class="lnt">187 +</span><span class="lnt">188 +</span><span class="lnt">189 +</span><span class="lnt">190 +</span><span class="lnt">191 +</span><span class="lnt">192 +</span><span class="lnt">193 +</span><span class="lnt">194 +</span><span class="lnt">195 +</span><span class="lnt">196 +</span><span class="lnt">197 +</span><span class="lnt">198 +</span><span class="lnt">199 +</span><span class="lnt">200 +</span><span class="lnt">201 +</span><span class="lnt">202 +</span><span class="lnt">203 +</span><span class="lnt">204 +</span><span class="lnt">205 +</span><span class="lnt">206 +</span><span class="lnt">207 +</span><span class="lnt">208 +</span><span class="lnt">209 +</span><span class="lnt">210 +</span><span class="lnt">211 +</span><span class="lnt">212 +</span><span class="lnt">213 +</span><span class="lnt">214 +</span><span class="lnt">215 +</span><span class="lnt">216 +</span><span class="lnt">217 +</span><span class="lnt">218 +</span><span class="lnt">219 +</span><span class="lnt">220 +</span><span class="lnt">221 +</span><span class="lnt">222 +</span><span class="lnt">223 +</span><span class="lnt">224 +</span><span class="lnt">225 +</span><span class="lnt">226 +</span><span class="lnt">227 +</span><span class="lnt">228 +</span><span class="lnt">229 +</span><span class="lnt">230 +</span><span class="lnt">231 +</span><span class="lnt">232 +</span><span class="lnt">233 +</span><span class="lnt">234 +</span><span class="lnt">235 +</span><span class="lnt">236 +</span><span class="lnt">237 +</span><span class="lnt">238 +</span><span class="lnt">239 +</span><span class="lnt">240 +</span><span class="lnt">241 +</span><span class="lnt">242 +</span><span class="lnt">243 +</span><span class="lnt">244 +</span><span class="lnt">245 +</span><span class="lnt">246 +</span><span class="lnt">247 +</span><span class="lnt">248 +</span><span class="lnt">249 +</span><span class="lnt">250 +</span><span class="lnt">251 +</span><span class="lnt">252 +</span><span class="lnt">253 +</span><span class="lnt">254 +</span><span class="lnt">255 +</span><span class="lnt">256 +</span><span class="lnt">257 +</span><span class="lnt">258 +</span><span class="lnt">259 +</span><span class="lnt">260 +</span><span class="lnt">261 +</span><span class="lnt">262 +</span><span class="lnt">263 +</span><span class="lnt">264 +</span><span class="lnt">265 +</span><span class="lnt">266 +</span><span class="lnt">267 +</span><span class="lnt">268 +</span><span class="lnt">269 +</span><span class="lnt">270 +</span><span class="lnt">271 +</span><span class="lnt">272 +</span><span class="lnt">273 +</span><span class="lnt">274 +</span><span class="lnt">275 +</span><span class="lnt">276 +</span><span class="lnt">277 +</span><span class="lnt">278 +</span><span class="lnt">279 +</span><span class="lnt">280 +</span><span class="lnt">281 +</span><span class="lnt">282 +</span><span class="lnt">283 +</span><span class="lnt">284 +</span><span class="lnt">285 +</span><span class="lnt">286 +</span><span class="lnt">287 +</span><span class="lnt">288 +</span><span class="lnt">289 +</span><span class="lnt">290 +</span><span class="lnt">291 +</span><span class="lnt">292 +</span><span class="lnt">293 +</span><span class="lnt">294 +</span><span class="lnt">295 +</span><span class="lnt">296 +</span><span class="lnt">297 +</span><span class="lnt">298 +</span><span class="lnt">299 +</span><span class="lnt">300 +</span><span class="lnt">301 +</span><span class="lnt">302 +</span><span class="lnt">303 +</span><span class="lnt">304 +</span><span class="lnt">305 +</span><span class="lnt">306 +</span><span class="lnt">307 +</span><span class="lnt">308 +</span><span class="lnt">309 +</span><span class="lnt">310 +</span><span class="lnt">311 +</span><span class="lnt">312 +</span><span class="lnt">313 +</span><span class="lnt">314 +</span><span class="lnt">315 +</span><span class="lnt">316 +</span><span class="lnt">317 +</span><span class="lnt">318 +</span><span class="lnt">319 +</span><span class="lnt">320 +</span><span class="lnt">321 +</span><span class="lnt">322 +</span><span class="lnt">323 +</span><span class="lnt">324 +</span><span class="lnt">325 +</span><span class="lnt">326 +</span><span class="lnt">327 +</span><span class="lnt">328 +</span><span class="lnt">329 +</span><span class="lnt">330 +</span><span class="lnt">331 +</span><span class="lnt">332 +</span><span class="lnt">333 +</span><span class="lnt">334 +</span><span class="lnt">335 +</span><span class="lnt">336 +</span><span class="lnt">337 +</span><span class="lnt">338 +</span><span class="lnt">339 +</span><span class="lnt">340 +</span><span class="lnt">341 +</span><span class="lnt">342 +</span><span class="lnt">343 +</span><span class="lnt">344 +</span><span class="lnt">345 +</span><span class="lnt">346 +</span><span class="lnt">347 +</span><span class="lnt">348 +</span><span class="lnt">349 +</span><span class="lnt">350 +</span><span class="lnt">351 +</span><span class="lnt">352 +</span><span class="lnt">353 +</span><span class="lnt">354 +</span><span class="lnt">355 +</span><span class="lnt">356 +</span><span class="lnt">357 +</span><span class="lnt">358 +</span><span class="lnt">359 +</span><span class="lnt">360 +</span><span class="lnt">361 +</span><span class="lnt">362 +</span><span class="lnt">363 +</span><span class="lnt">364 +</span><span class="lnt">365 +</span><span class="lnt">366 +</span><span class="lnt">367 +</span><span class="lnt">368 +</span><span class="lnt">369 +</span><span class="lnt">370 +</span><span class="lnt">371 +</span><span class="lnt">372 +</span><span class="lnt">373 +</span><span class="lnt">374 +</span><span class="lnt">375 +</span><span class="lnt">376 +</span><span class="lnt">377 +</span><span class="lnt">378 +</span><span class="lnt">379 +</span><span class="lnt">380 +</span><span class="lnt">381 +</span><span class="lnt">382 +</span><span class="lnt">383 +</span><span class="lnt">384 +</span><span class="lnt">385 +</span><span class="lnt">386 +</span><span class="lnt">387 +</span><span class="lnt">388 +</span><span class="lnt">389 +</span><span class="lnt">390 +</span><span class="lnt">391 +</span><span class="lnt">392 +</span><span class="lnt">393 +</span><span class="lnt">394 +</span><span class="lnt">395 +</span><span class="lnt">396 +</span><span class="lnt">397 +</span><span class="lnt">398 +</span><span class="lnt">399 +</span><span class="lnt">400 +</span><span class="lnt">401 +</span><span class="lnt">402 +</span><span class="lnt">403 +</span><span class="lnt">404 +</span><span class="lnt">405 +</span><span class="lnt">406 +</span><span class="lnt">407 +</span><span class="lnt">408 +</span><span class="lnt">409 +</span><span class="lnt">410 +</span><span class="lnt">411 +</span><span class="lnt">412 +</span><span class="lnt">413 +</span><span class="lnt">414 +</span><span class="lnt">415 +</span><span class="lnt">416 +</span><span class="lnt">417 +</span><span class="lnt">418 +</span><span class="lnt">419 +</span><span class="lnt">420 +</span><span class="lnt">421 +</span><span class="lnt">422 +</span><span class="lnt">423 +</span><span class="lnt">424 +</span><span class="lnt">425 +</span><span class="lnt">426 +</span><span class="lnt">427 +</span><span class="lnt">428 +</span><span class="lnt">429 +</span><span class="lnt">430 +</span><span class="lnt">431 +</span><span class="lnt">432 +</span><span class="lnt">433 +</span><span class="lnt">434 +</span><span class="lnt">435 +</span><span class="lnt">436 +</span><span class="lnt">437 +</span><span class="lnt">438 +</span><span class="lnt">439 +</span><span class="lnt">440 +</span><span class="lnt">441 +</span><span class="lnt">442 +</span><span class="lnt">443 +</span><span class="lnt">444 +</span><span class="lnt">445 +</span><span class="lnt">446 +</span><span class="lnt">447 +</span><span class="lnt">448 +</span><span class="lnt">449 +</span><span class="lnt">450 +</span><span class="lnt">451 +</span><span class="lnt">452 +</span><span class="lnt">453 +</span><span class="lnt">454 +</span><span class="lnt">455 +</span><span class="lnt">456 +</span><span class="lnt">457 +</span><span class="lnt">458 +</span><span class="lnt">459 +</span><span class="lnt">460 +</span><span class="lnt">461 +</span><span class="lnt">462 +</span><span class="lnt">463 +</span><span class="lnt">464 +</span><span class="lnt">465 +</span><span class="lnt">466 +</span><span class="lnt">467 +</span><span class="lnt">468 +</span><span class="lnt">469 +</span><span class="lnt">470 +</span><span class="lnt">471 +</span><span class="lnt">472 +</span><span class="lnt">473 +</span><span class="lnt">474 +</span><span class="lnt">475 +</span><span class="lnt">476 +</span><span class="lnt">477 +</span><span class="lnt">478 +</span><span class="lnt">479 +</span><span class="lnt">480 +</span><span class="lnt">481 +</span><span class="lnt">482 +</span><span class="lnt">483 +</span><span class="lnt">484 +</span><span class="lnt">485 +</span><span class="lnt">486 +</span><span class="lnt">487 +</span><span class="lnt">488 +</span><span class="lnt">489 +</span><span class="lnt">490 +</span><span class="lnt">491 +</span><span class="lnt">492 +</span><span class="lnt">493 +</span><span class="lnt">494 +</span><span class="lnt">495 +</span><span class="lnt">496 +</span><span class="lnt">497 +</span><span class="lnt">498 +</span><span class="lnt">499 +</span><span class="lnt">500 +</span><span class="lnt">501 +</span><span class="lnt">502 +</span><span class="lnt">503 +</span><span class="lnt">504 +</span><span class="lnt">505 +</span><span class="lnt">506 +</span><span class="lnt">507 +</span><span class="lnt">508 +</span><span class="lnt">509 +</span><span class="lnt">510 +</span><span class="lnt">511 +</span><span class="lnt">512 +</span><span class="lnt">513 +</span><span class="lnt">514 +</span><span class="lnt">515 +</span><span class="lnt">516 +</span><span class="lnt">517 +</span><span class="lnt">518 +</span><span class="lnt">519 +</span><span class="lnt">520 +</span><span class="lnt">521 +</span><span class="lnt">522 +</span><span class="lnt">523 +</span><span class="lnt">524 +</span><span class="lnt">525 +</span><span class="lnt">526 +</span><span class="lnt">527 +</span><span class="lnt">528 +</span><span class="lnt">529 +</span><span class="lnt">530 +</span><span class="lnt">531 +</span><span class="lnt">532 +</span><span class="lnt">533 +</span><span class="lnt">534 +</span><span class="lnt">535 +</span><span class="lnt">536 +</span><span class="lnt">537 +</span><span class="lnt">538 +</span><span class="lnt">539 +</span><span class="lnt">540 +</span><span class="lnt">541 +</span><span class="lnt">542 +</span><span class="lnt">543 +</span><span class="lnt">544 +</span><span class="lnt">545 +</span><span class="lnt">546 +</span><span class="lnt">547 +</span><span class="lnt">548 +</span><span class="lnt">549 +</span><span class="lnt">550 +</span><span class="lnt">551 +</span><span class="lnt">552 +</span><span class="lnt">553 +</span><span class="lnt">554 +</span><span class="lnt">555 +</span><span class="lnt">556 +</span><span class="lnt">557 +</span><span class="lnt">558 +</span><span class="lnt">559 +</span><span class="lnt">560 +</span><span class="lnt">561 +</span><span class="lnt">562 +</span><span class="lnt">563 +</span><span class="lnt">564 +</span><span class="lnt">565 +</span><span class="lnt">566 +</span><span class="lnt">567 +</span><span class="lnt">568 +</span><span class="lnt">569 +</span><span class="lnt">570 +</span><span class="lnt">571 +</span><span class="lnt">572 +</span><span class="lnt">573 +</span><span class="lnt">574 +</span><span class="lnt">575 +</span><span class="lnt">576 +</span><span class="lnt">577 +</span><span class="lnt">578 +</span><span class="lnt">579 +</span><span class="lnt">580 +</span><span class="lnt">581 +</span><span class="lnt">582 +</span><span class="lnt">583 +</span><span class="lnt">584 +</span><span class="lnt">585 +</span><span class="lnt">586 +</span><span class="lnt">587 +</span><span class="lnt">588 +</span><span class="lnt">589 +</span><span class="lnt">590 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">┌─<span class="o">[</span>loading<span class="o">]</span> <span class="o">[</span>/tmp/virgool<span class="o">]</span> <span class="o">[</span>0<span class="o">]</span> +</span></span><span class="line"><span class="cl">│ +</span></span><span class="line"><span class="cl">└──〉wget -nd -E -p -k -H https://vrgl.ir/c3fVa +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:03-- https://vrgl.ir/c3fVa +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">302</span> Found +</span></span><span class="line"><span class="cl">Location: https://virgool.io/@Novo/rsa-encryption-ao1poasym4cf <span class="o">[</span>following<span class="o">]</span> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:04-- https://virgool.io/@Novo/rsa-encryption-ao1poasym4cf +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/html<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘c3fVa.html’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">c3fVa.html <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 61.30K 200KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:06 <span class="o">(</span><span class="m">200</span> KB/s<span class="o">)</span> - ‘c3fVa.html’ saved <span class="o">[</span>62773<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:06-- https://virgool.io/robots.txt +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>document<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘robots.txt’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">robots.txt <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">484</span> --.-KB/s in 0s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:07 <span class="o">(</span>85.7 MB/s<span class="o">)</span> - ‘robots.txt’ saved <span class="o">[</span>484<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:07-- https://www.googletagmanager.com/robots.txt +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">404</span> Not Found +</span></span><span class="line"><span class="cl">2022-01-18 06:41:08 ERROR 404: Not Found. +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:08-- https://files.virgool.io/robots.txt +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">403</span> Forbidden +</span></span><span class="line"><span class="cl">2022-01-18 06:41:09 ERROR 403: Forbidden. +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:09-- https://static.cloudflareinsights.com/robots.txt +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">522</span> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:26 ERROR 522: <span class="o">(</span>no description<span class="o">)</span>. +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:26-- https://virgool.io/images/favicon.png?v<span class="o">=</span>v2.6.15 +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">9855</span> <span class="o">(</span>9.6K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘favicon.png?v<span class="o">=</span>v2.6.15’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">favicon.png?v<span class="o">=</span>v2.6.15 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 9.62K --.-KB/s in 0.07s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:27 <span class="o">(</span><span class="m">130</span> KB/s<span class="o">)</span> - ‘favicon.png?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>9855/9855<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:27-- https://virgool.io/css/styles.css?v<span class="o">=</span>v2.6.15 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/css<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘styles.css?v<span class="o">=</span>v2.6.15.css’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">styles.css?v<span class="o">=</span>v2.6.15.css <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 903.60K 592KB/s in 1.5s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:28 <span class="o">(</span><span class="m">592</span> KB/s<span class="o">)</span> - ‘styles.css?v<span class="o">=</span>v2.6.15.css’ saved <span class="o">[</span>925284<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:28-- https://virgool.test/robots.txt +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:28-- https://www.googletagmanager.com/ns.html?id<span class="o">=</span>GTM-5GS688K +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/html<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘ns.html?id<span class="o">=</span>GTM-5GS688K.html’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">ns.html?id<span class="o">=</span>GTM-5GS688K.html <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">266</span> --.-KB/s in 0s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:29 <span class="o">(</span>29.4 MB/s<span class="o">)</span> - ‘ns.html?id<span class="o">=</span>GTM-5GS688K.html’ saved <span class="o">[</span>266<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:29-- https://files.virgool.io/upload/users/31434/avatar/1C4LLE.png?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">39194</span> <span class="o">(</span>38K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_ 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 38.28K 173KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:30 <span class="o">(</span><span class="m">173</span> KB/s<span class="o">)</span> - ‘1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>39194/39194<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:30-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/qhokakomwyb5.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">179870</span> <span class="o">(</span>176K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘qhokakomwyb5.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">qhokakomwyb5.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 175.65K 567KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">567</span> KB/s<span class="o">)</span> - ‘qhokakomwyb5.png’ saved <span class="o">[</span>179870/179870<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/v1xnwpnewfys.webp +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">12770</span> <span class="o">(</span>12K<span class="o">)</span> <span class="o">[</span>image/webp<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘v1xnwpnewfys.webp’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">v1xnwpnewfys.webp 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 12.47K --.-KB/s in 0.07s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">180</span> KB/s<span class="o">)</span> - ‘v1xnwpnewfys.webp’ saved <span class="o">[</span>12770/12770<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/d28hpu2detkl.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">92847</span> <span class="o">(</span>91K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘d28hpu2detkl.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">d28hpu2detkl.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 90.67K --.-KB/s in 0.09s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">969</span> KB/s<span class="o">)</span> - ‘d28hpu2detkl.png’ saved <span class="o">[</span>92847/92847<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/rhyykrc8azq0.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">17539</span> <span class="o">(</span>17K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘rhyykrc8azq0.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">rhyykrc8azq0.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 17.13K --.-KB/s in 0.007s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>2.47 MB/s<span class="o">)</span> - ‘rhyykrc8azq0.png’ saved <span class="o">[</span>17539/17539<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/fjtc1ydzkuse.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">108524</span> <span class="o">(</span>106K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘fjtc1ydzkuse.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">fjtc1ydzkuse.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 105.98K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>1.06 MB/s<span class="o">)</span> - ‘fjtc1ydzkuse.png’ saved <span class="o">[</span>108524/108524<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/gfqhgyp18oic.jpeg +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">132085</span> <span class="o">(</span>129K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘gfqhgyp18oic.jpeg’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">gfqhgyp18oic.jpeg 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 128.99K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>1.28 MB/s<span class="o">)</span> - ‘gfqhgyp18oic.jpeg’ saved <span class="o">[</span>132085/132085<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/me0mpjtdmyom.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">113489</span> <span class="o">(</span>111K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘me0mpjtdmyom.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">me0mpjtdmyom.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 110.83K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span><span class="m">814</span> KB/s<span class="o">)</span> - ‘me0mpjtdmyom.png’ saved <span class="o">[</span>113489/113489<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/of7krju6oqzk.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">105746</span> <span class="o">(</span>103K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘of7krju6oqzk.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">of7krju6oqzk.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 103.27K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span>1.25 MB/s<span class="o">)</span> - ‘of7krju6oqzk.png’ saved <span class="o">[</span>105746/105746<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/oqwhflg4gbnq.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">120994</span> <span class="o">(</span>118K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘oqwhflg4gbnq.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">oqwhflg4gbnq.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 118.16K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span>1.14 MB/s<span class="o">)</span> - ‘oqwhflg4gbnq.png’ saved <span class="o">[</span>120994/120994<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/taqjnfnuzxcx.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">122678</span> <span class="o">(</span>120K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘taqjnfnuzxcx.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">taqjnfnuzxcx.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 119.80K --.-KB/s in 0.06s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span>2.00 MB/s<span class="o">)</span> - ‘taqjnfnuzxcx.png’ saved <span class="o">[</span>122678/122678<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/63/posts/qwqrubplfaau/g8vai2incgna.jpeg?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">88292</span> <span class="o">(</span>86K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fre 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 86.22K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span><span class="m">824</span> KB/s<span class="o">)</span> - ‘g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>88292/88292<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/63/avatar/o8jiNe.png?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">32037</span> <span class="o">(</span>31K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_ 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 31.29K --.-KB/s in 0.06s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span><span class="m">558</span> KB/s<span class="o">)</span> - ‘o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>32037/32037<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/31434/posts/e3oydlcfkr5e/figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">30356</span> <span class="o">(</span>30K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fre 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 29.64K --.-KB/s in 0.07s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span><span class="m">401</span> KB/s<span class="o">)</span> - ‘figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>30356/30356<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://files.virgool.io/upload/users/316150/posts/r8rhw88uh1xh/cs1ugyelv3zw.png?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">34459</span> <span class="o">(</span>34K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fres 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 33.65K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span><span class="m">399</span> KB/s<span class="o">)</span> - ‘cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>34459/34459<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://files.virgool.io/upload/users/316150/avatar/8sz7Rs.jpeg?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">14764</span> <span class="o">(</span>14K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 14.42K --.-KB/s in 0.007s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span>2.11 MB/s<span class="o">)</span> - ‘8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>14764/14764<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://virgool.io/js/commons.js?v<span class="o">=</span>v2.6.15 +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/javascript<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘commons.js?v<span class="o">=</span>v2.6.15’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">commons.js?v<span class="o">=</span>v2.6.15 <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 997.55K 337KB/s in 3.0s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:39 <span class="o">(</span><span class="m">337</span> KB/s<span class="o">)</span> - ‘commons.js?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>1021492<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:39-- https://virgool.io/js/main.js?v<span class="o">=</span>v2.6.15 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/javascript<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘main.js?v<span class="o">=</span>v2.6.15’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">main.js?v<span class="o">=</span>v2.6.15 <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 1.21M 580KB/s in 2.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:41 <span class="o">(</span><span class="m">580</span> KB/s<span class="o">)</span> - ‘main.js?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>1267632<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:41-- https://static.cloudflareinsights.com/beacon.min.js/v652eace1692a40cfa3763df669d7439c1639079717194 +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">13970</span> <span class="o">(</span>14K<span class="o">)</span> <span class="o">[</span>text/javascript<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘v652eace1692a40cfa3763df669d7439c1639079717194’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">v652eace1692a40cfa3763df669d743 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 13.64K --.-KB/s in 0.02s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:42 <span class="o">(</span><span class="m">600</span> KB/s<span class="o">)</span> - ‘v652eace1692a40cfa3763df669d7439c1639079717194’ saved <span class="o">[</span>13970/13970<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:42-- https://virgool.io/fonts/vazir/Vazir-Thin.ttf +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">98924</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Thin.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.61K 140KB/s in 0.7s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:43 <span class="o">(</span><span class="m">140</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.ttf’ saved <span class="o">[</span>98924/98924<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:43-- https://virgool.io/fonts/vazir/Vazir-Thin.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Thin.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.80K 276KB/s in 0.4s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:44 <span class="o">(</span><span class="m">276</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.eot?’ saved <span class="o">[</span>99120<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:44-- https://virgool.io/fonts/vazir/Vazir-Thin.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">54068</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Thin.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.80K --.-KB/s in 0.07s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:45 <span class="o">(</span><span class="m">770</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.woff’ saved <span class="o">[</span>54068/54068<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:45-- https://virgool.io/fonts/vazir/Vazir-Thin.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">43000</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Thin.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 41.99K --.-KB/s in 0.006s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:46 <span class="o">(</span>6.59 MB/s<span class="o">)</span> - ‘Vazir-Thin.woff2’ saved <span class="o">[</span>43000/43000<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:46-- https://virgool.io/fonts/vazir/Vazir-Light.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">105360</span> <span class="o">(</span>103K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Light.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 102.89K 478KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:46 <span class="o">(</span><span class="m">478</span> KB/s<span class="o">)</span> - ‘Vazir-Light.ttf’ saved <span class="o">[</span>105360/105360<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:46-- https://virgool.io/fonts/vazir/Vazir-Light.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Light.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 103.09K 470KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:47 <span class="o">(</span><span class="m">470</span> KB/s<span class="o">)</span> - ‘Vazir-Light.eot?’ saved <span class="o">[</span>105562<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:47-- https://virgool.io/fonts/vazir/Vazir-Light.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">59688</span> <span class="o">(</span>58K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Light.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 58.29K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:48 <span class="o">(</span><span class="m">758</span> KB/s<span class="o">)</span> - ‘Vazir-Light.woff’ saved <span class="o">[</span>59688/59688<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:48-- https://virgool.io/fonts/vazir/Vazir-Light.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">48168</span> <span class="o">(</span>47K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Light.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 47.04K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:48 <span class="o">(</span><span class="m">570</span> KB/s<span class="o">)</span> - ‘Vazir-Light.woff2’ saved <span class="o">[</span>48168/48168<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:48-- https://virgool.io/fonts/vazir/Vazir-Regular.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">98376</span> <span class="o">(</span>96K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Regular.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.07K 435KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:49 <span class="o">(</span><span class="m">435</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.ttf’ saved <span class="o">[</span>98376/98376<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:49-- https://virgool.io/fonts/vazir/Vazir-Regular.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Regular.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.26K 285KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:50 <span class="o">(</span><span class="m">285</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.eot?’ saved <span class="o">[</span>98574<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:50-- https://virgool.io/fonts/vazir/Vazir-Regular.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">53744</span> <span class="o">(</span>52K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Regular.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.48K --.-KB/s in 0.05s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:51 <span class="o">(</span>1.10 MB/s<span class="o">)</span> - ‘Vazir-Regular.woff’ saved <span class="o">[</span>53744/53744<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:51-- https://virgool.io/fonts/vazir/Vazir-Regular.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">42744</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Regular.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 41.74K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:51 <span class="o">(</span><span class="m">412</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.woff2’ saved <span class="o">[</span>42744/42744<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:51-- https://virgool.io/fonts/vazir/Vazir-Medium.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">98892</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Medium.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.57K 606KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:52 <span class="o">(</span><span class="m">606</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.ttf’ saved <span class="o">[</span>98892/98892<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:52-- https://virgool.io/fonts/vazir/Vazir-Medium.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Medium.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.78K 347KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:53 <span class="o">(</span><span class="m">347</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.eot?’ saved <span class="o">[</span>99100<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:53-- https://virgool.io/fonts/vazir/Vazir-Medium.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">54120</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Medium.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.85K 125KB/s in 0.4s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:54 <span class="o">(</span><span class="m">125</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.woff’ saved <span class="o">[</span>54120/54120<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:54-- https://virgool.io/fonts/vazir/Vazir-Medium.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">43152</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Medium.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.14K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:54 <span class="o">(</span><span class="m">541</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.woff2’ saved <span class="o">[</span>43152/43152<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:54-- https://virgool.io/fonts/vazir/Vazir-Bold.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">99840</span> <span class="o">(</span>98K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Bold.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 97.50K --.-KB/s in 0.04s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:55 <span class="o">(</span>2.61 MB/s<span class="o">)</span> - ‘Vazir-Bold.ttf’ saved <span class="o">[</span>99840/99840<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:55-- https://virgool.io/fonts/vazir/Vazir-Bold.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Bold.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 97.68K 560KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:56 <span class="o">(</span><span class="m">560</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.eot?’ saved <span class="o">[</span>100026<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:56-- https://virgool.io/fonts/vazir/Vazir-Bold.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">54560</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Bold.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 53.28K --.-KB/s in 0.06s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:56 <span class="o">(</span><span class="m">917</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.woff’ saved <span class="o">[</span>54560/54560<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:56-- https://virgool.io/fonts/vazir/Vazir-Bold.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">43604</span> <span class="o">(</span>43K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Bold.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.58K --.-KB/s in 0.06s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:57 <span class="o">(</span><span class="m">657</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.woff2’ saved <span class="o">[</span>43604/43604<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:57-- https://virgool.io/fonts/vazir/Vazir-Black.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">99772</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Black.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 97.43K --.-KB/s in 0.04s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:57 <span class="o">(</span>2.18 MB/s<span class="o">)</span> - ‘Vazir-Black.ttf’ saved <span class="o">[</span>99772/99772<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:57-- https://virgool.io/fonts/vazir/Vazir-Black.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Black.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 97.63K 478KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:58 <span class="o">(</span><span class="m">478</span> KB/s<span class="o">)</span> - ‘Vazir-Black.eot?’ saved <span class="o">[</span>99974<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:58-- https://virgool.io/fonts/vazir/Vazir-Black.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">54652</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Black.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 53.37K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:59 <span class="o">(</span><span class="m">691</span> KB/s<span class="o">)</span> - ‘Vazir-Black.woff’ saved <span class="o">[</span>54652/54652<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:59-- https://virgool.io/fonts/vazir/Vazir-Black.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">43332</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Black.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.32K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:00 <span class="o">(</span><span class="m">510</span> KB/s<span class="o">)</span> - ‘Vazir-Black.woff2’ saved <span class="o">[</span>43332/43332<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:00-- https://virgool.io/fonts/fontawesome/fa-solid-900.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">202616</span> <span class="o">(</span>198K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">fa-solid-900.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 197.87K 501KB/s in 0.4s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:01 <span class="o">(</span><span class="m">501</span> KB/s<span class="o">)</span> - ‘fa-solid-900.ttf’ saved <span class="o">[</span>202616/202616<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:01-- https://virgool.io/fonts/fontawesome/fa-solid-900.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">404</span> Not Found +</span></span><span class="line"><span class="cl">2022-01-18 06:42:01 ERROR 404: Not Found. +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:01-- https://virgool.io/fonts/fontawesome/fa-solid-900.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">103300</span> <span class="o">(</span>101K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">fa-solid-900.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 100.88K 358KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:02 <span class="o">(</span><span class="m">358</span> KB/s<span class="o">)</span> - ‘fa-solid-900.woff’ saved <span class="o">[</span>103300/103300<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:02-- https://virgool.io/fonts/fontawesome/fa-solid-900.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">79444</span> <span class="o">(</span>78K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">fa-solid-900.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 77.58K 394KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:03 <span class="o">(</span><span class="m">394</span> KB/s<span class="o">)</span> - ‘fa-solid-900.woff2’ saved <span class="o">[</span>79444/79444<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:03-- https://virgool.io/images/icons/plus.svg +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>image/svg+xml<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘plus.svg’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">plus.svg <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">942</span> --.-KB/s in 0.002s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:03 <span class="o">(</span><span class="m">383</span> KB/s<span class="o">)</span> - ‘plus.svg’ saved <span class="o">[</span>942<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:03-- https://virgool.io/images/icons/tick.svg +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>image/svg+xml<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘tick.svg’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">tick.svg <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">942</span> --.-KB/s in 0s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:04 <span class="o">(</span>89.8 MB/s<span class="o">)</span> - ‘tick.svg’ saved <span class="o">[</span>942<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:04-- https://virgool.io/images/typewriter.png +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">172558</span> <span class="o">(</span>169K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘typewriter.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">typewriter.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 168.51K 349KB/s in 0.5s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:05 <span class="o">(</span><span class="m">349</span> KB/s<span class="o">)</span> - ‘typewriter.png’ saved <span class="o">[</span>172558/172558<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:05-- https://virgool.test/images/download-audio.png +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:05-- https://virgool.test/images/download-ebook.png +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. +</span></span><span class="line"><span class="cl">FINISHED --2022-01-18 06:42:05-- +</span></span><span class="line"><span class="cl">Total wall clock time: 1m 2s +</span></span><span class="line"><span class="cl">Downloaded: <span class="m">54</span> files, 6.6M in 14s <span class="o">(</span><span class="m">479</span> KB/s<span class="o">)</span> +</span></span><span class="line"><span class="cl">Converting links in ns.html?id<span class="o">=</span>GTM-5GS688K.html... nothing to <span class="k">do</span>. +</span></span><span class="line"><span class="cl">Converting links in c3fVa.html... 38. +</span></span><span class="line"><span class="cl">31-7 +</span></span><span class="line"><span class="cl">Converting links in styles.css?v<span class="o">=</span>v2.6.15.css... 35. +</span></span><span class="line"><span class="cl">34-1 +</span></span><span class="line"><span class="cl">Converted links in <span class="m">3</span> files in 0.06 seconds. +</span></span></code></pre></td></tr></table> +</div> +</div> zsh بهترین پلاگین هایhttps://bit-orbit.github.io/p/zsh-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C/Tue, 11 Jan 2022 02:44:12 +0330https://bit-orbit.github.io/p/zsh-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C/<img src="https://bit-orbit.github.io/images/post/terminal.jpg" alt="Featured image of post zsh بهترین پلاگین های " /><p>نوشتن یک برنامه کار سختی نیست، بلکه نگه‌داری و آپدیت یک برنامه‌ست، پلاگین این ویژگی را می‌دهد تا به راحتی عملکرد یک برنامه را بی‌افزاییم.</p> +<hr> +<div dir='rtl' style='font-size:25px'> +<h3 id="themeshttpsgithubcomohmyzshohmyzshtreemasterpluginsthemes-"><a class="link" href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/themes" target="_blank" rel="noopener" +>themes</a> #Ⅳ +</h3><p>انتخاب بین تم های zsh واقعا کار سختیه!‌ هر تم ظاهر جدیدی به ترمینال شما می‌دهد که -کار کردن در ترمینال را جذاب تر می‌کند.</p> -<p>با استفاده از این پلاگین شما بدون نیاز به تغییر دستی فایل کانفیگ -<code>zshrc.</code>، -می‌توانید تم را تغییر بدین.</p> -<p><img src="https://bit-orbit.github.io/images/post/theme.gif" - - - - loading="lazy" - - alt="theme-plugin" - - -></p> -<blockquote> -<ul> -<li>تغییر به یک تم مشخص</li> -</ul> -<p><code>theme theme_name</code></p> -</blockquote> -<blockquote> -<ul> -<li>تغییر رندم تم</li> -</ul> -<p><code>theme</code></p> -</blockquote> -<blockquote> -<ul> -<li>دیدن لیستی از تم های نصب شده</li> -</ul> -<p><code>lstheme</code></p> -</blockquote> -<hr> -<h3 id="zsh-autosuggestionshttpsgithubcomzsh-userszsh-autosuggestions-"><a class="link" href="https://github.com/zsh-users/zsh-autosuggestions" target="_blank" rel="noopener" - >zsh-autosuggestions</a> #Ⅲ</h3> -<blockquote> -<p><a class="link" href="https://github.com/zsh-users/zsh-autosuggestions" target="_blank" rel="noopener" - >تنها پلاگینی که باید نصب بشه</a></p> -</blockquote> -<p>این یکی از پلاگین هایی است که بدون آن زندگی ممکن نیست!</p> -<p>همانطور که شما دستوری را تایپ می‌کنید، متنی به رنگ خاکستری ظاهر می‌شود که +کار کردن در ترمینال را جذاب تر می‌کند.</p> +<p>با استفاده از این پلاگین شما بدون نیاز به تغییر دستی فایل کانفیگ +<code>zshrc.</code>، +می‌توانید تم را تغییر بدین.</p> +<p><img src="https://bit-orbit.github.io/images/post/theme.gif" +loading="lazy" +alt="theme-plugin" +></p> +<blockquote> +<ul> +<li>تغییر به یک تم مشخص</li> +</ul> +<p><code>theme theme_name</code></p> +</blockquote> +<blockquote> +<ul> +<li>تغییر رندم تم</li> +</ul> +<p><code>theme</code></p> +</blockquote> +<blockquote> +<ul> +<li>دیدن لیستی از تم های نصب شده</li> +</ul> +<p><code>lstheme</code></p> +</blockquote> +<hr> +<h3 id="zsh-autosuggestionshttpsgithubcomzsh-userszsh-autosuggestions-"><a class="link" href="https://github.com/zsh-users/zsh-autosuggestions" target="_blank" rel="noopener" +>zsh-autosuggestions</a> #Ⅲ +</h3><blockquote> +<p><a class="link" href="https://github.com/zsh-users/zsh-autosuggestions" target="_blank" rel="noopener" +>تنها پلاگینی که باید نصب بشه</a></p> +</blockquote> +<p>این یکی از پلاگین هایی است که بدون آن زندگی ممکن نیست!</p> +<p>همانطور که شما دستوری را تایپ می‌کنید، متنی به رنگ خاکستری ظاهر می‌شود که به شما دستورات ممکن را پیشنهاد می‌دهد و یا از history دستور مشابه که قبلا اجرا کرده‌اید را جست و جو می‌کند و پیشنهاد می‌هد. و خب شما را برای تایپ کردن کامل دستور و سوییچ هایش راحت می‌کند. برای اینکه دستور ظاهر شده تایپ شود کافیست کلید -<code>right arrow key</code> +<code>right arrow key</code> یا همان -<code>فلش سمت راست</code> -را فشار دهید.</p> -<p><img src="https://bit-orbit.github.io/images/post/zsh-autosuggestions-gif.gif" - - - - loading="lazy" - - alt="zsh-autosuggestion" - - -></p> -<hr> -<h3 id="sudohttpsgithubcomohmyzshohmyzshtreemasterpluginssudo-"><a class="link" href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/sudo" target="_blank" rel="noopener" - >sudo</a> #Ⅱ</h3> -<p>بار ها اتفاق افتاده دستوری را که نیاز به دسترسی +<code>فلش سمت راست</code> +را فشار دهید.</p> +<p><img src="https://bit-orbit.github.io/images/post/zsh-autosuggestions-gif.gif" +loading="lazy" +alt="zsh-autosuggestion" +></p> +<hr> +<h3 id="sudohttpsgithubcomohmyzshohmyzshtreemasterpluginssudo-"><a class="link" href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/sudo" target="_blank" rel="noopener" +>sudo</a> #Ⅱ +</h3><p>بار ها اتفاق افتاده دستوری را که نیاز به دسترسی root داشته را بدون نوشتن کلمه -<em>sudo</em> +<em>sudo</em> اجرا کرده‌ام، و بعد از دیدن ارور، دستور را دوباره تایپ کردم و کلمه -<em>sudo</em> +<em>sudo</em> را هم به اول دستور اضافه کردم. اما این پلاگین بار تایپ مجدد یک دستور بخاطر فراموش کردن کلمه -<em>sudo</em> +<em>sudo</em> را از دوش ما بر‌ می‌دارد. کافیست بعد از نوشتن و اجرای دستور بدون -<em>sudo</em>، +<em>sudo</em>، دوبار کلید -<code>esc</code> -را بزنید</p> -<p><img src="https://bit-orbit.github.io/images/post/sudo.gif" - - - - loading="lazy" - - alt="zsh-sudo-theme" - - -></p> -<hr> -<h3 id="web-searchhttpsgithubcomohmyzshohmyzshtreemasterpluginsweb-search-"><a class="link" href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/web-search" target="_blank" rel="noopener" - >web-search</a> #Ⅰ</h3> -<p>وقتی با لینوکس کار می‌‌کنید، تمام لحظه ها در ترمینال هستنید. +<code>esc</code> +را بزنید</p> +<p><img src="https://bit-orbit.github.io/images/post/sudo.gif" +loading="lazy" +alt="zsh-sudo-theme" +></p> +<hr> +<h3 id="web-searchhttpsgithubcomohmyzshohmyzshtreemasterpluginsweb-search-"><a class="link" href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/web-search" target="_blank" rel="noopener" +>web-search</a> #Ⅰ +</h3><p>وقتی با لینوکس کار می‌‌کنید، تمام لحظه ها در ترمینال هستنید. فرض کنید سوالی دارید که باید آن را گوگل کنید،‌ شما مجبور می‌شوید مرورگر را باز کنید، یک تب جدید ایجاد کنید و متنتان را سرچ کنید. ولی به این فکر کنید که نیازی به باز کردن مرورگر و یا سوییچ کردن بین ویندوز ها ندارید، @@ -1460,78 +1420,67 @@ root google را در ترمینال تایپ کنید و متن خود را جلو آن بنوسید و در آخر دکمه اینتر را بزنید! -بنگ! گوگل باز می‌شود و حاصل جست و جوی شما آماده است.</p> -<p><img src="https://bit-orbit.github.io/images/post/web-search.gif" - - - - loading="lazy" - - alt="web-search" - - -></p> -</div> -<table> - <thead> - <tr> - <th style="text-align: center">دستور\موتور جست و جو</th> - </tr> - </thead> - <tbody> - <tr> - <td style="text-align: center"><code>bing</code></td> - </tr> - <tr> - <td style="text-align: center"><code>google</code></td> - </tr> - <tr> - <td style="text-align: center"><code>yahoo</code></td> - </tr> - <tr> - <td style="text-align: center"><code>ddg</code> or <code>duckduckgo</code></td> - </tr> - <tr> - <td style="text-align: center"><code>sp</code> or <code>startpage</code></td> - </tr> - <tr> - <td style="text-align: center"><code>yandex</code></td> - </tr> - <tr> - <td style="text-align: center"><code>github</code></td> - </tr> - <tr> - <td style="text-align: center"><code>baidu</code></td> - </tr> - <tr> - <td style="text-align: center"><code>ecosia</code></td> - </tr> - <tr> - <td style="text-align: center"><code>goodreads</code></td> - </tr> - <tr> - <td style="text-align: center"><code>qwant</code></td> - </tr> - <tr> - <td style="text-align: center"><code>givero</code></td> - </tr> - <tr> - <td style="text-align: center"><code>stackoverflow</code></td> - </tr> - <tr> - <td style="text-align: center"><code>wolframalpha</code></td> - </tr> - <tr> - <td style="text-align: center"><code>archive</code></td> - </tr> - <tr> - <td style="text-align: center"><code>scholar</code></td> - </tr> - </tbody> -</table> -<hr> - - - - - +بنگ! گوگل باز می‌شود و حاصل جست و جوی شما آماده است.</p> +<p><img src="https://bit-orbit.github.io/images/post/web-search.gif" +loading="lazy" +alt="web-search" +></p> +</div> +<table> +<thead> +<tr> +<th style="text-align: center">دستور\موتور جست و جو</th> +</tr> +</thead> +<tbody> +<tr> +<td style="text-align: center"><code>bing</code></td> +</tr> +<tr> +<td style="text-align: center"><code>google</code></td> +</tr> +<tr> +<td style="text-align: center"><code>yahoo</code></td> +</tr> +<tr> +<td style="text-align: center"><code>ddg</code> or <code>duckduckgo</code></td> +</tr> +<tr> +<td style="text-align: center"><code>sp</code> or <code>startpage</code></td> +</tr> +<tr> +<td style="text-align: center"><code>yandex</code></td> +</tr> +<tr> +<td style="text-align: center"><code>github</code></td> +</tr> +<tr> +<td style="text-align: center"><code>baidu</code></td> +</tr> +<tr> +<td style="text-align: center"><code>ecosia</code></td> +</tr> +<tr> +<td style="text-align: center"><code>goodreads</code></td> +</tr> +<tr> +<td style="text-align: center"><code>qwant</code></td> +</tr> +<tr> +<td style="text-align: center"><code>givero</code></td> +</tr> +<tr> +<td style="text-align: center"><code>stackoverflow</code></td> +</tr> +<tr> +<td style="text-align: center"><code>wolframalpha</code></td> +</tr> +<tr> +<td style="text-align: center"><code>archive</code></td> +</tr> +<tr> +<td style="text-align: center"><code>scholar</code></td> +</tr> +</tbody> +</table> +<hr> \ No newline at end of file diff --git a/docs/tags/tech/page/1/index.html b/docs/tags/tech/page/1/index.html index af46cb8..0e8c04f 100644 --- a/docs/tags/tech/page/1/index.html +++ b/docs/tags/tech/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/tech/ - - - - - - +https://bit-orbit.github.io/tags/tech/ + \ No newline at end of file diff --git a/docs/tags/terminal/index.html b/docs/tags/terminal/index.html index 1d0be28..9a088c1 100644 --- a/docs/tags/terminal/index.html +++ b/docs/tags/terminal/index.html @@ -1,576 +1,37 @@ - - - - -Tag: Terminal - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

2 صفحه

-

Terminal

- -
-
-
- -
- - - - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: Terminal - bit-orbit + \ No newline at end of file diff --git a/docs/tags/terminal/index.xml b/docs/tags/terminal/index.xml index 7ca5730..3897b5d 100644 --- a/docs/tags/terminal/index.xml +++ b/docs/tags/terminal/index.xml @@ -1,50 +1,36 @@ - - - - Terminal on bit-orbit - https://bit-orbit.github.io/tags/terminal/ - Recent content in Terminal on bit-orbit - Hugo -- gohugo.io - fa - Mon, 31 Jan 2022 19:57:05 +0330 - در لینوکس چیست؟ TTY - https://bit-orbit.github.io/p/%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA-tty/ - Mon, 31 Jan 2022 19:57:05 +0330 - - https://bit-orbit.github.io/p/%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA-tty/ - <img src="https://bit-orbit.github.io/images/post/tty.jpg" alt="Featured image of post در لینوکس چیست؟ TTY " /><div dir='rtl' style='font-size:x-large'> -<p>شما باید درباره اصطلاح +Terminal on bit-orbithttps://bit-orbit.github.io/tags/terminal/Recent content in Terminal on bit-orbitHugo -- gohugo.iofaMon, 31 Jan 2022 19:57:05 +0330 در لینوکس چیست؟ TTYhttps://bit-orbit.github.io/p/%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA-tty/Mon, 31 Jan 2022 19:57:05 +0330https://bit-orbit.github.io/p/%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA-tty/<img src="https://bit-orbit.github.io/images/post/tty.jpg" alt="Featured image of post در لینوکس چیست؟ TTY " /><div dir='rtl' style='font-size:x-large'> +<p>شما باید درباره اصطلاح tty زمانی که به لینوکس و یونیکس آمد، شنیده باشید. اما tty -چیست؟</p> -<p>آیا برای شما به عنوان یک کاربر دستکتاپ مفید است؟</p> -<p>به آن نیاز دارید؟ می‌توانید با آن چه کار کنید؟</p> -<p>اجازه دهید هر چیز ضروری برای آشنا کردن شما با اصطلاح +چیست؟</p> +<p>آیا برای شما به عنوان یک کاربر دستکتاپ مفید است؟</p> +<p>به آن نیاز دارید؟ می‌توانید با آن چه کار کنید؟</p> +<p>اجازه دهید هر چیز ضروری برای آشنا کردن شما با اصطلاح tty -را در این پست برسی کنیم.</p> -<p>به یاد داشته باشید که پاسخ قطعی برای این سوال وجود ندارد، +را در این پست برسی کنیم.</p> +<p>به یاد داشته باشید که پاسخ قطعی برای این سوال وجود ندارد، اما به نحوه تعامل دستگاه های input/output(ورودی/خروجی) -در گذشته ربط دارد.</p> -<p>برای اینکه تصویری شفاف از آن داشته باشید باید کمی از تاریخ‌ش را بدانید.</p> -<h3 id="تاریخ-پشت-اصطلاح-tty">تاریخ پشت اصطلاح tty</h3> -<p>همه چیز از یک -<em>teleprinter</em> -در سال 1830 شروع شد.</p> -<p>teleprinter +در گذشته ربط دارد.</p> +<p>برای اینکه تصویری شفاف از آن داشته باشید باید کمی از تاریخ‌ش را بدانید.</p> +<h3 id="تاریخ-پشت-اصطلاح-tty">تاریخ پشت اصطلاح tty +</h3><p>همه چیز از یک +<em>teleprinter</em> +در سال 1830 شروع شد.</p> +<p>teleprinter به شما اجازه می‌داد که از طریق سیم پیام ارسال و دریافت کنید. teleprinter جایگزینی برای ارطبات مورس کد بود در آن دو اپراتور برای ارطبات با یکدیگر مود نیاز بود. اما در teleprinter -فقط به یک اپراتور برای ارسال پیام نیاز داشت. درحالی که +فقط به یک اپراتور برای ارسال پیام نیاز داشت. درحالی که teleprinter یک صفحه کلید مدرن نداشت، بعد ها سیستم آن توسط Donald Murray به یک صفحه کلید -<em>teletypewriter</em> -تکامل یافت.</p> -<p>Murray +<em>teletypewriter</em> +تکامل یافت.</p> +<p>Murray زحمت اپراتور ها را برای ارسال و پیام را کاهش داد و این امکان را برای teletypeprinter @@ -54,16 +40,11 @@ teletypewriter tty نام کوتاه شده teletypewrite -است.</p> -<p><img src="https://bit-orbit.github.io/images/post/teletypewrite.jpg" - - - - loading="lazy" - - -></p> -<p>تفاوت بین +است.</p> +<p><img src="https://bit-orbit.github.io/images/post/teletypewrite.jpg" +loading="lazy" +></p> +<p>تفاوت بین teletypewrite و typewriter @@ -74,89 +55,77 @@ teletypewriter ارطبات سریع تری را تا اکنون برای انسال بدون استفاده از کامپیوتر مقدور کرده است. و اینجا جایی است که tty -بوجود آمد.</p> -<h3 id="مفهوم-مدرن">مفهوم مدرن</h3> -<p>اکنون شما باید متعجب شده باشید که چطور +بوجود آمد.</p> +<h3 id="مفهوم-مدرن">مفهوم مدرن +</h3><p>اکنون شما باید متعجب شده باشید که چطور tty -به لینوکس و کامپیوتر مدرن آمده است.</p> -<p>بسیار خب، برای شروع، زمانی که +به لینوکس و کامپیوتر مدرن آمده است.</p> +<p>بسیار خب، برای شروع، زمانی که teletypewriter به بازار رسید، چند سال بعد ترانزیستور های نیمه هادی(نیمه رسانا) توسعه داده شد که به میکروپروسسور(micro proccessor) -هایی تبدیل شدند که کامپیوتر را ممکن می‌کرند.</p> -<p>کامپیوتر های اولیه مفهومی به اسم صفحه کلید نداشتند. -<a class="link" href="https://en.wikipedia.org/wiki/Punched_card" target="_blank" rel="noopener" - >کارت های پانج</a> -روش ورودی دادن به کامپیوتر ها بود</p> -<p><img src="https://bit-orbit.github.io/images/post/punch-card.jpg" - - - - loading="lazy" - - alt="card-punch" - - -></p> -<p>درحالی که کامپیوتر ها توسعه پیدا می‌کردند، بالاخره کارت های پانچ با +هایی تبدیل شدند که کامپیوتر را ممکن می‌کرند.</p> +<p>کامپیوتر های اولیه مفهومی به اسم صفحه کلید نداشتند. +<a class="link" href="https://en.wikipedia.org/wiki/Punched_card" target="_blank" rel="noopener" +>کارت های پانج</a> +روش ورودی دادن به کامپیوتر ها بود</p> +<p><img src="https://bit-orbit.github.io/images/post/punch-card.jpg" +loading="lazy" +alt="card-punch" +></p> +<p>درحالی که کامپیوتر ها توسعه پیدا می‌کردند، بالاخره کارت های پانچ با teletypewriter -به عنوان دستگاه <em><strong><u>ورودی/خروجی</u></strong></em> مناسب جایگزین شد.    </p> -<p><img src="https://bit-orbit.github.io/images/post/pc-tty.jpg" - - - - loading="lazy" - - alt="LGP-30 computer in 1956 with a TTY attached to it" - - -></p> -<p>با توسعه تکنولوژی +به عنوان دستگاه <em><strong><u>ورودی/خروجی</u></strong></em> مناسب جایگزین شد.    </p> +<p><img src="https://bit-orbit.github.io/images/post/pc-tty.jpg" +loading="lazy" +alt="LGP-30 computer in 1956 with a TTY attached to it" +></p> +<p>با توسعه تکنولوژی teletypewriter ها با استفاده از الکترونیک مجازی شدند. پس شما به یک tty فیزیکی، مکانیکی نیاز پیدا نمی‌کنید، بلکه به یک tty -مجازی، الکترونیکی نیاز دارید.</p> -<p>اوایل کامپیوتر ها صفحه نمایش هم نداشتند. چیز ها بجای نمایش داده شدن بروی صفحه نمایش +مجازی، الکترونیکی نیاز دارید.</p> +<p>اوایل کامپیوتر ها صفحه نمایش هم نداشتند. چیز ها بجای نمایش داده شدن بروی صفحه نمایش (که وجود نداشت) به روی کاغذ چاپ می‌شدند. به همین دلیل شما بجای دیدن اصطلاح -<code>display</code> +<code>display</code> اصطلاح -<code>print</code> +<code>print</code> را می‌بینید. ویدیو ها به عنوان تکنولوژی پیشرفته به ترمینال(پایانه) ها اضافه شد. به عبارت دیگر شما باید درباره ترمینال های ویدیویی شنیده باشید. یا شما می‌توانید -آن ها را ترمینال های فیزیکی بنامید.</p> -<p>سپس اینها به ترمینال های نرم افزاری شبیه سازی شده تکامل پیدا کردند که با قابلیت ها و +آن ها را ترمینال های فیزیکی بنامید.</p> +<p>سپس اینها به ترمینال های نرم افزاری شبیه سازی شده تکامل پیدا کردند که با قابلیت ها و ویژگی های تسوسعه یافته‌ای همرا بود. این چیزی است که شما آن را terminal emulator -می‌نامید.</p> -<p>برای نمونه ترمینال -<a class="link" href="https://en.wikipedia.org/wiki/GNOME_Terminal" target="_blank" rel="noopener" - >گنوم -(Gnome)</a> +می‌نامید.</p> +<p>برای نمونه ترمینال +<a class="link" href="https://en.wikipedia.org/wiki/GNOME_Terminal" target="_blank" rel="noopener" +>گنوم +(Gnome)</a> یا -<a class="link" href="https://konsole.kde.org/" target="_blank" rel="noopener" - >کنسول -(Konsole)</a> -<a class="link" href="https://itsfoss.com/linux-terminal-emulators/" target="_blank" rel="noopener" - >چنتا از بهترین ترمینال هایی هستند که می‌توانید برای لینوکس پیدا کنید.</a></p> -<h3 id="بسیارخب-tty-در-لینوکس-چیست">بسیارخب tty در لینوکس چیست؟</h3> -<p>زمانی که +<a class="link" href="https://konsole.kde.org/" target="_blank" rel="noopener" +>کنسول +(Konsole)</a> +<a class="link" href="https://itsfoss.com/linux-terminal-emulators/" target="_blank" rel="noopener" +>چنتا از بهترین ترمینال هایی هستند که می‌توانید برای لینوکس پیدا کنید.</a></p> +<h3 id="بسیارخب-tty-در-لینوکس-چیست">بسیارخب tty در لینوکس چیست؟ +</h3><p>زمانی که tty به لینوکس و یونیکس آمد، یک دستگاه مستقل در یونیکس و لینوکس بود گاهی tty به یک دستگاه ورودی فیزیکی مانند serial port(درگاه سریال) اشاره می‌کرد، و گاهی به ترمینال های مجازی اشاره می‌کرد که به کاربران اجازه تعامل با -سیستم را می‌داد.</p> -<p>tty +سیستم را می‌داد.</p> +<p>tty یک زیر سیستم در لینوکس و یونیکس است که مدریت فرایند، ویرایش خط و مدیریت نشست ها را در سطح کرنل از طریق درایور های tty -ممکن می‌کند.</p> -<p>از دیدگاه برنامه نویسی شما باید در این موضوع عمیق تر شوید. اما محدوده این +ممکن می‌کند.</p> +<p>از دیدگاه برنامه نویسی شما باید در این موضوع عمیق تر شوید. اما محدوده این پست را در نظر بگیرید، این مقاله باید یک توضیح ساده برای درک بهتر باشد. در حقیقت، هر گاه یک ترمینال را باز می‌کنیم یا هر نوع shell @@ -165,221 +134,177 @@ shell با tty مجازی که -<em>PTY</em> +<em>PTY</em> یا -<em>pseudo-tty</em> -هم شناخته می‌شوند، تعامل خواهد داشت.</p> -<p>شما می‌توانید +<em>pseudo-tty</em> +هم شناخته می‌شوند، تعامل خواهد داشت.</p> +<p>شما می‌توانید tty را در ترمینال تایپ کنید و pty -مرتبط را پیدا کنید.</p> -<h3 id="چگونه-به-tty-در-لینوکس-دسترسی-داشته-باشیم">چگونه به tty در لینوکس دسترسی داشته باشیم؟</h3> -<p><img src="https://bit-orbit.github.io/images/post/ubuntu-tty.png" - - - - loading="lazy" - - alt="tty-in-ubuntu" - - -></p> -<p>دسترسی به +مرتبط را پیدا کنید.</p> +<h3 id="چگونه-به-tty-در-لینوکس-دسترسی-داشته-باشیم">چگونه به tty در لینوکس دسترسی داشته باشیم؟ +</h3><p><img src="https://bit-orbit.github.io/images/post/ubuntu-tty.png" +loading="lazy" +alt="tty-in-ubuntu" +></p> +<p>دسترسی به tty در لینوکس ساده است. در حقیت زمانی که هیچ سرنخی از اینکه tty چیست نداشتم، به طور اتفاقی به آن دسترسی پیدا کردم و از اینکه چطوری باید -از آن خارج شوم وحشت زده شدم!</p> -<p>شما می‌توانید با کلید های میانبر زیر در اکثر توزیع های لینوکس به صفحه +از آن خارج شوم وحشت زده شدم!</p> +<p>شما می‌توانید با کلید های میانبر زیر در اکثر توزیع های لینوکس به صفحه tty -دسترسی پیدا کنید.</p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F1</code> – <strong>Lockscreen</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F2</code> – <strong>Desktop Environment</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F3</code> – <strong>TTY3</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F4</code> – <strong>TTY4</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F5</code> – <strong>TT5</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F6</code> – <strong>TTY6</strong></p> -<p>شما می‌توانید حد اکثر به -<u>6</u> +دسترسی پیدا کنید.</p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F1</code> – <strong>Lockscreen</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F2</code> – <strong>Desktop Environment</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F3</code> – <strong>TTY3</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F4</code> – <strong>TTY4</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F5</code> – <strong>TT5</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F6</code> – <strong>TTY6</strong></p> +<p>شما می‌توانید حد اکثر به +<u>6</u> tty دسترسی داشته باشید، با این حال دو تا از اولین کلید های میانبر به صفحه قفل -و محیط دسکتاپ اشاره دارد.</p> -<p><img src="https://bit-orbit.github.io/images/post/ubuntu-tty4.png" - - - - loading="lazy" - - alt="cmd-with-tty" - - -></p> -<p>بنابر این، با باقی کلید های میانبر شما به محیط +و محیط دسکتاپ اشاره دارد.</p> +<p><img src="https://bit-orbit.github.io/images/post/ubuntu-tty4.png" +loading="lazy" +alt="cmd-with-tty" +></p> +<p>بنابر این، با باقی کلید های میانبر شما به محیط command-line -دسترسی می‌گیرید.</p> -<h3 id="چه-زمانی-شما-از-tty-در-لینوکس-استفاده-خواهید-کرد">چه زمانی شما از tty در لینوکس استفاده خواهید کرد؟</h3> -<p>tty -فقط یک گنج تکنیکی نیست. حتی برای کاربرانی مثل من که توسعه دهنده هم نیستند مفید است.</p> -<p>زمانی که محیط گرافیکی فریز می‌شود باید به کار بیاید. در بعضی از مواقع +دسترسی می‌گیرید.</p> +<h3 id="چه-زمانی-شما-از-tty-در-لینوکس-استفاده-خواهید-کرد">چه زمانی شما از tty در لینوکس استفاده خواهید کرد؟ +</h3><p>tty +فقط یک گنج تکنیکی نیست. حتی برای کاربرانی مثل من که توسعه دهنده هم نیستند مفید است.</p> +<p>زمانی که محیط گرافیکی فریز می‌شود باید به کار بیاید. در بعضی از مواقع نصب مجدد محیط گرافیکی با استفاده از tty -می‌تواند مشکل را حل کند.</p> -<p>یا شما می‌توانید +می‌تواند مشکل را حل کند.</p> +<p>یا شما می‌توانید tty را برای انجام کار هایی مثل آپدیت انتخاب کنید جایی که شما نمی‌خواهید مشکلات بصری فرایند -های شما را مختل کند.</p> -<p>بد ترین مورد سناریو، شما می‌تواند زمانی که محیط دستکتاپ جواب نمی‌دهد، برای ریبوت +های شما را مختل کند.</p> +<p>بد ترین مورد سناریو، شما می‌تواند زمانی که محیط دستکتاپ جواب نمی‌دهد، برای ریبوت به tty -مراجعه کنید.</p> -<p>بعضی از کاربران ترجیح می‌دهند که فایل های بزرگ را با +مراجعه کنید.</p> +<p>بعضی از کاربران ترجیح می‌دهند که فایل های بزرگ را با tty -منتقل کنند(من از آنها نیستم)</p> -<h3 id="tty-به-عنوان-یک-دستور-در-لینوکس">tty به عنوان یک دستور در لینوکس</h3> -<p><img src="https://bit-orbit.github.io/images/post/tty-cmd.png" - - - - loading="lazy" - - alt="tty-cmd" - - -></p> -<p>همانطور که در صفحه راهنمای +منتقل کنند(من از آنها نیستم)</p> +<h3 id="tty-به-عنوان-یک-دستور-در-لینوکس">tty به عنوان یک دستور در لینوکس +</h3><p><img src="https://bit-orbit.github.io/images/post/tty-cmd.png" +loading="lazy" +alt="tty-cmd" +></p> +<p>همانطور که در صفحه راهنمای (man page) tty توضیح داده شده است، زمانی که شما tty -را در ترمینال تایپ کنید، نام فایل ترمینال که به وردی استاندارد متصل است را چاپ می‌کند.</p> -<p>به عبارت دیگر برای دانستن عدد +را در ترمینال تایپ کنید، نام فایل ترمینال که به وردی استاندارد متصل است را چاپ می‌کند.</p> +<p>به عبارت دیگر برای دانستن عدد tty که به آن متصل هستید، فقط tty را در ترمینال تایپ کنید. اگر چند کاربر از راه دور به سیستم لینوکس متصل هستند، می‌توانید برای برسی اینکه به چه متصل هستند از کامند -<code>who</code> -استفاده کنید.</p> -<h3 id="خارج-از-ترجمه">خارج از ترجمه</h3> -<p>متن ترجمه شده بود و خب من یک مترجم تخصصی نیستم، من یک برنامه نویسم که بلاگ نویسی +<code>who</code> +استفاده کنید.</p> +<h3 id="خارج-از-ترجمه">خارج از ترجمه +</h3><p>متن ترجمه شده بود و خب من یک مترجم تخصصی نیستم، من یک برنامه نویسم که بلاگ نویسی و ترجمه رو هم دوست دارم، سعی کردم به بهترین نحو متن را ترجمه کنم و در اختیار بقیه بذارم، اگر حس کردین جایی از متن مشکلی داره، خیلی خوشحال می‌شوم -که مشکلم رو بهم بیگید، این کمک بزرگیه.</p> -<p>متن اصلی رو می‌توانید از -<a class="link" href="https://itsfoss.com/what-is-tty-in-linux/" target="_blank" rel="noopener" - >این لینک</a> -بخوانید.</p> -</div> - - - zsh بهترین پلاگین های - https://bit-orbit.github.io/p/zsh-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C/ - Tue, 11 Jan 2022 02:44:12 +0330 - - https://bit-orbit.github.io/p/zsh-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C/ - <img src="https://bit-orbit.github.io/images/post/terminal.jpg" alt="Featured image of post zsh بهترین پلاگین های " /><p>نوشتن یک برنامه کار سختی نیست، بلکه نگه‌داری و آپدیت یک برنامه‌ست، پلاگین این ویژگی را می‌دهد تا به راحتی عملکرد یک برنامه را بی‌افزاییم.</p> -<hr> -<div dir='rtl' style='font-size:25px'> -<h3 id="themeshttpsgithubcomohmyzshohmyzshtreemasterpluginsthemes-"><a class="link" href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/themes" target="_blank" rel="noopener" - >themes</a> #Ⅳ</h3> -<p>انتخاب +که مشکلم رو بهم بیگید، این کمک بزرگیه.</p> +<p>متن اصلی رو می‌توانید از +<a class="link" href="https://itsfoss.com/what-is-tty-in-linux/" target="_blank" rel="noopener" +>این لینک</a> +بخوانید.</p> +</div> zsh بهترین پلاگین هایhttps://bit-orbit.github.io/p/zsh-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C/Tue, 11 Jan 2022 02:44:12 +0330https://bit-orbit.github.io/p/zsh-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C/<img src="https://bit-orbit.github.io/images/post/terminal.jpg" alt="Featured image of post zsh بهترین پلاگین های " /><p>نوشتن یک برنامه کار سختی نیست، بلکه نگه‌داری و آپدیت یک برنامه‌ست، پلاگین این ویژگی را می‌دهد تا به راحتی عملکرد یک برنامه را بی‌افزاییم.</p> +<hr> +<div dir='rtl' style='font-size:25px'> +<h3 id="themeshttpsgithubcomohmyzshohmyzshtreemasterpluginsthemes-"><a class="link" href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/themes" target="_blank" rel="noopener" +>themes</a> #Ⅳ +</h3><p>انتخاب بین تم های zsh واقعا کار سختیه!‌ هر تم ظاهر جدیدی به ترمینال شما می‌دهد که -کار کردن در ترمینال را جذاب تر می‌کند.</p> -<p>با استفاده از این پلاگین شما بدون نیاز به تغییر دستی فایل کانفیگ -<code>zshrc.</code>، -می‌توانید تم را تغییر بدین.</p> -<p><img src="https://bit-orbit.github.io/images/post/theme.gif" - - - - loading="lazy" - - alt="theme-plugin" - - -></p> -<blockquote> -<ul> -<li>تغییر به یک تم مشخص</li> -</ul> -<p><code>theme theme_name</code></p> -</blockquote> -<blockquote> -<ul> -<li>تغییر رندم تم</li> -</ul> -<p><code>theme</code></p> -</blockquote> -<blockquote> -<ul> -<li>دیدن لیستی از تم های نصب شده</li> -</ul> -<p><code>lstheme</code></p> -</blockquote> -<hr> -<h3 id="zsh-autosuggestionshttpsgithubcomzsh-userszsh-autosuggestions-"><a class="link" href="https://github.com/zsh-users/zsh-autosuggestions" target="_blank" rel="noopener" - >zsh-autosuggestions</a> #Ⅲ</h3> -<blockquote> -<p><a class="link" href="https://github.com/zsh-users/zsh-autosuggestions" target="_blank" rel="noopener" - >تنها پلاگینی که باید نصب بشه</a></p> -</blockquote> -<p>این یکی از پلاگین هایی است که بدون آن زندگی ممکن نیست!</p> -<p>همانطور که شما دستوری را تایپ می‌کنید، متنی به رنگ خاکستری ظاهر می‌شود که +کار کردن در ترمینال را جذاب تر می‌کند.</p> +<p>با استفاده از این پلاگین شما بدون نیاز به تغییر دستی فایل کانفیگ +<code>zshrc.</code>، +می‌توانید تم را تغییر بدین.</p> +<p><img src="https://bit-orbit.github.io/images/post/theme.gif" +loading="lazy" +alt="theme-plugin" +></p> +<blockquote> +<ul> +<li>تغییر به یک تم مشخص</li> +</ul> +<p><code>theme theme_name</code></p> +</blockquote> +<blockquote> +<ul> +<li>تغییر رندم تم</li> +</ul> +<p><code>theme</code></p> +</blockquote> +<blockquote> +<ul> +<li>دیدن لیستی از تم های نصب شده</li> +</ul> +<p><code>lstheme</code></p> +</blockquote> +<hr> +<h3 id="zsh-autosuggestionshttpsgithubcomzsh-userszsh-autosuggestions-"><a class="link" href="https://github.com/zsh-users/zsh-autosuggestions" target="_blank" rel="noopener" +>zsh-autosuggestions</a> #Ⅲ +</h3><blockquote> +<p><a class="link" href="https://github.com/zsh-users/zsh-autosuggestions" target="_blank" rel="noopener" +>تنها پلاگینی که باید نصب بشه</a></p> +</blockquote> +<p>این یکی از پلاگین هایی است که بدون آن زندگی ممکن نیست!</p> +<p>همانطور که شما دستوری را تایپ می‌کنید، متنی به رنگ خاکستری ظاهر می‌شود که به شما دستورات ممکن را پیشنهاد می‌دهد و یا از history دستور مشابه که قبلا اجرا کرده‌اید را جست و جو می‌کند و پیشنهاد می‌هد. و خب شما را برای تایپ کردن کامل دستور و سوییچ هایش راحت می‌کند. برای اینکه دستور ظاهر شده تایپ شود کافیست کلید -<code>right arrow key</code> +<code>right arrow key</code> یا همان -<code>فلش سمت راست</code> -را فشار دهید.</p> -<p><img src="https://bit-orbit.github.io/images/post/zsh-autosuggestions-gif.gif" - - - - loading="lazy" - - alt="zsh-autosuggestion" - - -></p> -<hr> -<h3 id="sudohttpsgithubcomohmyzshohmyzshtreemasterpluginssudo-"><a class="link" href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/sudo" target="_blank" rel="noopener" - >sudo</a> #Ⅱ</h3> -<p>بار ها اتفاق افتاده دستوری را که نیاز به دسترسی +<code>فلش سمت راست</code> +را فشار دهید.</p> +<p><img src="https://bit-orbit.github.io/images/post/zsh-autosuggestions-gif.gif" +loading="lazy" +alt="zsh-autosuggestion" +></p> +<hr> +<h3 id="sudohttpsgithubcomohmyzshohmyzshtreemasterpluginssudo-"><a class="link" href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/sudo" target="_blank" rel="noopener" +>sudo</a> #Ⅱ +</h3><p>بار ها اتفاق افتاده دستوری را که نیاز به دسترسی root داشته را بدون نوشتن کلمه -<em>sudo</em> +<em>sudo</em> اجرا کرده‌ام، و بعد از دیدن ارور، دستور را دوباره تایپ کردم و کلمه -<em>sudo</em> +<em>sudo</em> را هم به اول دستور اضافه کردم. اما این پلاگین بار تایپ مجدد یک دستور بخاطر فراموش کردن کلمه -<em>sudo</em> +<em>sudo</em> را از دوش ما بر‌ می‌دارد. کافیست بعد از نوشتن و اجرای دستور بدون -<em>sudo</em>، +<em>sudo</em>، دوبار کلید -<code>esc</code> -را بزنید</p> -<p><img src="https://bit-orbit.github.io/images/post/sudo.gif" - - - - loading="lazy" - - alt="zsh-sudo-theme" - - -></p> -<hr> -<h3 id="web-searchhttpsgithubcomohmyzshohmyzshtreemasterpluginsweb-search-"><a class="link" href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/web-search" target="_blank" rel="noopener" - >web-search</a> #Ⅰ</h3> -<p>وقتی با لینوکس کار می‌‌کنید، تمام لحظه ها در ترمینال هستنید. +<code>esc</code> +را بزنید</p> +<p><img src="https://bit-orbit.github.io/images/post/sudo.gif" +loading="lazy" +alt="zsh-sudo-theme" +></p> +<hr> +<h3 id="web-searchhttpsgithubcomohmyzshohmyzshtreemasterpluginsweb-search-"><a class="link" href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/web-search" target="_blank" rel="noopener" +>web-search</a> #Ⅰ +</h3><p>وقتی با لینوکس کار می‌‌کنید، تمام لحظه ها در ترمینال هستنید. فرض کنید سوالی دارید که باید آن را گوگل کنید،‌ شما مجبور می‌شوید مرورگر را باز کنید، یک تب جدید ایجاد کنید و متنتان را سرچ کنید. ولی به این فکر کنید که نیازی به باز کردن مرورگر و یا سوییچ کردن بین ویندوز ها ندارید، @@ -387,78 +312,67 @@ root google را در ترمینال تایپ کنید و متن خود را جلو آن بنوسید و در آخر دکمه اینتر را بزنید! -بنگ! گوگل باز می‌شود و حاصل جست و جوی شما آماده است.</p> -<p><img src="https://bit-orbit.github.io/images/post/web-search.gif" - - - - loading="lazy" - - alt="web-search" - - -></p> -</div> -<table> - <thead> - <tr> - <th style="text-align: center">دستور\موتور جست و جو</th> - </tr> - </thead> - <tbody> - <tr> - <td style="text-align: center"><code>bing</code></td> - </tr> - <tr> - <td style="text-align: center"><code>google</code></td> - </tr> - <tr> - <td style="text-align: center"><code>yahoo</code></td> - </tr> - <tr> - <td style="text-align: center"><code>ddg</code> or <code>duckduckgo</code></td> - </tr> - <tr> - <td style="text-align: center"><code>sp</code> or <code>startpage</code></td> - </tr> - <tr> - <td style="text-align: center"><code>yandex</code></td> - </tr> - <tr> - <td style="text-align: center"><code>github</code></td> - </tr> - <tr> - <td style="text-align: center"><code>baidu</code></td> - </tr> - <tr> - <td style="text-align: center"><code>ecosia</code></td> - </tr> - <tr> - <td style="text-align: center"><code>goodreads</code></td> - </tr> - <tr> - <td style="text-align: center"><code>qwant</code></td> - </tr> - <tr> - <td style="text-align: center"><code>givero</code></td> - </tr> - <tr> - <td style="text-align: center"><code>stackoverflow</code></td> - </tr> - <tr> - <td style="text-align: center"><code>wolframalpha</code></td> - </tr> - <tr> - <td style="text-align: center"><code>archive</code></td> - </tr> - <tr> - <td style="text-align: center"><code>scholar</code></td> - </tr> - </tbody> -</table> -<hr> - - - - - +بنگ! گوگل باز می‌شود و حاصل جست و جوی شما آماده است.</p> +<p><img src="https://bit-orbit.github.io/images/post/web-search.gif" +loading="lazy" +alt="web-search" +></p> +</div> +<table> +<thead> +<tr> +<th style="text-align: center">دستور\موتور جست و جو</th> +</tr> +</thead> +<tbody> +<tr> +<td style="text-align: center"><code>bing</code></td> +</tr> +<tr> +<td style="text-align: center"><code>google</code></td> +</tr> +<tr> +<td style="text-align: center"><code>yahoo</code></td> +</tr> +<tr> +<td style="text-align: center"><code>ddg</code> or <code>duckduckgo</code></td> +</tr> +<tr> +<td style="text-align: center"><code>sp</code> or <code>startpage</code></td> +</tr> +<tr> +<td style="text-align: center"><code>yandex</code></td> +</tr> +<tr> +<td style="text-align: center"><code>github</code></td> +</tr> +<tr> +<td style="text-align: center"><code>baidu</code></td> +</tr> +<tr> +<td style="text-align: center"><code>ecosia</code></td> +</tr> +<tr> +<td style="text-align: center"><code>goodreads</code></td> +</tr> +<tr> +<td style="text-align: center"><code>qwant</code></td> +</tr> +<tr> +<td style="text-align: center"><code>givero</code></td> +</tr> +<tr> +<td style="text-align: center"><code>stackoverflow</code></td> +</tr> +<tr> +<td style="text-align: center"><code>wolframalpha</code></td> +</tr> +<tr> +<td style="text-align: center"><code>archive</code></td> +</tr> +<tr> +<td style="text-align: center"><code>scholar</code></td> +</tr> +</tbody> +</table> +<hr> \ No newline at end of file diff --git a/docs/tags/terminal/page/1/index.html b/docs/tags/terminal/page/1/index.html index 3e3ede4..09e11e7 100644 --- a/docs/tags/terminal/page/1/index.html +++ b/docs/tags/terminal/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/terminal/ - - - - - - +https://bit-orbit.github.io/tags/terminal/ + \ No newline at end of file diff --git "a/docs/tags/tty-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263-\332\206\333\214\330\263\330\252/index.html" "b/docs/tags/tty-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263-\332\206\333\214\330\263\330\252/index.html" index 3257a3f..50e7923 100644 --- "a/docs/tags/tty-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263-\332\206\333\214\330\263\330\252/index.html" +++ "b/docs/tags/tty-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263-\332\206\333\214\330\263\330\252/index.html" @@ -1,559 +1,37 @@ - - - - -Tag: Tty در لینوکس چیست - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

Tty در لینوکس چیست

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: Tty در لینوکس چیست - bit-orbit +

Tags

1 صفحه

Tty در لینوکس چیست

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git "a/docs/tags/tty-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263-\332\206\333\214\330\263\330\252/index.xml" "b/docs/tags/tty-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263-\332\206\333\214\330\263\330\252/index.xml" index 942b6b6..13698da 100644 --- "a/docs/tags/tty-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263-\332\206\333\214\330\263\330\252/index.xml" +++ "b/docs/tags/tty-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263-\332\206\333\214\330\263\330\252/index.xml" @@ -1,50 +1,36 @@ - - - - Tty در لینوکس چیست on bit-orbit - https://bit-orbit.github.io/tags/tty-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA/ - Recent content in Tty در لینوکس چیست on bit-orbit - Hugo -- gohugo.io - fa - Mon, 31 Jan 2022 19:57:05 +0330 - در لینوکس چیست؟ TTY - https://bit-orbit.github.io/p/%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA-tty/ - Mon, 31 Jan 2022 19:57:05 +0330 - - https://bit-orbit.github.io/p/%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA-tty/ - <img src="https://bit-orbit.github.io/images/post/tty.jpg" alt="Featured image of post در لینوکس چیست؟ TTY " /><div dir='rtl' style='font-size:x-large'> -<p>شما باید درباره اصطلاح +Tty در لینوکس چیست on bit-orbithttps://bit-orbit.github.io/tags/tty-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA/Recent content in Tty در لینوکس چیست on bit-orbitHugo -- gohugo.iofaMon, 31 Jan 2022 19:57:05 +0330 در لینوکس چیست؟ TTYhttps://bit-orbit.github.io/p/%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA-tty/Mon, 31 Jan 2022 19:57:05 +0330https://bit-orbit.github.io/p/%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA-tty/<img src="https://bit-orbit.github.io/images/post/tty.jpg" alt="Featured image of post در لینوکس چیست؟ TTY " /><div dir='rtl' style='font-size:x-large'> +<p>شما باید درباره اصطلاح tty زمانی که به لینوکس و یونیکس آمد، شنیده باشید. اما tty -چیست؟</p> -<p>آیا برای شما به عنوان یک کاربر دستکتاپ مفید است؟</p> -<p>به آن نیاز دارید؟ می‌توانید با آن چه کار کنید؟</p> -<p>اجازه دهید هر چیز ضروری برای آشنا کردن شما با اصطلاح +چیست؟</p> +<p>آیا برای شما به عنوان یک کاربر دستکتاپ مفید است؟</p> +<p>به آن نیاز دارید؟ می‌توانید با آن چه کار کنید؟</p> +<p>اجازه دهید هر چیز ضروری برای آشنا کردن شما با اصطلاح tty -را در این پست برسی کنیم.</p> -<p>به یاد داشته باشید که پاسخ قطعی برای این سوال وجود ندارد، +را در این پست برسی کنیم.</p> +<p>به یاد داشته باشید که پاسخ قطعی برای این سوال وجود ندارد، اما به نحوه تعامل دستگاه های input/output(ورودی/خروجی) -در گذشته ربط دارد.</p> -<p>برای اینکه تصویری شفاف از آن داشته باشید باید کمی از تاریخ‌ش را بدانید.</p> -<h3 id="تاریخ-پشت-اصطلاح-tty">تاریخ پشت اصطلاح tty</h3> -<p>همه چیز از یک -<em>teleprinter</em> -در سال 1830 شروع شد.</p> -<p>teleprinter +در گذشته ربط دارد.</p> +<p>برای اینکه تصویری شفاف از آن داشته باشید باید کمی از تاریخ‌ش را بدانید.</p> +<h3 id="تاریخ-پشت-اصطلاح-tty">تاریخ پشت اصطلاح tty +</h3><p>همه چیز از یک +<em>teleprinter</em> +در سال 1830 شروع شد.</p> +<p>teleprinter به شما اجازه می‌داد که از طریق سیم پیام ارسال و دریافت کنید. teleprinter جایگزینی برای ارطبات مورس کد بود در آن دو اپراتور برای ارطبات با یکدیگر مود نیاز بود. اما در teleprinter -فقط به یک اپراتور برای ارسال پیام نیاز داشت. درحالی که +فقط به یک اپراتور برای ارسال پیام نیاز داشت. درحالی که teleprinter یک صفحه کلید مدرن نداشت، بعد ها سیستم آن توسط Donald Murray به یک صفحه کلید -<em>teletypewriter</em> -تکامل یافت.</p> -<p>Murray +<em>teletypewriter</em> +تکامل یافت.</p> +<p>Murray زحمت اپراتور ها را برای ارسال و پیام را کاهش داد و این امکان را برای teletypeprinter @@ -54,16 +40,11 @@ teletypewriter tty نام کوتاه شده teletypewrite -است.</p> -<p><img src="https://bit-orbit.github.io/images/post/teletypewrite.jpg" - - - - loading="lazy" - - -></p> -<p>تفاوت بین +است.</p> +<p><img src="https://bit-orbit.github.io/images/post/teletypewrite.jpg" +loading="lazy" +></p> +<p>تفاوت بین teletypewrite و typewriter @@ -74,89 +55,77 @@ teletypewriter ارطبات سریع تری را تا اکنون برای انسال بدون استفاده از کامپیوتر مقدور کرده است. و اینجا جایی است که tty -بوجود آمد.</p> -<h3 id="مفهوم-مدرن">مفهوم مدرن</h3> -<p>اکنون شما باید متعجب شده باشید که چطور +بوجود آمد.</p> +<h3 id="مفهوم-مدرن">مفهوم مدرن +</h3><p>اکنون شما باید متعجب شده باشید که چطور tty -به لینوکس و کامپیوتر مدرن آمده است.</p> -<p>بسیار خب، برای شروع، زمانی که +به لینوکس و کامپیوتر مدرن آمده است.</p> +<p>بسیار خب، برای شروع، زمانی که teletypewriter به بازار رسید، چند سال بعد ترانزیستور های نیمه هادی(نیمه رسانا) توسعه داده شد که به میکروپروسسور(micro proccessor) -هایی تبدیل شدند که کامپیوتر را ممکن می‌کرند.</p> -<p>کامپیوتر های اولیه مفهومی به اسم صفحه کلید نداشتند. -<a class="link" href="https://en.wikipedia.org/wiki/Punched_card" target="_blank" rel="noopener" - >کارت های پانج</a> -روش ورودی دادن به کامپیوتر ها بود</p> -<p><img src="https://bit-orbit.github.io/images/post/punch-card.jpg" - - - - loading="lazy" - - alt="card-punch" - - -></p> -<p>درحالی که کامپیوتر ها توسعه پیدا می‌کردند، بالاخره کارت های پانچ با +هایی تبدیل شدند که کامپیوتر را ممکن می‌کرند.</p> +<p>کامپیوتر های اولیه مفهومی به اسم صفحه کلید نداشتند. +<a class="link" href="https://en.wikipedia.org/wiki/Punched_card" target="_blank" rel="noopener" +>کارت های پانج</a> +روش ورودی دادن به کامپیوتر ها بود</p> +<p><img src="https://bit-orbit.github.io/images/post/punch-card.jpg" +loading="lazy" +alt="card-punch" +></p> +<p>درحالی که کامپیوتر ها توسعه پیدا می‌کردند، بالاخره کارت های پانچ با teletypewriter -به عنوان دستگاه <em><strong><u>ورودی/خروجی</u></strong></em> مناسب جایگزین شد.    </p> -<p><img src="https://bit-orbit.github.io/images/post/pc-tty.jpg" - - - - loading="lazy" - - alt="LGP-30 computer in 1956 with a TTY attached to it" - - -></p> -<p>با توسعه تکنولوژی +به عنوان دستگاه <em><strong><u>ورودی/خروجی</u></strong></em> مناسب جایگزین شد.    </p> +<p><img src="https://bit-orbit.github.io/images/post/pc-tty.jpg" +loading="lazy" +alt="LGP-30 computer in 1956 with a TTY attached to it" +></p> +<p>با توسعه تکنولوژی teletypewriter ها با استفاده از الکترونیک مجازی شدند. پس شما به یک tty فیزیکی، مکانیکی نیاز پیدا نمی‌کنید، بلکه به یک tty -مجازی، الکترونیکی نیاز دارید.</p> -<p>اوایل کامپیوتر ها صفحه نمایش هم نداشتند. چیز ها بجای نمایش داده شدن بروی صفحه نمایش +مجازی، الکترونیکی نیاز دارید.</p> +<p>اوایل کامپیوتر ها صفحه نمایش هم نداشتند. چیز ها بجای نمایش داده شدن بروی صفحه نمایش (که وجود نداشت) به روی کاغذ چاپ می‌شدند. به همین دلیل شما بجای دیدن اصطلاح -<code>display</code> +<code>display</code> اصطلاح -<code>print</code> +<code>print</code> را می‌بینید. ویدیو ها به عنوان تکنولوژی پیشرفته به ترمینال(پایانه) ها اضافه شد. به عبارت دیگر شما باید درباره ترمینال های ویدیویی شنیده باشید. یا شما می‌توانید -آن ها را ترمینال های فیزیکی بنامید.</p> -<p>سپس اینها به ترمینال های نرم افزاری شبیه سازی شده تکامل پیدا کردند که با قابلیت ها و +آن ها را ترمینال های فیزیکی بنامید.</p> +<p>سپس اینها به ترمینال های نرم افزاری شبیه سازی شده تکامل پیدا کردند که با قابلیت ها و ویژگی های تسوسعه یافته‌ای همرا بود. این چیزی است که شما آن را terminal emulator -می‌نامید.</p> -<p>برای نمونه ترمینال -<a class="link" href="https://en.wikipedia.org/wiki/GNOME_Terminal" target="_blank" rel="noopener" - >گنوم -(Gnome)</a> +می‌نامید.</p> +<p>برای نمونه ترمینال +<a class="link" href="https://en.wikipedia.org/wiki/GNOME_Terminal" target="_blank" rel="noopener" +>گنوم +(Gnome)</a> یا -<a class="link" href="https://konsole.kde.org/" target="_blank" rel="noopener" - >کنسول -(Konsole)</a> -<a class="link" href="https://itsfoss.com/linux-terminal-emulators/" target="_blank" rel="noopener" - >چنتا از بهترین ترمینال هایی هستند که می‌توانید برای لینوکس پیدا کنید.</a></p> -<h3 id="بسیارخب-tty-در-لینوکس-چیست">بسیارخب tty در لینوکس چیست؟</h3> -<p>زمانی که +<a class="link" href="https://konsole.kde.org/" target="_blank" rel="noopener" +>کنسول +(Konsole)</a> +<a class="link" href="https://itsfoss.com/linux-terminal-emulators/" target="_blank" rel="noopener" +>چنتا از بهترین ترمینال هایی هستند که می‌توانید برای لینوکس پیدا کنید.</a></p> +<h3 id="بسیارخب-tty-در-لینوکس-چیست">بسیارخب tty در لینوکس چیست؟ +</h3><p>زمانی که tty به لینوکس و یونیکس آمد، یک دستگاه مستقل در یونیکس و لینوکس بود گاهی tty به یک دستگاه ورودی فیزیکی مانند serial port(درگاه سریال) اشاره می‌کرد، و گاهی به ترمینال های مجازی اشاره می‌کرد که به کاربران اجازه تعامل با -سیستم را می‌داد.</p> -<p>tty +سیستم را می‌داد.</p> +<p>tty یک زیر سیستم در لینوکس و یونیکس است که مدریت فرایند، ویرایش خط و مدیریت نشست ها را در سطح کرنل از طریق درایور های tty -ممکن می‌کند.</p> -<p>از دیدگاه برنامه نویسی شما باید در این موضوع عمیق تر شوید. اما محدوده این +ممکن می‌کند.</p> +<p>از دیدگاه برنامه نویسی شما باید در این موضوع عمیق تر شوید. اما محدوده این پست را در نظر بگیرید، این مقاله باید یک توضیح ساده برای درک بهتر باشد. در حقیقت، هر گاه یک ترمینال را باز می‌کنیم یا هر نوع shell @@ -165,114 +134,92 @@ shell با tty مجازی که -<em>PTY</em> +<em>PTY</em> یا -<em>pseudo-tty</em> -هم شناخته می‌شوند، تعامل خواهد داشت.</p> -<p>شما می‌توانید +<em>pseudo-tty</em> +هم شناخته می‌شوند، تعامل خواهد داشت.</p> +<p>شما می‌توانید tty را در ترمینال تایپ کنید و pty -مرتبط را پیدا کنید.</p> -<h3 id="چگونه-به-tty-در-لینوکس-دسترسی-داشته-باشیم">چگونه به tty در لینوکس دسترسی داشته باشیم؟</h3> -<p><img src="https://bit-orbit.github.io/images/post/ubuntu-tty.png" - - - - loading="lazy" - - alt="tty-in-ubuntu" - - -></p> -<p>دسترسی به +مرتبط را پیدا کنید.</p> +<h3 id="چگونه-به-tty-در-لینوکس-دسترسی-داشته-باشیم">چگونه به tty در لینوکس دسترسی داشته باشیم؟ +</h3><p><img src="https://bit-orbit.github.io/images/post/ubuntu-tty.png" +loading="lazy" +alt="tty-in-ubuntu" +></p> +<p>دسترسی به tty در لینوکس ساده است. در حقیت زمانی که هیچ سرنخی از اینکه tty چیست نداشتم، به طور اتفاقی به آن دسترسی پیدا کردم و از اینکه چطوری باید -از آن خارج شوم وحشت زده شدم!</p> -<p>شما می‌توانید با کلید های میانبر زیر در اکثر توزیع های لینوکس به صفحه -tty -دسترسی پیدا کنید.</p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F1</code> – <strong>Lockscreen</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F2</code> – <strong>Desktop Environment</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F3</code> – <strong>TTY3</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F4</code> – <strong>TTY4</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F5</code> – <strong>TT5</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F6</code> – <strong>TTY6</strong></p> -<p>شما می‌توانید حد اکثر به -<u>6</u> +از آن خارج شوم وحشت زده شدم!</p> +<p>شما می‌توانید با کلید های میانبر زیر در اکثر توزیع های لینوکس به صفحه +tty +دسترسی پیدا کنید.</p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F1</code> – <strong>Lockscreen</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F2</code> – <strong>Desktop Environment</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F3</code> – <strong>TTY3</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F4</code> – <strong>TTY4</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F5</code> – <strong>TT5</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F6</code> – <strong>TTY6</strong></p> +<p>شما می‌توانید حد اکثر به +<u>6</u> tty دسترسی داشته باشید، با این حال دو تا از اولین کلید های میانبر به صفحه قفل -و محیط دسکتاپ اشاره دارد.</p> -<p><img src="https://bit-orbit.github.io/images/post/ubuntu-tty4.png" - - - - loading="lazy" - - alt="cmd-with-tty" - - -></p> -<p>بنابر این، با باقی کلید های میانبر شما به محیط +و محیط دسکتاپ اشاره دارد.</p> +<p><img src="https://bit-orbit.github.io/images/post/ubuntu-tty4.png" +loading="lazy" +alt="cmd-with-tty" +></p> +<p>بنابر این، با باقی کلید های میانبر شما به محیط command-line -دسترسی می‌گیرید.</p> -<h3 id="چه-زمانی-شما-از-tty-در-لینوکس-استفاده-خواهید-کرد">چه زمانی شما از tty در لینوکس استفاده خواهید کرد؟</h3> -<p>tty -فقط یک گنج تکنیکی نیست. حتی برای کاربرانی مثل من که توسعه دهنده هم نیستند مفید است.</p> -<p>زمانی که محیط گرافیکی فریز می‌شود باید به کار بیاید. در بعضی از مواقع +دسترسی می‌گیرید.</p> +<h3 id="چه-زمانی-شما-از-tty-در-لینوکس-استفاده-خواهید-کرد">چه زمانی شما از tty در لینوکس استفاده خواهید کرد؟ +</h3><p>tty +فقط یک گنج تکنیکی نیست. حتی برای کاربرانی مثل من که توسعه دهنده هم نیستند مفید است.</p> +<p>زمانی که محیط گرافیکی فریز می‌شود باید به کار بیاید. در بعضی از مواقع نصب مجدد محیط گرافیکی با استفاده از tty -می‌تواند مشکل را حل کند.</p> -<p>یا شما می‌توانید +می‌تواند مشکل را حل کند.</p> +<p>یا شما می‌توانید tty را برای انجام کار هایی مثل آپدیت انتخاب کنید جایی که شما نمی‌خواهید مشکلات بصری فرایند -های شما را مختل کند.</p> -<p>بد ترین مورد سناریو، شما می‌تواند زمانی که محیط دستکتاپ جواب نمی‌دهد، برای ریبوت +های شما را مختل کند.</p> +<p>بد ترین مورد سناریو، شما می‌تواند زمانی که محیط دستکتاپ جواب نمی‌دهد، برای ریبوت به tty -مراجعه کنید.</p> -<p>بعضی از کاربران ترجیح می‌دهند که فایل های بزرگ را با +مراجعه کنید.</p> +<p>بعضی از کاربران ترجیح می‌دهند که فایل های بزرگ را با tty -منتقل کنند(من از آنها نیستم)</p> -<h3 id="tty-به-عنوان-یک-دستور-در-لینوکس">tty به عنوان یک دستور در لینوکس</h3> -<p><img src="https://bit-orbit.github.io/images/post/tty-cmd.png" - - - - loading="lazy" - - alt="tty-cmd" - - -></p> -<p>همانطور که در صفحه راهنمای +منتقل کنند(من از آنها نیستم)</p> +<h3 id="tty-به-عنوان-یک-دستور-در-لینوکس">tty به عنوان یک دستور در لینوکس +</h3><p><img src="https://bit-orbit.github.io/images/post/tty-cmd.png" +loading="lazy" +alt="tty-cmd" +></p> +<p>همانطور که در صفحه راهنمای (man page) tty توضیح داده شده است، زمانی که شما tty -را در ترمینال تایپ کنید، نام فایل ترمینال که به وردی استاندارد متصل است را چاپ می‌کند.</p> -<p>به عبارت دیگر برای دانستن عدد +را در ترمینال تایپ کنید، نام فایل ترمینال که به وردی استاندارد متصل است را چاپ می‌کند.</p> +<p>به عبارت دیگر برای دانستن عدد tty که به آن متصل هستید، فقط tty را در ترمینال تایپ کنید. اگر چند کاربر از راه دور به سیستم لینوکس متصل هستند، می‌توانید برای برسی اینکه به چه متصل هستند از کامند -<code>who</code> -استفاده کنید.</p> -<h3 id="خارج-از-ترجمه">خارج از ترجمه</h3> -<p>متن ترجمه شده بود و خب من یک مترجم تخصصی نیستم، من یک برنامه نویسم که بلاگ نویسی +<code>who</code> +استفاده کنید.</p> +<h3 id="خارج-از-ترجمه">خارج از ترجمه +</h3><p>متن ترجمه شده بود و خب من یک مترجم تخصصی نیستم، من یک برنامه نویسم که بلاگ نویسی و ترجمه رو هم دوست دارم، سعی کردم به بهترین نحو متن را ترجمه کنم و در اختیار بقیه بذارم، اگر حس کردین جایی از متن مشکلی داره، خیلی خوشحال می‌شوم -که مشکلم رو بهم بیگید، این کمک بزرگیه.</p> -<p>متن اصلی رو می‌توانید از -<a class="link" href="https://itsfoss.com/what-is-tty-in-linux/" target="_blank" rel="noopener" - >این لینک</a> -بخوانید.</p> -</div> - - - - +که مشکلم رو بهم بیگید، این کمک بزرگیه.</p> +<p>متن اصلی رو می‌توانید از +<a class="link" href="https://itsfoss.com/what-is-tty-in-linux/" target="_blank" rel="noopener" +>این لینک</a> +بخوانید.</p> +</div> \ No newline at end of file diff --git "a/docs/tags/tty-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263-\332\206\333\214\330\263\330\252/page/1/index.html" "b/docs/tags/tty-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263-\332\206\333\214\330\263\330\252/page/1/index.html" index 88fa8c4..f47f795 100644 --- "a/docs/tags/tty-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263-\332\206\333\214\330\263\330\252/page/1/index.html" +++ "b/docs/tags/tty-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263-\332\206\333\214\330\263\330\252/page/1/index.html" @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/tty-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA/ - - - - - - +https://bit-orbit.github.io/tags/tty-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA/ + \ No newline at end of file diff --git "a/docs/tags/tty-\332\206\333\214\330\263\330\252/index.html" "b/docs/tags/tty-\332\206\333\214\330\263\330\252/index.html" index 04923c2..ee82bf0 100644 --- "a/docs/tags/tty-\332\206\333\214\330\263\330\252/index.html" +++ "b/docs/tags/tty-\332\206\333\214\330\263\330\252/index.html" @@ -1,559 +1,37 @@ - - - - -Tag: Tty چیست - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

Tty چیست

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: Tty چیست - bit-orbit +

Tags

1 صفحه

Tty چیست

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git "a/docs/tags/tty-\332\206\333\214\330\263\330\252/index.xml" "b/docs/tags/tty-\332\206\333\214\330\263\330\252/index.xml" index 32a1e61..cb68880 100644 --- "a/docs/tags/tty-\332\206\333\214\330\263\330\252/index.xml" +++ "b/docs/tags/tty-\332\206\333\214\330\263\330\252/index.xml" @@ -1,50 +1,36 @@ - - - - Tty چیست on bit-orbit - https://bit-orbit.github.io/tags/tty-%DA%86%DB%8C%D8%B3%D8%AA/ - Recent content in Tty چیست on bit-orbit - Hugo -- gohugo.io - fa - Mon, 31 Jan 2022 19:57:05 +0330 - در لینوکس چیست؟ TTY - https://bit-orbit.github.io/p/%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA-tty/ - Mon, 31 Jan 2022 19:57:05 +0330 - - https://bit-orbit.github.io/p/%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA-tty/ - <img src="https://bit-orbit.github.io/images/post/tty.jpg" alt="Featured image of post در لینوکس چیست؟ TTY " /><div dir='rtl' style='font-size:x-large'> -<p>شما باید درباره اصطلاح +Tty چیست on bit-orbithttps://bit-orbit.github.io/tags/tty-%DA%86%DB%8C%D8%B3%D8%AA/Recent content in Tty چیست on bit-orbitHugo -- gohugo.iofaMon, 31 Jan 2022 19:57:05 +0330 در لینوکس چیست؟ TTYhttps://bit-orbit.github.io/p/%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA-tty/Mon, 31 Jan 2022 19:57:05 +0330https://bit-orbit.github.io/p/%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA-tty/<img src="https://bit-orbit.github.io/images/post/tty.jpg" alt="Featured image of post در لینوکس چیست؟ TTY " /><div dir='rtl' style='font-size:x-large'> +<p>شما باید درباره اصطلاح tty زمانی که به لینوکس و یونیکس آمد، شنیده باشید. اما tty -چیست؟</p> -<p>آیا برای شما به عنوان یک کاربر دستکتاپ مفید است؟</p> -<p>به آن نیاز دارید؟ می‌توانید با آن چه کار کنید؟</p> -<p>اجازه دهید هر چیز ضروری برای آشنا کردن شما با اصطلاح +چیست؟</p> +<p>آیا برای شما به عنوان یک کاربر دستکتاپ مفید است؟</p> +<p>به آن نیاز دارید؟ می‌توانید با آن چه کار کنید؟</p> +<p>اجازه دهید هر چیز ضروری برای آشنا کردن شما با اصطلاح tty -را در این پست برسی کنیم.</p> -<p>به یاد داشته باشید که پاسخ قطعی برای این سوال وجود ندارد، +را در این پست برسی کنیم.</p> +<p>به یاد داشته باشید که پاسخ قطعی برای این سوال وجود ندارد، اما به نحوه تعامل دستگاه های input/output(ورودی/خروجی) -در گذشته ربط دارد.</p> -<p>برای اینکه تصویری شفاف از آن داشته باشید باید کمی از تاریخ‌ش را بدانید.</p> -<h3 id="تاریخ-پشت-اصطلاح-tty">تاریخ پشت اصطلاح tty</h3> -<p>همه چیز از یک -<em>teleprinter</em> -در سال 1830 شروع شد.</p> -<p>teleprinter +در گذشته ربط دارد.</p> +<p>برای اینکه تصویری شفاف از آن داشته باشید باید کمی از تاریخ‌ش را بدانید.</p> +<h3 id="تاریخ-پشت-اصطلاح-tty">تاریخ پشت اصطلاح tty +</h3><p>همه چیز از یک +<em>teleprinter</em> +در سال 1830 شروع شد.</p> +<p>teleprinter به شما اجازه می‌داد که از طریق سیم پیام ارسال و دریافت کنید. teleprinter جایگزینی برای ارطبات مورس کد بود در آن دو اپراتور برای ارطبات با یکدیگر مود نیاز بود. اما در teleprinter -فقط به یک اپراتور برای ارسال پیام نیاز داشت. درحالی که +فقط به یک اپراتور برای ارسال پیام نیاز داشت. درحالی که teleprinter یک صفحه کلید مدرن نداشت، بعد ها سیستم آن توسط Donald Murray به یک صفحه کلید -<em>teletypewriter</em> -تکامل یافت.</p> -<p>Murray +<em>teletypewriter</em> +تکامل یافت.</p> +<p>Murray زحمت اپراتور ها را برای ارسال و پیام را کاهش داد و این امکان را برای teletypeprinter @@ -54,16 +40,11 @@ teletypewriter tty نام کوتاه شده teletypewrite -است.</p> -<p><img src="https://bit-orbit.github.io/images/post/teletypewrite.jpg" - - - - loading="lazy" - - -></p> -<p>تفاوت بین +است.</p> +<p><img src="https://bit-orbit.github.io/images/post/teletypewrite.jpg" +loading="lazy" +></p> +<p>تفاوت بین teletypewrite و typewriter @@ -74,89 +55,77 @@ teletypewriter ارطبات سریع تری را تا اکنون برای انسال بدون استفاده از کامپیوتر مقدور کرده است. و اینجا جایی است که tty -بوجود آمد.</p> -<h3 id="مفهوم-مدرن">مفهوم مدرن</h3> -<p>اکنون شما باید متعجب شده باشید که چطور +بوجود آمد.</p> +<h3 id="مفهوم-مدرن">مفهوم مدرن +</h3><p>اکنون شما باید متعجب شده باشید که چطور tty -به لینوکس و کامپیوتر مدرن آمده است.</p> -<p>بسیار خب، برای شروع، زمانی که +به لینوکس و کامپیوتر مدرن آمده است.</p> +<p>بسیار خب، برای شروع، زمانی که teletypewriter به بازار رسید، چند سال بعد ترانزیستور های نیمه هادی(نیمه رسانا) توسعه داده شد که به میکروپروسسور(micro proccessor) -هایی تبدیل شدند که کامپیوتر را ممکن می‌کرند.</p> -<p>کامپیوتر های اولیه مفهومی به اسم صفحه کلید نداشتند. -<a class="link" href="https://en.wikipedia.org/wiki/Punched_card" target="_blank" rel="noopener" - >کارت های پانج</a> -روش ورودی دادن به کامپیوتر ها بود</p> -<p><img src="https://bit-orbit.github.io/images/post/punch-card.jpg" - - - - loading="lazy" - - alt="card-punch" - - -></p> -<p>درحالی که کامپیوتر ها توسعه پیدا می‌کردند، بالاخره کارت های پانچ با +هایی تبدیل شدند که کامپیوتر را ممکن می‌کرند.</p> +<p>کامپیوتر های اولیه مفهومی به اسم صفحه کلید نداشتند. +<a class="link" href="https://en.wikipedia.org/wiki/Punched_card" target="_blank" rel="noopener" +>کارت های پانج</a> +روش ورودی دادن به کامپیوتر ها بود</p> +<p><img src="https://bit-orbit.github.io/images/post/punch-card.jpg" +loading="lazy" +alt="card-punch" +></p> +<p>درحالی که کامپیوتر ها توسعه پیدا می‌کردند، بالاخره کارت های پانچ با teletypewriter -به عنوان دستگاه <em><strong><u>ورودی/خروجی</u></strong></em> مناسب جایگزین شد.    </p> -<p><img src="https://bit-orbit.github.io/images/post/pc-tty.jpg" - - - - loading="lazy" - - alt="LGP-30 computer in 1956 with a TTY attached to it" - - -></p> -<p>با توسعه تکنولوژی +به عنوان دستگاه <em><strong><u>ورودی/خروجی</u></strong></em> مناسب جایگزین شد.    </p> +<p><img src="https://bit-orbit.github.io/images/post/pc-tty.jpg" +loading="lazy" +alt="LGP-30 computer in 1956 with a TTY attached to it" +></p> +<p>با توسعه تکنولوژی teletypewriter ها با استفاده از الکترونیک مجازی شدند. پس شما به یک tty فیزیکی، مکانیکی نیاز پیدا نمی‌کنید، بلکه به یک tty -مجازی، الکترونیکی نیاز دارید.</p> -<p>اوایل کامپیوتر ها صفحه نمایش هم نداشتند. چیز ها بجای نمایش داده شدن بروی صفحه نمایش +مجازی، الکترونیکی نیاز دارید.</p> +<p>اوایل کامپیوتر ها صفحه نمایش هم نداشتند. چیز ها بجای نمایش داده شدن بروی صفحه نمایش (که وجود نداشت) به روی کاغذ چاپ می‌شدند. به همین دلیل شما بجای دیدن اصطلاح -<code>display</code> +<code>display</code> اصطلاح -<code>print</code> +<code>print</code> را می‌بینید. ویدیو ها به عنوان تکنولوژی پیشرفته به ترمینال(پایانه) ها اضافه شد. به عبارت دیگر شما باید درباره ترمینال های ویدیویی شنیده باشید. یا شما می‌توانید -آن ها را ترمینال های فیزیکی بنامید.</p> -<p>سپس اینها به ترمینال های نرم افزاری شبیه سازی شده تکامل پیدا کردند که با قابلیت ها و +آن ها را ترمینال های فیزیکی بنامید.</p> +<p>سپس اینها به ترمینال های نرم افزاری شبیه سازی شده تکامل پیدا کردند که با قابلیت ها و ویژگی های تسوسعه یافته‌ای همرا بود. این چیزی است که شما آن را terminal emulator -می‌نامید.</p> -<p>برای نمونه ترمینال -<a class="link" href="https://en.wikipedia.org/wiki/GNOME_Terminal" target="_blank" rel="noopener" - >گنوم -(Gnome)</a> +می‌نامید.</p> +<p>برای نمونه ترمینال +<a class="link" href="https://en.wikipedia.org/wiki/GNOME_Terminal" target="_blank" rel="noopener" +>گنوم +(Gnome)</a> یا -<a class="link" href="https://konsole.kde.org/" target="_blank" rel="noopener" - >کنسول -(Konsole)</a> -<a class="link" href="https://itsfoss.com/linux-terminal-emulators/" target="_blank" rel="noopener" - >چنتا از بهترین ترمینال هایی هستند که می‌توانید برای لینوکس پیدا کنید.</a></p> -<h3 id="بسیارخب-tty-در-لینوکس-چیست">بسیارخب tty در لینوکس چیست؟</h3> -<p>زمانی که +<a class="link" href="https://konsole.kde.org/" target="_blank" rel="noopener" +>کنسول +(Konsole)</a> +<a class="link" href="https://itsfoss.com/linux-terminal-emulators/" target="_blank" rel="noopener" +>چنتا از بهترین ترمینال هایی هستند که می‌توانید برای لینوکس پیدا کنید.</a></p> +<h3 id="بسیارخب-tty-در-لینوکس-چیست">بسیارخب tty در لینوکس چیست؟ +</h3><p>زمانی که tty به لینوکس و یونیکس آمد، یک دستگاه مستقل در یونیکس و لینوکس بود گاهی tty به یک دستگاه ورودی فیزیکی مانند serial port(درگاه سریال) اشاره می‌کرد، و گاهی به ترمینال های مجازی اشاره می‌کرد که به کاربران اجازه تعامل با -سیستم را می‌داد.</p> -<p>tty +سیستم را می‌داد.</p> +<p>tty یک زیر سیستم در لینوکس و یونیکس است که مدریت فرایند، ویرایش خط و مدیریت نشست ها را در سطح کرنل از طریق درایور های tty -ممکن می‌کند.</p> -<p>از دیدگاه برنامه نویسی شما باید در این موضوع عمیق تر شوید. اما محدوده این +ممکن می‌کند.</p> +<p>از دیدگاه برنامه نویسی شما باید در این موضوع عمیق تر شوید. اما محدوده این پست را در نظر بگیرید، این مقاله باید یک توضیح ساده برای درک بهتر باشد. در حقیقت، هر گاه یک ترمینال را باز می‌کنیم یا هر نوع shell @@ -165,114 +134,92 @@ shell با tty مجازی که -<em>PTY</em> +<em>PTY</em> یا -<em>pseudo-tty</em> -هم شناخته می‌شوند، تعامل خواهد داشت.</p> -<p>شما می‌توانید +<em>pseudo-tty</em> +هم شناخته می‌شوند، تعامل خواهد داشت.</p> +<p>شما می‌توانید tty را در ترمینال تایپ کنید و pty -مرتبط را پیدا کنید.</p> -<h3 id="چگونه-به-tty-در-لینوکس-دسترسی-داشته-باشیم">چگونه به tty در لینوکس دسترسی داشته باشیم؟</h3> -<p><img src="https://bit-orbit.github.io/images/post/ubuntu-tty.png" - - - - loading="lazy" - - alt="tty-in-ubuntu" - - -></p> -<p>دسترسی به +مرتبط را پیدا کنید.</p> +<h3 id="چگونه-به-tty-در-لینوکس-دسترسی-داشته-باشیم">چگونه به tty در لینوکس دسترسی داشته باشیم؟ +</h3><p><img src="https://bit-orbit.github.io/images/post/ubuntu-tty.png" +loading="lazy" +alt="tty-in-ubuntu" +></p> +<p>دسترسی به tty در لینوکس ساده است. در حقیت زمانی که هیچ سرنخی از اینکه tty چیست نداشتم، به طور اتفاقی به آن دسترسی پیدا کردم و از اینکه چطوری باید -از آن خارج شوم وحشت زده شدم!</p> -<p>شما می‌توانید با کلید های میانبر زیر در اکثر توزیع های لینوکس به صفحه -tty -دسترسی پیدا کنید.</p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F1</code> – <strong>Lockscreen</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F2</code> – <strong>Desktop Environment</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F3</code> – <strong>TTY3</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F4</code> – <strong>TTY4</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F5</code> – <strong>TT5</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F6</code> – <strong>TTY6</strong></p> -<p>شما می‌توانید حد اکثر به -<u>6</u> +از آن خارج شوم وحشت زده شدم!</p> +<p>شما می‌توانید با کلید های میانبر زیر در اکثر توزیع های لینوکس به صفحه +tty +دسترسی پیدا کنید.</p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F1</code> – <strong>Lockscreen</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F2</code> – <strong>Desktop Environment</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F3</code> – <strong>TTY3</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F4</code> – <strong>TTY4</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F5</code> – <strong>TT5</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F6</code> – <strong>TTY6</strong></p> +<p>شما می‌توانید حد اکثر به +<u>6</u> tty دسترسی داشته باشید، با این حال دو تا از اولین کلید های میانبر به صفحه قفل -و محیط دسکتاپ اشاره دارد.</p> -<p><img src="https://bit-orbit.github.io/images/post/ubuntu-tty4.png" - - - - loading="lazy" - - alt="cmd-with-tty" - - -></p> -<p>بنابر این، با باقی کلید های میانبر شما به محیط +و محیط دسکتاپ اشاره دارد.</p> +<p><img src="https://bit-orbit.github.io/images/post/ubuntu-tty4.png" +loading="lazy" +alt="cmd-with-tty" +></p> +<p>بنابر این، با باقی کلید های میانبر شما به محیط command-line -دسترسی می‌گیرید.</p> -<h3 id="چه-زمانی-شما-از-tty-در-لینوکس-استفاده-خواهید-کرد">چه زمانی شما از tty در لینوکس استفاده خواهید کرد؟</h3> -<p>tty -فقط یک گنج تکنیکی نیست. حتی برای کاربرانی مثل من که توسعه دهنده هم نیستند مفید است.</p> -<p>زمانی که محیط گرافیکی فریز می‌شود باید به کار بیاید. در بعضی از مواقع +دسترسی می‌گیرید.</p> +<h3 id="چه-زمانی-شما-از-tty-در-لینوکس-استفاده-خواهید-کرد">چه زمانی شما از tty در لینوکس استفاده خواهید کرد؟ +</h3><p>tty +فقط یک گنج تکنیکی نیست. حتی برای کاربرانی مثل من که توسعه دهنده هم نیستند مفید است.</p> +<p>زمانی که محیط گرافیکی فریز می‌شود باید به کار بیاید. در بعضی از مواقع نصب مجدد محیط گرافیکی با استفاده از tty -می‌تواند مشکل را حل کند.</p> -<p>یا شما می‌توانید +می‌تواند مشکل را حل کند.</p> +<p>یا شما می‌توانید tty را برای انجام کار هایی مثل آپدیت انتخاب کنید جایی که شما نمی‌خواهید مشکلات بصری فرایند -های شما را مختل کند.</p> -<p>بد ترین مورد سناریو، شما می‌تواند زمانی که محیط دستکتاپ جواب نمی‌دهد، برای ریبوت +های شما را مختل کند.</p> +<p>بد ترین مورد سناریو، شما می‌تواند زمانی که محیط دستکتاپ جواب نمی‌دهد، برای ریبوت به tty -مراجعه کنید.</p> -<p>بعضی از کاربران ترجیح می‌دهند که فایل های بزرگ را با +مراجعه کنید.</p> +<p>بعضی از کاربران ترجیح می‌دهند که فایل های بزرگ را با tty -منتقل کنند(من از آنها نیستم)</p> -<h3 id="tty-به-عنوان-یک-دستور-در-لینوکس">tty به عنوان یک دستور در لینوکس</h3> -<p><img src="https://bit-orbit.github.io/images/post/tty-cmd.png" - - - - loading="lazy" - - alt="tty-cmd" - - -></p> -<p>همانطور که در صفحه راهنمای +منتقل کنند(من از آنها نیستم)</p> +<h3 id="tty-به-عنوان-یک-دستور-در-لینوکس">tty به عنوان یک دستور در لینوکس +</h3><p><img src="https://bit-orbit.github.io/images/post/tty-cmd.png" +loading="lazy" +alt="tty-cmd" +></p> +<p>همانطور که در صفحه راهنمای (man page) tty توضیح داده شده است، زمانی که شما tty -را در ترمینال تایپ کنید، نام فایل ترمینال که به وردی استاندارد متصل است را چاپ می‌کند.</p> -<p>به عبارت دیگر برای دانستن عدد +را در ترمینال تایپ کنید، نام فایل ترمینال که به وردی استاندارد متصل است را چاپ می‌کند.</p> +<p>به عبارت دیگر برای دانستن عدد tty که به آن متصل هستید، فقط tty را در ترمینال تایپ کنید. اگر چند کاربر از راه دور به سیستم لینوکس متصل هستند، می‌توانید برای برسی اینکه به چه متصل هستند از کامند -<code>who</code> -استفاده کنید.</p> -<h3 id="خارج-از-ترجمه">خارج از ترجمه</h3> -<p>متن ترجمه شده بود و خب من یک مترجم تخصصی نیستم، من یک برنامه نویسم که بلاگ نویسی +<code>who</code> +استفاده کنید.</p> +<h3 id="خارج-از-ترجمه">خارج از ترجمه +</h3><p>متن ترجمه شده بود و خب من یک مترجم تخصصی نیستم، من یک برنامه نویسم که بلاگ نویسی و ترجمه رو هم دوست دارم، سعی کردم به بهترین نحو متن را ترجمه کنم و در اختیار بقیه بذارم، اگر حس کردین جایی از متن مشکلی داره، خیلی خوشحال می‌شوم -که مشکلم رو بهم بیگید، این کمک بزرگیه.</p> -<p>متن اصلی رو می‌توانید از -<a class="link" href="https://itsfoss.com/what-is-tty-in-linux/" target="_blank" rel="noopener" - >این لینک</a> -بخوانید.</p> -</div> - - - - +که مشکلم رو بهم بیگید، این کمک بزرگیه.</p> +<p>متن اصلی رو می‌توانید از +<a class="link" href="https://itsfoss.com/what-is-tty-in-linux/" target="_blank" rel="noopener" +>این لینک</a> +بخوانید.</p> +</div> \ No newline at end of file diff --git "a/docs/tags/tty-\332\206\333\214\330\263\330\252/page/1/index.html" "b/docs/tags/tty-\332\206\333\214\330\263\330\252/page/1/index.html" index 1e781c6..fb66263 100644 --- "a/docs/tags/tty-\332\206\333\214\330\263\330\252/page/1/index.html" +++ "b/docs/tags/tty-\332\206\333\214\330\263\330\252/page/1/index.html" @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/tty-%DA%86%DB%8C%D8%B3%D8%AA/ - - - - - - +https://bit-orbit.github.io/tags/tty-%DA%86%DB%8C%D8%B3%D8%AA/ + \ No newline at end of file diff --git a/docs/tags/tty/index.html b/docs/tags/tty/index.html index eff0b2d..01e3b35 100644 --- a/docs/tags/tty/index.html +++ b/docs/tags/tty/index.html @@ -1,559 +1,37 @@ - - - - -Tag: Tty - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

Tty

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: Tty - bit-orbit + \ No newline at end of file diff --git a/docs/tags/tty/index.xml b/docs/tags/tty/index.xml index 8171494..b2bf878 100644 --- a/docs/tags/tty/index.xml +++ b/docs/tags/tty/index.xml @@ -1,50 +1,36 @@ - - - - Tty on bit-orbit - https://bit-orbit.github.io/tags/tty/ - Recent content in Tty on bit-orbit - Hugo -- gohugo.io - fa - Mon, 31 Jan 2022 19:57:05 +0330 - در لینوکس چیست؟ TTY - https://bit-orbit.github.io/p/%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA-tty/ - Mon, 31 Jan 2022 19:57:05 +0330 - - https://bit-orbit.github.io/p/%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA-tty/ - <img src="https://bit-orbit.github.io/images/post/tty.jpg" alt="Featured image of post در لینوکس چیست؟ TTY " /><div dir='rtl' style='font-size:x-large'> -<p>شما باید درباره اصطلاح +Tty on bit-orbithttps://bit-orbit.github.io/tags/tty/Recent content in Tty on bit-orbitHugo -- gohugo.iofaMon, 31 Jan 2022 19:57:05 +0330 در لینوکس چیست؟ TTYhttps://bit-orbit.github.io/p/%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA-tty/Mon, 31 Jan 2022 19:57:05 +0330https://bit-orbit.github.io/p/%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA-tty/<img src="https://bit-orbit.github.io/images/post/tty.jpg" alt="Featured image of post در لینوکس چیست؟ TTY " /><div dir='rtl' style='font-size:x-large'> +<p>شما باید درباره اصطلاح tty زمانی که به لینوکس و یونیکس آمد، شنیده باشید. اما tty -چیست؟</p> -<p>آیا برای شما به عنوان یک کاربر دستکتاپ مفید است؟</p> -<p>به آن نیاز دارید؟ می‌توانید با آن چه کار کنید؟</p> -<p>اجازه دهید هر چیز ضروری برای آشنا کردن شما با اصطلاح +چیست؟</p> +<p>آیا برای شما به عنوان یک کاربر دستکتاپ مفید است؟</p> +<p>به آن نیاز دارید؟ می‌توانید با آن چه کار کنید؟</p> +<p>اجازه دهید هر چیز ضروری برای آشنا کردن شما با اصطلاح tty -را در این پست برسی کنیم.</p> -<p>به یاد داشته باشید که پاسخ قطعی برای این سوال وجود ندارد، +را در این پست برسی کنیم.</p> +<p>به یاد داشته باشید که پاسخ قطعی برای این سوال وجود ندارد، اما به نحوه تعامل دستگاه های input/output(ورودی/خروجی) -در گذشته ربط دارد.</p> -<p>برای اینکه تصویری شفاف از آن داشته باشید باید کمی از تاریخ‌ش را بدانید.</p> -<h3 id="تاریخ-پشت-اصطلاح-tty">تاریخ پشت اصطلاح tty</h3> -<p>همه چیز از یک -<em>teleprinter</em> -در سال 1830 شروع شد.</p> -<p>teleprinter +در گذشته ربط دارد.</p> +<p>برای اینکه تصویری شفاف از آن داشته باشید باید کمی از تاریخ‌ش را بدانید.</p> +<h3 id="تاریخ-پشت-اصطلاح-tty">تاریخ پشت اصطلاح tty +</h3><p>همه چیز از یک +<em>teleprinter</em> +در سال 1830 شروع شد.</p> +<p>teleprinter به شما اجازه می‌داد که از طریق سیم پیام ارسال و دریافت کنید. teleprinter جایگزینی برای ارطبات مورس کد بود در آن دو اپراتور برای ارطبات با یکدیگر مود نیاز بود. اما در teleprinter -فقط به یک اپراتور برای ارسال پیام نیاز داشت. درحالی که +فقط به یک اپراتور برای ارسال پیام نیاز داشت. درحالی که teleprinter یک صفحه کلید مدرن نداشت، بعد ها سیستم آن توسط Donald Murray به یک صفحه کلید -<em>teletypewriter</em> -تکامل یافت.</p> -<p>Murray +<em>teletypewriter</em> +تکامل یافت.</p> +<p>Murray زحمت اپراتور ها را برای ارسال و پیام را کاهش داد و این امکان را برای teletypeprinter @@ -54,16 +40,11 @@ teletypewriter tty نام کوتاه شده teletypewrite -است.</p> -<p><img src="https://bit-orbit.github.io/images/post/teletypewrite.jpg" - - - - loading="lazy" - - -></p> -<p>تفاوت بین +است.</p> +<p><img src="https://bit-orbit.github.io/images/post/teletypewrite.jpg" +loading="lazy" +></p> +<p>تفاوت بین teletypewrite و typewriter @@ -74,89 +55,77 @@ teletypewriter ارطبات سریع تری را تا اکنون برای انسال بدون استفاده از کامپیوتر مقدور کرده است. و اینجا جایی است که tty -بوجود آمد.</p> -<h3 id="مفهوم-مدرن">مفهوم مدرن</h3> -<p>اکنون شما باید متعجب شده باشید که چطور +بوجود آمد.</p> +<h3 id="مفهوم-مدرن">مفهوم مدرن +</h3><p>اکنون شما باید متعجب شده باشید که چطور tty -به لینوکس و کامپیوتر مدرن آمده است.</p> -<p>بسیار خب، برای شروع، زمانی که +به لینوکس و کامپیوتر مدرن آمده است.</p> +<p>بسیار خب، برای شروع، زمانی که teletypewriter به بازار رسید، چند سال بعد ترانزیستور های نیمه هادی(نیمه رسانا) توسعه داده شد که به میکروپروسسور(micro proccessor) -هایی تبدیل شدند که کامپیوتر را ممکن می‌کرند.</p> -<p>کامپیوتر های اولیه مفهومی به اسم صفحه کلید نداشتند. -<a class="link" href="https://en.wikipedia.org/wiki/Punched_card" target="_blank" rel="noopener" - >کارت های پانج</a> -روش ورودی دادن به کامپیوتر ها بود</p> -<p><img src="https://bit-orbit.github.io/images/post/punch-card.jpg" - - - - loading="lazy" - - alt="card-punch" - - -></p> -<p>درحالی که کامپیوتر ها توسعه پیدا می‌کردند، بالاخره کارت های پانچ با +هایی تبدیل شدند که کامپیوتر را ممکن می‌کرند.</p> +<p>کامپیوتر های اولیه مفهومی به اسم صفحه کلید نداشتند. +<a class="link" href="https://en.wikipedia.org/wiki/Punched_card" target="_blank" rel="noopener" +>کارت های پانج</a> +روش ورودی دادن به کامپیوتر ها بود</p> +<p><img src="https://bit-orbit.github.io/images/post/punch-card.jpg" +loading="lazy" +alt="card-punch" +></p> +<p>درحالی که کامپیوتر ها توسعه پیدا می‌کردند، بالاخره کارت های پانچ با teletypewriter -به عنوان دستگاه <em><strong><u>ورودی/خروجی</u></strong></em> مناسب جایگزین شد.    </p> -<p><img src="https://bit-orbit.github.io/images/post/pc-tty.jpg" - - - - loading="lazy" - - alt="LGP-30 computer in 1956 with a TTY attached to it" - - -></p> -<p>با توسعه تکنولوژی +به عنوان دستگاه <em><strong><u>ورودی/خروجی</u></strong></em> مناسب جایگزین شد.    </p> +<p><img src="https://bit-orbit.github.io/images/post/pc-tty.jpg" +loading="lazy" +alt="LGP-30 computer in 1956 with a TTY attached to it" +></p> +<p>با توسعه تکنولوژی teletypewriter ها با استفاده از الکترونیک مجازی شدند. پس شما به یک tty فیزیکی، مکانیکی نیاز پیدا نمی‌کنید، بلکه به یک tty -مجازی، الکترونیکی نیاز دارید.</p> -<p>اوایل کامپیوتر ها صفحه نمایش هم نداشتند. چیز ها بجای نمایش داده شدن بروی صفحه نمایش +مجازی، الکترونیکی نیاز دارید.</p> +<p>اوایل کامپیوتر ها صفحه نمایش هم نداشتند. چیز ها بجای نمایش داده شدن بروی صفحه نمایش (که وجود نداشت) به روی کاغذ چاپ می‌شدند. به همین دلیل شما بجای دیدن اصطلاح -<code>display</code> +<code>display</code> اصطلاح -<code>print</code> +<code>print</code> را می‌بینید. ویدیو ها به عنوان تکنولوژی پیشرفته به ترمینال(پایانه) ها اضافه شد. به عبارت دیگر شما باید درباره ترمینال های ویدیویی شنیده باشید. یا شما می‌توانید -آن ها را ترمینال های فیزیکی بنامید.</p> -<p>سپس اینها به ترمینال های نرم افزاری شبیه سازی شده تکامل پیدا کردند که با قابلیت ها و +آن ها را ترمینال های فیزیکی بنامید.</p> +<p>سپس اینها به ترمینال های نرم افزاری شبیه سازی شده تکامل پیدا کردند که با قابلیت ها و ویژگی های تسوسعه یافته‌ای همرا بود. این چیزی است که شما آن را terminal emulator -می‌نامید.</p> -<p>برای نمونه ترمینال -<a class="link" href="https://en.wikipedia.org/wiki/GNOME_Terminal" target="_blank" rel="noopener" - >گنوم -(Gnome)</a> +می‌نامید.</p> +<p>برای نمونه ترمینال +<a class="link" href="https://en.wikipedia.org/wiki/GNOME_Terminal" target="_blank" rel="noopener" +>گنوم +(Gnome)</a> یا -<a class="link" href="https://konsole.kde.org/" target="_blank" rel="noopener" - >کنسول -(Konsole)</a> -<a class="link" href="https://itsfoss.com/linux-terminal-emulators/" target="_blank" rel="noopener" - >چنتا از بهترین ترمینال هایی هستند که می‌توانید برای لینوکس پیدا کنید.</a></p> -<h3 id="بسیارخب-tty-در-لینوکس-چیست">بسیارخب tty در لینوکس چیست؟</h3> -<p>زمانی که +<a class="link" href="https://konsole.kde.org/" target="_blank" rel="noopener" +>کنسول +(Konsole)</a> +<a class="link" href="https://itsfoss.com/linux-terminal-emulators/" target="_blank" rel="noopener" +>چنتا از بهترین ترمینال هایی هستند که می‌توانید برای لینوکس پیدا کنید.</a></p> +<h3 id="بسیارخب-tty-در-لینوکس-چیست">بسیارخب tty در لینوکس چیست؟ +</h3><p>زمانی که tty به لینوکس و یونیکس آمد، یک دستگاه مستقل در یونیکس و لینوکس بود گاهی tty به یک دستگاه ورودی فیزیکی مانند serial port(درگاه سریال) اشاره می‌کرد، و گاهی به ترمینال های مجازی اشاره می‌کرد که به کاربران اجازه تعامل با -سیستم را می‌داد.</p> -<p>tty +سیستم را می‌داد.</p> +<p>tty یک زیر سیستم در لینوکس و یونیکس است که مدریت فرایند، ویرایش خط و مدیریت نشست ها را در سطح کرنل از طریق درایور های tty -ممکن می‌کند.</p> -<p>از دیدگاه برنامه نویسی شما باید در این موضوع عمیق تر شوید. اما محدوده این +ممکن می‌کند.</p> +<p>از دیدگاه برنامه نویسی شما باید در این موضوع عمیق تر شوید. اما محدوده این پست را در نظر بگیرید، این مقاله باید یک توضیح ساده برای درک بهتر باشد. در حقیقت، هر گاه یک ترمینال را باز می‌کنیم یا هر نوع shell @@ -165,114 +134,92 @@ shell با tty مجازی که -<em>PTY</em> +<em>PTY</em> یا -<em>pseudo-tty</em> -هم شناخته می‌شوند، تعامل خواهد داشت.</p> -<p>شما می‌توانید +<em>pseudo-tty</em> +هم شناخته می‌شوند، تعامل خواهد داشت.</p> +<p>شما می‌توانید tty را در ترمینال تایپ کنید و pty -مرتبط را پیدا کنید.</p> -<h3 id="چگونه-به-tty-در-لینوکس-دسترسی-داشته-باشیم">چگونه به tty در لینوکس دسترسی داشته باشیم؟</h3> -<p><img src="https://bit-orbit.github.io/images/post/ubuntu-tty.png" - - - - loading="lazy" - - alt="tty-in-ubuntu" - - -></p> -<p>دسترسی به +مرتبط را پیدا کنید.</p> +<h3 id="چگونه-به-tty-در-لینوکس-دسترسی-داشته-باشیم">چگونه به tty در لینوکس دسترسی داشته باشیم؟ +</h3><p><img src="https://bit-orbit.github.io/images/post/ubuntu-tty.png" +loading="lazy" +alt="tty-in-ubuntu" +></p> +<p>دسترسی به tty در لینوکس ساده است. در حقیت زمانی که هیچ سرنخی از اینکه tty چیست نداشتم، به طور اتفاقی به آن دسترسی پیدا کردم و از اینکه چطوری باید -از آن خارج شوم وحشت زده شدم!</p> -<p>شما می‌توانید با کلید های میانبر زیر در اکثر توزیع های لینوکس به صفحه -tty -دسترسی پیدا کنید.</p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F1</code> – <strong>Lockscreen</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F2</code> – <strong>Desktop Environment</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F3</code> – <strong>TTY3</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F4</code> – <strong>TTY4</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F5</code> – <strong>TT5</strong></p> -<p><code>CTRL</code> + <code>ALT</code> + <code>F6</code> – <strong>TTY6</strong></p> -<p>شما می‌توانید حد اکثر به -<u>6</u> +از آن خارج شوم وحشت زده شدم!</p> +<p>شما می‌توانید با کلید های میانبر زیر در اکثر توزیع های لینوکس به صفحه +tty +دسترسی پیدا کنید.</p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F1</code> – <strong>Lockscreen</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F2</code> – <strong>Desktop Environment</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F3</code> – <strong>TTY3</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F4</code> – <strong>TTY4</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F5</code> – <strong>TT5</strong></p> +<p><code>CTRL</code> + <code>ALT</code> + <code>F6</code> – <strong>TTY6</strong></p> +<p>شما می‌توانید حد اکثر به +<u>6</u> tty دسترسی داشته باشید، با این حال دو تا از اولین کلید های میانبر به صفحه قفل -و محیط دسکتاپ اشاره دارد.</p> -<p><img src="https://bit-orbit.github.io/images/post/ubuntu-tty4.png" - - - - loading="lazy" - - alt="cmd-with-tty" - - -></p> -<p>بنابر این، با باقی کلید های میانبر شما به محیط +و محیط دسکتاپ اشاره دارد.</p> +<p><img src="https://bit-orbit.github.io/images/post/ubuntu-tty4.png" +loading="lazy" +alt="cmd-with-tty" +></p> +<p>بنابر این، با باقی کلید های میانبر شما به محیط command-line -دسترسی می‌گیرید.</p> -<h3 id="چه-زمانی-شما-از-tty-در-لینوکس-استفاده-خواهید-کرد">چه زمانی شما از tty در لینوکس استفاده خواهید کرد؟</h3> -<p>tty -فقط یک گنج تکنیکی نیست. حتی برای کاربرانی مثل من که توسعه دهنده هم نیستند مفید است.</p> -<p>زمانی که محیط گرافیکی فریز می‌شود باید به کار بیاید. در بعضی از مواقع +دسترسی می‌گیرید.</p> +<h3 id="چه-زمانی-شما-از-tty-در-لینوکس-استفاده-خواهید-کرد">چه زمانی شما از tty در لینوکس استفاده خواهید کرد؟ +</h3><p>tty +فقط یک گنج تکنیکی نیست. حتی برای کاربرانی مثل من که توسعه دهنده هم نیستند مفید است.</p> +<p>زمانی که محیط گرافیکی فریز می‌شود باید به کار بیاید. در بعضی از مواقع نصب مجدد محیط گرافیکی با استفاده از tty -می‌تواند مشکل را حل کند.</p> -<p>یا شما می‌توانید +می‌تواند مشکل را حل کند.</p> +<p>یا شما می‌توانید tty را برای انجام کار هایی مثل آپدیت انتخاب کنید جایی که شما نمی‌خواهید مشکلات بصری فرایند -های شما را مختل کند.</p> -<p>بد ترین مورد سناریو، شما می‌تواند زمانی که محیط دستکتاپ جواب نمی‌دهد، برای ریبوت +های شما را مختل کند.</p> +<p>بد ترین مورد سناریو، شما می‌تواند زمانی که محیط دستکتاپ جواب نمی‌دهد، برای ریبوت به tty -مراجعه کنید.</p> -<p>بعضی از کاربران ترجیح می‌دهند که فایل های بزرگ را با +مراجعه کنید.</p> +<p>بعضی از کاربران ترجیح می‌دهند که فایل های بزرگ را با tty -منتقل کنند(من از آنها نیستم)</p> -<h3 id="tty-به-عنوان-یک-دستور-در-لینوکس">tty به عنوان یک دستور در لینوکس</h3> -<p><img src="https://bit-orbit.github.io/images/post/tty-cmd.png" - - - - loading="lazy" - - alt="tty-cmd" - - -></p> -<p>همانطور که در صفحه راهنمای +منتقل کنند(من از آنها نیستم)</p> +<h3 id="tty-به-عنوان-یک-دستور-در-لینوکس">tty به عنوان یک دستور در لینوکس +</h3><p><img src="https://bit-orbit.github.io/images/post/tty-cmd.png" +loading="lazy" +alt="tty-cmd" +></p> +<p>همانطور که در صفحه راهنمای (man page) tty توضیح داده شده است، زمانی که شما tty -را در ترمینال تایپ کنید، نام فایل ترمینال که به وردی استاندارد متصل است را چاپ می‌کند.</p> -<p>به عبارت دیگر برای دانستن عدد +را در ترمینال تایپ کنید، نام فایل ترمینال که به وردی استاندارد متصل است را چاپ می‌کند.</p> +<p>به عبارت دیگر برای دانستن عدد tty که به آن متصل هستید، فقط tty را در ترمینال تایپ کنید. اگر چند کاربر از راه دور به سیستم لینوکس متصل هستند، می‌توانید برای برسی اینکه به چه متصل هستند از کامند -<code>who</code> -استفاده کنید.</p> -<h3 id="خارج-از-ترجمه">خارج از ترجمه</h3> -<p>متن ترجمه شده بود و خب من یک مترجم تخصصی نیستم، من یک برنامه نویسم که بلاگ نویسی +<code>who</code> +استفاده کنید.</p> +<h3 id="خارج-از-ترجمه">خارج از ترجمه +</h3><p>متن ترجمه شده بود و خب من یک مترجم تخصصی نیستم، من یک برنامه نویسم که بلاگ نویسی و ترجمه رو هم دوست دارم، سعی کردم به بهترین نحو متن را ترجمه کنم و در اختیار بقیه بذارم، اگر حس کردین جایی از متن مشکلی داره، خیلی خوشحال می‌شوم -که مشکلم رو بهم بیگید، این کمک بزرگیه.</p> -<p>متن اصلی رو می‌توانید از -<a class="link" href="https://itsfoss.com/what-is-tty-in-linux/" target="_blank" rel="noopener" - >این لینک</a> -بخوانید.</p> -</div> - - - - +که مشکلم رو بهم بیگید، این کمک بزرگیه.</p> +<p>متن اصلی رو می‌توانید از +<a class="link" href="https://itsfoss.com/what-is-tty-in-linux/" target="_blank" rel="noopener" +>این لینک</a> +بخوانید.</p> +</div> \ No newline at end of file diff --git a/docs/tags/tty/page/1/index.html b/docs/tags/tty/page/1/index.html index e9b4f93..8780d2e 100644 --- a/docs/tags/tty/page/1/index.html +++ b/docs/tags/tty/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/tty/ - - - - - - +https://bit-orbit.github.io/tags/tty/ + \ No newline at end of file diff --git "a/docs/tags/umbrel-os-\332\206\333\214\330\263\330\252/index.html" "b/docs/tags/umbrel-os-\332\206\333\214\330\263\330\252/index.html" index 661e2c9..fe43613 100644 --- "a/docs/tags/umbrel-os-\332\206\333\214\330\263\330\252/index.html" +++ "b/docs/tags/umbrel-os-\332\206\333\214\330\263\330\252/index.html" @@ -1,559 +1,37 @@ - - - - -Tag: Umbrel Os چیست - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

Umbrel Os چیست

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: Umbrel Os چیست - bit-orbit +

Tags

1 صفحه

Umbrel Os چیست

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git "a/docs/tags/umbrel-os-\332\206\333\214\330\263\330\252/index.xml" "b/docs/tags/umbrel-os-\332\206\333\214\330\263\330\252/index.xml" index 39d5c96..16c5af3 100644 --- "a/docs/tags/umbrel-os-\332\206\333\214\330\263\330\252/index.xml" +++ "b/docs/tags/umbrel-os-\332\206\333\214\330\263\330\252/index.xml" @@ -1,19 +1,5 @@ - - - - Umbrel Os چیست on bit-orbit - https://bit-orbit.github.io/tags/umbrel-os-%DA%86%DB%8C%D8%B3%D8%AA/ - Recent content in Umbrel Os چیست on bit-orbit - Hugo -- gohugo.io - fa - Mon, 11 Dec 2023 01:39:34 +0330 - cloud را به خانه خود ببرید! - https://bit-orbit.github.io/p/cloud-%D8%B1%D8%A7-%D8%A8%D9%87-%D8%AE%D8%A7%D9%86%D9%87-%D8%AE%D9%88%D8%AF-%D8%A8%D8%A8%D8%B1%DB%8C%D8%AF/ - Mon, 11 Dec 2023 01:39:34 +0330 - - https://bit-orbit.github.io/p/cloud-%D8%B1%D8%A7-%D8%A8%D9%87-%D8%AE%D8%A7%D9%86%D9%87-%D8%AE%D9%88%D8%AF-%D8%A8%D8%A8%D8%B1%DB%8C%D8%AF/ - <img src="https://bit-orbit.github.io/images/post/umbrel.webp" alt="Featured image of post cloud را به خانه خود ببرید!" /><h3 id="چطور-این-ایده-به-ذهن-من-رسید-">چطور این ایده به ذهن من رسید ؟</h3> -<p>جریان این ایده به این شکل بود که خب ما ایرانی ها اینترنت +Umbrel Os چیست on bit-orbithttps://bit-orbit.github.io/tags/umbrel-os-%DA%86%DB%8C%D8%B3%D8%AA/Recent content in Umbrel Os چیست on bit-orbitHugo -- gohugo.iofaMon, 11 Dec 2023 01:39:34 +0330cloud را به خانه خود ببرید!https://bit-orbit.github.io/p/cloud-%D8%B1%D8%A7-%D8%A8%D9%87-%D8%AE%D8%A7%D9%86%D9%87-%D8%AE%D9%88%D8%AF-%D8%A8%D8%A8%D8%B1%DB%8C%D8%AF/Mon, 11 Dec 2023 01:39:34 +0330https://bit-orbit.github.io/p/cloud-%D8%B1%D8%A7-%D8%A8%D9%87-%D8%AE%D8%A7%D9%86%D9%87-%D8%AE%D9%88%D8%AF-%D8%A8%D8%A8%D8%B1%DB%8C%D8%AF/<img src="https://bit-orbit.github.io/images/post/umbrel.webp" alt="Featured image of post cloud را به خانه خود ببرید!" /><h3 id="چطور-این-ایده-به-ذهن-من-رسید-">چطور این ایده به ذهن من رسید ؟ +</h3><p>جریان این ایده به این شکل بود که خب ما ایرانی ها اینترنت به شدت محدود شده‌ای داریم، برای همین ما برای استفاده از اینترنت از vpn @@ -26,100 +12,82 @@ ip vpn رو که به هزار زحمت وصل شده بود، قطع کنیم. خب چاره چیه؟ اینکه اگه یک سیستم توی خونه یا شرکت دارین -که همیشه روشنه رو تبدیل به یک سرور کنیم :)</p> -<p>توی این فکر بودم که نیازم رو به چنین سیستم عاملی حس کردم، بعد کمی نیاز های دیگه رو بهش اضافه کردم و یه پست +که همیشه روشنه رو تبدیل به یک سرور کنیم :)</p> +<p>توی این فکر بودم که نیازم رو به چنین سیستم عاملی حس کردم، بعد کمی نیاز های دیگه رو بهش اضافه کردم و یه پست داخل تلگرام نوشتم، یکی کامنت گذاشت و خب این سیستم عامل -را معرفی کرد.</p> -<hr> -<h3 id="umbrel-چیست-">umbrel چیست ؟</h3> -<p>درواقع +را معرفی کرد.</p> +<hr> +<h3 id="umbrel-چیست-">umbrel چیست ؟ +</h3><p>درواقع umbrel یک سیستم عامل است، زمانی که شما این سیستم عامل را نصب کنید، یک صفحه وب در اختیار شما می‌گذارد و شما از طریق این صفحه درون مرورگر خود می‌توانید به سیستم دسترسی داشته باشید. برای مثلا می‌توانید سرویس های مختلف و ابزار های -مختلف را روی +مختلف را روی umbrel -نصب و یا کانفیگ کنید.</p> -<p>سرویس هایی که +نصب و یا کانفیگ کنید.</p> +<p>سرویس هایی که umbrel ارائه می‌دهد تقریبا همان سرویس هایی هستند که شما در طول -روز از نسخه های تجاری آنها استفاده می‌کنید.</p> -<p>اگه دقیق تر بخواهم بگم، این سیستم عامل یک +روز از نسخه های تجاری آنها استفاده می‌کنید.</p> +<p>اگه دقیق تر بخواهم بگم، این سیستم عامل یک store در اختیار کاربران‌ش قرار می‌ده. و خب این یکی از مهم ترین کار هایی است که این سیستم عامل انجام می‌ده چرا که اگر این استور وجود نداشت، شما شخصا باید فرایند کانفیگ و نصب سرویس ها را به عهده می‌گرفتید(این کار یک متخصص دواپس -هست، خیلی هم جالیه)</p> -<p><img src="https://bit-orbit.github.io/images/post/umbrelstore.jpg" - - - - loading="lazy" - - alt="umbrel store" - - -></p> -<hr> -<h3 id="umbrel-چه-نیازی-را-برطرف-میکند-">umbrel چه نیازی را برطرف می‌کند ؟</h3> -<p>وقتی از سرویس های تحت اینترنت استفاده می‌کنید، +هست، خیلی هم جالیه)</p> +<p><img src="https://bit-orbit.github.io/images/post/umbrelstore.jpg" +loading="lazy" +alt="umbrel store" +></p> +<hr> +<h3 id="umbrel-چه-نیازی-را-برطرف-میکند-">umbrel چه نیازی را برطرف می‌کند ؟ +</h3><p>وقتی از سرویس های تحت اینترنت استفاده می‌کنید، به احتمال زیاد شما کالای اون شرکتی هستید که ابزار را در اختیارتون قرار داده است. اگر دقت کنیم می‌بینیم که این شرکت ها بسیاری کاربر دارند و خب برای ارائه درست خدمت به کاربرانشون سرور های زیادی اجاره می‌کنند سرویس ها رو دائم اپدیت و بهتر می‌کنند -و خب سرویس های متعددی هم ارائه می‌کنند.</p> -<p>همه این کار ها نیاز به هزینه های زیادی دارند، +و خب سرویس های متعددی هم ارائه می‌کنند.</p> +<p>همه این کار ها نیاز به هزینه های زیادی دارند، بودجه این شرکت ها فقط و فقط با تبلیغات تامین نمی‌شود بلکه با فروش اطلاعات کاربرانشون(خود ما) به شرکت ها و دولت ها -تامین می‌شود.</p> -<p><img src="https://bit-orbit.github.io/images/post/zuker.jpg" - - - - loading="lazy" - - alt="zukerberg spying" - - -></p> -<p>و البته اگر حتی شما برای سرویسی که استفاده می‌کنید +تامین می‌شود.</p> +<p><img src="https://bit-orbit.github.io/images/post/zuker.jpg" +loading="lazy" +alt="zukerberg spying" +></p> +<p>و البته اگر حتی شما برای سرویسی که استفاده می‌کنید هزینه‌ای پرداخت کنید، مثلا برای استفاده از گوگل دایو ماهانه هزینه هم پرداخت کنید، باز هم مشکلاتی وجود دارد، مثلا قانونا گوگل مالک فایلی است که شما روی سرور هایش -آپلود می‌کنید.</p> -<p>در چنین مواقعی هست که اصطلاح +آپلود می‌کنید.</p> +<p>در چنین مواقعی هست که اصطلاح self-hosting سرویس ها استفاده می‌شود. به این معنی که سرویس هایی که شما روزانه از آن استفاده می‌کنید را خودتان راه اندازی -کنید. اما اینکار نیاز به دانش بالایی داره.</p> -<p>سیستم عامل +کنید. اما اینکار نیاز به دانش بالایی داره.</p> +<p>سیستم عامل umbrel این کار را ساده کرده است، با این تفاوت که قبلا شما باید برای استفاده چند ابزار روی یک سرور، باید سرور رو به درستی کانفیگ می‌کردین سپس ابزار ها را کانفیگ، و بعد سرویس ها راه اجرا می‌کردین. اما الان فقط با یک کلیک شما سرویس توییتر خود را -راه اندازی می‌کنید!</p> -<p><img src="https://bit-orbit.github.io/images/post/umbrelselfhosting.jpg" - - - - loading="lazy" - - alt="umbrel self hosting" - - -></p> -<hr> -<h3 id="umbrel-به-روی-سیستم-عامل-دسکتاپ">umbrel به روی سیستم عامل دسکتاپ</h3> -<p>نصب +راه اندازی می‌کنید!</p> +<p><img src="https://bit-orbit.github.io/images/post/umbrelselfhosting.jpg" +loading="lazy" +alt="umbrel self hosting" +></p> +<hr> +<h3 id="umbrel-به-روی-سیستم-عامل-دسکتاپ">umbrel به روی سیستم عامل دسکتاپ +</h3><p>نصب umbrel بسیاز سادهست فقط کافیه یک سیستم عامل debian رو روی سیستمتون داشته باشید، یک ترمینال باز کنید و کامند -نصب را بزنید، با یک کامند این سیستم نصب می‌شه.</p> -<p>ولی خب اگر سیستم عاملی ندارید که بر پایه +نصب را بزنید، با یک کامند این سیستم نصب می‌شه.</p> +<p>ولی خب اگر سیستم عاملی ندارید که بر پایه debain باشه، می‌شه به سادگی روی ماشین مجازی یک دبیان نصب کنید، حالت شبکه اون سیستم عامل رو @@ -136,10 +104,10 @@ IP debain که umbrel -را روی ان نصب کردین را وارد کنید و تمام!</p> -<hr> -<h3 id="umbrel-به-روی-رزبری-پای">umbrel به روی رزبری پای</h3> -<p>رزبری پای! یک سخت افزار کوچک که تقریبا یک کامپیوتر کامل +را روی ان نصب کردین را وارد کنید و تمام!</p> +<hr> +<h3 id="umbrel-به-روی-رزبری-پای">umbrel به روی رزبری پای +</h3><p>رزبری پای! یک سخت افزار کوچک که تقریبا یک کامپیوتر کامل است! البته که قدرت پردازش بالایی ندارد ولی در IOT استفاده زیادی دارد. با توجه به اینکه پردازنده های @@ -151,24 +119,18 @@ umbrel را نصب کرد، برای همین سیستم عامل umbrel یک نسخه مخصوص برای رزبری پای دارد، کافیست آن را دانلود و -به روی ربزی خود نصب کنید.</p> -<p>به این دقت کنید که خب سعنی کنید یک هارد اکسترنال به +به روی ربزی خود نصب کنید.</p> +<p>به این دقت کنید که خب سعنی کنید یک هارد اکسترنال به رزبری متصل کنید که فضای کافی برای سروریسی مانند next cloud -داشته باشید.</p> -<p><img src="https://bit-orbit.github.io/images/post/umbrelonressbery.jpg" - - - - loading="lazy" - - alt="umbrel on ressbery pi" - - -></p> -<hr> -<h3 id="umbrel-بروی-سرور-شخصی">umbrel بروی سرور شخصی</h3> -<p>به سادگی اچرای یک کامند! کافیست فقط سیستم عامل +داشته باشید.</p> +<p><img src="https://bit-orbit.github.io/images/post/umbrelonressbery.jpg" +loading="lazy" +alt="umbrel on ressbery pi" +></p> +<hr> +<h3 id="umbrel-بروی-سرور-شخصی">umbrel بروی سرور شخصی +</h3><p>به سادگی اچرای یک کامند! کافیست فقط سیستم عامل سرورتون debain و یا کلا بر پایه @@ -177,10 +139,10 @@ debian ubuntu باشه. کامند اجرا را وارد کنید و بعد از اتمام فرایند نصب، IP -سرور را وارد مرورگر کنید، تمام!</p> -<hr> -<h3 id="دستگاه-umbrel">دستگاه umbrel</h3> -<p>شرکت سازنده +سرور را وارد مرورگر کنید، تمام!</p> +<hr> +<h3 id="دستگاه-umbrel">دستگاه umbrel +</h3><p>شرکت سازنده umbrel به جز سیستم عامل، یک دستگاهی طراحی کرده است که به صورت پیشفرض سیستم عامل @@ -192,35 +154,29 @@ umbrel به روی rassbery PI استفاده می‌کنید، شما نیاز به یک فن دارید تا این دستگاه -را دائم خنک کند، از طرفی خود فن هم باید خنک شود.</p> -<p>اینجاست که این دستگاه رو برای شرکت یا خانه‌ شما مناسب‌تر -می‌کند(مطمئن باشید تبلیغ نمی‌کنم)</p> -<p><img src="https://bit-orbit.github.io/images/post/umbreldevice.jpg" - - - - loading="lazy" - - alt="umbrel device" - - -></p> -<hr> -<h3 id="umbrel-چطور-کار-میکند-">umbrel چطور کار می‌کند ؟</h3> -<p>اگه بخواهم کمی فنی‌تر وارد ماجرا بشم، همونطور که گفت +را دائم خنک کند، از طرفی خود فن هم باید خنک شود.</p> +<p>اینجاست که این دستگاه رو برای شرکت یا خانه‌ شما مناسب‌تر +می‌کند(مطمئن باشید تبلیغ نمی‌کنم)</p> +<p><img src="https://bit-orbit.github.io/images/post/umbreldevice.jpg" +loading="lazy" +alt="umbrel device" +></p> +<hr> +<h3 id="umbrel-چطور-کار-میکند-">umbrel چطور کار می‌کند ؟ +</h3><p>اگه بخواهم کمی فنی‌تر وارد ماجرا بشم، همونطور که گفت این سیستم عامل بهترین ویژگی که ارائه می‌کند store آن است. البته که اینجا store به معنی فروشگاه نیست، بلکه شبیه یک بازاری است که همه -اجناس‌ش رایگان است :)</p> -<p>سرویس های +اجناس‌ش رایگان است :)</p> +<p>سرویس های umbrel همه سرویس هایی هستند که به صورت منبع باز در اختیار همه قرار گرفته است، این سرویس ها برای اجرا شدن نیاز به شخصی دارد که دانش کافی از سرور داشته باشد و خب نحوه کانفیگ -کردن هر کدام از ابزار ها و سرویس ها را بداند.</p> -<p>دانلود و نصب هر سرویس به صورت جدگانه ممکن است به مشکلات +کردن هر کدام از ابزار ها و سرویس ها را بداند.</p> +<p>دانلود و نصب هر سرویس به صورت جدگانه ممکن است به مشکلات متعددی برخورد کند، مثلا در نصب سرویسی مثل nexcloud شما ممکن است نیاز به ورژن خاصی از @@ -229,11 +185,11 @@ php nginx برای اجرای اسکریپت های php -هم واقعا به اندازه زیادی دردسر دارد.</p> -<p>اینجاست که داکر وارد ماجرا می‌شود! +هم واقعا به اندازه زیادی دردسر دارد.</p> +<p>اینجاست که داکر وارد ماجرا می‌شود! umbrel -از قبل تمامی سرویس ها را داکرایز کرده است.</p> -<p>داکرایز به چه معنیست؟ +از قبل تمامی سرویس ها را داکرایز کرده است.</p> +<p>داکرایز به چه معنیست؟ درواقع به این فکر کنید که شما یک برنامه را می‌خواهید نصب کنید، این سرویس توسط سازنده آن از ورژن خاصی از زبان مشخصی، لایبراری و فایل هایی استفاده کرده است که پیشفرض @@ -244,8 +200,8 @@ image قرار داده است، و بعد کافیست شما آن فایل را به برنامه docker engine -بدهید، آن برنامه باید بدون هیچ مشکلی اجرا شود.</p> -<p>سیستم عامل +بدهید، آن برنامه باید بدون هیچ مشکلی اجرا شود.</p> +<p>سیستم عامل umbrel دقیقا چنین کاری می‌کند. تمامی image @@ -253,20 +209,14 @@ image store برای شما شما لیست می‌کند، شما کافیست که دکمه install -را بزنید، بنگ! سرویس شما آماده است :)</p> -<p><img src="https://bit-orbit.github.io/images/post/umbreldocker.jpg" - - - - loading="lazy" - - alt="umbrel dockeriz" - - -></p> -<hr> -<h3 id="امنیت">امنیت</h3> -<p>اگر +را بزنید، بنگ! سرویس شما آماده است :)</p> +<p><img src="https://bit-orbit.github.io/images/post/umbreldocker.jpg" +loading="lazy" +alt="umbrel dockeriz" +></p> +<hr> +<h3 id="امنیت">امنیت +</h3><p>اگر umbrel را به روی چیزی به جز سرور دارید، حتی اگر برای آن یک دامنه هم بگیرید، @@ -276,8 +226,8 @@ umbrel tor به آن متصل شوید و یا یک VPN -سرور داخل شبکه داخلی خود راه اندازی کنید.</p> -<p>البته +سرور داخل شبکه داخلی خود راه اندازی کنید.</p> +<p>البته umbrel به جز tor @@ -287,60 +237,54 @@ VPN tailscale که مستقیم به روی umbrel -نصب می‌شود.</p> -<p><img src="https://bit-orbit.github.io/images/post/tailscalaumbrel.jpg" - - - - loading="lazy" - - alt="tailscala umbrel" - - -></p> -<hr> -<h3 id="سرویس-های-کاربردی-umbrel">سرویس های کاربردی umbrel</h3> -<ul> -<li>matrix</li> -</ul> -<blockquote> -<p>خیلی ساده بگم، می‌تونید با این سرویس +نصب می‌شود.</p> +<p><img src="https://bit-orbit.github.io/images/post/tailscalaumbrel.jpg" +loading="lazy" +alt="tailscala umbrel" +></p> +<hr> +<h3 id="سرویس-های-کاربردی-umbrel">سرویس های کاربردی umbrel +</h3><ul> +<li>matrix</li> +</ul> +<blockquote> +<p>خیلی ساده بگم، می‌تونید با این سرویس telegtam خودتون رو راه اندازی کنید. برای اینکه بیشتر درباراه این سرویس بدونید، -<a class="link" href="https://www.wiregeek.ir/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/" target="_blank" rel="noopener" - >این پست</a> -من را بخوانید.</p> -</blockquote> -<ul> -<li>nextcloud</li> -</ul> -<blockquote> -<p>خیلی شبیه به گوگل درایو است، به جز نسخه وب +<a class="link" href="https://www.wiregeek.ir/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/" target="_blank" rel="noopener" +>این پست</a> +من را بخوانید.</p> +</blockquote> +<ul> +<li>nextcloud</li> +</ul> +<blockquote> +<p>خیلی شبیه به گوگل درایو است، به جز نسخه وب حتی یک اپ اندروید هم دارد که می‌توانید آدرس nextcloud را درون آن وارد کنید و از هرکحا به فضای خودتون دسترسی داشته باشید. و خب حتی بعنوان ادمین -برای افراد خانواده و یا شرکت‌تون اکانت بسازید، و فضای شخصی خودشان را در اختیارشان قرار بدین.</p> -</blockquote> -<ul> -<li>qbittorrent</li> -</ul> -<blockquote> -<p>اگر تورنت را می‌شناسید، قطعا این کلاینت معروف را هم باید +برای افراد خانواده و یا شرکت‌تون اکانت بسازید، و فضای شخصی خودشان را در اختیارشان قرار بدین.</p> +</blockquote> +<ul> +<li>qbittorrent</li> +</ul> +<blockquote> +<p>اگر تورنت را می‌شناسید، قطعا این کلاینت معروف را هم باید بشناسید، این کلاینت یک نسخه وب دارد که داخل فروشگاه umbrel قرار دارد. فایل های خود را برای دانلود به این کلاینت بدین و در زمانی که از اینرنت استفاده نمی‌کنید مثلا 2 تا 7 صبح -آن ها را بگذارید تا دانلود بشوند.</p> -</blockquote> -<ul> -<li>pi-hole</li> -</ul> -<blockquote> -<p>برای خلاص شدن از تبلیغات اینترنت کافیه این سرویس +آن ها را بگذارید تا دانلود بشوند.</p> +</blockquote> +<ul> +<li>pi-hole</li> +</ul> +<blockquote> +<p>برای خلاص شدن از تبلیغات اینترنت کافیه این سرویس DNS را به روی umbrel @@ -348,13 +292,13 @@ umbrel DHCP را تنظیم کنید که IP -این سرویس را به دیگر دستگاه های شبکه بدهد.</p> -</blockquote> -<ul> -<li>Jellyfin</li> -</ul> -<blockquote> -<p>یکی از نیاز های واقعا اساسی من، این سرویس است. +این سرویس را به دیگر دستگاه های شبکه بدهد.</p> +</blockquote> +<ul> +<li>Jellyfin</li> +</ul> +<blockquote> +<p>یکی از نیاز های واقعا اساسی من، این سرویس است. فیلم هایی که می‌بینم، و یا قرار است که ببینم‌شون رو می‌تونم با این سرویس به درستی دنبال کنم. در اصل این سرویس برای پخش کردن فیلم ها ساخته شده‌ است. @@ -364,69 +308,58 @@ jellyfin فیلم ها رو تماشا کنید، مثلا اگر تلویزیون هوشمند دارید کافیست از طریق مرورگر آن وارد umbrel -خود بشین.</p> -</blockquote> -<p>-snapdrop</p> -<blockquote> -<p>سرویس خیلی ساده‌ای است که برای انتقال فایل داخل -شبکه لوکال استفاده می‌شود.</p> -</blockquote> -<ul> -<li>whoogle search</li> -</ul> -<blockquote> -<p>البته +خود بشین.</p> +</blockquote> +<p>-snapdrop</p> +<blockquote> +<p>سرویس خیلی ساده‌ای است که برای انتقال فایل داخل +شبکه لوکال استفاده می‌شود.</p> +</blockquote> +<ul> +<li>whoogle search</li> +</ul> +<blockquote> +<p>البته whoogle یک موتور جست و جوی meta است، به این معنی که خودش وب را خزش نمی‌کند و از موتور های جست و جوی دیگر برای نتیجه جست و جوی شما استفاده -می‌کند.</p> -</blockquote> -<ul> -<li>LlamaGPT</li> -</ul> -<blockquote> -<p>چیزی شبیه +می‌کند.</p> +</blockquote> +<ul> +<li>LlamaGPT</li> +</ul> +<blockquote> +<p>چیزی شبیه ChatGPT -ولی افلاین و کاملا خصوصی.</p> -</blockquote> -<hr> -<h3 id="راه-اندازی-سرویس-های-شخصی">راه اندازی سرویس های شخصی</h3> -<p>خیلی از سرویس ها هنوز به +ولی افلاین و کاملا خصوصی.</p> +</blockquote> +<hr> +<h3 id="راه-اندازی-سرویس-های-شخصی">راه اندازی سرویس های شخصی +</h3><p>خیلی از سرویس ها هنوز به umbrel اضافه نشده. اضافه کردن سرویس به خود store -هم کار سختی نیستی، کافیه فقط داکرایز کردن رو بلد باشین.</p> -<ul> -<li>cache server</li> -</ul> -<p>کش سرور ها معمولا با +هم کار سختی نیستی، کافیه فقط داکرایز کردن رو بلد باشین.</p> +<ul> +<li>cache server</li> +</ul> +<p>کش سرور ها معمولا با transparent proxy بدون اینکه کاربران متوجه پروکسی بشوند پیاده سازی می‌شوند. -کار آنها کاهش مصرف ترافیک است.</p> -<p>یکی از سرویس هایی که خیلی از شرکت ها برای کاهش هزینه های +کار آنها کاهش مصرف ترافیک است.</p> +<p>یکی از سرویس هایی که خیلی از شرکت ها برای کاهش هزینه های اینرنت و یا خب برای بهبود سرعت اینترنت می‌کنند، ارائه cache server -هست.</p> -<p>خیلی خلاصه بگم کش سرور محتوایی که کاربران بازدید می‌کنند +هست.</p> +<p>خیلی خلاصه بگم کش سرور محتوایی که کاربران بازدید می‌کنند را درون خود برای مدتی و با شرایطی از پیش تعیین شده نگه ‌می‌دارد و هر بار که کاربران به محتوای قبلی درخواست بدهند، دیگر آن ریکوئست تا سایت اصلی نمی‌رود و خود -کش سرور که در شبکه داخلی است جواب آن را می‌دهد</p> -<p><img src="https://bit-orbit.github.io/images/post/cacheumber.jpg" - - - - loading="lazy" - - alt="cache server" - - -></p> -<hr> - - - - - +کش سرور که در شبکه داخلی است جواب آن را می‌دهد</p> +<p><img src="https://bit-orbit.github.io/images/post/cacheumber.jpg" +loading="lazy" +alt="cache server" +></p> +<hr> \ No newline at end of file diff --git "a/docs/tags/umbrel-os-\332\206\333\214\330\263\330\252/page/1/index.html" "b/docs/tags/umbrel-os-\332\206\333\214\330\263\330\252/page/1/index.html" index c4f6e09..501283c 100644 --- "a/docs/tags/umbrel-os-\332\206\333\214\330\263\330\252/page/1/index.html" +++ "b/docs/tags/umbrel-os-\332\206\333\214\330\263\330\252/page/1/index.html" @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/umbrel-os-%DA%86%DB%8C%D8%B3%D8%AA/ - - - - - - +https://bit-orbit.github.io/tags/umbrel-os-%DA%86%DB%8C%D8%B3%D8%AA/ + \ No newline at end of file diff --git a/docs/tags/wget/index.html b/docs/tags/wget/index.html index 00b4c86..0082aaa 100644 --- a/docs/tags/wget/index.html +++ b/docs/tags/wget/index.html @@ -1,576 +1,37 @@ - - - - -Tag: Wget - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

2 صفحه

-

Wget

- -
-
-
- -
- - - - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: Wget - bit-orbit + \ No newline at end of file diff --git a/docs/tags/wget/index.xml b/docs/tags/wget/index.xml index 4922bd1..5c9fbfc 100644 --- a/docs/tags/wget/index.xml +++ b/docs/tags/wget/index.xml @@ -1,129 +1,88 @@ - - - - Wget on bit-orbit - https://bit-orbit.github.io/tags/wget/ - Recent content in Wget on bit-orbit - Hugo -- gohugo.io - fa - Fri, 07 Jul 2023 02:45:19 +0330 - چرا لینوکس رو دوست دارم؟ - https://bit-orbit.github.io/p/%DA%86%D8%B1%D8%A7-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D8%B1%D9%88-%D8%AF%D9%88%D8%B3%D8%AA-%D8%AF%D8%A7%D8%B1%D9%85/ - Fri, 07 Jul 2023 02:45:19 +0330 - - https://bit-orbit.github.io/p/%DA%86%D8%B1%D8%A7-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D8%B1%D9%88-%D8%AF%D9%88%D8%B3%D8%AA-%D8%AF%D8%A7%D8%B1%D9%85/ - <img src="https://bit-orbit.github.io/images/post/ill.png" alt="Featured image of post چرا لینوکس رو دوست دارم؟" /><p>دوست داشتن لینوکس واقعا دلایل زیادی داره و احتمالا هر کسی به دلیل خاصی لینوکس رو دوست داره. -مثلا یکی ممکنه آزادی‌اش رو دوست داشته باشه یکی دیگه از پکیج منیجر علاقه رو به لینوکس پیدا کرده باشه و &hellip;</p> -<p>من ترمینال قدرتمند لینوکس رو دوست دارم، چیزی که هیچوقت توی ویندوز تجربه نکرده بودم. -یکی زیبایی های ترمینال برای من ترکیب ریزالت برنامه‌های مختلف با یکدیگر و بدست اوردن نتیجه جدیده</p> -<p>مثلا بابام برای چندین پست فرستاد که هر پست شامل چهار یا پنج لینکه که من باید همه‌ش رو دانلود کنم، +Wget on bit-orbithttps://bit-orbit.github.io/tags/wget/Recent content in Wget on bit-orbitHugo -- gohugo.iofaFri, 07 Jul 2023 02:45:19 +0330چرا لینوکس رو دوست دارم؟https://bit-orbit.github.io/p/%DA%86%D8%B1%D8%A7-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D8%B1%D9%88-%D8%AF%D9%88%D8%B3%D8%AA-%D8%AF%D8%A7%D8%B1%D9%85/Fri, 07 Jul 2023 02:45:19 +0330https://bit-orbit.github.io/p/%DA%86%D8%B1%D8%A7-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D8%B1%D9%88-%D8%AF%D9%88%D8%B3%D8%AA-%D8%AF%D8%A7%D8%B1%D9%85/<img src="https://bit-orbit.github.io/images/post/ill.png" alt="Featured image of post چرا لینوکس رو دوست دارم؟" /><p>دوست داشتن لینوکس واقعا دلایل زیادی داره و احتمالا هر کسی به دلیل خاصی لینوکس رو دوست داره. +مثلا یکی ممکنه آزادی‌اش رو دوست داشته باشه یکی دیگه از پکیج منیجر علاقه رو به لینوکس پیدا کرده باشه و &hellip;</p> +<p>من ترمینال قدرتمند لینوکس رو دوست دارم، چیزی که هیچوقت توی ویندوز تجربه نکرده بودم. +یکی زیبایی های ترمینال برای من ترکیب ریزالت برنامه‌های مختلف با یکدیگر و بدست اوردن نتیجه جدیده</p> +<p>مثلا بابام برای چندین پست فرستاد که هر پست شامل چهار یا پنج لینکه که من باید همه‌ش رو دانلود کنم، درحالت عادی اگر روی ویندوز بودم خب باید هر لینک رو کپی می‌کردم و بعد وارد دانلود منیجر می‌کردم برای دانلود. -ولی خب ما مجهزیم به قدرت ترمینال لینوکس :)</p> -<p><img src="https://bit-orbit.github.io/images/post/tfiles.jpg" - - - - loading="lazy" - - alt="telegram-post-contain-links" - - -></p> -<p>خب من کاری که می‌کنم اینه که متن پست ها رو کپی می‌کنم و توی یک فایل می‌ریزم -اینطوری هم متن های فارسی پست ها و هم لینک های فایل ها رو دارم</p> -<p><img src="https://bit-orbit.github.io/images/post/ffiles2.jpg" - - - - loading="lazy" - - alt="save-links-to-file" - - -></p> -<p>بعد با دستور +ولی خب ما مجهزیم به قدرت ترمینال لینوکس :)</p> +<p><img src="https://bit-orbit.github.io/images/post/tfiles.jpg" +loading="lazy" +alt="telegram-post-contain-links" +></p> +<p>خب من کاری که می‌کنم اینه که متن پست ها رو کپی می‌کنم و توی یک فایل می‌ریزم +اینطوری هم متن های فارسی پست ها و هم لینک های فایل ها رو دارم</p> +<p><img src="https://bit-orbit.github.io/images/post/ffiles2.jpg" +loading="lazy" +alt="save-links-to-file" +></p> +<p>بعد با دستور grep با یک پترن ساده regex همه لینک ها رو از متن های فارسی جدا می‌کنم و داخل یک فایل دیگه می‌ریزم. این پترن به این شکل هست که می‌گه هر خطی که اولش http -باشه رو پیدا کن.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">cat dl.txt <span class="p">|</span> egrep <span class="s1">&#39;^http&#39;</span> &gt; dl.lst -</span></span></code></pre></td></tr></table> -</div> -</div><p><img src="https://bit-orbit.github.io/images/post/tfiles3.jpg" - - - - loading="lazy" - - alt="save-links-to-file" - - -></p> -<p>و تمام، همه لینک ها رو یکجا آماده دارم، حالا کافیه با یک دستور همه فایل -ها رو دانلود کنم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">wget -c -i dl.lst -</span></span></code></pre></td></tr></table> -</div> -</div><p>خب بعد از دانلود شدن فایل ها، یک مشکلی که دارم این هست که هر پست شامل تمامی درس های یکی از فصل هایی هست +باشه رو پیدا کن.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">cat dl.txt <span class="p">|</span> egrep <span class="s1">&#39;^http&#39;</span> &gt; dl.lst +</span></span></code></pre></td></tr></table> +</div> +</div><p><img src="https://bit-orbit.github.io/images/post/tfiles3.jpg" +loading="lazy" +alt="save-links-to-file" +></p> +<p>و تمام، همه لینک ها رو یکجا آماده دارم، حالا کافیه با یک دستور همه فایل +ها رو دانلود کنم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">wget -c -i dl.lst +</span></span></code></pre></td></tr></table> +</div> +</div><p>خب بعد از دانلود شدن فایل ها، یک مشکلی که دارم این هست که هر پست شامل تمامی درس های یکی از فصل هایی هست که بابام می‌بینه. من باید فایل ها رو براساس فصل هاشون داخل دایرکتوری های مشخص خودش قرار بدم. اینم یک راهکار خیلی ساده داره. اسم فایل ها به این شکل هست که فصل رو داخلش نوشته -<code>Option402-J04-01.mp4</code> -کافیه با یه وایلد کارت هر فصل رو جدا کنم و داخل دایرکتوری خودش بریزم</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span><span class="lnt">3 -</span><span class="lnt">4 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mv Option402-J04* j04 -</span></span><span class="line"><span class="cl">mv Option402-J05* j05 -</span></span><span class="line"><span class="cl">mv Option402-J06* j06 -</span></span><span class="line"><span class="cl">mv Option402-J07* j07 -</span></span></code></pre></td></tr></table> -</div> -</div><p>این یک مثال ساده‌ای بود که می‌تونستم بزنم برای -توضیح اینکه چرا لینوکس برام جذاب تره و کارم رو ساده تر می‌کنه.</p> - - - - اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش(عکس، استایل، جاوا اسکریپت) - https://bit-orbit.github.io/p/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4%D8%B9%DA%A9%D8%B3-%D8%A7%D8%B3%D8%AA%D8%A7%DB%8C%D9%84-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA/ - Mon, 17 Jan 2022 14:56:14 +0330 - - https://bit-orbit.github.io/p/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4%D8%B9%DA%A9%D8%B3-%D8%A7%D8%B3%D8%AA%D8%A7%DB%8C%D9%84-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA/ - <img src="https://bit-orbit.github.io/images/post/snp.jpg" alt="Featured image of post اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش(عکس، استایل، جاوا اسکریپت)" /><div dir='rtl' style='font-size:23px'> -<p>زمانی که مقاله یا پستی را می‌خوانم، گاهی احساس می‌کنم ممکنه یک مطلب را فراموش کنم. +<code>Option402-J04-01.mp4</code> +کافیه با یه وایلد کارت هر فصل رو جدا کنم و داخل دایرکتوری خودش بریزم</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mv Option402-J04* j04 +</span></span><span class="line"><span class="cl">mv Option402-J05* j05 +</span></span><span class="line"><span class="cl">mv Option402-J06* j06 +</span></span><span class="line"><span class="cl">mv Option402-J07* j07 +</span></span></code></pre></td></tr></table> +</div> +</div><p>این یک مثال ساده‌ای بود که می‌تونستم بزنم برای +توضیح اینکه چرا لینوکس برام جذاب تره و کارم رو ساده تر می‌کنه.</p>اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش(عکس، استایل، جاوا اسکریپت)https://bit-orbit.github.io/p/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4%D8%B9%DA%A9%D8%B3-%D8%A7%D8%B3%D8%AA%D8%A7%DB%8C%D9%84-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA/Mon, 17 Jan 2022 14:56:14 +0330https://bit-orbit.github.io/p/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4%D8%B9%DA%A9%D8%B3-%D8%A7%D8%B3%D8%AA%D8%A7%DB%8C%D9%84-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA/<img src="https://bit-orbit.github.io/images/post/snp.jpg" alt="Featured image of post اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش(عکس، استایل، جاوا اسکریپت)" /><div dir='rtl' style='font-size:23px'> +<p>زمانی که مقاله یا پستی را می‌خوانم، گاهی احساس می‌کنم ممکنه یک مطلب را فراموش کنم. مثلا اگه مقاله‌ای از ویرگول درباره یک دستور لینوکس بخوانم، برای اینکه مطلبش را فراموش نکنم باید هرزگاهی به پست سر بزنم و مطالب را مرور کنم. اما فکر کنید مطلب درباره برنامه‌ای باشد که می‌توان با استفاده از آن سانسور را دور زد، -ویرگول احتمالا آن مطلب را حذف می‌کند.</p> -<ul> -<li> -<p>چه راهی برای ذخیره پست پشنهاد می‌کنید که بعدا بتوان آن را بارها مرور کرد؟</p> -</li> -<li> -<p>اگر پست از سایت منبع حذف شود، و یا حتی خود سایت دیگر در دسترس نباشد، -باز هم پستی که ذخیره کرده‌اید در دسترس است؟</p> -</li> -</ul> -<p>در این پست با استفاده از ابزار +ویرگول احتمالا آن مطلب را حذف می‌کند.</p> +<ul> +<li> +<p>چه راهی برای ذخیره پست پشنهاد می‌کنید که بعدا بتوان آن را بارها مرور کرد؟</p> +</li> +<li> +<p>اگر پست از سایت منبع حذف شود، و یا حتی خود سایت دیگر در دسترس نباشد، +باز هم پستی که ذخیره کرده‌اید در دسترس است؟</p> +</li> +</ul> +<p>در این پست با استفاده از ابزار wget یک پست را با تمامی وابستگی هایش مانند عکس ها، فایل های js، @@ -132,62 +91,62 @@ css دانلود می‌کنیم و روی سیستم خودمان ذخیره می‌کنیم تا حتی اگر سایت در دسترس نباشد و یا پست -از منبع حذف شد، پست به صورت افلاین در دسترس بماند.</p> -<hr> -<h3 id="wget">wget</h3> -<p>می‌دونید که +از منبع حذف شد، پست به صورت افلاین در دسترس بماند.</p> +<hr> +<h3 id="wget">wget +</h3><p>می‌دونید که wget یک ابزار پیشرفته برای دانلود فایله، قابلیت های زیادی که داره باعث شده بعد از سالها که ابزار های پیشرفته دانلود هم نوشته شدن، همچنان wget استفاده بشه. این برنامه روی اکثر توزیع های لینوکس به صورت دیفالت نصبه پس بیایید بدون تلف کردن وقت -سوییچ های مهم برای میرور کردن یک صفحه سایت رو برسی کنیم.</p> -<p></br></br></p> -<p><strong>Ⅰ.</strong> <code>--adjust-extension</code>, <code>-E</code></p> -<p>شاید شما هم سایتی هایی را دیده باشید که -<em>url</em> +سوییچ های مهم برای میرور کردن یک صفحه سایت رو برسی کنیم.</p> +<p></br></br></p> +<p><strong>Ⅰ.</strong> <code>--adjust-extension</code>, <code>-E</code></p> +<p>شاید شما هم سایتی هایی را دیده باشید که +<em>url</em> صفحه هایشان با پسوند -<code>.asp</code> +<code>.asp</code> به پایان می‌رسند. برای مثال نگاهی به -<a class="link" href="https://www.w3schools.com/python/default.asp" target="_blank" rel="noopener" - >این آدرس</a> +<a class="link" href="https://www.w3schools.com/python/default.asp" target="_blank" rel="noopener" +>این آدرس</a> بیاندازید -<em><a class="link" href="https://www.w3schools.com/python/default.asp" target="_blank" rel="noopener" - >https://www.w3schools.com/python/default.asp</a></em> +<em><a class="link" href="https://www.w3schools.com/python/default.asp" target="_blank" rel="noopener" +>https://www.w3schools.com/python/default.asp</a></em> همانطور که می‌بینید با -<em>asp</em> +<em>asp</em> به پایان می‌رسد. زمانی که شما این صفحه را دانلود کنید، این صفحه بجای پسوند -<em>html.</em> +<em>html.</em> با پسوند -<em>asp.</em> -ذخیره خواهد شد.</p> -<blockquote> -<p>به همین دلیل ما از این سوییچ استفاده می‌کنیم تا صفحه ها را +<em>asp.</em> +ذخیره خواهد شد.</p> +<blockquote> +<p>به همین دلیل ما از این سوییچ استفاده می‌کنیم تا صفحه ها را با پسوند -<em>html.</em> -ذخیره کنیم.</p> -</blockquote> -<div dir='ltr'> -</br> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span><span class="lnt">3 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ https://example.com/some/where -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl"><span class="c1"># where.html</span> -</span></span></code></pre></td></tr></table> -</div> -</div></div> -<p></br></br></p> -<p><strong>Ⅱ.</strong> <code>--span-hosts</code>, <code>-H</code></p> -<p>اگر حتی فقط یک صفحه را میرور می‌کنیم، آن صفحه ممکن است به فایل های خارج از سایت +<em>html.</em> +ذخیره کنیم.</p> +</blockquote> +<div dir='ltr'> +</br> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ https://example.com/some/where +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="c1"># where.html</span> +</span></span></code></pre></td></tr></table> +</div> +</div></div> +<p></br></br></p> +<p><strong>Ⅱ.</strong> <code>--span-hosts</code>, <code>-H</code></p> +<p>اگر حتی فقط یک صفحه را میرور می‌کنیم، آن صفحه ممکن است به فایل های خارج از سایت که به روی یک CDN قرار گرفته اند @@ -195,1253 +154,1249 @@ CDN style sheet ها. از اینرو وقتی شما یک صفحه را میرور می‌کنید wget -فایل های خارج از سایت را دانلود نخواهد کرد.</p> -<blockquote> -<p>پوشش دادن فایل های خارج از سایت با استفاده از این سوییچ انجام داده می‌شود. +فایل های خارج از سایت را دانلود نخواهد کرد.</p> +<blockquote> +<p>پوشش دادن فایل های خارج از سایت با استفاده از این سوییچ انجام داده می‌شود. وقتی این سوییچ را روشن کنید wget همه لینک ها از جمله لینک هایی زیر دامنه را هم دانلود خواهد کرد، مگر اینکه عمق -پوشش دادن را محدود کنید.</p> -</blockquote> -<p></br></br></p> -<p><strong>Ⅲ.</strong> <code>--convert-links</code>, <code>-k</code></p> -<p>یک صفحه را که میرور کردیم با توجه به اینکه فایل های پیشیاز مثل عکس و استایل ها را +پوشش دادن را محدود کنید.</p> +</blockquote> +<p></br></br></p> +<p><strong>Ⅲ.</strong> <code>--convert-links</code>, <code>-k</code></p> +<p>یک صفحه را که میرور کردیم با توجه به اینکه فایل های پیشیاز مثل عکس و استایل ها را هم دانلود کردیم، وقتی فایل را با مرورگر باز کنیم همچنان صفحه html ما به فایل های داخل سایت منبع لینک شده است و فایل های پیشنازش را حتی با اینکه -روی سیستم داریم، باز هم از آدرس خارجی دریافت می‌کند و نمایش می‌دهد.</p> -<blockquote> -<p>برای اینکه یک صفحه فایل های پیشنیازش را از فایل هایی که در کنار صفحه اصلی دانلود +روی سیستم داریم، باز هم از آدرس خارجی دریافت می‌کند و نمایش می‌دهد.</p> +<blockquote> +<p>برای اینکه یک صفحه فایل های پیشنیازش را از فایل هایی که در کنار صفحه اصلی دانلود کرده است بگیرد، از این سوییچ استفاده می‌کنیم. این سوییچ تمامی لینک ها را به -لینک های داخلی تبدیل می‌کند و صفحه موقع لود شدن از فایل های داخلی استفاده می‌کند.</p> -</blockquote> -<p></br></br></p> -<p><strong>Ⅳ.</strong> <code>--page-requisites</code>, <code>-p</code></p> -<blockquote> -<p>این سوییچ باعث می‌شود که +لینک های داخلی تبدیل می‌کند و صفحه موقع لود شدن از فایل های داخلی استفاده می‌کند.</p> +</blockquote> +<p></br></br></p> +<p><strong>Ⅳ.</strong> <code>--page-requisites</code>, <code>-p</code></p> +<blockquote> +<p>این سوییچ باعث می‌شود که wget تمامی فایل های ضروری برای درست نمایش داده شدن html -را دانلود کند. این فایل ها شامل عکس ها، استایل ها و یا صدا ها می‌شود.</p> -</blockquote> -<p></br></br></p> -<p><strong>Ⅴ.</strong> <code>--no-directories</code>, <code>-nd</code></p> -<p>به صورت پیشفرض زمانی که صفحه‌ای با این ادرس را دانلود کنیم</p> -<p><code>https://example.com/some/where/page.html</code></p> -<p>برنامه +را دانلود کند. این فایل ها شامل عکس ها، استایل ها و یا صدا ها می‌شود.</p> +</blockquote> +<p></br></br></p> +<p><strong>Ⅴ.</strong> <code>--no-directories</code>, <code>-nd</code></p> +<p>به صورت پیشفرض زمانی که صفحه‌ای با این ادرس را دانلود کنیم</p> +<p><code>https://example.com/some/where/page.html</code></p> +<p>برنامه wget -این صفحه و فایل های مورد نیازش را به این صورت ذخیره خواهد کرد</p> -<p><code>some/where/page.html/.</code></p> -<p>اما با استفاده از سوییچ -<code>nd-</code> -آن صفحه و فایل های مورد نیازش فقط داخل یک دایرکتوری ذخیره خواهد شد. به این صورت</p> -<p><code>page.html/.</code></p> -<blockquote> -<p>با فعال کردن این سوییچ +این صفحه و فایل های مورد نیازش را به این صورت ذخیره خواهد کرد</p> +<p><code>some/where/page.html/.</code></p> +<p>اما با استفاده از سوییچ +<code>nd-</code> +آن صفحه و فایل های مورد نیازش فقط داخل یک دایرکتوری ذخیره خواهد شد. به این صورت</p> +<p><code>page.html/.</code></p> +<blockquote> +<p>با فعال کردن این سوییچ wget صفحه و فایل های پیشنیاز را داخل دایرکتوری فعلی ذخیره خواهد کرد. و اگر -نام یک فایل بیش از یکبار تکرار شود، به نام فایل پسوند اضافه خواهد شد.</p> -</blockquote> -<p></br></br></p> -<h3 id="مثال-کاربردی-و-خروجی">مثال کاربردی و خروجی</h3> -<ul> -<li>برای مثال من یک -<a class="link" href="https://vrgl.ir/c3fVa" target="_blank" rel="noopener" - >پست توی ویرگول</a> +نام یک فایل بیش از یکبار تکرار شود، به نام فایل پسوند اضافه خواهد شد.</p> +</blockquote> +<p></br></br></p> +<h3 id="مثال-کاربردی-و-خروجی">مثال کاربردی و خروجی +</h3><ul> +<li>برای مثال من یک +<a class="link" href="https://vrgl.ir/c3fVa" target="_blank" rel="noopener" +>پست توی ویرگول</a> که آموزش الگوریتم RSA -هست رو دانلود می‌کنم.</li> -</ul> -</br> -</div> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt"> 10 -</span><span class="lnt"> 11 -</span><span class="lnt"> 12 -</span><span class="lnt"> 13 -</span><span class="lnt"> 14 -</span><span class="lnt"> 15 -</span><span class="lnt"> 16 -</span><span class="lnt"> 17 -</span><span class="lnt"> 18 -</span><span class="lnt"> 19 -</span><span class="lnt"> 20 -</span><span class="lnt"> 21 -</span><span class="lnt"> 22 -</span><span class="lnt"> 23 -</span><span class="lnt"> 24 -</span><span class="lnt"> 25 -</span><span class="lnt"> 26 -</span><span class="lnt"> 27 -</span><span class="lnt"> 28 -</span><span class="lnt"> 29 -</span><span class="lnt"> 30 -</span><span class="lnt"> 31 -</span><span class="lnt"> 32 -</span><span class="lnt"> 33 -</span><span class="lnt"> 34 -</span><span class="lnt"> 35 -</span><span class="lnt"> 36 -</span><span class="lnt"> 37 -</span><span class="lnt"> 38 -</span><span class="lnt"> 39 -</span><span class="lnt"> 40 -</span><span class="lnt"> 41 -</span><span class="lnt"> 42 -</span><span class="lnt"> 43 -</span><span class="lnt"> 44 -</span><span class="lnt"> 45 -</span><span class="lnt"> 46 -</span><span class="lnt"> 47 -</span><span class="lnt"> 48 -</span><span class="lnt"> 49 -</span><span class="lnt"> 50 -</span><span class="lnt"> 51 -</span><span class="lnt"> 52 -</span><span class="lnt"> 53 -</span><span class="lnt"> 54 -</span><span class="lnt"> 55 -</span><span class="lnt"> 56 -</span><span class="lnt"> 57 -</span><span class="lnt"> 58 -</span><span class="lnt"> 59 -</span><span class="lnt"> 60 -</span><span class="lnt"> 61 -</span><span class="lnt"> 62 -</span><span class="lnt"> 63 -</span><span class="lnt"> 64 -</span><span class="lnt"> 65 -</span><span class="lnt"> 66 -</span><span class="lnt"> 67 -</span><span class="lnt"> 68 -</span><span class="lnt"> 69 -</span><span class="lnt"> 70 -</span><span class="lnt"> 71 -</span><span class="lnt"> 72 -</span><span class="lnt"> 73 -</span><span class="lnt"> 74 -</span><span class="lnt"> 75 -</span><span class="lnt"> 76 -</span><span class="lnt"> 77 -</span><span class="lnt"> 78 -</span><span class="lnt"> 79 -</span><span class="lnt"> 80 -</span><span class="lnt"> 81 -</span><span class="lnt"> 82 -</span><span class="lnt"> 83 -</span><span class="lnt"> 84 -</span><span class="lnt"> 85 -</span><span class="lnt"> 86 -</span><span class="lnt"> 87 -</span><span class="lnt"> 88 -</span><span class="lnt"> 89 -</span><span class="lnt"> 90 -</span><span class="lnt"> 91 -</span><span class="lnt"> 92 -</span><span class="lnt"> 93 -</span><span class="lnt"> 94 -</span><span class="lnt"> 95 -</span><span class="lnt"> 96 -</span><span class="lnt"> 97 -</span><span class="lnt"> 98 -</span><span class="lnt"> 99 -</span><span class="lnt">100 -</span><span class="lnt">101 -</span><span class="lnt">102 -</span><span class="lnt">103 -</span><span class="lnt">104 -</span><span class="lnt">105 -</span><span class="lnt">106 -</span><span class="lnt">107 -</span><span class="lnt">108 -</span><span class="lnt">109 -</span><span class="lnt">110 -</span><span class="lnt">111 -</span><span class="lnt">112 -</span><span class="lnt">113 -</span><span class="lnt">114 -</span><span class="lnt">115 -</span><span class="lnt">116 -</span><span class="lnt">117 -</span><span class="lnt">118 -</span><span class="lnt">119 -</span><span class="lnt">120 -</span><span class="lnt">121 -</span><span class="lnt">122 -</span><span class="lnt">123 -</span><span class="lnt">124 -</span><span class="lnt">125 -</span><span class="lnt">126 -</span><span class="lnt">127 -</span><span class="lnt">128 -</span><span class="lnt">129 -</span><span class="lnt">130 -</span><span class="lnt">131 -</span><span class="lnt">132 -</span><span class="lnt">133 -</span><span class="lnt">134 -</span><span class="lnt">135 -</span><span class="lnt">136 -</span><span class="lnt">137 -</span><span class="lnt">138 -</span><span class="lnt">139 -</span><span class="lnt">140 -</span><span class="lnt">141 -</span><span class="lnt">142 -</span><span class="lnt">143 -</span><span class="lnt">144 -</span><span class="lnt">145 -</span><span class="lnt">146 -</span><span class="lnt">147 -</span><span class="lnt">148 -</span><span class="lnt">149 -</span><span class="lnt">150 -</span><span class="lnt">151 -</span><span class="lnt">152 -</span><span class="lnt">153 -</span><span class="lnt">154 -</span><span class="lnt">155 -</span><span class="lnt">156 -</span><span class="lnt">157 -</span><span class="lnt">158 -</span><span class="lnt">159 -</span><span class="lnt">160 -</span><span class="lnt">161 -</span><span class="lnt">162 -</span><span class="lnt">163 -</span><span class="lnt">164 -</span><span class="lnt">165 -</span><span class="lnt">166 -</span><span class="lnt">167 -</span><span class="lnt">168 -</span><span class="lnt">169 -</span><span class="lnt">170 -</span><span class="lnt">171 -</span><span class="lnt">172 -</span><span class="lnt">173 -</span><span class="lnt">174 -</span><span class="lnt">175 -</span><span class="lnt">176 -</span><span class="lnt">177 -</span><span class="lnt">178 -</span><span class="lnt">179 -</span><span class="lnt">180 -</span><span class="lnt">181 -</span><span class="lnt">182 -</span><span class="lnt">183 -</span><span class="lnt">184 -</span><span class="lnt">185 -</span><span class="lnt">186 -</span><span class="lnt">187 -</span><span class="lnt">188 -</span><span class="lnt">189 -</span><span class="lnt">190 -</span><span class="lnt">191 -</span><span class="lnt">192 -</span><span class="lnt">193 -</span><span class="lnt">194 -</span><span class="lnt">195 -</span><span class="lnt">196 -</span><span class="lnt">197 -</span><span class="lnt">198 -</span><span class="lnt">199 -</span><span class="lnt">200 -</span><span class="lnt">201 -</span><span class="lnt">202 -</span><span class="lnt">203 -</span><span class="lnt">204 -</span><span class="lnt">205 -</span><span class="lnt">206 -</span><span class="lnt">207 -</span><span class="lnt">208 -</span><span class="lnt">209 -</span><span class="lnt">210 -</span><span class="lnt">211 -</span><span class="lnt">212 -</span><span class="lnt">213 -</span><span class="lnt">214 -</span><span class="lnt">215 -</span><span class="lnt">216 -</span><span class="lnt">217 -</span><span class="lnt">218 -</span><span class="lnt">219 -</span><span class="lnt">220 -</span><span class="lnt">221 -</span><span class="lnt">222 -</span><span class="lnt">223 -</span><span class="lnt">224 -</span><span class="lnt">225 -</span><span class="lnt">226 -</span><span class="lnt">227 -</span><span class="lnt">228 -</span><span class="lnt">229 -</span><span class="lnt">230 -</span><span class="lnt">231 -</span><span class="lnt">232 -</span><span class="lnt">233 -</span><span class="lnt">234 -</span><span class="lnt">235 -</span><span class="lnt">236 -</span><span class="lnt">237 -</span><span class="lnt">238 -</span><span class="lnt">239 -</span><span class="lnt">240 -</span><span class="lnt">241 -</span><span class="lnt">242 -</span><span class="lnt">243 -</span><span class="lnt">244 -</span><span class="lnt">245 -</span><span class="lnt">246 -</span><span class="lnt">247 -</span><span class="lnt">248 -</span><span class="lnt">249 -</span><span class="lnt">250 -</span><span class="lnt">251 -</span><span class="lnt">252 -</span><span class="lnt">253 -</span><span class="lnt">254 -</span><span class="lnt">255 -</span><span class="lnt">256 -</span><span class="lnt">257 -</span><span class="lnt">258 -</span><span class="lnt">259 -</span><span class="lnt">260 -</span><span class="lnt">261 -</span><span class="lnt">262 -</span><span class="lnt">263 -</span><span class="lnt">264 -</span><span class="lnt">265 -</span><span class="lnt">266 -</span><span class="lnt">267 -</span><span class="lnt">268 -</span><span class="lnt">269 -</span><span class="lnt">270 -</span><span class="lnt">271 -</span><span class="lnt">272 -</span><span class="lnt">273 -</span><span class="lnt">274 -</span><span class="lnt">275 -</span><span class="lnt">276 -</span><span class="lnt">277 -</span><span class="lnt">278 -</span><span class="lnt">279 -</span><span class="lnt">280 -</span><span class="lnt">281 -</span><span class="lnt">282 -</span><span class="lnt">283 -</span><span class="lnt">284 -</span><span class="lnt">285 -</span><span class="lnt">286 -</span><span class="lnt">287 -</span><span class="lnt">288 -</span><span class="lnt">289 -</span><span class="lnt">290 -</span><span class="lnt">291 -</span><span class="lnt">292 -</span><span class="lnt">293 -</span><span class="lnt">294 -</span><span class="lnt">295 -</span><span class="lnt">296 -</span><span class="lnt">297 -</span><span class="lnt">298 -</span><span class="lnt">299 -</span><span class="lnt">300 -</span><span class="lnt">301 -</span><span class="lnt">302 -</span><span class="lnt">303 -</span><span class="lnt">304 -</span><span class="lnt">305 -</span><span class="lnt">306 -</span><span class="lnt">307 -</span><span class="lnt">308 -</span><span class="lnt">309 -</span><span class="lnt">310 -</span><span class="lnt">311 -</span><span class="lnt">312 -</span><span class="lnt">313 -</span><span class="lnt">314 -</span><span class="lnt">315 -</span><span class="lnt">316 -</span><span class="lnt">317 -</span><span class="lnt">318 -</span><span class="lnt">319 -</span><span class="lnt">320 -</span><span class="lnt">321 -</span><span class="lnt">322 -</span><span class="lnt">323 -</span><span class="lnt">324 -</span><span class="lnt">325 -</span><span class="lnt">326 -</span><span class="lnt">327 -</span><span class="lnt">328 -</span><span class="lnt">329 -</span><span class="lnt">330 -</span><span class="lnt">331 -</span><span class="lnt">332 -</span><span class="lnt">333 -</span><span class="lnt">334 -</span><span class="lnt">335 -</span><span class="lnt">336 -</span><span class="lnt">337 -</span><span class="lnt">338 -</span><span class="lnt">339 -</span><span class="lnt">340 -</span><span class="lnt">341 -</span><span class="lnt">342 -</span><span class="lnt">343 -</span><span class="lnt">344 -</span><span class="lnt">345 -</span><span class="lnt">346 -</span><span class="lnt">347 -</span><span class="lnt">348 -</span><span class="lnt">349 -</span><span class="lnt">350 -</span><span class="lnt">351 -</span><span class="lnt">352 -</span><span class="lnt">353 -</span><span class="lnt">354 -</span><span class="lnt">355 -</span><span class="lnt">356 -</span><span class="lnt">357 -</span><span class="lnt">358 -</span><span class="lnt">359 -</span><span class="lnt">360 -</span><span class="lnt">361 -</span><span class="lnt">362 -</span><span class="lnt">363 -</span><span class="lnt">364 -</span><span class="lnt">365 -</span><span class="lnt">366 -</span><span class="lnt">367 -</span><span class="lnt">368 -</span><span class="lnt">369 -</span><span class="lnt">370 -</span><span class="lnt">371 -</span><span class="lnt">372 -</span><span class="lnt">373 -</span><span class="lnt">374 -</span><span class="lnt">375 -</span><span class="lnt">376 -</span><span class="lnt">377 -</span><span class="lnt">378 -</span><span class="lnt">379 -</span><span class="lnt">380 -</span><span class="lnt">381 -</span><span class="lnt">382 -</span><span class="lnt">383 -</span><span class="lnt">384 -</span><span class="lnt">385 -</span><span class="lnt">386 -</span><span class="lnt">387 -</span><span class="lnt">388 -</span><span class="lnt">389 -</span><span class="lnt">390 -</span><span class="lnt">391 -</span><span class="lnt">392 -</span><span class="lnt">393 -</span><span class="lnt">394 -</span><span class="lnt">395 -</span><span class="lnt">396 -</span><span class="lnt">397 -</span><span class="lnt">398 -</span><span class="lnt">399 -</span><span class="lnt">400 -</span><span class="lnt">401 -</span><span class="lnt">402 -</span><span class="lnt">403 -</span><span class="lnt">404 -</span><span class="lnt">405 -</span><span class="lnt">406 -</span><span class="lnt">407 -</span><span class="lnt">408 -</span><span class="lnt">409 -</span><span class="lnt">410 -</span><span class="lnt">411 -</span><span class="lnt">412 -</span><span class="lnt">413 -</span><span class="lnt">414 -</span><span class="lnt">415 -</span><span class="lnt">416 -</span><span class="lnt">417 -</span><span class="lnt">418 -</span><span class="lnt">419 -</span><span class="lnt">420 -</span><span class="lnt">421 -</span><span class="lnt">422 -</span><span class="lnt">423 -</span><span class="lnt">424 -</span><span class="lnt">425 -</span><span class="lnt">426 -</span><span class="lnt">427 -</span><span class="lnt">428 -</span><span class="lnt">429 -</span><span class="lnt">430 -</span><span class="lnt">431 -</span><span class="lnt">432 -</span><span class="lnt">433 -</span><span class="lnt">434 -</span><span class="lnt">435 -</span><span class="lnt">436 -</span><span class="lnt">437 -</span><span class="lnt">438 -</span><span class="lnt">439 -</span><span class="lnt">440 -</span><span class="lnt">441 -</span><span class="lnt">442 -</span><span class="lnt">443 -</span><span class="lnt">444 -</span><span class="lnt">445 -</span><span class="lnt">446 -</span><span class="lnt">447 -</span><span class="lnt">448 -</span><span class="lnt">449 -</span><span class="lnt">450 -</span><span class="lnt">451 -</span><span class="lnt">452 -</span><span class="lnt">453 -</span><span class="lnt">454 -</span><span class="lnt">455 -</span><span class="lnt">456 -</span><span class="lnt">457 -</span><span class="lnt">458 -</span><span class="lnt">459 -</span><span class="lnt">460 -</span><span class="lnt">461 -</span><span class="lnt">462 -</span><span class="lnt">463 -</span><span class="lnt">464 -</span><span class="lnt">465 -</span><span class="lnt">466 -</span><span class="lnt">467 -</span><span class="lnt">468 -</span><span class="lnt">469 -</span><span class="lnt">470 -</span><span class="lnt">471 -</span><span class="lnt">472 -</span><span class="lnt">473 -</span><span class="lnt">474 -</span><span class="lnt">475 -</span><span class="lnt">476 -</span><span class="lnt">477 -</span><span class="lnt">478 -</span><span class="lnt">479 -</span><span class="lnt">480 -</span><span class="lnt">481 -</span><span class="lnt">482 -</span><span class="lnt">483 -</span><span class="lnt">484 -</span><span class="lnt">485 -</span><span class="lnt">486 -</span><span class="lnt">487 -</span><span class="lnt">488 -</span><span class="lnt">489 -</span><span class="lnt">490 -</span><span class="lnt">491 -</span><span class="lnt">492 -</span><span class="lnt">493 -</span><span class="lnt">494 -</span><span class="lnt">495 -</span><span class="lnt">496 -</span><span class="lnt">497 -</span><span class="lnt">498 -</span><span class="lnt">499 -</span><span class="lnt">500 -</span><span class="lnt">501 -</span><span class="lnt">502 -</span><span class="lnt">503 -</span><span class="lnt">504 -</span><span class="lnt">505 -</span><span class="lnt">506 -</span><span class="lnt">507 -</span><span class="lnt">508 -</span><span class="lnt">509 -</span><span class="lnt">510 -</span><span class="lnt">511 -</span><span class="lnt">512 -</span><span class="lnt">513 -</span><span class="lnt">514 -</span><span class="lnt">515 -</span><span class="lnt">516 -</span><span class="lnt">517 -</span><span class="lnt">518 -</span><span class="lnt">519 -</span><span class="lnt">520 -</span><span class="lnt">521 -</span><span class="lnt">522 -</span><span class="lnt">523 -</span><span class="lnt">524 -</span><span class="lnt">525 -</span><span class="lnt">526 -</span><span class="lnt">527 -</span><span class="lnt">528 -</span><span class="lnt">529 -</span><span class="lnt">530 -</span><span class="lnt">531 -</span><span class="lnt">532 -</span><span class="lnt">533 -</span><span class="lnt">534 -</span><span class="lnt">535 -</span><span class="lnt">536 -</span><span class="lnt">537 -</span><span class="lnt">538 -</span><span class="lnt">539 -</span><span class="lnt">540 -</span><span class="lnt">541 -</span><span class="lnt">542 -</span><span class="lnt">543 -</span><span class="lnt">544 -</span><span class="lnt">545 -</span><span class="lnt">546 -</span><span class="lnt">547 -</span><span class="lnt">548 -</span><span class="lnt">549 -</span><span class="lnt">550 -</span><span class="lnt">551 -</span><span class="lnt">552 -</span><span class="lnt">553 -</span><span class="lnt">554 -</span><span class="lnt">555 -</span><span class="lnt">556 -</span><span class="lnt">557 -</span><span class="lnt">558 -</span><span class="lnt">559 -</span><span class="lnt">560 -</span><span class="lnt">561 -</span><span class="lnt">562 -</span><span class="lnt">563 -</span><span class="lnt">564 -</span><span class="lnt">565 -</span><span class="lnt">566 -</span><span class="lnt">567 -</span><span class="lnt">568 -</span><span class="lnt">569 -</span><span class="lnt">570 -</span><span class="lnt">571 -</span><span class="lnt">572 -</span><span class="lnt">573 -</span><span class="lnt">574 -</span><span class="lnt">575 -</span><span class="lnt">576 -</span><span class="lnt">577 -</span><span class="lnt">578 -</span><span class="lnt">579 -</span><span class="lnt">580 -</span><span class="lnt">581 -</span><span class="lnt">582 -</span><span class="lnt">583 -</span><span class="lnt">584 -</span><span class="lnt">585 -</span><span class="lnt">586 -</span><span class="lnt">587 -</span><span class="lnt">588 -</span><span class="lnt">589 -</span><span class="lnt">590 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">┌─<span class="o">[</span>loading<span class="o">]</span> <span class="o">[</span>/tmp/virgool<span class="o">]</span> <span class="o">[</span>0<span class="o">]</span> -</span></span><span class="line"><span class="cl">│ -</span></span><span class="line"><span class="cl">└──〉wget -nd -E -p -k -H https://vrgl.ir/c3fVa -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:03-- https://vrgl.ir/c3fVa -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">302</span> Found -</span></span><span class="line"><span class="cl">Location: https://virgool.io/@Novo/rsa-encryption-ao1poasym4cf <span class="o">[</span>following<span class="o">]</span> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:04-- https://virgool.io/@Novo/rsa-encryption-ao1poasym4cf -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/html<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘c3fVa.html’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">c3fVa.html <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 61.30K 200KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:06 <span class="o">(</span><span class="m">200</span> KB/s<span class="o">)</span> - ‘c3fVa.html’ saved <span class="o">[</span>62773<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:06-- https://virgool.io/robots.txt -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>document<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘robots.txt’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">robots.txt <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">484</span> --.-KB/s in 0s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:07 <span class="o">(</span>85.7 MB/s<span class="o">)</span> - ‘robots.txt’ saved <span class="o">[</span>484<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:07-- https://www.googletagmanager.com/robots.txt -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">404</span> Not Found -</span></span><span class="line"><span class="cl">2022-01-18 06:41:08 ERROR 404: Not Found. -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:08-- https://files.virgool.io/robots.txt -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">403</span> Forbidden -</span></span><span class="line"><span class="cl">2022-01-18 06:41:09 ERROR 403: Forbidden. -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:09-- https://static.cloudflareinsights.com/robots.txt -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">522</span> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:26 ERROR 522: <span class="o">(</span>no description<span class="o">)</span>. -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:26-- https://virgool.io/images/favicon.png?v<span class="o">=</span>v2.6.15 -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">9855</span> <span class="o">(</span>9.6K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘favicon.png?v<span class="o">=</span>v2.6.15’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">favicon.png?v<span class="o">=</span>v2.6.15 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 9.62K --.-KB/s in 0.07s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:27 <span class="o">(</span><span class="m">130</span> KB/s<span class="o">)</span> - ‘favicon.png?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>9855/9855<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:27-- https://virgool.io/css/styles.css?v<span class="o">=</span>v2.6.15 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/css<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘styles.css?v<span class="o">=</span>v2.6.15.css’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">styles.css?v<span class="o">=</span>v2.6.15.css <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 903.60K 592KB/s in 1.5s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:28 <span class="o">(</span><span class="m">592</span> KB/s<span class="o">)</span> - ‘styles.css?v<span class="o">=</span>v2.6.15.css’ saved <span class="o">[</span>925284<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:28-- https://virgool.test/robots.txt -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:28-- https://www.googletagmanager.com/ns.html?id<span class="o">=</span>GTM-5GS688K -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/html<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘ns.html?id<span class="o">=</span>GTM-5GS688K.html’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">ns.html?id<span class="o">=</span>GTM-5GS688K.html <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">266</span> --.-KB/s in 0s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:29 <span class="o">(</span>29.4 MB/s<span class="o">)</span> - ‘ns.html?id<span class="o">=</span>GTM-5GS688K.html’ saved <span class="o">[</span>266<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:29-- https://files.virgool.io/upload/users/31434/avatar/1C4LLE.png?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">39194</span> <span class="o">(</span>38K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_ 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 38.28K 173KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:30 <span class="o">(</span><span class="m">173</span> KB/s<span class="o">)</span> - ‘1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>39194/39194<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:30-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/qhokakomwyb5.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">179870</span> <span class="o">(</span>176K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘qhokakomwyb5.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">qhokakomwyb5.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 175.65K 567KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">567</span> KB/s<span class="o">)</span> - ‘qhokakomwyb5.png’ saved <span class="o">[</span>179870/179870<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/v1xnwpnewfys.webp -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">12770</span> <span class="o">(</span>12K<span class="o">)</span> <span class="o">[</span>image/webp<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘v1xnwpnewfys.webp’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">v1xnwpnewfys.webp 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 12.47K --.-KB/s in 0.07s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">180</span> KB/s<span class="o">)</span> - ‘v1xnwpnewfys.webp’ saved <span class="o">[</span>12770/12770<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/d28hpu2detkl.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">92847</span> <span class="o">(</span>91K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘d28hpu2detkl.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">d28hpu2detkl.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 90.67K --.-KB/s in 0.09s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">969</span> KB/s<span class="o">)</span> - ‘d28hpu2detkl.png’ saved <span class="o">[</span>92847/92847<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/rhyykrc8azq0.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">17539</span> <span class="o">(</span>17K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘rhyykrc8azq0.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">rhyykrc8azq0.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 17.13K --.-KB/s in 0.007s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>2.47 MB/s<span class="o">)</span> - ‘rhyykrc8azq0.png’ saved <span class="o">[</span>17539/17539<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/fjtc1ydzkuse.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">108524</span> <span class="o">(</span>106K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘fjtc1ydzkuse.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">fjtc1ydzkuse.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 105.98K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>1.06 MB/s<span class="o">)</span> - ‘fjtc1ydzkuse.png’ saved <span class="o">[</span>108524/108524<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/gfqhgyp18oic.jpeg -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">132085</span> <span class="o">(</span>129K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘gfqhgyp18oic.jpeg’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">gfqhgyp18oic.jpeg 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 128.99K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>1.28 MB/s<span class="o">)</span> - ‘gfqhgyp18oic.jpeg’ saved <span class="o">[</span>132085/132085<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/me0mpjtdmyom.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">113489</span> <span class="o">(</span>111K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘me0mpjtdmyom.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">me0mpjtdmyom.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 110.83K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span><span class="m">814</span> KB/s<span class="o">)</span> - ‘me0mpjtdmyom.png’ saved <span class="o">[</span>113489/113489<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/of7krju6oqzk.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">105746</span> <span class="o">(</span>103K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘of7krju6oqzk.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">of7krju6oqzk.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 103.27K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span>1.25 MB/s<span class="o">)</span> - ‘of7krju6oqzk.png’ saved <span class="o">[</span>105746/105746<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/oqwhflg4gbnq.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">120994</span> <span class="o">(</span>118K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘oqwhflg4gbnq.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">oqwhflg4gbnq.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 118.16K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span>1.14 MB/s<span class="o">)</span> - ‘oqwhflg4gbnq.png’ saved <span class="o">[</span>120994/120994<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/taqjnfnuzxcx.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">122678</span> <span class="o">(</span>120K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘taqjnfnuzxcx.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">taqjnfnuzxcx.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 119.80K --.-KB/s in 0.06s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span>2.00 MB/s<span class="o">)</span> - ‘taqjnfnuzxcx.png’ saved <span class="o">[</span>122678/122678<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/63/posts/qwqrubplfaau/g8vai2incgna.jpeg?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">88292</span> <span class="o">(</span>86K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fre 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 86.22K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span><span class="m">824</span> KB/s<span class="o">)</span> - ‘g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>88292/88292<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/63/avatar/o8jiNe.png?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">32037</span> <span class="o">(</span>31K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_ 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 31.29K --.-KB/s in 0.06s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span><span class="m">558</span> KB/s<span class="o">)</span> - ‘o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>32037/32037<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/31434/posts/e3oydlcfkr5e/figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">30356</span> <span class="o">(</span>30K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fre 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 29.64K --.-KB/s in 0.07s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span><span class="m">401</span> KB/s<span class="o">)</span> - ‘figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>30356/30356<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://files.virgool.io/upload/users/316150/posts/r8rhw88uh1xh/cs1ugyelv3zw.png?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">34459</span> <span class="o">(</span>34K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fres 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 33.65K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span><span class="m">399</span> KB/s<span class="o">)</span> - ‘cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>34459/34459<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://files.virgool.io/upload/users/316150/avatar/8sz7Rs.jpeg?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">14764</span> <span class="o">(</span>14K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 14.42K --.-KB/s in 0.007s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span>2.11 MB/s<span class="o">)</span> - ‘8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>14764/14764<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://virgool.io/js/commons.js?v<span class="o">=</span>v2.6.15 -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/javascript<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘commons.js?v<span class="o">=</span>v2.6.15’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">commons.js?v<span class="o">=</span>v2.6.15 <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 997.55K 337KB/s in 3.0s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:39 <span class="o">(</span><span class="m">337</span> KB/s<span class="o">)</span> - ‘commons.js?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>1021492<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:39-- https://virgool.io/js/main.js?v<span class="o">=</span>v2.6.15 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/javascript<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘main.js?v<span class="o">=</span>v2.6.15’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">main.js?v<span class="o">=</span>v2.6.15 <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 1.21M 580KB/s in 2.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:41 <span class="o">(</span><span class="m">580</span> KB/s<span class="o">)</span> - ‘main.js?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>1267632<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:41-- https://static.cloudflareinsights.com/beacon.min.js/v652eace1692a40cfa3763df669d7439c1639079717194 -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">13970</span> <span class="o">(</span>14K<span class="o">)</span> <span class="o">[</span>text/javascript<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘v652eace1692a40cfa3763df669d7439c1639079717194’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">v652eace1692a40cfa3763df669d743 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 13.64K --.-KB/s in 0.02s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:42 <span class="o">(</span><span class="m">600</span> KB/s<span class="o">)</span> - ‘v652eace1692a40cfa3763df669d7439c1639079717194’ saved <span class="o">[</span>13970/13970<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:42-- https://virgool.io/fonts/vazir/Vazir-Thin.ttf -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">98924</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Thin.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.61K 140KB/s in 0.7s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:43 <span class="o">(</span><span class="m">140</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.ttf’ saved <span class="o">[</span>98924/98924<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:43-- https://virgool.io/fonts/vazir/Vazir-Thin.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Thin.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.80K 276KB/s in 0.4s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:44 <span class="o">(</span><span class="m">276</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.eot?’ saved <span class="o">[</span>99120<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:44-- https://virgool.io/fonts/vazir/Vazir-Thin.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">54068</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Thin.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.80K --.-KB/s in 0.07s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:45 <span class="o">(</span><span class="m">770</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.woff’ saved <span class="o">[</span>54068/54068<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:45-- https://virgool.io/fonts/vazir/Vazir-Thin.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">43000</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Thin.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 41.99K --.-KB/s in 0.006s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:46 <span class="o">(</span>6.59 MB/s<span class="o">)</span> - ‘Vazir-Thin.woff2’ saved <span class="o">[</span>43000/43000<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:46-- https://virgool.io/fonts/vazir/Vazir-Light.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">105360</span> <span class="o">(</span>103K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Light.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 102.89K 478KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:46 <span class="o">(</span><span class="m">478</span> KB/s<span class="o">)</span> - ‘Vazir-Light.ttf’ saved <span class="o">[</span>105360/105360<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:46-- https://virgool.io/fonts/vazir/Vazir-Light.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Light.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 103.09K 470KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:47 <span class="o">(</span><span class="m">470</span> KB/s<span class="o">)</span> - ‘Vazir-Light.eot?’ saved <span class="o">[</span>105562<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:47-- https://virgool.io/fonts/vazir/Vazir-Light.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">59688</span> <span class="o">(</span>58K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Light.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 58.29K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:48 <span class="o">(</span><span class="m">758</span> KB/s<span class="o">)</span> - ‘Vazir-Light.woff’ saved <span class="o">[</span>59688/59688<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:48-- https://virgool.io/fonts/vazir/Vazir-Light.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">48168</span> <span class="o">(</span>47K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Light.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 47.04K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:48 <span class="o">(</span><span class="m">570</span> KB/s<span class="o">)</span> - ‘Vazir-Light.woff2’ saved <span class="o">[</span>48168/48168<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:48-- https://virgool.io/fonts/vazir/Vazir-Regular.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">98376</span> <span class="o">(</span>96K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Regular.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.07K 435KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:49 <span class="o">(</span><span class="m">435</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.ttf’ saved <span class="o">[</span>98376/98376<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:49-- https://virgool.io/fonts/vazir/Vazir-Regular.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Regular.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.26K 285KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:50 <span class="o">(</span><span class="m">285</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.eot?’ saved <span class="o">[</span>98574<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:50-- https://virgool.io/fonts/vazir/Vazir-Regular.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">53744</span> <span class="o">(</span>52K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Regular.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.48K --.-KB/s in 0.05s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:51 <span class="o">(</span>1.10 MB/s<span class="o">)</span> - ‘Vazir-Regular.woff’ saved <span class="o">[</span>53744/53744<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:51-- https://virgool.io/fonts/vazir/Vazir-Regular.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">42744</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Regular.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 41.74K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:51 <span class="o">(</span><span class="m">412</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.woff2’ saved <span class="o">[</span>42744/42744<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:51-- https://virgool.io/fonts/vazir/Vazir-Medium.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">98892</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Medium.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.57K 606KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:52 <span class="o">(</span><span class="m">606</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.ttf’ saved <span class="o">[</span>98892/98892<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:52-- https://virgool.io/fonts/vazir/Vazir-Medium.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Medium.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.78K 347KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:53 <span class="o">(</span><span class="m">347</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.eot?’ saved <span class="o">[</span>99100<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:53-- https://virgool.io/fonts/vazir/Vazir-Medium.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">54120</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Medium.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.85K 125KB/s in 0.4s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:54 <span class="o">(</span><span class="m">125</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.woff’ saved <span class="o">[</span>54120/54120<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:54-- https://virgool.io/fonts/vazir/Vazir-Medium.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">43152</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Medium.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.14K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:54 <span class="o">(</span><span class="m">541</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.woff2’ saved <span class="o">[</span>43152/43152<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:54-- https://virgool.io/fonts/vazir/Vazir-Bold.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">99840</span> <span class="o">(</span>98K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Bold.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 97.50K --.-KB/s in 0.04s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:55 <span class="o">(</span>2.61 MB/s<span class="o">)</span> - ‘Vazir-Bold.ttf’ saved <span class="o">[</span>99840/99840<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:55-- https://virgool.io/fonts/vazir/Vazir-Bold.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Bold.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 97.68K 560KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:56 <span class="o">(</span><span class="m">560</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.eot?’ saved <span class="o">[</span>100026<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:56-- https://virgool.io/fonts/vazir/Vazir-Bold.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">54560</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Bold.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 53.28K --.-KB/s in 0.06s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:56 <span class="o">(</span><span class="m">917</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.woff’ saved <span class="o">[</span>54560/54560<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:56-- https://virgool.io/fonts/vazir/Vazir-Bold.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">43604</span> <span class="o">(</span>43K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Bold.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.58K --.-KB/s in 0.06s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:57 <span class="o">(</span><span class="m">657</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.woff2’ saved <span class="o">[</span>43604/43604<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:57-- https://virgool.io/fonts/vazir/Vazir-Black.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">99772</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Black.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 97.43K --.-KB/s in 0.04s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:57 <span class="o">(</span>2.18 MB/s<span class="o">)</span> - ‘Vazir-Black.ttf’ saved <span class="o">[</span>99772/99772<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:57-- https://virgool.io/fonts/vazir/Vazir-Black.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Black.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 97.63K 478KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:58 <span class="o">(</span><span class="m">478</span> KB/s<span class="o">)</span> - ‘Vazir-Black.eot?’ saved <span class="o">[</span>99974<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:58-- https://virgool.io/fonts/vazir/Vazir-Black.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">54652</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Black.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 53.37K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:59 <span class="o">(</span><span class="m">691</span> KB/s<span class="o">)</span> - ‘Vazir-Black.woff’ saved <span class="o">[</span>54652/54652<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:59-- https://virgool.io/fonts/vazir/Vazir-Black.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">43332</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Black.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.32K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:00 <span class="o">(</span><span class="m">510</span> KB/s<span class="o">)</span> - ‘Vazir-Black.woff2’ saved <span class="o">[</span>43332/43332<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:00-- https://virgool.io/fonts/fontawesome/fa-solid-900.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">202616</span> <span class="o">(</span>198K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">fa-solid-900.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 197.87K 501KB/s in 0.4s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:01 <span class="o">(</span><span class="m">501</span> KB/s<span class="o">)</span> - ‘fa-solid-900.ttf’ saved <span class="o">[</span>202616/202616<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:01-- https://virgool.io/fonts/fontawesome/fa-solid-900.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">404</span> Not Found -</span></span><span class="line"><span class="cl">2022-01-18 06:42:01 ERROR 404: Not Found. -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:01-- https://virgool.io/fonts/fontawesome/fa-solid-900.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">103300</span> <span class="o">(</span>101K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">fa-solid-900.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 100.88K 358KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:02 <span class="o">(</span><span class="m">358</span> KB/s<span class="o">)</span> - ‘fa-solid-900.woff’ saved <span class="o">[</span>103300/103300<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:02-- https://virgool.io/fonts/fontawesome/fa-solid-900.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">79444</span> <span class="o">(</span>78K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">fa-solid-900.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 77.58K 394KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:03 <span class="o">(</span><span class="m">394</span> KB/s<span class="o">)</span> - ‘fa-solid-900.woff2’ saved <span class="o">[</span>79444/79444<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:03-- https://virgool.io/images/icons/plus.svg -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>image/svg+xml<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘plus.svg’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">plus.svg <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">942</span> --.-KB/s in 0.002s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:03 <span class="o">(</span><span class="m">383</span> KB/s<span class="o">)</span> - ‘plus.svg’ saved <span class="o">[</span>942<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:03-- https://virgool.io/images/icons/tick.svg -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>image/svg+xml<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘tick.svg’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">tick.svg <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">942</span> --.-KB/s in 0s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:04 <span class="o">(</span>89.8 MB/s<span class="o">)</span> - ‘tick.svg’ saved <span class="o">[</span>942<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:04-- https://virgool.io/images/typewriter.png -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">172558</span> <span class="o">(</span>169K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘typewriter.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">typewriter.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 168.51K 349KB/s in 0.5s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:05 <span class="o">(</span><span class="m">349</span> KB/s<span class="o">)</span> - ‘typewriter.png’ saved <span class="o">[</span>172558/172558<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:05-- https://virgool.test/images/download-audio.png -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:05-- https://virgool.test/images/download-ebook.png -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. -</span></span><span class="line"><span class="cl">FINISHED --2022-01-18 06:42:05-- -</span></span><span class="line"><span class="cl">Total wall clock time: 1m 2s -</span></span><span class="line"><span class="cl">Downloaded: <span class="m">54</span> files, 6.6M in 14s <span class="o">(</span><span class="m">479</span> KB/s<span class="o">)</span> -</span></span><span class="line"><span class="cl">Converting links in ns.html?id<span class="o">=</span>GTM-5GS688K.html... nothing to <span class="k">do</span>. -</span></span><span class="line"><span class="cl">Converting links in c3fVa.html... 38. -</span></span><span class="line"><span class="cl">31-7 -</span></span><span class="line"><span class="cl">Converting links in styles.css?v<span class="o">=</span>v2.6.15.css... 35. -</span></span><span class="line"><span class="cl">34-1 -</span></span><span class="line"><span class="cl">Converted links in <span class="m">3</span> files in 0.06 seconds. -</span></span></code></pre></td></tr></table> -</div> -</div> - - - - +هست رو دانلود می‌کنم.</li> +</ul> +</br> +</div> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt"> 10 +</span><span class="lnt"> 11 +</span><span class="lnt"> 12 +</span><span class="lnt"> 13 +</span><span class="lnt"> 14 +</span><span class="lnt"> 15 +</span><span class="lnt"> 16 +</span><span class="lnt"> 17 +</span><span class="lnt"> 18 +</span><span class="lnt"> 19 +</span><span class="lnt"> 20 +</span><span class="lnt"> 21 +</span><span class="lnt"> 22 +</span><span class="lnt"> 23 +</span><span class="lnt"> 24 +</span><span class="lnt"> 25 +</span><span class="lnt"> 26 +</span><span class="lnt"> 27 +</span><span class="lnt"> 28 +</span><span class="lnt"> 29 +</span><span class="lnt"> 30 +</span><span class="lnt"> 31 +</span><span class="lnt"> 32 +</span><span class="lnt"> 33 +</span><span class="lnt"> 34 +</span><span class="lnt"> 35 +</span><span class="lnt"> 36 +</span><span class="lnt"> 37 +</span><span class="lnt"> 38 +</span><span class="lnt"> 39 +</span><span class="lnt"> 40 +</span><span class="lnt"> 41 +</span><span class="lnt"> 42 +</span><span class="lnt"> 43 +</span><span class="lnt"> 44 +</span><span class="lnt"> 45 +</span><span class="lnt"> 46 +</span><span class="lnt"> 47 +</span><span class="lnt"> 48 +</span><span class="lnt"> 49 +</span><span class="lnt"> 50 +</span><span class="lnt"> 51 +</span><span class="lnt"> 52 +</span><span class="lnt"> 53 +</span><span class="lnt"> 54 +</span><span class="lnt"> 55 +</span><span class="lnt"> 56 +</span><span class="lnt"> 57 +</span><span class="lnt"> 58 +</span><span class="lnt"> 59 +</span><span class="lnt"> 60 +</span><span class="lnt"> 61 +</span><span class="lnt"> 62 +</span><span class="lnt"> 63 +</span><span class="lnt"> 64 +</span><span class="lnt"> 65 +</span><span class="lnt"> 66 +</span><span class="lnt"> 67 +</span><span class="lnt"> 68 +</span><span class="lnt"> 69 +</span><span class="lnt"> 70 +</span><span class="lnt"> 71 +</span><span class="lnt"> 72 +</span><span class="lnt"> 73 +</span><span class="lnt"> 74 +</span><span class="lnt"> 75 +</span><span class="lnt"> 76 +</span><span class="lnt"> 77 +</span><span class="lnt"> 78 +</span><span class="lnt"> 79 +</span><span class="lnt"> 80 +</span><span class="lnt"> 81 +</span><span class="lnt"> 82 +</span><span class="lnt"> 83 +</span><span class="lnt"> 84 +</span><span class="lnt"> 85 +</span><span class="lnt"> 86 +</span><span class="lnt"> 87 +</span><span class="lnt"> 88 +</span><span class="lnt"> 89 +</span><span class="lnt"> 90 +</span><span class="lnt"> 91 +</span><span class="lnt"> 92 +</span><span class="lnt"> 93 +</span><span class="lnt"> 94 +</span><span class="lnt"> 95 +</span><span class="lnt"> 96 +</span><span class="lnt"> 97 +</span><span class="lnt"> 98 +</span><span class="lnt"> 99 +</span><span class="lnt">100 +</span><span class="lnt">101 +</span><span class="lnt">102 +</span><span class="lnt">103 +</span><span class="lnt">104 +</span><span class="lnt">105 +</span><span class="lnt">106 +</span><span class="lnt">107 +</span><span class="lnt">108 +</span><span class="lnt">109 +</span><span class="lnt">110 +</span><span class="lnt">111 +</span><span class="lnt">112 +</span><span class="lnt">113 +</span><span class="lnt">114 +</span><span class="lnt">115 +</span><span class="lnt">116 +</span><span class="lnt">117 +</span><span class="lnt">118 +</span><span class="lnt">119 +</span><span class="lnt">120 +</span><span class="lnt">121 +</span><span class="lnt">122 +</span><span class="lnt">123 +</span><span class="lnt">124 +</span><span class="lnt">125 +</span><span class="lnt">126 +</span><span class="lnt">127 +</span><span class="lnt">128 +</span><span class="lnt">129 +</span><span class="lnt">130 +</span><span class="lnt">131 +</span><span class="lnt">132 +</span><span class="lnt">133 +</span><span class="lnt">134 +</span><span class="lnt">135 +</span><span class="lnt">136 +</span><span class="lnt">137 +</span><span class="lnt">138 +</span><span class="lnt">139 +</span><span class="lnt">140 +</span><span class="lnt">141 +</span><span class="lnt">142 +</span><span class="lnt">143 +</span><span class="lnt">144 +</span><span class="lnt">145 +</span><span class="lnt">146 +</span><span class="lnt">147 +</span><span class="lnt">148 +</span><span class="lnt">149 +</span><span class="lnt">150 +</span><span class="lnt">151 +</span><span class="lnt">152 +</span><span class="lnt">153 +</span><span class="lnt">154 +</span><span class="lnt">155 +</span><span class="lnt">156 +</span><span class="lnt">157 +</span><span class="lnt">158 +</span><span class="lnt">159 +</span><span class="lnt">160 +</span><span class="lnt">161 +</span><span class="lnt">162 +</span><span class="lnt">163 +</span><span class="lnt">164 +</span><span class="lnt">165 +</span><span class="lnt">166 +</span><span class="lnt">167 +</span><span class="lnt">168 +</span><span class="lnt">169 +</span><span class="lnt">170 +</span><span class="lnt">171 +</span><span class="lnt">172 +</span><span class="lnt">173 +</span><span class="lnt">174 +</span><span class="lnt">175 +</span><span class="lnt">176 +</span><span class="lnt">177 +</span><span class="lnt">178 +</span><span class="lnt">179 +</span><span class="lnt">180 +</span><span class="lnt">181 +</span><span class="lnt">182 +</span><span class="lnt">183 +</span><span class="lnt">184 +</span><span class="lnt">185 +</span><span class="lnt">186 +</span><span class="lnt">187 +</span><span class="lnt">188 +</span><span class="lnt">189 +</span><span class="lnt">190 +</span><span class="lnt">191 +</span><span class="lnt">192 +</span><span class="lnt">193 +</span><span class="lnt">194 +</span><span class="lnt">195 +</span><span class="lnt">196 +</span><span class="lnt">197 +</span><span class="lnt">198 +</span><span class="lnt">199 +</span><span class="lnt">200 +</span><span class="lnt">201 +</span><span class="lnt">202 +</span><span class="lnt">203 +</span><span class="lnt">204 +</span><span class="lnt">205 +</span><span class="lnt">206 +</span><span class="lnt">207 +</span><span class="lnt">208 +</span><span class="lnt">209 +</span><span class="lnt">210 +</span><span class="lnt">211 +</span><span class="lnt">212 +</span><span class="lnt">213 +</span><span class="lnt">214 +</span><span class="lnt">215 +</span><span class="lnt">216 +</span><span class="lnt">217 +</span><span class="lnt">218 +</span><span class="lnt">219 +</span><span class="lnt">220 +</span><span class="lnt">221 +</span><span class="lnt">222 +</span><span class="lnt">223 +</span><span class="lnt">224 +</span><span class="lnt">225 +</span><span class="lnt">226 +</span><span class="lnt">227 +</span><span class="lnt">228 +</span><span class="lnt">229 +</span><span class="lnt">230 +</span><span class="lnt">231 +</span><span class="lnt">232 +</span><span class="lnt">233 +</span><span class="lnt">234 +</span><span class="lnt">235 +</span><span class="lnt">236 +</span><span class="lnt">237 +</span><span class="lnt">238 +</span><span class="lnt">239 +</span><span class="lnt">240 +</span><span class="lnt">241 +</span><span class="lnt">242 +</span><span class="lnt">243 +</span><span class="lnt">244 +</span><span class="lnt">245 +</span><span class="lnt">246 +</span><span class="lnt">247 +</span><span class="lnt">248 +</span><span class="lnt">249 +</span><span class="lnt">250 +</span><span class="lnt">251 +</span><span class="lnt">252 +</span><span class="lnt">253 +</span><span class="lnt">254 +</span><span class="lnt">255 +</span><span class="lnt">256 +</span><span class="lnt">257 +</span><span class="lnt">258 +</span><span class="lnt">259 +</span><span class="lnt">260 +</span><span class="lnt">261 +</span><span class="lnt">262 +</span><span class="lnt">263 +</span><span class="lnt">264 +</span><span class="lnt">265 +</span><span class="lnt">266 +</span><span class="lnt">267 +</span><span class="lnt">268 +</span><span class="lnt">269 +</span><span class="lnt">270 +</span><span class="lnt">271 +</span><span class="lnt">272 +</span><span class="lnt">273 +</span><span class="lnt">274 +</span><span class="lnt">275 +</span><span class="lnt">276 +</span><span class="lnt">277 +</span><span class="lnt">278 +</span><span class="lnt">279 +</span><span class="lnt">280 +</span><span class="lnt">281 +</span><span class="lnt">282 +</span><span class="lnt">283 +</span><span class="lnt">284 +</span><span class="lnt">285 +</span><span class="lnt">286 +</span><span class="lnt">287 +</span><span class="lnt">288 +</span><span class="lnt">289 +</span><span class="lnt">290 +</span><span class="lnt">291 +</span><span class="lnt">292 +</span><span class="lnt">293 +</span><span class="lnt">294 +</span><span class="lnt">295 +</span><span class="lnt">296 +</span><span class="lnt">297 +</span><span class="lnt">298 +</span><span class="lnt">299 +</span><span class="lnt">300 +</span><span class="lnt">301 +</span><span class="lnt">302 +</span><span class="lnt">303 +</span><span class="lnt">304 +</span><span class="lnt">305 +</span><span class="lnt">306 +</span><span class="lnt">307 +</span><span class="lnt">308 +</span><span class="lnt">309 +</span><span class="lnt">310 +</span><span class="lnt">311 +</span><span class="lnt">312 +</span><span class="lnt">313 +</span><span class="lnt">314 +</span><span class="lnt">315 +</span><span class="lnt">316 +</span><span class="lnt">317 +</span><span class="lnt">318 +</span><span class="lnt">319 +</span><span class="lnt">320 +</span><span class="lnt">321 +</span><span class="lnt">322 +</span><span class="lnt">323 +</span><span class="lnt">324 +</span><span class="lnt">325 +</span><span class="lnt">326 +</span><span class="lnt">327 +</span><span class="lnt">328 +</span><span class="lnt">329 +</span><span class="lnt">330 +</span><span class="lnt">331 +</span><span class="lnt">332 +</span><span class="lnt">333 +</span><span class="lnt">334 +</span><span class="lnt">335 +</span><span class="lnt">336 +</span><span class="lnt">337 +</span><span class="lnt">338 +</span><span class="lnt">339 +</span><span class="lnt">340 +</span><span class="lnt">341 +</span><span class="lnt">342 +</span><span class="lnt">343 +</span><span class="lnt">344 +</span><span class="lnt">345 +</span><span class="lnt">346 +</span><span class="lnt">347 +</span><span class="lnt">348 +</span><span class="lnt">349 +</span><span class="lnt">350 +</span><span class="lnt">351 +</span><span class="lnt">352 +</span><span class="lnt">353 +</span><span class="lnt">354 +</span><span class="lnt">355 +</span><span class="lnt">356 +</span><span class="lnt">357 +</span><span class="lnt">358 +</span><span class="lnt">359 +</span><span class="lnt">360 +</span><span class="lnt">361 +</span><span class="lnt">362 +</span><span class="lnt">363 +</span><span class="lnt">364 +</span><span class="lnt">365 +</span><span class="lnt">366 +</span><span class="lnt">367 +</span><span class="lnt">368 +</span><span class="lnt">369 +</span><span class="lnt">370 +</span><span class="lnt">371 +</span><span class="lnt">372 +</span><span class="lnt">373 +</span><span class="lnt">374 +</span><span class="lnt">375 +</span><span class="lnt">376 +</span><span class="lnt">377 +</span><span class="lnt">378 +</span><span class="lnt">379 +</span><span class="lnt">380 +</span><span class="lnt">381 +</span><span class="lnt">382 +</span><span class="lnt">383 +</span><span class="lnt">384 +</span><span class="lnt">385 +</span><span class="lnt">386 +</span><span class="lnt">387 +</span><span class="lnt">388 +</span><span class="lnt">389 +</span><span class="lnt">390 +</span><span class="lnt">391 +</span><span class="lnt">392 +</span><span class="lnt">393 +</span><span class="lnt">394 +</span><span class="lnt">395 +</span><span class="lnt">396 +</span><span class="lnt">397 +</span><span class="lnt">398 +</span><span class="lnt">399 +</span><span class="lnt">400 +</span><span class="lnt">401 +</span><span class="lnt">402 +</span><span class="lnt">403 +</span><span class="lnt">404 +</span><span class="lnt">405 +</span><span class="lnt">406 +</span><span class="lnt">407 +</span><span class="lnt">408 +</span><span class="lnt">409 +</span><span class="lnt">410 +</span><span class="lnt">411 +</span><span class="lnt">412 +</span><span class="lnt">413 +</span><span class="lnt">414 +</span><span class="lnt">415 +</span><span class="lnt">416 +</span><span class="lnt">417 +</span><span class="lnt">418 +</span><span class="lnt">419 +</span><span class="lnt">420 +</span><span class="lnt">421 +</span><span class="lnt">422 +</span><span class="lnt">423 +</span><span class="lnt">424 +</span><span class="lnt">425 +</span><span class="lnt">426 +</span><span class="lnt">427 +</span><span class="lnt">428 +</span><span class="lnt">429 +</span><span class="lnt">430 +</span><span class="lnt">431 +</span><span class="lnt">432 +</span><span class="lnt">433 +</span><span class="lnt">434 +</span><span class="lnt">435 +</span><span class="lnt">436 +</span><span class="lnt">437 +</span><span class="lnt">438 +</span><span class="lnt">439 +</span><span class="lnt">440 +</span><span class="lnt">441 +</span><span class="lnt">442 +</span><span class="lnt">443 +</span><span class="lnt">444 +</span><span class="lnt">445 +</span><span class="lnt">446 +</span><span class="lnt">447 +</span><span class="lnt">448 +</span><span class="lnt">449 +</span><span class="lnt">450 +</span><span class="lnt">451 +</span><span class="lnt">452 +</span><span class="lnt">453 +</span><span class="lnt">454 +</span><span class="lnt">455 +</span><span class="lnt">456 +</span><span class="lnt">457 +</span><span class="lnt">458 +</span><span class="lnt">459 +</span><span class="lnt">460 +</span><span class="lnt">461 +</span><span class="lnt">462 +</span><span class="lnt">463 +</span><span class="lnt">464 +</span><span class="lnt">465 +</span><span class="lnt">466 +</span><span class="lnt">467 +</span><span class="lnt">468 +</span><span class="lnt">469 +</span><span class="lnt">470 +</span><span class="lnt">471 +</span><span class="lnt">472 +</span><span class="lnt">473 +</span><span class="lnt">474 +</span><span class="lnt">475 +</span><span class="lnt">476 +</span><span class="lnt">477 +</span><span class="lnt">478 +</span><span class="lnt">479 +</span><span class="lnt">480 +</span><span class="lnt">481 +</span><span class="lnt">482 +</span><span class="lnt">483 +</span><span class="lnt">484 +</span><span class="lnt">485 +</span><span class="lnt">486 +</span><span class="lnt">487 +</span><span class="lnt">488 +</span><span class="lnt">489 +</span><span class="lnt">490 +</span><span class="lnt">491 +</span><span class="lnt">492 +</span><span class="lnt">493 +</span><span class="lnt">494 +</span><span class="lnt">495 +</span><span class="lnt">496 +</span><span class="lnt">497 +</span><span class="lnt">498 +</span><span class="lnt">499 +</span><span class="lnt">500 +</span><span class="lnt">501 +</span><span class="lnt">502 +</span><span class="lnt">503 +</span><span class="lnt">504 +</span><span class="lnt">505 +</span><span class="lnt">506 +</span><span class="lnt">507 +</span><span class="lnt">508 +</span><span class="lnt">509 +</span><span class="lnt">510 +</span><span class="lnt">511 +</span><span class="lnt">512 +</span><span class="lnt">513 +</span><span class="lnt">514 +</span><span class="lnt">515 +</span><span class="lnt">516 +</span><span class="lnt">517 +</span><span class="lnt">518 +</span><span class="lnt">519 +</span><span class="lnt">520 +</span><span class="lnt">521 +</span><span class="lnt">522 +</span><span class="lnt">523 +</span><span class="lnt">524 +</span><span class="lnt">525 +</span><span class="lnt">526 +</span><span class="lnt">527 +</span><span class="lnt">528 +</span><span class="lnt">529 +</span><span class="lnt">530 +</span><span class="lnt">531 +</span><span class="lnt">532 +</span><span class="lnt">533 +</span><span class="lnt">534 +</span><span class="lnt">535 +</span><span class="lnt">536 +</span><span class="lnt">537 +</span><span class="lnt">538 +</span><span class="lnt">539 +</span><span class="lnt">540 +</span><span class="lnt">541 +</span><span class="lnt">542 +</span><span class="lnt">543 +</span><span class="lnt">544 +</span><span class="lnt">545 +</span><span class="lnt">546 +</span><span class="lnt">547 +</span><span class="lnt">548 +</span><span class="lnt">549 +</span><span class="lnt">550 +</span><span class="lnt">551 +</span><span class="lnt">552 +</span><span class="lnt">553 +</span><span class="lnt">554 +</span><span class="lnt">555 +</span><span class="lnt">556 +</span><span class="lnt">557 +</span><span class="lnt">558 +</span><span class="lnt">559 +</span><span class="lnt">560 +</span><span class="lnt">561 +</span><span class="lnt">562 +</span><span class="lnt">563 +</span><span class="lnt">564 +</span><span class="lnt">565 +</span><span class="lnt">566 +</span><span class="lnt">567 +</span><span class="lnt">568 +</span><span class="lnt">569 +</span><span class="lnt">570 +</span><span class="lnt">571 +</span><span class="lnt">572 +</span><span class="lnt">573 +</span><span class="lnt">574 +</span><span class="lnt">575 +</span><span class="lnt">576 +</span><span class="lnt">577 +</span><span class="lnt">578 +</span><span class="lnt">579 +</span><span class="lnt">580 +</span><span class="lnt">581 +</span><span class="lnt">582 +</span><span class="lnt">583 +</span><span class="lnt">584 +</span><span class="lnt">585 +</span><span class="lnt">586 +</span><span class="lnt">587 +</span><span class="lnt">588 +</span><span class="lnt">589 +</span><span class="lnt">590 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">┌─<span class="o">[</span>loading<span class="o">]</span> <span class="o">[</span>/tmp/virgool<span class="o">]</span> <span class="o">[</span>0<span class="o">]</span> +</span></span><span class="line"><span class="cl">│ +</span></span><span class="line"><span class="cl">└──〉wget -nd -E -p -k -H https://vrgl.ir/c3fVa +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:03-- https://vrgl.ir/c3fVa +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">302</span> Found +</span></span><span class="line"><span class="cl">Location: https://virgool.io/@Novo/rsa-encryption-ao1poasym4cf <span class="o">[</span>following<span class="o">]</span> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:04-- https://virgool.io/@Novo/rsa-encryption-ao1poasym4cf +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/html<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘c3fVa.html’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">c3fVa.html <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 61.30K 200KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:06 <span class="o">(</span><span class="m">200</span> KB/s<span class="o">)</span> - ‘c3fVa.html’ saved <span class="o">[</span>62773<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:06-- https://virgool.io/robots.txt +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>document<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘robots.txt’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">robots.txt <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">484</span> --.-KB/s in 0s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:07 <span class="o">(</span>85.7 MB/s<span class="o">)</span> - ‘robots.txt’ saved <span class="o">[</span>484<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:07-- https://www.googletagmanager.com/robots.txt +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">404</span> Not Found +</span></span><span class="line"><span class="cl">2022-01-18 06:41:08 ERROR 404: Not Found. +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:08-- https://files.virgool.io/robots.txt +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">403</span> Forbidden +</span></span><span class="line"><span class="cl">2022-01-18 06:41:09 ERROR 403: Forbidden. +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:09-- https://static.cloudflareinsights.com/robots.txt +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">522</span> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:26 ERROR 522: <span class="o">(</span>no description<span class="o">)</span>. +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:26-- https://virgool.io/images/favicon.png?v<span class="o">=</span>v2.6.15 +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">9855</span> <span class="o">(</span>9.6K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘favicon.png?v<span class="o">=</span>v2.6.15’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">favicon.png?v<span class="o">=</span>v2.6.15 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 9.62K --.-KB/s in 0.07s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:27 <span class="o">(</span><span class="m">130</span> KB/s<span class="o">)</span> - ‘favicon.png?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>9855/9855<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:27-- https://virgool.io/css/styles.css?v<span class="o">=</span>v2.6.15 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/css<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘styles.css?v<span class="o">=</span>v2.6.15.css’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">styles.css?v<span class="o">=</span>v2.6.15.css <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 903.60K 592KB/s in 1.5s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:28 <span class="o">(</span><span class="m">592</span> KB/s<span class="o">)</span> - ‘styles.css?v<span class="o">=</span>v2.6.15.css’ saved <span class="o">[</span>925284<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:28-- https://virgool.test/robots.txt +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:28-- https://www.googletagmanager.com/ns.html?id<span class="o">=</span>GTM-5GS688K +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/html<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘ns.html?id<span class="o">=</span>GTM-5GS688K.html’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">ns.html?id<span class="o">=</span>GTM-5GS688K.html <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">266</span> --.-KB/s in 0s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:29 <span class="o">(</span>29.4 MB/s<span class="o">)</span> - ‘ns.html?id<span class="o">=</span>GTM-5GS688K.html’ saved <span class="o">[</span>266<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:29-- https://files.virgool.io/upload/users/31434/avatar/1C4LLE.png?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">39194</span> <span class="o">(</span>38K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_ 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 38.28K 173KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:30 <span class="o">(</span><span class="m">173</span> KB/s<span class="o">)</span> - ‘1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>39194/39194<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:30-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/qhokakomwyb5.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">179870</span> <span class="o">(</span>176K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘qhokakomwyb5.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">qhokakomwyb5.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 175.65K 567KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">567</span> KB/s<span class="o">)</span> - ‘qhokakomwyb5.png’ saved <span class="o">[</span>179870/179870<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/v1xnwpnewfys.webp +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">12770</span> <span class="o">(</span>12K<span class="o">)</span> <span class="o">[</span>image/webp<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘v1xnwpnewfys.webp’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">v1xnwpnewfys.webp 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 12.47K --.-KB/s in 0.07s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">180</span> KB/s<span class="o">)</span> - ‘v1xnwpnewfys.webp’ saved <span class="o">[</span>12770/12770<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/d28hpu2detkl.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">92847</span> <span class="o">(</span>91K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘d28hpu2detkl.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">d28hpu2detkl.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 90.67K --.-KB/s in 0.09s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">969</span> KB/s<span class="o">)</span> - ‘d28hpu2detkl.png’ saved <span class="o">[</span>92847/92847<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/rhyykrc8azq0.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">17539</span> <span class="o">(</span>17K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘rhyykrc8azq0.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">rhyykrc8azq0.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 17.13K --.-KB/s in 0.007s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>2.47 MB/s<span class="o">)</span> - ‘rhyykrc8azq0.png’ saved <span class="o">[</span>17539/17539<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/fjtc1ydzkuse.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">108524</span> <span class="o">(</span>106K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘fjtc1ydzkuse.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">fjtc1ydzkuse.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 105.98K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>1.06 MB/s<span class="o">)</span> - ‘fjtc1ydzkuse.png’ saved <span class="o">[</span>108524/108524<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/gfqhgyp18oic.jpeg +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">132085</span> <span class="o">(</span>129K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘gfqhgyp18oic.jpeg’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">gfqhgyp18oic.jpeg 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 128.99K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>1.28 MB/s<span class="o">)</span> - ‘gfqhgyp18oic.jpeg’ saved <span class="o">[</span>132085/132085<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/me0mpjtdmyom.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">113489</span> <span class="o">(</span>111K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘me0mpjtdmyom.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">me0mpjtdmyom.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 110.83K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span><span class="m">814</span> KB/s<span class="o">)</span> - ‘me0mpjtdmyom.png’ saved <span class="o">[</span>113489/113489<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/of7krju6oqzk.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">105746</span> <span class="o">(</span>103K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘of7krju6oqzk.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">of7krju6oqzk.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 103.27K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span>1.25 MB/s<span class="o">)</span> - ‘of7krju6oqzk.png’ saved <span class="o">[</span>105746/105746<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/oqwhflg4gbnq.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">120994</span> <span class="o">(</span>118K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘oqwhflg4gbnq.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">oqwhflg4gbnq.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 118.16K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span>1.14 MB/s<span class="o">)</span> - ‘oqwhflg4gbnq.png’ saved <span class="o">[</span>120994/120994<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/taqjnfnuzxcx.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">122678</span> <span class="o">(</span>120K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘taqjnfnuzxcx.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">taqjnfnuzxcx.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 119.80K --.-KB/s in 0.06s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span>2.00 MB/s<span class="o">)</span> - ‘taqjnfnuzxcx.png’ saved <span class="o">[</span>122678/122678<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/63/posts/qwqrubplfaau/g8vai2incgna.jpeg?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">88292</span> <span class="o">(</span>86K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fre 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 86.22K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span><span class="m">824</span> KB/s<span class="o">)</span> - ‘g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>88292/88292<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/63/avatar/o8jiNe.png?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">32037</span> <span class="o">(</span>31K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_ 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 31.29K --.-KB/s in 0.06s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span><span class="m">558</span> KB/s<span class="o">)</span> - ‘o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>32037/32037<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/31434/posts/e3oydlcfkr5e/figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">30356</span> <span class="o">(</span>30K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fre 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 29.64K --.-KB/s in 0.07s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span><span class="m">401</span> KB/s<span class="o">)</span> - ‘figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>30356/30356<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://files.virgool.io/upload/users/316150/posts/r8rhw88uh1xh/cs1ugyelv3zw.png?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">34459</span> <span class="o">(</span>34K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fres 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 33.65K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span><span class="m">399</span> KB/s<span class="o">)</span> - ‘cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>34459/34459<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://files.virgool.io/upload/users/316150/avatar/8sz7Rs.jpeg?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">14764</span> <span class="o">(</span>14K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 14.42K --.-KB/s in 0.007s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span>2.11 MB/s<span class="o">)</span> - ‘8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>14764/14764<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://virgool.io/js/commons.js?v<span class="o">=</span>v2.6.15 +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/javascript<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘commons.js?v<span class="o">=</span>v2.6.15’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">commons.js?v<span class="o">=</span>v2.6.15 <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 997.55K 337KB/s in 3.0s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:39 <span class="o">(</span><span class="m">337</span> KB/s<span class="o">)</span> - ‘commons.js?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>1021492<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:39-- https://virgool.io/js/main.js?v<span class="o">=</span>v2.6.15 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/javascript<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘main.js?v<span class="o">=</span>v2.6.15’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">main.js?v<span class="o">=</span>v2.6.15 <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 1.21M 580KB/s in 2.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:41 <span class="o">(</span><span class="m">580</span> KB/s<span class="o">)</span> - ‘main.js?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>1267632<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:41-- https://static.cloudflareinsights.com/beacon.min.js/v652eace1692a40cfa3763df669d7439c1639079717194 +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">13970</span> <span class="o">(</span>14K<span class="o">)</span> <span class="o">[</span>text/javascript<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘v652eace1692a40cfa3763df669d7439c1639079717194’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">v652eace1692a40cfa3763df669d743 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 13.64K --.-KB/s in 0.02s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:42 <span class="o">(</span><span class="m">600</span> KB/s<span class="o">)</span> - ‘v652eace1692a40cfa3763df669d7439c1639079717194’ saved <span class="o">[</span>13970/13970<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:42-- https://virgool.io/fonts/vazir/Vazir-Thin.ttf +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">98924</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Thin.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.61K 140KB/s in 0.7s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:43 <span class="o">(</span><span class="m">140</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.ttf’ saved <span class="o">[</span>98924/98924<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:43-- https://virgool.io/fonts/vazir/Vazir-Thin.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Thin.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.80K 276KB/s in 0.4s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:44 <span class="o">(</span><span class="m">276</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.eot?’ saved <span class="o">[</span>99120<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:44-- https://virgool.io/fonts/vazir/Vazir-Thin.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">54068</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Thin.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.80K --.-KB/s in 0.07s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:45 <span class="o">(</span><span class="m">770</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.woff’ saved <span class="o">[</span>54068/54068<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:45-- https://virgool.io/fonts/vazir/Vazir-Thin.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">43000</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Thin.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 41.99K --.-KB/s in 0.006s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:46 <span class="o">(</span>6.59 MB/s<span class="o">)</span> - ‘Vazir-Thin.woff2’ saved <span class="o">[</span>43000/43000<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:46-- https://virgool.io/fonts/vazir/Vazir-Light.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">105360</span> <span class="o">(</span>103K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Light.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 102.89K 478KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:46 <span class="o">(</span><span class="m">478</span> KB/s<span class="o">)</span> - ‘Vazir-Light.ttf’ saved <span class="o">[</span>105360/105360<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:46-- https://virgool.io/fonts/vazir/Vazir-Light.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Light.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 103.09K 470KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:47 <span class="o">(</span><span class="m">470</span> KB/s<span class="o">)</span> - ‘Vazir-Light.eot?’ saved <span class="o">[</span>105562<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:47-- https://virgool.io/fonts/vazir/Vazir-Light.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">59688</span> <span class="o">(</span>58K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Light.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 58.29K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:48 <span class="o">(</span><span class="m">758</span> KB/s<span class="o">)</span> - ‘Vazir-Light.woff’ saved <span class="o">[</span>59688/59688<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:48-- https://virgool.io/fonts/vazir/Vazir-Light.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">48168</span> <span class="o">(</span>47K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Light.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 47.04K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:48 <span class="o">(</span><span class="m">570</span> KB/s<span class="o">)</span> - ‘Vazir-Light.woff2’ saved <span class="o">[</span>48168/48168<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:48-- https://virgool.io/fonts/vazir/Vazir-Regular.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">98376</span> <span class="o">(</span>96K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Regular.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.07K 435KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:49 <span class="o">(</span><span class="m">435</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.ttf’ saved <span class="o">[</span>98376/98376<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:49-- https://virgool.io/fonts/vazir/Vazir-Regular.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Regular.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.26K 285KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:50 <span class="o">(</span><span class="m">285</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.eot?’ saved <span class="o">[</span>98574<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:50-- https://virgool.io/fonts/vazir/Vazir-Regular.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">53744</span> <span class="o">(</span>52K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Regular.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.48K --.-KB/s in 0.05s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:51 <span class="o">(</span>1.10 MB/s<span class="o">)</span> - ‘Vazir-Regular.woff’ saved <span class="o">[</span>53744/53744<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:51-- https://virgool.io/fonts/vazir/Vazir-Regular.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">42744</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Regular.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 41.74K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:51 <span class="o">(</span><span class="m">412</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.woff2’ saved <span class="o">[</span>42744/42744<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:51-- https://virgool.io/fonts/vazir/Vazir-Medium.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">98892</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Medium.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.57K 606KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:52 <span class="o">(</span><span class="m">606</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.ttf’ saved <span class="o">[</span>98892/98892<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:52-- https://virgool.io/fonts/vazir/Vazir-Medium.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Medium.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.78K 347KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:53 <span class="o">(</span><span class="m">347</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.eot?’ saved <span class="o">[</span>99100<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:53-- https://virgool.io/fonts/vazir/Vazir-Medium.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">54120</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Medium.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.85K 125KB/s in 0.4s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:54 <span class="o">(</span><span class="m">125</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.woff’ saved <span class="o">[</span>54120/54120<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:54-- https://virgool.io/fonts/vazir/Vazir-Medium.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">43152</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Medium.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.14K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:54 <span class="o">(</span><span class="m">541</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.woff2’ saved <span class="o">[</span>43152/43152<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:54-- https://virgool.io/fonts/vazir/Vazir-Bold.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">99840</span> <span class="o">(</span>98K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Bold.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 97.50K --.-KB/s in 0.04s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:55 <span class="o">(</span>2.61 MB/s<span class="o">)</span> - ‘Vazir-Bold.ttf’ saved <span class="o">[</span>99840/99840<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:55-- https://virgool.io/fonts/vazir/Vazir-Bold.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Bold.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 97.68K 560KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:56 <span class="o">(</span><span class="m">560</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.eot?’ saved <span class="o">[</span>100026<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:56-- https://virgool.io/fonts/vazir/Vazir-Bold.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">54560</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Bold.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 53.28K --.-KB/s in 0.06s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:56 <span class="o">(</span><span class="m">917</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.woff’ saved <span class="o">[</span>54560/54560<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:56-- https://virgool.io/fonts/vazir/Vazir-Bold.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">43604</span> <span class="o">(</span>43K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Bold.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.58K --.-KB/s in 0.06s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:57 <span class="o">(</span><span class="m">657</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.woff2’ saved <span class="o">[</span>43604/43604<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:57-- https://virgool.io/fonts/vazir/Vazir-Black.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">99772</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Black.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 97.43K --.-KB/s in 0.04s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:57 <span class="o">(</span>2.18 MB/s<span class="o">)</span> - ‘Vazir-Black.ttf’ saved <span class="o">[</span>99772/99772<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:57-- https://virgool.io/fonts/vazir/Vazir-Black.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Black.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 97.63K 478KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:58 <span class="o">(</span><span class="m">478</span> KB/s<span class="o">)</span> - ‘Vazir-Black.eot?’ saved <span class="o">[</span>99974<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:58-- https://virgool.io/fonts/vazir/Vazir-Black.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">54652</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Black.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 53.37K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:59 <span class="o">(</span><span class="m">691</span> KB/s<span class="o">)</span> - ‘Vazir-Black.woff’ saved <span class="o">[</span>54652/54652<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:59-- https://virgool.io/fonts/vazir/Vazir-Black.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">43332</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Black.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.32K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:00 <span class="o">(</span><span class="m">510</span> KB/s<span class="o">)</span> - ‘Vazir-Black.woff2’ saved <span class="o">[</span>43332/43332<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:00-- https://virgool.io/fonts/fontawesome/fa-solid-900.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">202616</span> <span class="o">(</span>198K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">fa-solid-900.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 197.87K 501KB/s in 0.4s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:01 <span class="o">(</span><span class="m">501</span> KB/s<span class="o">)</span> - ‘fa-solid-900.ttf’ saved <span class="o">[</span>202616/202616<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:01-- https://virgool.io/fonts/fontawesome/fa-solid-900.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">404</span> Not Found +</span></span><span class="line"><span class="cl">2022-01-18 06:42:01 ERROR 404: Not Found. +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:01-- https://virgool.io/fonts/fontawesome/fa-solid-900.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">103300</span> <span class="o">(</span>101K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">fa-solid-900.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 100.88K 358KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:02 <span class="o">(</span><span class="m">358</span> KB/s<span class="o">)</span> - ‘fa-solid-900.woff’ saved <span class="o">[</span>103300/103300<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:02-- https://virgool.io/fonts/fontawesome/fa-solid-900.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">79444</span> <span class="o">(</span>78K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">fa-solid-900.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 77.58K 394KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:03 <span class="o">(</span><span class="m">394</span> KB/s<span class="o">)</span> - ‘fa-solid-900.woff2’ saved <span class="o">[</span>79444/79444<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:03-- https://virgool.io/images/icons/plus.svg +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>image/svg+xml<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘plus.svg’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">plus.svg <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">942</span> --.-KB/s in 0.002s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:03 <span class="o">(</span><span class="m">383</span> KB/s<span class="o">)</span> - ‘plus.svg’ saved <span class="o">[</span>942<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:03-- https://virgool.io/images/icons/tick.svg +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>image/svg+xml<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘tick.svg’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">tick.svg <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">942</span> --.-KB/s in 0s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:04 <span class="o">(</span>89.8 MB/s<span class="o">)</span> - ‘tick.svg’ saved <span class="o">[</span>942<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:04-- https://virgool.io/images/typewriter.png +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">172558</span> <span class="o">(</span>169K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘typewriter.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">typewriter.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 168.51K 349KB/s in 0.5s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:05 <span class="o">(</span><span class="m">349</span> KB/s<span class="o">)</span> - ‘typewriter.png’ saved <span class="o">[</span>172558/172558<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:05-- https://virgool.test/images/download-audio.png +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:05-- https://virgool.test/images/download-ebook.png +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. +</span></span><span class="line"><span class="cl">FINISHED --2022-01-18 06:42:05-- +</span></span><span class="line"><span class="cl">Total wall clock time: 1m 2s +</span></span><span class="line"><span class="cl">Downloaded: <span class="m">54</span> files, 6.6M in 14s <span class="o">(</span><span class="m">479</span> KB/s<span class="o">)</span> +</span></span><span class="line"><span class="cl">Converting links in ns.html?id<span class="o">=</span>GTM-5GS688K.html... nothing to <span class="k">do</span>. +</span></span><span class="line"><span class="cl">Converting links in c3fVa.html... 38. +</span></span><span class="line"><span class="cl">31-7 +</span></span><span class="line"><span class="cl">Converting links in styles.css?v<span class="o">=</span>v2.6.15.css... 35. +</span></span><span class="line"><span class="cl">34-1 +</span></span><span class="line"><span class="cl">Converted links in <span class="m">3</span> files in 0.06 seconds. +</span></span></code></pre></td></tr></table> +</div> +</div> \ No newline at end of file diff --git a/docs/tags/wget/page/1/index.html b/docs/tags/wget/page/1/index.html index 1baf8e2..582748a 100644 --- a/docs/tags/wget/page/1/index.html +++ b/docs/tags/wget/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/wget/ - - - - - - +https://bit-orbit.github.io/tags/wget/ + \ No newline at end of file diff --git a/docs/tags/what-is-file-locking-in-linux/index.html b/docs/tags/what-is-file-locking-in-linux/index.html index f77dde8..1b01c50 100644 --- a/docs/tags/what-is-file-locking-in-linux/index.html +++ b/docs/tags/what-is-file-locking-in-linux/index.html @@ -1,559 +1,37 @@ - - - - -Tag: What Is File Locking in Linux? - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

What Is File Locking in Linux?

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: What Is File Locking in Linux? - bit-orbit +

Tags

1 صفحه

What Is File Locking in Linux?

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git a/docs/tags/what-is-file-locking-in-linux/index.xml b/docs/tags/what-is-file-locking-in-linux/index.xml index b4e50f5..a0afe33 100644 --- a/docs/tags/what-is-file-locking-in-linux/index.xml +++ b/docs/tags/what-is-file-locking-in-linux/index.xml @@ -1,186 +1,161 @@ - - - - What Is File Locking in Linux? on bit-orbit - https://bit-orbit.github.io/tags/what-is-file-locking-in-linux/ - Recent content in What Is File Locking in Linux? on bit-orbit - Hugo -- gohugo.io - fa - Fri, 09 Feb 2024 01:49:42 +0330 - Linux File Locking چیست؟ - https://bit-orbit.github.io/p/linux-file-locking-%DA%86%DB%8C%D8%B3%D8%AA/ - Fri, 09 Feb 2024 01:49:42 +0330 - - https://bit-orbit.github.io/p/linux-file-locking-%DA%86%DB%8C%D8%B3%D8%AA/ - <img src="https://bit-orbit.github.io/images/post/flilock.jpeg" alt="Featured image of post Linux File Locking چیست؟" /><p>بیایید قبل از اینکه راه حل را ببینیم، اول مشکل را دقیق تر برسی کنیم. +What Is File Locking in Linux? on bit-orbithttps://bit-orbit.github.io/tags/what-is-file-locking-in-linux/Recent content in What Is File Locking in Linux? on bit-orbitHugo -- gohugo.iofaFri, 09 Feb 2024 01:49:42 +0330Linux File Locking چیست؟https://bit-orbit.github.io/p/linux-file-locking-%DA%86%DB%8C%D8%B3%D8%AA/Fri, 09 Feb 2024 01:49:42 +0330https://bit-orbit.github.io/p/linux-file-locking-%DA%86%DB%8C%D8%B3%D8%AA/<img src="https://bit-orbit.github.io/images/post/flilock.jpeg" alt="Featured image of post Linux File Locking چیست؟" /><p>بیایید قبل از اینکه راه حل را ببینیم، اول مشکل را دقیق تر برسی کنیم. به این فکر کنید که شما یک فایلی دارید که شامل یک عدد است که اشاره می‌کند به مقدار اعتباری که کاربر در حسابش دارد. حالا اگر قرار باشد یک پورسه اون مقدار را بر اساس ارائه سرویسی، از حساب کاربر کم کند، و پروسه دیگری به دلیل افزایش اعتبار، مقداری را به حساب -کاربر اضافه کند، چه مشکلاتی اتفاق می‌افتد؟</p> -<p>برای اینکه دقیق تر بشیم، این روند رو باهم پیش می‌بریم. +کاربر اضافه کند، چه مشکلاتی اتفاق می‌افتد؟</p> +<p>برای اینکه دقیق تر بشیم، این روند رو باهم پیش می‌بریم. فرض کنید فایلی به اسم amount.txt مقدار 100 داخلش نوشته شده است. و دو پروسه کم و اضافه کردن را اجرا می‌کنیم. توی این مثال،‌ ما می‌خواهیم مقدار 20 از حساب کاربر کم و مقدار 50 به حساب کاربر -اضافه کنیم، پس ما انتظار داریم در انتها فایل ما مقدار 130 را درونش ذخیره کرده باشد.</p> -<ul> -<li>پروسه اول فایل را می‌خواند و مقدار 100 را در حاظه‌اش نگه می‌دارد</li> -<li>پروسه دوم فایل را می‌خواند و مقدار 100 را در حاظه‌اش نگه می‌دارد</li> -<li>پروسه اول مقدار 20 را از 100 کم می‌کند و مقدار 80 را در حافظه ذخیره می‌کند</li> -<li>پروسه دوم مقدار 50 را به 100 اضافه می‌کند و مقدار 150 را در حافظه ذخیره می‌کند</li> -<li>پروسه اول مقدار 80 را در فایل ذخیره می‌کند</li> -<li>پروسه دوم مقدار 150 را در فایل ذخیره می‌کند</li> -</ul> -<p>همینطور که همه ما انتظار داشتیم، ما باید در این فایل مقدار 130 را ذخیره می‌کردیم، +اضافه کنیم، پس ما انتظار داریم در انتها فایل ما مقدار 130 را درونش ذخیره کرده باشد.</p> +<ul> +<li>پروسه اول فایل را می‌خواند و مقدار 100 را در حاظه‌اش نگه می‌دارد</li> +<li>پروسه دوم فایل را می‌خواند و مقدار 100 را در حاظه‌اش نگه می‌دارد</li> +<li>پروسه اول مقدار 20 را از 100 کم می‌کند و مقدار 80 را در حافظه ذخیره می‌کند</li> +<li>پروسه دوم مقدار 50 را به 100 اضافه می‌کند و مقدار 150 را در حافظه ذخیره می‌کند</li> +<li>پروسه اول مقدار 80 را در فایل ذخیره می‌کند</li> +<li>پروسه دوم مقدار 150 را در فایل ذخیره می‌کند</li> +</ul> +<p>همینطور که همه ما انتظار داشتیم، ما باید در این فایل مقدار 130 را ذخیره می‌کردیم، اما پروسه های ما به دلیل اینکه هیچ همکاری و یا هیچ مکانیزمی دیگری ندارند که این مقدار ها را به یکدیگر اطلاع دهند، مشکل -<a class="link" href="https://en.wikipedia.org/wiki/Race_condition#Software" target="_blank" rel="noopener" - >Race condition</a> -رخ می‌دهد.</p> -<p>یکی از راه حل های این مشکل +<a class="link" href="https://en.wikipedia.org/wiki/Race_condition#Software" target="_blank" rel="noopener" +>Race condition</a> +رخ می‌دهد.</p> +<p>یکی از راه حل های این مشکل lock کردن فایل توسط هر پروسه است، که به این کار file locking -گفته می‌شود.</p> -<p><strong>file locking</strong> -یک مکانیزم برای کنترل دسترسی چندین پروسه به یک فایل است.</p> -<blockquote> -<p>توی لینوکس یکی از دستورات خطرناکی که داریم دستور +گفته می‌شود.</p> +<p><strong>file locking</strong> +یک مکانیزم برای کنترل دسترسی چندین پروسه به یک فایل است.</p> +<blockquote> +<p>توی لینوکس یکی از دستورات خطرناکی که داریم دستور sudo rm -rf / است. وقتی این دستور را اجرا کنیم کل فایل های لینوکس ما حذف می‌شود. دلیل اینکار این است که لینوکس به صورت پیشفرض فایل های باز شده را lock -نمی‌کند.</p> -</blockquote> -<p>با اینحال لینوکس دو مکانیزم مختلف -<em>advisory</em> و <em>mandatory</em> -را پشتیبانی می‌کند.</p> -<blockquote> -<p>توی این پست بیشتر تمرکز من روی مکانیزم +نمی‌کند.</p> +</blockquote> +<p>با اینحال لینوکس دو مکانیزم مختلف +<em>advisory</em> و <em>mandatory</em> +را پشتیبانی می‌کند.</p> +<blockquote> +<p>توی این پست بیشتر تمرکز من روی مکانیزم advisory locking(مشورتی) -است.</p> -</blockquote> -<p>این روش به این شکل عمل می‌کند که هیچ پروسه‌ای مجبور به اجرای این روش نیست و اگر حتی +است.</p> +</blockquote> +<p>این روش به این شکل عمل می‌کند که هیچ پروسه‌ای مجبور به اجرای این روش نیست و اگر حتی فایل توسط یک پروسه‌ای lock شده باشد، باز هم پروسه های دیگر می‌توانند به lock بودن فایل اهمیت ندهند و مقدار آن را تغییر دهند. این اتفاق به این دلیل می‌افتد که advisory lock -توسط سیستم عامل و یا فایل سیستم انجام نمی‌شود.</p> -<p>خب بیایید با یک مثال این فرایند را برسی کنیم. مثل مثال قبلی فرض کنید ما مقدار 100 +توسط سیستم عامل و یا فایل سیستم انجام نمی‌شود.</p> +<p>خب بیایید با یک مثال این فرایند را برسی کنیم. مثل مثال قبلی فرض کنید ما مقدار 100 را داخل فایل amount.txt -داریم و می‌خواهیم مقدار 20 از آن کم و مقدار 50 به آن اضافه کنیم.</p> -<ul> -<li>پروسه اول قبل از خواندن فایل، فایل را لاک می‌کند</li> -<li>پروسه دوم برای لاک کردن فایل اقدام می‌کند و از جایی که پروسه اول از پیش فایل را لاک کرده است، برای آزاد شدن لاک صبر می‌کند</li> -<li>پروسه اول مقدار 20 را از 100 کم می‌کند و مقدار 80 را درون فایل می‌نویسد</li> -<li>پروسه اول لاک فایل را آزاد می‌کند.</li> -<li>پروسه دوم فایل را لاک و مقدار جدید 80 را از فایل می‌خواند</li> -<li>پروسه دوم مقدار 50 را به 80 اضافه و مقدار 120 را درون فایل می‌نویسد</li> -<li>پروسه دوم لاک فایل را آزاد می‌کند تا پروسه های دیگر بتوانند با فایل کار کنند.</li> -</ul> -<hr> -<p>اگر شما می‌خواهید این مکانیزم را روی یک فایل اجرا کنید، دستور +داریم و می‌خواهیم مقدار 20 از آن کم و مقدار 50 به آن اضافه کنیم.</p> +<ul> +<li>پروسه اول قبل از خواندن فایل، فایل را لاک می‌کند</li> +<li>پروسه دوم برای لاک کردن فایل اقدام می‌کند و از جایی که پروسه اول از پیش فایل را لاک کرده است، برای آزاد شدن لاک صبر می‌کند</li> +<li>پروسه اول مقدار 20 را از 100 کم می‌کند و مقدار 80 را درون فایل می‌نویسد</li> +<li>پروسه اول لاک فایل را آزاد می‌کند.</li> +<li>پروسه دوم فایل را لاک و مقدار جدید 80 را از فایل می‌خواند</li> +<li>پروسه دوم مقدار 50 را به 80 اضافه و مقدار 120 را درون فایل می‌نویسد</li> +<li>پروسه دوم لاک فایل را آزاد می‌کند تا پروسه های دیگر بتوانند با فایل کار کنند.</li> +</ul> +<hr> +<p>اگر شما می‌خواهید این مکانیزم را روی یک فایل اجرا کنید، دستور flock -برای شما اینکار را خواهد کرد.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">flock <span class="o">[</span>options<span class="o">]</span> file<span class="p">|</span>directory <span class="nb">command</span> <span class="o">[</span>arguments<span class="o">]</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>این کامند در حالت عادی از شما یک فایل و یک دستور خواهد گرفت و مکانیزم +برای شما اینکار را خواهد کرد.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">flock <span class="o">[</span>options<span class="o">]</span> file<span class="p">|</span>directory <span class="nb">command</span> <span class="o">[</span>arguments<span class="o">]</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>این کامند در حالت عادی از شما یک فایل و یک دستور خواهد گرفت و مکانیزم advisory lock -را روی ان فایل اجرا خواهد کرد.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">flock /tmp/fli <span class="nb">echo</span> 12&gt;/tmp/fli -</span></span></code></pre></td></tr></table> -</div> -</div><p>برای اینکه روند را بهتر درک کنیم یک فایل +را روی ان فایل اجرا خواهد کرد.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">flock /tmp/fli <span class="nb">echo</span> 12&gt;/tmp/fli +</span></span></code></pre></td></tr></table> +</div> +</div><p>برای اینکه روند را بهتر درک کنیم یک فایل bash -می‌نویسیم که بتوانیم مثال اولیه را روی آن اجرا کنیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt">10 -</span><span class="lnt">11 -</span><span class="lnt">12 -</span><span class="lnt">13 -</span><span class="lnt">14 -</span><span class="lnt">15 -</span><span class="lnt">16 -</span><span class="lnt">17 -</span><span class="lnt">18 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="cp">#!/bin/bash -</span></span></span><span class="line"><span class="cl"><span class="cp"></span><span class="nv">file</span><span class="o">=</span><span class="s2">&#34;balance.dat&#34;</span> -</span></span><span class="line"><span class="cl"><span class="nv">value</span><span class="o">=</span><span class="k">$(</span>cat <span class="nv">$file</span><span class="k">)</span> -</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Read current balance:</span><span class="nv">$value</span><span class="s2">&#34;</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl"><span class="c1">#sleep 10 seconds to simulate business calculation</span> -</span></span><span class="line"><span class="cl"><span class="nv">progress</span><span class="o">=</span><span class="m">10</span> -</span></span><span class="line"><span class="cl"><span class="k">while</span> <span class="o">[[</span> <span class="nv">$progress</span> -lt <span class="m">101</span> <span class="o">]]</span><span class="p">;</span> <span class="k">do</span> -</span></span><span class="line"><span class="cl"> <span class="nb">echo</span> -n -e <span class="s2">&#34;\033[77DCalculating new balance..</span><span class="nv">$progress</span><span class="s2">%&#34;</span> -</span></span><span class="line"><span class="cl"> sleep <span class="m">1</span> -</span></span><span class="line"><span class="cl"> <span class="nv">progress</span><span class="o">=</span><span class="k">$((</span><span class="m">10</span><span class="o">+</span>progress<span class="k">))</span> -</span></span><span class="line"><span class="cl"><span class="k">done</span> -</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;&#34;</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl"><span class="nv">value</span><span class="o">=</span><span class="k">$((</span>value+<span class="nv">$1</span><span class="k">))</span> -</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Write new balance (</span><span class="nv">$value</span><span class="s2">) back to </span><span class="nv">$file</span><span class="s2">.&#34;</span> -</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="nv">$value</span> &gt; <span class="s2">&#34;</span><span class="nv">$file</span><span class="s2">&#34;</span> -</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Done.&#34;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>ما این فایل را همزمان با دو ترمینال اجرا می‌کنیم.</p> -<p><img src="https://bit-orbit.github.io/images/post/advisory_lock.gif" - - - - loading="lazy" - - alt="advisory lock" - - -></p> -<p>همینطور که می‌بینید پروسه دوم برای اینکه محتوای فایل را تغییر دهد، باید صبر کند تا لاک فایل -آزاد شود.</p> -<hr> -<p>این پست خلاصه‌ای بود از -<a class="link" href="https://www.baeldung.com/linux/file-locking" target="_blank" rel="noopener" - >این بلاگ</a> +می‌نویسیم که بتوانیم مثال اولیه را روی آن اجرا کنیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="cp">#!/bin/bash +</span></span></span><span class="line"><span class="cl"><span class="cp"></span><span class="nv">file</span><span class="o">=</span><span class="s2">&#34;balance.dat&#34;</span> +</span></span><span class="line"><span class="cl"><span class="nv">value</span><span class="o">=</span><span class="k">$(</span>cat <span class="nv">$file</span><span class="k">)</span> +</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Read current balance:</span><span class="nv">$value</span><span class="s2">&#34;</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="c1">#sleep 10 seconds to simulate business calculation</span> +</span></span><span class="line"><span class="cl"><span class="nv">progress</span><span class="o">=</span><span class="m">10</span> +</span></span><span class="line"><span class="cl"><span class="k">while</span> <span class="o">[[</span> <span class="nv">$progress</span> -lt <span class="m">101</span> <span class="o">]]</span><span class="p">;</span> <span class="k">do</span> +</span></span><span class="line"><span class="cl"> <span class="nb">echo</span> -n -e <span class="s2">&#34;\033[77DCalculating new balance..</span><span class="nv">$progress</span><span class="s2">%&#34;</span> +</span></span><span class="line"><span class="cl"> sleep <span class="m">1</span> +</span></span><span class="line"><span class="cl"> <span class="nv">progress</span><span class="o">=</span><span class="k">$((</span><span class="m">10</span><span class="o">+</span>progress<span class="k">))</span> +</span></span><span class="line"><span class="cl"><span class="k">done</span> +</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;&#34;</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="nv">value</span><span class="o">=</span><span class="k">$((</span>value+<span class="nv">$1</span><span class="k">))</span> +</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Write new balance (</span><span class="nv">$value</span><span class="s2">) back to </span><span class="nv">$file</span><span class="s2">.&#34;</span> +</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="nv">$value</span> &gt; <span class="s2">&#34;</span><span class="nv">$file</span><span class="s2">&#34;</span> +</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Done.&#34;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>ما این فایل را همزمان با دو ترمینال اجرا می‌کنیم.</p> +<p><img src="https://bit-orbit.github.io/images/post/advisory_lock.gif" +loading="lazy" +alt="advisory lock" +></p> +<p>همینطور که می‌بینید پروسه دوم برای اینکه محتوای فایل را تغییر دهد، باید صبر کند تا لاک فایل +آزاد شود.</p> +<hr> +<p>این پست خلاصه‌ای بود از +<a class="link" href="https://www.baeldung.com/linux/file-locking" target="_blank" rel="noopener" +>این بلاگ</a> که هر دو نوع advisory lock و mandatory lock -را توضیح می‌دهد.</p> -<p>برای من سوال بود که من چطور می‌توانم مکانیزمی که +را توضیح می‌دهد.</p> +<p>برای من سوال بود که من چطور می‌توانم مکانیزمی که flock استفاده می‌کند را در برنامه های خودم پیاده سازی کنم، و خب نتیجه این بود که معمولا برای advisory lock هر زبانی یک کتابخانه استاندار دارد توی -<a class="link" href="https://docs.python.org/3/library/fcntl.html" target="_blank" rel="noopener" - >پایتون کتابخانه</a> -<code>fcntl</code> -اینکار را انجام می‌دهد.</p> - - - - - +<a class="link" href="https://docs.python.org/3/library/fcntl.html" target="_blank" rel="noopener" +>پایتون کتابخانه</a> +<code>fcntl</code> +اینکار را انجام می‌دهد.</p> \ No newline at end of file diff --git a/docs/tags/what-is-file-locking-in-linux/page/1/index.html b/docs/tags/what-is-file-locking-in-linux/page/1/index.html index 5bdeab8..00e3bd2 100644 --- a/docs/tags/what-is-file-locking-in-linux/page/1/index.html +++ b/docs/tags/what-is-file-locking-in-linux/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/what-is-file-locking-in-linux/ - - - - - - +https://bit-orbit.github.io/tags/what-is-file-locking-in-linux/ + \ No newline at end of file diff --git a/docs/tags/what-is-umbrel-os/index.html b/docs/tags/what-is-umbrel-os/index.html index 5879c1c..a32e50c 100644 --- a/docs/tags/what-is-umbrel-os/index.html +++ b/docs/tags/what-is-umbrel-os/index.html @@ -1,559 +1,37 @@ - - - - -Tag: What Is Umbrel Os - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

What Is Umbrel Os

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: What Is Umbrel Os - bit-orbit +

Tags

1 صفحه

What Is Umbrel Os

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git a/docs/tags/what-is-umbrel-os/index.xml b/docs/tags/what-is-umbrel-os/index.xml index 8624442..5cc4805 100644 --- a/docs/tags/what-is-umbrel-os/index.xml +++ b/docs/tags/what-is-umbrel-os/index.xml @@ -1,19 +1,5 @@ - - - - What Is Umbrel Os on bit-orbit - https://bit-orbit.github.io/tags/what-is-umbrel-os/ - Recent content in What Is Umbrel Os on bit-orbit - Hugo -- gohugo.io - fa - Mon, 11 Dec 2023 01:39:34 +0330 - cloud را به خانه خود ببرید! - https://bit-orbit.github.io/p/cloud-%D8%B1%D8%A7-%D8%A8%D9%87-%D8%AE%D8%A7%D9%86%D9%87-%D8%AE%D9%88%D8%AF-%D8%A8%D8%A8%D8%B1%DB%8C%D8%AF/ - Mon, 11 Dec 2023 01:39:34 +0330 - - https://bit-orbit.github.io/p/cloud-%D8%B1%D8%A7-%D8%A8%D9%87-%D8%AE%D8%A7%D9%86%D9%87-%D8%AE%D9%88%D8%AF-%D8%A8%D8%A8%D8%B1%DB%8C%D8%AF/ - <img src="https://bit-orbit.github.io/images/post/umbrel.webp" alt="Featured image of post cloud را به خانه خود ببرید!" /><h3 id="چطور-این-ایده-به-ذهن-من-رسید-">چطور این ایده به ذهن من رسید ؟</h3> -<p>جریان این ایده به این شکل بود که خب ما ایرانی ها اینترنت +What Is Umbrel Os on bit-orbithttps://bit-orbit.github.io/tags/what-is-umbrel-os/Recent content in What Is Umbrel Os on bit-orbitHugo -- gohugo.iofaMon, 11 Dec 2023 01:39:34 +0330cloud را به خانه خود ببرید!https://bit-orbit.github.io/p/cloud-%D8%B1%D8%A7-%D8%A8%D9%87-%D8%AE%D8%A7%D9%86%D9%87-%D8%AE%D9%88%D8%AF-%D8%A8%D8%A8%D8%B1%DB%8C%D8%AF/Mon, 11 Dec 2023 01:39:34 +0330https://bit-orbit.github.io/p/cloud-%D8%B1%D8%A7-%D8%A8%D9%87-%D8%AE%D8%A7%D9%86%D9%87-%D8%AE%D9%88%D8%AF-%D8%A8%D8%A8%D8%B1%DB%8C%D8%AF/<img src="https://bit-orbit.github.io/images/post/umbrel.webp" alt="Featured image of post cloud را به خانه خود ببرید!" /><h3 id="چطور-این-ایده-به-ذهن-من-رسید-">چطور این ایده به ذهن من رسید ؟ +</h3><p>جریان این ایده به این شکل بود که خب ما ایرانی ها اینترنت به شدت محدود شده‌ای داریم، برای همین ما برای استفاده از اینترنت از vpn @@ -26,100 +12,82 @@ ip vpn رو که به هزار زحمت وصل شده بود، قطع کنیم. خب چاره چیه؟ اینکه اگه یک سیستم توی خونه یا شرکت دارین -که همیشه روشنه رو تبدیل به یک سرور کنیم :)</p> -<p>توی این فکر بودم که نیازم رو به چنین سیستم عاملی حس کردم، بعد کمی نیاز های دیگه رو بهش اضافه کردم و یه پست +که همیشه روشنه رو تبدیل به یک سرور کنیم :)</p> +<p>توی این فکر بودم که نیازم رو به چنین سیستم عاملی حس کردم، بعد کمی نیاز های دیگه رو بهش اضافه کردم و یه پست داخل تلگرام نوشتم، یکی کامنت گذاشت و خب این سیستم عامل -را معرفی کرد.</p> -<hr> -<h3 id="umbrel-چیست-">umbrel چیست ؟</h3> -<p>درواقع +را معرفی کرد.</p> +<hr> +<h3 id="umbrel-چیست-">umbrel چیست ؟ +</h3><p>درواقع umbrel یک سیستم عامل است، زمانی که شما این سیستم عامل را نصب کنید، یک صفحه وب در اختیار شما می‌گذارد و شما از طریق این صفحه درون مرورگر خود می‌توانید به سیستم دسترسی داشته باشید. برای مثلا می‌توانید سرویس های مختلف و ابزار های -مختلف را روی +مختلف را روی umbrel -نصب و یا کانفیگ کنید.</p> -<p>سرویس هایی که +نصب و یا کانفیگ کنید.</p> +<p>سرویس هایی که umbrel ارائه می‌دهد تقریبا همان سرویس هایی هستند که شما در طول -روز از نسخه های تجاری آنها استفاده می‌کنید.</p> -<p>اگه دقیق تر بخواهم بگم، این سیستم عامل یک +روز از نسخه های تجاری آنها استفاده می‌کنید.</p> +<p>اگه دقیق تر بخواهم بگم، این سیستم عامل یک store در اختیار کاربران‌ش قرار می‌ده. و خب این یکی از مهم ترین کار هایی است که این سیستم عامل انجام می‌ده چرا که اگر این استور وجود نداشت، شما شخصا باید فرایند کانفیگ و نصب سرویس ها را به عهده می‌گرفتید(این کار یک متخصص دواپس -هست، خیلی هم جالیه)</p> -<p><img src="https://bit-orbit.github.io/images/post/umbrelstore.jpg" - - - - loading="lazy" - - alt="umbrel store" - - -></p> -<hr> -<h3 id="umbrel-چه-نیازی-را-برطرف-میکند-">umbrel چه نیازی را برطرف می‌کند ؟</h3> -<p>وقتی از سرویس های تحت اینترنت استفاده می‌کنید، +هست، خیلی هم جالیه)</p> +<p><img src="https://bit-orbit.github.io/images/post/umbrelstore.jpg" +loading="lazy" +alt="umbrel store" +></p> +<hr> +<h3 id="umbrel-چه-نیازی-را-برطرف-میکند-">umbrel چه نیازی را برطرف می‌کند ؟ +</h3><p>وقتی از سرویس های تحت اینترنت استفاده می‌کنید، به احتمال زیاد شما کالای اون شرکتی هستید که ابزار را در اختیارتون قرار داده است. اگر دقت کنیم می‌بینیم که این شرکت ها بسیاری کاربر دارند و خب برای ارائه درست خدمت به کاربرانشون سرور های زیادی اجاره می‌کنند سرویس ها رو دائم اپدیت و بهتر می‌کنند -و خب سرویس های متعددی هم ارائه می‌کنند.</p> -<p>همه این کار ها نیاز به هزینه های زیادی دارند، +و خب سرویس های متعددی هم ارائه می‌کنند.</p> +<p>همه این کار ها نیاز به هزینه های زیادی دارند، بودجه این شرکت ها فقط و فقط با تبلیغات تامین نمی‌شود بلکه با فروش اطلاعات کاربرانشون(خود ما) به شرکت ها و دولت ها -تامین می‌شود.</p> -<p><img src="https://bit-orbit.github.io/images/post/zuker.jpg" - - - - loading="lazy" - - alt="zukerberg spying" - - -></p> -<p>و البته اگر حتی شما برای سرویسی که استفاده می‌کنید +تامین می‌شود.</p> +<p><img src="https://bit-orbit.github.io/images/post/zuker.jpg" +loading="lazy" +alt="zukerberg spying" +></p> +<p>و البته اگر حتی شما برای سرویسی که استفاده می‌کنید هزینه‌ای پرداخت کنید، مثلا برای استفاده از گوگل دایو ماهانه هزینه هم پرداخت کنید، باز هم مشکلاتی وجود دارد، مثلا قانونا گوگل مالک فایلی است که شما روی سرور هایش -آپلود می‌کنید.</p> -<p>در چنین مواقعی هست که اصطلاح +آپلود می‌کنید.</p> +<p>در چنین مواقعی هست که اصطلاح self-hosting سرویس ها استفاده می‌شود. به این معنی که سرویس هایی که شما روزانه از آن استفاده می‌کنید را خودتان راه اندازی -کنید. اما اینکار نیاز به دانش بالایی داره.</p> -<p>سیستم عامل +کنید. اما اینکار نیاز به دانش بالایی داره.</p> +<p>سیستم عامل umbrel این کار را ساده کرده است، با این تفاوت که قبلا شما باید برای استفاده چند ابزار روی یک سرور، باید سرور رو به درستی کانفیگ می‌کردین سپس ابزار ها را کانفیگ، و بعد سرویس ها راه اجرا می‌کردین. اما الان فقط با یک کلیک شما سرویس توییتر خود را -راه اندازی می‌کنید!</p> -<p><img src="https://bit-orbit.github.io/images/post/umbrelselfhosting.jpg" - - - - loading="lazy" - - alt="umbrel self hosting" - - -></p> -<hr> -<h3 id="umbrel-به-روی-سیستم-عامل-دسکتاپ">umbrel به روی سیستم عامل دسکتاپ</h3> -<p>نصب +راه اندازی می‌کنید!</p> +<p><img src="https://bit-orbit.github.io/images/post/umbrelselfhosting.jpg" +loading="lazy" +alt="umbrel self hosting" +></p> +<hr> +<h3 id="umbrel-به-روی-سیستم-عامل-دسکتاپ">umbrel به روی سیستم عامل دسکتاپ +</h3><p>نصب umbrel بسیاز سادهست فقط کافیه یک سیستم عامل debian رو روی سیستمتون داشته باشید، یک ترمینال باز کنید و کامند -نصب را بزنید، با یک کامند این سیستم نصب می‌شه.</p> -<p>ولی خب اگر سیستم عاملی ندارید که بر پایه +نصب را بزنید، با یک کامند این سیستم نصب می‌شه.</p> +<p>ولی خب اگر سیستم عاملی ندارید که بر پایه debain باشه، می‌شه به سادگی روی ماشین مجازی یک دبیان نصب کنید، حالت شبکه اون سیستم عامل رو @@ -136,10 +104,10 @@ IP debain که umbrel -را روی ان نصب کردین را وارد کنید و تمام!</p> -<hr> -<h3 id="umbrel-به-روی-رزبری-پای">umbrel به روی رزبری پای</h3> -<p>رزبری پای! یک سخت افزار کوچک که تقریبا یک کامپیوتر کامل +را روی ان نصب کردین را وارد کنید و تمام!</p> +<hr> +<h3 id="umbrel-به-روی-رزبری-پای">umbrel به روی رزبری پای +</h3><p>رزبری پای! یک سخت افزار کوچک که تقریبا یک کامپیوتر کامل است! البته که قدرت پردازش بالایی ندارد ولی در IOT استفاده زیادی دارد. با توجه به اینکه پردازنده های @@ -151,24 +119,18 @@ umbrel را نصب کرد، برای همین سیستم عامل umbrel یک نسخه مخصوص برای رزبری پای دارد، کافیست آن را دانلود و -به روی ربزی خود نصب کنید.</p> -<p>به این دقت کنید که خب سعنی کنید یک هارد اکسترنال به +به روی ربزی خود نصب کنید.</p> +<p>به این دقت کنید که خب سعنی کنید یک هارد اکسترنال به رزبری متصل کنید که فضای کافی برای سروریسی مانند next cloud -داشته باشید.</p> -<p><img src="https://bit-orbit.github.io/images/post/umbrelonressbery.jpg" - - - - loading="lazy" - - alt="umbrel on ressbery pi" - - -></p> -<hr> -<h3 id="umbrel-بروی-سرور-شخصی">umbrel بروی سرور شخصی</h3> -<p>به سادگی اچرای یک کامند! کافیست فقط سیستم عامل +داشته باشید.</p> +<p><img src="https://bit-orbit.github.io/images/post/umbrelonressbery.jpg" +loading="lazy" +alt="umbrel on ressbery pi" +></p> +<hr> +<h3 id="umbrel-بروی-سرور-شخصی">umbrel بروی سرور شخصی +</h3><p>به سادگی اچرای یک کامند! کافیست فقط سیستم عامل سرورتون debain و یا کلا بر پایه @@ -177,10 +139,10 @@ debian ubuntu باشه. کامند اجرا را وارد کنید و بعد از اتمام فرایند نصب، IP -سرور را وارد مرورگر کنید، تمام!</p> -<hr> -<h3 id="دستگاه-umbrel">دستگاه umbrel</h3> -<p>شرکت سازنده +سرور را وارد مرورگر کنید، تمام!</p> +<hr> +<h3 id="دستگاه-umbrel">دستگاه umbrel +</h3><p>شرکت سازنده umbrel به جز سیستم عامل، یک دستگاهی طراحی کرده است که به صورت پیشفرض سیستم عامل @@ -192,35 +154,29 @@ umbrel به روی rassbery PI استفاده می‌کنید، شما نیاز به یک فن دارید تا این دستگاه -را دائم خنک کند، از طرفی خود فن هم باید خنک شود.</p> -<p>اینجاست که این دستگاه رو برای شرکت یا خانه‌ شما مناسب‌تر -می‌کند(مطمئن باشید تبلیغ نمی‌کنم)</p> -<p><img src="https://bit-orbit.github.io/images/post/umbreldevice.jpg" - - - - loading="lazy" - - alt="umbrel device" - - -></p> -<hr> -<h3 id="umbrel-چطور-کار-میکند-">umbrel چطور کار می‌کند ؟</h3> -<p>اگه بخواهم کمی فنی‌تر وارد ماجرا بشم، همونطور که گفت +را دائم خنک کند، از طرفی خود فن هم باید خنک شود.</p> +<p>اینجاست که این دستگاه رو برای شرکت یا خانه‌ شما مناسب‌تر +می‌کند(مطمئن باشید تبلیغ نمی‌کنم)</p> +<p><img src="https://bit-orbit.github.io/images/post/umbreldevice.jpg" +loading="lazy" +alt="umbrel device" +></p> +<hr> +<h3 id="umbrel-چطور-کار-میکند-">umbrel چطور کار می‌کند ؟ +</h3><p>اگه بخواهم کمی فنی‌تر وارد ماجرا بشم، همونطور که گفت این سیستم عامل بهترین ویژگی که ارائه می‌کند store آن است. البته که اینجا store به معنی فروشگاه نیست، بلکه شبیه یک بازاری است که همه -اجناس‌ش رایگان است :)</p> -<p>سرویس های +اجناس‌ش رایگان است :)</p> +<p>سرویس های umbrel همه سرویس هایی هستند که به صورت منبع باز در اختیار همه قرار گرفته است، این سرویس ها برای اجرا شدن نیاز به شخصی دارد که دانش کافی از سرور داشته باشد و خب نحوه کانفیگ -کردن هر کدام از ابزار ها و سرویس ها را بداند.</p> -<p>دانلود و نصب هر سرویس به صورت جدگانه ممکن است به مشکلات +کردن هر کدام از ابزار ها و سرویس ها را بداند.</p> +<p>دانلود و نصب هر سرویس به صورت جدگانه ممکن است به مشکلات متعددی برخورد کند، مثلا در نصب سرویسی مثل nexcloud شما ممکن است نیاز به ورژن خاصی از @@ -229,11 +185,11 @@ php nginx برای اجرای اسکریپت های php -هم واقعا به اندازه زیادی دردسر دارد.</p> -<p>اینجاست که داکر وارد ماجرا می‌شود! +هم واقعا به اندازه زیادی دردسر دارد.</p> +<p>اینجاست که داکر وارد ماجرا می‌شود! umbrel -از قبل تمامی سرویس ها را داکرایز کرده است.</p> -<p>داکرایز به چه معنیست؟ +از قبل تمامی سرویس ها را داکرایز کرده است.</p> +<p>داکرایز به چه معنیست؟ درواقع به این فکر کنید که شما یک برنامه را می‌خواهید نصب کنید، این سرویس توسط سازنده آن از ورژن خاصی از زبان مشخصی، لایبراری و فایل هایی استفاده کرده است که پیشفرض @@ -244,8 +200,8 @@ image قرار داده است، و بعد کافیست شما آن فایل را به برنامه docker engine -بدهید، آن برنامه باید بدون هیچ مشکلی اجرا شود.</p> -<p>سیستم عامل +بدهید، آن برنامه باید بدون هیچ مشکلی اجرا شود.</p> +<p>سیستم عامل umbrel دقیقا چنین کاری می‌کند. تمامی image @@ -253,20 +209,14 @@ image store برای شما شما لیست می‌کند، شما کافیست که دکمه install -را بزنید، بنگ! سرویس شما آماده است :)</p> -<p><img src="https://bit-orbit.github.io/images/post/umbreldocker.jpg" - - - - loading="lazy" - - alt="umbrel dockeriz" - - -></p> -<hr> -<h3 id="امنیت">امنیت</h3> -<p>اگر +را بزنید، بنگ! سرویس شما آماده است :)</p> +<p><img src="https://bit-orbit.github.io/images/post/umbreldocker.jpg" +loading="lazy" +alt="umbrel dockeriz" +></p> +<hr> +<h3 id="امنیت">امنیت +</h3><p>اگر umbrel را به روی چیزی به جز سرور دارید، حتی اگر برای آن یک دامنه هم بگیرید، @@ -276,8 +226,8 @@ umbrel tor به آن متصل شوید و یا یک VPN -سرور داخل شبکه داخلی خود راه اندازی کنید.</p> -<p>البته +سرور داخل شبکه داخلی خود راه اندازی کنید.</p> +<p>البته umbrel به جز tor @@ -287,60 +237,54 @@ VPN tailscale که مستقیم به روی umbrel -نصب می‌شود.</p> -<p><img src="https://bit-orbit.github.io/images/post/tailscalaumbrel.jpg" - - - - loading="lazy" - - alt="tailscala umbrel" - - -></p> -<hr> -<h3 id="سرویس-های-کاربردی-umbrel">سرویس های کاربردی umbrel</h3> -<ul> -<li>matrix</li> -</ul> -<blockquote> -<p>خیلی ساده بگم، می‌تونید با این سرویس +نصب می‌شود.</p> +<p><img src="https://bit-orbit.github.io/images/post/tailscalaumbrel.jpg" +loading="lazy" +alt="tailscala umbrel" +></p> +<hr> +<h3 id="سرویس-های-کاربردی-umbrel">سرویس های کاربردی umbrel +</h3><ul> +<li>matrix</li> +</ul> +<blockquote> +<p>خیلی ساده بگم، می‌تونید با این سرویس telegtam خودتون رو راه اندازی کنید. برای اینکه بیشتر درباراه این سرویس بدونید، -<a class="link" href="https://www.wiregeek.ir/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/" target="_blank" rel="noopener" - >این پست</a> -من را بخوانید.</p> -</blockquote> -<ul> -<li>nextcloud</li> -</ul> -<blockquote> -<p>خیلی شبیه به گوگل درایو است، به جز نسخه وب +<a class="link" href="https://www.wiregeek.ir/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/" target="_blank" rel="noopener" +>این پست</a> +من را بخوانید.</p> +</blockquote> +<ul> +<li>nextcloud</li> +</ul> +<blockquote> +<p>خیلی شبیه به گوگل درایو است، به جز نسخه وب حتی یک اپ اندروید هم دارد که می‌توانید آدرس nextcloud را درون آن وارد کنید و از هرکحا به فضای خودتون دسترسی داشته باشید. و خب حتی بعنوان ادمین -برای افراد خانواده و یا شرکت‌تون اکانت بسازید، و فضای شخصی خودشان را در اختیارشان قرار بدین.</p> -</blockquote> -<ul> -<li>qbittorrent</li> -</ul> -<blockquote> -<p>اگر تورنت را می‌شناسید، قطعا این کلاینت معروف را هم باید +برای افراد خانواده و یا شرکت‌تون اکانت بسازید، و فضای شخصی خودشان را در اختیارشان قرار بدین.</p> +</blockquote> +<ul> +<li>qbittorrent</li> +</ul> +<blockquote> +<p>اگر تورنت را می‌شناسید، قطعا این کلاینت معروف را هم باید بشناسید، این کلاینت یک نسخه وب دارد که داخل فروشگاه umbrel قرار دارد. فایل های خود را برای دانلود به این کلاینت بدین و در زمانی که از اینرنت استفاده نمی‌کنید مثلا 2 تا 7 صبح -آن ها را بگذارید تا دانلود بشوند.</p> -</blockquote> -<ul> -<li>pi-hole</li> -</ul> -<blockquote> -<p>برای خلاص شدن از تبلیغات اینترنت کافیه این سرویس +آن ها را بگذارید تا دانلود بشوند.</p> +</blockquote> +<ul> +<li>pi-hole</li> +</ul> +<blockquote> +<p>برای خلاص شدن از تبلیغات اینترنت کافیه این سرویس DNS را به روی umbrel @@ -348,13 +292,13 @@ umbrel DHCP را تنظیم کنید که IP -این سرویس را به دیگر دستگاه های شبکه بدهد.</p> -</blockquote> -<ul> -<li>Jellyfin</li> -</ul> -<blockquote> -<p>یکی از نیاز های واقعا اساسی من، این سرویس است. +این سرویس را به دیگر دستگاه های شبکه بدهد.</p> +</blockquote> +<ul> +<li>Jellyfin</li> +</ul> +<blockquote> +<p>یکی از نیاز های واقعا اساسی من، این سرویس است. فیلم هایی که می‌بینم، و یا قرار است که ببینم‌شون رو می‌تونم با این سرویس به درستی دنبال کنم. در اصل این سرویس برای پخش کردن فیلم ها ساخته شده‌ است. @@ -364,69 +308,58 @@ jellyfin فیلم ها رو تماشا کنید، مثلا اگر تلویزیون هوشمند دارید کافیست از طریق مرورگر آن وارد umbrel -خود بشین.</p> -</blockquote> -<p>-snapdrop</p> -<blockquote> -<p>سرویس خیلی ساده‌ای است که برای انتقال فایل داخل -شبکه لوکال استفاده می‌شود.</p> -</blockquote> -<ul> -<li>whoogle search</li> -</ul> -<blockquote> -<p>البته +خود بشین.</p> +</blockquote> +<p>-snapdrop</p> +<blockquote> +<p>سرویس خیلی ساده‌ای است که برای انتقال فایل داخل +شبکه لوکال استفاده می‌شود.</p> +</blockquote> +<ul> +<li>whoogle search</li> +</ul> +<blockquote> +<p>البته whoogle یک موتور جست و جوی meta است، به این معنی که خودش وب را خزش نمی‌کند و از موتور های جست و جوی دیگر برای نتیجه جست و جوی شما استفاده -می‌کند.</p> -</blockquote> -<ul> -<li>LlamaGPT</li> -</ul> -<blockquote> -<p>چیزی شبیه +می‌کند.</p> +</blockquote> +<ul> +<li>LlamaGPT</li> +</ul> +<blockquote> +<p>چیزی شبیه ChatGPT -ولی افلاین و کاملا خصوصی.</p> -</blockquote> -<hr> -<h3 id="راه-اندازی-سرویس-های-شخصی">راه اندازی سرویس های شخصی</h3> -<p>خیلی از سرویس ها هنوز به +ولی افلاین و کاملا خصوصی.</p> +</blockquote> +<hr> +<h3 id="راه-اندازی-سرویس-های-شخصی">راه اندازی سرویس های شخصی +</h3><p>خیلی از سرویس ها هنوز به umbrel اضافه نشده. اضافه کردن سرویس به خود store -هم کار سختی نیستی، کافیه فقط داکرایز کردن رو بلد باشین.</p> -<ul> -<li>cache server</li> -</ul> -<p>کش سرور ها معمولا با +هم کار سختی نیستی، کافیه فقط داکرایز کردن رو بلد باشین.</p> +<ul> +<li>cache server</li> +</ul> +<p>کش سرور ها معمولا با transparent proxy بدون اینکه کاربران متوجه پروکسی بشوند پیاده سازی می‌شوند. -کار آنها کاهش مصرف ترافیک است.</p> -<p>یکی از سرویس هایی که خیلی از شرکت ها برای کاهش هزینه های +کار آنها کاهش مصرف ترافیک است.</p> +<p>یکی از سرویس هایی که خیلی از شرکت ها برای کاهش هزینه های اینرنت و یا خب برای بهبود سرعت اینترنت می‌کنند، ارائه cache server -هست.</p> -<p>خیلی خلاصه بگم کش سرور محتوایی که کاربران بازدید می‌کنند +هست.</p> +<p>خیلی خلاصه بگم کش سرور محتوایی که کاربران بازدید می‌کنند را درون خود برای مدتی و با شرایطی از پیش تعیین شده نگه ‌می‌دارد و هر بار که کاربران به محتوای قبلی درخواست بدهند، دیگر آن ریکوئست تا سایت اصلی نمی‌رود و خود -کش سرور که در شبکه داخلی است جواب آن را می‌دهد</p> -<p><img src="https://bit-orbit.github.io/images/post/cacheumber.jpg" - - - - loading="lazy" - - alt="cache server" - - -></p> -<hr> - - - - - +کش سرور که در شبکه داخلی است جواب آن را می‌دهد</p> +<p><img src="https://bit-orbit.github.io/images/post/cacheumber.jpg" +loading="lazy" +alt="cache server" +></p> +<hr> \ No newline at end of file diff --git a/docs/tags/what-is-umbrel-os/page/1/index.html b/docs/tags/what-is-umbrel-os/page/1/index.html index 38ffef4..1e20a84 100644 --- a/docs/tags/what-is-umbrel-os/page/1/index.html +++ b/docs/tags/what-is-umbrel-os/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/what-is-umbrel-os/ - - - - - - +https://bit-orbit.github.io/tags/what-is-umbrel-os/ + \ No newline at end of file diff --git a/docs/tags/why-i-love-linux/index.html b/docs/tags/why-i-love-linux/index.html index 66e2fc8..456bfa4 100644 --- a/docs/tags/why-i-love-linux/index.html +++ b/docs/tags/why-i-love-linux/index.html @@ -1,559 +1,37 @@ - - - - -Tag: Why-I-Love-Linux - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

Why-I-Love-Linux

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: Why-I-Love-Linux - bit-orbit +

Tags

1 صفحه

Why-I-Love-Linux

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git a/docs/tags/why-i-love-linux/index.xml b/docs/tags/why-i-love-linux/index.xml index 362fae5..17a121b 100644 --- a/docs/tags/why-i-love-linux/index.xml +++ b/docs/tags/why-i-love-linux/index.xml @@ -1,107 +1,70 @@ - - - - Why-I-Love-Linux on bit-orbit - https://bit-orbit.github.io/tags/why-i-love-linux/ - Recent content in Why-I-Love-Linux on bit-orbit - Hugo -- gohugo.io - fa - Fri, 07 Jul 2023 02:45:19 +0330 - چرا لینوکس رو دوست دارم؟ - https://bit-orbit.github.io/p/%DA%86%D8%B1%D8%A7-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D8%B1%D9%88-%D8%AF%D9%88%D8%B3%D8%AA-%D8%AF%D8%A7%D8%B1%D9%85/ - Fri, 07 Jul 2023 02:45:19 +0330 - - https://bit-orbit.github.io/p/%DA%86%D8%B1%D8%A7-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D8%B1%D9%88-%D8%AF%D9%88%D8%B3%D8%AA-%D8%AF%D8%A7%D8%B1%D9%85/ - <img src="https://bit-orbit.github.io/images/post/ill.png" alt="Featured image of post چرا لینوکس رو دوست دارم؟" /><p>دوست داشتن لینوکس واقعا دلایل زیادی داره و احتمالا هر کسی به دلیل خاصی لینوکس رو دوست داره. -مثلا یکی ممکنه آزادی‌اش رو دوست داشته باشه یکی دیگه از پکیج منیجر علاقه رو به لینوکس پیدا کرده باشه و &hellip;</p> -<p>من ترمینال قدرتمند لینوکس رو دوست دارم، چیزی که هیچوقت توی ویندوز تجربه نکرده بودم. -یکی زیبایی های ترمینال برای من ترکیب ریزالت برنامه‌های مختلف با یکدیگر و بدست اوردن نتیجه جدیده</p> -<p>مثلا بابام برای چندین پست فرستاد که هر پست شامل چهار یا پنج لینکه که من باید همه‌ش رو دانلود کنم، +Why-I-Love-Linux on bit-orbithttps://bit-orbit.github.io/tags/why-i-love-linux/Recent content in Why-I-Love-Linux on bit-orbitHugo -- gohugo.iofaFri, 07 Jul 2023 02:45:19 +0330چرا لینوکس رو دوست دارم؟https://bit-orbit.github.io/p/%DA%86%D8%B1%D8%A7-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D8%B1%D9%88-%D8%AF%D9%88%D8%B3%D8%AA-%D8%AF%D8%A7%D8%B1%D9%85/Fri, 07 Jul 2023 02:45:19 +0330https://bit-orbit.github.io/p/%DA%86%D8%B1%D8%A7-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D8%B1%D9%88-%D8%AF%D9%88%D8%B3%D8%AA-%D8%AF%D8%A7%D8%B1%D9%85/<img src="https://bit-orbit.github.io/images/post/ill.png" alt="Featured image of post چرا لینوکس رو دوست دارم؟" /><p>دوست داشتن لینوکس واقعا دلایل زیادی داره و احتمالا هر کسی به دلیل خاصی لینوکس رو دوست داره. +مثلا یکی ممکنه آزادی‌اش رو دوست داشته باشه یکی دیگه از پکیج منیجر علاقه رو به لینوکس پیدا کرده باشه و &hellip;</p> +<p>من ترمینال قدرتمند لینوکس رو دوست دارم، چیزی که هیچوقت توی ویندوز تجربه نکرده بودم. +یکی زیبایی های ترمینال برای من ترکیب ریزالت برنامه‌های مختلف با یکدیگر و بدست اوردن نتیجه جدیده</p> +<p>مثلا بابام برای چندین پست فرستاد که هر پست شامل چهار یا پنج لینکه که من باید همه‌ش رو دانلود کنم، درحالت عادی اگر روی ویندوز بودم خب باید هر لینک رو کپی می‌کردم و بعد وارد دانلود منیجر می‌کردم برای دانلود. -ولی خب ما مجهزیم به قدرت ترمینال لینوکس :)</p> -<p><img src="https://bit-orbit.github.io/images/post/tfiles.jpg" - - - - loading="lazy" - - alt="telegram-post-contain-links" - - -></p> -<p>خب من کاری که می‌کنم اینه که متن پست ها رو کپی می‌کنم و توی یک فایل می‌ریزم -اینطوری هم متن های فارسی پست ها و هم لینک های فایل ها رو دارم</p> -<p><img src="https://bit-orbit.github.io/images/post/ffiles2.jpg" - - - - loading="lazy" - - alt="save-links-to-file" - - -></p> -<p>بعد با دستور +ولی خب ما مجهزیم به قدرت ترمینال لینوکس :)</p> +<p><img src="https://bit-orbit.github.io/images/post/tfiles.jpg" +loading="lazy" +alt="telegram-post-contain-links" +></p> +<p>خب من کاری که می‌کنم اینه که متن پست ها رو کپی می‌کنم و توی یک فایل می‌ریزم +اینطوری هم متن های فارسی پست ها و هم لینک های فایل ها رو دارم</p> +<p><img src="https://bit-orbit.github.io/images/post/ffiles2.jpg" +loading="lazy" +alt="save-links-to-file" +></p> +<p>بعد با دستور grep با یک پترن ساده regex همه لینک ها رو از متن های فارسی جدا می‌کنم و داخل یک فایل دیگه می‌ریزم. این پترن به این شکل هست که می‌گه هر خطی که اولش http -باشه رو پیدا کن.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">cat dl.txt <span class="p">|</span> egrep <span class="s1">&#39;^http&#39;</span> &gt; dl.lst -</span></span></code></pre></td></tr></table> -</div> -</div><p><img src="https://bit-orbit.github.io/images/post/tfiles3.jpg" - - - - loading="lazy" - - alt="save-links-to-file" - - -></p> -<p>و تمام، همه لینک ها رو یکجا آماده دارم، حالا کافیه با یک دستور همه فایل -ها رو دانلود کنم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">wget -c -i dl.lst -</span></span></code></pre></td></tr></table> -</div> -</div><p>خب بعد از دانلود شدن فایل ها، یک مشکلی که دارم این هست که هر پست شامل تمامی درس های یکی از فصل هایی هست +باشه رو پیدا کن.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">cat dl.txt <span class="p">|</span> egrep <span class="s1">&#39;^http&#39;</span> &gt; dl.lst +</span></span></code></pre></td></tr></table> +</div> +</div><p><img src="https://bit-orbit.github.io/images/post/tfiles3.jpg" +loading="lazy" +alt="save-links-to-file" +></p> +<p>و تمام، همه لینک ها رو یکجا آماده دارم، حالا کافیه با یک دستور همه فایل +ها رو دانلود کنم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">wget -c -i dl.lst +</span></span></code></pre></td></tr></table> +</div> +</div><p>خب بعد از دانلود شدن فایل ها، یک مشکلی که دارم این هست که هر پست شامل تمامی درس های یکی از فصل هایی هست که بابام می‌بینه. من باید فایل ها رو براساس فصل هاشون داخل دایرکتوری های مشخص خودش قرار بدم. اینم یک راهکار خیلی ساده داره. اسم فایل ها به این شکل هست که فصل رو داخلش نوشته -<code>Option402-J04-01.mp4</code> -کافیه با یه وایلد کارت هر فصل رو جدا کنم و داخل دایرکتوری خودش بریزم</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span><span class="lnt">3 -</span><span class="lnt">4 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mv Option402-J04* j04 -</span></span><span class="line"><span class="cl">mv Option402-J05* j05 -</span></span><span class="line"><span class="cl">mv Option402-J06* j06 -</span></span><span class="line"><span class="cl">mv Option402-J07* j07 -</span></span></code></pre></td></tr></table> -</div> -</div><p>این یک مثال ساده‌ای بود که می‌تونستم بزنم برای -توضیح اینکه چرا لینوکس برام جذاب تره و کارم رو ساده تر می‌کنه.</p> - - - - - +<code>Option402-J04-01.mp4</code> +کافیه با یه وایلد کارت هر فصل رو جدا کنم و داخل دایرکتوری خودش بریزم</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mv Option402-J04* j04 +</span></span><span class="line"><span class="cl">mv Option402-J05* j05 +</span></span><span class="line"><span class="cl">mv Option402-J06* j06 +</span></span><span class="line"><span class="cl">mv Option402-J07* j07 +</span></span></code></pre></td></tr></table> +</div> +</div><p>این یک مثال ساده‌ای بود که می‌تونستم بزنم برای +توضیح اینکه چرا لینوکس برام جذاب تره و کارم رو ساده تر می‌کنه.</p> \ No newline at end of file diff --git a/docs/tags/why-i-love-linux/page/1/index.html b/docs/tags/why-i-love-linux/page/1/index.html index 5213558..567e720 100644 --- a/docs/tags/why-i-love-linux/page/1/index.html +++ b/docs/tags/why-i-love-linux/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/why-i-love-linux/ - - - - - - +https://bit-orbit.github.io/tags/why-i-love-linux/ + \ No newline at end of file diff --git a/docs/tags/zsh/index.html b/docs/tags/zsh/index.html index ee238e3..2a2a77d 100644 --- a/docs/tags/zsh/index.html +++ b/docs/tags/zsh/index.html @@ -1,559 +1,37 @@ - - - - -Tag: Zsh - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

Zsh

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: Zsh - bit-orbit + \ No newline at end of file diff --git a/docs/tags/zsh/index.xml b/docs/tags/zsh/index.xml index 439adb7..2b7fa86 100644 --- a/docs/tags/zsh/index.xml +++ b/docs/tags/zsh/index.xml @@ -1,118 +1,86 @@ - - - - Zsh on bit-orbit - https://bit-orbit.github.io/tags/zsh/ - Recent content in Zsh on bit-orbit - Hugo -- gohugo.io - fa - Tue, 11 Jan 2022 02:44:12 +0330 - zsh بهترین پلاگین های - https://bit-orbit.github.io/p/zsh-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C/ - Tue, 11 Jan 2022 02:44:12 +0330 - - https://bit-orbit.github.io/p/zsh-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C/ - <img src="https://bit-orbit.github.io/images/post/terminal.jpg" alt="Featured image of post zsh بهترین پلاگین های " /><p>نوشتن یک برنامه کار سختی نیست، بلکه نگه‌داری و آپدیت یک برنامه‌ست، پلاگین این ویژگی را می‌دهد تا به راحتی عملکرد یک برنامه را بی‌افزاییم.</p> -<hr> -<div dir='rtl' style='font-size:25px'> -<h3 id="themeshttpsgithubcomohmyzshohmyzshtreemasterpluginsthemes-"><a class="link" href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/themes" target="_blank" rel="noopener" - >themes</a> #Ⅳ</h3> -<p>انتخاب +Zsh on bit-orbithttps://bit-orbit.github.io/tags/zsh/Recent content in Zsh on bit-orbitHugo -- gohugo.iofaTue, 11 Jan 2022 02:44:12 +0330 zsh بهترین پلاگین هایhttps://bit-orbit.github.io/p/zsh-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C/Tue, 11 Jan 2022 02:44:12 +0330https://bit-orbit.github.io/p/zsh-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D9%87%D8%A7%DB%8C/<img src="https://bit-orbit.github.io/images/post/terminal.jpg" alt="Featured image of post zsh بهترین پلاگین های " /><p>نوشتن یک برنامه کار سختی نیست، بلکه نگه‌داری و آپدیت یک برنامه‌ست، پلاگین این ویژگی را می‌دهد تا به راحتی عملکرد یک برنامه را بی‌افزاییم.</p> +<hr> +<div dir='rtl' style='font-size:25px'> +<h3 id="themeshttpsgithubcomohmyzshohmyzshtreemasterpluginsthemes-"><a class="link" href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/themes" target="_blank" rel="noopener" +>themes</a> #Ⅳ +</h3><p>انتخاب بین تم های zsh واقعا کار سختیه!‌ هر تم ظاهر جدیدی به ترمینال شما می‌دهد که -کار کردن در ترمینال را جذاب تر می‌کند.</p> -<p>با استفاده از این پلاگین شما بدون نیاز به تغییر دستی فایل کانفیگ -<code>zshrc.</code>، -می‌توانید تم را تغییر بدین.</p> -<p><img src="https://bit-orbit.github.io/images/post/theme.gif" - - - - loading="lazy" - - alt="theme-plugin" - - -></p> -<blockquote> -<ul> -<li>تغییر به یک تم مشخص</li> -</ul> -<p><code>theme theme_name</code></p> -</blockquote> -<blockquote> -<ul> -<li>تغییر رندم تم</li> -</ul> -<p><code>theme</code></p> -</blockquote> -<blockquote> -<ul> -<li>دیدن لیستی از تم های نصب شده</li> -</ul> -<p><code>lstheme</code></p> -</blockquote> -<hr> -<h3 id="zsh-autosuggestionshttpsgithubcomzsh-userszsh-autosuggestions-"><a class="link" href="https://github.com/zsh-users/zsh-autosuggestions" target="_blank" rel="noopener" - >zsh-autosuggestions</a> #Ⅲ</h3> -<blockquote> -<p><a class="link" href="https://github.com/zsh-users/zsh-autosuggestions" target="_blank" rel="noopener" - >تنها پلاگینی که باید نصب بشه</a></p> -</blockquote> -<p>این یکی از پلاگین هایی است که بدون آن زندگی ممکن نیست!</p> -<p>همانطور که شما دستوری را تایپ می‌کنید، متنی به رنگ خاکستری ظاهر می‌شود که +کار کردن در ترمینال را جذاب تر می‌کند.</p> +<p>با استفاده از این پلاگین شما بدون نیاز به تغییر دستی فایل کانفیگ +<code>zshrc.</code>، +می‌توانید تم را تغییر بدین.</p> +<p><img src="https://bit-orbit.github.io/images/post/theme.gif" +loading="lazy" +alt="theme-plugin" +></p> +<blockquote> +<ul> +<li>تغییر به یک تم مشخص</li> +</ul> +<p><code>theme theme_name</code></p> +</blockquote> +<blockquote> +<ul> +<li>تغییر رندم تم</li> +</ul> +<p><code>theme</code></p> +</blockquote> +<blockquote> +<ul> +<li>دیدن لیستی از تم های نصب شده</li> +</ul> +<p><code>lstheme</code></p> +</blockquote> +<hr> +<h3 id="zsh-autosuggestionshttpsgithubcomzsh-userszsh-autosuggestions-"><a class="link" href="https://github.com/zsh-users/zsh-autosuggestions" target="_blank" rel="noopener" +>zsh-autosuggestions</a> #Ⅲ +</h3><blockquote> +<p><a class="link" href="https://github.com/zsh-users/zsh-autosuggestions" target="_blank" rel="noopener" +>تنها پلاگینی که باید نصب بشه</a></p> +</blockquote> +<p>این یکی از پلاگین هایی است که بدون آن زندگی ممکن نیست!</p> +<p>همانطور که شما دستوری را تایپ می‌کنید، متنی به رنگ خاکستری ظاهر می‌شود که به شما دستورات ممکن را پیشنهاد می‌دهد و یا از history دستور مشابه که قبلا اجرا کرده‌اید را جست و جو می‌کند و پیشنهاد می‌هد. و خب شما را برای تایپ کردن کامل دستور و سوییچ هایش راحت می‌کند. برای اینکه دستور ظاهر شده تایپ شود کافیست کلید -<code>right arrow key</code> +<code>right arrow key</code> یا همان -<code>فلش سمت راست</code> -را فشار دهید.</p> -<p><img src="https://bit-orbit.github.io/images/post/zsh-autosuggestions-gif.gif" - - - - loading="lazy" - - alt="zsh-autosuggestion" - - -></p> -<hr> -<h3 id="sudohttpsgithubcomohmyzshohmyzshtreemasterpluginssudo-"><a class="link" href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/sudo" target="_blank" rel="noopener" - >sudo</a> #Ⅱ</h3> -<p>بار ها اتفاق افتاده دستوری را که نیاز به دسترسی +<code>فلش سمت راست</code> +را فشار دهید.</p> +<p><img src="https://bit-orbit.github.io/images/post/zsh-autosuggestions-gif.gif" +loading="lazy" +alt="zsh-autosuggestion" +></p> +<hr> +<h3 id="sudohttpsgithubcomohmyzshohmyzshtreemasterpluginssudo-"><a class="link" href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/sudo" target="_blank" rel="noopener" +>sudo</a> #Ⅱ +</h3><p>بار ها اتفاق افتاده دستوری را که نیاز به دسترسی root داشته را بدون نوشتن کلمه -<em>sudo</em> +<em>sudo</em> اجرا کرده‌ام، و بعد از دیدن ارور، دستور را دوباره تایپ کردم و کلمه -<em>sudo</em> +<em>sudo</em> را هم به اول دستور اضافه کردم. اما این پلاگین بار تایپ مجدد یک دستور بخاطر فراموش کردن کلمه -<em>sudo</em> +<em>sudo</em> را از دوش ما بر‌ می‌دارد. کافیست بعد از نوشتن و اجرای دستور بدون -<em>sudo</em>، +<em>sudo</em>، دوبار کلید -<code>esc</code> -را بزنید</p> -<p><img src="https://bit-orbit.github.io/images/post/sudo.gif" - - - - loading="lazy" - - alt="zsh-sudo-theme" - - -></p> -<hr> -<h3 id="web-searchhttpsgithubcomohmyzshohmyzshtreemasterpluginsweb-search-"><a class="link" href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/web-search" target="_blank" rel="noopener" - >web-search</a> #Ⅰ</h3> -<p>وقتی با لینوکس کار می‌‌کنید، تمام لحظه ها در ترمینال هستنید. +<code>esc</code> +را بزنید</p> +<p><img src="https://bit-orbit.github.io/images/post/sudo.gif" +loading="lazy" +alt="zsh-sudo-theme" +></p> +<hr> +<h3 id="web-searchhttpsgithubcomohmyzshohmyzshtreemasterpluginsweb-search-"><a class="link" href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/web-search" target="_blank" rel="noopener" +>web-search</a> #Ⅰ +</h3><p>وقتی با لینوکس کار می‌‌کنید، تمام لحظه ها در ترمینال هستنید. فرض کنید سوالی دارید که باید آن را گوگل کنید،‌ شما مجبور می‌شوید مرورگر را باز کنید، یک تب جدید ایجاد کنید و متنتان را سرچ کنید. ولی به این فکر کنید که نیازی به باز کردن مرورگر و یا سوییچ کردن بین ویندوز ها ندارید، @@ -120,78 +88,67 @@ root google را در ترمینال تایپ کنید و متن خود را جلو آن بنوسید و در آخر دکمه اینتر را بزنید! -بنگ! گوگل باز می‌شود و حاصل جست و جوی شما آماده است.</p> -<p><img src="https://bit-orbit.github.io/images/post/web-search.gif" - - - - loading="lazy" - - alt="web-search" - - -></p> -</div> -<table> - <thead> - <tr> - <th style="text-align: center">دستور\موتور جست و جو</th> - </tr> - </thead> - <tbody> - <tr> - <td style="text-align: center"><code>bing</code></td> - </tr> - <tr> - <td style="text-align: center"><code>google</code></td> - </tr> - <tr> - <td style="text-align: center"><code>yahoo</code></td> - </tr> - <tr> - <td style="text-align: center"><code>ddg</code> or <code>duckduckgo</code></td> - </tr> - <tr> - <td style="text-align: center"><code>sp</code> or <code>startpage</code></td> - </tr> - <tr> - <td style="text-align: center"><code>yandex</code></td> - </tr> - <tr> - <td style="text-align: center"><code>github</code></td> - </tr> - <tr> - <td style="text-align: center"><code>baidu</code></td> - </tr> - <tr> - <td style="text-align: center"><code>ecosia</code></td> - </tr> - <tr> - <td style="text-align: center"><code>goodreads</code></td> - </tr> - <tr> - <td style="text-align: center"><code>qwant</code></td> - </tr> - <tr> - <td style="text-align: center"><code>givero</code></td> - </tr> - <tr> - <td style="text-align: center"><code>stackoverflow</code></td> - </tr> - <tr> - <td style="text-align: center"><code>wolframalpha</code></td> - </tr> - <tr> - <td style="text-align: center"><code>archive</code></td> - </tr> - <tr> - <td style="text-align: center"><code>scholar</code></td> - </tr> - </tbody> -</table> -<hr> - - - - - +بنگ! گوگل باز می‌شود و حاصل جست و جوی شما آماده است.</p> +<p><img src="https://bit-orbit.github.io/images/post/web-search.gif" +loading="lazy" +alt="web-search" +></p> +</div> +<table> +<thead> +<tr> +<th style="text-align: center">دستور\موتور جست و جو</th> +</tr> +</thead> +<tbody> +<tr> +<td style="text-align: center"><code>bing</code></td> +</tr> +<tr> +<td style="text-align: center"><code>google</code></td> +</tr> +<tr> +<td style="text-align: center"><code>yahoo</code></td> +</tr> +<tr> +<td style="text-align: center"><code>ddg</code> or <code>duckduckgo</code></td> +</tr> +<tr> +<td style="text-align: center"><code>sp</code> or <code>startpage</code></td> +</tr> +<tr> +<td style="text-align: center"><code>yandex</code></td> +</tr> +<tr> +<td style="text-align: center"><code>github</code></td> +</tr> +<tr> +<td style="text-align: center"><code>baidu</code></td> +</tr> +<tr> +<td style="text-align: center"><code>ecosia</code></td> +</tr> +<tr> +<td style="text-align: center"><code>goodreads</code></td> +</tr> +<tr> +<td style="text-align: center"><code>qwant</code></td> +</tr> +<tr> +<td style="text-align: center"><code>givero</code></td> +</tr> +<tr> +<td style="text-align: center"><code>stackoverflow</code></td> +</tr> +<tr> +<td style="text-align: center"><code>wolframalpha</code></td> +</tr> +<tr> +<td style="text-align: center"><code>archive</code></td> +</tr> +<tr> +<td style="text-align: center"><code>scholar</code></td> +</tr> +</tbody> +</table> +<hr> \ No newline at end of file diff --git a/docs/tags/zsh/page/1/index.html b/docs/tags/zsh/page/1/index.html index d8282ca..d1bb643 100644 --- a/docs/tags/zsh/page/1/index.html +++ b/docs/tags/zsh/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/zsh/ - - - - - - +https://bit-orbit.github.io/tags/zsh/ + \ No newline at end of file diff --git "a/docs/tags/\330\242\330\261\333\214\330\247-\330\264\330\250\330\247\331\206\331\207/index.html" "b/docs/tags/\330\242\330\261\333\214\330\247-\330\264\330\250\330\247\331\206\331\207/index.html" index 9df41c1..ad59b61 100644 --- "a/docs/tags/\330\242\330\261\333\214\330\247-\330\264\330\250\330\247\331\206\331\207/index.html" +++ "b/docs/tags/\330\242\330\261\333\214\330\247-\330\264\330\250\330\247\331\206\331\207/index.html" @@ -1,559 +1,37 @@ - - - - -Tag: آریا شبانه - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

آریا شبانه

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: آریا شبانه - bit-orbit + \ No newline at end of file diff --git "a/docs/tags/\330\242\330\261\333\214\330\247-\330\264\330\250\330\247\331\206\331\207/index.xml" "b/docs/tags/\330\242\330\261\333\214\330\247-\330\264\330\250\330\247\331\206\331\207/index.xml" index 960eb64..56ddbd5 100644 --- "a/docs/tags/\330\242\330\261\333\214\330\247-\330\264\330\250\330\247\331\206\331\207/index.xml" +++ "b/docs/tags/\330\242\330\261\333\214\330\247-\330\264\330\250\330\247\331\206\331\207/index.xml" @@ -1,18 +1,4 @@ - - - - آریا شبانه on bit-orbit - https://bit-orbit.github.io/tags/%D8%A2%D8%B1%DB%8C%D8%A7-%D8%B4%D8%A8%D8%A7%D9%86%D9%87/ - Recent content in آریا شبانه on bit-orbit - Hugo -- gohugo.io - fa - Wed, 27 Dec 2023 16:39:27 +0330 - فورک بمب چیست و چطور کار می‌کند؟ - https://bit-orbit.github.io/p/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B7%D9%88%D8%B1-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF/ - Wed, 27 Dec 2023 16:39:27 +0330 - - https://bit-orbit.github.io/p/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B7%D9%88%D8%B1-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF/ - <img src="https://bit-orbit.github.io/images/post/fork_bomb.jpg" alt="Featured image of post فورک بمب چیست و چطور کار می‌کند؟" /><p>اوایل که لینوکس نصب کرده بودم کامند هایی که توی +آریا شبانه on bit-orbithttps://bit-orbit.github.io/tags/%D8%A2%D8%B1%DB%8C%D8%A7-%D8%B4%D8%A8%D8%A7%D9%86%D9%87/Recent content in آریا شبانه on bit-orbitHugo -- gohugo.iofaWed, 27 Dec 2023 16:39:27 +0330فورک بمب چیست و چطور کار می‌کند؟https://bit-orbit.github.io/p/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B7%D9%88%D8%B1-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF/Wed, 27 Dec 2023 16:39:27 +0330https://bit-orbit.github.io/p/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B7%D9%88%D8%B1-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF/<img src="https://bit-orbit.github.io/images/post/fork_bomb.jpg" alt="Featured image of post فورک بمب چیست و چطور کار می‌کند؟" /><p>اوایل که لینوکس نصب کرده بودم کامند هایی که توی فروم های مختلف می‌دیدم و برای من جدید بود را دوست داشتم یاد بگیرم و بدانم کار آنها چی هست، برای همین هر کامندی را که می‌دیدم در @@ -21,306 +7,283 @@ هر کامندی اشتباهه بود. یکی از این کامند ها که اجرا کرده بودم، به اسم فورک بمب (fork bomb) -شناخته می‌شود. کامند به این صورت هست</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>:<span class="p">&amp;</span> <span class="o">}</span><span class="p">;</span>: -</span></span></code></pre></td></tr></table> -</div> -</div><p>اگر این کامند را اجرا کنید(امیدوارم تا الان نکرده باشید) تقریبا زیر یک دقیقه سیستم شما -هنگ می‌کند و مجبور می‌شوید سیستم را ریبوت کنید.</p> -<hr> -<p>توی این پست ساختار این کامند را تشریح می‌کنم و باهم +شناخته می‌شود. کامند به این صورت هست</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>:<span class="p">&amp;</span> <span class="o">}</span><span class="p">;</span>: +</span></span></code></pre></td></tr></table> +</div> +</div><p>اگر این کامند را اجرا کنید(امیدوارم تا الان نکرده باشید) تقریبا زیر یک دقیقه سیستم شما +هنگ می‌کند و مجبور می‌شوید سیستم را ریبوت کنید.</p> +<hr> +<p>توی این پست ساختار این کامند را تشریح می‌کنم و باهم کمی bash -یاد می‌گیریم.</p> -<p>بیایید اول با مفهوم +یاد می‌گیریم.</p> +<p>بیایید اول با مفهوم recustion آشنا بشیم، زمانی که یک قطعه کد خودش اجرا کند، recusion می‌گویم. مثلا شما یک فانکشن می‌نویسید به اسم -<em>fn</em> +<em>fn</em> و توی بدنه فانکشن فقط خود همین فانکشن را صدا می‌‌کنید، به این کار call recursion گفته می‌شود. فورک بمب دقیقا همین کار را می‌کند. به این -معنی که خودش را دائم اجرا می‌کند!</p> -<p>به این فکر کنید که وقتی یک پراسس خودش را اجرا می‌کند +معنی که خودش را دائم اجرا می‌کند!</p> +<p>به این فکر کنید که وقتی یک پراسس خودش را اجرا می‌کند ،مجدد پراسس های اجرا شده توسط اون هم دائم خودشان را اجرا می‌کنند، و دوباره هر پروسه‌ای که اجرا می‌شود بازم خودش را اجرا می‌کند و این روند تا زمانی که رم و پردازنده سیستم تحمل -داشته باشد ادامه دارد.</p> -<blockquote> -<p>درختی که می‌بینید را اجرای فورک بمب درنظر بگیرید، +داشته باشد ادامه دارد.</p> +<blockquote> +<p>درختی که می‌بینید را اجرای فورک بمب درنظر بگیرید، هر ستاره یک پروسه جدید است که توسط پروسه قبلی اجرا شده، و خودش هم دو پروسه جدید باز می‌کند و هر یک از پروسه ها -هم همین روند را ادامه می‌دهند.</p> -</blockquote> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt">10 -</span><span class="lnt">11 -</span><span class="lnt">12 -</span><span class="lnt">13 -</span><span class="lnt">14 -</span><span class="lnt">15 -</span><span class="lnt">16 -</span><span class="lnt">17 -</span><span class="lnt">18 -</span><span class="lnt">19 -</span><span class="lnt">20 -</span><span class="lnt">21 -</span><span class="lnt">22 -</span><span class="lnt">23 -</span><span class="lnt">24 -</span><span class="lnt">25 -</span><span class="lnt">26 -</span><span class="lnt">27 -</span><span class="lnt">28 -</span><span class="lnt">29 -</span><span class="lnt">30 -</span><span class="lnt">31 -</span><span class="lnt">32 -</span><span class="lnt">33 -</span><span class="lnt">34 -</span><span class="lnt">35 -</span><span class="lnt">36 -</span><span class="lnt">37 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w">   </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w">   </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><p>من برای اینکه سیستم‌ خودم هنگ نکند فورک بمب را روی داکر +هم همین روند را ادامه می‌دهند.</p> +</blockquote> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span><span class="lnt">19 +</span><span class="lnt">20 +</span><span class="lnt">21 +</span><span class="lnt">22 +</span><span class="lnt">23 +</span><span class="lnt">24 +</span><span class="lnt">25 +</span><span class="lnt">26 +</span><span class="lnt">27 +</span><span class="lnt">28 +</span><span class="lnt">29 +</span><span class="lnt">30 +</span><span class="lnt">31 +</span><span class="lnt">32 +</span><span class="lnt">33 +</span><span class="lnt">34 +</span><span class="lnt">35 +</span><span class="lnt">36 +</span><span class="lnt">37 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w">   </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w">   </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><p>من برای اینکه سیستم‌ خودم هنگ نکند فورک بمب را روی داکر اجرا کردم و خب حتی یک ثانیه هم طول نکشید و آن کانتینر -کاملا هنگ کرد.</p> -<blockquote> -<p>قبل از اجرا -<a class="link" href="https://bit-orbit.github.io/images/post/forkbomb_docker0.jpg" ><img src="https://bit-orbit.github.io/images/post/forkbomb_docker0.jpg" - - - - loading="lazy" - - alt="forkbomb on docker" - - -></a></p> -</blockquote> -<blockquote> -<p>زمان اجرا -<a class="link" href="https://bit-orbit.github.io/images/post/forkbomb_docker.jpg" ><img src="https://bit-orbit.github.io/images/post/forkbomb_docker.jpg" - - - - loading="lazy" - - alt="forkbomb on docker" - - -></a></p> -</blockquote> -<hr> -<p>بیایید وارد کد بشیم، این علامت ها و کاراکتر ها چی هستند؟</p> -<!-- برای تعریف یک فانکشن توی +کاملا هنگ کرد.</p> +<blockquote> +<p>قبل از اجرا +<a class="link" href="https://bit-orbit.github.io/images/post/forkbomb_docker0.jpg" ><img src="https://bit-orbit.github.io/images/post/forkbomb_docker0.jpg" +loading="lazy" +alt="forkbomb on docker" +></a></p> +</blockquote> +<blockquote> +<p>زمان اجرا +<a class="link" href="https://bit-orbit.github.io/images/post/forkbomb_docker.jpg" ><img src="https://bit-orbit.github.io/images/post/forkbomb_docker.jpg" +loading="lazy" +alt="forkbomb on docker" +></a></p> +</blockquote> +<hr> +<p>بیایید وارد کد بشیم، این علامت ها و کاراکتر ها چی هستند؟</p> +<!-- برای تعریف یک فانکشن توی bash -ما به این صورت عمل می‌کنیم که اول اسم فانکشن بعد پرانتز -و بعد کرلی براکت(توی فارسی می‌گیم آکولاد) و داخل کرلی +ما به این صورت عمل می‌کنیم که اول اسم فانکشن بعد پرانتز +و بعد کرلی براکت(توی فارسی می‌گیم آکولاد) و داخل کرلی براکت ما قطعه کد را می‌نویسیم. مثلا برای فانکشنی که یک اسم را روی صفحه چاپ کنه به این صورت عمل می‌کنیم - ```bash -pname(){ echo 'foo'; } -``` --> -<p>اگه دقت کنید اولین کاراکتر فورک بمب، علامت -<code>:</code> +pname(){ echo 'foo'; } +``` --> +<p>اگه دقت کنید اولین کاراکتر فورک بمب، علامت +<code>:</code> است. این علامت اسم فانکشن ما است. برخلاف قانون تعریف نام برای متغییر ها توی bash، می‌توانیم از کاراتر های یونیکد هم برای تعریف نام فانکشن استفاده کنیم، مثلا یک -کاراکتر چینی یا حتی ایموجی!</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span><span class="lnt">3 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">雨<span class="o">(){</span> <span class="nb">echo</span> <span class="s1">&#39;rain&#39;</span><span class="p">;</span> <span class="o">}</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">❤️<span class="o">(){</span> <span class="nb">echo</span> <span class="s1">&#39;love&#39;</span><span class="p">;</span> <span class="o">}</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>خب در ادامه علامت های -<code>()</code> +کاراکتر چینی یا حتی ایموجی!</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">雨<span class="o">(){</span> <span class="nb">echo</span> <span class="s1">&#39;rain&#39;</span><span class="p">;</span> <span class="o">}</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">❤️<span class="o">(){</span> <span class="nb">echo</span> <span class="s1">&#39;love&#39;</span><span class="p">;</span> <span class="o">}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>خب در ادامه علامت های +<code>()</code> را می‌بینیم، توی bash برای تعریف فانکشن قبل از اسم فانکشن هیچ کلمه کلیدی مثل fn, def, void و &hellip; نیاز نیست، فقط بجای آن باید -<strong>بعد از اسم فانکشن</strong> -پرانتز ها را بگذارید.</p> -<p>مثل خیلی از زبان های برنامه نویسی، بدنه فانکشن توی -کرلی براکت تعریف می‌شود.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){}</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>پس تا اینجا ما یک فانکشن ساده با نام -<code>:</code> -تعریف کردیم.</p> -<p>داخل بدنه این فانکشن، اسمی که برای فانکشن قرار دادیم +<strong>بعد از اسم فانکشن</strong> +پرانتز ها را بگذارید.</p> +<p>مثل خیلی از زبان های برنامه نویسی، بدنه فانکشن توی +کرلی براکت تعریف می‌شود.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>پس تا اینجا ما یک فانکشن ساده با نام +<code>:</code> +تعریف کردیم.</p> +<p>داخل بدنه این فانکشن، اسمی که برای فانکشن قرار دادیم همان -<code>:</code> +<code>:</code> را می‌نویسیم. با اینکار دقیقا call recursion را انجام دادیم، و باعث شدیم که برنامه خودش را -توی هر اجرا مجدد اجرا کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> : <span class="o">}</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>دقت کنید توی سینتکس +توی هر اجرا مجدد اجرا کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> : <span class="o">}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>دقت کنید توی سینتکس bash -حتما باید یک فاصله برای کدی که داخلی کرلی براکت می‌نویسم قرار بدیم</p> -</blockquote> -<p>علامت -<code>|</code> +حتما باید یک فاصله برای کدی که داخلی کرلی براکت می‌نویسم قرار بدیم</p> +</blockquote> +<p>علامت +<code>|</code> به اسم پایپ شناخته می‌شود، وظیفه این علامت دادن خروجی یک کامند بعنوان ورودی به یک کامند دیگر هست، حلا دقت کنید که ما خروجی اجرای -<code>:</code> -را به خودش می‌دهیم. دقیقا به این شکل</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>: <span class="o">}</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>با این علامت هر پروسه دو بار پروسه جدیدی از خودش می‌سازد +<code>:</code> +را به خودش می‌دهیم. دقیقا به این شکل</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>: <span class="o">}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>با این علامت هر پروسه دو بار پروسه جدیدی از خودش می‌سازد اگر از این علامت استفاده نکنیم، پروسه ما به صورت خطی خودش را اجرا خواهد کرد، اینطوری کد ما با یک حلقه -<code>while</code> -تفاوتی زیادی نخواهد داشت.</p> -<p>علامت -<code>&amp;</code> +<code>while</code> +تفاوتی زیادی نخواهد داشت.</p> +<p>علامت +<code>&amp;</code> اجرای یک کامند را به بکگراند(پس زمینه) می‌برد. برای مثال بعد از اجرای یک دستور باید صبر کنید پروسه آن تمام شود تا بتوانید دستور بعدی را اجرا کنید. ولی اگر از علامت -<code>&amp;</code> +<code>&amp;</code> بعد از هر دستور استفاده کنید، دیگر نیاز نیست صبر کنید تا روند اجرای آن برنامه تمام شود. درواقع با علامت -<code>&amp;</code> +<code>&amp;</code> شما می‌توانید هر برنامه را در بکگراند اجرا کنید. حالا توی فورک بمب این علامت باعث می‌شود تا فانشکنی که اجرا کردین درحالی که کارش به اتمام -نرسیده است، فانکشن بعدی اجرا بشود.</p> -<p><img src="https://bit-orbit.github.io/images/post/forkbomb_and.jpg" - - - - loading="lazy" - - alt="& in bash" - - -></p> -<p>و بعد علامت -<code>;</code> +نرسیده است، فانکشن بعدی اجرا بشود.</p> +<p><img src="https://bit-orbit.github.io/images/post/forkbomb_and.jpg" +loading="lazy" +alt="& in bash" +></p> +<p>و بعد علامت +<code>;</code> را می‌بینیم. این علامت کامند ها را از هم جدا می‌کند. مثلا شما می‌توانید چند کامند مختلف را توی یک خط بنویسید. توی فورک بمب این علامت فانکشنی که تعریف کردین را از -دستور بعدی(که اجرا کننده اون فانکشن هست)جدا می‌کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s1">&#39;foo&#39;</span><span class="p">;</span> <span class="nb">echo</span> <span class="s1">&#39;bar&#39;</span><span class="p">;</span> <span class="nb">echo</span> <span class="s1">&#39;baz&#39;</span><span class="p">;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>آخرین علامتی که توی فورک بمب داریم همون علامت -<code>:</code> +دستور بعدی(که اجرا کننده اون فانکشن هست)جدا می‌کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s1">&#39;foo&#39;</span><span class="p">;</span> <span class="nb">echo</span> <span class="s1">&#39;bar&#39;</span><span class="p">;</span> <span class="nb">echo</span> <span class="s1">&#39;baz&#39;</span><span class="p">;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>آخرین علامتی که توی فورک بمب داریم همون علامت +<code>:</code> یا همون اسمی هست که برای فانکشن قرار دادیم. خیلی ساده توی bash -برای اجرای یک فانکشن فقط اسم‌ش را می‌نویسیم.</p> -<p>و تمام! ما یاد گرفتیم چطور فورک بمب رو بنویسیم و دیگه -نیاز نیست حفظ‌ش کنیم :)</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>:<span class="p">&amp;</span> <span class="o">}</span><span class="p">;</span>: -</span></span></code></pre></td></tr></table> -</div> -</div> - - - - +برای اجرای یک فانکشن فقط اسم‌ش را می‌نویسیم.</p> +<p>و تمام! ما یاد گرفتیم چطور فورک بمب رو بنویسیم و دیگه +نیاز نیست حفظ‌ش کنیم :)</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>:<span class="p">&amp;</span> <span class="o">}</span><span class="p">;</span>: +</span></span></code></pre></td></tr></table> +</div> +</div> \ No newline at end of file diff --git "a/docs/tags/\330\242\330\261\333\214\330\247-\330\264\330\250\330\247\331\206\331\207/page/1/index.html" "b/docs/tags/\330\242\330\261\333\214\330\247-\330\264\330\250\330\247\331\206\331\207/page/1/index.html" index 45e44e7..2937377 100644 --- "a/docs/tags/\330\242\330\261\333\214\330\247-\330\264\330\250\330\247\331\206\331\207/page/1/index.html" +++ "b/docs/tags/\330\242\330\261\333\214\330\247-\330\264\330\250\330\247\331\206\331\207/page/1/index.html" @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/%D8%A2%D8%B1%DB%8C%D8%A7-%D8%B4%D8%A8%D8%A7%D9%86%D9%87/ - - - - - - +https://bit-orbit.github.io/tags/%D8%A2%D8%B1%DB%8C%D8%A7-%D8%B4%D8%A8%D8%A7%D9%86%D9%87/ + \ No newline at end of file diff --git "a/docs/tags/\330\242\331\205\331\210\330\262\330\264-rust/index.html" "b/docs/tags/\330\242\331\205\331\210\330\262\330\264-rust/index.html" index 0c71445..ce5078c 100644 --- "a/docs/tags/\330\242\331\205\331\210\330\262\330\264-rust/index.html" +++ "b/docs/tags/\330\242\331\205\331\210\330\262\330\264-rust/index.html" @@ -1,576 +1,37 @@ - - - - -Tag: آموزش Rust - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

2 صفحه

-

آموزش Rust

- -
-
-
- -
- - - - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: آموزش Rust - bit-orbit + \ No newline at end of file diff --git "a/docs/tags/\330\242\331\205\331\210\330\262\330\264-rust/index.xml" "b/docs/tags/\330\242\331\205\331\210\330\262\330\264-rust/index.xml" index 111d91e..2fe6c9c 100644 --- "a/docs/tags/\330\242\331\205\331\210\330\262\330\264-rust/index.xml" +++ "b/docs/tags/\330\242\331\205\331\210\330\262\330\264-rust/index.xml" @@ -1,227 +1,200 @@ - - - - آموزش Rust on bit-orbit - https://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-rust/ - Recent content in آموزش Rust on bit-orbit - Hugo -- gohugo.io - fa - Wed, 03 Jan 2024 01:30:52 +0330 - انواع داده های اولیه در rust - https://bit-orbit.github.io/p/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%D9%88%D9%84%DB%8C%D9%87-%D8%AF%D8%B1-rust/ - Wed, 03 Jan 2024 01:30:52 +0330 - - https://bit-orbit.github.io/p/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%D9%88%D9%84%DB%8C%D9%87-%D8%AF%D8%B1-rust/ - <img src="https://bit-orbit.github.io/images/post/rustdatatypes.jpg" alt="Featured image of post انواع داده های اولیه در rust" /><p>هر زبان برنامه نویسی انواعی از داده ها رو داره، مثلا +آموزش Rust on bit-orbithttps://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-rust/Recent content in آموزش Rust on bit-orbitHugo -- gohugo.iofaWed, 03 Jan 2024 01:30:52 +0330انواع داده های اولیه در rusthttps://bit-orbit.github.io/p/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%D9%88%D9%84%DB%8C%D9%87-%D8%AF%D8%B1-rust/Wed, 03 Jan 2024 01:30:52 +0330https://bit-orbit.github.io/p/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%D9%88%D9%84%DB%8C%D9%87-%D8%AF%D8%B1-rust/<img src="https://bit-orbit.github.io/images/post/rustdatatypes.jpg" alt="Featured image of post انواع داده های اولیه در rust" /><p>هر زبان برنامه نویسی انواعی از داده ها رو داره، مثلا داده های عددی، کاراکتر و یا رشته‌ای از کاراکتر ها. زبان rust هم انواع داده‌ای زیادی رو پشتیبانی می‌کنه و خب حتی اگر جایی کمبودی حس کردین، می‌توانید ساختار داده‌ی خودتان -را بسازید.</p> -<blockquote> -<p>‌ انواع داده ترجمه‌ی کلمه +را بسازید.</p> +<blockquote> +<p>‌ انواع داده ترجمه‌ی کلمه data type هست. و خب برای من استفاده از کلمه انگلیسی‌اش خیلی راحت -تره.</p> -</blockquote> -<h4 id="نوع-داده-عدد-صحیح">نوع داده عدد صحیح</h4> -<p>همینطور که می‌دونید عدد صحیح از منفی بی‌نهایت تا مثبت -بی‌نهایت است(بدون هیچ علامت کسر، رادیکال و بدون اعشار).</p> -<p>این نوع داده در +تره.</p> +</blockquote> +<h4 id="نوع-داده-عدد-صحیح">نوع داده عدد صحیح +</h4><p>همینطور که می‌دونید عدد صحیح از منفی بی‌نهایت تا مثبت +بی‌نهایت است(بدون هیچ علامت کسر، رادیکال و بدون اعشار).</p> +<p>این نوع داده در rust -به این صورت است</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">variable_name</span>: <span class="kt">i32</span> <span class="o">=</span><span class="w"> </span><span class="o">-</span><span class="mi">2147483648</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">variable_name</span>: <span class="kt">i32</span> <span class="o">=</span><span class="w"> </span><span class="mi">2147483647</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><p>به این باید دقت کنیم که هر متغییری مقداری فضا نیاز دارد +به این صورت است</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">variable_name</span>: <span class="kt">i32</span> <span class="o">=</span><span class="w"> </span><span class="o">-</span><span class="mi">2147483648</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">variable_name</span>: <span class="kt">i32</span> <span class="o">=</span><span class="w"> </span><span class="mi">2147483647</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><p>به این باید دقت کنیم که هر متغییری مقداری فضا نیاز دارد برای مثال این نوع داده که داده اصلی است به پنج صورت پیاده سازی می‌شود i8, i16, i32, i64, i128 اعداد پس از کاراکتر i نشان دهنده تعداد بیت هایی است که این نوع متغییر می‌تواند -اشغال کند. مثلا i128 می‌تواند به اندازه 128 بیت فضا اشغال کند.</p> -<h4 id="نوع-داده-عدد-اعشاری">نوع داده عدد اعشاری</h4> -<p>این نوع داده هم مثل نوع عدد صحیح است اما با این تفاوت که اعداد اعشاری را درون خودش ذخیره می‌کند</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">variable_name</span>: <span class="kt">f32</span> <span class="o">=</span><span class="w"> </span><span class="mf">3.14</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">variable_name</span>: <span class="kt">f32</span> <span class="o">=</span><span class="w"> </span><span class="o">-</span><span class="mf">3.14</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="نوع-داده-کاراکتر">نوع داده کاراکتر</h4> -<p>کاراکتر نوع داده‌ای است که فقط یک مقدار از حروف الفبا یا عدد و یا سیمبول را می‌تواند درون +اشغال کند. مثلا i128 می‌تواند به اندازه 128 بیت فضا اشغال کند.</p> +<h4 id="نوع-داده-عدد-اعشاری">نوع داده عدد اعشاری +</h4><p>این نوع داده هم مثل نوع عدد صحیح است اما با این تفاوت که اعداد اعشاری را درون خودش ذخیره می‌کند</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">variable_name</span>: <span class="kt">f32</span> <span class="o">=</span><span class="w"> </span><span class="mf">3.14</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">variable_name</span>: <span class="kt">f32</span> <span class="o">=</span><span class="w"> </span><span class="o">-</span><span class="mf">3.14</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="نوع-داده-کاراکتر">نوع داده کاراکتر +</h4><p>کاراکتر نوع داده‌ای است که فقط یک مقدار از حروف الفبا یا عدد و یا سیمبول را می‌تواند درون خودش ذخیره کند. پس باید به اندازه 8 بیت فضا اشغال کند اما به دلیل اینکه کاراکتر های زبان های دیگر را هم بتواند ذخیره کند از انکدینگ(encoding) utf-16 -استفاده می‌کند که 16 بیت فضا اشغال می‌کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">a</span>: <span class="kt">char</span> <span class="o">=</span><span class="w"> </span><span class="sc">&#39;a&#39;</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="داده-stringرشتهای-از-کاراکتر-ها">داده string(رشته‌ای از کاراکتر ها)</h4> -<p>String +استفاده می‌کند که 16 بیت فضا اشغال می‌کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">a</span>: <span class="kt">char</span> <span class="o">=</span><span class="w"> </span><span class="sc">&#39;a&#39;</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="داده-stringرشتهای-از-کاراکتر-ها">داده string(رشته‌ای از کاراکتر ها) +</h4><p>String نوع داده‌ای است که درواقع رشته‌ای از کاراکتر ها را درون یک نوع vector -ذخیره می‌کند.</p> -<blockquote> -<p>این نکته را هم بگم که +ذخیره می‌کند.</p> +<blockquote> +<p>این نکته را هم بگم که encoding رشته UTF-8 -است. به این معنی که هر نوع کاراکتری را می‌تواند داخل خودش ذخیره کند حتی ایموجی.</p> -</blockquote> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">heart</span>: <span class="nb">String</span> <span class="o">=</span><span class="w"> </span><span class="nb">String</span>::<span class="n">from</span><span class="p">(</span><span class="s">&#34;♥&#34;</span><span class="p">);</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="نوع-داده-منطقی">نوع داده منطقی</h4> -<p>نوع داده منطقی به اسم +است. به این معنی که هر نوع کاراکتری را می‌تواند داخل خودش ذخیره کند حتی ایموجی.</p> +</blockquote> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">heart</span>: <span class="nb">String</span> <span class="o">=</span><span class="w"> </span><span class="nb">String</span>::<span class="n">from</span><span class="p">(</span><span class="s">&#34;♥&#34;</span><span class="p">);</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="نوع-داده-منطقی">نوع داده منطقی +</h4><p>نوع داده منطقی به اسم boolian است. این نوع مقدار هایt true و یا false -را ذخیره می‌کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">is_good</span>: <span class="kt">bool</span> <span class="o">=</span><span class="w"> </span><span class="kc">true</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="نوع-داده-ترکیبی">نوع داده ترکیبی</h4> -<p>این نوع داده ها را توی پست های مجزا توضیح می‌دم.</p> -<ul> -<li>tuple</li> -<li>array</li> -<li>list</li> -<li>vector</li> -</ul> - - - - متغیر در rust - https://bit-orbit.github.io/p/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-rust/ - Mon, 01 Jan 2024 01:39:05 +0330 - - https://bit-orbit.github.io/p/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-rust/ - <img src="https://bit-orbit.github.io/images/post/datatypes-rust.jpg" alt="Featured image of post متغیر در rust" /><h4 id="تعریف-متغیر">تعریف متغیر</h4> -<p>در هر زبانی تعریف متغیر سینتکس خودش را دارد. +را ذخیره می‌کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">is_good</span>: <span class="kt">bool</span> <span class="o">=</span><span class="w"> </span><span class="kc">true</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="نوع-داده-ترکیبی">نوع داده ترکیبی +</h4><p>این نوع داده ها را توی پست های مجزا توضیح می‌دم.</p> +<ul> +<li>tuple</li> +<li>array</li> +<li>list</li> +<li>vector</li> +</ul>متغیر در rusthttps://bit-orbit.github.io/p/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-rust/Mon, 01 Jan 2024 01:39:05 +0330https://bit-orbit.github.io/p/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-rust/<img src="https://bit-orbit.github.io/images/post/datatypes-rust.jpg" alt="Featured image of post متغیر در rust" /><h4 id="تعریف-متغیر">تعریف متغیر +</h4><p>در هر زبانی تعریف متغیر سینتکس خودش را دارد. مثلا اگر زبان های خانواده c را کار کرده باشید (مثل c++, c#) متوجه می‌شوید که نوع داده‌ای متغیر، قبل از اسم آن تعریف می‌شود. و یا مثلا توی زبان پایتون تعریف نوع داده‌ای -یک متغیر حتی اهمیتی هم ندارد!</p> -<blockquote> -<p>انواع نوع داده یا +یک متغیر حتی اهمیتی هم ندارد!</p> +<blockquote> +<p>انواع نوع داده یا date types -را توی پست بعدی می‌نویسم</p> -</blockquote> -<p>توی زبان +را توی پست بعدی می‌نویسم</p> +</blockquote> +<p>توی زبان rust بعد از اسم متغیر، نوع آن نوشته می‌شود. مثلا برای تعریف یک متغیر عددی به اندازه یک بایت از کلمه کلیدی -<code>i8</code> +<code>i8</code> بعد اسم استفاده می‌کنیم. البته قبل از اسم هر متغیر هم ما باید از کلمه کلیدی -<code>let</code> -استفاده کنیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="c1">//let name: type = value; -</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="kd">let</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="متغیر-های-تغییرپذیر">متغیر های تغییرپذیر</h4> -<p>توی زبان +<code>let</code> +استفاده کنیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="c1">//let name: type = value; +</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="kd">let</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="متغیر-های-تغییرپذیر">متغیر های تغییرپذیر +</h4><p>توی زبان rust هر متغیری که تعریف می‌کنیم غیر قابل تغیر است. توی مثال بالا من پیشفرض مقدار 22 را برای متغیر age قرار داده‌ام، حالا اگر بخواهم مقدار آن را -به 23 تغیر بدهم به ارور می‌خورم</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt">10 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">error</span><span class="p">[</span><span class="n">E0384</span><span class="p">]</span>: <span class="nc">cannot</span><span class="w"> </span><span class="n">assign</span><span class="w"> </span><span class="n">twice</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">immutable</span><span class="w"> </span><span class="n">variable</span><span class="w"> </span><span class="err">`</span><span class="n">age</span><span class="err">`</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">-</span>-&gt; <span class="nc">src</span><span class="o">/</span><span class="n">main</span><span class="p">.</span><span class="n">rs</span>:<span class="mi">3</span>:<span class="mi">5</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">---</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">first</span><span class="w"> </span><span class="n">assignment</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="err">`</span><span class="n">age</span><span class="err">`</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">help</span>: <span class="nc">consider</span><span class="w"> </span><span class="n">making</span><span class="w"> </span><span class="n">this</span><span class="w"> </span><span class="n">binding</span><span class="w"> </span><span class="n">mutable</span>: <span class="err">`</span><span class="k">mut</span><span class="w"> </span><span class="n">age</span><span class="err">`</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="mi">3</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">^^^^^^^^</span><span class="w"> </span><span class="n">cannot</span><span class="w"> </span><span class="n">assign</span><span class="w"> </span><span class="n">twice</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">immutable</span><span class="w"> </span><span class="n">variable</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><p>خب برای همین اگر می‌خواهیم مقدار متغیری را تغییر +به 23 تغیر بدهم به ارور می‌خورم</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">error</span><span class="p">[</span><span class="n">E0384</span><span class="p">]</span>: <span class="nc">cannot</span><span class="w"> </span><span class="n">assign</span><span class="w"> </span><span class="n">twice</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">immutable</span><span class="w"> </span><span class="n">variable</span><span class="w"> </span><span class="err">`</span><span class="n">age</span><span class="err">`</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">-</span>-&gt; <span class="nc">src</span><span class="o">/</span><span class="n">main</span><span class="p">.</span><span class="n">rs</span>:<span class="mi">3</span>:<span class="mi">5</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">---</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">first</span><span class="w"> </span><span class="n">assignment</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="err">`</span><span class="n">age</span><span class="err">`</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">help</span>: <span class="nc">consider</span><span class="w"> </span><span class="n">making</span><span class="w"> </span><span class="n">this</span><span class="w"> </span><span class="n">binding</span><span class="w"> </span><span class="n">mutable</span>: <span class="err">`</span><span class="k">mut</span><span class="w"> </span><span class="n">age</span><span class="err">`</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="mi">3</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">^^^^^^^^</span><span class="w"> </span><span class="n">cannot</span><span class="w"> </span><span class="n">assign</span><span class="w"> </span><span class="n">twice</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">immutable</span><span class="w"> </span><span class="n">variable</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><p>خب برای همین اگر می‌خواهیم مقدار متغیری را تغییر بدهیم آن را باید از اول مشخص کنیم. مشخص کردن آن با کلمه کلیدی -<code>mut</code> +<code>mut</code> بعد از کلمه -<code>let</code> +<code>let</code> است. کلمه mut مخفف -<strong>mutable</strong> +<strong>mutable</strong> به معنی -<strong>قابل تغییر</strong> -است. خب بیایید اینکار را برای مثال اولیه انجام بدهیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div> - - - - +<strong>قابل تغییر</strong> +است. خب بیایید اینکار را برای مثال اولیه انجام بدهیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div> \ No newline at end of file diff --git "a/docs/tags/\330\242\331\205\331\210\330\262\330\264-rust/page/1/index.html" "b/docs/tags/\330\242\331\205\331\210\330\262\330\264-rust/page/1/index.html" index c4a5a39..5f07a08 100644 --- "a/docs/tags/\330\242\331\205\331\210\330\262\330\264-rust/page/1/index.html" +++ "b/docs/tags/\330\242\331\205\331\210\330\262\330\264-rust/page/1/index.html" @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-rust/ - - - - - - +https://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-rust/ + \ No newline at end of file diff --git "a/docs/tags/\330\242\331\205\331\210\330\262\330\264-\330\261\330\247\330\263\330\252/index.html" "b/docs/tags/\330\242\331\205\331\210\330\262\330\264-\330\261\330\247\330\263\330\252/index.html" index 96ca4c4..802982b 100644 --- "a/docs/tags/\330\242\331\205\331\210\330\262\330\264-\330\261\330\247\330\263\330\252/index.html" +++ "b/docs/tags/\330\242\331\205\331\210\330\262\330\264-\330\261\330\247\330\263\330\252/index.html" @@ -1,576 +1,37 @@ - - - - -Tag: آموزش راست - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

2 صفحه

-

آموزش راست

- -
-
-
- -
- - - - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: آموزش راست - bit-orbit + \ No newline at end of file diff --git "a/docs/tags/\330\242\331\205\331\210\330\262\330\264-\330\261\330\247\330\263\330\252/index.xml" "b/docs/tags/\330\242\331\205\331\210\330\262\330\264-\330\261\330\247\330\263\330\252/index.xml" index 2433c2b..bbb2c1c 100644 --- "a/docs/tags/\330\242\331\205\331\210\330\262\330\264-\330\261\330\247\330\263\330\252/index.xml" +++ "b/docs/tags/\330\242\331\205\331\210\330\262\330\264-\330\261\330\247\330\263\330\252/index.xml" @@ -1,227 +1,200 @@ - - - - آموزش راست on bit-orbit - https://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B1%D8%A7%D8%B3%D8%AA/ - Recent content in آموزش راست on bit-orbit - Hugo -- gohugo.io - fa - Wed, 03 Jan 2024 01:30:52 +0330 - انواع داده های اولیه در rust - https://bit-orbit.github.io/p/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%D9%88%D9%84%DB%8C%D9%87-%D8%AF%D8%B1-rust/ - Wed, 03 Jan 2024 01:30:52 +0330 - - https://bit-orbit.github.io/p/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%D9%88%D9%84%DB%8C%D9%87-%D8%AF%D8%B1-rust/ - <img src="https://bit-orbit.github.io/images/post/rustdatatypes.jpg" alt="Featured image of post انواع داده های اولیه در rust" /><p>هر زبان برنامه نویسی انواعی از داده ها رو داره، مثلا +آموزش راست on bit-orbithttps://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B1%D8%A7%D8%B3%D8%AA/Recent content in آموزش راست on bit-orbitHugo -- gohugo.iofaWed, 03 Jan 2024 01:30:52 +0330انواع داده های اولیه در rusthttps://bit-orbit.github.io/p/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%D9%88%D9%84%DB%8C%D9%87-%D8%AF%D8%B1-rust/Wed, 03 Jan 2024 01:30:52 +0330https://bit-orbit.github.io/p/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%D9%88%D9%84%DB%8C%D9%87-%D8%AF%D8%B1-rust/<img src="https://bit-orbit.github.io/images/post/rustdatatypes.jpg" alt="Featured image of post انواع داده های اولیه در rust" /><p>هر زبان برنامه نویسی انواعی از داده ها رو داره، مثلا داده های عددی، کاراکتر و یا رشته‌ای از کاراکتر ها. زبان rust هم انواع داده‌ای زیادی رو پشتیبانی می‌کنه و خب حتی اگر جایی کمبودی حس کردین، می‌توانید ساختار داده‌ی خودتان -را بسازید.</p> -<blockquote> -<p>‌ انواع داده ترجمه‌ی کلمه +را بسازید.</p> +<blockquote> +<p>‌ انواع داده ترجمه‌ی کلمه data type هست. و خب برای من استفاده از کلمه انگلیسی‌اش خیلی راحت -تره.</p> -</blockquote> -<h4 id="نوع-داده-عدد-صحیح">نوع داده عدد صحیح</h4> -<p>همینطور که می‌دونید عدد صحیح از منفی بی‌نهایت تا مثبت -بی‌نهایت است(بدون هیچ علامت کسر، رادیکال و بدون اعشار).</p> -<p>این نوع داده در +تره.</p> +</blockquote> +<h4 id="نوع-داده-عدد-صحیح">نوع داده عدد صحیح +</h4><p>همینطور که می‌دونید عدد صحیح از منفی بی‌نهایت تا مثبت +بی‌نهایت است(بدون هیچ علامت کسر، رادیکال و بدون اعشار).</p> +<p>این نوع داده در rust -به این صورت است</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">variable_name</span>: <span class="kt">i32</span> <span class="o">=</span><span class="w"> </span><span class="o">-</span><span class="mi">2147483648</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">variable_name</span>: <span class="kt">i32</span> <span class="o">=</span><span class="w"> </span><span class="mi">2147483647</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><p>به این باید دقت کنیم که هر متغییری مقداری فضا نیاز دارد +به این صورت است</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">variable_name</span>: <span class="kt">i32</span> <span class="o">=</span><span class="w"> </span><span class="o">-</span><span class="mi">2147483648</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">variable_name</span>: <span class="kt">i32</span> <span class="o">=</span><span class="w"> </span><span class="mi">2147483647</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><p>به این باید دقت کنیم که هر متغییری مقداری فضا نیاز دارد برای مثال این نوع داده که داده اصلی است به پنج صورت پیاده سازی می‌شود i8, i16, i32, i64, i128 اعداد پس از کاراکتر i نشان دهنده تعداد بیت هایی است که این نوع متغییر می‌تواند -اشغال کند. مثلا i128 می‌تواند به اندازه 128 بیت فضا اشغال کند.</p> -<h4 id="نوع-داده-عدد-اعشاری">نوع داده عدد اعشاری</h4> -<p>این نوع داده هم مثل نوع عدد صحیح است اما با این تفاوت که اعداد اعشاری را درون خودش ذخیره می‌کند</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">variable_name</span>: <span class="kt">f32</span> <span class="o">=</span><span class="w"> </span><span class="mf">3.14</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">variable_name</span>: <span class="kt">f32</span> <span class="o">=</span><span class="w"> </span><span class="o">-</span><span class="mf">3.14</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="نوع-داده-کاراکتر">نوع داده کاراکتر</h4> -<p>کاراکتر نوع داده‌ای است که فقط یک مقدار از حروف الفبا یا عدد و یا سیمبول را می‌تواند درون +اشغال کند. مثلا i128 می‌تواند به اندازه 128 بیت فضا اشغال کند.</p> +<h4 id="نوع-داده-عدد-اعشاری">نوع داده عدد اعشاری +</h4><p>این نوع داده هم مثل نوع عدد صحیح است اما با این تفاوت که اعداد اعشاری را درون خودش ذخیره می‌کند</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">variable_name</span>: <span class="kt">f32</span> <span class="o">=</span><span class="w"> </span><span class="mf">3.14</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">variable_name</span>: <span class="kt">f32</span> <span class="o">=</span><span class="w"> </span><span class="o">-</span><span class="mf">3.14</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="نوع-داده-کاراکتر">نوع داده کاراکتر +</h4><p>کاراکتر نوع داده‌ای است که فقط یک مقدار از حروف الفبا یا عدد و یا سیمبول را می‌تواند درون خودش ذخیره کند. پس باید به اندازه 8 بیت فضا اشغال کند اما به دلیل اینکه کاراکتر های زبان های دیگر را هم بتواند ذخیره کند از انکدینگ(encoding) utf-16 -استفاده می‌کند که 16 بیت فضا اشغال می‌کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">a</span>: <span class="kt">char</span> <span class="o">=</span><span class="w"> </span><span class="sc">&#39;a&#39;</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="داده-stringرشتهای-از-کاراکتر-ها">داده string(رشته‌ای از کاراکتر ها)</h4> -<p>String +استفاده می‌کند که 16 بیت فضا اشغال می‌کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">a</span>: <span class="kt">char</span> <span class="o">=</span><span class="w"> </span><span class="sc">&#39;a&#39;</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="داده-stringرشتهای-از-کاراکتر-ها">داده string(رشته‌ای از کاراکتر ها) +</h4><p>String نوع داده‌ای است که درواقع رشته‌ای از کاراکتر ها را درون یک نوع vector -ذخیره می‌کند.</p> -<blockquote> -<p>این نکته را هم بگم که +ذخیره می‌کند.</p> +<blockquote> +<p>این نکته را هم بگم که encoding رشته UTF-8 -است. به این معنی که هر نوع کاراکتری را می‌تواند داخل خودش ذخیره کند حتی ایموجی.</p> -</blockquote> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">heart</span>: <span class="nb">String</span> <span class="o">=</span><span class="w"> </span><span class="nb">String</span>::<span class="n">from</span><span class="p">(</span><span class="s">&#34;♥&#34;</span><span class="p">);</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="نوع-داده-منطقی">نوع داده منطقی</h4> -<p>نوع داده منطقی به اسم +است. به این معنی که هر نوع کاراکتری را می‌تواند داخل خودش ذخیره کند حتی ایموجی.</p> +</blockquote> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">heart</span>: <span class="nb">String</span> <span class="o">=</span><span class="w"> </span><span class="nb">String</span>::<span class="n">from</span><span class="p">(</span><span class="s">&#34;♥&#34;</span><span class="p">);</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="نوع-داده-منطقی">نوع داده منطقی +</h4><p>نوع داده منطقی به اسم boolian است. این نوع مقدار هایt true و یا false -را ذخیره می‌کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">is_good</span>: <span class="kt">bool</span> <span class="o">=</span><span class="w"> </span><span class="kc">true</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="نوع-داده-ترکیبی">نوع داده ترکیبی</h4> -<p>این نوع داده ها را توی پست های مجزا توضیح می‌دم.</p> -<ul> -<li>tuple</li> -<li>array</li> -<li>list</li> -<li>vector</li> -</ul> - - - - متغیر در rust - https://bit-orbit.github.io/p/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-rust/ - Mon, 01 Jan 2024 01:39:05 +0330 - - https://bit-orbit.github.io/p/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-rust/ - <img src="https://bit-orbit.github.io/images/post/datatypes-rust.jpg" alt="Featured image of post متغیر در rust" /><h4 id="تعریف-متغیر">تعریف متغیر</h4> -<p>در هر زبانی تعریف متغیر سینتکس خودش را دارد. +را ذخیره می‌کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">is_good</span>: <span class="kt">bool</span> <span class="o">=</span><span class="w"> </span><span class="kc">true</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="نوع-داده-ترکیبی">نوع داده ترکیبی +</h4><p>این نوع داده ها را توی پست های مجزا توضیح می‌دم.</p> +<ul> +<li>tuple</li> +<li>array</li> +<li>list</li> +<li>vector</li> +</ul>متغیر در rusthttps://bit-orbit.github.io/p/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-rust/Mon, 01 Jan 2024 01:39:05 +0330https://bit-orbit.github.io/p/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-rust/<img src="https://bit-orbit.github.io/images/post/datatypes-rust.jpg" alt="Featured image of post متغیر در rust" /><h4 id="تعریف-متغیر">تعریف متغیر +</h4><p>در هر زبانی تعریف متغیر سینتکس خودش را دارد. مثلا اگر زبان های خانواده c را کار کرده باشید (مثل c++, c#) متوجه می‌شوید که نوع داده‌ای متغیر، قبل از اسم آن تعریف می‌شود. و یا مثلا توی زبان پایتون تعریف نوع داده‌ای -یک متغیر حتی اهمیتی هم ندارد!</p> -<blockquote> -<p>انواع نوع داده یا +یک متغیر حتی اهمیتی هم ندارد!</p> +<blockquote> +<p>انواع نوع داده یا date types -را توی پست بعدی می‌نویسم</p> -</blockquote> -<p>توی زبان +را توی پست بعدی می‌نویسم</p> +</blockquote> +<p>توی زبان rust بعد از اسم متغیر، نوع آن نوشته می‌شود. مثلا برای تعریف یک متغیر عددی به اندازه یک بایت از کلمه کلیدی -<code>i8</code> +<code>i8</code> بعد اسم استفاده می‌کنیم. البته قبل از اسم هر متغیر هم ما باید از کلمه کلیدی -<code>let</code> -استفاده کنیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="c1">//let name: type = value; -</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="kd">let</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="متغیر-های-تغییرپذیر">متغیر های تغییرپذیر</h4> -<p>توی زبان +<code>let</code> +استفاده کنیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="c1">//let name: type = value; +</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="kd">let</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="متغیر-های-تغییرپذیر">متغیر های تغییرپذیر +</h4><p>توی زبان rust هر متغیری که تعریف می‌کنیم غیر قابل تغیر است. توی مثال بالا من پیشفرض مقدار 22 را برای متغیر age قرار داده‌ام، حالا اگر بخواهم مقدار آن را -به 23 تغیر بدهم به ارور می‌خورم</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt">10 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">error</span><span class="p">[</span><span class="n">E0384</span><span class="p">]</span>: <span class="nc">cannot</span><span class="w"> </span><span class="n">assign</span><span class="w"> </span><span class="n">twice</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">immutable</span><span class="w"> </span><span class="n">variable</span><span class="w"> </span><span class="err">`</span><span class="n">age</span><span class="err">`</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">-</span>-&gt; <span class="nc">src</span><span class="o">/</span><span class="n">main</span><span class="p">.</span><span class="n">rs</span>:<span class="mi">3</span>:<span class="mi">5</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">---</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">first</span><span class="w"> </span><span class="n">assignment</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="err">`</span><span class="n">age</span><span class="err">`</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">help</span>: <span class="nc">consider</span><span class="w"> </span><span class="n">making</span><span class="w"> </span><span class="n">this</span><span class="w"> </span><span class="n">binding</span><span class="w"> </span><span class="n">mutable</span>: <span class="err">`</span><span class="k">mut</span><span class="w"> </span><span class="n">age</span><span class="err">`</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="mi">3</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">^^^^^^^^</span><span class="w"> </span><span class="n">cannot</span><span class="w"> </span><span class="n">assign</span><span class="w"> </span><span class="n">twice</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">immutable</span><span class="w"> </span><span class="n">variable</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><p>خب برای همین اگر می‌خواهیم مقدار متغیری را تغییر +به 23 تغیر بدهم به ارور می‌خورم</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">error</span><span class="p">[</span><span class="n">E0384</span><span class="p">]</span>: <span class="nc">cannot</span><span class="w"> </span><span class="n">assign</span><span class="w"> </span><span class="n">twice</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">immutable</span><span class="w"> </span><span class="n">variable</span><span class="w"> </span><span class="err">`</span><span class="n">age</span><span class="err">`</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">-</span>-&gt; <span class="nc">src</span><span class="o">/</span><span class="n">main</span><span class="p">.</span><span class="n">rs</span>:<span class="mi">3</span>:<span class="mi">5</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">---</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">first</span><span class="w"> </span><span class="n">assignment</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="err">`</span><span class="n">age</span><span class="err">`</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">help</span>: <span class="nc">consider</span><span class="w"> </span><span class="n">making</span><span class="w"> </span><span class="n">this</span><span class="w"> </span><span class="n">binding</span><span class="w"> </span><span class="n">mutable</span>: <span class="err">`</span><span class="k">mut</span><span class="w"> </span><span class="n">age</span><span class="err">`</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="mi">3</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">^^^^^^^^</span><span class="w"> </span><span class="n">cannot</span><span class="w"> </span><span class="n">assign</span><span class="w"> </span><span class="n">twice</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">immutable</span><span class="w"> </span><span class="n">variable</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><p>خب برای همین اگر می‌خواهیم مقدار متغیری را تغییر بدهیم آن را باید از اول مشخص کنیم. مشخص کردن آن با کلمه کلیدی -<code>mut</code> +<code>mut</code> بعد از کلمه -<code>let</code> +<code>let</code> است. کلمه mut مخفف -<strong>mutable</strong> +<strong>mutable</strong> به معنی -<strong>قابل تغییر</strong> -است. خب بیایید اینکار را برای مثال اولیه انجام بدهیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div> - - - - +<strong>قابل تغییر</strong> +است. خب بیایید اینکار را برای مثال اولیه انجام بدهیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div> \ No newline at end of file diff --git "a/docs/tags/\330\242\331\205\331\210\330\262\330\264-\330\261\330\247\330\263\330\252/page/1/index.html" "b/docs/tags/\330\242\331\205\331\210\330\262\330\264-\330\261\330\247\330\263\330\252/page/1/index.html" index 1f6ad60..1e22018 100644 --- "a/docs/tags/\330\242\331\205\331\210\330\262\330\264-\330\261\330\247\330\263\330\252/page/1/index.html" +++ "b/docs/tags/\330\242\331\205\331\210\330\262\330\264-\330\261\330\247\330\263\330\252/page/1/index.html" @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B1%D8%A7%D8%B3%D8%AA/ - - - - - - +https://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B1%D8%A7%D8%B3%D8%AA/ + \ No newline at end of file diff --git "a/docs/tags/\330\242\331\205\331\210\330\262\330\264-\330\262\330\250\330\247\331\206-rust/index.html" "b/docs/tags/\330\242\331\205\331\210\330\262\330\264-\330\262\330\250\330\247\331\206-rust/index.html" index 2b8b663..3bcadb3 100644 --- "a/docs/tags/\330\242\331\205\331\210\330\262\330\264-\330\262\330\250\330\247\331\206-rust/index.html" +++ "b/docs/tags/\330\242\331\205\331\210\330\262\330\264-\330\262\330\250\330\247\331\206-rust/index.html" @@ -1,559 +1,37 @@ - - - - -Tag: آموزش زبان Rust - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

آموزش زبان Rust

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: آموزش زبان Rust - bit-orbit +

Tags

1 صفحه

آموزش زبان Rust

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git "a/docs/tags/\330\242\331\205\331\210\330\262\330\264-\330\262\330\250\330\247\331\206-rust/index.xml" "b/docs/tags/\330\242\331\205\331\210\330\262\330\264-\330\262\330\250\330\247\331\206-rust/index.xml" index 7972182..ef12b99 100644 --- "a/docs/tags/\330\242\331\205\331\210\330\262\330\264-\330\262\330\250\330\247\331\206-rust/index.xml" +++ "b/docs/tags/\330\242\331\205\331\210\330\262\330\264-\330\262\330\250\330\247\331\206-rust/index.xml" @@ -1,39 +1,20 @@ - - - - آموزش زبان Rust on bit-orbit - https://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-rust/ - Recent content in آموزش زبان Rust on bit-orbit - Hugo -- gohugo.io - fa - Sun, 31 Dec 2023 00:00:00 +0000 - Rust - https://bit-orbit.github.io/rust/ - Sun, 31 Dec 2023 00:00:00 +0000 - - https://bit-orbit.github.io/rust/ - <img src="https://bit-orbit.github.io/images/post/rust.png" alt="Featured image of post Rust" /><p>من مدتی هست که دارم زبان +آموزش زبان Rust on bit-orbithttps://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-rust/Recent content in آموزش زبان Rust on bit-orbitHugo -- gohugo.iofaSun, 31 Dec 2023 00:00:00 +0000Rusthttps://bit-orbit.github.io/rust/Sun, 31 Dec 2023 00:00:00 +0000https://bit-orbit.github.io/rust/<img src="https://bit-orbit.github.io/images/post/rust.png" alt="Featured image of post Rust" /><p>من مدتی هست که دارم زبان rust رو یاد می‌گیرم، توی این تایمی که خودم یادش می‌گیرم، یک خلاصه‌ای هم از آموزش هایی که می‌بینم رو اینجا در پست های مجزا می‌نویسم. اینطوری هم برای خودم نوت دارم و هم -شما :)</p> -<p>هر پست آموزش +شما :)</p> +<p>هر پست آموزش rust که می‌نویسم رو اینجا لیست می‌کنم که -به راحتی در دسترس باشند.</p> -<blockquote> -<p>بعنوان نکته بگم که توی این مجموعه از پست ها، قرار نیست +به راحتی در دسترس باشند.</p> +<blockquote> +<p>بعنوان نکته بگم که توی این مجموعه از پست ها، قرار نیست برنامه نویسی را از صفر یاد بگیریم، صرفا سینتکس زبان rust -را یاد می‌گیریم.</p> -</blockquote> -<hr> -<ul> -<li><a class="link" href="https://bit-orbit.github.io/p/%d9%85%d8%aa%d8%ba%db%8c%d8%b1-%d8%af%d8%b1-rust/" >متغییر ها در rust</a></li> -</ul> - - - - - +را یاد می‌گیریم.</p> +</blockquote> +<hr> +<ul> +<li><a class="link" href="https://bit-orbit.github.io/p/%d9%85%d8%aa%d8%ba%db%8c%d8%b1-%d8%af%d8%b1-rust/" >متغییر ها در rust</a></li> +</ul> \ No newline at end of file diff --git "a/docs/tags/\330\242\331\205\331\210\330\262\330\264-\330\262\330\250\330\247\331\206-rust/page/1/index.html" "b/docs/tags/\330\242\331\205\331\210\330\262\330\264-\330\262\330\250\330\247\331\206-rust/page/1/index.html" index 4925506..07f313d 100644 --- "a/docs/tags/\330\242\331\205\331\210\330\262\330\264-\330\262\330\250\330\247\331\206-rust/page/1/index.html" +++ "b/docs/tags/\330\242\331\205\331\210\330\262\330\264-\330\262\330\250\330\247\331\206-rust/page/1/index.html" @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-rust/ - - - - - - +https://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-rust/ + \ No newline at end of file diff --git "a/docs/tags/\330\242\331\205\331\210\330\262\330\264-\330\262\330\250\330\247\331\206-\330\261\330\247\330\263\330\252/index.html" "b/docs/tags/\330\242\331\205\331\210\330\262\330\264-\330\262\330\250\330\247\331\206-\330\261\330\247\330\263\330\252/index.html" index fd9f0bc..9db235f 100644 --- "a/docs/tags/\330\242\331\205\331\210\330\262\330\264-\330\262\330\250\330\247\331\206-\330\261\330\247\330\263\330\252/index.html" +++ "b/docs/tags/\330\242\331\205\331\210\330\262\330\264-\330\262\330\250\330\247\331\206-\330\261\330\247\330\263\330\252/index.html" @@ -1,559 +1,37 @@ - - - - -Tag: آموزش زبان راست - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

آموزش زبان راست

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: آموزش زبان راست - bit-orbit +

Tags

1 صفحه

آموزش زبان راست

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git "a/docs/tags/\330\242\331\205\331\210\330\262\330\264-\330\262\330\250\330\247\331\206-\330\261\330\247\330\263\330\252/index.xml" "b/docs/tags/\330\242\331\205\331\210\330\262\330\264-\330\262\330\250\330\247\331\206-\330\261\330\247\330\263\330\252/index.xml" index cf0db07..a46d0e3 100644 --- "a/docs/tags/\330\242\331\205\331\210\330\262\330\264-\330\262\330\250\330\247\331\206-\330\261\330\247\330\263\330\252/index.xml" +++ "b/docs/tags/\330\242\331\205\331\210\330\262\330\264-\330\262\330\250\330\247\331\206-\330\261\330\247\330\263\330\252/index.xml" @@ -1,39 +1,20 @@ - - - - آموزش زبان راست on bit-orbit - https://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-%D8%B1%D8%A7%D8%B3%D8%AA/ - Recent content in آموزش زبان راست on bit-orbit - Hugo -- gohugo.io - fa - Sun, 31 Dec 2023 00:00:00 +0000 - Rust - https://bit-orbit.github.io/rust/ - Sun, 31 Dec 2023 00:00:00 +0000 - - https://bit-orbit.github.io/rust/ - <img src="https://bit-orbit.github.io/images/post/rust.png" alt="Featured image of post Rust" /><p>من مدتی هست که دارم زبان +آموزش زبان راست on bit-orbithttps://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-%D8%B1%D8%A7%D8%B3%D8%AA/Recent content in آموزش زبان راست on bit-orbitHugo -- gohugo.iofaSun, 31 Dec 2023 00:00:00 +0000Rusthttps://bit-orbit.github.io/rust/Sun, 31 Dec 2023 00:00:00 +0000https://bit-orbit.github.io/rust/<img src="https://bit-orbit.github.io/images/post/rust.png" alt="Featured image of post Rust" /><p>من مدتی هست که دارم زبان rust رو یاد می‌گیرم، توی این تایمی که خودم یادش می‌گیرم، یک خلاصه‌ای هم از آموزش هایی که می‌بینم رو اینجا در پست های مجزا می‌نویسم. اینطوری هم برای خودم نوت دارم و هم -شما :)</p> -<p>هر پست آموزش +شما :)</p> +<p>هر پست آموزش rust که می‌نویسم رو اینجا لیست می‌کنم که -به راحتی در دسترس باشند.</p> -<blockquote> -<p>بعنوان نکته بگم که توی این مجموعه از پست ها، قرار نیست +به راحتی در دسترس باشند.</p> +<blockquote> +<p>بعنوان نکته بگم که توی این مجموعه از پست ها، قرار نیست برنامه نویسی را از صفر یاد بگیریم، صرفا سینتکس زبان rust -را یاد می‌گیریم.</p> -</blockquote> -<hr> -<ul> -<li><a class="link" href="https://bit-orbit.github.io/p/%d9%85%d8%aa%d8%ba%db%8c%d8%b1-%d8%af%d8%b1-rust/" >متغییر ها در rust</a></li> -</ul> - - - - - +را یاد می‌گیریم.</p> +</blockquote> +<hr> +<ul> +<li><a class="link" href="https://bit-orbit.github.io/p/%d9%85%d8%aa%d8%ba%db%8c%d8%b1-%d8%af%d8%b1-rust/" >متغییر ها در rust</a></li> +</ul> \ No newline at end of file diff --git "a/docs/tags/\330\242\331\205\331\210\330\262\330\264-\330\262\330\250\330\247\331\206-\330\261\330\247\330\263\330\252/page/1/index.html" "b/docs/tags/\330\242\331\205\331\210\330\262\330\264-\330\262\330\250\330\247\331\206-\330\261\330\247\330\263\330\252/page/1/index.html" index fd86fc3..cfaa8e5 100644 --- "a/docs/tags/\330\242\331\205\331\210\330\262\330\264-\330\262\330\250\330\247\331\206-\330\261\330\247\330\263\330\252/page/1/index.html" +++ "b/docs/tags/\330\242\331\205\331\210\330\262\330\264-\330\262\330\250\330\247\331\206-\330\261\330\247\330\263\330\252/page/1/index.html" @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-%D8%B1%D8%A7%D8%B3%D8%AA/ - - - - - - +https://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-%D8%B1%D8%A7%D8%B3%D8%AA/ + \ No newline at end of file diff --git "a/docs/tags/\330\242\331\205\331\210\330\262\330\264-\331\201\330\247\330\261\330\263\333\214-\330\262\330\250\330\247\331\206-rust/index.html" "b/docs/tags/\330\242\331\205\331\210\330\262\330\264-\331\201\330\247\330\261\330\263\333\214-\330\262\330\250\330\247\331\206-rust/index.html" index 636f327..f8315c5 100644 --- "a/docs/tags/\330\242\331\205\331\210\330\262\330\264-\331\201\330\247\330\261\330\263\333\214-\330\262\330\250\330\247\331\206-rust/index.html" +++ "b/docs/tags/\330\242\331\205\331\210\330\262\330\264-\331\201\330\247\330\261\330\263\333\214-\330\262\330\250\330\247\331\206-rust/index.html" @@ -1,576 +1,37 @@ - - - - -Tag: آموزش فارسی زبان Rust - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

2 صفحه

-

آموزش فارسی زبان Rust

- -
-
-
- -
- - - - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: آموزش فارسی زبان Rust - bit-orbit + \ No newline at end of file diff --git "a/docs/tags/\330\242\331\205\331\210\330\262\330\264-\331\201\330\247\330\261\330\263\333\214-\330\262\330\250\330\247\331\206-rust/index.xml" "b/docs/tags/\330\242\331\205\331\210\330\262\330\264-\331\201\330\247\330\261\330\263\333\214-\330\262\330\250\330\247\331\206-rust/index.xml" index 5143271..541f8c3 100644 --- "a/docs/tags/\330\242\331\205\331\210\330\262\330\264-\331\201\330\247\330\261\330\263\333\214-\330\262\330\250\330\247\331\206-rust/index.xml" +++ "b/docs/tags/\330\242\331\205\331\210\330\262\330\264-\331\201\330\247\330\261\330\263\333\214-\330\262\330\250\330\247\331\206-rust/index.xml" @@ -1,227 +1,200 @@ - - - - آموزش فارسی زبان Rust on bit-orbit - https://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%B2%D8%A8%D8%A7%D9%86-rust/ - Recent content in آموزش فارسی زبان Rust on bit-orbit - Hugo -- gohugo.io - fa - Wed, 03 Jan 2024 01:30:52 +0330 - انواع داده های اولیه در rust - https://bit-orbit.github.io/p/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%D9%88%D9%84%DB%8C%D9%87-%D8%AF%D8%B1-rust/ - Wed, 03 Jan 2024 01:30:52 +0330 - - https://bit-orbit.github.io/p/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%D9%88%D9%84%DB%8C%D9%87-%D8%AF%D8%B1-rust/ - <img src="https://bit-orbit.github.io/images/post/rustdatatypes.jpg" alt="Featured image of post انواع داده های اولیه در rust" /><p>هر زبان برنامه نویسی انواعی از داده ها رو داره، مثلا +آموزش فارسی زبان Rust on bit-orbithttps://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%B2%D8%A8%D8%A7%D9%86-rust/Recent content in آموزش فارسی زبان Rust on bit-orbitHugo -- gohugo.iofaWed, 03 Jan 2024 01:30:52 +0330انواع داده های اولیه در rusthttps://bit-orbit.github.io/p/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%D9%88%D9%84%DB%8C%D9%87-%D8%AF%D8%B1-rust/Wed, 03 Jan 2024 01:30:52 +0330https://bit-orbit.github.io/p/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%D9%88%D9%84%DB%8C%D9%87-%D8%AF%D8%B1-rust/<img src="https://bit-orbit.github.io/images/post/rustdatatypes.jpg" alt="Featured image of post انواع داده های اولیه در rust" /><p>هر زبان برنامه نویسی انواعی از داده ها رو داره، مثلا داده های عددی، کاراکتر و یا رشته‌ای از کاراکتر ها. زبان rust هم انواع داده‌ای زیادی رو پشتیبانی می‌کنه و خب حتی اگر جایی کمبودی حس کردین، می‌توانید ساختار داده‌ی خودتان -را بسازید.</p> -<blockquote> -<p>‌ انواع داده ترجمه‌ی کلمه +را بسازید.</p> +<blockquote> +<p>‌ انواع داده ترجمه‌ی کلمه data type هست. و خب برای من استفاده از کلمه انگلیسی‌اش خیلی راحت -تره.</p> -</blockquote> -<h4 id="نوع-داده-عدد-صحیح">نوع داده عدد صحیح</h4> -<p>همینطور که می‌دونید عدد صحیح از منفی بی‌نهایت تا مثبت -بی‌نهایت است(بدون هیچ علامت کسر، رادیکال و بدون اعشار).</p> -<p>این نوع داده در +تره.</p> +</blockquote> +<h4 id="نوع-داده-عدد-صحیح">نوع داده عدد صحیح +</h4><p>همینطور که می‌دونید عدد صحیح از منفی بی‌نهایت تا مثبت +بی‌نهایت است(بدون هیچ علامت کسر، رادیکال و بدون اعشار).</p> +<p>این نوع داده در rust -به این صورت است</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">variable_name</span>: <span class="kt">i32</span> <span class="o">=</span><span class="w"> </span><span class="o">-</span><span class="mi">2147483648</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">variable_name</span>: <span class="kt">i32</span> <span class="o">=</span><span class="w"> </span><span class="mi">2147483647</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><p>به این باید دقت کنیم که هر متغییری مقداری فضا نیاز دارد +به این صورت است</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">variable_name</span>: <span class="kt">i32</span> <span class="o">=</span><span class="w"> </span><span class="o">-</span><span class="mi">2147483648</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">variable_name</span>: <span class="kt">i32</span> <span class="o">=</span><span class="w"> </span><span class="mi">2147483647</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><p>به این باید دقت کنیم که هر متغییری مقداری فضا نیاز دارد برای مثال این نوع داده که داده اصلی است به پنج صورت پیاده سازی می‌شود i8, i16, i32, i64, i128 اعداد پس از کاراکتر i نشان دهنده تعداد بیت هایی است که این نوع متغییر می‌تواند -اشغال کند. مثلا i128 می‌تواند به اندازه 128 بیت فضا اشغال کند.</p> -<h4 id="نوع-داده-عدد-اعشاری">نوع داده عدد اعشاری</h4> -<p>این نوع داده هم مثل نوع عدد صحیح است اما با این تفاوت که اعداد اعشاری را درون خودش ذخیره می‌کند</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">variable_name</span>: <span class="kt">f32</span> <span class="o">=</span><span class="w"> </span><span class="mf">3.14</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">variable_name</span>: <span class="kt">f32</span> <span class="o">=</span><span class="w"> </span><span class="o">-</span><span class="mf">3.14</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="نوع-داده-کاراکتر">نوع داده کاراکتر</h4> -<p>کاراکتر نوع داده‌ای است که فقط یک مقدار از حروف الفبا یا عدد و یا سیمبول را می‌تواند درون +اشغال کند. مثلا i128 می‌تواند به اندازه 128 بیت فضا اشغال کند.</p> +<h4 id="نوع-داده-عدد-اعشاری">نوع داده عدد اعشاری +</h4><p>این نوع داده هم مثل نوع عدد صحیح است اما با این تفاوت که اعداد اعشاری را درون خودش ذخیره می‌کند</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">variable_name</span>: <span class="kt">f32</span> <span class="o">=</span><span class="w"> </span><span class="mf">3.14</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">variable_name</span>: <span class="kt">f32</span> <span class="o">=</span><span class="w"> </span><span class="o">-</span><span class="mf">3.14</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="نوع-داده-کاراکتر">نوع داده کاراکتر +</h4><p>کاراکتر نوع داده‌ای است که فقط یک مقدار از حروف الفبا یا عدد و یا سیمبول را می‌تواند درون خودش ذخیره کند. پس باید به اندازه 8 بیت فضا اشغال کند اما به دلیل اینکه کاراکتر های زبان های دیگر را هم بتواند ذخیره کند از انکدینگ(encoding) utf-16 -استفاده می‌کند که 16 بیت فضا اشغال می‌کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">a</span>: <span class="kt">char</span> <span class="o">=</span><span class="w"> </span><span class="sc">&#39;a&#39;</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="داده-stringرشتهای-از-کاراکتر-ها">داده string(رشته‌ای از کاراکتر ها)</h4> -<p>String +استفاده می‌کند که 16 بیت فضا اشغال می‌کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">a</span>: <span class="kt">char</span> <span class="o">=</span><span class="w"> </span><span class="sc">&#39;a&#39;</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="داده-stringرشتهای-از-کاراکتر-ها">داده string(رشته‌ای از کاراکتر ها) +</h4><p>String نوع داده‌ای است که درواقع رشته‌ای از کاراکتر ها را درون یک نوع vector -ذخیره می‌کند.</p> -<blockquote> -<p>این نکته را هم بگم که +ذخیره می‌کند.</p> +<blockquote> +<p>این نکته را هم بگم که encoding رشته UTF-8 -است. به این معنی که هر نوع کاراکتری را می‌تواند داخل خودش ذخیره کند حتی ایموجی.</p> -</blockquote> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">heart</span>: <span class="nb">String</span> <span class="o">=</span><span class="w"> </span><span class="nb">String</span>::<span class="n">from</span><span class="p">(</span><span class="s">&#34;♥&#34;</span><span class="p">);</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="نوع-داده-منطقی">نوع داده منطقی</h4> -<p>نوع داده منطقی به اسم +است. به این معنی که هر نوع کاراکتری را می‌تواند داخل خودش ذخیره کند حتی ایموجی.</p> +</blockquote> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">heart</span>: <span class="nb">String</span> <span class="o">=</span><span class="w"> </span><span class="nb">String</span>::<span class="n">from</span><span class="p">(</span><span class="s">&#34;♥&#34;</span><span class="p">);</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="نوع-داده-منطقی">نوع داده منطقی +</h4><p>نوع داده منطقی به اسم boolian است. این نوع مقدار هایt true و یا false -را ذخیره می‌کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">is_good</span>: <span class="kt">bool</span> <span class="o">=</span><span class="w"> </span><span class="kc">true</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="نوع-داده-ترکیبی">نوع داده ترکیبی</h4> -<p>این نوع داده ها را توی پست های مجزا توضیح می‌دم.</p> -<ul> -<li>tuple</li> -<li>array</li> -<li>list</li> -<li>vector</li> -</ul> - - - - متغیر در rust - https://bit-orbit.github.io/p/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-rust/ - Mon, 01 Jan 2024 01:39:05 +0330 - - https://bit-orbit.github.io/p/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-rust/ - <img src="https://bit-orbit.github.io/images/post/datatypes-rust.jpg" alt="Featured image of post متغیر در rust" /><h4 id="تعریف-متغیر">تعریف متغیر</h4> -<p>در هر زبانی تعریف متغیر سینتکس خودش را دارد. +را ذخیره می‌کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">is_good</span>: <span class="kt">bool</span> <span class="o">=</span><span class="w"> </span><span class="kc">true</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="نوع-داده-ترکیبی">نوع داده ترکیبی +</h4><p>این نوع داده ها را توی پست های مجزا توضیح می‌دم.</p> +<ul> +<li>tuple</li> +<li>array</li> +<li>list</li> +<li>vector</li> +</ul>متغیر در rusthttps://bit-orbit.github.io/p/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-rust/Mon, 01 Jan 2024 01:39:05 +0330https://bit-orbit.github.io/p/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-rust/<img src="https://bit-orbit.github.io/images/post/datatypes-rust.jpg" alt="Featured image of post متغیر در rust" /><h4 id="تعریف-متغیر">تعریف متغیر +</h4><p>در هر زبانی تعریف متغیر سینتکس خودش را دارد. مثلا اگر زبان های خانواده c را کار کرده باشید (مثل c++, c#) متوجه می‌شوید که نوع داده‌ای متغیر، قبل از اسم آن تعریف می‌شود. و یا مثلا توی زبان پایتون تعریف نوع داده‌ای -یک متغیر حتی اهمیتی هم ندارد!</p> -<blockquote> -<p>انواع نوع داده یا +یک متغیر حتی اهمیتی هم ندارد!</p> +<blockquote> +<p>انواع نوع داده یا date types -را توی پست بعدی می‌نویسم</p> -</blockquote> -<p>توی زبان +را توی پست بعدی می‌نویسم</p> +</blockquote> +<p>توی زبان rust بعد از اسم متغیر، نوع آن نوشته می‌شود. مثلا برای تعریف یک متغیر عددی به اندازه یک بایت از کلمه کلیدی -<code>i8</code> +<code>i8</code> بعد اسم استفاده می‌کنیم. البته قبل از اسم هر متغیر هم ما باید از کلمه کلیدی -<code>let</code> -استفاده کنیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="c1">//let name: type = value; -</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="kd">let</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="متغیر-های-تغییرپذیر">متغیر های تغییرپذیر</h4> -<p>توی زبان +<code>let</code> +استفاده کنیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="c1">//let name: type = value; +</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="kd">let</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="متغیر-های-تغییرپذیر">متغیر های تغییرپذیر +</h4><p>توی زبان rust هر متغیری که تعریف می‌کنیم غیر قابل تغیر است. توی مثال بالا من پیشفرض مقدار 22 را برای متغیر age قرار داده‌ام، حالا اگر بخواهم مقدار آن را -به 23 تغیر بدهم به ارور می‌خورم</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt">10 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">error</span><span class="p">[</span><span class="n">E0384</span><span class="p">]</span>: <span class="nc">cannot</span><span class="w"> </span><span class="n">assign</span><span class="w"> </span><span class="n">twice</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">immutable</span><span class="w"> </span><span class="n">variable</span><span class="w"> </span><span class="err">`</span><span class="n">age</span><span class="err">`</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">-</span>-&gt; <span class="nc">src</span><span class="o">/</span><span class="n">main</span><span class="p">.</span><span class="n">rs</span>:<span class="mi">3</span>:<span class="mi">5</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">---</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">first</span><span class="w"> </span><span class="n">assignment</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="err">`</span><span class="n">age</span><span class="err">`</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">help</span>: <span class="nc">consider</span><span class="w"> </span><span class="n">making</span><span class="w"> </span><span class="n">this</span><span class="w"> </span><span class="n">binding</span><span class="w"> </span><span class="n">mutable</span>: <span class="err">`</span><span class="k">mut</span><span class="w"> </span><span class="n">age</span><span class="err">`</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="mi">3</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">^^^^^^^^</span><span class="w"> </span><span class="n">cannot</span><span class="w"> </span><span class="n">assign</span><span class="w"> </span><span class="n">twice</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">immutable</span><span class="w"> </span><span class="n">variable</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><p>خب برای همین اگر می‌خواهیم مقدار متغیری را تغییر +به 23 تغیر بدهم به ارور می‌خورم</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">error</span><span class="p">[</span><span class="n">E0384</span><span class="p">]</span>: <span class="nc">cannot</span><span class="w"> </span><span class="n">assign</span><span class="w"> </span><span class="n">twice</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">immutable</span><span class="w"> </span><span class="n">variable</span><span class="w"> </span><span class="err">`</span><span class="n">age</span><span class="err">`</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">-</span>-&gt; <span class="nc">src</span><span class="o">/</span><span class="n">main</span><span class="p">.</span><span class="n">rs</span>:<span class="mi">3</span>:<span class="mi">5</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">---</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">first</span><span class="w"> </span><span class="n">assignment</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="err">`</span><span class="n">age</span><span class="err">`</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">help</span>: <span class="nc">consider</span><span class="w"> </span><span class="n">making</span><span class="w"> </span><span class="n">this</span><span class="w"> </span><span class="n">binding</span><span class="w"> </span><span class="n">mutable</span>: <span class="err">`</span><span class="k">mut</span><span class="w"> </span><span class="n">age</span><span class="err">`</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="mi">3</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">^^^^^^^^</span><span class="w"> </span><span class="n">cannot</span><span class="w"> </span><span class="n">assign</span><span class="w"> </span><span class="n">twice</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">immutable</span><span class="w"> </span><span class="n">variable</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><p>خب برای همین اگر می‌خواهیم مقدار متغیری را تغییر بدهیم آن را باید از اول مشخص کنیم. مشخص کردن آن با کلمه کلیدی -<code>mut</code> +<code>mut</code> بعد از کلمه -<code>let</code> +<code>let</code> است. کلمه mut مخفف -<strong>mutable</strong> +<strong>mutable</strong> به معنی -<strong>قابل تغییر</strong> -است. خب بیایید اینکار را برای مثال اولیه انجام بدهیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div> - - - - +<strong>قابل تغییر</strong> +است. خب بیایید اینکار را برای مثال اولیه انجام بدهیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div> \ No newline at end of file diff --git "a/docs/tags/\330\242\331\205\331\210\330\262\330\264-\331\201\330\247\330\261\330\263\333\214-\330\262\330\250\330\247\331\206-rust/page/1/index.html" "b/docs/tags/\330\242\331\205\331\210\330\262\330\264-\331\201\330\247\330\261\330\263\333\214-\330\262\330\250\330\247\331\206-rust/page/1/index.html" index 5ac4a84..9926a56 100644 --- "a/docs/tags/\330\242\331\205\331\210\330\262\330\264-\331\201\330\247\330\261\330\263\333\214-\330\262\330\250\330\247\331\206-rust/page/1/index.html" +++ "b/docs/tags/\330\242\331\205\331\210\330\262\330\264-\331\201\330\247\330\261\330\263\333\214-\330\262\330\250\330\247\331\206-rust/page/1/index.html" @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%B2%D8%A8%D8%A7%D9%86-rust/ - - - - - - +https://bit-orbit.github.io/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%B2%D8%A8%D8%A7%D9%86-rust/ + \ No newline at end of file diff --git "a/docs/tags/\330\247\330\263\331\206\331\276-\330\264\330\247\330\252-\332\257\330\261\331\201\330\252\331\206-\330\247\330\262-\333\214\332\251-\330\265\331\201\330\255\331\207-\330\263\330\247\333\214\330\252-\330\250\330\247-\330\252\331\205\330\247\331\205\333\214-\331\201\330\247\333\214\331\204-\331\207\330\247\333\214-\331\210\330\247\330\250\330\263\330\252\331\207\330\264/index.html" "b/docs/tags/\330\247\330\263\331\206\331\276-\330\264\330\247\330\252-\332\257\330\261\331\201\330\252\331\206-\330\247\330\262-\333\214\332\251-\330\265\331\201\330\255\331\207-\330\263\330\247\333\214\330\252-\330\250\330\247-\330\252\331\205\330\247\331\205\333\214-\331\201\330\247\333\214\331\204-\331\207\330\247\333\214-\331\210\330\247\330\250\330\263\330\252\331\207\330\264/index.html" index 972dbc2..90a3e57 100644 --- "a/docs/tags/\330\247\330\263\331\206\331\276-\330\264\330\247\330\252-\332\257\330\261\331\201\330\252\331\206-\330\247\330\262-\333\214\332\251-\330\265\331\201\330\255\331\207-\330\263\330\247\333\214\330\252-\330\250\330\247-\330\252\331\205\330\247\331\205\333\214-\331\201\330\247\333\214\331\204-\331\207\330\247\333\214-\331\210\330\247\330\250\330\263\330\252\331\207\330\264/index.html" +++ "b/docs/tags/\330\247\330\263\331\206\331\276-\330\264\330\247\330\252-\332\257\330\261\331\201\330\252\331\206-\330\247\330\262-\333\214\332\251-\330\265\331\201\330\255\331\207-\330\263\330\247\333\214\330\252-\330\250\330\247-\330\252\331\205\330\247\331\205\333\214-\331\201\330\247\333\214\331\204-\331\207\330\247\333\214-\331\210\330\247\330\250\330\263\330\252\331\207\330\264/index.html" @@ -1,559 +1,37 @@ - - - - -Tag: اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش - bit-orbit +

Tags

1 صفحه

اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git "a/docs/tags/\330\247\330\263\331\206\331\276-\330\264\330\247\330\252-\332\257\330\261\331\201\330\252\331\206-\330\247\330\262-\333\214\332\251-\330\265\331\201\330\255\331\207-\330\263\330\247\333\214\330\252-\330\250\330\247-\330\252\331\205\330\247\331\205\333\214-\331\201\330\247\333\214\331\204-\331\207\330\247\333\214-\331\210\330\247\330\250\330\263\330\252\331\207\330\264/index.xml" "b/docs/tags/\330\247\330\263\331\206\331\276-\330\264\330\247\330\252-\332\257\330\261\331\201\330\252\331\206-\330\247\330\262-\333\214\332\251-\330\265\331\201\330\255\331\207-\330\263\330\247\333\214\330\252-\330\250\330\247-\330\252\331\205\330\247\331\205\333\214-\331\201\330\247\333\214\331\204-\331\207\330\247\333\214-\331\210\330\247\330\250\330\263\330\252\331\207\330\264/index.xml" index cb9e114..16f785e 100644 --- "a/docs/tags/\330\247\330\263\331\206\331\276-\330\264\330\247\330\252-\332\257\330\261\331\201\330\252\331\206-\330\247\330\262-\333\214\332\251-\330\265\331\201\330\255\331\207-\330\263\330\247\333\214\330\252-\330\250\330\247-\330\252\331\205\330\247\331\205\333\214-\331\201\330\247\333\214\331\204-\331\207\330\247\333\214-\331\210\330\247\330\250\330\263\330\252\331\207\330\264/index.xml" +++ "b/docs/tags/\330\247\330\263\331\206\331\276-\330\264\330\247\330\252-\332\257\330\261\331\201\330\252\331\206-\330\247\330\262-\333\214\332\251-\330\265\331\201\330\255\331\207-\330\263\330\247\333\214\330\252-\330\250\330\247-\330\252\331\205\330\247\331\205\333\214-\331\201\330\247\333\214\331\204-\331\207\330\247\333\214-\331\210\330\247\330\250\330\263\330\252\331\207\330\264/index.xml" @@ -1,33 +1,19 @@ - - - - اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش on bit-orbit - https://bit-orbit.github.io/tags/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4/ - Recent content in اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش on bit-orbit - Hugo -- gohugo.io - fa - Mon, 17 Jan 2022 14:56:14 +0330 - اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش(عکس، استایل، جاوا اسکریپت) - https://bit-orbit.github.io/p/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4%D8%B9%DA%A9%D8%B3-%D8%A7%D8%B3%D8%AA%D8%A7%DB%8C%D9%84-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA/ - Mon, 17 Jan 2022 14:56:14 +0330 - - https://bit-orbit.github.io/p/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4%D8%B9%DA%A9%D8%B3-%D8%A7%D8%B3%D8%AA%D8%A7%DB%8C%D9%84-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA/ - <img src="https://bit-orbit.github.io/images/post/snp.jpg" alt="Featured image of post اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش(عکس، استایل، جاوا اسکریپت)" /><div dir='rtl' style='font-size:23px'> -<p>زمانی که مقاله یا پستی را می‌خوانم، گاهی احساس می‌کنم ممکنه یک مطلب را فراموش کنم. +اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش on bit-orbithttps://bit-orbit.github.io/tags/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4/Recent content in اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش on bit-orbitHugo -- gohugo.iofaMon, 17 Jan 2022 14:56:14 +0330اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش(عکس، استایل، جاوا اسکریپت)https://bit-orbit.github.io/p/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4%D8%B9%DA%A9%D8%B3-%D8%A7%D8%B3%D8%AA%D8%A7%DB%8C%D9%84-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA/Mon, 17 Jan 2022 14:56:14 +0330https://bit-orbit.github.io/p/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4%D8%B9%DA%A9%D8%B3-%D8%A7%D8%B3%D8%AA%D8%A7%DB%8C%D9%84-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA/<img src="https://bit-orbit.github.io/images/post/snp.jpg" alt="Featured image of post اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش(عکس، استایل، جاوا اسکریپت)" /><div dir='rtl' style='font-size:23px'> +<p>زمانی که مقاله یا پستی را می‌خوانم، گاهی احساس می‌کنم ممکنه یک مطلب را فراموش کنم. مثلا اگه مقاله‌ای از ویرگول درباره یک دستور لینوکس بخوانم، برای اینکه مطلبش را فراموش نکنم باید هرزگاهی به پست سر بزنم و مطالب را مرور کنم. اما فکر کنید مطلب درباره برنامه‌ای باشد که می‌توان با استفاده از آن سانسور را دور زد، -ویرگول احتمالا آن مطلب را حذف می‌کند.</p> -<ul> -<li> -<p>چه راهی برای ذخیره پست پشنهاد می‌کنید که بعدا بتوان آن را بارها مرور کرد؟</p> -</li> -<li> -<p>اگر پست از سایت منبع حذف شود، و یا حتی خود سایت دیگر در دسترس نباشد، -باز هم پستی که ذخیره کرده‌اید در دسترس است؟</p> -</li> -</ul> -<p>در این پست با استفاده از ابزار +ویرگول احتمالا آن مطلب را حذف می‌کند.</p> +<ul> +<li> +<p>چه راهی برای ذخیره پست پشنهاد می‌کنید که بعدا بتوان آن را بارها مرور کرد؟</p> +</li> +<li> +<p>اگر پست از سایت منبع حذف شود، و یا حتی خود سایت دیگر در دسترس نباشد، +باز هم پستی که ذخیره کرده‌اید در دسترس است؟</p> +</li> +</ul> +<p>در این پست با استفاده از ابزار wget یک پست را با تمامی وابستگی هایش مانند عکس ها، فایل های js، @@ -36,62 +22,62 @@ css دانلود می‌کنیم و روی سیستم خودمان ذخیره می‌کنیم تا حتی اگر سایت در دسترس نباشد و یا پست -از منبع حذف شد، پست به صورت افلاین در دسترس بماند.</p> -<hr> -<h3 id="wget">wget</h3> -<p>می‌دونید که +از منبع حذف شد، پست به صورت افلاین در دسترس بماند.</p> +<hr> +<h3 id="wget">wget +</h3><p>می‌دونید که wget یک ابزار پیشرفته برای دانلود فایله، قابلیت های زیادی که داره باعث شده بعد از سالها که ابزار های پیشرفته دانلود هم نوشته شدن، همچنان wget استفاده بشه. این برنامه روی اکثر توزیع های لینوکس به صورت دیفالت نصبه پس بیایید بدون تلف کردن وقت -سوییچ های مهم برای میرور کردن یک صفحه سایت رو برسی کنیم.</p> -<p></br></br></p> -<p><strong>Ⅰ.</strong> <code>--adjust-extension</code>, <code>-E</code></p> -<p>شاید شما هم سایتی هایی را دیده باشید که -<em>url</em> +سوییچ های مهم برای میرور کردن یک صفحه سایت رو برسی کنیم.</p> +<p></br></br></p> +<p><strong>Ⅰ.</strong> <code>--adjust-extension</code>, <code>-E</code></p> +<p>شاید شما هم سایتی هایی را دیده باشید که +<em>url</em> صفحه هایشان با پسوند -<code>.asp</code> +<code>.asp</code> به پایان می‌رسند. برای مثال نگاهی به -<a class="link" href="https://www.w3schools.com/python/default.asp" target="_blank" rel="noopener" - >این آدرس</a> +<a class="link" href="https://www.w3schools.com/python/default.asp" target="_blank" rel="noopener" +>این آدرس</a> بیاندازید -<em><a class="link" href="https://www.w3schools.com/python/default.asp" target="_blank" rel="noopener" - >https://www.w3schools.com/python/default.asp</a></em> +<em><a class="link" href="https://www.w3schools.com/python/default.asp" target="_blank" rel="noopener" +>https://www.w3schools.com/python/default.asp</a></em> همانطور که می‌بینید با -<em>asp</em> +<em>asp</em> به پایان می‌رسد. زمانی که شما این صفحه را دانلود کنید، این صفحه بجای پسوند -<em>html.</em> +<em>html.</em> با پسوند -<em>asp.</em> -ذخیره خواهد شد.</p> -<blockquote> -<p>به همین دلیل ما از این سوییچ استفاده می‌کنیم تا صفحه ها را +<em>asp.</em> +ذخیره خواهد شد.</p> +<blockquote> +<p>به همین دلیل ما از این سوییچ استفاده می‌کنیم تا صفحه ها را با پسوند -<em>html.</em> -ذخیره کنیم.</p> -</blockquote> -<div dir='ltr'> -</br> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span><span class="lnt">3 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ https://example.com/some/where -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl"><span class="c1"># where.html</span> -</span></span></code></pre></td></tr></table> -</div> -</div></div> -<p></br></br></p> -<p><strong>Ⅱ.</strong> <code>--span-hosts</code>, <code>-H</code></p> -<p>اگر حتی فقط یک صفحه را میرور می‌کنیم، آن صفحه ممکن است به فایل های خارج از سایت +<em>html.</em> +ذخیره کنیم.</p> +</blockquote> +<div dir='ltr'> +</br> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ https://example.com/some/where +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="c1"># where.html</span> +</span></span></code></pre></td></tr></table> +</div> +</div></div> +<p></br></br></p> +<p><strong>Ⅱ.</strong> <code>--span-hosts</code>, <code>-H</code></p> +<p>اگر حتی فقط یک صفحه را میرور می‌کنیم، آن صفحه ممکن است به فایل های خارج از سایت که به روی یک CDN قرار گرفته اند @@ -99,1253 +85,1249 @@ CDN style sheet ها. از اینرو وقتی شما یک صفحه را میرور می‌کنید wget -فایل های خارج از سایت را دانلود نخواهد کرد.</p> -<blockquote> -<p>پوشش دادن فایل های خارج از سایت با استفاده از این سوییچ انجام داده می‌شود. +فایل های خارج از سایت را دانلود نخواهد کرد.</p> +<blockquote> +<p>پوشش دادن فایل های خارج از سایت با استفاده از این سوییچ انجام داده می‌شود. وقتی این سوییچ را روشن کنید wget همه لینک ها از جمله لینک هایی زیر دامنه را هم دانلود خواهد کرد، مگر اینکه عمق -پوشش دادن را محدود کنید.</p> -</blockquote> -<p></br></br></p> -<p><strong>Ⅲ.</strong> <code>--convert-links</code>, <code>-k</code></p> -<p>یک صفحه را که میرور کردیم با توجه به اینکه فایل های پیشیاز مثل عکس و استایل ها را +پوشش دادن را محدود کنید.</p> +</blockquote> +<p></br></br></p> +<p><strong>Ⅲ.</strong> <code>--convert-links</code>, <code>-k</code></p> +<p>یک صفحه را که میرور کردیم با توجه به اینکه فایل های پیشیاز مثل عکس و استایل ها را هم دانلود کردیم، وقتی فایل را با مرورگر باز کنیم همچنان صفحه html ما به فایل های داخل سایت منبع لینک شده است و فایل های پیشنازش را حتی با اینکه -روی سیستم داریم، باز هم از آدرس خارجی دریافت می‌کند و نمایش می‌دهد.</p> -<blockquote> -<p>برای اینکه یک صفحه فایل های پیشنیازش را از فایل هایی که در کنار صفحه اصلی دانلود +روی سیستم داریم، باز هم از آدرس خارجی دریافت می‌کند و نمایش می‌دهد.</p> +<blockquote> +<p>برای اینکه یک صفحه فایل های پیشنیازش را از فایل هایی که در کنار صفحه اصلی دانلود کرده است بگیرد، از این سوییچ استفاده می‌کنیم. این سوییچ تمامی لینک ها را به -لینک های داخلی تبدیل می‌کند و صفحه موقع لود شدن از فایل های داخلی استفاده می‌کند.</p> -</blockquote> -<p></br></br></p> -<p><strong>Ⅳ.</strong> <code>--page-requisites</code>, <code>-p</code></p> -<blockquote> -<p>این سوییچ باعث می‌شود که +لینک های داخلی تبدیل می‌کند و صفحه موقع لود شدن از فایل های داخلی استفاده می‌کند.</p> +</blockquote> +<p></br></br></p> +<p><strong>Ⅳ.</strong> <code>--page-requisites</code>, <code>-p</code></p> +<blockquote> +<p>این سوییچ باعث می‌شود که wget تمامی فایل های ضروری برای درست نمایش داده شدن html -را دانلود کند. این فایل ها شامل عکس ها، استایل ها و یا صدا ها می‌شود.</p> -</blockquote> -<p></br></br></p> -<p><strong>Ⅴ.</strong> <code>--no-directories</code>, <code>-nd</code></p> -<p>به صورت پیشفرض زمانی که صفحه‌ای با این ادرس را دانلود کنیم</p> -<p><code>https://example.com/some/where/page.html</code></p> -<p>برنامه +را دانلود کند. این فایل ها شامل عکس ها، استایل ها و یا صدا ها می‌شود.</p> +</blockquote> +<p></br></br></p> +<p><strong>Ⅴ.</strong> <code>--no-directories</code>, <code>-nd</code></p> +<p>به صورت پیشفرض زمانی که صفحه‌ای با این ادرس را دانلود کنیم</p> +<p><code>https://example.com/some/where/page.html</code></p> +<p>برنامه wget -این صفحه و فایل های مورد نیازش را به این صورت ذخیره خواهد کرد</p> -<p><code>some/where/page.html/.</code></p> -<p>اما با استفاده از سوییچ -<code>nd-</code> -آن صفحه و فایل های مورد نیازش فقط داخل یک دایرکتوری ذخیره خواهد شد. به این صورت</p> -<p><code>page.html/.</code></p> -<blockquote> -<p>با فعال کردن این سوییچ +این صفحه و فایل های مورد نیازش را به این صورت ذخیره خواهد کرد</p> +<p><code>some/where/page.html/.</code></p> +<p>اما با استفاده از سوییچ +<code>nd-</code> +آن صفحه و فایل های مورد نیازش فقط داخل یک دایرکتوری ذخیره خواهد شد. به این صورت</p> +<p><code>page.html/.</code></p> +<blockquote> +<p>با فعال کردن این سوییچ wget صفحه و فایل های پیشنیاز را داخل دایرکتوری فعلی ذخیره خواهد کرد. و اگر -نام یک فایل بیش از یکبار تکرار شود، به نام فایل پسوند اضافه خواهد شد.</p> -</blockquote> -<p></br></br></p> -<h3 id="مثال-کاربردی-و-خروجی">مثال کاربردی و خروجی</h3> -<ul> -<li>برای مثال من یک -<a class="link" href="https://vrgl.ir/c3fVa" target="_blank" rel="noopener" - >پست توی ویرگول</a> +نام یک فایل بیش از یکبار تکرار شود، به نام فایل پسوند اضافه خواهد شد.</p> +</blockquote> +<p></br></br></p> +<h3 id="مثال-کاربردی-و-خروجی">مثال کاربردی و خروجی +</h3><ul> +<li>برای مثال من یک +<a class="link" href="https://vrgl.ir/c3fVa" target="_blank" rel="noopener" +>پست توی ویرگول</a> که آموزش الگوریتم RSA -هست رو دانلود می‌کنم.</li> -</ul> -</br> -</div> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt"> 10 -</span><span class="lnt"> 11 -</span><span class="lnt"> 12 -</span><span class="lnt"> 13 -</span><span class="lnt"> 14 -</span><span class="lnt"> 15 -</span><span class="lnt"> 16 -</span><span class="lnt"> 17 -</span><span class="lnt"> 18 -</span><span class="lnt"> 19 -</span><span class="lnt"> 20 -</span><span class="lnt"> 21 -</span><span class="lnt"> 22 -</span><span class="lnt"> 23 -</span><span class="lnt"> 24 -</span><span class="lnt"> 25 -</span><span class="lnt"> 26 -</span><span class="lnt"> 27 -</span><span class="lnt"> 28 -</span><span class="lnt"> 29 -</span><span class="lnt"> 30 -</span><span class="lnt"> 31 -</span><span class="lnt"> 32 -</span><span class="lnt"> 33 -</span><span class="lnt"> 34 -</span><span class="lnt"> 35 -</span><span class="lnt"> 36 -</span><span class="lnt"> 37 -</span><span class="lnt"> 38 -</span><span class="lnt"> 39 -</span><span class="lnt"> 40 -</span><span class="lnt"> 41 -</span><span class="lnt"> 42 -</span><span class="lnt"> 43 -</span><span class="lnt"> 44 -</span><span class="lnt"> 45 -</span><span class="lnt"> 46 -</span><span class="lnt"> 47 -</span><span class="lnt"> 48 -</span><span class="lnt"> 49 -</span><span class="lnt"> 50 -</span><span class="lnt"> 51 -</span><span class="lnt"> 52 -</span><span class="lnt"> 53 -</span><span class="lnt"> 54 -</span><span class="lnt"> 55 -</span><span class="lnt"> 56 -</span><span class="lnt"> 57 -</span><span class="lnt"> 58 -</span><span class="lnt"> 59 -</span><span class="lnt"> 60 -</span><span class="lnt"> 61 -</span><span class="lnt"> 62 -</span><span class="lnt"> 63 -</span><span class="lnt"> 64 -</span><span class="lnt"> 65 -</span><span class="lnt"> 66 -</span><span class="lnt"> 67 -</span><span class="lnt"> 68 -</span><span class="lnt"> 69 -</span><span class="lnt"> 70 -</span><span class="lnt"> 71 -</span><span class="lnt"> 72 -</span><span class="lnt"> 73 -</span><span class="lnt"> 74 -</span><span class="lnt"> 75 -</span><span class="lnt"> 76 -</span><span class="lnt"> 77 -</span><span class="lnt"> 78 -</span><span class="lnt"> 79 -</span><span class="lnt"> 80 -</span><span class="lnt"> 81 -</span><span class="lnt"> 82 -</span><span class="lnt"> 83 -</span><span class="lnt"> 84 -</span><span class="lnt"> 85 -</span><span class="lnt"> 86 -</span><span class="lnt"> 87 -</span><span class="lnt"> 88 -</span><span class="lnt"> 89 -</span><span class="lnt"> 90 -</span><span class="lnt"> 91 -</span><span class="lnt"> 92 -</span><span class="lnt"> 93 -</span><span class="lnt"> 94 -</span><span class="lnt"> 95 -</span><span class="lnt"> 96 -</span><span class="lnt"> 97 -</span><span class="lnt"> 98 -</span><span class="lnt"> 99 -</span><span class="lnt">100 -</span><span class="lnt">101 -</span><span class="lnt">102 -</span><span class="lnt">103 -</span><span class="lnt">104 -</span><span class="lnt">105 -</span><span class="lnt">106 -</span><span class="lnt">107 -</span><span class="lnt">108 -</span><span class="lnt">109 -</span><span class="lnt">110 -</span><span class="lnt">111 -</span><span class="lnt">112 -</span><span class="lnt">113 -</span><span class="lnt">114 -</span><span class="lnt">115 -</span><span class="lnt">116 -</span><span class="lnt">117 -</span><span class="lnt">118 -</span><span class="lnt">119 -</span><span class="lnt">120 -</span><span class="lnt">121 -</span><span class="lnt">122 -</span><span class="lnt">123 -</span><span class="lnt">124 -</span><span class="lnt">125 -</span><span class="lnt">126 -</span><span class="lnt">127 -</span><span class="lnt">128 -</span><span class="lnt">129 -</span><span class="lnt">130 -</span><span class="lnt">131 -</span><span class="lnt">132 -</span><span class="lnt">133 -</span><span class="lnt">134 -</span><span class="lnt">135 -</span><span class="lnt">136 -</span><span class="lnt">137 -</span><span class="lnt">138 -</span><span class="lnt">139 -</span><span class="lnt">140 -</span><span class="lnt">141 -</span><span class="lnt">142 -</span><span class="lnt">143 -</span><span class="lnt">144 -</span><span class="lnt">145 -</span><span class="lnt">146 -</span><span class="lnt">147 -</span><span class="lnt">148 -</span><span class="lnt">149 -</span><span class="lnt">150 -</span><span class="lnt">151 -</span><span class="lnt">152 -</span><span class="lnt">153 -</span><span class="lnt">154 -</span><span class="lnt">155 -</span><span class="lnt">156 -</span><span class="lnt">157 -</span><span class="lnt">158 -</span><span class="lnt">159 -</span><span class="lnt">160 -</span><span class="lnt">161 -</span><span class="lnt">162 -</span><span class="lnt">163 -</span><span class="lnt">164 -</span><span class="lnt">165 -</span><span class="lnt">166 -</span><span class="lnt">167 -</span><span class="lnt">168 -</span><span class="lnt">169 -</span><span class="lnt">170 -</span><span class="lnt">171 -</span><span class="lnt">172 -</span><span class="lnt">173 -</span><span class="lnt">174 -</span><span class="lnt">175 -</span><span class="lnt">176 -</span><span class="lnt">177 -</span><span class="lnt">178 -</span><span class="lnt">179 -</span><span class="lnt">180 -</span><span class="lnt">181 -</span><span class="lnt">182 -</span><span class="lnt">183 -</span><span class="lnt">184 -</span><span class="lnt">185 -</span><span class="lnt">186 -</span><span class="lnt">187 -</span><span class="lnt">188 -</span><span class="lnt">189 -</span><span class="lnt">190 -</span><span class="lnt">191 -</span><span class="lnt">192 -</span><span class="lnt">193 -</span><span class="lnt">194 -</span><span class="lnt">195 -</span><span class="lnt">196 -</span><span class="lnt">197 -</span><span class="lnt">198 -</span><span class="lnt">199 -</span><span class="lnt">200 -</span><span class="lnt">201 -</span><span class="lnt">202 -</span><span class="lnt">203 -</span><span class="lnt">204 -</span><span class="lnt">205 -</span><span class="lnt">206 -</span><span class="lnt">207 -</span><span class="lnt">208 -</span><span class="lnt">209 -</span><span class="lnt">210 -</span><span class="lnt">211 -</span><span class="lnt">212 -</span><span class="lnt">213 -</span><span class="lnt">214 -</span><span class="lnt">215 -</span><span class="lnt">216 -</span><span class="lnt">217 -</span><span class="lnt">218 -</span><span class="lnt">219 -</span><span class="lnt">220 -</span><span class="lnt">221 -</span><span class="lnt">222 -</span><span class="lnt">223 -</span><span class="lnt">224 -</span><span class="lnt">225 -</span><span class="lnt">226 -</span><span class="lnt">227 -</span><span class="lnt">228 -</span><span class="lnt">229 -</span><span class="lnt">230 -</span><span class="lnt">231 -</span><span class="lnt">232 -</span><span class="lnt">233 -</span><span class="lnt">234 -</span><span class="lnt">235 -</span><span class="lnt">236 -</span><span class="lnt">237 -</span><span class="lnt">238 -</span><span class="lnt">239 -</span><span class="lnt">240 -</span><span class="lnt">241 -</span><span class="lnt">242 -</span><span class="lnt">243 -</span><span class="lnt">244 -</span><span class="lnt">245 -</span><span class="lnt">246 -</span><span class="lnt">247 -</span><span class="lnt">248 -</span><span class="lnt">249 -</span><span class="lnt">250 -</span><span class="lnt">251 -</span><span class="lnt">252 -</span><span class="lnt">253 -</span><span class="lnt">254 -</span><span class="lnt">255 -</span><span class="lnt">256 -</span><span class="lnt">257 -</span><span class="lnt">258 -</span><span class="lnt">259 -</span><span class="lnt">260 -</span><span class="lnt">261 -</span><span class="lnt">262 -</span><span class="lnt">263 -</span><span class="lnt">264 -</span><span class="lnt">265 -</span><span class="lnt">266 -</span><span class="lnt">267 -</span><span class="lnt">268 -</span><span class="lnt">269 -</span><span class="lnt">270 -</span><span class="lnt">271 -</span><span class="lnt">272 -</span><span class="lnt">273 -</span><span class="lnt">274 -</span><span class="lnt">275 -</span><span class="lnt">276 -</span><span class="lnt">277 -</span><span class="lnt">278 -</span><span class="lnt">279 -</span><span class="lnt">280 -</span><span class="lnt">281 -</span><span class="lnt">282 -</span><span class="lnt">283 -</span><span class="lnt">284 -</span><span class="lnt">285 -</span><span class="lnt">286 -</span><span class="lnt">287 -</span><span class="lnt">288 -</span><span class="lnt">289 -</span><span class="lnt">290 -</span><span class="lnt">291 -</span><span class="lnt">292 -</span><span class="lnt">293 -</span><span class="lnt">294 -</span><span class="lnt">295 -</span><span class="lnt">296 -</span><span class="lnt">297 -</span><span class="lnt">298 -</span><span class="lnt">299 -</span><span class="lnt">300 -</span><span class="lnt">301 -</span><span class="lnt">302 -</span><span class="lnt">303 -</span><span class="lnt">304 -</span><span class="lnt">305 -</span><span class="lnt">306 -</span><span class="lnt">307 -</span><span class="lnt">308 -</span><span class="lnt">309 -</span><span class="lnt">310 -</span><span class="lnt">311 -</span><span class="lnt">312 -</span><span class="lnt">313 -</span><span class="lnt">314 -</span><span class="lnt">315 -</span><span class="lnt">316 -</span><span class="lnt">317 -</span><span class="lnt">318 -</span><span class="lnt">319 -</span><span class="lnt">320 -</span><span class="lnt">321 -</span><span class="lnt">322 -</span><span class="lnt">323 -</span><span class="lnt">324 -</span><span class="lnt">325 -</span><span class="lnt">326 -</span><span class="lnt">327 -</span><span class="lnt">328 -</span><span class="lnt">329 -</span><span class="lnt">330 -</span><span class="lnt">331 -</span><span class="lnt">332 -</span><span class="lnt">333 -</span><span class="lnt">334 -</span><span class="lnt">335 -</span><span class="lnt">336 -</span><span class="lnt">337 -</span><span class="lnt">338 -</span><span class="lnt">339 -</span><span class="lnt">340 -</span><span class="lnt">341 -</span><span class="lnt">342 -</span><span class="lnt">343 -</span><span class="lnt">344 -</span><span class="lnt">345 -</span><span class="lnt">346 -</span><span class="lnt">347 -</span><span class="lnt">348 -</span><span class="lnt">349 -</span><span class="lnt">350 -</span><span class="lnt">351 -</span><span class="lnt">352 -</span><span class="lnt">353 -</span><span class="lnt">354 -</span><span class="lnt">355 -</span><span class="lnt">356 -</span><span class="lnt">357 -</span><span class="lnt">358 -</span><span class="lnt">359 -</span><span class="lnt">360 -</span><span class="lnt">361 -</span><span class="lnt">362 -</span><span class="lnt">363 -</span><span class="lnt">364 -</span><span class="lnt">365 -</span><span class="lnt">366 -</span><span class="lnt">367 -</span><span class="lnt">368 -</span><span class="lnt">369 -</span><span class="lnt">370 -</span><span class="lnt">371 -</span><span class="lnt">372 -</span><span class="lnt">373 -</span><span class="lnt">374 -</span><span class="lnt">375 -</span><span class="lnt">376 -</span><span class="lnt">377 -</span><span class="lnt">378 -</span><span class="lnt">379 -</span><span class="lnt">380 -</span><span class="lnt">381 -</span><span class="lnt">382 -</span><span class="lnt">383 -</span><span class="lnt">384 -</span><span class="lnt">385 -</span><span class="lnt">386 -</span><span class="lnt">387 -</span><span class="lnt">388 -</span><span class="lnt">389 -</span><span class="lnt">390 -</span><span class="lnt">391 -</span><span class="lnt">392 -</span><span class="lnt">393 -</span><span class="lnt">394 -</span><span class="lnt">395 -</span><span class="lnt">396 -</span><span class="lnt">397 -</span><span class="lnt">398 -</span><span class="lnt">399 -</span><span class="lnt">400 -</span><span class="lnt">401 -</span><span class="lnt">402 -</span><span class="lnt">403 -</span><span class="lnt">404 -</span><span class="lnt">405 -</span><span class="lnt">406 -</span><span class="lnt">407 -</span><span class="lnt">408 -</span><span class="lnt">409 -</span><span class="lnt">410 -</span><span class="lnt">411 -</span><span class="lnt">412 -</span><span class="lnt">413 -</span><span class="lnt">414 -</span><span class="lnt">415 -</span><span class="lnt">416 -</span><span class="lnt">417 -</span><span class="lnt">418 -</span><span class="lnt">419 -</span><span class="lnt">420 -</span><span class="lnt">421 -</span><span class="lnt">422 -</span><span class="lnt">423 -</span><span class="lnt">424 -</span><span class="lnt">425 -</span><span class="lnt">426 -</span><span class="lnt">427 -</span><span class="lnt">428 -</span><span class="lnt">429 -</span><span class="lnt">430 -</span><span class="lnt">431 -</span><span class="lnt">432 -</span><span class="lnt">433 -</span><span class="lnt">434 -</span><span class="lnt">435 -</span><span class="lnt">436 -</span><span class="lnt">437 -</span><span class="lnt">438 -</span><span class="lnt">439 -</span><span class="lnt">440 -</span><span class="lnt">441 -</span><span class="lnt">442 -</span><span class="lnt">443 -</span><span class="lnt">444 -</span><span class="lnt">445 -</span><span class="lnt">446 -</span><span class="lnt">447 -</span><span class="lnt">448 -</span><span class="lnt">449 -</span><span class="lnt">450 -</span><span class="lnt">451 -</span><span class="lnt">452 -</span><span class="lnt">453 -</span><span class="lnt">454 -</span><span class="lnt">455 -</span><span class="lnt">456 -</span><span class="lnt">457 -</span><span class="lnt">458 -</span><span class="lnt">459 -</span><span class="lnt">460 -</span><span class="lnt">461 -</span><span class="lnt">462 -</span><span class="lnt">463 -</span><span class="lnt">464 -</span><span class="lnt">465 -</span><span class="lnt">466 -</span><span class="lnt">467 -</span><span class="lnt">468 -</span><span class="lnt">469 -</span><span class="lnt">470 -</span><span class="lnt">471 -</span><span class="lnt">472 -</span><span class="lnt">473 -</span><span class="lnt">474 -</span><span class="lnt">475 -</span><span class="lnt">476 -</span><span class="lnt">477 -</span><span class="lnt">478 -</span><span class="lnt">479 -</span><span class="lnt">480 -</span><span class="lnt">481 -</span><span class="lnt">482 -</span><span class="lnt">483 -</span><span class="lnt">484 -</span><span class="lnt">485 -</span><span class="lnt">486 -</span><span class="lnt">487 -</span><span class="lnt">488 -</span><span class="lnt">489 -</span><span class="lnt">490 -</span><span class="lnt">491 -</span><span class="lnt">492 -</span><span class="lnt">493 -</span><span class="lnt">494 -</span><span class="lnt">495 -</span><span class="lnt">496 -</span><span class="lnt">497 -</span><span class="lnt">498 -</span><span class="lnt">499 -</span><span class="lnt">500 -</span><span class="lnt">501 -</span><span class="lnt">502 -</span><span class="lnt">503 -</span><span class="lnt">504 -</span><span class="lnt">505 -</span><span class="lnt">506 -</span><span class="lnt">507 -</span><span class="lnt">508 -</span><span class="lnt">509 -</span><span class="lnt">510 -</span><span class="lnt">511 -</span><span class="lnt">512 -</span><span class="lnt">513 -</span><span class="lnt">514 -</span><span class="lnt">515 -</span><span class="lnt">516 -</span><span class="lnt">517 -</span><span class="lnt">518 -</span><span class="lnt">519 -</span><span class="lnt">520 -</span><span class="lnt">521 -</span><span class="lnt">522 -</span><span class="lnt">523 -</span><span class="lnt">524 -</span><span class="lnt">525 -</span><span class="lnt">526 -</span><span class="lnt">527 -</span><span class="lnt">528 -</span><span class="lnt">529 -</span><span class="lnt">530 -</span><span class="lnt">531 -</span><span class="lnt">532 -</span><span class="lnt">533 -</span><span class="lnt">534 -</span><span class="lnt">535 -</span><span class="lnt">536 -</span><span class="lnt">537 -</span><span class="lnt">538 -</span><span class="lnt">539 -</span><span class="lnt">540 -</span><span class="lnt">541 -</span><span class="lnt">542 -</span><span class="lnt">543 -</span><span class="lnt">544 -</span><span class="lnt">545 -</span><span class="lnt">546 -</span><span class="lnt">547 -</span><span class="lnt">548 -</span><span class="lnt">549 -</span><span class="lnt">550 -</span><span class="lnt">551 -</span><span class="lnt">552 -</span><span class="lnt">553 -</span><span class="lnt">554 -</span><span class="lnt">555 -</span><span class="lnt">556 -</span><span class="lnt">557 -</span><span class="lnt">558 -</span><span class="lnt">559 -</span><span class="lnt">560 -</span><span class="lnt">561 -</span><span class="lnt">562 -</span><span class="lnt">563 -</span><span class="lnt">564 -</span><span class="lnt">565 -</span><span class="lnt">566 -</span><span class="lnt">567 -</span><span class="lnt">568 -</span><span class="lnt">569 -</span><span class="lnt">570 -</span><span class="lnt">571 -</span><span class="lnt">572 -</span><span class="lnt">573 -</span><span class="lnt">574 -</span><span class="lnt">575 -</span><span class="lnt">576 -</span><span class="lnt">577 -</span><span class="lnt">578 -</span><span class="lnt">579 -</span><span class="lnt">580 -</span><span class="lnt">581 -</span><span class="lnt">582 -</span><span class="lnt">583 -</span><span class="lnt">584 -</span><span class="lnt">585 -</span><span class="lnt">586 -</span><span class="lnt">587 -</span><span class="lnt">588 -</span><span class="lnt">589 -</span><span class="lnt">590 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">┌─<span class="o">[</span>loading<span class="o">]</span> <span class="o">[</span>/tmp/virgool<span class="o">]</span> <span class="o">[</span>0<span class="o">]</span> -</span></span><span class="line"><span class="cl">│ -</span></span><span class="line"><span class="cl">└──〉wget -nd -E -p -k -H https://vrgl.ir/c3fVa -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:03-- https://vrgl.ir/c3fVa -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">302</span> Found -</span></span><span class="line"><span class="cl">Location: https://virgool.io/@Novo/rsa-encryption-ao1poasym4cf <span class="o">[</span>following<span class="o">]</span> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:04-- https://virgool.io/@Novo/rsa-encryption-ao1poasym4cf -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/html<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘c3fVa.html’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">c3fVa.html <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 61.30K 200KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:06 <span class="o">(</span><span class="m">200</span> KB/s<span class="o">)</span> - ‘c3fVa.html’ saved <span class="o">[</span>62773<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:06-- https://virgool.io/robots.txt -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>document<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘robots.txt’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">robots.txt <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">484</span> --.-KB/s in 0s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:07 <span class="o">(</span>85.7 MB/s<span class="o">)</span> - ‘robots.txt’ saved <span class="o">[</span>484<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:07-- https://www.googletagmanager.com/robots.txt -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">404</span> Not Found -</span></span><span class="line"><span class="cl">2022-01-18 06:41:08 ERROR 404: Not Found. -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:08-- https://files.virgool.io/robots.txt -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">403</span> Forbidden -</span></span><span class="line"><span class="cl">2022-01-18 06:41:09 ERROR 403: Forbidden. -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:09-- https://static.cloudflareinsights.com/robots.txt -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">522</span> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:26 ERROR 522: <span class="o">(</span>no description<span class="o">)</span>. -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:26-- https://virgool.io/images/favicon.png?v<span class="o">=</span>v2.6.15 -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">9855</span> <span class="o">(</span>9.6K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘favicon.png?v<span class="o">=</span>v2.6.15’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">favicon.png?v<span class="o">=</span>v2.6.15 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 9.62K --.-KB/s in 0.07s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:27 <span class="o">(</span><span class="m">130</span> KB/s<span class="o">)</span> - ‘favicon.png?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>9855/9855<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:27-- https://virgool.io/css/styles.css?v<span class="o">=</span>v2.6.15 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/css<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘styles.css?v<span class="o">=</span>v2.6.15.css’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">styles.css?v<span class="o">=</span>v2.6.15.css <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 903.60K 592KB/s in 1.5s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:28 <span class="o">(</span><span class="m">592</span> KB/s<span class="o">)</span> - ‘styles.css?v<span class="o">=</span>v2.6.15.css’ saved <span class="o">[</span>925284<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:28-- https://virgool.test/robots.txt -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:28-- https://www.googletagmanager.com/ns.html?id<span class="o">=</span>GTM-5GS688K -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/html<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘ns.html?id<span class="o">=</span>GTM-5GS688K.html’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">ns.html?id<span class="o">=</span>GTM-5GS688K.html <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">266</span> --.-KB/s in 0s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:29 <span class="o">(</span>29.4 MB/s<span class="o">)</span> - ‘ns.html?id<span class="o">=</span>GTM-5GS688K.html’ saved <span class="o">[</span>266<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:29-- https://files.virgool.io/upload/users/31434/avatar/1C4LLE.png?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">39194</span> <span class="o">(</span>38K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_ 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 38.28K 173KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:30 <span class="o">(</span><span class="m">173</span> KB/s<span class="o">)</span> - ‘1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>39194/39194<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:30-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/qhokakomwyb5.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">179870</span> <span class="o">(</span>176K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘qhokakomwyb5.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">qhokakomwyb5.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 175.65K 567KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">567</span> KB/s<span class="o">)</span> - ‘qhokakomwyb5.png’ saved <span class="o">[</span>179870/179870<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/v1xnwpnewfys.webp -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">12770</span> <span class="o">(</span>12K<span class="o">)</span> <span class="o">[</span>image/webp<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘v1xnwpnewfys.webp’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">v1xnwpnewfys.webp 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 12.47K --.-KB/s in 0.07s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">180</span> KB/s<span class="o">)</span> - ‘v1xnwpnewfys.webp’ saved <span class="o">[</span>12770/12770<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/d28hpu2detkl.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">92847</span> <span class="o">(</span>91K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘d28hpu2detkl.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">d28hpu2detkl.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 90.67K --.-KB/s in 0.09s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">969</span> KB/s<span class="o">)</span> - ‘d28hpu2detkl.png’ saved <span class="o">[</span>92847/92847<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/rhyykrc8azq0.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">17539</span> <span class="o">(</span>17K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘rhyykrc8azq0.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">rhyykrc8azq0.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 17.13K --.-KB/s in 0.007s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>2.47 MB/s<span class="o">)</span> - ‘rhyykrc8azq0.png’ saved <span class="o">[</span>17539/17539<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/fjtc1ydzkuse.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">108524</span> <span class="o">(</span>106K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘fjtc1ydzkuse.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">fjtc1ydzkuse.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 105.98K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>1.06 MB/s<span class="o">)</span> - ‘fjtc1ydzkuse.png’ saved <span class="o">[</span>108524/108524<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/gfqhgyp18oic.jpeg -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">132085</span> <span class="o">(</span>129K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘gfqhgyp18oic.jpeg’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">gfqhgyp18oic.jpeg 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 128.99K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>1.28 MB/s<span class="o">)</span> - ‘gfqhgyp18oic.jpeg’ saved <span class="o">[</span>132085/132085<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/me0mpjtdmyom.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">113489</span> <span class="o">(</span>111K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘me0mpjtdmyom.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">me0mpjtdmyom.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 110.83K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span><span class="m">814</span> KB/s<span class="o">)</span> - ‘me0mpjtdmyom.png’ saved <span class="o">[</span>113489/113489<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/of7krju6oqzk.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">105746</span> <span class="o">(</span>103K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘of7krju6oqzk.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">of7krju6oqzk.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 103.27K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span>1.25 MB/s<span class="o">)</span> - ‘of7krju6oqzk.png’ saved <span class="o">[</span>105746/105746<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/oqwhflg4gbnq.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">120994</span> <span class="o">(</span>118K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘oqwhflg4gbnq.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">oqwhflg4gbnq.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 118.16K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span>1.14 MB/s<span class="o">)</span> - ‘oqwhflg4gbnq.png’ saved <span class="o">[</span>120994/120994<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/taqjnfnuzxcx.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">122678</span> <span class="o">(</span>120K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘taqjnfnuzxcx.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">taqjnfnuzxcx.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 119.80K --.-KB/s in 0.06s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span>2.00 MB/s<span class="o">)</span> - ‘taqjnfnuzxcx.png’ saved <span class="o">[</span>122678/122678<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/63/posts/qwqrubplfaau/g8vai2incgna.jpeg?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">88292</span> <span class="o">(</span>86K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fre 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 86.22K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span><span class="m">824</span> KB/s<span class="o">)</span> - ‘g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>88292/88292<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/63/avatar/o8jiNe.png?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">32037</span> <span class="o">(</span>31K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_ 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 31.29K --.-KB/s in 0.06s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span><span class="m">558</span> KB/s<span class="o">)</span> - ‘o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>32037/32037<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/31434/posts/e3oydlcfkr5e/figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">30356</span> <span class="o">(</span>30K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fre 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 29.64K --.-KB/s in 0.07s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span><span class="m">401</span> KB/s<span class="o">)</span> - ‘figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>30356/30356<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://files.virgool.io/upload/users/316150/posts/r8rhw88uh1xh/cs1ugyelv3zw.png?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">34459</span> <span class="o">(</span>34K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fres 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 33.65K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span><span class="m">399</span> KB/s<span class="o">)</span> - ‘cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>34459/34459<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://files.virgool.io/upload/users/316150/avatar/8sz7Rs.jpeg?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">14764</span> <span class="o">(</span>14K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 14.42K --.-KB/s in 0.007s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span>2.11 MB/s<span class="o">)</span> - ‘8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>14764/14764<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://virgool.io/js/commons.js?v<span class="o">=</span>v2.6.15 -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/javascript<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘commons.js?v<span class="o">=</span>v2.6.15’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">commons.js?v<span class="o">=</span>v2.6.15 <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 997.55K 337KB/s in 3.0s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:39 <span class="o">(</span><span class="m">337</span> KB/s<span class="o">)</span> - ‘commons.js?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>1021492<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:39-- https://virgool.io/js/main.js?v<span class="o">=</span>v2.6.15 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/javascript<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘main.js?v<span class="o">=</span>v2.6.15’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">main.js?v<span class="o">=</span>v2.6.15 <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 1.21M 580KB/s in 2.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:41 <span class="o">(</span><span class="m">580</span> KB/s<span class="o">)</span> - ‘main.js?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>1267632<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:41-- https://static.cloudflareinsights.com/beacon.min.js/v652eace1692a40cfa3763df669d7439c1639079717194 -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">13970</span> <span class="o">(</span>14K<span class="o">)</span> <span class="o">[</span>text/javascript<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘v652eace1692a40cfa3763df669d7439c1639079717194’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">v652eace1692a40cfa3763df669d743 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 13.64K --.-KB/s in 0.02s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:42 <span class="o">(</span><span class="m">600</span> KB/s<span class="o">)</span> - ‘v652eace1692a40cfa3763df669d7439c1639079717194’ saved <span class="o">[</span>13970/13970<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:42-- https://virgool.io/fonts/vazir/Vazir-Thin.ttf -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">98924</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Thin.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.61K 140KB/s in 0.7s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:43 <span class="o">(</span><span class="m">140</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.ttf’ saved <span class="o">[</span>98924/98924<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:43-- https://virgool.io/fonts/vazir/Vazir-Thin.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Thin.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.80K 276KB/s in 0.4s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:44 <span class="o">(</span><span class="m">276</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.eot?’ saved <span class="o">[</span>99120<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:44-- https://virgool.io/fonts/vazir/Vazir-Thin.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">54068</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Thin.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.80K --.-KB/s in 0.07s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:45 <span class="o">(</span><span class="m">770</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.woff’ saved <span class="o">[</span>54068/54068<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:45-- https://virgool.io/fonts/vazir/Vazir-Thin.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">43000</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Thin.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 41.99K --.-KB/s in 0.006s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:46 <span class="o">(</span>6.59 MB/s<span class="o">)</span> - ‘Vazir-Thin.woff2’ saved <span class="o">[</span>43000/43000<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:46-- https://virgool.io/fonts/vazir/Vazir-Light.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">105360</span> <span class="o">(</span>103K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Light.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 102.89K 478KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:46 <span class="o">(</span><span class="m">478</span> KB/s<span class="o">)</span> - ‘Vazir-Light.ttf’ saved <span class="o">[</span>105360/105360<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:46-- https://virgool.io/fonts/vazir/Vazir-Light.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Light.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 103.09K 470KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:47 <span class="o">(</span><span class="m">470</span> KB/s<span class="o">)</span> - ‘Vazir-Light.eot?’ saved <span class="o">[</span>105562<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:47-- https://virgool.io/fonts/vazir/Vazir-Light.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">59688</span> <span class="o">(</span>58K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Light.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 58.29K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:48 <span class="o">(</span><span class="m">758</span> KB/s<span class="o">)</span> - ‘Vazir-Light.woff’ saved <span class="o">[</span>59688/59688<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:48-- https://virgool.io/fonts/vazir/Vazir-Light.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">48168</span> <span class="o">(</span>47K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Light.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 47.04K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:48 <span class="o">(</span><span class="m">570</span> KB/s<span class="o">)</span> - ‘Vazir-Light.woff2’ saved <span class="o">[</span>48168/48168<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:48-- https://virgool.io/fonts/vazir/Vazir-Regular.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">98376</span> <span class="o">(</span>96K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Regular.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.07K 435KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:49 <span class="o">(</span><span class="m">435</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.ttf’ saved <span class="o">[</span>98376/98376<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:49-- https://virgool.io/fonts/vazir/Vazir-Regular.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Regular.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.26K 285KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:50 <span class="o">(</span><span class="m">285</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.eot?’ saved <span class="o">[</span>98574<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:50-- https://virgool.io/fonts/vazir/Vazir-Regular.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">53744</span> <span class="o">(</span>52K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Regular.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.48K --.-KB/s in 0.05s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:51 <span class="o">(</span>1.10 MB/s<span class="o">)</span> - ‘Vazir-Regular.woff’ saved <span class="o">[</span>53744/53744<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:51-- https://virgool.io/fonts/vazir/Vazir-Regular.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">42744</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Regular.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 41.74K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:51 <span class="o">(</span><span class="m">412</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.woff2’ saved <span class="o">[</span>42744/42744<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:51-- https://virgool.io/fonts/vazir/Vazir-Medium.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">98892</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Medium.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.57K 606KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:52 <span class="o">(</span><span class="m">606</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.ttf’ saved <span class="o">[</span>98892/98892<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:52-- https://virgool.io/fonts/vazir/Vazir-Medium.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Medium.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.78K 347KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:53 <span class="o">(</span><span class="m">347</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.eot?’ saved <span class="o">[</span>99100<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:53-- https://virgool.io/fonts/vazir/Vazir-Medium.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">54120</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Medium.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.85K 125KB/s in 0.4s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:54 <span class="o">(</span><span class="m">125</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.woff’ saved <span class="o">[</span>54120/54120<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:54-- https://virgool.io/fonts/vazir/Vazir-Medium.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">43152</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Medium.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.14K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:54 <span class="o">(</span><span class="m">541</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.woff2’ saved <span class="o">[</span>43152/43152<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:54-- https://virgool.io/fonts/vazir/Vazir-Bold.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">99840</span> <span class="o">(</span>98K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Bold.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 97.50K --.-KB/s in 0.04s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:55 <span class="o">(</span>2.61 MB/s<span class="o">)</span> - ‘Vazir-Bold.ttf’ saved <span class="o">[</span>99840/99840<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:55-- https://virgool.io/fonts/vazir/Vazir-Bold.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Bold.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 97.68K 560KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:56 <span class="o">(</span><span class="m">560</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.eot?’ saved <span class="o">[</span>100026<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:56-- https://virgool.io/fonts/vazir/Vazir-Bold.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">54560</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Bold.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 53.28K --.-KB/s in 0.06s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:56 <span class="o">(</span><span class="m">917</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.woff’ saved <span class="o">[</span>54560/54560<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:56-- https://virgool.io/fonts/vazir/Vazir-Bold.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">43604</span> <span class="o">(</span>43K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Bold.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.58K --.-KB/s in 0.06s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:57 <span class="o">(</span><span class="m">657</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.woff2’ saved <span class="o">[</span>43604/43604<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:57-- https://virgool.io/fonts/vazir/Vazir-Black.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">99772</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Black.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 97.43K --.-KB/s in 0.04s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:57 <span class="o">(</span>2.18 MB/s<span class="o">)</span> - ‘Vazir-Black.ttf’ saved <span class="o">[</span>99772/99772<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:57-- https://virgool.io/fonts/vazir/Vazir-Black.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Black.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 97.63K 478KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:58 <span class="o">(</span><span class="m">478</span> KB/s<span class="o">)</span> - ‘Vazir-Black.eot?’ saved <span class="o">[</span>99974<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:58-- https://virgool.io/fonts/vazir/Vazir-Black.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">54652</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Black.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 53.37K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:59 <span class="o">(</span><span class="m">691</span> KB/s<span class="o">)</span> - ‘Vazir-Black.woff’ saved <span class="o">[</span>54652/54652<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:59-- https://virgool.io/fonts/vazir/Vazir-Black.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">43332</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Black.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.32K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:00 <span class="o">(</span><span class="m">510</span> KB/s<span class="o">)</span> - ‘Vazir-Black.woff2’ saved <span class="o">[</span>43332/43332<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:00-- https://virgool.io/fonts/fontawesome/fa-solid-900.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">202616</span> <span class="o">(</span>198K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">fa-solid-900.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 197.87K 501KB/s in 0.4s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:01 <span class="o">(</span><span class="m">501</span> KB/s<span class="o">)</span> - ‘fa-solid-900.ttf’ saved <span class="o">[</span>202616/202616<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:01-- https://virgool.io/fonts/fontawesome/fa-solid-900.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">404</span> Not Found -</span></span><span class="line"><span class="cl">2022-01-18 06:42:01 ERROR 404: Not Found. -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:01-- https://virgool.io/fonts/fontawesome/fa-solid-900.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">103300</span> <span class="o">(</span>101K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">fa-solid-900.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 100.88K 358KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:02 <span class="o">(</span><span class="m">358</span> KB/s<span class="o">)</span> - ‘fa-solid-900.woff’ saved <span class="o">[</span>103300/103300<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:02-- https://virgool.io/fonts/fontawesome/fa-solid-900.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">79444</span> <span class="o">(</span>78K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">fa-solid-900.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 77.58K 394KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:03 <span class="o">(</span><span class="m">394</span> KB/s<span class="o">)</span> - ‘fa-solid-900.woff2’ saved <span class="o">[</span>79444/79444<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:03-- https://virgool.io/images/icons/plus.svg -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>image/svg+xml<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘plus.svg’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">plus.svg <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">942</span> --.-KB/s in 0.002s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:03 <span class="o">(</span><span class="m">383</span> KB/s<span class="o">)</span> - ‘plus.svg’ saved <span class="o">[</span>942<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:03-- https://virgool.io/images/icons/tick.svg -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>image/svg+xml<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘tick.svg’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">tick.svg <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">942</span> --.-KB/s in 0s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:04 <span class="o">(</span>89.8 MB/s<span class="o">)</span> - ‘tick.svg’ saved <span class="o">[</span>942<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:04-- https://virgool.io/images/typewriter.png -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">172558</span> <span class="o">(</span>169K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘typewriter.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">typewriter.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 168.51K 349KB/s in 0.5s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:05 <span class="o">(</span><span class="m">349</span> KB/s<span class="o">)</span> - ‘typewriter.png’ saved <span class="o">[</span>172558/172558<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:05-- https://virgool.test/images/download-audio.png -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:05-- https://virgool.test/images/download-ebook.png -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. -</span></span><span class="line"><span class="cl">FINISHED --2022-01-18 06:42:05-- -</span></span><span class="line"><span class="cl">Total wall clock time: 1m 2s -</span></span><span class="line"><span class="cl">Downloaded: <span class="m">54</span> files, 6.6M in 14s <span class="o">(</span><span class="m">479</span> KB/s<span class="o">)</span> -</span></span><span class="line"><span class="cl">Converting links in ns.html?id<span class="o">=</span>GTM-5GS688K.html... nothing to <span class="k">do</span>. -</span></span><span class="line"><span class="cl">Converting links in c3fVa.html... 38. -</span></span><span class="line"><span class="cl">31-7 -</span></span><span class="line"><span class="cl">Converting links in styles.css?v<span class="o">=</span>v2.6.15.css... 35. -</span></span><span class="line"><span class="cl">34-1 -</span></span><span class="line"><span class="cl">Converted links in <span class="m">3</span> files in 0.06 seconds. -</span></span></code></pre></td></tr></table> -</div> -</div> - - - - +هست رو دانلود می‌کنم.</li> +</ul> +</br> +</div> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt"> 10 +</span><span class="lnt"> 11 +</span><span class="lnt"> 12 +</span><span class="lnt"> 13 +</span><span class="lnt"> 14 +</span><span class="lnt"> 15 +</span><span class="lnt"> 16 +</span><span class="lnt"> 17 +</span><span class="lnt"> 18 +</span><span class="lnt"> 19 +</span><span class="lnt"> 20 +</span><span class="lnt"> 21 +</span><span class="lnt"> 22 +</span><span class="lnt"> 23 +</span><span class="lnt"> 24 +</span><span class="lnt"> 25 +</span><span class="lnt"> 26 +</span><span class="lnt"> 27 +</span><span class="lnt"> 28 +</span><span class="lnt"> 29 +</span><span class="lnt"> 30 +</span><span class="lnt"> 31 +</span><span class="lnt"> 32 +</span><span class="lnt"> 33 +</span><span class="lnt"> 34 +</span><span class="lnt"> 35 +</span><span class="lnt"> 36 +</span><span class="lnt"> 37 +</span><span class="lnt"> 38 +</span><span class="lnt"> 39 +</span><span class="lnt"> 40 +</span><span class="lnt"> 41 +</span><span class="lnt"> 42 +</span><span class="lnt"> 43 +</span><span class="lnt"> 44 +</span><span class="lnt"> 45 +</span><span class="lnt"> 46 +</span><span class="lnt"> 47 +</span><span class="lnt"> 48 +</span><span class="lnt"> 49 +</span><span class="lnt"> 50 +</span><span class="lnt"> 51 +</span><span class="lnt"> 52 +</span><span class="lnt"> 53 +</span><span class="lnt"> 54 +</span><span class="lnt"> 55 +</span><span class="lnt"> 56 +</span><span class="lnt"> 57 +</span><span class="lnt"> 58 +</span><span class="lnt"> 59 +</span><span class="lnt"> 60 +</span><span class="lnt"> 61 +</span><span class="lnt"> 62 +</span><span class="lnt"> 63 +</span><span class="lnt"> 64 +</span><span class="lnt"> 65 +</span><span class="lnt"> 66 +</span><span class="lnt"> 67 +</span><span class="lnt"> 68 +</span><span class="lnt"> 69 +</span><span class="lnt"> 70 +</span><span class="lnt"> 71 +</span><span class="lnt"> 72 +</span><span class="lnt"> 73 +</span><span class="lnt"> 74 +</span><span class="lnt"> 75 +</span><span class="lnt"> 76 +</span><span class="lnt"> 77 +</span><span class="lnt"> 78 +</span><span class="lnt"> 79 +</span><span class="lnt"> 80 +</span><span class="lnt"> 81 +</span><span class="lnt"> 82 +</span><span class="lnt"> 83 +</span><span class="lnt"> 84 +</span><span class="lnt"> 85 +</span><span class="lnt"> 86 +</span><span class="lnt"> 87 +</span><span class="lnt"> 88 +</span><span class="lnt"> 89 +</span><span class="lnt"> 90 +</span><span class="lnt"> 91 +</span><span class="lnt"> 92 +</span><span class="lnt"> 93 +</span><span class="lnt"> 94 +</span><span class="lnt"> 95 +</span><span class="lnt"> 96 +</span><span class="lnt"> 97 +</span><span class="lnt"> 98 +</span><span class="lnt"> 99 +</span><span class="lnt">100 +</span><span class="lnt">101 +</span><span class="lnt">102 +</span><span class="lnt">103 +</span><span class="lnt">104 +</span><span class="lnt">105 +</span><span class="lnt">106 +</span><span class="lnt">107 +</span><span class="lnt">108 +</span><span class="lnt">109 +</span><span class="lnt">110 +</span><span class="lnt">111 +</span><span class="lnt">112 +</span><span class="lnt">113 +</span><span class="lnt">114 +</span><span class="lnt">115 +</span><span class="lnt">116 +</span><span class="lnt">117 +</span><span class="lnt">118 +</span><span class="lnt">119 +</span><span class="lnt">120 +</span><span class="lnt">121 +</span><span class="lnt">122 +</span><span class="lnt">123 +</span><span class="lnt">124 +</span><span class="lnt">125 +</span><span class="lnt">126 +</span><span class="lnt">127 +</span><span class="lnt">128 +</span><span class="lnt">129 +</span><span class="lnt">130 +</span><span class="lnt">131 +</span><span class="lnt">132 +</span><span class="lnt">133 +</span><span class="lnt">134 +</span><span class="lnt">135 +</span><span class="lnt">136 +</span><span class="lnt">137 +</span><span class="lnt">138 +</span><span class="lnt">139 +</span><span class="lnt">140 +</span><span class="lnt">141 +</span><span class="lnt">142 +</span><span class="lnt">143 +</span><span class="lnt">144 +</span><span class="lnt">145 +</span><span class="lnt">146 +</span><span class="lnt">147 +</span><span class="lnt">148 +</span><span class="lnt">149 +</span><span class="lnt">150 +</span><span class="lnt">151 +</span><span class="lnt">152 +</span><span class="lnt">153 +</span><span class="lnt">154 +</span><span class="lnt">155 +</span><span class="lnt">156 +</span><span class="lnt">157 +</span><span class="lnt">158 +</span><span class="lnt">159 +</span><span class="lnt">160 +</span><span class="lnt">161 +</span><span class="lnt">162 +</span><span class="lnt">163 +</span><span class="lnt">164 +</span><span class="lnt">165 +</span><span class="lnt">166 +</span><span class="lnt">167 +</span><span class="lnt">168 +</span><span class="lnt">169 +</span><span class="lnt">170 +</span><span class="lnt">171 +</span><span class="lnt">172 +</span><span class="lnt">173 +</span><span class="lnt">174 +</span><span class="lnt">175 +</span><span class="lnt">176 +</span><span class="lnt">177 +</span><span class="lnt">178 +</span><span class="lnt">179 +</span><span class="lnt">180 +</span><span class="lnt">181 +</span><span class="lnt">182 +</span><span class="lnt">183 +</span><span class="lnt">184 +</span><span class="lnt">185 +</span><span class="lnt">186 +</span><span class="lnt">187 +</span><span class="lnt">188 +</span><span class="lnt">189 +</span><span class="lnt">190 +</span><span class="lnt">191 +</span><span class="lnt">192 +</span><span class="lnt">193 +</span><span class="lnt">194 +</span><span class="lnt">195 +</span><span class="lnt">196 +</span><span class="lnt">197 +</span><span class="lnt">198 +</span><span class="lnt">199 +</span><span class="lnt">200 +</span><span class="lnt">201 +</span><span class="lnt">202 +</span><span class="lnt">203 +</span><span class="lnt">204 +</span><span class="lnt">205 +</span><span class="lnt">206 +</span><span class="lnt">207 +</span><span class="lnt">208 +</span><span class="lnt">209 +</span><span class="lnt">210 +</span><span class="lnt">211 +</span><span class="lnt">212 +</span><span class="lnt">213 +</span><span class="lnt">214 +</span><span class="lnt">215 +</span><span class="lnt">216 +</span><span class="lnt">217 +</span><span class="lnt">218 +</span><span class="lnt">219 +</span><span class="lnt">220 +</span><span class="lnt">221 +</span><span class="lnt">222 +</span><span class="lnt">223 +</span><span class="lnt">224 +</span><span class="lnt">225 +</span><span class="lnt">226 +</span><span class="lnt">227 +</span><span class="lnt">228 +</span><span class="lnt">229 +</span><span class="lnt">230 +</span><span class="lnt">231 +</span><span class="lnt">232 +</span><span class="lnt">233 +</span><span class="lnt">234 +</span><span class="lnt">235 +</span><span class="lnt">236 +</span><span class="lnt">237 +</span><span class="lnt">238 +</span><span class="lnt">239 +</span><span class="lnt">240 +</span><span class="lnt">241 +</span><span class="lnt">242 +</span><span class="lnt">243 +</span><span class="lnt">244 +</span><span class="lnt">245 +</span><span class="lnt">246 +</span><span class="lnt">247 +</span><span class="lnt">248 +</span><span class="lnt">249 +</span><span class="lnt">250 +</span><span class="lnt">251 +</span><span class="lnt">252 +</span><span class="lnt">253 +</span><span class="lnt">254 +</span><span class="lnt">255 +</span><span class="lnt">256 +</span><span class="lnt">257 +</span><span class="lnt">258 +</span><span class="lnt">259 +</span><span class="lnt">260 +</span><span class="lnt">261 +</span><span class="lnt">262 +</span><span class="lnt">263 +</span><span class="lnt">264 +</span><span class="lnt">265 +</span><span class="lnt">266 +</span><span class="lnt">267 +</span><span class="lnt">268 +</span><span class="lnt">269 +</span><span class="lnt">270 +</span><span class="lnt">271 +</span><span class="lnt">272 +</span><span class="lnt">273 +</span><span class="lnt">274 +</span><span class="lnt">275 +</span><span class="lnt">276 +</span><span class="lnt">277 +</span><span class="lnt">278 +</span><span class="lnt">279 +</span><span class="lnt">280 +</span><span class="lnt">281 +</span><span class="lnt">282 +</span><span class="lnt">283 +</span><span class="lnt">284 +</span><span class="lnt">285 +</span><span class="lnt">286 +</span><span class="lnt">287 +</span><span class="lnt">288 +</span><span class="lnt">289 +</span><span class="lnt">290 +</span><span class="lnt">291 +</span><span class="lnt">292 +</span><span class="lnt">293 +</span><span class="lnt">294 +</span><span class="lnt">295 +</span><span class="lnt">296 +</span><span class="lnt">297 +</span><span class="lnt">298 +</span><span class="lnt">299 +</span><span class="lnt">300 +</span><span class="lnt">301 +</span><span class="lnt">302 +</span><span class="lnt">303 +</span><span class="lnt">304 +</span><span class="lnt">305 +</span><span class="lnt">306 +</span><span class="lnt">307 +</span><span class="lnt">308 +</span><span class="lnt">309 +</span><span class="lnt">310 +</span><span class="lnt">311 +</span><span class="lnt">312 +</span><span class="lnt">313 +</span><span class="lnt">314 +</span><span class="lnt">315 +</span><span class="lnt">316 +</span><span class="lnt">317 +</span><span class="lnt">318 +</span><span class="lnt">319 +</span><span class="lnt">320 +</span><span class="lnt">321 +</span><span class="lnt">322 +</span><span class="lnt">323 +</span><span class="lnt">324 +</span><span class="lnt">325 +</span><span class="lnt">326 +</span><span class="lnt">327 +</span><span class="lnt">328 +</span><span class="lnt">329 +</span><span class="lnt">330 +</span><span class="lnt">331 +</span><span class="lnt">332 +</span><span class="lnt">333 +</span><span class="lnt">334 +</span><span class="lnt">335 +</span><span class="lnt">336 +</span><span class="lnt">337 +</span><span class="lnt">338 +</span><span class="lnt">339 +</span><span class="lnt">340 +</span><span class="lnt">341 +</span><span class="lnt">342 +</span><span class="lnt">343 +</span><span class="lnt">344 +</span><span class="lnt">345 +</span><span class="lnt">346 +</span><span class="lnt">347 +</span><span class="lnt">348 +</span><span class="lnt">349 +</span><span class="lnt">350 +</span><span class="lnt">351 +</span><span class="lnt">352 +</span><span class="lnt">353 +</span><span class="lnt">354 +</span><span class="lnt">355 +</span><span class="lnt">356 +</span><span class="lnt">357 +</span><span class="lnt">358 +</span><span class="lnt">359 +</span><span class="lnt">360 +</span><span class="lnt">361 +</span><span class="lnt">362 +</span><span class="lnt">363 +</span><span class="lnt">364 +</span><span class="lnt">365 +</span><span class="lnt">366 +</span><span class="lnt">367 +</span><span class="lnt">368 +</span><span class="lnt">369 +</span><span class="lnt">370 +</span><span class="lnt">371 +</span><span class="lnt">372 +</span><span class="lnt">373 +</span><span class="lnt">374 +</span><span class="lnt">375 +</span><span class="lnt">376 +</span><span class="lnt">377 +</span><span class="lnt">378 +</span><span class="lnt">379 +</span><span class="lnt">380 +</span><span class="lnt">381 +</span><span class="lnt">382 +</span><span class="lnt">383 +</span><span class="lnt">384 +</span><span class="lnt">385 +</span><span class="lnt">386 +</span><span class="lnt">387 +</span><span class="lnt">388 +</span><span class="lnt">389 +</span><span class="lnt">390 +</span><span class="lnt">391 +</span><span class="lnt">392 +</span><span class="lnt">393 +</span><span class="lnt">394 +</span><span class="lnt">395 +</span><span class="lnt">396 +</span><span class="lnt">397 +</span><span class="lnt">398 +</span><span class="lnt">399 +</span><span class="lnt">400 +</span><span class="lnt">401 +</span><span class="lnt">402 +</span><span class="lnt">403 +</span><span class="lnt">404 +</span><span class="lnt">405 +</span><span class="lnt">406 +</span><span class="lnt">407 +</span><span class="lnt">408 +</span><span class="lnt">409 +</span><span class="lnt">410 +</span><span class="lnt">411 +</span><span class="lnt">412 +</span><span class="lnt">413 +</span><span class="lnt">414 +</span><span class="lnt">415 +</span><span class="lnt">416 +</span><span class="lnt">417 +</span><span class="lnt">418 +</span><span class="lnt">419 +</span><span class="lnt">420 +</span><span class="lnt">421 +</span><span class="lnt">422 +</span><span class="lnt">423 +</span><span class="lnt">424 +</span><span class="lnt">425 +</span><span class="lnt">426 +</span><span class="lnt">427 +</span><span class="lnt">428 +</span><span class="lnt">429 +</span><span class="lnt">430 +</span><span class="lnt">431 +</span><span class="lnt">432 +</span><span class="lnt">433 +</span><span class="lnt">434 +</span><span class="lnt">435 +</span><span class="lnt">436 +</span><span class="lnt">437 +</span><span class="lnt">438 +</span><span class="lnt">439 +</span><span class="lnt">440 +</span><span class="lnt">441 +</span><span class="lnt">442 +</span><span class="lnt">443 +</span><span class="lnt">444 +</span><span class="lnt">445 +</span><span class="lnt">446 +</span><span class="lnt">447 +</span><span class="lnt">448 +</span><span class="lnt">449 +</span><span class="lnt">450 +</span><span class="lnt">451 +</span><span class="lnt">452 +</span><span class="lnt">453 +</span><span class="lnt">454 +</span><span class="lnt">455 +</span><span class="lnt">456 +</span><span class="lnt">457 +</span><span class="lnt">458 +</span><span class="lnt">459 +</span><span class="lnt">460 +</span><span class="lnt">461 +</span><span class="lnt">462 +</span><span class="lnt">463 +</span><span class="lnt">464 +</span><span class="lnt">465 +</span><span class="lnt">466 +</span><span class="lnt">467 +</span><span class="lnt">468 +</span><span class="lnt">469 +</span><span class="lnt">470 +</span><span class="lnt">471 +</span><span class="lnt">472 +</span><span class="lnt">473 +</span><span class="lnt">474 +</span><span class="lnt">475 +</span><span class="lnt">476 +</span><span class="lnt">477 +</span><span class="lnt">478 +</span><span class="lnt">479 +</span><span class="lnt">480 +</span><span class="lnt">481 +</span><span class="lnt">482 +</span><span class="lnt">483 +</span><span class="lnt">484 +</span><span class="lnt">485 +</span><span class="lnt">486 +</span><span class="lnt">487 +</span><span class="lnt">488 +</span><span class="lnt">489 +</span><span class="lnt">490 +</span><span class="lnt">491 +</span><span class="lnt">492 +</span><span class="lnt">493 +</span><span class="lnt">494 +</span><span class="lnt">495 +</span><span class="lnt">496 +</span><span class="lnt">497 +</span><span class="lnt">498 +</span><span class="lnt">499 +</span><span class="lnt">500 +</span><span class="lnt">501 +</span><span class="lnt">502 +</span><span class="lnt">503 +</span><span class="lnt">504 +</span><span class="lnt">505 +</span><span class="lnt">506 +</span><span class="lnt">507 +</span><span class="lnt">508 +</span><span class="lnt">509 +</span><span class="lnt">510 +</span><span class="lnt">511 +</span><span class="lnt">512 +</span><span class="lnt">513 +</span><span class="lnt">514 +</span><span class="lnt">515 +</span><span class="lnt">516 +</span><span class="lnt">517 +</span><span class="lnt">518 +</span><span class="lnt">519 +</span><span class="lnt">520 +</span><span class="lnt">521 +</span><span class="lnt">522 +</span><span class="lnt">523 +</span><span class="lnt">524 +</span><span class="lnt">525 +</span><span class="lnt">526 +</span><span class="lnt">527 +</span><span class="lnt">528 +</span><span class="lnt">529 +</span><span class="lnt">530 +</span><span class="lnt">531 +</span><span class="lnt">532 +</span><span class="lnt">533 +</span><span class="lnt">534 +</span><span class="lnt">535 +</span><span class="lnt">536 +</span><span class="lnt">537 +</span><span class="lnt">538 +</span><span class="lnt">539 +</span><span class="lnt">540 +</span><span class="lnt">541 +</span><span class="lnt">542 +</span><span class="lnt">543 +</span><span class="lnt">544 +</span><span class="lnt">545 +</span><span class="lnt">546 +</span><span class="lnt">547 +</span><span class="lnt">548 +</span><span class="lnt">549 +</span><span class="lnt">550 +</span><span class="lnt">551 +</span><span class="lnt">552 +</span><span class="lnt">553 +</span><span class="lnt">554 +</span><span class="lnt">555 +</span><span class="lnt">556 +</span><span class="lnt">557 +</span><span class="lnt">558 +</span><span class="lnt">559 +</span><span class="lnt">560 +</span><span class="lnt">561 +</span><span class="lnt">562 +</span><span class="lnt">563 +</span><span class="lnt">564 +</span><span class="lnt">565 +</span><span class="lnt">566 +</span><span class="lnt">567 +</span><span class="lnt">568 +</span><span class="lnt">569 +</span><span class="lnt">570 +</span><span class="lnt">571 +</span><span class="lnt">572 +</span><span class="lnt">573 +</span><span class="lnt">574 +</span><span class="lnt">575 +</span><span class="lnt">576 +</span><span class="lnt">577 +</span><span class="lnt">578 +</span><span class="lnt">579 +</span><span class="lnt">580 +</span><span class="lnt">581 +</span><span class="lnt">582 +</span><span class="lnt">583 +</span><span class="lnt">584 +</span><span class="lnt">585 +</span><span class="lnt">586 +</span><span class="lnt">587 +</span><span class="lnt">588 +</span><span class="lnt">589 +</span><span class="lnt">590 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">┌─<span class="o">[</span>loading<span class="o">]</span> <span class="o">[</span>/tmp/virgool<span class="o">]</span> <span class="o">[</span>0<span class="o">]</span> +</span></span><span class="line"><span class="cl">│ +</span></span><span class="line"><span class="cl">└──〉wget -nd -E -p -k -H https://vrgl.ir/c3fVa +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:03-- https://vrgl.ir/c3fVa +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">302</span> Found +</span></span><span class="line"><span class="cl">Location: https://virgool.io/@Novo/rsa-encryption-ao1poasym4cf <span class="o">[</span>following<span class="o">]</span> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:04-- https://virgool.io/@Novo/rsa-encryption-ao1poasym4cf +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/html<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘c3fVa.html’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">c3fVa.html <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 61.30K 200KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:06 <span class="o">(</span><span class="m">200</span> KB/s<span class="o">)</span> - ‘c3fVa.html’ saved <span class="o">[</span>62773<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:06-- https://virgool.io/robots.txt +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>document<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘robots.txt’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">robots.txt <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">484</span> --.-KB/s in 0s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:07 <span class="o">(</span>85.7 MB/s<span class="o">)</span> - ‘robots.txt’ saved <span class="o">[</span>484<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:07-- https://www.googletagmanager.com/robots.txt +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">404</span> Not Found +</span></span><span class="line"><span class="cl">2022-01-18 06:41:08 ERROR 404: Not Found. +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:08-- https://files.virgool.io/robots.txt +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">403</span> Forbidden +</span></span><span class="line"><span class="cl">2022-01-18 06:41:09 ERROR 403: Forbidden. +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:09-- https://static.cloudflareinsights.com/robots.txt +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">522</span> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:26 ERROR 522: <span class="o">(</span>no description<span class="o">)</span>. +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:26-- https://virgool.io/images/favicon.png?v<span class="o">=</span>v2.6.15 +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">9855</span> <span class="o">(</span>9.6K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘favicon.png?v<span class="o">=</span>v2.6.15’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">favicon.png?v<span class="o">=</span>v2.6.15 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 9.62K --.-KB/s in 0.07s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:27 <span class="o">(</span><span class="m">130</span> KB/s<span class="o">)</span> - ‘favicon.png?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>9855/9855<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:27-- https://virgool.io/css/styles.css?v<span class="o">=</span>v2.6.15 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/css<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘styles.css?v<span class="o">=</span>v2.6.15.css’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">styles.css?v<span class="o">=</span>v2.6.15.css <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 903.60K 592KB/s in 1.5s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:28 <span class="o">(</span><span class="m">592</span> KB/s<span class="o">)</span> - ‘styles.css?v<span class="o">=</span>v2.6.15.css’ saved <span class="o">[</span>925284<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:28-- https://virgool.test/robots.txt +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:28-- https://www.googletagmanager.com/ns.html?id<span class="o">=</span>GTM-5GS688K +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/html<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘ns.html?id<span class="o">=</span>GTM-5GS688K.html’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">ns.html?id<span class="o">=</span>GTM-5GS688K.html <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">266</span> --.-KB/s in 0s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:29 <span class="o">(</span>29.4 MB/s<span class="o">)</span> - ‘ns.html?id<span class="o">=</span>GTM-5GS688K.html’ saved <span class="o">[</span>266<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:29-- https://files.virgool.io/upload/users/31434/avatar/1C4LLE.png?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">39194</span> <span class="o">(</span>38K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_ 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 38.28K 173KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:30 <span class="o">(</span><span class="m">173</span> KB/s<span class="o">)</span> - ‘1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>39194/39194<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:30-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/qhokakomwyb5.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">179870</span> <span class="o">(</span>176K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘qhokakomwyb5.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">qhokakomwyb5.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 175.65K 567KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">567</span> KB/s<span class="o">)</span> - ‘qhokakomwyb5.png’ saved <span class="o">[</span>179870/179870<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/v1xnwpnewfys.webp +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">12770</span> <span class="o">(</span>12K<span class="o">)</span> <span class="o">[</span>image/webp<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘v1xnwpnewfys.webp’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">v1xnwpnewfys.webp 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 12.47K --.-KB/s in 0.07s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">180</span> KB/s<span class="o">)</span> - ‘v1xnwpnewfys.webp’ saved <span class="o">[</span>12770/12770<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/d28hpu2detkl.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">92847</span> <span class="o">(</span>91K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘d28hpu2detkl.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">d28hpu2detkl.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 90.67K --.-KB/s in 0.09s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">969</span> KB/s<span class="o">)</span> - ‘d28hpu2detkl.png’ saved <span class="o">[</span>92847/92847<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/rhyykrc8azq0.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">17539</span> <span class="o">(</span>17K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘rhyykrc8azq0.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">rhyykrc8azq0.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 17.13K --.-KB/s in 0.007s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>2.47 MB/s<span class="o">)</span> - ‘rhyykrc8azq0.png’ saved <span class="o">[</span>17539/17539<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/fjtc1ydzkuse.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">108524</span> <span class="o">(</span>106K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘fjtc1ydzkuse.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">fjtc1ydzkuse.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 105.98K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>1.06 MB/s<span class="o">)</span> - ‘fjtc1ydzkuse.png’ saved <span class="o">[</span>108524/108524<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/gfqhgyp18oic.jpeg +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">132085</span> <span class="o">(</span>129K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘gfqhgyp18oic.jpeg’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">gfqhgyp18oic.jpeg 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 128.99K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>1.28 MB/s<span class="o">)</span> - ‘gfqhgyp18oic.jpeg’ saved <span class="o">[</span>132085/132085<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/me0mpjtdmyom.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">113489</span> <span class="o">(</span>111K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘me0mpjtdmyom.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">me0mpjtdmyom.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 110.83K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span><span class="m">814</span> KB/s<span class="o">)</span> - ‘me0mpjtdmyom.png’ saved <span class="o">[</span>113489/113489<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/of7krju6oqzk.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">105746</span> <span class="o">(</span>103K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘of7krju6oqzk.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">of7krju6oqzk.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 103.27K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span>1.25 MB/s<span class="o">)</span> - ‘of7krju6oqzk.png’ saved <span class="o">[</span>105746/105746<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/oqwhflg4gbnq.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">120994</span> <span class="o">(</span>118K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘oqwhflg4gbnq.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">oqwhflg4gbnq.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 118.16K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span>1.14 MB/s<span class="o">)</span> - ‘oqwhflg4gbnq.png’ saved <span class="o">[</span>120994/120994<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/taqjnfnuzxcx.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">122678</span> <span class="o">(</span>120K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘taqjnfnuzxcx.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">taqjnfnuzxcx.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 119.80K --.-KB/s in 0.06s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span>2.00 MB/s<span class="o">)</span> - ‘taqjnfnuzxcx.png’ saved <span class="o">[</span>122678/122678<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/63/posts/qwqrubplfaau/g8vai2incgna.jpeg?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">88292</span> <span class="o">(</span>86K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fre 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 86.22K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span><span class="m">824</span> KB/s<span class="o">)</span> - ‘g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>88292/88292<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/63/avatar/o8jiNe.png?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">32037</span> <span class="o">(</span>31K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_ 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 31.29K --.-KB/s in 0.06s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span><span class="m">558</span> KB/s<span class="o">)</span> - ‘o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>32037/32037<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/31434/posts/e3oydlcfkr5e/figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">30356</span> <span class="o">(</span>30K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fre 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 29.64K --.-KB/s in 0.07s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span><span class="m">401</span> KB/s<span class="o">)</span> - ‘figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>30356/30356<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://files.virgool.io/upload/users/316150/posts/r8rhw88uh1xh/cs1ugyelv3zw.png?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">34459</span> <span class="o">(</span>34K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fres 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 33.65K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span><span class="m">399</span> KB/s<span class="o">)</span> - ‘cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>34459/34459<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://files.virgool.io/upload/users/316150/avatar/8sz7Rs.jpeg?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">14764</span> <span class="o">(</span>14K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 14.42K --.-KB/s in 0.007s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span>2.11 MB/s<span class="o">)</span> - ‘8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>14764/14764<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://virgool.io/js/commons.js?v<span class="o">=</span>v2.6.15 +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/javascript<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘commons.js?v<span class="o">=</span>v2.6.15’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">commons.js?v<span class="o">=</span>v2.6.15 <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 997.55K 337KB/s in 3.0s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:39 <span class="o">(</span><span class="m">337</span> KB/s<span class="o">)</span> - ‘commons.js?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>1021492<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:39-- https://virgool.io/js/main.js?v<span class="o">=</span>v2.6.15 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/javascript<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘main.js?v<span class="o">=</span>v2.6.15’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">main.js?v<span class="o">=</span>v2.6.15 <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 1.21M 580KB/s in 2.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:41 <span class="o">(</span><span class="m">580</span> KB/s<span class="o">)</span> - ‘main.js?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>1267632<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:41-- https://static.cloudflareinsights.com/beacon.min.js/v652eace1692a40cfa3763df669d7439c1639079717194 +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">13970</span> <span class="o">(</span>14K<span class="o">)</span> <span class="o">[</span>text/javascript<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘v652eace1692a40cfa3763df669d7439c1639079717194’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">v652eace1692a40cfa3763df669d743 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 13.64K --.-KB/s in 0.02s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:42 <span class="o">(</span><span class="m">600</span> KB/s<span class="o">)</span> - ‘v652eace1692a40cfa3763df669d7439c1639079717194’ saved <span class="o">[</span>13970/13970<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:42-- https://virgool.io/fonts/vazir/Vazir-Thin.ttf +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">98924</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Thin.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.61K 140KB/s in 0.7s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:43 <span class="o">(</span><span class="m">140</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.ttf’ saved <span class="o">[</span>98924/98924<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:43-- https://virgool.io/fonts/vazir/Vazir-Thin.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Thin.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.80K 276KB/s in 0.4s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:44 <span class="o">(</span><span class="m">276</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.eot?’ saved <span class="o">[</span>99120<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:44-- https://virgool.io/fonts/vazir/Vazir-Thin.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">54068</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Thin.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.80K --.-KB/s in 0.07s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:45 <span class="o">(</span><span class="m">770</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.woff’ saved <span class="o">[</span>54068/54068<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:45-- https://virgool.io/fonts/vazir/Vazir-Thin.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">43000</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Thin.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 41.99K --.-KB/s in 0.006s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:46 <span class="o">(</span>6.59 MB/s<span class="o">)</span> - ‘Vazir-Thin.woff2’ saved <span class="o">[</span>43000/43000<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:46-- https://virgool.io/fonts/vazir/Vazir-Light.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">105360</span> <span class="o">(</span>103K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Light.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 102.89K 478KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:46 <span class="o">(</span><span class="m">478</span> KB/s<span class="o">)</span> - ‘Vazir-Light.ttf’ saved <span class="o">[</span>105360/105360<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:46-- https://virgool.io/fonts/vazir/Vazir-Light.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Light.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 103.09K 470KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:47 <span class="o">(</span><span class="m">470</span> KB/s<span class="o">)</span> - ‘Vazir-Light.eot?’ saved <span class="o">[</span>105562<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:47-- https://virgool.io/fonts/vazir/Vazir-Light.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">59688</span> <span class="o">(</span>58K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Light.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 58.29K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:48 <span class="o">(</span><span class="m">758</span> KB/s<span class="o">)</span> - ‘Vazir-Light.woff’ saved <span class="o">[</span>59688/59688<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:48-- https://virgool.io/fonts/vazir/Vazir-Light.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">48168</span> <span class="o">(</span>47K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Light.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 47.04K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:48 <span class="o">(</span><span class="m">570</span> KB/s<span class="o">)</span> - ‘Vazir-Light.woff2’ saved <span class="o">[</span>48168/48168<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:48-- https://virgool.io/fonts/vazir/Vazir-Regular.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">98376</span> <span class="o">(</span>96K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Regular.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.07K 435KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:49 <span class="o">(</span><span class="m">435</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.ttf’ saved <span class="o">[</span>98376/98376<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:49-- https://virgool.io/fonts/vazir/Vazir-Regular.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Regular.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.26K 285KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:50 <span class="o">(</span><span class="m">285</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.eot?’ saved <span class="o">[</span>98574<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:50-- https://virgool.io/fonts/vazir/Vazir-Regular.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">53744</span> <span class="o">(</span>52K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Regular.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.48K --.-KB/s in 0.05s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:51 <span class="o">(</span>1.10 MB/s<span class="o">)</span> - ‘Vazir-Regular.woff’ saved <span class="o">[</span>53744/53744<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:51-- https://virgool.io/fonts/vazir/Vazir-Regular.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">42744</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Regular.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 41.74K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:51 <span class="o">(</span><span class="m">412</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.woff2’ saved <span class="o">[</span>42744/42744<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:51-- https://virgool.io/fonts/vazir/Vazir-Medium.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">98892</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Medium.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.57K 606KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:52 <span class="o">(</span><span class="m">606</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.ttf’ saved <span class="o">[</span>98892/98892<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:52-- https://virgool.io/fonts/vazir/Vazir-Medium.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Medium.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.78K 347KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:53 <span class="o">(</span><span class="m">347</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.eot?’ saved <span class="o">[</span>99100<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:53-- https://virgool.io/fonts/vazir/Vazir-Medium.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">54120</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Medium.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.85K 125KB/s in 0.4s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:54 <span class="o">(</span><span class="m">125</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.woff’ saved <span class="o">[</span>54120/54120<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:54-- https://virgool.io/fonts/vazir/Vazir-Medium.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">43152</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Medium.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.14K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:54 <span class="o">(</span><span class="m">541</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.woff2’ saved <span class="o">[</span>43152/43152<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:54-- https://virgool.io/fonts/vazir/Vazir-Bold.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">99840</span> <span class="o">(</span>98K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Bold.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 97.50K --.-KB/s in 0.04s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:55 <span class="o">(</span>2.61 MB/s<span class="o">)</span> - ‘Vazir-Bold.ttf’ saved <span class="o">[</span>99840/99840<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:55-- https://virgool.io/fonts/vazir/Vazir-Bold.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Bold.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 97.68K 560KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:56 <span class="o">(</span><span class="m">560</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.eot?’ saved <span class="o">[</span>100026<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:56-- https://virgool.io/fonts/vazir/Vazir-Bold.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">54560</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Bold.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 53.28K --.-KB/s in 0.06s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:56 <span class="o">(</span><span class="m">917</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.woff’ saved <span class="o">[</span>54560/54560<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:56-- https://virgool.io/fonts/vazir/Vazir-Bold.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">43604</span> <span class="o">(</span>43K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Bold.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.58K --.-KB/s in 0.06s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:57 <span class="o">(</span><span class="m">657</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.woff2’ saved <span class="o">[</span>43604/43604<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:57-- https://virgool.io/fonts/vazir/Vazir-Black.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">99772</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Black.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 97.43K --.-KB/s in 0.04s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:57 <span class="o">(</span>2.18 MB/s<span class="o">)</span> - ‘Vazir-Black.ttf’ saved <span class="o">[</span>99772/99772<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:57-- https://virgool.io/fonts/vazir/Vazir-Black.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Black.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 97.63K 478KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:58 <span class="o">(</span><span class="m">478</span> KB/s<span class="o">)</span> - ‘Vazir-Black.eot?’ saved <span class="o">[</span>99974<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:58-- https://virgool.io/fonts/vazir/Vazir-Black.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">54652</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Black.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 53.37K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:59 <span class="o">(</span><span class="m">691</span> KB/s<span class="o">)</span> - ‘Vazir-Black.woff’ saved <span class="o">[</span>54652/54652<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:59-- https://virgool.io/fonts/vazir/Vazir-Black.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">43332</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Black.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.32K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:00 <span class="o">(</span><span class="m">510</span> KB/s<span class="o">)</span> - ‘Vazir-Black.woff2’ saved <span class="o">[</span>43332/43332<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:00-- https://virgool.io/fonts/fontawesome/fa-solid-900.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">202616</span> <span class="o">(</span>198K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">fa-solid-900.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 197.87K 501KB/s in 0.4s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:01 <span class="o">(</span><span class="m">501</span> KB/s<span class="o">)</span> - ‘fa-solid-900.ttf’ saved <span class="o">[</span>202616/202616<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:01-- https://virgool.io/fonts/fontawesome/fa-solid-900.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">404</span> Not Found +</span></span><span class="line"><span class="cl">2022-01-18 06:42:01 ERROR 404: Not Found. +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:01-- https://virgool.io/fonts/fontawesome/fa-solid-900.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">103300</span> <span class="o">(</span>101K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">fa-solid-900.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 100.88K 358KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:02 <span class="o">(</span><span class="m">358</span> KB/s<span class="o">)</span> - ‘fa-solid-900.woff’ saved <span class="o">[</span>103300/103300<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:02-- https://virgool.io/fonts/fontawesome/fa-solid-900.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">79444</span> <span class="o">(</span>78K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">fa-solid-900.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 77.58K 394KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:03 <span class="o">(</span><span class="m">394</span> KB/s<span class="o">)</span> - ‘fa-solid-900.woff2’ saved <span class="o">[</span>79444/79444<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:03-- https://virgool.io/images/icons/plus.svg +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>image/svg+xml<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘plus.svg’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">plus.svg <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">942</span> --.-KB/s in 0.002s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:03 <span class="o">(</span><span class="m">383</span> KB/s<span class="o">)</span> - ‘plus.svg’ saved <span class="o">[</span>942<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:03-- https://virgool.io/images/icons/tick.svg +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>image/svg+xml<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘tick.svg’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">tick.svg <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">942</span> --.-KB/s in 0s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:04 <span class="o">(</span>89.8 MB/s<span class="o">)</span> - ‘tick.svg’ saved <span class="o">[</span>942<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:04-- https://virgool.io/images/typewriter.png +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">172558</span> <span class="o">(</span>169K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘typewriter.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">typewriter.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 168.51K 349KB/s in 0.5s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:05 <span class="o">(</span><span class="m">349</span> KB/s<span class="o">)</span> - ‘typewriter.png’ saved <span class="o">[</span>172558/172558<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:05-- https://virgool.test/images/download-audio.png +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:05-- https://virgool.test/images/download-ebook.png +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. +</span></span><span class="line"><span class="cl">FINISHED --2022-01-18 06:42:05-- +</span></span><span class="line"><span class="cl">Total wall clock time: 1m 2s +</span></span><span class="line"><span class="cl">Downloaded: <span class="m">54</span> files, 6.6M in 14s <span class="o">(</span><span class="m">479</span> KB/s<span class="o">)</span> +</span></span><span class="line"><span class="cl">Converting links in ns.html?id<span class="o">=</span>GTM-5GS688K.html... nothing to <span class="k">do</span>. +</span></span><span class="line"><span class="cl">Converting links in c3fVa.html... 38. +</span></span><span class="line"><span class="cl">31-7 +</span></span><span class="line"><span class="cl">Converting links in styles.css?v<span class="o">=</span>v2.6.15.css... 35. +</span></span><span class="line"><span class="cl">34-1 +</span></span><span class="line"><span class="cl">Converted links in <span class="m">3</span> files in 0.06 seconds. +</span></span></code></pre></td></tr></table> +</div> +</div> \ No newline at end of file diff --git "a/docs/tags/\330\247\330\263\331\206\331\276-\330\264\330\247\330\252-\332\257\330\261\331\201\330\252\331\206-\330\247\330\262-\333\214\332\251-\330\265\331\201\330\255\331\207-\330\263\330\247\333\214\330\252-\330\250\330\247-\330\252\331\205\330\247\331\205\333\214-\331\201\330\247\333\214\331\204-\331\207\330\247\333\214-\331\210\330\247\330\250\330\263\330\252\331\207\330\264/page/1/index.html" "b/docs/tags/\330\247\330\263\331\206\331\276-\330\264\330\247\330\252-\332\257\330\261\331\201\330\252\331\206-\330\247\330\262-\333\214\332\251-\330\265\331\201\330\255\331\207-\330\263\330\247\333\214\330\252-\330\250\330\247-\330\252\331\205\330\247\331\205\333\214-\331\201\330\247\333\214\331\204-\331\207\330\247\333\214-\331\210\330\247\330\250\330\263\330\252\331\207\330\264/page/1/index.html" index 4c6a153..e4e555e 100644 --- "a/docs/tags/\330\247\330\263\331\206\331\276-\330\264\330\247\330\252-\332\257\330\261\331\201\330\252\331\206-\330\247\330\262-\333\214\332\251-\330\265\331\201\330\255\331\207-\330\263\330\247\333\214\330\252-\330\250\330\247-\330\252\331\205\330\247\331\205\333\214-\331\201\330\247\333\214\331\204-\331\207\330\247\333\214-\331\210\330\247\330\250\330\263\330\252\331\207\330\264/page/1/index.html" +++ "b/docs/tags/\330\247\330\263\331\206\331\276-\330\264\330\247\330\252-\332\257\330\261\331\201\330\252\331\206-\330\247\330\262-\333\214\332\251-\330\265\331\201\330\255\331\207-\330\263\330\247\333\214\330\252-\330\250\330\247-\330\252\331\205\330\247\331\205\333\214-\331\201\330\247\333\214\331\204-\331\207\330\247\333\214-\331\210\330\247\330\250\330\263\330\252\331\207\330\264/page/1/index.html" @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4/ - - - - - - +https://bit-orbit.github.io/tags/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4/ + \ No newline at end of file diff --git "a/docs/tags/\330\247\330\263\331\206\331\276-\330\264\330\247\330\252-\332\257\330\261\331\201\330\252\331\206-\330\247\330\262-\333\214\332\251-\330\265\331\201\330\255\331\207-\330\263\330\247\333\214\330\252/index.html" "b/docs/tags/\330\247\330\263\331\206\331\276-\330\264\330\247\330\252-\332\257\330\261\331\201\330\252\331\206-\330\247\330\262-\333\214\332\251-\330\265\331\201\330\255\331\207-\330\263\330\247\333\214\330\252/index.html" index 2abd624..5928c2b 100644 --- "a/docs/tags/\330\247\330\263\331\206\331\276-\330\264\330\247\330\252-\332\257\330\261\331\201\330\252\331\206-\330\247\330\262-\333\214\332\251-\330\265\331\201\330\255\331\207-\330\263\330\247\333\214\330\252/index.html" +++ "b/docs/tags/\330\247\330\263\331\206\331\276-\330\264\330\247\330\252-\332\257\330\261\331\201\330\252\331\206-\330\247\330\262-\333\214\332\251-\330\265\331\201\330\255\331\207-\330\263\330\247\333\214\330\252/index.html" @@ -1,559 +1,37 @@ - - - - -Tag: اسنپ شات گرفتن از یک صفحه سایت - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

اسنپ شات گرفتن از یک صفحه سایت

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: اسنپ شات گرفتن از یک صفحه سایت - bit-orbit + \ No newline at end of file diff --git "a/docs/tags/\330\247\330\263\331\206\331\276-\330\264\330\247\330\252-\332\257\330\261\331\201\330\252\331\206-\330\247\330\262-\333\214\332\251-\330\265\331\201\330\255\331\207-\330\263\330\247\333\214\330\252/index.xml" "b/docs/tags/\330\247\330\263\331\206\331\276-\330\264\330\247\330\252-\332\257\330\261\331\201\330\252\331\206-\330\247\330\262-\333\214\332\251-\330\265\331\201\330\255\331\207-\330\263\330\247\333\214\330\252/index.xml" index 4fa90fc..96a06c2 100644 --- "a/docs/tags/\330\247\330\263\331\206\331\276-\330\264\330\247\330\252-\332\257\330\261\331\201\330\252\331\206-\330\247\330\262-\333\214\332\251-\330\265\331\201\330\255\331\207-\330\263\330\247\333\214\330\252/index.xml" +++ "b/docs/tags/\330\247\330\263\331\206\331\276-\330\264\330\247\330\252-\332\257\330\261\331\201\330\252\331\206-\330\247\330\262-\333\214\332\251-\330\265\331\201\330\255\331\207-\330\263\330\247\333\214\330\252/index.xml" @@ -1,33 +1,19 @@ - - - - اسنپ شات گرفتن از یک صفحه سایت on bit-orbit - https://bit-orbit.github.io/tags/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA/ - Recent content in اسنپ شات گرفتن از یک صفحه سایت on bit-orbit - Hugo -- gohugo.io - fa - Mon, 17 Jan 2022 14:56:14 +0330 - اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش(عکس، استایل، جاوا اسکریپت) - https://bit-orbit.github.io/p/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4%D8%B9%DA%A9%D8%B3-%D8%A7%D8%B3%D8%AA%D8%A7%DB%8C%D9%84-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA/ - Mon, 17 Jan 2022 14:56:14 +0330 - - https://bit-orbit.github.io/p/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4%D8%B9%DA%A9%D8%B3-%D8%A7%D8%B3%D8%AA%D8%A7%DB%8C%D9%84-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA/ - <img src="https://bit-orbit.github.io/images/post/snp.jpg" alt="Featured image of post اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش(عکس، استایل، جاوا اسکریپت)" /><div dir='rtl' style='font-size:23px'> -<p>زمانی که مقاله یا پستی را می‌خوانم، گاهی احساس می‌کنم ممکنه یک مطلب را فراموش کنم. +اسنپ شات گرفتن از یک صفحه سایت on bit-orbithttps://bit-orbit.github.io/tags/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA/Recent content in اسنپ شات گرفتن از یک صفحه سایت on bit-orbitHugo -- gohugo.iofaMon, 17 Jan 2022 14:56:14 +0330اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش(عکس، استایل، جاوا اسکریپت)https://bit-orbit.github.io/p/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4%D8%B9%DA%A9%D8%B3-%D8%A7%D8%B3%D8%AA%D8%A7%DB%8C%D9%84-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA/Mon, 17 Jan 2022 14:56:14 +0330https://bit-orbit.github.io/p/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%D9%87%D8%B4%D8%B9%DA%A9%D8%B3-%D8%A7%D8%B3%D8%AA%D8%A7%DB%8C%D9%84-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA/<img src="https://bit-orbit.github.io/images/post/snp.jpg" alt="Featured image of post اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش(عکس، استایل، جاوا اسکریپت)" /><div dir='rtl' style='font-size:23px'> +<p>زمانی که مقاله یا پستی را می‌خوانم، گاهی احساس می‌کنم ممکنه یک مطلب را فراموش کنم. مثلا اگه مقاله‌ای از ویرگول درباره یک دستور لینوکس بخوانم، برای اینکه مطلبش را فراموش نکنم باید هرزگاهی به پست سر بزنم و مطالب را مرور کنم. اما فکر کنید مطلب درباره برنامه‌ای باشد که می‌توان با استفاده از آن سانسور را دور زد، -ویرگول احتمالا آن مطلب را حذف می‌کند.</p> -<ul> -<li> -<p>چه راهی برای ذخیره پست پشنهاد می‌کنید که بعدا بتوان آن را بارها مرور کرد؟</p> -</li> -<li> -<p>اگر پست از سایت منبع حذف شود، و یا حتی خود سایت دیگر در دسترس نباشد، -باز هم پستی که ذخیره کرده‌اید در دسترس است؟</p> -</li> -</ul> -<p>در این پست با استفاده از ابزار +ویرگول احتمالا آن مطلب را حذف می‌کند.</p> +<ul> +<li> +<p>چه راهی برای ذخیره پست پشنهاد می‌کنید که بعدا بتوان آن را بارها مرور کرد؟</p> +</li> +<li> +<p>اگر پست از سایت منبع حذف شود، و یا حتی خود سایت دیگر در دسترس نباشد، +باز هم پستی که ذخیره کرده‌اید در دسترس است؟</p> +</li> +</ul> +<p>در این پست با استفاده از ابزار wget یک پست را با تمامی وابستگی هایش مانند عکس ها، فایل های js، @@ -36,62 +22,62 @@ css دانلود می‌کنیم و روی سیستم خودمان ذخیره می‌کنیم تا حتی اگر سایت در دسترس نباشد و یا پست -از منبع حذف شد، پست به صورت افلاین در دسترس بماند.</p> -<hr> -<h3 id="wget">wget</h3> -<p>می‌دونید که +از منبع حذف شد، پست به صورت افلاین در دسترس بماند.</p> +<hr> +<h3 id="wget">wget +</h3><p>می‌دونید که wget یک ابزار پیشرفته برای دانلود فایله، قابلیت های زیادی که داره باعث شده بعد از سالها که ابزار های پیشرفته دانلود هم نوشته شدن، همچنان wget استفاده بشه. این برنامه روی اکثر توزیع های لینوکس به صورت دیفالت نصبه پس بیایید بدون تلف کردن وقت -سوییچ های مهم برای میرور کردن یک صفحه سایت رو برسی کنیم.</p> -<p></br></br></p> -<p><strong>Ⅰ.</strong> <code>--adjust-extension</code>, <code>-E</code></p> -<p>شاید شما هم سایتی هایی را دیده باشید که -<em>url</em> +سوییچ های مهم برای میرور کردن یک صفحه سایت رو برسی کنیم.</p> +<p></br></br></p> +<p><strong>Ⅰ.</strong> <code>--adjust-extension</code>, <code>-E</code></p> +<p>شاید شما هم سایتی هایی را دیده باشید که +<em>url</em> صفحه هایشان با پسوند -<code>.asp</code> +<code>.asp</code> به پایان می‌رسند. برای مثال نگاهی به -<a class="link" href="https://www.w3schools.com/python/default.asp" target="_blank" rel="noopener" - >این آدرس</a> +<a class="link" href="https://www.w3schools.com/python/default.asp" target="_blank" rel="noopener" +>این آدرس</a> بیاندازید -<em><a class="link" href="https://www.w3schools.com/python/default.asp" target="_blank" rel="noopener" - >https://www.w3schools.com/python/default.asp</a></em> +<em><a class="link" href="https://www.w3schools.com/python/default.asp" target="_blank" rel="noopener" +>https://www.w3schools.com/python/default.asp</a></em> همانطور که می‌بینید با -<em>asp</em> +<em>asp</em> به پایان می‌رسد. زمانی که شما این صفحه را دانلود کنید، این صفحه بجای پسوند -<em>html.</em> +<em>html.</em> با پسوند -<em>asp.</em> -ذخیره خواهد شد.</p> -<blockquote> -<p>به همین دلیل ما از این سوییچ استفاده می‌کنیم تا صفحه ها را +<em>asp.</em> +ذخیره خواهد شد.</p> +<blockquote> +<p>به همین دلیل ما از این سوییچ استفاده می‌کنیم تا صفحه ها را با پسوند -<em>html.</em> -ذخیره کنیم.</p> -</blockquote> -<div dir='ltr'> -</br> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span><span class="lnt">3 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ https://example.com/some/where -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl"><span class="c1"># where.html</span> -</span></span></code></pre></td></tr></table> -</div> -</div></div> -<p></br></br></p> -<p><strong>Ⅱ.</strong> <code>--span-hosts</code>, <code>-H</code></p> -<p>اگر حتی فقط یک صفحه را میرور می‌کنیم، آن صفحه ممکن است به فایل های خارج از سایت +<em>html.</em> +ذخیره کنیم.</p> +</blockquote> +<div dir='ltr'> +</br> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ https://example.com/some/where +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="c1"># where.html</span> +</span></span></code></pre></td></tr></table> +</div> +</div></div> +<p></br></br></p> +<p><strong>Ⅱ.</strong> <code>--span-hosts</code>, <code>-H</code></p> +<p>اگر حتی فقط یک صفحه را میرور می‌کنیم، آن صفحه ممکن است به فایل های خارج از سایت که به روی یک CDN قرار گرفته اند @@ -99,1253 +85,1249 @@ CDN style sheet ها. از اینرو وقتی شما یک صفحه را میرور می‌کنید wget -فایل های خارج از سایت را دانلود نخواهد کرد.</p> -<blockquote> -<p>پوشش دادن فایل های خارج از سایت با استفاده از این سوییچ انجام داده می‌شود. +فایل های خارج از سایت را دانلود نخواهد کرد.</p> +<blockquote> +<p>پوشش دادن فایل های خارج از سایت با استفاده از این سوییچ انجام داده می‌شود. وقتی این سوییچ را روشن کنید wget همه لینک ها از جمله لینک هایی زیر دامنه را هم دانلود خواهد کرد، مگر اینکه عمق -پوشش دادن را محدود کنید.</p> -</blockquote> -<p></br></br></p> -<p><strong>Ⅲ.</strong> <code>--convert-links</code>, <code>-k</code></p> -<p>یک صفحه را که میرور کردیم با توجه به اینکه فایل های پیشیاز مثل عکس و استایل ها را +پوشش دادن را محدود کنید.</p> +</blockquote> +<p></br></br></p> +<p><strong>Ⅲ.</strong> <code>--convert-links</code>, <code>-k</code></p> +<p>یک صفحه را که میرور کردیم با توجه به اینکه فایل های پیشیاز مثل عکس و استایل ها را هم دانلود کردیم، وقتی فایل را با مرورگر باز کنیم همچنان صفحه html ما به فایل های داخل سایت منبع لینک شده است و فایل های پیشنازش را حتی با اینکه -روی سیستم داریم، باز هم از آدرس خارجی دریافت می‌کند و نمایش می‌دهد.</p> -<blockquote> -<p>برای اینکه یک صفحه فایل های پیشنیازش را از فایل هایی که در کنار صفحه اصلی دانلود +روی سیستم داریم، باز هم از آدرس خارجی دریافت می‌کند و نمایش می‌دهد.</p> +<blockquote> +<p>برای اینکه یک صفحه فایل های پیشنیازش را از فایل هایی که در کنار صفحه اصلی دانلود کرده است بگیرد، از این سوییچ استفاده می‌کنیم. این سوییچ تمامی لینک ها را به -لینک های داخلی تبدیل می‌کند و صفحه موقع لود شدن از فایل های داخلی استفاده می‌کند.</p> -</blockquote> -<p></br></br></p> -<p><strong>Ⅳ.</strong> <code>--page-requisites</code>, <code>-p</code></p> -<blockquote> -<p>این سوییچ باعث می‌شود که +لینک های داخلی تبدیل می‌کند و صفحه موقع لود شدن از فایل های داخلی استفاده می‌کند.</p> +</blockquote> +<p></br></br></p> +<p><strong>Ⅳ.</strong> <code>--page-requisites</code>, <code>-p</code></p> +<blockquote> +<p>این سوییچ باعث می‌شود که wget تمامی فایل های ضروری برای درست نمایش داده شدن html -را دانلود کند. این فایل ها شامل عکس ها، استایل ها و یا صدا ها می‌شود.</p> -</blockquote> -<p></br></br></p> -<p><strong>Ⅴ.</strong> <code>--no-directories</code>, <code>-nd</code></p> -<p>به صورت پیشفرض زمانی که صفحه‌ای با این ادرس را دانلود کنیم</p> -<p><code>https://example.com/some/where/page.html</code></p> -<p>برنامه +را دانلود کند. این فایل ها شامل عکس ها، استایل ها و یا صدا ها می‌شود.</p> +</blockquote> +<p></br></br></p> +<p><strong>Ⅴ.</strong> <code>--no-directories</code>, <code>-nd</code></p> +<p>به صورت پیشفرض زمانی که صفحه‌ای با این ادرس را دانلود کنیم</p> +<p><code>https://example.com/some/where/page.html</code></p> +<p>برنامه wget -این صفحه و فایل های مورد نیازش را به این صورت ذخیره خواهد کرد</p> -<p><code>some/where/page.html/.</code></p> -<p>اما با استفاده از سوییچ -<code>nd-</code> -آن صفحه و فایل های مورد نیازش فقط داخل یک دایرکتوری ذخیره خواهد شد. به این صورت</p> -<p><code>page.html/.</code></p> -<blockquote> -<p>با فعال کردن این سوییچ +این صفحه و فایل های مورد نیازش را به این صورت ذخیره خواهد کرد</p> +<p><code>some/where/page.html/.</code></p> +<p>اما با استفاده از سوییچ +<code>nd-</code> +آن صفحه و فایل های مورد نیازش فقط داخل یک دایرکتوری ذخیره خواهد شد. به این صورت</p> +<p><code>page.html/.</code></p> +<blockquote> +<p>با فعال کردن این سوییچ wget صفحه و فایل های پیشنیاز را داخل دایرکتوری فعلی ذخیره خواهد کرد. و اگر -نام یک فایل بیش از یکبار تکرار شود، به نام فایل پسوند اضافه خواهد شد.</p> -</blockquote> -<p></br></br></p> -<h3 id="مثال-کاربردی-و-خروجی">مثال کاربردی و خروجی</h3> -<ul> -<li>برای مثال من یک -<a class="link" href="https://vrgl.ir/c3fVa" target="_blank" rel="noopener" - >پست توی ویرگول</a> +نام یک فایل بیش از یکبار تکرار شود، به نام فایل پسوند اضافه خواهد شد.</p> +</blockquote> +<p></br></br></p> +<h3 id="مثال-کاربردی-و-خروجی">مثال کاربردی و خروجی +</h3><ul> +<li>برای مثال من یک +<a class="link" href="https://vrgl.ir/c3fVa" target="_blank" rel="noopener" +>پست توی ویرگول</a> که آموزش الگوریتم RSA -هست رو دانلود می‌کنم.</li> -</ul> -</br> -</div> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt"> 10 -</span><span class="lnt"> 11 -</span><span class="lnt"> 12 -</span><span class="lnt"> 13 -</span><span class="lnt"> 14 -</span><span class="lnt"> 15 -</span><span class="lnt"> 16 -</span><span class="lnt"> 17 -</span><span class="lnt"> 18 -</span><span class="lnt"> 19 -</span><span class="lnt"> 20 -</span><span class="lnt"> 21 -</span><span class="lnt"> 22 -</span><span class="lnt"> 23 -</span><span class="lnt"> 24 -</span><span class="lnt"> 25 -</span><span class="lnt"> 26 -</span><span class="lnt"> 27 -</span><span class="lnt"> 28 -</span><span class="lnt"> 29 -</span><span class="lnt"> 30 -</span><span class="lnt"> 31 -</span><span class="lnt"> 32 -</span><span class="lnt"> 33 -</span><span class="lnt"> 34 -</span><span class="lnt"> 35 -</span><span class="lnt"> 36 -</span><span class="lnt"> 37 -</span><span class="lnt"> 38 -</span><span class="lnt"> 39 -</span><span class="lnt"> 40 -</span><span class="lnt"> 41 -</span><span class="lnt"> 42 -</span><span class="lnt"> 43 -</span><span class="lnt"> 44 -</span><span class="lnt"> 45 -</span><span class="lnt"> 46 -</span><span class="lnt"> 47 -</span><span class="lnt"> 48 -</span><span class="lnt"> 49 -</span><span class="lnt"> 50 -</span><span class="lnt"> 51 -</span><span class="lnt"> 52 -</span><span class="lnt"> 53 -</span><span class="lnt"> 54 -</span><span class="lnt"> 55 -</span><span class="lnt"> 56 -</span><span class="lnt"> 57 -</span><span class="lnt"> 58 -</span><span class="lnt"> 59 -</span><span class="lnt"> 60 -</span><span class="lnt"> 61 -</span><span class="lnt"> 62 -</span><span class="lnt"> 63 -</span><span class="lnt"> 64 -</span><span class="lnt"> 65 -</span><span class="lnt"> 66 -</span><span class="lnt"> 67 -</span><span class="lnt"> 68 -</span><span class="lnt"> 69 -</span><span class="lnt"> 70 -</span><span class="lnt"> 71 -</span><span class="lnt"> 72 -</span><span class="lnt"> 73 -</span><span class="lnt"> 74 -</span><span class="lnt"> 75 -</span><span class="lnt"> 76 -</span><span class="lnt"> 77 -</span><span class="lnt"> 78 -</span><span class="lnt"> 79 -</span><span class="lnt"> 80 -</span><span class="lnt"> 81 -</span><span class="lnt"> 82 -</span><span class="lnt"> 83 -</span><span class="lnt"> 84 -</span><span class="lnt"> 85 -</span><span class="lnt"> 86 -</span><span class="lnt"> 87 -</span><span class="lnt"> 88 -</span><span class="lnt"> 89 -</span><span class="lnt"> 90 -</span><span class="lnt"> 91 -</span><span class="lnt"> 92 -</span><span class="lnt"> 93 -</span><span class="lnt"> 94 -</span><span class="lnt"> 95 -</span><span class="lnt"> 96 -</span><span class="lnt"> 97 -</span><span class="lnt"> 98 -</span><span class="lnt"> 99 -</span><span class="lnt">100 -</span><span class="lnt">101 -</span><span class="lnt">102 -</span><span class="lnt">103 -</span><span class="lnt">104 -</span><span class="lnt">105 -</span><span class="lnt">106 -</span><span class="lnt">107 -</span><span class="lnt">108 -</span><span class="lnt">109 -</span><span class="lnt">110 -</span><span class="lnt">111 -</span><span class="lnt">112 -</span><span class="lnt">113 -</span><span class="lnt">114 -</span><span class="lnt">115 -</span><span class="lnt">116 -</span><span class="lnt">117 -</span><span class="lnt">118 -</span><span class="lnt">119 -</span><span class="lnt">120 -</span><span class="lnt">121 -</span><span class="lnt">122 -</span><span class="lnt">123 -</span><span class="lnt">124 -</span><span class="lnt">125 -</span><span class="lnt">126 -</span><span class="lnt">127 -</span><span class="lnt">128 -</span><span class="lnt">129 -</span><span class="lnt">130 -</span><span class="lnt">131 -</span><span class="lnt">132 -</span><span class="lnt">133 -</span><span class="lnt">134 -</span><span class="lnt">135 -</span><span class="lnt">136 -</span><span class="lnt">137 -</span><span class="lnt">138 -</span><span class="lnt">139 -</span><span class="lnt">140 -</span><span class="lnt">141 -</span><span class="lnt">142 -</span><span class="lnt">143 -</span><span class="lnt">144 -</span><span class="lnt">145 -</span><span class="lnt">146 -</span><span class="lnt">147 -</span><span class="lnt">148 -</span><span class="lnt">149 -</span><span class="lnt">150 -</span><span class="lnt">151 -</span><span class="lnt">152 -</span><span class="lnt">153 -</span><span class="lnt">154 -</span><span class="lnt">155 -</span><span class="lnt">156 -</span><span class="lnt">157 -</span><span class="lnt">158 -</span><span class="lnt">159 -</span><span class="lnt">160 -</span><span class="lnt">161 -</span><span class="lnt">162 -</span><span class="lnt">163 -</span><span class="lnt">164 -</span><span class="lnt">165 -</span><span class="lnt">166 -</span><span class="lnt">167 -</span><span class="lnt">168 -</span><span class="lnt">169 -</span><span class="lnt">170 -</span><span class="lnt">171 -</span><span class="lnt">172 -</span><span class="lnt">173 -</span><span class="lnt">174 -</span><span class="lnt">175 -</span><span class="lnt">176 -</span><span class="lnt">177 -</span><span class="lnt">178 -</span><span class="lnt">179 -</span><span class="lnt">180 -</span><span class="lnt">181 -</span><span class="lnt">182 -</span><span class="lnt">183 -</span><span class="lnt">184 -</span><span class="lnt">185 -</span><span class="lnt">186 -</span><span class="lnt">187 -</span><span class="lnt">188 -</span><span class="lnt">189 -</span><span class="lnt">190 -</span><span class="lnt">191 -</span><span class="lnt">192 -</span><span class="lnt">193 -</span><span class="lnt">194 -</span><span class="lnt">195 -</span><span class="lnt">196 -</span><span class="lnt">197 -</span><span class="lnt">198 -</span><span class="lnt">199 -</span><span class="lnt">200 -</span><span class="lnt">201 -</span><span class="lnt">202 -</span><span class="lnt">203 -</span><span class="lnt">204 -</span><span class="lnt">205 -</span><span class="lnt">206 -</span><span class="lnt">207 -</span><span class="lnt">208 -</span><span class="lnt">209 -</span><span class="lnt">210 -</span><span class="lnt">211 -</span><span class="lnt">212 -</span><span class="lnt">213 -</span><span class="lnt">214 -</span><span class="lnt">215 -</span><span class="lnt">216 -</span><span class="lnt">217 -</span><span class="lnt">218 -</span><span class="lnt">219 -</span><span class="lnt">220 -</span><span class="lnt">221 -</span><span class="lnt">222 -</span><span class="lnt">223 -</span><span class="lnt">224 -</span><span class="lnt">225 -</span><span class="lnt">226 -</span><span class="lnt">227 -</span><span class="lnt">228 -</span><span class="lnt">229 -</span><span class="lnt">230 -</span><span class="lnt">231 -</span><span class="lnt">232 -</span><span class="lnt">233 -</span><span class="lnt">234 -</span><span class="lnt">235 -</span><span class="lnt">236 -</span><span class="lnt">237 -</span><span class="lnt">238 -</span><span class="lnt">239 -</span><span class="lnt">240 -</span><span class="lnt">241 -</span><span class="lnt">242 -</span><span class="lnt">243 -</span><span class="lnt">244 -</span><span class="lnt">245 -</span><span class="lnt">246 -</span><span class="lnt">247 -</span><span class="lnt">248 -</span><span class="lnt">249 -</span><span class="lnt">250 -</span><span class="lnt">251 -</span><span class="lnt">252 -</span><span class="lnt">253 -</span><span class="lnt">254 -</span><span class="lnt">255 -</span><span class="lnt">256 -</span><span class="lnt">257 -</span><span class="lnt">258 -</span><span class="lnt">259 -</span><span class="lnt">260 -</span><span class="lnt">261 -</span><span class="lnt">262 -</span><span class="lnt">263 -</span><span class="lnt">264 -</span><span class="lnt">265 -</span><span class="lnt">266 -</span><span class="lnt">267 -</span><span class="lnt">268 -</span><span class="lnt">269 -</span><span class="lnt">270 -</span><span class="lnt">271 -</span><span class="lnt">272 -</span><span class="lnt">273 -</span><span class="lnt">274 -</span><span class="lnt">275 -</span><span class="lnt">276 -</span><span class="lnt">277 -</span><span class="lnt">278 -</span><span class="lnt">279 -</span><span class="lnt">280 -</span><span class="lnt">281 -</span><span class="lnt">282 -</span><span class="lnt">283 -</span><span class="lnt">284 -</span><span class="lnt">285 -</span><span class="lnt">286 -</span><span class="lnt">287 -</span><span class="lnt">288 -</span><span class="lnt">289 -</span><span class="lnt">290 -</span><span class="lnt">291 -</span><span class="lnt">292 -</span><span class="lnt">293 -</span><span class="lnt">294 -</span><span class="lnt">295 -</span><span class="lnt">296 -</span><span class="lnt">297 -</span><span class="lnt">298 -</span><span class="lnt">299 -</span><span class="lnt">300 -</span><span class="lnt">301 -</span><span class="lnt">302 -</span><span class="lnt">303 -</span><span class="lnt">304 -</span><span class="lnt">305 -</span><span class="lnt">306 -</span><span class="lnt">307 -</span><span class="lnt">308 -</span><span class="lnt">309 -</span><span class="lnt">310 -</span><span class="lnt">311 -</span><span class="lnt">312 -</span><span class="lnt">313 -</span><span class="lnt">314 -</span><span class="lnt">315 -</span><span class="lnt">316 -</span><span class="lnt">317 -</span><span class="lnt">318 -</span><span class="lnt">319 -</span><span class="lnt">320 -</span><span class="lnt">321 -</span><span class="lnt">322 -</span><span class="lnt">323 -</span><span class="lnt">324 -</span><span class="lnt">325 -</span><span class="lnt">326 -</span><span class="lnt">327 -</span><span class="lnt">328 -</span><span class="lnt">329 -</span><span class="lnt">330 -</span><span class="lnt">331 -</span><span class="lnt">332 -</span><span class="lnt">333 -</span><span class="lnt">334 -</span><span class="lnt">335 -</span><span class="lnt">336 -</span><span class="lnt">337 -</span><span class="lnt">338 -</span><span class="lnt">339 -</span><span class="lnt">340 -</span><span class="lnt">341 -</span><span class="lnt">342 -</span><span class="lnt">343 -</span><span class="lnt">344 -</span><span class="lnt">345 -</span><span class="lnt">346 -</span><span class="lnt">347 -</span><span class="lnt">348 -</span><span class="lnt">349 -</span><span class="lnt">350 -</span><span class="lnt">351 -</span><span class="lnt">352 -</span><span class="lnt">353 -</span><span class="lnt">354 -</span><span class="lnt">355 -</span><span class="lnt">356 -</span><span class="lnt">357 -</span><span class="lnt">358 -</span><span class="lnt">359 -</span><span class="lnt">360 -</span><span class="lnt">361 -</span><span class="lnt">362 -</span><span class="lnt">363 -</span><span class="lnt">364 -</span><span class="lnt">365 -</span><span class="lnt">366 -</span><span class="lnt">367 -</span><span class="lnt">368 -</span><span class="lnt">369 -</span><span class="lnt">370 -</span><span class="lnt">371 -</span><span class="lnt">372 -</span><span class="lnt">373 -</span><span class="lnt">374 -</span><span class="lnt">375 -</span><span class="lnt">376 -</span><span class="lnt">377 -</span><span class="lnt">378 -</span><span class="lnt">379 -</span><span class="lnt">380 -</span><span class="lnt">381 -</span><span class="lnt">382 -</span><span class="lnt">383 -</span><span class="lnt">384 -</span><span class="lnt">385 -</span><span class="lnt">386 -</span><span class="lnt">387 -</span><span class="lnt">388 -</span><span class="lnt">389 -</span><span class="lnt">390 -</span><span class="lnt">391 -</span><span class="lnt">392 -</span><span class="lnt">393 -</span><span class="lnt">394 -</span><span class="lnt">395 -</span><span class="lnt">396 -</span><span class="lnt">397 -</span><span class="lnt">398 -</span><span class="lnt">399 -</span><span class="lnt">400 -</span><span class="lnt">401 -</span><span class="lnt">402 -</span><span class="lnt">403 -</span><span class="lnt">404 -</span><span class="lnt">405 -</span><span class="lnt">406 -</span><span class="lnt">407 -</span><span class="lnt">408 -</span><span class="lnt">409 -</span><span class="lnt">410 -</span><span class="lnt">411 -</span><span class="lnt">412 -</span><span class="lnt">413 -</span><span class="lnt">414 -</span><span class="lnt">415 -</span><span class="lnt">416 -</span><span class="lnt">417 -</span><span class="lnt">418 -</span><span class="lnt">419 -</span><span class="lnt">420 -</span><span class="lnt">421 -</span><span class="lnt">422 -</span><span class="lnt">423 -</span><span class="lnt">424 -</span><span class="lnt">425 -</span><span class="lnt">426 -</span><span class="lnt">427 -</span><span class="lnt">428 -</span><span class="lnt">429 -</span><span class="lnt">430 -</span><span class="lnt">431 -</span><span class="lnt">432 -</span><span class="lnt">433 -</span><span class="lnt">434 -</span><span class="lnt">435 -</span><span class="lnt">436 -</span><span class="lnt">437 -</span><span class="lnt">438 -</span><span class="lnt">439 -</span><span class="lnt">440 -</span><span class="lnt">441 -</span><span class="lnt">442 -</span><span class="lnt">443 -</span><span class="lnt">444 -</span><span class="lnt">445 -</span><span class="lnt">446 -</span><span class="lnt">447 -</span><span class="lnt">448 -</span><span class="lnt">449 -</span><span class="lnt">450 -</span><span class="lnt">451 -</span><span class="lnt">452 -</span><span class="lnt">453 -</span><span class="lnt">454 -</span><span class="lnt">455 -</span><span class="lnt">456 -</span><span class="lnt">457 -</span><span class="lnt">458 -</span><span class="lnt">459 -</span><span class="lnt">460 -</span><span class="lnt">461 -</span><span class="lnt">462 -</span><span class="lnt">463 -</span><span class="lnt">464 -</span><span class="lnt">465 -</span><span class="lnt">466 -</span><span class="lnt">467 -</span><span class="lnt">468 -</span><span class="lnt">469 -</span><span class="lnt">470 -</span><span class="lnt">471 -</span><span class="lnt">472 -</span><span class="lnt">473 -</span><span class="lnt">474 -</span><span class="lnt">475 -</span><span class="lnt">476 -</span><span class="lnt">477 -</span><span class="lnt">478 -</span><span class="lnt">479 -</span><span class="lnt">480 -</span><span class="lnt">481 -</span><span class="lnt">482 -</span><span class="lnt">483 -</span><span class="lnt">484 -</span><span class="lnt">485 -</span><span class="lnt">486 -</span><span class="lnt">487 -</span><span class="lnt">488 -</span><span class="lnt">489 -</span><span class="lnt">490 -</span><span class="lnt">491 -</span><span class="lnt">492 -</span><span class="lnt">493 -</span><span class="lnt">494 -</span><span class="lnt">495 -</span><span class="lnt">496 -</span><span class="lnt">497 -</span><span class="lnt">498 -</span><span class="lnt">499 -</span><span class="lnt">500 -</span><span class="lnt">501 -</span><span class="lnt">502 -</span><span class="lnt">503 -</span><span class="lnt">504 -</span><span class="lnt">505 -</span><span class="lnt">506 -</span><span class="lnt">507 -</span><span class="lnt">508 -</span><span class="lnt">509 -</span><span class="lnt">510 -</span><span class="lnt">511 -</span><span class="lnt">512 -</span><span class="lnt">513 -</span><span class="lnt">514 -</span><span class="lnt">515 -</span><span class="lnt">516 -</span><span class="lnt">517 -</span><span class="lnt">518 -</span><span class="lnt">519 -</span><span class="lnt">520 -</span><span class="lnt">521 -</span><span class="lnt">522 -</span><span class="lnt">523 -</span><span class="lnt">524 -</span><span class="lnt">525 -</span><span class="lnt">526 -</span><span class="lnt">527 -</span><span class="lnt">528 -</span><span class="lnt">529 -</span><span class="lnt">530 -</span><span class="lnt">531 -</span><span class="lnt">532 -</span><span class="lnt">533 -</span><span class="lnt">534 -</span><span class="lnt">535 -</span><span class="lnt">536 -</span><span class="lnt">537 -</span><span class="lnt">538 -</span><span class="lnt">539 -</span><span class="lnt">540 -</span><span class="lnt">541 -</span><span class="lnt">542 -</span><span class="lnt">543 -</span><span class="lnt">544 -</span><span class="lnt">545 -</span><span class="lnt">546 -</span><span class="lnt">547 -</span><span class="lnt">548 -</span><span class="lnt">549 -</span><span class="lnt">550 -</span><span class="lnt">551 -</span><span class="lnt">552 -</span><span class="lnt">553 -</span><span class="lnt">554 -</span><span class="lnt">555 -</span><span class="lnt">556 -</span><span class="lnt">557 -</span><span class="lnt">558 -</span><span class="lnt">559 -</span><span class="lnt">560 -</span><span class="lnt">561 -</span><span class="lnt">562 -</span><span class="lnt">563 -</span><span class="lnt">564 -</span><span class="lnt">565 -</span><span class="lnt">566 -</span><span class="lnt">567 -</span><span class="lnt">568 -</span><span class="lnt">569 -</span><span class="lnt">570 -</span><span class="lnt">571 -</span><span class="lnt">572 -</span><span class="lnt">573 -</span><span class="lnt">574 -</span><span class="lnt">575 -</span><span class="lnt">576 -</span><span class="lnt">577 -</span><span class="lnt">578 -</span><span class="lnt">579 -</span><span class="lnt">580 -</span><span class="lnt">581 -</span><span class="lnt">582 -</span><span class="lnt">583 -</span><span class="lnt">584 -</span><span class="lnt">585 -</span><span class="lnt">586 -</span><span class="lnt">587 -</span><span class="lnt">588 -</span><span class="lnt">589 -</span><span class="lnt">590 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">┌─<span class="o">[</span>loading<span class="o">]</span> <span class="o">[</span>/tmp/virgool<span class="o">]</span> <span class="o">[</span>0<span class="o">]</span> -</span></span><span class="line"><span class="cl">│ -</span></span><span class="line"><span class="cl">└──〉wget -nd -E -p -k -H https://vrgl.ir/c3fVa -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:03-- https://vrgl.ir/c3fVa -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">302</span> Found -</span></span><span class="line"><span class="cl">Location: https://virgool.io/@Novo/rsa-encryption-ao1poasym4cf <span class="o">[</span>following<span class="o">]</span> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:04-- https://virgool.io/@Novo/rsa-encryption-ao1poasym4cf -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/html<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘c3fVa.html’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">c3fVa.html <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 61.30K 200KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:06 <span class="o">(</span><span class="m">200</span> KB/s<span class="o">)</span> - ‘c3fVa.html’ saved <span class="o">[</span>62773<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:06-- https://virgool.io/robots.txt -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>document<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘robots.txt’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">robots.txt <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">484</span> --.-KB/s in 0s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:07 <span class="o">(</span>85.7 MB/s<span class="o">)</span> - ‘robots.txt’ saved <span class="o">[</span>484<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:07-- https://www.googletagmanager.com/robots.txt -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">404</span> Not Found -</span></span><span class="line"><span class="cl">2022-01-18 06:41:08 ERROR 404: Not Found. -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:08-- https://files.virgool.io/robots.txt -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">403</span> Forbidden -</span></span><span class="line"><span class="cl">2022-01-18 06:41:09 ERROR 403: Forbidden. -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:09-- https://static.cloudflareinsights.com/robots.txt -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">522</span> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:26 ERROR 522: <span class="o">(</span>no description<span class="o">)</span>. -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:26-- https://virgool.io/images/favicon.png?v<span class="o">=</span>v2.6.15 -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">9855</span> <span class="o">(</span>9.6K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘favicon.png?v<span class="o">=</span>v2.6.15’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">favicon.png?v<span class="o">=</span>v2.6.15 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 9.62K --.-KB/s in 0.07s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:27 <span class="o">(</span><span class="m">130</span> KB/s<span class="o">)</span> - ‘favicon.png?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>9855/9855<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:27-- https://virgool.io/css/styles.css?v<span class="o">=</span>v2.6.15 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/css<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘styles.css?v<span class="o">=</span>v2.6.15.css’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">styles.css?v<span class="o">=</span>v2.6.15.css <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 903.60K 592KB/s in 1.5s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:28 <span class="o">(</span><span class="m">592</span> KB/s<span class="o">)</span> - ‘styles.css?v<span class="o">=</span>v2.6.15.css’ saved <span class="o">[</span>925284<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:28-- https://virgool.test/robots.txt -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:28-- https://www.googletagmanager.com/ns.html?id<span class="o">=</span>GTM-5GS688K -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/html<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘ns.html?id<span class="o">=</span>GTM-5GS688K.html’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">ns.html?id<span class="o">=</span>GTM-5GS688K.html <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">266</span> --.-KB/s in 0s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:29 <span class="o">(</span>29.4 MB/s<span class="o">)</span> - ‘ns.html?id<span class="o">=</span>GTM-5GS688K.html’ saved <span class="o">[</span>266<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:29-- https://files.virgool.io/upload/users/31434/avatar/1C4LLE.png?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">39194</span> <span class="o">(</span>38K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_ 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 38.28K 173KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:30 <span class="o">(</span><span class="m">173</span> KB/s<span class="o">)</span> - ‘1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>39194/39194<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:30-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/qhokakomwyb5.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">179870</span> <span class="o">(</span>176K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘qhokakomwyb5.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">qhokakomwyb5.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 175.65K 567KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">567</span> KB/s<span class="o">)</span> - ‘qhokakomwyb5.png’ saved <span class="o">[</span>179870/179870<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/v1xnwpnewfys.webp -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">12770</span> <span class="o">(</span>12K<span class="o">)</span> <span class="o">[</span>image/webp<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘v1xnwpnewfys.webp’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">v1xnwpnewfys.webp 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 12.47K --.-KB/s in 0.07s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">180</span> KB/s<span class="o">)</span> - ‘v1xnwpnewfys.webp’ saved <span class="o">[</span>12770/12770<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/d28hpu2detkl.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">92847</span> <span class="o">(</span>91K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘d28hpu2detkl.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">d28hpu2detkl.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 90.67K --.-KB/s in 0.09s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">969</span> KB/s<span class="o">)</span> - ‘d28hpu2detkl.png’ saved <span class="o">[</span>92847/92847<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/rhyykrc8azq0.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">17539</span> <span class="o">(</span>17K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘rhyykrc8azq0.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">rhyykrc8azq0.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 17.13K --.-KB/s in 0.007s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>2.47 MB/s<span class="o">)</span> - ‘rhyykrc8azq0.png’ saved <span class="o">[</span>17539/17539<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/fjtc1ydzkuse.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">108524</span> <span class="o">(</span>106K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘fjtc1ydzkuse.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">fjtc1ydzkuse.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 105.98K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>1.06 MB/s<span class="o">)</span> - ‘fjtc1ydzkuse.png’ saved <span class="o">[</span>108524/108524<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/gfqhgyp18oic.jpeg -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">132085</span> <span class="o">(</span>129K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘gfqhgyp18oic.jpeg’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">gfqhgyp18oic.jpeg 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 128.99K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>1.28 MB/s<span class="o">)</span> - ‘gfqhgyp18oic.jpeg’ saved <span class="o">[</span>132085/132085<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/me0mpjtdmyom.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">113489</span> <span class="o">(</span>111K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘me0mpjtdmyom.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">me0mpjtdmyom.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 110.83K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span><span class="m">814</span> KB/s<span class="o">)</span> - ‘me0mpjtdmyom.png’ saved <span class="o">[</span>113489/113489<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/of7krju6oqzk.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">105746</span> <span class="o">(</span>103K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘of7krju6oqzk.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">of7krju6oqzk.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 103.27K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span>1.25 MB/s<span class="o">)</span> - ‘of7krju6oqzk.png’ saved <span class="o">[</span>105746/105746<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/oqwhflg4gbnq.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">120994</span> <span class="o">(</span>118K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘oqwhflg4gbnq.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">oqwhflg4gbnq.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 118.16K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span>1.14 MB/s<span class="o">)</span> - ‘oqwhflg4gbnq.png’ saved <span class="o">[</span>120994/120994<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/taqjnfnuzxcx.png -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">122678</span> <span class="o">(</span>120K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘taqjnfnuzxcx.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">taqjnfnuzxcx.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 119.80K --.-KB/s in 0.06s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span>2.00 MB/s<span class="o">)</span> - ‘taqjnfnuzxcx.png’ saved <span class="o">[</span>122678/122678<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/63/posts/qwqrubplfaau/g8vai2incgna.jpeg?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">88292</span> <span class="o">(</span>86K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fre 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 86.22K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span><span class="m">824</span> KB/s<span class="o">)</span> - ‘g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>88292/88292<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/63/avatar/o8jiNe.png?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">32037</span> <span class="o">(</span>31K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_ 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 31.29K --.-KB/s in 0.06s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span><span class="m">558</span> KB/s<span class="o">)</span> - ‘o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>32037/32037<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/31434/posts/e3oydlcfkr5e/figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">30356</span> <span class="o">(</span>30K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fre 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 29.64K --.-KB/s in 0.07s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span><span class="m">401</span> KB/s<span class="o">)</span> - ‘figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>30356/30356<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://files.virgool.io/upload/users/316150/posts/r8rhw88uh1xh/cs1ugyelv3zw.png?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">34459</span> <span class="o">(</span>34K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fres 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 33.65K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span><span class="m">399</span> KB/s<span class="o">)</span> - ‘cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>34459/34459<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://files.virgool.io/upload/users/316150/avatar/8sz7Rs.jpeg?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 -</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">14764</span> <span class="o">(</span>14K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 14.42K --.-KB/s in 0.007s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span>2.11 MB/s<span class="o">)</span> - ‘8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>14764/14764<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://virgool.io/js/commons.js?v<span class="o">=</span>v2.6.15 -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/javascript<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘commons.js?v<span class="o">=</span>v2.6.15’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">commons.js?v<span class="o">=</span>v2.6.15 <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 997.55K 337KB/s in 3.0s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:39 <span class="o">(</span><span class="m">337</span> KB/s<span class="o">)</span> - ‘commons.js?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>1021492<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:39-- https://virgool.io/js/main.js?v<span class="o">=</span>v2.6.15 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/javascript<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘main.js?v<span class="o">=</span>v2.6.15’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">main.js?v<span class="o">=</span>v2.6.15 <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 1.21M 580KB/s in 2.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:41 <span class="o">(</span><span class="m">580</span> KB/s<span class="o">)</span> - ‘main.js?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>1267632<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:41-- https://static.cloudflareinsights.com/beacon.min.js/v652eace1692a40cfa3763df669d7439c1639079717194 -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">13970</span> <span class="o">(</span>14K<span class="o">)</span> <span class="o">[</span>text/javascript<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘v652eace1692a40cfa3763df669d7439c1639079717194’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">v652eace1692a40cfa3763df669d743 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 13.64K --.-KB/s in 0.02s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:42 <span class="o">(</span><span class="m">600</span> KB/s<span class="o">)</span> - ‘v652eace1692a40cfa3763df669d7439c1639079717194’ saved <span class="o">[</span>13970/13970<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:42-- https://virgool.io/fonts/vazir/Vazir-Thin.ttf -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">98924</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Thin.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.61K 140KB/s in 0.7s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:43 <span class="o">(</span><span class="m">140</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.ttf’ saved <span class="o">[</span>98924/98924<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:43-- https://virgool.io/fonts/vazir/Vazir-Thin.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Thin.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.80K 276KB/s in 0.4s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:44 <span class="o">(</span><span class="m">276</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.eot?’ saved <span class="o">[</span>99120<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:44-- https://virgool.io/fonts/vazir/Vazir-Thin.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">54068</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Thin.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.80K --.-KB/s in 0.07s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:45 <span class="o">(</span><span class="m">770</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.woff’ saved <span class="o">[</span>54068/54068<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:45-- https://virgool.io/fonts/vazir/Vazir-Thin.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">43000</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Thin.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 41.99K --.-KB/s in 0.006s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:46 <span class="o">(</span>6.59 MB/s<span class="o">)</span> - ‘Vazir-Thin.woff2’ saved <span class="o">[</span>43000/43000<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:46-- https://virgool.io/fonts/vazir/Vazir-Light.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">105360</span> <span class="o">(</span>103K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Light.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 102.89K 478KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:46 <span class="o">(</span><span class="m">478</span> KB/s<span class="o">)</span> - ‘Vazir-Light.ttf’ saved <span class="o">[</span>105360/105360<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:46-- https://virgool.io/fonts/vazir/Vazir-Light.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Light.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 103.09K 470KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:47 <span class="o">(</span><span class="m">470</span> KB/s<span class="o">)</span> - ‘Vazir-Light.eot?’ saved <span class="o">[</span>105562<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:47-- https://virgool.io/fonts/vazir/Vazir-Light.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">59688</span> <span class="o">(</span>58K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Light.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 58.29K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:48 <span class="o">(</span><span class="m">758</span> KB/s<span class="o">)</span> - ‘Vazir-Light.woff’ saved <span class="o">[</span>59688/59688<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:48-- https://virgool.io/fonts/vazir/Vazir-Light.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">48168</span> <span class="o">(</span>47K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Light.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 47.04K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:48 <span class="o">(</span><span class="m">570</span> KB/s<span class="o">)</span> - ‘Vazir-Light.woff2’ saved <span class="o">[</span>48168/48168<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:48-- https://virgool.io/fonts/vazir/Vazir-Regular.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">98376</span> <span class="o">(</span>96K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Regular.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.07K 435KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:49 <span class="o">(</span><span class="m">435</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.ttf’ saved <span class="o">[</span>98376/98376<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:49-- https://virgool.io/fonts/vazir/Vazir-Regular.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Regular.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.26K 285KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:50 <span class="o">(</span><span class="m">285</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.eot?’ saved <span class="o">[</span>98574<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:50-- https://virgool.io/fonts/vazir/Vazir-Regular.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">53744</span> <span class="o">(</span>52K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Regular.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.48K --.-KB/s in 0.05s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:51 <span class="o">(</span>1.10 MB/s<span class="o">)</span> - ‘Vazir-Regular.woff’ saved <span class="o">[</span>53744/53744<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:51-- https://virgool.io/fonts/vazir/Vazir-Regular.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">42744</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Regular.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 41.74K --.-KB/s in 0.1s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:51 <span class="o">(</span><span class="m">412</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.woff2’ saved <span class="o">[</span>42744/42744<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:51-- https://virgool.io/fonts/vazir/Vazir-Medium.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">98892</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Medium.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.57K 606KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:52 <span class="o">(</span><span class="m">606</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.ttf’ saved <span class="o">[</span>98892/98892<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:52-- https://virgool.io/fonts/vazir/Vazir-Medium.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Medium.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.78K 347KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:53 <span class="o">(</span><span class="m">347</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.eot?’ saved <span class="o">[</span>99100<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:53-- https://virgool.io/fonts/vazir/Vazir-Medium.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">54120</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Medium.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.85K 125KB/s in 0.4s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:54 <span class="o">(</span><span class="m">125</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.woff’ saved <span class="o">[</span>54120/54120<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:54-- https://virgool.io/fonts/vazir/Vazir-Medium.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">43152</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Medium.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.14K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:54 <span class="o">(</span><span class="m">541</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.woff2’ saved <span class="o">[</span>43152/43152<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:54-- https://virgool.io/fonts/vazir/Vazir-Bold.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">99840</span> <span class="o">(</span>98K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Bold.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 97.50K --.-KB/s in 0.04s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:55 <span class="o">(</span>2.61 MB/s<span class="o">)</span> - ‘Vazir-Bold.ttf’ saved <span class="o">[</span>99840/99840<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:55-- https://virgool.io/fonts/vazir/Vazir-Bold.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Bold.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 97.68K 560KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:56 <span class="o">(</span><span class="m">560</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.eot?’ saved <span class="o">[</span>100026<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:56-- https://virgool.io/fonts/vazir/Vazir-Bold.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">54560</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Bold.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 53.28K --.-KB/s in 0.06s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:56 <span class="o">(</span><span class="m">917</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.woff’ saved <span class="o">[</span>54560/54560<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:56-- https://virgool.io/fonts/vazir/Vazir-Bold.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">43604</span> <span class="o">(</span>43K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Bold.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.58K --.-KB/s in 0.06s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:57 <span class="o">(</span><span class="m">657</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.woff2’ saved <span class="o">[</span>43604/43604<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:57-- https://virgool.io/fonts/vazir/Vazir-Black.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">99772</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Black.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 97.43K --.-KB/s in 0.04s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:57 <span class="o">(</span>2.18 MB/s<span class="o">)</span> - ‘Vazir-Black.ttf’ saved <span class="o">[</span>99772/99772<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:57-- https://virgool.io/fonts/vazir/Vazir-Black.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.eot?’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Black.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 97.63K 478KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:58 <span class="o">(</span><span class="m">478</span> KB/s<span class="o">)</span> - ‘Vazir-Black.eot?’ saved <span class="o">[</span>99974<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:58-- https://virgool.io/fonts/vazir/Vazir-Black.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">54652</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Black.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 53.37K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:41:59 <span class="o">(</span><span class="m">691</span> KB/s<span class="o">)</span> - ‘Vazir-Black.woff’ saved <span class="o">[</span>54652/54652<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:41:59-- https://virgool.io/fonts/vazir/Vazir-Black.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">43332</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">Vazir-Black.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.32K --.-KB/s in 0.08s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:00 <span class="o">(</span><span class="m">510</span> KB/s<span class="o">)</span> - ‘Vazir-Black.woff2’ saved <span class="o">[</span>43332/43332<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:00-- https://virgool.io/fonts/fontawesome/fa-solid-900.ttf -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">202616</span> <span class="o">(</span>198K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.ttf’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">fa-solid-900.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 197.87K 501KB/s in 0.4s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:01 <span class="o">(</span><span class="m">501</span> KB/s<span class="o">)</span> - ‘fa-solid-900.ttf’ saved <span class="o">[</span>202616/202616<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:01-- https://virgool.io/fonts/fontawesome/fa-solid-900.eot? -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">404</span> Not Found -</span></span><span class="line"><span class="cl">2022-01-18 06:42:01 ERROR 404: Not Found. -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:01-- https://virgool.io/fonts/fontawesome/fa-solid-900.woff -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">103300</span> <span class="o">(</span>101K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.woff’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">fa-solid-900.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 100.88K 358KB/s in 0.3s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:02 <span class="o">(</span><span class="m">358</span> KB/s<span class="o">)</span> - ‘fa-solid-900.woff’ saved <span class="o">[</span>103300/103300<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:02-- https://virgool.io/fonts/fontawesome/fa-solid-900.woff2 -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">79444</span> <span class="o">(</span>78K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.woff2’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">fa-solid-900.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 77.58K 394KB/s in 0.2s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:03 <span class="o">(</span><span class="m">394</span> KB/s<span class="o">)</span> - ‘fa-solid-900.woff2’ saved <span class="o">[</span>79444/79444<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:03-- https://virgool.io/images/icons/plus.svg -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>image/svg+xml<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘plus.svg’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">plus.svg <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">942</span> --.-KB/s in 0.002s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:03 <span class="o">(</span><span class="m">383</span> KB/s<span class="o">)</span> - ‘plus.svg’ saved <span class="o">[</span>942<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:03-- https://virgool.io/images/icons/tick.svg -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>image/svg+xml<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘tick.svg’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">tick.svg <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">942</span> --.-KB/s in 0s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:04 <span class="o">(</span>89.8 MB/s<span class="o">)</span> - ‘tick.svg’ saved <span class="o">[</span>942<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:04-- https://virgool.io/images/typewriter.png -</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. -</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK -</span></span><span class="line"><span class="cl">Length: <span class="m">172558</span> <span class="o">(</span>169K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> -</span></span><span class="line"><span class="cl">Saving to: ‘typewriter.png’ -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">typewriter.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 168.51K 349KB/s in 0.5s -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">2022-01-18 06:42:05 <span class="o">(</span><span class="m">349</span> KB/s<span class="o">)</span> - ‘typewriter.png’ saved <span class="o">[</span>172558/172558<span class="o">]</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:05-- https://virgool.test/images/download-audio.png -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. -</span></span><span class="line"><span class="cl">--2022-01-18 06:42:05-- https://virgool.test/images/download-ebook.png -</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. -</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. -</span></span><span class="line"><span class="cl">FINISHED --2022-01-18 06:42:05-- -</span></span><span class="line"><span class="cl">Total wall clock time: 1m 2s -</span></span><span class="line"><span class="cl">Downloaded: <span class="m">54</span> files, 6.6M in 14s <span class="o">(</span><span class="m">479</span> KB/s<span class="o">)</span> -</span></span><span class="line"><span class="cl">Converting links in ns.html?id<span class="o">=</span>GTM-5GS688K.html... nothing to <span class="k">do</span>. -</span></span><span class="line"><span class="cl">Converting links in c3fVa.html... 38. -</span></span><span class="line"><span class="cl">31-7 -</span></span><span class="line"><span class="cl">Converting links in styles.css?v<span class="o">=</span>v2.6.15.css... 35. -</span></span><span class="line"><span class="cl">34-1 -</span></span><span class="line"><span class="cl">Converted links in <span class="m">3</span> files in 0.06 seconds. -</span></span></code></pre></td></tr></table> -</div> -</div> - - - - +هست رو دانلود می‌کنم.</li> +</ul> +</br> +</div> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt"> 10 +</span><span class="lnt"> 11 +</span><span class="lnt"> 12 +</span><span class="lnt"> 13 +</span><span class="lnt"> 14 +</span><span class="lnt"> 15 +</span><span class="lnt"> 16 +</span><span class="lnt"> 17 +</span><span class="lnt"> 18 +</span><span class="lnt"> 19 +</span><span class="lnt"> 20 +</span><span class="lnt"> 21 +</span><span class="lnt"> 22 +</span><span class="lnt"> 23 +</span><span class="lnt"> 24 +</span><span class="lnt"> 25 +</span><span class="lnt"> 26 +</span><span class="lnt"> 27 +</span><span class="lnt"> 28 +</span><span class="lnt"> 29 +</span><span class="lnt"> 30 +</span><span class="lnt"> 31 +</span><span class="lnt"> 32 +</span><span class="lnt"> 33 +</span><span class="lnt"> 34 +</span><span class="lnt"> 35 +</span><span class="lnt"> 36 +</span><span class="lnt"> 37 +</span><span class="lnt"> 38 +</span><span class="lnt"> 39 +</span><span class="lnt"> 40 +</span><span class="lnt"> 41 +</span><span class="lnt"> 42 +</span><span class="lnt"> 43 +</span><span class="lnt"> 44 +</span><span class="lnt"> 45 +</span><span class="lnt"> 46 +</span><span class="lnt"> 47 +</span><span class="lnt"> 48 +</span><span class="lnt"> 49 +</span><span class="lnt"> 50 +</span><span class="lnt"> 51 +</span><span class="lnt"> 52 +</span><span class="lnt"> 53 +</span><span class="lnt"> 54 +</span><span class="lnt"> 55 +</span><span class="lnt"> 56 +</span><span class="lnt"> 57 +</span><span class="lnt"> 58 +</span><span class="lnt"> 59 +</span><span class="lnt"> 60 +</span><span class="lnt"> 61 +</span><span class="lnt"> 62 +</span><span class="lnt"> 63 +</span><span class="lnt"> 64 +</span><span class="lnt"> 65 +</span><span class="lnt"> 66 +</span><span class="lnt"> 67 +</span><span class="lnt"> 68 +</span><span class="lnt"> 69 +</span><span class="lnt"> 70 +</span><span class="lnt"> 71 +</span><span class="lnt"> 72 +</span><span class="lnt"> 73 +</span><span class="lnt"> 74 +</span><span class="lnt"> 75 +</span><span class="lnt"> 76 +</span><span class="lnt"> 77 +</span><span class="lnt"> 78 +</span><span class="lnt"> 79 +</span><span class="lnt"> 80 +</span><span class="lnt"> 81 +</span><span class="lnt"> 82 +</span><span class="lnt"> 83 +</span><span class="lnt"> 84 +</span><span class="lnt"> 85 +</span><span class="lnt"> 86 +</span><span class="lnt"> 87 +</span><span class="lnt"> 88 +</span><span class="lnt"> 89 +</span><span class="lnt"> 90 +</span><span class="lnt"> 91 +</span><span class="lnt"> 92 +</span><span class="lnt"> 93 +</span><span class="lnt"> 94 +</span><span class="lnt"> 95 +</span><span class="lnt"> 96 +</span><span class="lnt"> 97 +</span><span class="lnt"> 98 +</span><span class="lnt"> 99 +</span><span class="lnt">100 +</span><span class="lnt">101 +</span><span class="lnt">102 +</span><span class="lnt">103 +</span><span class="lnt">104 +</span><span class="lnt">105 +</span><span class="lnt">106 +</span><span class="lnt">107 +</span><span class="lnt">108 +</span><span class="lnt">109 +</span><span class="lnt">110 +</span><span class="lnt">111 +</span><span class="lnt">112 +</span><span class="lnt">113 +</span><span class="lnt">114 +</span><span class="lnt">115 +</span><span class="lnt">116 +</span><span class="lnt">117 +</span><span class="lnt">118 +</span><span class="lnt">119 +</span><span class="lnt">120 +</span><span class="lnt">121 +</span><span class="lnt">122 +</span><span class="lnt">123 +</span><span class="lnt">124 +</span><span class="lnt">125 +</span><span class="lnt">126 +</span><span class="lnt">127 +</span><span class="lnt">128 +</span><span class="lnt">129 +</span><span class="lnt">130 +</span><span class="lnt">131 +</span><span class="lnt">132 +</span><span class="lnt">133 +</span><span class="lnt">134 +</span><span class="lnt">135 +</span><span class="lnt">136 +</span><span class="lnt">137 +</span><span class="lnt">138 +</span><span class="lnt">139 +</span><span class="lnt">140 +</span><span class="lnt">141 +</span><span class="lnt">142 +</span><span class="lnt">143 +</span><span class="lnt">144 +</span><span class="lnt">145 +</span><span class="lnt">146 +</span><span class="lnt">147 +</span><span class="lnt">148 +</span><span class="lnt">149 +</span><span class="lnt">150 +</span><span class="lnt">151 +</span><span class="lnt">152 +</span><span class="lnt">153 +</span><span class="lnt">154 +</span><span class="lnt">155 +</span><span class="lnt">156 +</span><span class="lnt">157 +</span><span class="lnt">158 +</span><span class="lnt">159 +</span><span class="lnt">160 +</span><span class="lnt">161 +</span><span class="lnt">162 +</span><span class="lnt">163 +</span><span class="lnt">164 +</span><span class="lnt">165 +</span><span class="lnt">166 +</span><span class="lnt">167 +</span><span class="lnt">168 +</span><span class="lnt">169 +</span><span class="lnt">170 +</span><span class="lnt">171 +</span><span class="lnt">172 +</span><span class="lnt">173 +</span><span class="lnt">174 +</span><span class="lnt">175 +</span><span class="lnt">176 +</span><span class="lnt">177 +</span><span class="lnt">178 +</span><span class="lnt">179 +</span><span class="lnt">180 +</span><span class="lnt">181 +</span><span class="lnt">182 +</span><span class="lnt">183 +</span><span class="lnt">184 +</span><span class="lnt">185 +</span><span class="lnt">186 +</span><span class="lnt">187 +</span><span class="lnt">188 +</span><span class="lnt">189 +</span><span class="lnt">190 +</span><span class="lnt">191 +</span><span class="lnt">192 +</span><span class="lnt">193 +</span><span class="lnt">194 +</span><span class="lnt">195 +</span><span class="lnt">196 +</span><span class="lnt">197 +</span><span class="lnt">198 +</span><span class="lnt">199 +</span><span class="lnt">200 +</span><span class="lnt">201 +</span><span class="lnt">202 +</span><span class="lnt">203 +</span><span class="lnt">204 +</span><span class="lnt">205 +</span><span class="lnt">206 +</span><span class="lnt">207 +</span><span class="lnt">208 +</span><span class="lnt">209 +</span><span class="lnt">210 +</span><span class="lnt">211 +</span><span class="lnt">212 +</span><span class="lnt">213 +</span><span class="lnt">214 +</span><span class="lnt">215 +</span><span class="lnt">216 +</span><span class="lnt">217 +</span><span class="lnt">218 +</span><span class="lnt">219 +</span><span class="lnt">220 +</span><span class="lnt">221 +</span><span class="lnt">222 +</span><span class="lnt">223 +</span><span class="lnt">224 +</span><span class="lnt">225 +</span><span class="lnt">226 +</span><span class="lnt">227 +</span><span class="lnt">228 +</span><span class="lnt">229 +</span><span class="lnt">230 +</span><span class="lnt">231 +</span><span class="lnt">232 +</span><span class="lnt">233 +</span><span class="lnt">234 +</span><span class="lnt">235 +</span><span class="lnt">236 +</span><span class="lnt">237 +</span><span class="lnt">238 +</span><span class="lnt">239 +</span><span class="lnt">240 +</span><span class="lnt">241 +</span><span class="lnt">242 +</span><span class="lnt">243 +</span><span class="lnt">244 +</span><span class="lnt">245 +</span><span class="lnt">246 +</span><span class="lnt">247 +</span><span class="lnt">248 +</span><span class="lnt">249 +</span><span class="lnt">250 +</span><span class="lnt">251 +</span><span class="lnt">252 +</span><span class="lnt">253 +</span><span class="lnt">254 +</span><span class="lnt">255 +</span><span class="lnt">256 +</span><span class="lnt">257 +</span><span class="lnt">258 +</span><span class="lnt">259 +</span><span class="lnt">260 +</span><span class="lnt">261 +</span><span class="lnt">262 +</span><span class="lnt">263 +</span><span class="lnt">264 +</span><span class="lnt">265 +</span><span class="lnt">266 +</span><span class="lnt">267 +</span><span class="lnt">268 +</span><span class="lnt">269 +</span><span class="lnt">270 +</span><span class="lnt">271 +</span><span class="lnt">272 +</span><span class="lnt">273 +</span><span class="lnt">274 +</span><span class="lnt">275 +</span><span class="lnt">276 +</span><span class="lnt">277 +</span><span class="lnt">278 +</span><span class="lnt">279 +</span><span class="lnt">280 +</span><span class="lnt">281 +</span><span class="lnt">282 +</span><span class="lnt">283 +</span><span class="lnt">284 +</span><span class="lnt">285 +</span><span class="lnt">286 +</span><span class="lnt">287 +</span><span class="lnt">288 +</span><span class="lnt">289 +</span><span class="lnt">290 +</span><span class="lnt">291 +</span><span class="lnt">292 +</span><span class="lnt">293 +</span><span class="lnt">294 +</span><span class="lnt">295 +</span><span class="lnt">296 +</span><span class="lnt">297 +</span><span class="lnt">298 +</span><span class="lnt">299 +</span><span class="lnt">300 +</span><span class="lnt">301 +</span><span class="lnt">302 +</span><span class="lnt">303 +</span><span class="lnt">304 +</span><span class="lnt">305 +</span><span class="lnt">306 +</span><span class="lnt">307 +</span><span class="lnt">308 +</span><span class="lnt">309 +</span><span class="lnt">310 +</span><span class="lnt">311 +</span><span class="lnt">312 +</span><span class="lnt">313 +</span><span class="lnt">314 +</span><span class="lnt">315 +</span><span class="lnt">316 +</span><span class="lnt">317 +</span><span class="lnt">318 +</span><span class="lnt">319 +</span><span class="lnt">320 +</span><span class="lnt">321 +</span><span class="lnt">322 +</span><span class="lnt">323 +</span><span class="lnt">324 +</span><span class="lnt">325 +</span><span class="lnt">326 +</span><span class="lnt">327 +</span><span class="lnt">328 +</span><span class="lnt">329 +</span><span class="lnt">330 +</span><span class="lnt">331 +</span><span class="lnt">332 +</span><span class="lnt">333 +</span><span class="lnt">334 +</span><span class="lnt">335 +</span><span class="lnt">336 +</span><span class="lnt">337 +</span><span class="lnt">338 +</span><span class="lnt">339 +</span><span class="lnt">340 +</span><span class="lnt">341 +</span><span class="lnt">342 +</span><span class="lnt">343 +</span><span class="lnt">344 +</span><span class="lnt">345 +</span><span class="lnt">346 +</span><span class="lnt">347 +</span><span class="lnt">348 +</span><span class="lnt">349 +</span><span class="lnt">350 +</span><span class="lnt">351 +</span><span class="lnt">352 +</span><span class="lnt">353 +</span><span class="lnt">354 +</span><span class="lnt">355 +</span><span class="lnt">356 +</span><span class="lnt">357 +</span><span class="lnt">358 +</span><span class="lnt">359 +</span><span class="lnt">360 +</span><span class="lnt">361 +</span><span class="lnt">362 +</span><span class="lnt">363 +</span><span class="lnt">364 +</span><span class="lnt">365 +</span><span class="lnt">366 +</span><span class="lnt">367 +</span><span class="lnt">368 +</span><span class="lnt">369 +</span><span class="lnt">370 +</span><span class="lnt">371 +</span><span class="lnt">372 +</span><span class="lnt">373 +</span><span class="lnt">374 +</span><span class="lnt">375 +</span><span class="lnt">376 +</span><span class="lnt">377 +</span><span class="lnt">378 +</span><span class="lnt">379 +</span><span class="lnt">380 +</span><span class="lnt">381 +</span><span class="lnt">382 +</span><span class="lnt">383 +</span><span class="lnt">384 +</span><span class="lnt">385 +</span><span class="lnt">386 +</span><span class="lnt">387 +</span><span class="lnt">388 +</span><span class="lnt">389 +</span><span class="lnt">390 +</span><span class="lnt">391 +</span><span class="lnt">392 +</span><span class="lnt">393 +</span><span class="lnt">394 +</span><span class="lnt">395 +</span><span class="lnt">396 +</span><span class="lnt">397 +</span><span class="lnt">398 +</span><span class="lnt">399 +</span><span class="lnt">400 +</span><span class="lnt">401 +</span><span class="lnt">402 +</span><span class="lnt">403 +</span><span class="lnt">404 +</span><span class="lnt">405 +</span><span class="lnt">406 +</span><span class="lnt">407 +</span><span class="lnt">408 +</span><span class="lnt">409 +</span><span class="lnt">410 +</span><span class="lnt">411 +</span><span class="lnt">412 +</span><span class="lnt">413 +</span><span class="lnt">414 +</span><span class="lnt">415 +</span><span class="lnt">416 +</span><span class="lnt">417 +</span><span class="lnt">418 +</span><span class="lnt">419 +</span><span class="lnt">420 +</span><span class="lnt">421 +</span><span class="lnt">422 +</span><span class="lnt">423 +</span><span class="lnt">424 +</span><span class="lnt">425 +</span><span class="lnt">426 +</span><span class="lnt">427 +</span><span class="lnt">428 +</span><span class="lnt">429 +</span><span class="lnt">430 +</span><span class="lnt">431 +</span><span class="lnt">432 +</span><span class="lnt">433 +</span><span class="lnt">434 +</span><span class="lnt">435 +</span><span class="lnt">436 +</span><span class="lnt">437 +</span><span class="lnt">438 +</span><span class="lnt">439 +</span><span class="lnt">440 +</span><span class="lnt">441 +</span><span class="lnt">442 +</span><span class="lnt">443 +</span><span class="lnt">444 +</span><span class="lnt">445 +</span><span class="lnt">446 +</span><span class="lnt">447 +</span><span class="lnt">448 +</span><span class="lnt">449 +</span><span class="lnt">450 +</span><span class="lnt">451 +</span><span class="lnt">452 +</span><span class="lnt">453 +</span><span class="lnt">454 +</span><span class="lnt">455 +</span><span class="lnt">456 +</span><span class="lnt">457 +</span><span class="lnt">458 +</span><span class="lnt">459 +</span><span class="lnt">460 +</span><span class="lnt">461 +</span><span class="lnt">462 +</span><span class="lnt">463 +</span><span class="lnt">464 +</span><span class="lnt">465 +</span><span class="lnt">466 +</span><span class="lnt">467 +</span><span class="lnt">468 +</span><span class="lnt">469 +</span><span class="lnt">470 +</span><span class="lnt">471 +</span><span class="lnt">472 +</span><span class="lnt">473 +</span><span class="lnt">474 +</span><span class="lnt">475 +</span><span class="lnt">476 +</span><span class="lnt">477 +</span><span class="lnt">478 +</span><span class="lnt">479 +</span><span class="lnt">480 +</span><span class="lnt">481 +</span><span class="lnt">482 +</span><span class="lnt">483 +</span><span class="lnt">484 +</span><span class="lnt">485 +</span><span class="lnt">486 +</span><span class="lnt">487 +</span><span class="lnt">488 +</span><span class="lnt">489 +</span><span class="lnt">490 +</span><span class="lnt">491 +</span><span class="lnt">492 +</span><span class="lnt">493 +</span><span class="lnt">494 +</span><span class="lnt">495 +</span><span class="lnt">496 +</span><span class="lnt">497 +</span><span class="lnt">498 +</span><span class="lnt">499 +</span><span class="lnt">500 +</span><span class="lnt">501 +</span><span class="lnt">502 +</span><span class="lnt">503 +</span><span class="lnt">504 +</span><span class="lnt">505 +</span><span class="lnt">506 +</span><span class="lnt">507 +</span><span class="lnt">508 +</span><span class="lnt">509 +</span><span class="lnt">510 +</span><span class="lnt">511 +</span><span class="lnt">512 +</span><span class="lnt">513 +</span><span class="lnt">514 +</span><span class="lnt">515 +</span><span class="lnt">516 +</span><span class="lnt">517 +</span><span class="lnt">518 +</span><span class="lnt">519 +</span><span class="lnt">520 +</span><span class="lnt">521 +</span><span class="lnt">522 +</span><span class="lnt">523 +</span><span class="lnt">524 +</span><span class="lnt">525 +</span><span class="lnt">526 +</span><span class="lnt">527 +</span><span class="lnt">528 +</span><span class="lnt">529 +</span><span class="lnt">530 +</span><span class="lnt">531 +</span><span class="lnt">532 +</span><span class="lnt">533 +</span><span class="lnt">534 +</span><span class="lnt">535 +</span><span class="lnt">536 +</span><span class="lnt">537 +</span><span class="lnt">538 +</span><span class="lnt">539 +</span><span class="lnt">540 +</span><span class="lnt">541 +</span><span class="lnt">542 +</span><span class="lnt">543 +</span><span class="lnt">544 +</span><span class="lnt">545 +</span><span class="lnt">546 +</span><span class="lnt">547 +</span><span class="lnt">548 +</span><span class="lnt">549 +</span><span class="lnt">550 +</span><span class="lnt">551 +</span><span class="lnt">552 +</span><span class="lnt">553 +</span><span class="lnt">554 +</span><span class="lnt">555 +</span><span class="lnt">556 +</span><span class="lnt">557 +</span><span class="lnt">558 +</span><span class="lnt">559 +</span><span class="lnt">560 +</span><span class="lnt">561 +</span><span class="lnt">562 +</span><span class="lnt">563 +</span><span class="lnt">564 +</span><span class="lnt">565 +</span><span class="lnt">566 +</span><span class="lnt">567 +</span><span class="lnt">568 +</span><span class="lnt">569 +</span><span class="lnt">570 +</span><span class="lnt">571 +</span><span class="lnt">572 +</span><span class="lnt">573 +</span><span class="lnt">574 +</span><span class="lnt">575 +</span><span class="lnt">576 +</span><span class="lnt">577 +</span><span class="lnt">578 +</span><span class="lnt">579 +</span><span class="lnt">580 +</span><span class="lnt">581 +</span><span class="lnt">582 +</span><span class="lnt">583 +</span><span class="lnt">584 +</span><span class="lnt">585 +</span><span class="lnt">586 +</span><span class="lnt">587 +</span><span class="lnt">588 +</span><span class="lnt">589 +</span><span class="lnt">590 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">┌─<span class="o">[</span>loading<span class="o">]</span> <span class="o">[</span>/tmp/virgool<span class="o">]</span> <span class="o">[</span>0<span class="o">]</span> +</span></span><span class="line"><span class="cl">│ +</span></span><span class="line"><span class="cl">└──〉wget -nd -E -p -k -H https://vrgl.ir/c3fVa +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:03-- https://vrgl.ir/c3fVa +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">302</span> Found +</span></span><span class="line"><span class="cl">Location: https://virgool.io/@Novo/rsa-encryption-ao1poasym4cf <span class="o">[</span>following<span class="o">]</span> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:04-- https://virgool.io/@Novo/rsa-encryption-ao1poasym4cf +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/html<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘c3fVa.html’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">c3fVa.html <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 61.30K 200KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:06 <span class="o">(</span><span class="m">200</span> KB/s<span class="o">)</span> - ‘c3fVa.html’ saved <span class="o">[</span>62773<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:06-- https://virgool.io/robots.txt +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>document<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘robots.txt’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">robots.txt <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">484</span> --.-KB/s in 0s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:07 <span class="o">(</span>85.7 MB/s<span class="o">)</span> - ‘robots.txt’ saved <span class="o">[</span>484<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:07-- https://www.googletagmanager.com/robots.txt +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">404</span> Not Found +</span></span><span class="line"><span class="cl">2022-01-18 06:41:08 ERROR 404: Not Found. +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:08-- https://files.virgool.io/robots.txt +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">403</span> Forbidden +</span></span><span class="line"><span class="cl">2022-01-18 06:41:09 ERROR 403: Forbidden. +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:09-- https://static.cloudflareinsights.com/robots.txt +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">522</span> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:26 ERROR 522: <span class="o">(</span>no description<span class="o">)</span>. +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:26-- https://virgool.io/images/favicon.png?v<span class="o">=</span>v2.6.15 +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">9855</span> <span class="o">(</span>9.6K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘favicon.png?v<span class="o">=</span>v2.6.15’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">favicon.png?v<span class="o">=</span>v2.6.15 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 9.62K --.-KB/s in 0.07s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:27 <span class="o">(</span><span class="m">130</span> KB/s<span class="o">)</span> - ‘favicon.png?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>9855/9855<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:27-- https://virgool.io/css/styles.css?v<span class="o">=</span>v2.6.15 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/css<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘styles.css?v<span class="o">=</span>v2.6.15.css’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">styles.css?v<span class="o">=</span>v2.6.15.css <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 903.60K 592KB/s in 1.5s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:28 <span class="o">(</span><span class="m">592</span> KB/s<span class="o">)</span> - ‘styles.css?v<span class="o">=</span>v2.6.15.css’ saved <span class="o">[</span>925284<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Loading robots.txt<span class="p">;</span> please ignore errors. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:28-- https://virgool.test/robots.txt +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:28-- https://www.googletagmanager.com/ns.html?id<span class="o">=</span>GTM-5GS688K +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>text/html<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘ns.html?id<span class="o">=</span>GTM-5GS688K.html’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">ns.html?id<span class="o">=</span>GTM-5GS688K.html <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">266</span> --.-KB/s in 0s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:29 <span class="o">(</span>29.4 MB/s<span class="o">)</span> - ‘ns.html?id<span class="o">=</span>GTM-5GS688K.html’ saved <span class="o">[</span>266<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:29-- https://files.virgool.io/upload/users/31434/avatar/1C4LLE.png?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">39194</span> <span class="o">(</span>38K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_ 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 38.28K 173KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:30 <span class="o">(</span><span class="m">173</span> KB/s<span class="o">)</span> - ‘1C4LLE.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>39194/39194<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:30-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/qhokakomwyb5.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">179870</span> <span class="o">(</span>176K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘qhokakomwyb5.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">qhokakomwyb5.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 175.65K 567KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">567</span> KB/s<span class="o">)</span> - ‘qhokakomwyb5.png’ saved <span class="o">[</span>179870/179870<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/v1xnwpnewfys.webp +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">12770</span> <span class="o">(</span>12K<span class="o">)</span> <span class="o">[</span>image/webp<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘v1xnwpnewfys.webp’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">v1xnwpnewfys.webp 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 12.47K --.-KB/s in 0.07s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">180</span> KB/s<span class="o">)</span> - ‘v1xnwpnewfys.webp’ saved <span class="o">[</span>12770/12770<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/d28hpu2detkl.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">92847</span> <span class="o">(</span>91K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘d28hpu2detkl.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">d28hpu2detkl.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 90.67K --.-KB/s in 0.09s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:31 <span class="o">(</span><span class="m">969</span> KB/s<span class="o">)</span> - ‘d28hpu2detkl.png’ saved <span class="o">[</span>92847/92847<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:31-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/rhyykrc8azq0.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">17539</span> <span class="o">(</span>17K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘rhyykrc8azq0.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">rhyykrc8azq0.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 17.13K --.-KB/s in 0.007s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>2.47 MB/s<span class="o">)</span> - ‘rhyykrc8azq0.png’ saved <span class="o">[</span>17539/17539<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/fjtc1ydzkuse.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">108524</span> <span class="o">(</span>106K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘fjtc1ydzkuse.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">fjtc1ydzkuse.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 105.98K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>1.06 MB/s<span class="o">)</span> - ‘fjtc1ydzkuse.png’ saved <span class="o">[</span>108524/108524<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/gfqhgyp18oic.jpeg +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">132085</span> <span class="o">(</span>129K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘gfqhgyp18oic.jpeg’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">gfqhgyp18oic.jpeg 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 128.99K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:32 <span class="o">(</span>1.28 MB/s<span class="o">)</span> - ‘gfqhgyp18oic.jpeg’ saved <span class="o">[</span>132085/132085<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:32-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/me0mpjtdmyom.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">113489</span> <span class="o">(</span>111K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘me0mpjtdmyom.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">me0mpjtdmyom.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 110.83K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span><span class="m">814</span> KB/s<span class="o">)</span> - ‘me0mpjtdmyom.png’ saved <span class="o">[</span>113489/113489<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/of7krju6oqzk.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">105746</span> <span class="o">(</span>103K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘of7krju6oqzk.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">of7krju6oqzk.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 103.27K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span>1.25 MB/s<span class="o">)</span> - ‘of7krju6oqzk.png’ saved <span class="o">[</span>105746/105746<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/oqwhflg4gbnq.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">120994</span> <span class="o">(</span>118K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘oqwhflg4gbnq.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">oqwhflg4gbnq.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 118.16K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:33 <span class="o">(</span>1.14 MB/s<span class="o">)</span> - ‘oqwhflg4gbnq.png’ saved <span class="o">[</span>120994/120994<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:33-- https://files.virgool.io/upload/users/31434/posts/ao1poasym4cf/taqjnfnuzxcx.png +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">122678</span> <span class="o">(</span>120K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘taqjnfnuzxcx.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">taqjnfnuzxcx.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 119.80K --.-KB/s in 0.06s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span>2.00 MB/s<span class="o">)</span> - ‘taqjnfnuzxcx.png’ saved <span class="o">[</span>122678/122678<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/63/posts/qwqrubplfaau/g8vai2incgna.jpeg?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">88292</span> <span class="o">(</span>86K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fre 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 86.22K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span><span class="m">824</span> KB/s<span class="o">)</span> - ‘g8vai2incgna.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>88292/88292<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/63/avatar/o8jiNe.png?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">32037</span> <span class="o">(</span>31K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_ 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 31.29K --.-KB/s in 0.06s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:34 <span class="o">(</span><span class="m">558</span> KB/s<span class="o">)</span> - ‘o8jiNe.png?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>32037/32037<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:34-- https://files.virgool.io/upload/users/31434/posts/e3oydlcfkr5e/figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">30356</span> <span class="o">(</span>30K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fre 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 29.64K --.-KB/s in 0.07s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span><span class="m">401</span> KB/s<span class="o">)</span> - ‘figl9y1c6otq.jpeg?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>30356/30356<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://files.virgool.io/upload/users/316150/posts/r8rhw88uh1xh/cs1ugyelv3zw.png?x-img<span class="o">=</span>v1/resize,w_300/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">34459</span> <span class="o">(</span>34K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fres 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 33.65K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span><span class="m">399</span> KB/s<span class="o">)</span> - ‘cs1ugyelv3zw.png?x-img<span class="o">=</span>v1%2Fresize,w_300%2Foptimize,q_100’ saved <span class="o">[</span>34459/34459<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://files.virgool.io/upload/users/316150/avatar/8sz7Rs.jpeg?x-img<span class="o">=</span>v1/resize,h_120,w_120/optimize,q_100 +</span></span><span class="line"><span class="cl">Reusing existing connection to files.virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">14764</span> <span class="o">(</span>14K<span class="o">)</span> <span class="o">[</span>image/jpeg<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 14.42K --.-KB/s in 0.007s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:35 <span class="o">(</span>2.11 MB/s<span class="o">)</span> - ‘8sz7Rs.jpeg?x-img<span class="o">=</span>v1%2Fresize,h_120,w_120%2Foptimize,q_100’ saved <span class="o">[</span>14764/14764<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:35-- https://virgool.io/js/commons.js?v<span class="o">=</span>v2.6.15 +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/javascript<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘commons.js?v<span class="o">=</span>v2.6.15’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">commons.js?v<span class="o">=</span>v2.6.15 <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 997.55K 337KB/s in 3.0s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:39 <span class="o">(</span><span class="m">337</span> KB/s<span class="o">)</span> - ‘commons.js?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>1021492<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:39-- https://virgool.io/js/main.js?v<span class="o">=</span>v2.6.15 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/javascript<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘main.js?v<span class="o">=</span>v2.6.15’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">main.js?v<span class="o">=</span>v2.6.15 <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 1.21M 580KB/s in 2.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:41 <span class="o">(</span><span class="m">580</span> KB/s<span class="o">)</span> - ‘main.js?v<span class="o">=</span>v2.6.15’ saved <span class="o">[</span>1267632<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:41-- https://static.cloudflareinsights.com/beacon.min.js/v652eace1692a40cfa3763df669d7439c1639079717194 +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">13970</span> <span class="o">(</span>14K<span class="o">)</span> <span class="o">[</span>text/javascript<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘v652eace1692a40cfa3763df669d7439c1639079717194’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">v652eace1692a40cfa3763df669d743 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 13.64K --.-KB/s in 0.02s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:42 <span class="o">(</span><span class="m">600</span> KB/s<span class="o">)</span> - ‘v652eace1692a40cfa3763df669d7439c1639079717194’ saved <span class="o">[</span>13970/13970<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:42-- https://virgool.io/fonts/vazir/Vazir-Thin.ttf +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">98924</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Thin.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.61K 140KB/s in 0.7s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:43 <span class="o">(</span><span class="m">140</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.ttf’ saved <span class="o">[</span>98924/98924<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:43-- https://virgool.io/fonts/vazir/Vazir-Thin.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Thin.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.80K 276KB/s in 0.4s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:44 <span class="o">(</span><span class="m">276</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.eot?’ saved <span class="o">[</span>99120<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:44-- https://virgool.io/fonts/vazir/Vazir-Thin.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">54068</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Thin.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.80K --.-KB/s in 0.07s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:45 <span class="o">(</span><span class="m">770</span> KB/s<span class="o">)</span> - ‘Vazir-Thin.woff’ saved <span class="o">[</span>54068/54068<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:45-- https://virgool.io/fonts/vazir/Vazir-Thin.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">43000</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Thin.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Thin.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 41.99K --.-KB/s in 0.006s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:46 <span class="o">(</span>6.59 MB/s<span class="o">)</span> - ‘Vazir-Thin.woff2’ saved <span class="o">[</span>43000/43000<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:46-- https://virgool.io/fonts/vazir/Vazir-Light.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">105360</span> <span class="o">(</span>103K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Light.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 102.89K 478KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:46 <span class="o">(</span><span class="m">478</span> KB/s<span class="o">)</span> - ‘Vazir-Light.ttf’ saved <span class="o">[</span>105360/105360<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:46-- https://virgool.io/fonts/vazir/Vazir-Light.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Light.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 103.09K 470KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:47 <span class="o">(</span><span class="m">470</span> KB/s<span class="o">)</span> - ‘Vazir-Light.eot?’ saved <span class="o">[</span>105562<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:47-- https://virgool.io/fonts/vazir/Vazir-Light.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">59688</span> <span class="o">(</span>58K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Light.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 58.29K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:48 <span class="o">(</span><span class="m">758</span> KB/s<span class="o">)</span> - ‘Vazir-Light.woff’ saved <span class="o">[</span>59688/59688<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:48-- https://virgool.io/fonts/vazir/Vazir-Light.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">48168</span> <span class="o">(</span>47K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Light.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Light.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 47.04K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:48 <span class="o">(</span><span class="m">570</span> KB/s<span class="o">)</span> - ‘Vazir-Light.woff2’ saved <span class="o">[</span>48168/48168<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:48-- https://virgool.io/fonts/vazir/Vazir-Regular.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">98376</span> <span class="o">(</span>96K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Regular.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.07K 435KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:49 <span class="o">(</span><span class="m">435</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.ttf’ saved <span class="o">[</span>98376/98376<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:49-- https://virgool.io/fonts/vazir/Vazir-Regular.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Regular.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.26K 285KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:50 <span class="o">(</span><span class="m">285</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.eot?’ saved <span class="o">[</span>98574<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:50-- https://virgool.io/fonts/vazir/Vazir-Regular.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">53744</span> <span class="o">(</span>52K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Regular.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.48K --.-KB/s in 0.05s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:51 <span class="o">(</span>1.10 MB/s<span class="o">)</span> - ‘Vazir-Regular.woff’ saved <span class="o">[</span>53744/53744<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:51-- https://virgool.io/fonts/vazir/Vazir-Regular.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">42744</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Regular.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Regular.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 41.74K --.-KB/s in 0.1s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:51 <span class="o">(</span><span class="m">412</span> KB/s<span class="o">)</span> - ‘Vazir-Regular.woff2’ saved <span class="o">[</span>42744/42744<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:51-- https://virgool.io/fonts/vazir/Vazir-Medium.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">98892</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Medium.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 96.57K 606KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:52 <span class="o">(</span><span class="m">606</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.ttf’ saved <span class="o">[</span>98892/98892<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:52-- https://virgool.io/fonts/vazir/Vazir-Medium.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Medium.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 96.78K 347KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:53 <span class="o">(</span><span class="m">347</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.eot?’ saved <span class="o">[</span>99100<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:53-- https://virgool.io/fonts/vazir/Vazir-Medium.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">54120</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Medium.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 52.85K 125KB/s in 0.4s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:54 <span class="o">(</span><span class="m">125</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.woff’ saved <span class="o">[</span>54120/54120<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:54-- https://virgool.io/fonts/vazir/Vazir-Medium.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">43152</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Medium.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Medium.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.14K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:54 <span class="o">(</span><span class="m">541</span> KB/s<span class="o">)</span> - ‘Vazir-Medium.woff2’ saved <span class="o">[</span>43152/43152<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:54-- https://virgool.io/fonts/vazir/Vazir-Bold.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">99840</span> <span class="o">(</span>98K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Bold.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 97.50K --.-KB/s in 0.04s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:55 <span class="o">(</span>2.61 MB/s<span class="o">)</span> - ‘Vazir-Bold.ttf’ saved <span class="o">[</span>99840/99840<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:55-- https://virgool.io/fonts/vazir/Vazir-Bold.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Bold.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 97.68K 560KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:56 <span class="o">(</span><span class="m">560</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.eot?’ saved <span class="o">[</span>100026<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:56-- https://virgool.io/fonts/vazir/Vazir-Bold.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">54560</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Bold.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 53.28K --.-KB/s in 0.06s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:56 <span class="o">(</span><span class="m">917</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.woff’ saved <span class="o">[</span>54560/54560<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:56-- https://virgool.io/fonts/vazir/Vazir-Bold.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">43604</span> <span class="o">(</span>43K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Bold.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Bold.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.58K --.-KB/s in 0.06s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:57 <span class="o">(</span><span class="m">657</span> KB/s<span class="o">)</span> - ‘Vazir-Bold.woff2’ saved <span class="o">[</span>43604/43604<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:57-- https://virgool.io/fonts/vazir/Vazir-Black.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">99772</span> <span class="o">(</span>97K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Black.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 97.43K --.-KB/s in 0.04s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:57 <span class="o">(</span>2.18 MB/s<span class="o">)</span> - ‘Vazir-Black.ttf’ saved <span class="o">[</span>99772/99772<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:57-- https://virgool.io/fonts/vazir/Vazir-Black.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>application/vnd.ms-fontobject<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.eot?’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Black.eot? <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> 97.63K 478KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:58 <span class="o">(</span><span class="m">478</span> KB/s<span class="o">)</span> - ‘Vazir-Black.eot?’ saved <span class="o">[</span>99974<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:58-- https://virgool.io/fonts/vazir/Vazir-Black.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">54652</span> <span class="o">(</span>53K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Black.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 53.37K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:41:59 <span class="o">(</span><span class="m">691</span> KB/s<span class="o">)</span> - ‘Vazir-Black.woff’ saved <span class="o">[</span>54652/54652<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:41:59-- https://virgool.io/fonts/vazir/Vazir-Black.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">43332</span> <span class="o">(</span>42K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘Vazir-Black.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">Vazir-Black.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 42.32K --.-KB/s in 0.08s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:00 <span class="o">(</span><span class="m">510</span> KB/s<span class="o">)</span> - ‘Vazir-Black.woff2’ saved <span class="o">[</span>43332/43332<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:00-- https://virgool.io/fonts/fontawesome/fa-solid-900.ttf +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">202616</span> <span class="o">(</span>198K<span class="o">)</span> <span class="o">[</span>application/octet-stream<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.ttf’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">fa-solid-900.ttf 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 197.87K 501KB/s in 0.4s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:01 <span class="o">(</span><span class="m">501</span> KB/s<span class="o">)</span> - ‘fa-solid-900.ttf’ saved <span class="o">[</span>202616/202616<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:01-- https://virgool.io/fonts/fontawesome/fa-solid-900.eot? +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">404</span> Not Found +</span></span><span class="line"><span class="cl">2022-01-18 06:42:01 ERROR 404: Not Found. +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:01-- https://virgool.io/fonts/fontawesome/fa-solid-900.woff +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">103300</span> <span class="o">(</span>101K<span class="o">)</span> <span class="o">[</span>font/woff<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.woff’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">fa-solid-900.woff 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 100.88K 358KB/s in 0.3s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:02 <span class="o">(</span><span class="m">358</span> KB/s<span class="o">)</span> - ‘fa-solid-900.woff’ saved <span class="o">[</span>103300/103300<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:02-- https://virgool.io/fonts/fontawesome/fa-solid-900.woff2 +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">79444</span> <span class="o">(</span>78K<span class="o">)</span> <span class="o">[</span>font/woff2<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘fa-solid-900.woff2’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">fa-solid-900.woff2 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 77.58K 394KB/s in 0.2s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:03 <span class="o">(</span><span class="m">394</span> KB/s<span class="o">)</span> - ‘fa-solid-900.woff2’ saved <span class="o">[</span>79444/79444<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:03-- https://virgool.io/images/icons/plus.svg +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>image/svg+xml<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘plus.svg’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">plus.svg <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">942</span> --.-KB/s in 0.002s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:03 <span class="o">(</span><span class="m">383</span> KB/s<span class="o">)</span> - ‘plus.svg’ saved <span class="o">[</span>942<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:03-- https://virgool.io/images/icons/tick.svg +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: unspecified <span class="o">[</span>image/svg+xml<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘tick.svg’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">tick.svg <span class="o">[</span> &lt;<span class="o">=</span>&gt; <span class="o">]</span> <span class="m">942</span> --.-KB/s in 0s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:04 <span class="o">(</span>89.8 MB/s<span class="o">)</span> - ‘tick.svg’ saved <span class="o">[</span>942<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:04-- https://virgool.io/images/typewriter.png +</span></span><span class="line"><span class="cl">Reusing existing connection to virgool.io:443. +</span></span><span class="line"><span class="cl">Proxy request sent, awaiting response... <span class="m">200</span> OK +</span></span><span class="line"><span class="cl">Length: <span class="m">172558</span> <span class="o">(</span>169K<span class="o">)</span> <span class="o">[</span>image/png<span class="o">]</span> +</span></span><span class="line"><span class="cl">Saving to: ‘typewriter.png’ +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">typewriter.png 100%<span class="o">[======================================================</span>&gt;<span class="o">]</span> 168.51K 349KB/s in 0.5s +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">2022-01-18 06:42:05 <span class="o">(</span><span class="m">349</span> KB/s<span class="o">)</span> - ‘typewriter.png’ saved <span class="o">[</span>172558/172558<span class="o">]</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:05-- https://virgool.test/images/download-audio.png +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. +</span></span><span class="line"><span class="cl">--2022-01-18 06:42:05-- https://virgool.test/images/download-ebook.png +</span></span><span class="line"><span class="cl">Connecting to 192.168.45.250:8080... connected. +</span></span><span class="line"><span class="cl">Proxy tunneling failed: Bad GatewayUnable to establish SSL connection. +</span></span><span class="line"><span class="cl">FINISHED --2022-01-18 06:42:05-- +</span></span><span class="line"><span class="cl">Total wall clock time: 1m 2s +</span></span><span class="line"><span class="cl">Downloaded: <span class="m">54</span> files, 6.6M in 14s <span class="o">(</span><span class="m">479</span> KB/s<span class="o">)</span> +</span></span><span class="line"><span class="cl">Converting links in ns.html?id<span class="o">=</span>GTM-5GS688K.html... nothing to <span class="k">do</span>. +</span></span><span class="line"><span class="cl">Converting links in c3fVa.html... 38. +</span></span><span class="line"><span class="cl">31-7 +</span></span><span class="line"><span class="cl">Converting links in styles.css?v<span class="o">=</span>v2.6.15.css... 35. +</span></span><span class="line"><span class="cl">34-1 +</span></span><span class="line"><span class="cl">Converted links in <span class="m">3</span> files in 0.06 seconds. +</span></span></code></pre></td></tr></table> +</div> +</div> \ No newline at end of file diff --git "a/docs/tags/\330\247\330\263\331\206\331\276-\330\264\330\247\330\252-\332\257\330\261\331\201\330\252\331\206-\330\247\330\262-\333\214\332\251-\330\265\331\201\330\255\331\207-\330\263\330\247\333\214\330\252/page/1/index.html" "b/docs/tags/\330\247\330\263\331\206\331\276-\330\264\330\247\330\252-\332\257\330\261\331\201\330\252\331\206-\330\247\330\262-\333\214\332\251-\330\265\331\201\330\255\331\207-\330\263\330\247\333\214\330\252/page/1/index.html" index 570c1c7..9510593 100644 --- "a/docs/tags/\330\247\330\263\331\206\331\276-\330\264\330\247\330\252-\332\257\330\261\331\201\330\252\331\206-\330\247\330\262-\333\214\332\251-\330\265\331\201\330\255\331\207-\330\263\330\247\333\214\330\252/page/1/index.html" +++ "b/docs/tags/\330\247\330\263\331\206\331\276-\330\264\330\247\330\252-\332\257\330\261\331\201\330\252\331\206-\330\247\330\262-\333\214\332\251-\330\265\331\201\330\255\331\207-\330\263\330\247\333\214\330\252/page/1/index.html" @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA/ - - - - - - +https://bit-orbit.github.io/tags/%D8%A7%D8%B3%D9%86%D9%BE-%D8%B4%D8%A7%D8%AA-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA/ + \ No newline at end of file diff --git "a/docs/tags/\330\247\331\205\331\210\330\262\330\264-rust/index.html" "b/docs/tags/\330\247\331\205\331\210\330\262\330\264-rust/index.html" index 20d3b6d..9706e64 100644 --- "a/docs/tags/\330\247\331\205\331\210\330\262\330\264-rust/index.html" +++ "b/docs/tags/\330\247\331\205\331\210\330\262\330\264-rust/index.html" @@ -1,559 +1,37 @@ - - - - -Tag: اموزش Rust - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

اموزش Rust

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: اموزش Rust - bit-orbit +

Tags

1 صفحه

اموزش Rust

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git "a/docs/tags/\330\247\331\205\331\210\330\262\330\264-rust/index.xml" "b/docs/tags/\330\247\331\205\331\210\330\262\330\264-rust/index.xml" index 47bcd56..d215cc2 100644 --- "a/docs/tags/\330\247\331\205\331\210\330\262\330\264-rust/index.xml" +++ "b/docs/tags/\330\247\331\205\331\210\330\262\330\264-rust/index.xml" @@ -1,39 +1,20 @@ - - - - اموزش Rust on bit-orbit - https://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-rust/ - Recent content in اموزش Rust on bit-orbit - Hugo -- gohugo.io - fa - Sun, 31 Dec 2023 00:00:00 +0000 - Rust - https://bit-orbit.github.io/rust/ - Sun, 31 Dec 2023 00:00:00 +0000 - - https://bit-orbit.github.io/rust/ - <img src="https://bit-orbit.github.io/images/post/rust.png" alt="Featured image of post Rust" /><p>من مدتی هست که دارم زبان +اموزش Rust on bit-orbithttps://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-rust/Recent content in اموزش Rust on bit-orbitHugo -- gohugo.iofaSun, 31 Dec 2023 00:00:00 +0000Rusthttps://bit-orbit.github.io/rust/Sun, 31 Dec 2023 00:00:00 +0000https://bit-orbit.github.io/rust/<img src="https://bit-orbit.github.io/images/post/rust.png" alt="Featured image of post Rust" /><p>من مدتی هست که دارم زبان rust رو یاد می‌گیرم، توی این تایمی که خودم یادش می‌گیرم، یک خلاصه‌ای هم از آموزش هایی که می‌بینم رو اینجا در پست های مجزا می‌نویسم. اینطوری هم برای خودم نوت دارم و هم -شما :)</p> -<p>هر پست آموزش +شما :)</p> +<p>هر پست آموزش rust که می‌نویسم رو اینجا لیست می‌کنم که -به راحتی در دسترس باشند.</p> -<blockquote> -<p>بعنوان نکته بگم که توی این مجموعه از پست ها، قرار نیست +به راحتی در دسترس باشند.</p> +<blockquote> +<p>بعنوان نکته بگم که توی این مجموعه از پست ها، قرار نیست برنامه نویسی را از صفر یاد بگیریم، صرفا سینتکس زبان rust -را یاد می‌گیریم.</p> -</blockquote> -<hr> -<ul> -<li><a class="link" href="https://bit-orbit.github.io/p/%d9%85%d8%aa%d8%ba%db%8c%d8%b1-%d8%af%d8%b1-rust/" >متغییر ها در rust</a></li> -</ul> - - - - - +را یاد می‌گیریم.</p> +</blockquote> +<hr> +<ul> +<li><a class="link" href="https://bit-orbit.github.io/p/%d9%85%d8%aa%d8%ba%db%8c%d8%b1-%d8%af%d8%b1-rust/" >متغییر ها در rust</a></li> +</ul> \ No newline at end of file diff --git "a/docs/tags/\330\247\331\205\331\210\330\262\330\264-rust/page/1/index.html" "b/docs/tags/\330\247\331\205\331\210\330\262\330\264-rust/page/1/index.html" index 7ad0841..437c258 100644 --- "a/docs/tags/\330\247\331\205\331\210\330\262\330\264-rust/page/1/index.html" +++ "b/docs/tags/\330\247\331\205\331\210\330\262\330\264-rust/page/1/index.html" @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-rust/ - - - - - - +https://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-rust/ + \ No newline at end of file diff --git "a/docs/tags/\330\247\331\205\331\210\330\262\330\264-\330\261\330\247\330\263\330\252/index.html" "b/docs/tags/\330\247\331\205\331\210\330\262\330\264-\330\261\330\247\330\263\330\252/index.html" index e1f1547..0854a5a 100644 --- "a/docs/tags/\330\247\331\205\331\210\330\262\330\264-\330\261\330\247\330\263\330\252/index.html" +++ "b/docs/tags/\330\247\331\205\331\210\330\262\330\264-\330\261\330\247\330\263\330\252/index.html" @@ -1,559 +1,37 @@ - - - - -Tag: اموزش راست - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

اموزش راست

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: اموزش راست - bit-orbit +

Tags

1 صفحه

اموزش راست

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git "a/docs/tags/\330\247\331\205\331\210\330\262\330\264-\330\261\330\247\330\263\330\252/index.xml" "b/docs/tags/\330\247\331\205\331\210\330\262\330\264-\330\261\330\247\330\263\330\252/index.xml" index 60b9347..8d40842 100644 --- "a/docs/tags/\330\247\331\205\331\210\330\262\330\264-\330\261\330\247\330\263\330\252/index.xml" +++ "b/docs/tags/\330\247\331\205\331\210\330\262\330\264-\330\261\330\247\330\263\330\252/index.xml" @@ -1,39 +1,20 @@ - - - - اموزش راست on bit-orbit - https://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-%D8%B1%D8%A7%D8%B3%D8%AA/ - Recent content in اموزش راست on bit-orbit - Hugo -- gohugo.io - fa - Sun, 31 Dec 2023 00:00:00 +0000 - Rust - https://bit-orbit.github.io/rust/ - Sun, 31 Dec 2023 00:00:00 +0000 - - https://bit-orbit.github.io/rust/ - <img src="https://bit-orbit.github.io/images/post/rust.png" alt="Featured image of post Rust" /><p>من مدتی هست که دارم زبان +اموزش راست on bit-orbithttps://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-%D8%B1%D8%A7%D8%B3%D8%AA/Recent content in اموزش راست on bit-orbitHugo -- gohugo.iofaSun, 31 Dec 2023 00:00:00 +0000Rusthttps://bit-orbit.github.io/rust/Sun, 31 Dec 2023 00:00:00 +0000https://bit-orbit.github.io/rust/<img src="https://bit-orbit.github.io/images/post/rust.png" alt="Featured image of post Rust" /><p>من مدتی هست که دارم زبان rust رو یاد می‌گیرم، توی این تایمی که خودم یادش می‌گیرم، یک خلاصه‌ای هم از آموزش هایی که می‌بینم رو اینجا در پست های مجزا می‌نویسم. اینطوری هم برای خودم نوت دارم و هم -شما :)</p> -<p>هر پست آموزش +شما :)</p> +<p>هر پست آموزش rust که می‌نویسم رو اینجا لیست می‌کنم که -به راحتی در دسترس باشند.</p> -<blockquote> -<p>بعنوان نکته بگم که توی این مجموعه از پست ها، قرار نیست +به راحتی در دسترس باشند.</p> +<blockquote> +<p>بعنوان نکته بگم که توی این مجموعه از پست ها، قرار نیست برنامه نویسی را از صفر یاد بگیریم، صرفا سینتکس زبان rust -را یاد می‌گیریم.</p> -</blockquote> -<hr> -<ul> -<li><a class="link" href="https://bit-orbit.github.io/p/%d9%85%d8%aa%d8%ba%db%8c%d8%b1-%d8%af%d8%b1-rust/" >متغییر ها در rust</a></li> -</ul> - - - - - +را یاد می‌گیریم.</p> +</blockquote> +<hr> +<ul> +<li><a class="link" href="https://bit-orbit.github.io/p/%d9%85%d8%aa%d8%ba%db%8c%d8%b1-%d8%af%d8%b1-rust/" >متغییر ها در rust</a></li> +</ul> \ No newline at end of file diff --git "a/docs/tags/\330\247\331\205\331\210\330\262\330\264-\330\261\330\247\330\263\330\252/page/1/index.html" "b/docs/tags/\330\247\331\205\331\210\330\262\330\264-\330\261\330\247\330\263\330\252/page/1/index.html" index a49ef77..d0dcbb2 100644 --- "a/docs/tags/\330\247\331\205\331\210\330\262\330\264-\330\261\330\247\330\263\330\252/page/1/index.html" +++ "b/docs/tags/\330\247\331\205\331\210\330\262\330\264-\330\261\330\247\330\263\330\252/page/1/index.html" @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-%D8%B1%D8%A7%D8%B3%D8%AA/ - - - - - - +https://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-%D8%B1%D8%A7%D8%B3%D8%AA/ + \ No newline at end of file diff --git "a/docs/tags/\330\247\331\205\331\210\330\262\330\264-\330\262\330\250\330\247\331\206-rust/index.html" "b/docs/tags/\330\247\331\205\331\210\330\262\330\264-\330\262\330\250\330\247\331\206-rust/index.html" index eb72e73..9207eca 100644 --- "a/docs/tags/\330\247\331\205\331\210\330\262\330\264-\330\262\330\250\330\247\331\206-rust/index.html" +++ "b/docs/tags/\330\247\331\205\331\210\330\262\330\264-\330\262\330\250\330\247\331\206-rust/index.html" @@ -1,576 +1,37 @@ - - - - -Tag: اموزش زبان Rust - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

2 صفحه

-

اموزش زبان Rust

- -
-
-
- -
- - - - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: اموزش زبان Rust - bit-orbit + \ No newline at end of file diff --git "a/docs/tags/\330\247\331\205\331\210\330\262\330\264-\330\262\330\250\330\247\331\206-rust/index.xml" "b/docs/tags/\330\247\331\205\331\210\330\262\330\264-\330\262\330\250\330\247\331\206-rust/index.xml" index 54d75ac..a1be6d4 100644 --- "a/docs/tags/\330\247\331\205\331\210\330\262\330\264-\330\262\330\250\330\247\331\206-rust/index.xml" +++ "b/docs/tags/\330\247\331\205\331\210\330\262\330\264-\330\262\330\250\330\247\331\206-rust/index.xml" @@ -1,227 +1,200 @@ - - - - اموزش زبان Rust on bit-orbit - https://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-rust/ - Recent content in اموزش زبان Rust on bit-orbit - Hugo -- gohugo.io - fa - Wed, 03 Jan 2024 01:30:52 +0330 - انواع داده های اولیه در rust - https://bit-orbit.github.io/p/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%D9%88%D9%84%DB%8C%D9%87-%D8%AF%D8%B1-rust/ - Wed, 03 Jan 2024 01:30:52 +0330 - - https://bit-orbit.github.io/p/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%D9%88%D9%84%DB%8C%D9%87-%D8%AF%D8%B1-rust/ - <img src="https://bit-orbit.github.io/images/post/rustdatatypes.jpg" alt="Featured image of post انواع داده های اولیه در rust" /><p>هر زبان برنامه نویسی انواعی از داده ها رو داره، مثلا +اموزش زبان Rust on bit-orbithttps://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-rust/Recent content in اموزش زبان Rust on bit-orbitHugo -- gohugo.iofaWed, 03 Jan 2024 01:30:52 +0330انواع داده های اولیه در rusthttps://bit-orbit.github.io/p/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%D9%88%D9%84%DB%8C%D9%87-%D8%AF%D8%B1-rust/Wed, 03 Jan 2024 01:30:52 +0330https://bit-orbit.github.io/p/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%D9%88%D9%84%DB%8C%D9%87-%D8%AF%D8%B1-rust/<img src="https://bit-orbit.github.io/images/post/rustdatatypes.jpg" alt="Featured image of post انواع داده های اولیه در rust" /><p>هر زبان برنامه نویسی انواعی از داده ها رو داره، مثلا داده های عددی، کاراکتر و یا رشته‌ای از کاراکتر ها. زبان rust هم انواع داده‌ای زیادی رو پشتیبانی می‌کنه و خب حتی اگر جایی کمبودی حس کردین، می‌توانید ساختار داده‌ی خودتان -را بسازید.</p> -<blockquote> -<p>‌ انواع داده ترجمه‌ی کلمه +را بسازید.</p> +<blockquote> +<p>‌ انواع داده ترجمه‌ی کلمه data type هست. و خب برای من استفاده از کلمه انگلیسی‌اش خیلی راحت -تره.</p> -</blockquote> -<h4 id="نوع-داده-عدد-صحیح">نوع داده عدد صحیح</h4> -<p>همینطور که می‌دونید عدد صحیح از منفی بی‌نهایت تا مثبت -بی‌نهایت است(بدون هیچ علامت کسر، رادیکال و بدون اعشار).</p> -<p>این نوع داده در +تره.</p> +</blockquote> +<h4 id="نوع-داده-عدد-صحیح">نوع داده عدد صحیح +</h4><p>همینطور که می‌دونید عدد صحیح از منفی بی‌نهایت تا مثبت +بی‌نهایت است(بدون هیچ علامت کسر، رادیکال و بدون اعشار).</p> +<p>این نوع داده در rust -به این صورت است</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">variable_name</span>: <span class="kt">i32</span> <span class="o">=</span><span class="w"> </span><span class="o">-</span><span class="mi">2147483648</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">variable_name</span>: <span class="kt">i32</span> <span class="o">=</span><span class="w"> </span><span class="mi">2147483647</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><p>به این باید دقت کنیم که هر متغییری مقداری فضا نیاز دارد +به این صورت است</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">variable_name</span>: <span class="kt">i32</span> <span class="o">=</span><span class="w"> </span><span class="o">-</span><span class="mi">2147483648</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">variable_name</span>: <span class="kt">i32</span> <span class="o">=</span><span class="w"> </span><span class="mi">2147483647</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><p>به این باید دقت کنیم که هر متغییری مقداری فضا نیاز دارد برای مثال این نوع داده که داده اصلی است به پنج صورت پیاده سازی می‌شود i8, i16, i32, i64, i128 اعداد پس از کاراکتر i نشان دهنده تعداد بیت هایی است که این نوع متغییر می‌تواند -اشغال کند. مثلا i128 می‌تواند به اندازه 128 بیت فضا اشغال کند.</p> -<h4 id="نوع-داده-عدد-اعشاری">نوع داده عدد اعشاری</h4> -<p>این نوع داده هم مثل نوع عدد صحیح است اما با این تفاوت که اعداد اعشاری را درون خودش ذخیره می‌کند</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">variable_name</span>: <span class="kt">f32</span> <span class="o">=</span><span class="w"> </span><span class="mf">3.14</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">variable_name</span>: <span class="kt">f32</span> <span class="o">=</span><span class="w"> </span><span class="o">-</span><span class="mf">3.14</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="نوع-داده-کاراکتر">نوع داده کاراکتر</h4> -<p>کاراکتر نوع داده‌ای است که فقط یک مقدار از حروف الفبا یا عدد و یا سیمبول را می‌تواند درون +اشغال کند. مثلا i128 می‌تواند به اندازه 128 بیت فضا اشغال کند.</p> +<h4 id="نوع-داده-عدد-اعشاری">نوع داده عدد اعشاری +</h4><p>این نوع داده هم مثل نوع عدد صحیح است اما با این تفاوت که اعداد اعشاری را درون خودش ذخیره می‌کند</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">variable_name</span>: <span class="kt">f32</span> <span class="o">=</span><span class="w"> </span><span class="mf">3.14</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">variable_name</span>: <span class="kt">f32</span> <span class="o">=</span><span class="w"> </span><span class="o">-</span><span class="mf">3.14</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="نوع-داده-کاراکتر">نوع داده کاراکتر +</h4><p>کاراکتر نوع داده‌ای است که فقط یک مقدار از حروف الفبا یا عدد و یا سیمبول را می‌تواند درون خودش ذخیره کند. پس باید به اندازه 8 بیت فضا اشغال کند اما به دلیل اینکه کاراکتر های زبان های دیگر را هم بتواند ذخیره کند از انکدینگ(encoding) utf-16 -استفاده می‌کند که 16 بیت فضا اشغال می‌کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">a</span>: <span class="kt">char</span> <span class="o">=</span><span class="w"> </span><span class="sc">&#39;a&#39;</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="داده-stringرشتهای-از-کاراکتر-ها">داده string(رشته‌ای از کاراکتر ها)</h4> -<p>String +استفاده می‌کند که 16 بیت فضا اشغال می‌کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">a</span>: <span class="kt">char</span> <span class="o">=</span><span class="w"> </span><span class="sc">&#39;a&#39;</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="داده-stringرشتهای-از-کاراکتر-ها">داده string(رشته‌ای از کاراکتر ها) +</h4><p>String نوع داده‌ای است که درواقع رشته‌ای از کاراکتر ها را درون یک نوع vector -ذخیره می‌کند.</p> -<blockquote> -<p>این نکته را هم بگم که +ذخیره می‌کند.</p> +<blockquote> +<p>این نکته را هم بگم که encoding رشته UTF-8 -است. به این معنی که هر نوع کاراکتری را می‌تواند داخل خودش ذخیره کند حتی ایموجی.</p> -</blockquote> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">heart</span>: <span class="nb">String</span> <span class="o">=</span><span class="w"> </span><span class="nb">String</span>::<span class="n">from</span><span class="p">(</span><span class="s">&#34;♥&#34;</span><span class="p">);</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="نوع-داده-منطقی">نوع داده منطقی</h4> -<p>نوع داده منطقی به اسم +است. به این معنی که هر نوع کاراکتری را می‌تواند داخل خودش ذخیره کند حتی ایموجی.</p> +</blockquote> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">heart</span>: <span class="nb">String</span> <span class="o">=</span><span class="w"> </span><span class="nb">String</span>::<span class="n">from</span><span class="p">(</span><span class="s">&#34;♥&#34;</span><span class="p">);</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="نوع-داده-منطقی">نوع داده منطقی +</h4><p>نوع داده منطقی به اسم boolian است. این نوع مقدار هایt true و یا false -را ذخیره می‌کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">is_good</span>: <span class="kt">bool</span> <span class="o">=</span><span class="w"> </span><span class="kc">true</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="نوع-داده-ترکیبی">نوع داده ترکیبی</h4> -<p>این نوع داده ها را توی پست های مجزا توضیح می‌دم.</p> -<ul> -<li>tuple</li> -<li>array</li> -<li>list</li> -<li>vector</li> -</ul> - - - - متغیر در rust - https://bit-orbit.github.io/p/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-rust/ - Mon, 01 Jan 2024 01:39:05 +0330 - - https://bit-orbit.github.io/p/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-rust/ - <img src="https://bit-orbit.github.io/images/post/datatypes-rust.jpg" alt="Featured image of post متغیر در rust" /><h4 id="تعریف-متغیر">تعریف متغیر</h4> -<p>در هر زبانی تعریف متغیر سینتکس خودش را دارد. +را ذخیره می‌کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">is_good</span>: <span class="kt">bool</span> <span class="o">=</span><span class="w"> </span><span class="kc">true</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="نوع-داده-ترکیبی">نوع داده ترکیبی +</h4><p>این نوع داده ها را توی پست های مجزا توضیح می‌دم.</p> +<ul> +<li>tuple</li> +<li>array</li> +<li>list</li> +<li>vector</li> +</ul>متغیر در rusthttps://bit-orbit.github.io/p/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-rust/Mon, 01 Jan 2024 01:39:05 +0330https://bit-orbit.github.io/p/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-rust/<img src="https://bit-orbit.github.io/images/post/datatypes-rust.jpg" alt="Featured image of post متغیر در rust" /><h4 id="تعریف-متغیر">تعریف متغیر +</h4><p>در هر زبانی تعریف متغیر سینتکس خودش را دارد. مثلا اگر زبان های خانواده c را کار کرده باشید (مثل c++, c#) متوجه می‌شوید که نوع داده‌ای متغیر، قبل از اسم آن تعریف می‌شود. و یا مثلا توی زبان پایتون تعریف نوع داده‌ای -یک متغیر حتی اهمیتی هم ندارد!</p> -<blockquote> -<p>انواع نوع داده یا +یک متغیر حتی اهمیتی هم ندارد!</p> +<blockquote> +<p>انواع نوع داده یا date types -را توی پست بعدی می‌نویسم</p> -</blockquote> -<p>توی زبان +را توی پست بعدی می‌نویسم</p> +</blockquote> +<p>توی زبان rust بعد از اسم متغیر، نوع آن نوشته می‌شود. مثلا برای تعریف یک متغیر عددی به اندازه یک بایت از کلمه کلیدی -<code>i8</code> +<code>i8</code> بعد اسم استفاده می‌کنیم. البته قبل از اسم هر متغیر هم ما باید از کلمه کلیدی -<code>let</code> -استفاده کنیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="c1">//let name: type = value; -</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="kd">let</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="متغیر-های-تغییرپذیر">متغیر های تغییرپذیر</h4> -<p>توی زبان +<code>let</code> +استفاده کنیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="c1">//let name: type = value; +</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="kd">let</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="متغیر-های-تغییرپذیر">متغیر های تغییرپذیر +</h4><p>توی زبان rust هر متغیری که تعریف می‌کنیم غیر قابل تغیر است. توی مثال بالا من پیشفرض مقدار 22 را برای متغیر age قرار داده‌ام، حالا اگر بخواهم مقدار آن را -به 23 تغیر بدهم به ارور می‌خورم</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt">10 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">error</span><span class="p">[</span><span class="n">E0384</span><span class="p">]</span>: <span class="nc">cannot</span><span class="w"> </span><span class="n">assign</span><span class="w"> </span><span class="n">twice</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">immutable</span><span class="w"> </span><span class="n">variable</span><span class="w"> </span><span class="err">`</span><span class="n">age</span><span class="err">`</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">-</span>-&gt; <span class="nc">src</span><span class="o">/</span><span class="n">main</span><span class="p">.</span><span class="n">rs</span>:<span class="mi">3</span>:<span class="mi">5</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">---</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">first</span><span class="w"> </span><span class="n">assignment</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="err">`</span><span class="n">age</span><span class="err">`</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">help</span>: <span class="nc">consider</span><span class="w"> </span><span class="n">making</span><span class="w"> </span><span class="n">this</span><span class="w"> </span><span class="n">binding</span><span class="w"> </span><span class="n">mutable</span>: <span class="err">`</span><span class="k">mut</span><span class="w"> </span><span class="n">age</span><span class="err">`</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="mi">3</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">^^^^^^^^</span><span class="w"> </span><span class="n">cannot</span><span class="w"> </span><span class="n">assign</span><span class="w"> </span><span class="n">twice</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">immutable</span><span class="w"> </span><span class="n">variable</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><p>خب برای همین اگر می‌خواهیم مقدار متغیری را تغییر +به 23 تغیر بدهم به ارور می‌خورم</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">error</span><span class="p">[</span><span class="n">E0384</span><span class="p">]</span>: <span class="nc">cannot</span><span class="w"> </span><span class="n">assign</span><span class="w"> </span><span class="n">twice</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">immutable</span><span class="w"> </span><span class="n">variable</span><span class="w"> </span><span class="err">`</span><span class="n">age</span><span class="err">`</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">-</span>-&gt; <span class="nc">src</span><span class="o">/</span><span class="n">main</span><span class="p">.</span><span class="n">rs</span>:<span class="mi">3</span>:<span class="mi">5</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">---</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">first</span><span class="w"> </span><span class="n">assignment</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="err">`</span><span class="n">age</span><span class="err">`</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">help</span>: <span class="nc">consider</span><span class="w"> </span><span class="n">making</span><span class="w"> </span><span class="n">this</span><span class="w"> </span><span class="n">binding</span><span class="w"> </span><span class="n">mutable</span>: <span class="err">`</span><span class="k">mut</span><span class="w"> </span><span class="n">age</span><span class="err">`</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="mi">3</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">^^^^^^^^</span><span class="w"> </span><span class="n">cannot</span><span class="w"> </span><span class="n">assign</span><span class="w"> </span><span class="n">twice</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">immutable</span><span class="w"> </span><span class="n">variable</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><p>خب برای همین اگر می‌خواهیم مقدار متغیری را تغییر بدهیم آن را باید از اول مشخص کنیم. مشخص کردن آن با کلمه کلیدی -<code>mut</code> +<code>mut</code> بعد از کلمه -<code>let</code> +<code>let</code> است. کلمه mut مخفف -<strong>mutable</strong> +<strong>mutable</strong> به معنی -<strong>قابل تغییر</strong> -است. خب بیایید اینکار را برای مثال اولیه انجام بدهیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div> - - - - +<strong>قابل تغییر</strong> +است. خب بیایید اینکار را برای مثال اولیه انجام بدهیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div> \ No newline at end of file diff --git "a/docs/tags/\330\247\331\205\331\210\330\262\330\264-\330\262\330\250\330\247\331\206-rust/page/1/index.html" "b/docs/tags/\330\247\331\205\331\210\330\262\330\264-\330\262\330\250\330\247\331\206-rust/page/1/index.html" index 3c593bd..4f911b7 100644 --- "a/docs/tags/\330\247\331\205\331\210\330\262\330\264-\330\262\330\250\330\247\331\206-rust/page/1/index.html" +++ "b/docs/tags/\330\247\331\205\331\210\330\262\330\264-\330\262\330\250\330\247\331\206-rust/page/1/index.html" @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-rust/ - - - - - - +https://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-rust/ + \ No newline at end of file diff --git "a/docs/tags/\330\247\331\205\331\210\330\262\330\264-\330\262\330\250\330\247\331\206-\330\261\330\247\330\263\330\252/index.html" "b/docs/tags/\330\247\331\205\331\210\330\262\330\264-\330\262\330\250\330\247\331\206-\330\261\330\247\330\263\330\252/index.html" index 8227152..2f86bd4 100644 --- "a/docs/tags/\330\247\331\205\331\210\330\262\330\264-\330\262\330\250\330\247\331\206-\330\261\330\247\330\263\330\252/index.html" +++ "b/docs/tags/\330\247\331\205\331\210\330\262\330\264-\330\262\330\250\330\247\331\206-\330\261\330\247\330\263\330\252/index.html" @@ -1,576 +1,37 @@ - - - - -Tag: اموزش زبان راست - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

2 صفحه

-

اموزش زبان راست

- -
-
-
- -
- - - - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: اموزش زبان راست - bit-orbit + \ No newline at end of file diff --git "a/docs/tags/\330\247\331\205\331\210\330\262\330\264-\330\262\330\250\330\247\331\206-\330\261\330\247\330\263\330\252/index.xml" "b/docs/tags/\330\247\331\205\331\210\330\262\330\264-\330\262\330\250\330\247\331\206-\330\261\330\247\330\263\330\252/index.xml" index 623d33a..5a64114 100644 --- "a/docs/tags/\330\247\331\205\331\210\330\262\330\264-\330\262\330\250\330\247\331\206-\330\261\330\247\330\263\330\252/index.xml" +++ "b/docs/tags/\330\247\331\205\331\210\330\262\330\264-\330\262\330\250\330\247\331\206-\330\261\330\247\330\263\330\252/index.xml" @@ -1,227 +1,200 @@ - - - - اموزش زبان راست on bit-orbit - https://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-%D8%B1%D8%A7%D8%B3%D8%AA/ - Recent content in اموزش زبان راست on bit-orbit - Hugo -- gohugo.io - fa - Wed, 03 Jan 2024 01:30:52 +0330 - انواع داده های اولیه در rust - https://bit-orbit.github.io/p/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%D9%88%D9%84%DB%8C%D9%87-%D8%AF%D8%B1-rust/ - Wed, 03 Jan 2024 01:30:52 +0330 - - https://bit-orbit.github.io/p/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%D9%88%D9%84%DB%8C%D9%87-%D8%AF%D8%B1-rust/ - <img src="https://bit-orbit.github.io/images/post/rustdatatypes.jpg" alt="Featured image of post انواع داده های اولیه در rust" /><p>هر زبان برنامه نویسی انواعی از داده ها رو داره، مثلا +اموزش زبان راست on bit-orbithttps://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-%D8%B1%D8%A7%D8%B3%D8%AA/Recent content in اموزش زبان راست on bit-orbitHugo -- gohugo.iofaWed, 03 Jan 2024 01:30:52 +0330انواع داده های اولیه در rusthttps://bit-orbit.github.io/p/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%D9%88%D9%84%DB%8C%D9%87-%D8%AF%D8%B1-rust/Wed, 03 Jan 2024 01:30:52 +0330https://bit-orbit.github.io/p/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%D9%88%D9%84%DB%8C%D9%87-%D8%AF%D8%B1-rust/<img src="https://bit-orbit.github.io/images/post/rustdatatypes.jpg" alt="Featured image of post انواع داده های اولیه در rust" /><p>هر زبان برنامه نویسی انواعی از داده ها رو داره، مثلا داده های عددی، کاراکتر و یا رشته‌ای از کاراکتر ها. زبان rust هم انواع داده‌ای زیادی رو پشتیبانی می‌کنه و خب حتی اگر جایی کمبودی حس کردین، می‌توانید ساختار داده‌ی خودتان -را بسازید.</p> -<blockquote> -<p>‌ انواع داده ترجمه‌ی کلمه +را بسازید.</p> +<blockquote> +<p>‌ انواع داده ترجمه‌ی کلمه data type هست. و خب برای من استفاده از کلمه انگلیسی‌اش خیلی راحت -تره.</p> -</blockquote> -<h4 id="نوع-داده-عدد-صحیح">نوع داده عدد صحیح</h4> -<p>همینطور که می‌دونید عدد صحیح از منفی بی‌نهایت تا مثبت -بی‌نهایت است(بدون هیچ علامت کسر، رادیکال و بدون اعشار).</p> -<p>این نوع داده در +تره.</p> +</blockquote> +<h4 id="نوع-داده-عدد-صحیح">نوع داده عدد صحیح +</h4><p>همینطور که می‌دونید عدد صحیح از منفی بی‌نهایت تا مثبت +بی‌نهایت است(بدون هیچ علامت کسر، رادیکال و بدون اعشار).</p> +<p>این نوع داده در rust -به این صورت است</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">variable_name</span>: <span class="kt">i32</span> <span class="o">=</span><span class="w"> </span><span class="o">-</span><span class="mi">2147483648</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">variable_name</span>: <span class="kt">i32</span> <span class="o">=</span><span class="w"> </span><span class="mi">2147483647</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><p>به این باید دقت کنیم که هر متغییری مقداری فضا نیاز دارد +به این صورت است</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">variable_name</span>: <span class="kt">i32</span> <span class="o">=</span><span class="w"> </span><span class="o">-</span><span class="mi">2147483648</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">variable_name</span>: <span class="kt">i32</span> <span class="o">=</span><span class="w"> </span><span class="mi">2147483647</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><p>به این باید دقت کنیم که هر متغییری مقداری فضا نیاز دارد برای مثال این نوع داده که داده اصلی است به پنج صورت پیاده سازی می‌شود i8, i16, i32, i64, i128 اعداد پس از کاراکتر i نشان دهنده تعداد بیت هایی است که این نوع متغییر می‌تواند -اشغال کند. مثلا i128 می‌تواند به اندازه 128 بیت فضا اشغال کند.</p> -<h4 id="نوع-داده-عدد-اعشاری">نوع داده عدد اعشاری</h4> -<p>این نوع داده هم مثل نوع عدد صحیح است اما با این تفاوت که اعداد اعشاری را درون خودش ذخیره می‌کند</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">variable_name</span>: <span class="kt">f32</span> <span class="o">=</span><span class="w"> </span><span class="mf">3.14</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">variable_name</span>: <span class="kt">f32</span> <span class="o">=</span><span class="w"> </span><span class="o">-</span><span class="mf">3.14</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="نوع-داده-کاراکتر">نوع داده کاراکتر</h4> -<p>کاراکتر نوع داده‌ای است که فقط یک مقدار از حروف الفبا یا عدد و یا سیمبول را می‌تواند درون +اشغال کند. مثلا i128 می‌تواند به اندازه 128 بیت فضا اشغال کند.</p> +<h4 id="نوع-داده-عدد-اعشاری">نوع داده عدد اعشاری +</h4><p>این نوع داده هم مثل نوع عدد صحیح است اما با این تفاوت که اعداد اعشاری را درون خودش ذخیره می‌کند</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">variable_name</span>: <span class="kt">f32</span> <span class="o">=</span><span class="w"> </span><span class="mf">3.14</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">variable_name</span>: <span class="kt">f32</span> <span class="o">=</span><span class="w"> </span><span class="o">-</span><span class="mf">3.14</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="نوع-داده-کاراکتر">نوع داده کاراکتر +</h4><p>کاراکتر نوع داده‌ای است که فقط یک مقدار از حروف الفبا یا عدد و یا سیمبول را می‌تواند درون خودش ذخیره کند. پس باید به اندازه 8 بیت فضا اشغال کند اما به دلیل اینکه کاراکتر های زبان های دیگر را هم بتواند ذخیره کند از انکدینگ(encoding) utf-16 -استفاده می‌کند که 16 بیت فضا اشغال می‌کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">a</span>: <span class="kt">char</span> <span class="o">=</span><span class="w"> </span><span class="sc">&#39;a&#39;</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="داده-stringرشتهای-از-کاراکتر-ها">داده string(رشته‌ای از کاراکتر ها)</h4> -<p>String +استفاده می‌کند که 16 بیت فضا اشغال می‌کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">a</span>: <span class="kt">char</span> <span class="o">=</span><span class="w"> </span><span class="sc">&#39;a&#39;</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="داده-stringرشتهای-از-کاراکتر-ها">داده string(رشته‌ای از کاراکتر ها) +</h4><p>String نوع داده‌ای است که درواقع رشته‌ای از کاراکتر ها را درون یک نوع vector -ذخیره می‌کند.</p> -<blockquote> -<p>این نکته را هم بگم که +ذخیره می‌کند.</p> +<blockquote> +<p>این نکته را هم بگم که encoding رشته UTF-8 -است. به این معنی که هر نوع کاراکتری را می‌تواند داخل خودش ذخیره کند حتی ایموجی.</p> -</blockquote> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">heart</span>: <span class="nb">String</span> <span class="o">=</span><span class="w"> </span><span class="nb">String</span>::<span class="n">from</span><span class="p">(</span><span class="s">&#34;♥&#34;</span><span class="p">);</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="نوع-داده-منطقی">نوع داده منطقی</h4> -<p>نوع داده منطقی به اسم +است. به این معنی که هر نوع کاراکتری را می‌تواند داخل خودش ذخیره کند حتی ایموجی.</p> +</blockquote> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">heart</span>: <span class="nb">String</span> <span class="o">=</span><span class="w"> </span><span class="nb">String</span>::<span class="n">from</span><span class="p">(</span><span class="s">&#34;♥&#34;</span><span class="p">);</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="نوع-داده-منطقی">نوع داده منطقی +</h4><p>نوع داده منطقی به اسم boolian است. این نوع مقدار هایt true و یا false -را ذخیره می‌کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">is_good</span>: <span class="kt">bool</span> <span class="o">=</span><span class="w"> </span><span class="kc">true</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="نوع-داده-ترکیبی">نوع داده ترکیبی</h4> -<p>این نوع داده ها را توی پست های مجزا توضیح می‌دم.</p> -<ul> -<li>tuple</li> -<li>array</li> -<li>list</li> -<li>vector</li> -</ul> - - - - متغیر در rust - https://bit-orbit.github.io/p/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-rust/ - Mon, 01 Jan 2024 01:39:05 +0330 - - https://bit-orbit.github.io/p/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-rust/ - <img src="https://bit-orbit.github.io/images/post/datatypes-rust.jpg" alt="Featured image of post متغیر در rust" /><h4 id="تعریف-متغیر">تعریف متغیر</h4> -<p>در هر زبانی تعریف متغیر سینتکس خودش را دارد. +را ذخیره می‌کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">is_good</span>: <span class="kt">bool</span> <span class="o">=</span><span class="w"> </span><span class="kc">true</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="نوع-داده-ترکیبی">نوع داده ترکیبی +</h4><p>این نوع داده ها را توی پست های مجزا توضیح می‌دم.</p> +<ul> +<li>tuple</li> +<li>array</li> +<li>list</li> +<li>vector</li> +</ul>متغیر در rusthttps://bit-orbit.github.io/p/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-rust/Mon, 01 Jan 2024 01:39:05 +0330https://bit-orbit.github.io/p/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-rust/<img src="https://bit-orbit.github.io/images/post/datatypes-rust.jpg" alt="Featured image of post متغیر در rust" /><h4 id="تعریف-متغیر">تعریف متغیر +</h4><p>در هر زبانی تعریف متغیر سینتکس خودش را دارد. مثلا اگر زبان های خانواده c را کار کرده باشید (مثل c++, c#) متوجه می‌شوید که نوع داده‌ای متغیر، قبل از اسم آن تعریف می‌شود. و یا مثلا توی زبان پایتون تعریف نوع داده‌ای -یک متغیر حتی اهمیتی هم ندارد!</p> -<blockquote> -<p>انواع نوع داده یا +یک متغیر حتی اهمیتی هم ندارد!</p> +<blockquote> +<p>انواع نوع داده یا date types -را توی پست بعدی می‌نویسم</p> -</blockquote> -<p>توی زبان +را توی پست بعدی می‌نویسم</p> +</blockquote> +<p>توی زبان rust بعد از اسم متغیر، نوع آن نوشته می‌شود. مثلا برای تعریف یک متغیر عددی به اندازه یک بایت از کلمه کلیدی -<code>i8</code> +<code>i8</code> بعد اسم استفاده می‌کنیم. البته قبل از اسم هر متغیر هم ما باید از کلمه کلیدی -<code>let</code> -استفاده کنیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="c1">//let name: type = value; -</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="kd">let</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="متغیر-های-تغییرپذیر">متغیر های تغییرپذیر</h4> -<p>توی زبان +<code>let</code> +استفاده کنیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="c1">//let name: type = value; +</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="kd">let</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="متغیر-های-تغییرپذیر">متغیر های تغییرپذیر +</h4><p>توی زبان rust هر متغیری که تعریف می‌کنیم غیر قابل تغیر است. توی مثال بالا من پیشفرض مقدار 22 را برای متغیر age قرار داده‌ام، حالا اگر بخواهم مقدار آن را -به 23 تغیر بدهم به ارور می‌خورم</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt">10 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">error</span><span class="p">[</span><span class="n">E0384</span><span class="p">]</span>: <span class="nc">cannot</span><span class="w"> </span><span class="n">assign</span><span class="w"> </span><span class="n">twice</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">immutable</span><span class="w"> </span><span class="n">variable</span><span class="w"> </span><span class="err">`</span><span class="n">age</span><span class="err">`</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">-</span>-&gt; <span class="nc">src</span><span class="o">/</span><span class="n">main</span><span class="p">.</span><span class="n">rs</span>:<span class="mi">3</span>:<span class="mi">5</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">---</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">first</span><span class="w"> </span><span class="n">assignment</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="err">`</span><span class="n">age</span><span class="err">`</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">help</span>: <span class="nc">consider</span><span class="w"> </span><span class="n">making</span><span class="w"> </span><span class="n">this</span><span class="w"> </span><span class="n">binding</span><span class="w"> </span><span class="n">mutable</span>: <span class="err">`</span><span class="k">mut</span><span class="w"> </span><span class="n">age</span><span class="err">`</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="mi">3</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">^^^^^^^^</span><span class="w"> </span><span class="n">cannot</span><span class="w"> </span><span class="n">assign</span><span class="w"> </span><span class="n">twice</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">immutable</span><span class="w"> </span><span class="n">variable</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><p>خب برای همین اگر می‌خواهیم مقدار متغیری را تغییر +به 23 تغیر بدهم به ارور می‌خورم</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">error</span><span class="p">[</span><span class="n">E0384</span><span class="p">]</span>: <span class="nc">cannot</span><span class="w"> </span><span class="n">assign</span><span class="w"> </span><span class="n">twice</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">immutable</span><span class="w"> </span><span class="n">variable</span><span class="w"> </span><span class="err">`</span><span class="n">age</span><span class="err">`</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">-</span>-&gt; <span class="nc">src</span><span class="o">/</span><span class="n">main</span><span class="p">.</span><span class="n">rs</span>:<span class="mi">3</span>:<span class="mi">5</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">---</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">first</span><span class="w"> </span><span class="n">assignment</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="err">`</span><span class="n">age</span><span class="err">`</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">help</span>: <span class="nc">consider</span><span class="w"> </span><span class="n">making</span><span class="w"> </span><span class="n">this</span><span class="w"> </span><span class="n">binding</span><span class="w"> </span><span class="n">mutable</span>: <span class="err">`</span><span class="k">mut</span><span class="w"> </span><span class="n">age</span><span class="err">`</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="mi">3</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">^^^^^^^^</span><span class="w"> </span><span class="n">cannot</span><span class="w"> </span><span class="n">assign</span><span class="w"> </span><span class="n">twice</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">immutable</span><span class="w"> </span><span class="n">variable</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><p>خب برای همین اگر می‌خواهیم مقدار متغیری را تغییر بدهیم آن را باید از اول مشخص کنیم. مشخص کردن آن با کلمه کلیدی -<code>mut</code> +<code>mut</code> بعد از کلمه -<code>let</code> +<code>let</code> است. کلمه mut مخفف -<strong>mutable</strong> +<strong>mutable</strong> به معنی -<strong>قابل تغییر</strong> -است. خب بیایید اینکار را برای مثال اولیه انجام بدهیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div> - - - - +<strong>قابل تغییر</strong> +است. خب بیایید اینکار را برای مثال اولیه انجام بدهیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div> \ No newline at end of file diff --git "a/docs/tags/\330\247\331\205\331\210\330\262\330\264-\330\262\330\250\330\247\331\206-\330\261\330\247\330\263\330\252/page/1/index.html" "b/docs/tags/\330\247\331\205\331\210\330\262\330\264-\330\262\330\250\330\247\331\206-\330\261\330\247\330\263\330\252/page/1/index.html" index e52d25e..3d71197 100644 --- "a/docs/tags/\330\247\331\205\331\210\330\262\330\264-\330\262\330\250\330\247\331\206-\330\261\330\247\330\263\330\252/page/1/index.html" +++ "b/docs/tags/\330\247\331\205\331\210\330\262\330\264-\330\262\330\250\330\247\331\206-\330\261\330\247\330\263\330\252/page/1/index.html" @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-%D8%B1%D8%A7%D8%B3%D8%AA/ - - - - - - +https://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-%D8%B1%D8%A7%D8%B3%D8%AA/ + \ No newline at end of file diff --git "a/docs/tags/\330\247\331\205\331\210\330\262\330\264-\331\201\330\247\330\261\330\263\333\214-\330\262\330\250\330\247\331\206-\330\261\330\247\330\263\330\252/index.html" "b/docs/tags/\330\247\331\205\331\210\330\262\330\264-\331\201\330\247\330\261\330\263\333\214-\330\262\330\250\330\247\331\206-\330\261\330\247\330\263\330\252/index.html" index d03500b..f7d0f62 100644 --- "a/docs/tags/\330\247\331\205\331\210\330\262\330\264-\331\201\330\247\330\261\330\263\333\214-\330\262\330\250\330\247\331\206-\330\261\330\247\330\263\330\252/index.html" +++ "b/docs/tags/\330\247\331\205\331\210\330\262\330\264-\331\201\330\247\330\261\330\263\333\214-\330\262\330\250\330\247\331\206-\330\261\330\247\330\263\330\252/index.html" @@ -1,576 +1,37 @@ - - - - -Tag: اموزش فارسی زبان راست - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

2 صفحه

-

اموزش فارسی زبان راست

- -
-
-
- -
- - - - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: اموزش فارسی زبان راست - bit-orbit +

Tags

2 صفحه

اموزش فارسی زبان راست

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git "a/docs/tags/\330\247\331\205\331\210\330\262\330\264-\331\201\330\247\330\261\330\263\333\214-\330\262\330\250\330\247\331\206-\330\261\330\247\330\263\330\252/index.xml" "b/docs/tags/\330\247\331\205\331\210\330\262\330\264-\331\201\330\247\330\261\330\263\333\214-\330\262\330\250\330\247\331\206-\330\261\330\247\330\263\330\252/index.xml" index 922f9ba..380e5d4 100644 --- "a/docs/tags/\330\247\331\205\331\210\330\262\330\264-\331\201\330\247\330\261\330\263\333\214-\330\262\330\250\330\247\331\206-\330\261\330\247\330\263\330\252/index.xml" +++ "b/docs/tags/\330\247\331\205\331\210\330\262\330\264-\331\201\330\247\330\261\330\263\333\214-\330\262\330\250\330\247\331\206-\330\261\330\247\330\263\330\252/index.xml" @@ -1,227 +1,200 @@ - - - - اموزش فارسی زبان راست on bit-orbit - https://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%B2%D8%A8%D8%A7%D9%86-%D8%B1%D8%A7%D8%B3%D8%AA/ - Recent content in اموزش فارسی زبان راست on bit-orbit - Hugo -- gohugo.io - fa - Wed, 03 Jan 2024 01:30:52 +0330 - انواع داده های اولیه در rust - https://bit-orbit.github.io/p/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%D9%88%D9%84%DB%8C%D9%87-%D8%AF%D8%B1-rust/ - Wed, 03 Jan 2024 01:30:52 +0330 - - https://bit-orbit.github.io/p/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%D9%88%D9%84%DB%8C%D9%87-%D8%AF%D8%B1-rust/ - <img src="https://bit-orbit.github.io/images/post/rustdatatypes.jpg" alt="Featured image of post انواع داده های اولیه در rust" /><p>هر زبان برنامه نویسی انواعی از داده ها رو داره، مثلا +اموزش فارسی زبان راست on bit-orbithttps://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%B2%D8%A8%D8%A7%D9%86-%D8%B1%D8%A7%D8%B3%D8%AA/Recent content in اموزش فارسی زبان راست on bit-orbitHugo -- gohugo.iofaWed, 03 Jan 2024 01:30:52 +0330انواع داده های اولیه در rusthttps://bit-orbit.github.io/p/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%D9%88%D9%84%DB%8C%D9%87-%D8%AF%D8%B1-rust/Wed, 03 Jan 2024 01:30:52 +0330https://bit-orbit.github.io/p/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%D9%88%D9%84%DB%8C%D9%87-%D8%AF%D8%B1-rust/<img src="https://bit-orbit.github.io/images/post/rustdatatypes.jpg" alt="Featured image of post انواع داده های اولیه در rust" /><p>هر زبان برنامه نویسی انواعی از داده ها رو داره، مثلا داده های عددی، کاراکتر و یا رشته‌ای از کاراکتر ها. زبان rust هم انواع داده‌ای زیادی رو پشتیبانی می‌کنه و خب حتی اگر جایی کمبودی حس کردین، می‌توانید ساختار داده‌ی خودتان -را بسازید.</p> -<blockquote> -<p>‌ انواع داده ترجمه‌ی کلمه +را بسازید.</p> +<blockquote> +<p>‌ انواع داده ترجمه‌ی کلمه data type هست. و خب برای من استفاده از کلمه انگلیسی‌اش خیلی راحت -تره.</p> -</blockquote> -<h4 id="نوع-داده-عدد-صحیح">نوع داده عدد صحیح</h4> -<p>همینطور که می‌دونید عدد صحیح از منفی بی‌نهایت تا مثبت -بی‌نهایت است(بدون هیچ علامت کسر، رادیکال و بدون اعشار).</p> -<p>این نوع داده در +تره.</p> +</blockquote> +<h4 id="نوع-داده-عدد-صحیح">نوع داده عدد صحیح +</h4><p>همینطور که می‌دونید عدد صحیح از منفی بی‌نهایت تا مثبت +بی‌نهایت است(بدون هیچ علامت کسر، رادیکال و بدون اعشار).</p> +<p>این نوع داده در rust -به این صورت است</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">variable_name</span>: <span class="kt">i32</span> <span class="o">=</span><span class="w"> </span><span class="o">-</span><span class="mi">2147483648</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">variable_name</span>: <span class="kt">i32</span> <span class="o">=</span><span class="w"> </span><span class="mi">2147483647</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><p>به این باید دقت کنیم که هر متغییری مقداری فضا نیاز دارد +به این صورت است</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">variable_name</span>: <span class="kt">i32</span> <span class="o">=</span><span class="w"> </span><span class="o">-</span><span class="mi">2147483648</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">variable_name</span>: <span class="kt">i32</span> <span class="o">=</span><span class="w"> </span><span class="mi">2147483647</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><p>به این باید دقت کنیم که هر متغییری مقداری فضا نیاز دارد برای مثال این نوع داده که داده اصلی است به پنج صورت پیاده سازی می‌شود i8, i16, i32, i64, i128 اعداد پس از کاراکتر i نشان دهنده تعداد بیت هایی است که این نوع متغییر می‌تواند -اشغال کند. مثلا i128 می‌تواند به اندازه 128 بیت فضا اشغال کند.</p> -<h4 id="نوع-داده-عدد-اعشاری">نوع داده عدد اعشاری</h4> -<p>این نوع داده هم مثل نوع عدد صحیح است اما با این تفاوت که اعداد اعشاری را درون خودش ذخیره می‌کند</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">variable_name</span>: <span class="kt">f32</span> <span class="o">=</span><span class="w"> </span><span class="mf">3.14</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">variable_name</span>: <span class="kt">f32</span> <span class="o">=</span><span class="w"> </span><span class="o">-</span><span class="mf">3.14</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="نوع-داده-کاراکتر">نوع داده کاراکتر</h4> -<p>کاراکتر نوع داده‌ای است که فقط یک مقدار از حروف الفبا یا عدد و یا سیمبول را می‌تواند درون +اشغال کند. مثلا i128 می‌تواند به اندازه 128 بیت فضا اشغال کند.</p> +<h4 id="نوع-داده-عدد-اعشاری">نوع داده عدد اعشاری +</h4><p>این نوع داده هم مثل نوع عدد صحیح است اما با این تفاوت که اعداد اعشاری را درون خودش ذخیره می‌کند</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">variable_name</span>: <span class="kt">f32</span> <span class="o">=</span><span class="w"> </span><span class="mf">3.14</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">variable_name</span>: <span class="kt">f32</span> <span class="o">=</span><span class="w"> </span><span class="o">-</span><span class="mf">3.14</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="نوع-داده-کاراکتر">نوع داده کاراکتر +</h4><p>کاراکتر نوع داده‌ای است که فقط یک مقدار از حروف الفبا یا عدد و یا سیمبول را می‌تواند درون خودش ذخیره کند. پس باید به اندازه 8 بیت فضا اشغال کند اما به دلیل اینکه کاراکتر های زبان های دیگر را هم بتواند ذخیره کند از انکدینگ(encoding) utf-16 -استفاده می‌کند که 16 بیت فضا اشغال می‌کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">a</span>: <span class="kt">char</span> <span class="o">=</span><span class="w"> </span><span class="sc">&#39;a&#39;</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="داده-stringرشتهای-از-کاراکتر-ها">داده string(رشته‌ای از کاراکتر ها)</h4> -<p>String +استفاده می‌کند که 16 بیت فضا اشغال می‌کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">a</span>: <span class="kt">char</span> <span class="o">=</span><span class="w"> </span><span class="sc">&#39;a&#39;</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="داده-stringرشتهای-از-کاراکتر-ها">داده string(رشته‌ای از کاراکتر ها) +</h4><p>String نوع داده‌ای است که درواقع رشته‌ای از کاراکتر ها را درون یک نوع vector -ذخیره می‌کند.</p> -<blockquote> -<p>این نکته را هم بگم که +ذخیره می‌کند.</p> +<blockquote> +<p>این نکته را هم بگم که encoding رشته UTF-8 -است. به این معنی که هر نوع کاراکتری را می‌تواند داخل خودش ذخیره کند حتی ایموجی.</p> -</blockquote> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">heart</span>: <span class="nb">String</span> <span class="o">=</span><span class="w"> </span><span class="nb">String</span>::<span class="n">from</span><span class="p">(</span><span class="s">&#34;♥&#34;</span><span class="p">);</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="نوع-داده-منطقی">نوع داده منطقی</h4> -<p>نوع داده منطقی به اسم +است. به این معنی که هر نوع کاراکتری را می‌تواند داخل خودش ذخیره کند حتی ایموجی.</p> +</blockquote> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">heart</span>: <span class="nb">String</span> <span class="o">=</span><span class="w"> </span><span class="nb">String</span>::<span class="n">from</span><span class="p">(</span><span class="s">&#34;♥&#34;</span><span class="p">);</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="نوع-داده-منطقی">نوع داده منطقی +</h4><p>نوع داده منطقی به اسم boolian است. این نوع مقدار هایt true و یا false -را ذخیره می‌کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">is_good</span>: <span class="kt">bool</span> <span class="o">=</span><span class="w"> </span><span class="kc">true</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="نوع-داده-ترکیبی">نوع داده ترکیبی</h4> -<p>این نوع داده ها را توی پست های مجزا توضیح می‌دم.</p> -<ul> -<li>tuple</li> -<li>array</li> -<li>list</li> -<li>vector</li> -</ul> - - - - متغیر در rust - https://bit-orbit.github.io/p/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-rust/ - Mon, 01 Jan 2024 01:39:05 +0330 - - https://bit-orbit.github.io/p/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-rust/ - <img src="https://bit-orbit.github.io/images/post/datatypes-rust.jpg" alt="Featured image of post متغیر در rust" /><h4 id="تعریف-متغیر">تعریف متغیر</h4> -<p>در هر زبانی تعریف متغیر سینتکس خودش را دارد. +را ذخیره می‌کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="n">is_good</span>: <span class="kt">bool</span> <span class="o">=</span><span class="w"> </span><span class="kc">true</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="نوع-داده-ترکیبی">نوع داده ترکیبی +</h4><p>این نوع داده ها را توی پست های مجزا توضیح می‌دم.</p> +<ul> +<li>tuple</li> +<li>array</li> +<li>list</li> +<li>vector</li> +</ul>متغیر در rusthttps://bit-orbit.github.io/p/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-rust/Mon, 01 Jan 2024 01:39:05 +0330https://bit-orbit.github.io/p/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-rust/<img src="https://bit-orbit.github.io/images/post/datatypes-rust.jpg" alt="Featured image of post متغیر در rust" /><h4 id="تعریف-متغیر">تعریف متغیر +</h4><p>در هر زبانی تعریف متغیر سینتکس خودش را دارد. مثلا اگر زبان های خانواده c را کار کرده باشید (مثل c++, c#) متوجه می‌شوید که نوع داده‌ای متغیر، قبل از اسم آن تعریف می‌شود. و یا مثلا توی زبان پایتون تعریف نوع داده‌ای -یک متغیر حتی اهمیتی هم ندارد!</p> -<blockquote> -<p>انواع نوع داده یا +یک متغیر حتی اهمیتی هم ندارد!</p> +<blockquote> +<p>انواع نوع داده یا date types -را توی پست بعدی می‌نویسم</p> -</blockquote> -<p>توی زبان +را توی پست بعدی می‌نویسم</p> +</blockquote> +<p>توی زبان rust بعد از اسم متغیر، نوع آن نوشته می‌شود. مثلا برای تعریف یک متغیر عددی به اندازه یک بایت از کلمه کلیدی -<code>i8</code> +<code>i8</code> بعد اسم استفاده می‌کنیم. البته قبل از اسم هر متغیر هم ما باید از کلمه کلیدی -<code>let</code> -استفاده کنیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="c1">//let name: type = value; -</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="kd">let</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><h4 id="متغیر-های-تغییرپذیر">متغیر های تغییرپذیر</h4> -<p>توی زبان +<code>let</code> +استفاده کنیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="c1">//let name: type = value; +</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="kd">let</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><h4 id="متغیر-های-تغییرپذیر">متغیر های تغییرپذیر +</h4><p>توی زبان rust هر متغیری که تعریف می‌کنیم غیر قابل تغیر است. توی مثال بالا من پیشفرض مقدار 22 را برای متغیر age قرار داده‌ام، حالا اگر بخواهم مقدار آن را -به 23 تغیر بدهم به ارور می‌خورم</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt">10 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">error</span><span class="p">[</span><span class="n">E0384</span><span class="p">]</span>: <span class="nc">cannot</span><span class="w"> </span><span class="n">assign</span><span class="w"> </span><span class="n">twice</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">immutable</span><span class="w"> </span><span class="n">variable</span><span class="w"> </span><span class="err">`</span><span class="n">age</span><span class="err">`</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">-</span>-&gt; <span class="nc">src</span><span class="o">/</span><span class="n">main</span><span class="p">.</span><span class="n">rs</span>:<span class="mi">3</span>:<span class="mi">5</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">---</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">first</span><span class="w"> </span><span class="n">assignment</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="err">`</span><span class="n">age</span><span class="err">`</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">help</span>: <span class="nc">consider</span><span class="w"> </span><span class="n">making</span><span class="w"> </span><span class="n">this</span><span class="w"> </span><span class="n">binding</span><span class="w"> </span><span class="n">mutable</span>: <span class="err">`</span><span class="k">mut</span><span class="w"> </span><span class="n">age</span><span class="err">`</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="mi">3</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">^^^^^^^^</span><span class="w"> </span><span class="n">cannot</span><span class="w"> </span><span class="n">assign</span><span class="w"> </span><span class="n">twice</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">immutable</span><span class="w"> </span><span class="n">variable</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><p>خب برای همین اگر می‌خواهیم مقدار متغیری را تغییر +به 23 تغیر بدهم به ارور می‌خورم</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="n">error</span><span class="p">[</span><span class="n">E0384</span><span class="p">]</span>: <span class="nc">cannot</span><span class="w"> </span><span class="n">assign</span><span class="w"> </span><span class="n">twice</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">immutable</span><span class="w"> </span><span class="n">variable</span><span class="w"> </span><span class="err">`</span><span class="n">age</span><span class="err">`</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">-</span>-&gt; <span class="nc">src</span><span class="o">/</span><span class="n">main</span><span class="p">.</span><span class="n">rs</span>:<span class="mi">3</span>:<span class="mi">5</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">---</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">first</span><span class="w"> </span><span class="n">assignment</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="err">`</span><span class="n">age</span><span class="err">`</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">help</span>: <span class="nc">consider</span><span class="w"> </span><span class="n">making</span><span class="w"> </span><span class="n">this</span><span class="w"> </span><span class="n">binding</span><span class="w"> </span><span class="n">mutable</span>: <span class="err">`</span><span class="k">mut</span><span class="w"> </span><span class="n">age</span><span class="err">`</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="mi">3</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">^^^^^^^^</span><span class="w"> </span><span class="n">cannot</span><span class="w"> </span><span class="n">assign</span><span class="w"> </span><span class="n">twice</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">immutable</span><span class="w"> </span><span class="n">variable</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><p>خب برای همین اگر می‌خواهیم مقدار متغیری را تغییر بدهیم آن را باید از اول مشخص کنیم. مشخص کردن آن با کلمه کلیدی -<code>mut</code> +<code>mut</code> بعد از کلمه -<code>let</code> +<code>let</code> است. کلمه mut مخفف -<strong>mutable</strong> +<strong>mutable</strong> به معنی -<strong>قابل تغییر</strong> -است. خب بیایید اینکار را برای مثال اولیه انجام بدهیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div> - - - - +<strong>قابل تغییر</strong> +است. خب بیایید اینکار را برای مثال اولیه انجام بدهیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">age</span>: <span class="kt">i8</span> <span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">23</span><span class="p">;</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div> \ No newline at end of file diff --git "a/docs/tags/\330\247\331\205\331\210\330\262\330\264-\331\201\330\247\330\261\330\263\333\214-\330\262\330\250\330\247\331\206-\330\261\330\247\330\263\330\252/page/1/index.html" "b/docs/tags/\330\247\331\205\331\210\330\262\330\264-\331\201\330\247\330\261\330\263\333\214-\330\262\330\250\330\247\331\206-\330\261\330\247\330\263\330\252/page/1/index.html" index 3b94eda..dafe570 100644 --- "a/docs/tags/\330\247\331\205\331\210\330\262\330\264-\331\201\330\247\330\261\330\263\333\214-\330\262\330\250\330\247\331\206-\330\261\330\247\330\263\330\252/page/1/index.html" +++ "b/docs/tags/\330\247\331\205\331\210\330\262\330\264-\331\201\330\247\330\261\330\263\333\214-\330\262\330\250\330\247\331\206-\330\261\330\247\330\263\330\252/page/1/index.html" @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%B2%D8%A8%D8%A7%D9%86-%D8%B1%D8%A7%D8%B3%D8%AA/ - - - - - - +https://bit-orbit.github.io/tags/%D8%A7%D9%85%D9%88%D8%B2%D8%B4-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%B2%D8%A8%D8%A7%D9%86-%D8%B1%D8%A7%D8%B3%D8%AA/ + \ No newline at end of file diff --git "a/docs/tags/\330\247\331\276\331\204\331\210\330\257-\331\201\330\247\333\214\331\204-\330\250\331\207-\330\252\331\204\332\257\330\261\330\247\331\205-\330\250\330\257\331\210\331\206-\330\257\330\247\331\206\331\204\331\210\330\257/index.html" "b/docs/tags/\330\247\331\276\331\204\331\210\330\257-\331\201\330\247\333\214\331\204-\330\250\331\207-\330\252\331\204\332\257\330\261\330\247\331\205-\330\250\330\257\331\210\331\206-\330\257\330\247\331\206\331\204\331\210\330\257/index.html" index 4e74464..27383fb 100644 --- "a/docs/tags/\330\247\331\276\331\204\331\210\330\257-\331\201\330\247\333\214\331\204-\330\250\331\207-\330\252\331\204\332\257\330\261\330\247\331\205-\330\250\330\257\331\210\331\206-\330\257\330\247\331\206\331\204\331\210\330\257/index.html" +++ "b/docs/tags/\330\247\331\276\331\204\331\210\330\257-\331\201\330\247\333\214\331\204-\330\250\331\207-\330\252\331\204\332\257\330\261\330\247\331\205-\330\250\330\257\331\210\331\206-\330\257\330\247\331\206\331\204\331\210\330\257/index.html" @@ -1,559 +1,37 @@ - - - - -Tag: اپلود فایل به تلگرام بدون دانلود - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

اپلود فایل به تلگرام بدون دانلود

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: اپلود فایل به تلگرام بدون دانلود - bit-orbit +

Tags

1 صفحه

اپلود فایل به تلگرام بدون دانلود

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git "a/docs/tags/\330\247\331\276\331\204\331\210\330\257-\331\201\330\247\333\214\331\204-\330\250\331\207-\330\252\331\204\332\257\330\261\330\247\331\205-\330\250\330\257\331\210\331\206-\330\257\330\247\331\206\331\204\331\210\330\257/index.xml" "b/docs/tags/\330\247\331\276\331\204\331\210\330\257-\331\201\330\247\333\214\331\204-\330\250\331\207-\330\252\331\204\332\257\330\261\330\247\331\205-\330\250\330\257\331\210\331\206-\330\257\330\247\331\206\331\204\331\210\330\257/index.xml" index 37ed1f2..cbe077b 100644 --- "a/docs/tags/\330\247\331\276\331\204\331\210\330\257-\331\201\330\247\333\214\331\204-\330\250\331\207-\330\252\331\204\332\257\330\261\330\247\331\205-\330\250\330\257\331\210\331\206-\330\257\330\247\331\206\331\204\331\210\330\257/index.xml" +++ "b/docs/tags/\330\247\331\276\331\204\331\210\330\257-\331\201\330\247\333\214\331\204-\330\250\331\207-\330\252\331\204\332\257\330\261\330\247\331\205-\330\250\330\257\331\210\331\206-\330\257\330\247\331\206\331\204\331\210\330\257/index.xml" @@ -1,18 +1,4 @@ - - - - اپلود فایل به تلگرام بدون دانلود on bit-orbit - https://bit-orbit.github.io/tags/%D8%A7%D9%BE%D9%84%D9%88%D8%AF-%D9%81%D8%A7%DB%8C%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85-%D8%A8%D8%AF%D9%88%D9%86-%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF/ - Recent content in اپلود فایل به تلگرام بدون دانلود on bit-orbit - Hugo -- gohugo.io - fa - Mon, 18 Dec 2023 00:08:38 +0330 - از گوگل به تلگرام! - https://bit-orbit.github.io/p/%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/ - Mon, 18 Dec 2023 00:08:38 +0330 - - https://bit-orbit.github.io/p/%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/ - <img src="https://bit-orbit.github.io/images/post/colab.jpg" alt="Featured image of post از گوگل به تلگرام!" /><p>به احتمال زیاد سایت +اپلود فایل به تلگرام بدون دانلود on bit-orbithttps://bit-orbit.github.io/tags/%D8%A7%D9%BE%D9%84%D9%88%D8%AF-%D9%81%D8%A7%DB%8C%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85-%D8%A8%D8%AF%D9%88%D9%86-%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF/Recent content in اپلود فایل به تلگرام بدون دانلود on bit-orbitHugo -- gohugo.iofaMon, 18 Dec 2023 00:08:38 +0330از گوگل به تلگرام!https://bit-orbit.github.io/p/%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/Mon, 18 Dec 2023 00:08:38 +0330https://bit-orbit.github.io/p/%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/<img src="https://bit-orbit.github.io/images/post/colab.jpg" alt="Featured image of post از گوگل به تلگرام!" /><p>به احتمال زیاد سایت google colab رو می‌شناسید، این سایت برای کسانی که پایتون کار می‌کنند یک معجزه‌ست. خیلی راحت شما می‌توانید کد پایتون خود @@ -22,30 +8,30 @@ google colab این سرویس گوگل واقعا کار رو راحت می‌کنه. حالا فرض کنید این فایل رو باید با تیم به اشتراک بگذارید، خیلی راحت این سروریس به گوگل درایو شما متصل می‌شه -و فایل رو براتون آپلود می‌کنه.</p> -<p>اما من توی این پست می‌خواهم کار متفاوتی با این سرویس +و فایل رو براتون آپلود می‌کنه.</p> +<p>اما من توی این پست می‌خواهم کار متفاوتی با این سرویس انجام بدم، جای اینکه فایل‌م رو توی گوگل درایو آپلود کنم می‌خواهم که یک پلی لیست موزیک راک رو که فایل با فرمت zip هست رو روی google colab دانلود کنم و بعد با همین کولب فایل -ها را استخراج و به تلگرام اپلود کنم.</p> -<p>اینو بگم که خب روی کولب خیلی تریک های جالب دیگه‌ای هم +ها را استخراج و به تلگرام اپلود کنم.</p> +<p>اینو بگم که خب روی کولب خیلی تریک های جالب دیگه‌ای هم می‌زنند، مثلا من یه تایمی به کولب ssh می‌کردم و بعنوان vpn -استفاده می‌کردم.</p> -<hr> -<p>ادرس سرویس +استفاده می‌کردم.</p> +<hr> +<p>ادرس سرویس google colab -<a class="link" href="https://colab.research.google.com/" target="_blank" rel="noopener" - >این</a> +<a class="link" href="https://colab.research.google.com/" target="_blank" rel="noopener" +>این</a> هست، ولی من یک اسکریپت نوشتم که به اون نیاز داریم برای همین -<a class="link" href="https://colab.research.google.com/github/shabane/upload-to-telegram/blob/master/upload_to_telegram.ipynb" target="_blank" rel="noopener" - >این لینک</a> +<a class="link" href="https://colab.research.google.com/github/shabane/upload-to-telegram/blob/master/upload_to_telegram.ipynb" target="_blank" rel="noopener" +>این لینک</a> رو باز کنید تا اسکریپتی که من نوشته‌م توی colab @@ -53,229 +39,200 @@ colab jupyter کار کرده باشین این محیط باید براتون خیلی آشنا باشه. اگر نه، خیلی ساده بگم، این محیط دستورات پایتون رو -براتون روی سروس های گوگل ران می‌کنه :)</p> -<p>خب ما یه فایل این برای مثالمون نیاز داریم، من یک پلی +براتون روی سروس های گوگل ران می‌کنه :)</p> +<p>خب ما یه فایل این برای مثالمون نیاز داریم، من یک پلی لیست راک از AC/DC -که از تورنت می‌گیرم رو برای اینکار استفاده می‌کنم.</p> -<p>اول من فایل رو باید دانلود کنم، من از تورنت برای دانلود +که از تورنت می‌گیرم رو برای اینکار استفاده می‌کنم.</p> +<p>اول من فایل رو باید دانلود کنم، من از تورنت برای دانلود موزیک، فیلم و &hellip; استفاده می‌کنم. پس کافیه لینک تورنت رو به برنامه aria2c بدم و یا فایل رو با یک سایت دانلودر تورنت دانلود کنم و لینک‌ش رو بدم به برنامه -wget</p> -<p>برای اینکه دستورات خودتون رو اجرا کنید از بالای سایت +wget</p> +<p>برای اینکه دستورات خودتون رو اجرا کنید از بالای سایت گزینه -<em>+ code</em> +<em>+ code</em> رو بزنید تا یک code snipp جدید براتون باز کنه. توی این قسمت فقط می‌شه کد های پایتون رو اجرا کرد ولی اگه از علامت -<strong>!</strong> +<strong>!</strong> قبل از دستور استفاده کنیم اون رو بعنوان دستور bash اجرا خواهد کرد. و خب بیس سیستم عامل هم دبیان هست -و دستورات دبیانی رو اجرا می‌کنه.</p> -<p>پس اگه مستقیم قرار بود فایل رو از تورنت بگیرم باید برنامه +و دستورات دبیانی رو اجرا می‌کنه.</p> +<p>پس اگه مستقیم قرار بود فایل رو از تورنت بگیرم باید برنامه aria2 -رو نصب می‌کردم. برای نصب کافیه این دستور رو بزنیم</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!sudo apt-get install aria2 -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>دقت کنید که از علامت -<code>!</code> -قبل از دستور استفاده کردم.</p> -</blockquote> -<p>بعد از نصب، لینک رو می‌دیم به برنامه تا فایل ها رو برامون -دانلود کنه.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!aria2c <span class="s1">&#39;&lt;your magnet link&gt;&#39;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>به این دقت کنید که برنامه با کامند +رو نصب می‌کردم. برای نصب کافیه این دستور رو بزنیم</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!sudo apt-get install aria2 +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>دقت کنید که از علامت +<code>!</code> +قبل از دستور استفاده کردم.</p> +</blockquote> +<p>بعد از نصب، لینک رو می‌دیم به برنامه تا فایل ها رو برامون +دانلود کنه.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!aria2c <span class="s1">&#39;&lt;your magnet link&gt;&#39;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>به این دقت کنید که برنامه با کامند aria2c اجرا می‌شه. ولی با به اسم aria2 -نصب می‌شه.</p> -</blockquote> -<p>و یا اینکه لینک دانلود مستقیم رو به برنامه +نصب می‌شه.</p> +</blockquote> +<p>و یا اینکه لینک دانلود مستقیم رو به برنامه wget می‌دیم. این برنامه به صورت دیفالت نصب هست و لازم نیست -کار خاصی بکنیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!wget <span class="s1">&#39;&lt;your file link&gt;&#39;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p><img src="https://bit-orbit.github.io/images/post/wgetcolab.jpg" - - - - loading="lazy" - - alt="from google to telegram as cloud" - - -></p> -<p>بعد از اینکه فایل روی سرور گوگل دانلود شد کافیه فایل -رو به تلگرام آپلود کنیم! ولی قبل‌ش چند کاری هست که باید -باهم بکنیم.</p> -<ul> -<li>فایل من زیپه پس باید استخراج کنم.</li> -<li>فایل ها توی دایرکتوری های تو در تو قرار دارند، و باید همه فایل های مورد نظرم رو که توی این مورد +کار خاصی بکنیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!wget <span class="s1">&#39;&lt;your file link&gt;&#39;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p><img src="https://bit-orbit.github.io/images/post/wgetcolab.jpg" +loading="lazy" +alt="from google to telegram as cloud" +></p> +<p>بعد از اینکه فایل روی سرور گوگل دانلود شد کافیه فایل +رو به تلگرام آپلود کنیم! ولی قبل‌ش چند کاری هست که باید +باهم بکنیم.</p> +<ul> +<li>فایل من زیپه پس باید استخراج کنم.</li> +<li>فایل ها توی دایرکتوری های تو در تو قرار دارند، و باید همه فایل های مورد نظرم رو که توی این مورد mp3 هستند رو بیارم داخل پوشه‌ای که اسکریپت دیفالت آنجا ران -می‌شه.</li> -<li>نیاز به یک کانال تلگرام دارم که فایل ها مستقیم اونجا -اپلود بشوند</li> -<li>یک توکن ربات تلگرام هم نیازه که با استفاده از دسترسی -ربات به کانال، فایل ها رو اپلود کنیم.</li> -</ul> -<p>خب برای اسختراج فایل ها خیلی ساده از کامند -<code>unzip</code> -و اسم فایل جلوی این کامند استفاده می‌کنیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!unzip &lt;your file name&gt; -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>با کامند -<code>ls</code> -نام فایلی که دانلود کردین رو می‌تونید ببینید.</p> -</blockquote> -<p><img src="https://bit-orbit.github.io/images/post/unzipcolab.jpg" - - - - loading="lazy" - - alt="uizip in colab" - - -></p> -<p>با اجرای کامند -<code>tree</code> -می‌تونید دایرکتوری های تو در تو رو ببینید.</p> -<p><img src="https://bit-orbit.github.io/images/post/treecolab.jpg" - - - - loading="lazy" - - alt="tree in colab" - - -></p> -<p>توی این مرحله من همه فایل های +می‌شه.</li> +<li>نیاز به یک کانال تلگرام دارم که فایل ها مستقیم اونجا +اپلود بشوند</li> +<li>یک توکن ربات تلگرام هم نیازه که با استفاده از دسترسی +ربات به کانال، فایل ها رو اپلود کنیم.</li> +</ul> +<p>خب برای اسختراج فایل ها خیلی ساده از کامند +<code>unzip</code> +و اسم فایل جلوی این کامند استفاده می‌کنیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!unzip &lt;your file name&gt; +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>با کامند +<code>ls</code> +نام فایلی که دانلود کردین رو می‌تونید ببینید.</p> +</blockquote> +<p><img src="https://bit-orbit.github.io/images/post/unzipcolab.jpg" +loading="lazy" +alt="uizip in colab" +></p> +<p>با اجرای کامند +<code>tree</code> +می‌تونید دایرکتوری های تو در تو رو ببینید.</p> +<p><img src="https://bit-orbit.github.io/images/post/treecolab.jpg" +loading="lazy" +alt="tree in colab" +></p> +<p>توی این مرحله من همه فایل های mp3 رو باید بیارم توی پوشه اصلی که اسکریپت‌ اپلود اجرا میشه، دلیل این کار این هست که این اسکریپ‌ت فقط فایل های mp3 -داخل همین پوشه رو پیدا و اپلود می‌کنه.</p> -<p>برای انتقال این فایل ها از پوشه های تو در تو به یک پوشه از کامند -<code>find</code> +داخل همین پوشه رو پیدا و اپلود می‌کنه.</p> +<p>برای انتقال این فایل ها از پوشه های تو در تو به یک پوشه از کامند +<code>find</code> استفاده می‌کنم و هر فایل که پیدا می‌شه رو با کامند -<code>mv</code> -به پوشه اصلی‌مون انتقال می‌دم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!find . -type f -iname <span class="s1">&#39;*mp3&#39;</span> -exec mv <span class="o">{}</span> . <span class="se">\;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>بیایید سوییچ های این دستور رو بهتون بگم</p> -<ul> -<li>type-</li> -</ul> -<p>این سوییچ انواع نوع فایل ها رو مشخص می‌کنه. مثلا شما می‌تونید دنبال یک دایرکتوری، فایل، سوکت و &hellip; بگردین</p> -<ul> -<li>iname-</li> -</ul> -<p>این سویچ که مشخص هست نام فایل رو ازتون می‌گیره که شما می‌تونید پترن ریجکس بدین بهش. +<code>mv</code> +به پوشه اصلی‌مون انتقال می‌دم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!find . -type f -iname <span class="s1">&#39;*mp3&#39;</span> -exec mv <span class="o">{}</span> . <span class="se">\;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>بیایید سوییچ های این دستور رو بهتون بگم</p> +<ul> +<li>type-</li> +</ul> +<p>این سوییچ انواع نوع فایل ها رو مشخص می‌کنه. مثلا شما می‌تونید دنبال یک دایرکتوری، فایل، سوکت و &hellip; بگردین</p> +<ul> +<li>iname-</li> +</ul> +<p>این سویچ که مشخص هست نام فایل رو ازتون می‌گیره که شما می‌تونید پترن ریجکس بدین بهش. و اون -<strong>i</strong> -مشخص می‌کنه که نام فایل به کوچیکی و بزرگی حساس نباشه.</p> -<ul> -<li>exec-</li> -</ul> -<p>یک کامندی رو ازتون می‌گیره و روی تک تک ریزالت های جست و جو اون کامند رو اجرا می‌کنه. +<strong>i</strong> +مشخص می‌کنه که نام فایل به کوچیکی و بزرگی حساس نباشه.</p> +<ul> +<li>exec-</li> +</ul> +<p>یک کامندی رو ازتون می‌گیره و روی تک تک ریزالت های جست و جو اون کامند رو اجرا می‌کنه. من کامند -<code>mv</code> +<code>mv</code> رو دادم که برای انتقال فایل استفاده می‌شه. علامت های -<strong>{}</strong> -هم یک متغییر هست که نام فایل تک به تک جای اون قرار می‌گیره.</p> -<blockquote> -<p>پایان سوییچ +<strong>{}</strong> +هم یک متغییر هست که نام فایل تک به تک جای اون قرار می‌گیره.</p> +<blockquote> +<p>پایان سوییچ exec همیشه با -<code>;\</code> -مشخص می‌شه.</p> -</blockquote> -<p>خب تا اینجا که خیلی ساده بود،‌ نه؟</p> -<p>مرحله آخر اینه که یک ربات با -<a class="link" href="https://t.me/BotFather" target="_blank" rel="noopener" - >این ربات</a> -بسازین، و بعد اون رو عضو یک کانالی که می‌سازید بکنید، کانال رو فعلا پابلیک بسازید و یک یوزرنیم بهش بدین.</p> -<p>توکن ربات رو کپی کنید و توی اسکریپت من، جایی که نوشته -<your token> +<code>;\</code> +مشخص می‌شه.</p> +</blockquote> +<p>خب تا اینجا که خیلی ساده بود،‌ نه؟</p> +<p>مرحله آخر اینه که یک ربات با +<a class="link" href="https://t.me/BotFather" target="_blank" rel="noopener" +>این ربات</a> +بسازین، و بعد اون رو عضو یک کانالی که می‌سازید بکنید، کانال رو فعلا پابلیک بسازید و یک یوزرنیم بهش بدین.</p> +<p>توکن ربات رو کپی کنید و توی اسکریپت من، جایی که نوشته +<your token> وارد کنید و توی قسمت -<chat id> -هم ایدی کانالتون رو با علامت @ اول جایگذاری کنید.</p> -<p><img src="https://bit-orbit.github.io/images/post/acdccolab.jpg" - - - - loading="lazy" - - alt="ac and dc telegram channel" - - -></p> -<blockquote> -<p>اگه کانال پرایوت دارید باید بجای ای‌دی کانال از +<chat id> +هم ایدی کانالتون رو با علامت @ اول جایگذاری کنید.</p> +<p><img src="https://bit-orbit.github.io/images/post/acdccolab.jpg" +loading="lazy" +alt="ac and dc telegram channel" +></p> +<blockquote> +<p>اگه کانال پرایوت دارید باید بجای ای‌دی کانال از chatid -استفاده کنید، که یک ای‌دی عددی هست.</p> -</blockquote> -<p><strong>تمام</strong>!‌ -کافیه برنامه رو اجرا کنید و کانال تلگرامتون رو نگاه کنید :)</p> -<blockquote> -<p>اگه خیلی زیاد دارین فایل اپلود می‌کنید احتمالا تلگرام ارور +استفاده کنید، که یک ای‌دی عددی هست.</p> +</blockquote> +<p><strong>تمام</strong>!‌ +کافیه برنامه رو اجرا کنید و کانال تلگرامتون رو نگاه کنید :)</p> +<blockquote> +<p>اگه خیلی زیاد دارین فایل اپلود می‌کنید احتمالا تلگرام ارور flood mood بهتون بده. توی این مورد کافیه فقط صبر کنید، اسکریپت از اجرا قطع نمی‌شه و روی همون فایل مجددا اجرا می‌شه -تا بالاخره فایل اپلود بشه.</p> -</blockquote> -<blockquote> -<p>هرچیزی رو می‌تونید آپلود کنید ولی دقت کنید که ربات ها محدودیت حجم اپلود دارن که نهایتش 50MB هست</p> -</blockquote> -<blockquote> -<p>اینم بگم که توی اسکریپت اگه +تا بالاخره فایل اپلود بشه.</p> +</blockquote> +<blockquote> +<p>هرچیزی رو می‌تونید آپلود کنید ولی دقت کنید که ربات ها محدودیت حجم اپلود دارن که نهایتش 50MB هست</p> +</blockquote> +<blockquote> +<p>اینم بگم که توی اسکریپت اگه mp3 -رو به چیز دیگه‌ای تغییر بدین، اسکریپت به دنبال اون پسوند ها خواهد گشت.</p> -</blockquote> - - - - - +رو به چیز دیگه‌ای تغییر بدین، اسکریپت به دنبال اون پسوند ها خواهد گشت.</p> +</blockquote> \ No newline at end of file diff --git "a/docs/tags/\330\247\331\276\331\204\331\210\330\257-\331\201\330\247\333\214\331\204-\330\250\331\207-\330\252\331\204\332\257\330\261\330\247\331\205-\330\250\330\257\331\210\331\206-\330\257\330\247\331\206\331\204\331\210\330\257/page/1/index.html" "b/docs/tags/\330\247\331\276\331\204\331\210\330\257-\331\201\330\247\333\214\331\204-\330\250\331\207-\330\252\331\204\332\257\330\261\330\247\331\205-\330\250\330\257\331\210\331\206-\330\257\330\247\331\206\331\204\331\210\330\257/page/1/index.html" index 34e4cdf..6a67d7a 100644 --- "a/docs/tags/\330\247\331\276\331\204\331\210\330\257-\331\201\330\247\333\214\331\204-\330\250\331\207-\330\252\331\204\332\257\330\261\330\247\331\205-\330\250\330\257\331\210\331\206-\330\257\330\247\331\206\331\204\331\210\330\257/page/1/index.html" +++ "b/docs/tags/\330\247\331\276\331\204\331\210\330\257-\331\201\330\247\333\214\331\204-\330\250\331\207-\330\252\331\204\332\257\330\261\330\247\331\205-\330\250\330\257\331\210\331\206-\330\257\330\247\331\206\331\204\331\210\330\257/page/1/index.html" @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/%D8%A7%D9%BE%D9%84%D9%88%D8%AF-%D9%81%D8%A7%DB%8C%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85-%D8%A8%D8%AF%D9%88%D9%86-%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF/ - - - - - - +https://bit-orbit.github.io/tags/%D8%A7%D9%BE%D9%84%D9%88%D8%AF-%D9%81%D8%A7%DB%8C%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85-%D8%A8%D8%AF%D9%88%D9%86-%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF/ + \ No newline at end of file diff --git "a/docs/tags/\330\247\331\276\331\204\331\210\330\257-\331\201\330\247\333\214\331\204-\330\250\331\207-\330\252\331\204\332\257\330\261\330\247\331\205-\330\250\330\257\331\210\331\206-\331\206\333\214\330\247\330\262-\330\250\331\207-\330\263\330\261\331\210\330\261/index.html" "b/docs/tags/\330\247\331\276\331\204\331\210\330\257-\331\201\330\247\333\214\331\204-\330\250\331\207-\330\252\331\204\332\257\330\261\330\247\331\205-\330\250\330\257\331\210\331\206-\331\206\333\214\330\247\330\262-\330\250\331\207-\330\263\330\261\331\210\330\261/index.html" index df265b7..f1d0158 100644 --- "a/docs/tags/\330\247\331\276\331\204\331\210\330\257-\331\201\330\247\333\214\331\204-\330\250\331\207-\330\252\331\204\332\257\330\261\330\247\331\205-\330\250\330\257\331\210\331\206-\331\206\333\214\330\247\330\262-\330\250\331\207-\330\263\330\261\331\210\330\261/index.html" +++ "b/docs/tags/\330\247\331\276\331\204\331\210\330\257-\331\201\330\247\333\214\331\204-\330\250\331\207-\330\252\331\204\332\257\330\261\330\247\331\205-\330\250\330\257\331\210\331\206-\331\206\333\214\330\247\330\262-\330\250\331\207-\330\263\330\261\331\210\330\261/index.html" @@ -1,559 +1,37 @@ - - - - -Tag: اپلود فایل به تلگرام بدون نیاز به سرور - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

اپلود فایل به تلگرام بدون نیاز به سرور

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: اپلود فایل به تلگرام بدون نیاز به سرور - bit-orbit +

Tags

1 صفحه

اپلود فایل به تلگرام بدون نیاز به سرور

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git "a/docs/tags/\330\247\331\276\331\204\331\210\330\257-\331\201\330\247\333\214\331\204-\330\250\331\207-\330\252\331\204\332\257\330\261\330\247\331\205-\330\250\330\257\331\210\331\206-\331\206\333\214\330\247\330\262-\330\250\331\207-\330\263\330\261\331\210\330\261/index.xml" "b/docs/tags/\330\247\331\276\331\204\331\210\330\257-\331\201\330\247\333\214\331\204-\330\250\331\207-\330\252\331\204\332\257\330\261\330\247\331\205-\330\250\330\257\331\210\331\206-\331\206\333\214\330\247\330\262-\330\250\331\207-\330\263\330\261\331\210\330\261/index.xml" index 792aff7..36d841a 100644 --- "a/docs/tags/\330\247\331\276\331\204\331\210\330\257-\331\201\330\247\333\214\331\204-\330\250\331\207-\330\252\331\204\332\257\330\261\330\247\331\205-\330\250\330\257\331\210\331\206-\331\206\333\214\330\247\330\262-\330\250\331\207-\330\263\330\261\331\210\330\261/index.xml" +++ "b/docs/tags/\330\247\331\276\331\204\331\210\330\257-\331\201\330\247\333\214\331\204-\330\250\331\207-\330\252\331\204\332\257\330\261\330\247\331\205-\330\250\330\257\331\210\331\206-\331\206\333\214\330\247\330\262-\330\250\331\207-\330\263\330\261\331\210\330\261/index.xml" @@ -1,18 +1,4 @@ - - - - اپلود فایل به تلگرام بدون نیاز به سرور on bit-orbit - https://bit-orbit.github.io/tags/%D8%A7%D9%BE%D9%84%D9%88%D8%AF-%D9%81%D8%A7%DB%8C%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85-%D8%A8%D8%AF%D9%88%D9%86-%D9%86%DB%8C%D8%A7%D8%B2-%D8%A8%D9%87-%D8%B3%D8%B1%D9%88%D8%B1/ - Recent content in اپلود فایل به تلگرام بدون نیاز به سرور on bit-orbit - Hugo -- gohugo.io - fa - Mon, 18 Dec 2023 00:08:38 +0330 - از گوگل به تلگرام! - https://bit-orbit.github.io/p/%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/ - Mon, 18 Dec 2023 00:08:38 +0330 - - https://bit-orbit.github.io/p/%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/ - <img src="https://bit-orbit.github.io/images/post/colab.jpg" alt="Featured image of post از گوگل به تلگرام!" /><p>به احتمال زیاد سایت +اپلود فایل به تلگرام بدون نیاز به سرور on bit-orbithttps://bit-orbit.github.io/tags/%D8%A7%D9%BE%D9%84%D9%88%D8%AF-%D9%81%D8%A7%DB%8C%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85-%D8%A8%D8%AF%D9%88%D9%86-%D9%86%DB%8C%D8%A7%D8%B2-%D8%A8%D9%87-%D8%B3%D8%B1%D9%88%D8%B1/Recent content in اپلود فایل به تلگرام بدون نیاز به سرور on bit-orbitHugo -- gohugo.iofaMon, 18 Dec 2023 00:08:38 +0330از گوگل به تلگرام!https://bit-orbit.github.io/p/%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/Mon, 18 Dec 2023 00:08:38 +0330https://bit-orbit.github.io/p/%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/<img src="https://bit-orbit.github.io/images/post/colab.jpg" alt="Featured image of post از گوگل به تلگرام!" /><p>به احتمال زیاد سایت google colab رو می‌شناسید، این سایت برای کسانی که پایتون کار می‌کنند یک معجزه‌ست. خیلی راحت شما می‌توانید کد پایتون خود @@ -22,30 +8,30 @@ google colab این سرویس گوگل واقعا کار رو راحت می‌کنه. حالا فرض کنید این فایل رو باید با تیم به اشتراک بگذارید، خیلی راحت این سروریس به گوگل درایو شما متصل می‌شه -و فایل رو براتون آپلود می‌کنه.</p> -<p>اما من توی این پست می‌خواهم کار متفاوتی با این سرویس +و فایل رو براتون آپلود می‌کنه.</p> +<p>اما من توی این پست می‌خواهم کار متفاوتی با این سرویس انجام بدم، جای اینکه فایل‌م رو توی گوگل درایو آپلود کنم می‌خواهم که یک پلی لیست موزیک راک رو که فایل با فرمت zip هست رو روی google colab دانلود کنم و بعد با همین کولب فایل -ها را استخراج و به تلگرام اپلود کنم.</p> -<p>اینو بگم که خب روی کولب خیلی تریک های جالب دیگه‌ای هم +ها را استخراج و به تلگرام اپلود کنم.</p> +<p>اینو بگم که خب روی کولب خیلی تریک های جالب دیگه‌ای هم می‌زنند، مثلا من یه تایمی به کولب ssh می‌کردم و بعنوان vpn -استفاده می‌کردم.</p> -<hr> -<p>ادرس سرویس +استفاده می‌کردم.</p> +<hr> +<p>ادرس سرویس google colab -<a class="link" href="https://colab.research.google.com/" target="_blank" rel="noopener" - >این</a> +<a class="link" href="https://colab.research.google.com/" target="_blank" rel="noopener" +>این</a> هست، ولی من یک اسکریپت نوشتم که به اون نیاز داریم برای همین -<a class="link" href="https://colab.research.google.com/github/shabane/upload-to-telegram/blob/master/upload_to_telegram.ipynb" target="_blank" rel="noopener" - >این لینک</a> +<a class="link" href="https://colab.research.google.com/github/shabane/upload-to-telegram/blob/master/upload_to_telegram.ipynb" target="_blank" rel="noopener" +>این لینک</a> رو باز کنید تا اسکریپتی که من نوشته‌م توی colab @@ -53,229 +39,200 @@ colab jupyter کار کرده باشین این محیط باید براتون خیلی آشنا باشه. اگر نه، خیلی ساده بگم، این محیط دستورات پایتون رو -براتون روی سروس های گوگل ران می‌کنه :)</p> -<p>خب ما یه فایل این برای مثالمون نیاز داریم، من یک پلی +براتون روی سروس های گوگل ران می‌کنه :)</p> +<p>خب ما یه فایل این برای مثالمون نیاز داریم، من یک پلی لیست راک از AC/DC -که از تورنت می‌گیرم رو برای اینکار استفاده می‌کنم.</p> -<p>اول من فایل رو باید دانلود کنم، من از تورنت برای دانلود +که از تورنت می‌گیرم رو برای اینکار استفاده می‌کنم.</p> +<p>اول من فایل رو باید دانلود کنم، من از تورنت برای دانلود موزیک، فیلم و &hellip; استفاده می‌کنم. پس کافیه لینک تورنت رو به برنامه aria2c بدم و یا فایل رو با یک سایت دانلودر تورنت دانلود کنم و لینک‌ش رو بدم به برنامه -wget</p> -<p>برای اینکه دستورات خودتون رو اجرا کنید از بالای سایت +wget</p> +<p>برای اینکه دستورات خودتون رو اجرا کنید از بالای سایت گزینه -<em>+ code</em> +<em>+ code</em> رو بزنید تا یک code snipp جدید براتون باز کنه. توی این قسمت فقط می‌شه کد های پایتون رو اجرا کرد ولی اگه از علامت -<strong>!</strong> +<strong>!</strong> قبل از دستور استفاده کنیم اون رو بعنوان دستور bash اجرا خواهد کرد. و خب بیس سیستم عامل هم دبیان هست -و دستورات دبیانی رو اجرا می‌کنه.</p> -<p>پس اگه مستقیم قرار بود فایل رو از تورنت بگیرم باید برنامه +و دستورات دبیانی رو اجرا می‌کنه.</p> +<p>پس اگه مستقیم قرار بود فایل رو از تورنت بگیرم باید برنامه aria2 -رو نصب می‌کردم. برای نصب کافیه این دستور رو بزنیم</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!sudo apt-get install aria2 -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>دقت کنید که از علامت -<code>!</code> -قبل از دستور استفاده کردم.</p> -</blockquote> -<p>بعد از نصب، لینک رو می‌دیم به برنامه تا فایل ها رو برامون -دانلود کنه.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!aria2c <span class="s1">&#39;&lt;your magnet link&gt;&#39;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>به این دقت کنید که برنامه با کامند +رو نصب می‌کردم. برای نصب کافیه این دستور رو بزنیم</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!sudo apt-get install aria2 +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>دقت کنید که از علامت +<code>!</code> +قبل از دستور استفاده کردم.</p> +</blockquote> +<p>بعد از نصب، لینک رو می‌دیم به برنامه تا فایل ها رو برامون +دانلود کنه.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!aria2c <span class="s1">&#39;&lt;your magnet link&gt;&#39;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>به این دقت کنید که برنامه با کامند aria2c اجرا می‌شه. ولی با به اسم aria2 -نصب می‌شه.</p> -</blockquote> -<p>و یا اینکه لینک دانلود مستقیم رو به برنامه +نصب می‌شه.</p> +</blockquote> +<p>و یا اینکه لینک دانلود مستقیم رو به برنامه wget می‌دیم. این برنامه به صورت دیفالت نصب هست و لازم نیست -کار خاصی بکنیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!wget <span class="s1">&#39;&lt;your file link&gt;&#39;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p><img src="https://bit-orbit.github.io/images/post/wgetcolab.jpg" - - - - loading="lazy" - - alt="from google to telegram as cloud" - - -></p> -<p>بعد از اینکه فایل روی سرور گوگل دانلود شد کافیه فایل -رو به تلگرام آپلود کنیم! ولی قبل‌ش چند کاری هست که باید -باهم بکنیم.</p> -<ul> -<li>فایل من زیپه پس باید استخراج کنم.</li> -<li>فایل ها توی دایرکتوری های تو در تو قرار دارند، و باید همه فایل های مورد نظرم رو که توی این مورد +کار خاصی بکنیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!wget <span class="s1">&#39;&lt;your file link&gt;&#39;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p><img src="https://bit-orbit.github.io/images/post/wgetcolab.jpg" +loading="lazy" +alt="from google to telegram as cloud" +></p> +<p>بعد از اینکه فایل روی سرور گوگل دانلود شد کافیه فایل +رو به تلگرام آپلود کنیم! ولی قبل‌ش چند کاری هست که باید +باهم بکنیم.</p> +<ul> +<li>فایل من زیپه پس باید استخراج کنم.</li> +<li>فایل ها توی دایرکتوری های تو در تو قرار دارند، و باید همه فایل های مورد نظرم رو که توی این مورد mp3 هستند رو بیارم داخل پوشه‌ای که اسکریپت دیفالت آنجا ران -می‌شه.</li> -<li>نیاز به یک کانال تلگرام دارم که فایل ها مستقیم اونجا -اپلود بشوند</li> -<li>یک توکن ربات تلگرام هم نیازه که با استفاده از دسترسی -ربات به کانال، فایل ها رو اپلود کنیم.</li> -</ul> -<p>خب برای اسختراج فایل ها خیلی ساده از کامند -<code>unzip</code> -و اسم فایل جلوی این کامند استفاده می‌کنیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!unzip &lt;your file name&gt; -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>با کامند -<code>ls</code> -نام فایلی که دانلود کردین رو می‌تونید ببینید.</p> -</blockquote> -<p><img src="https://bit-orbit.github.io/images/post/unzipcolab.jpg" - - - - loading="lazy" - - alt="uizip in colab" - - -></p> -<p>با اجرای کامند -<code>tree</code> -می‌تونید دایرکتوری های تو در تو رو ببینید.</p> -<p><img src="https://bit-orbit.github.io/images/post/treecolab.jpg" - - - - loading="lazy" - - alt="tree in colab" - - -></p> -<p>توی این مرحله من همه فایل های +می‌شه.</li> +<li>نیاز به یک کانال تلگرام دارم که فایل ها مستقیم اونجا +اپلود بشوند</li> +<li>یک توکن ربات تلگرام هم نیازه که با استفاده از دسترسی +ربات به کانال، فایل ها رو اپلود کنیم.</li> +</ul> +<p>خب برای اسختراج فایل ها خیلی ساده از کامند +<code>unzip</code> +و اسم فایل جلوی این کامند استفاده می‌کنیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!unzip &lt;your file name&gt; +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>با کامند +<code>ls</code> +نام فایلی که دانلود کردین رو می‌تونید ببینید.</p> +</blockquote> +<p><img src="https://bit-orbit.github.io/images/post/unzipcolab.jpg" +loading="lazy" +alt="uizip in colab" +></p> +<p>با اجرای کامند +<code>tree</code> +می‌تونید دایرکتوری های تو در تو رو ببینید.</p> +<p><img src="https://bit-orbit.github.io/images/post/treecolab.jpg" +loading="lazy" +alt="tree in colab" +></p> +<p>توی این مرحله من همه فایل های mp3 رو باید بیارم توی پوشه اصلی که اسکریپت‌ اپلود اجرا میشه، دلیل این کار این هست که این اسکریپ‌ت فقط فایل های mp3 -داخل همین پوشه رو پیدا و اپلود می‌کنه.</p> -<p>برای انتقال این فایل ها از پوشه های تو در تو به یک پوشه از کامند -<code>find</code> +داخل همین پوشه رو پیدا و اپلود می‌کنه.</p> +<p>برای انتقال این فایل ها از پوشه های تو در تو به یک پوشه از کامند +<code>find</code> استفاده می‌کنم و هر فایل که پیدا می‌شه رو با کامند -<code>mv</code> -به پوشه اصلی‌مون انتقال می‌دم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!find . -type f -iname <span class="s1">&#39;*mp3&#39;</span> -exec mv <span class="o">{}</span> . <span class="se">\;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>بیایید سوییچ های این دستور رو بهتون بگم</p> -<ul> -<li>type-</li> -</ul> -<p>این سوییچ انواع نوع فایل ها رو مشخص می‌کنه. مثلا شما می‌تونید دنبال یک دایرکتوری، فایل، سوکت و &hellip; بگردین</p> -<ul> -<li>iname-</li> -</ul> -<p>این سویچ که مشخص هست نام فایل رو ازتون می‌گیره که شما می‌تونید پترن ریجکس بدین بهش. +<code>mv</code> +به پوشه اصلی‌مون انتقال می‌دم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!find . -type f -iname <span class="s1">&#39;*mp3&#39;</span> -exec mv <span class="o">{}</span> . <span class="se">\;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>بیایید سوییچ های این دستور رو بهتون بگم</p> +<ul> +<li>type-</li> +</ul> +<p>این سوییچ انواع نوع فایل ها رو مشخص می‌کنه. مثلا شما می‌تونید دنبال یک دایرکتوری، فایل، سوکت و &hellip; بگردین</p> +<ul> +<li>iname-</li> +</ul> +<p>این سویچ که مشخص هست نام فایل رو ازتون می‌گیره که شما می‌تونید پترن ریجکس بدین بهش. و اون -<strong>i</strong> -مشخص می‌کنه که نام فایل به کوچیکی و بزرگی حساس نباشه.</p> -<ul> -<li>exec-</li> -</ul> -<p>یک کامندی رو ازتون می‌گیره و روی تک تک ریزالت های جست و جو اون کامند رو اجرا می‌کنه. +<strong>i</strong> +مشخص می‌کنه که نام فایل به کوچیکی و بزرگی حساس نباشه.</p> +<ul> +<li>exec-</li> +</ul> +<p>یک کامندی رو ازتون می‌گیره و روی تک تک ریزالت های جست و جو اون کامند رو اجرا می‌کنه. من کامند -<code>mv</code> +<code>mv</code> رو دادم که برای انتقال فایل استفاده می‌شه. علامت های -<strong>{}</strong> -هم یک متغییر هست که نام فایل تک به تک جای اون قرار می‌گیره.</p> -<blockquote> -<p>پایان سوییچ +<strong>{}</strong> +هم یک متغییر هست که نام فایل تک به تک جای اون قرار می‌گیره.</p> +<blockquote> +<p>پایان سوییچ exec همیشه با -<code>;\</code> -مشخص می‌شه.</p> -</blockquote> -<p>خب تا اینجا که خیلی ساده بود،‌ نه؟</p> -<p>مرحله آخر اینه که یک ربات با -<a class="link" href="https://t.me/BotFather" target="_blank" rel="noopener" - >این ربات</a> -بسازین، و بعد اون رو عضو یک کانالی که می‌سازید بکنید، کانال رو فعلا پابلیک بسازید و یک یوزرنیم بهش بدین.</p> -<p>توکن ربات رو کپی کنید و توی اسکریپت من، جایی که نوشته -<your token> +<code>;\</code> +مشخص می‌شه.</p> +</blockquote> +<p>خب تا اینجا که خیلی ساده بود،‌ نه؟</p> +<p>مرحله آخر اینه که یک ربات با +<a class="link" href="https://t.me/BotFather" target="_blank" rel="noopener" +>این ربات</a> +بسازین، و بعد اون رو عضو یک کانالی که می‌سازید بکنید، کانال رو فعلا پابلیک بسازید و یک یوزرنیم بهش بدین.</p> +<p>توکن ربات رو کپی کنید و توی اسکریپت من، جایی که نوشته +<your token> وارد کنید و توی قسمت -<chat id> -هم ایدی کانالتون رو با علامت @ اول جایگذاری کنید.</p> -<p><img src="https://bit-orbit.github.io/images/post/acdccolab.jpg" - - - - loading="lazy" - - alt="ac and dc telegram channel" - - -></p> -<blockquote> -<p>اگه کانال پرایوت دارید باید بجای ای‌دی کانال از +<chat id> +هم ایدی کانالتون رو با علامت @ اول جایگذاری کنید.</p> +<p><img src="https://bit-orbit.github.io/images/post/acdccolab.jpg" +loading="lazy" +alt="ac and dc telegram channel" +></p> +<blockquote> +<p>اگه کانال پرایوت دارید باید بجای ای‌دی کانال از chatid -استفاده کنید، که یک ای‌دی عددی هست.</p> -</blockquote> -<p><strong>تمام</strong>!‌ -کافیه برنامه رو اجرا کنید و کانال تلگرامتون رو نگاه کنید :)</p> -<blockquote> -<p>اگه خیلی زیاد دارین فایل اپلود می‌کنید احتمالا تلگرام ارور +استفاده کنید، که یک ای‌دی عددی هست.</p> +</blockquote> +<p><strong>تمام</strong>!‌ +کافیه برنامه رو اجرا کنید و کانال تلگرامتون رو نگاه کنید :)</p> +<blockquote> +<p>اگه خیلی زیاد دارین فایل اپلود می‌کنید احتمالا تلگرام ارور flood mood بهتون بده. توی این مورد کافیه فقط صبر کنید، اسکریپت از اجرا قطع نمی‌شه و روی همون فایل مجددا اجرا می‌شه -تا بالاخره فایل اپلود بشه.</p> -</blockquote> -<blockquote> -<p>هرچیزی رو می‌تونید آپلود کنید ولی دقت کنید که ربات ها محدودیت حجم اپلود دارن که نهایتش 50MB هست</p> -</blockquote> -<blockquote> -<p>اینم بگم که توی اسکریپت اگه +تا بالاخره فایل اپلود بشه.</p> +</blockquote> +<blockquote> +<p>هرچیزی رو می‌تونید آپلود کنید ولی دقت کنید که ربات ها محدودیت حجم اپلود دارن که نهایتش 50MB هست</p> +</blockquote> +<blockquote> +<p>اینم بگم که توی اسکریپت اگه mp3 -رو به چیز دیگه‌ای تغییر بدین، اسکریپت به دنبال اون پسوند ها خواهد گشت.</p> -</blockquote> - - - - - +رو به چیز دیگه‌ای تغییر بدین، اسکریپت به دنبال اون پسوند ها خواهد گشت.</p> +</blockquote> \ No newline at end of file diff --git "a/docs/tags/\330\247\331\276\331\204\331\210\330\257-\331\201\330\247\333\214\331\204-\330\250\331\207-\330\252\331\204\332\257\330\261\330\247\331\205-\330\250\330\257\331\210\331\206-\331\206\333\214\330\247\330\262-\330\250\331\207-\330\263\330\261\331\210\330\261/page/1/index.html" "b/docs/tags/\330\247\331\276\331\204\331\210\330\257-\331\201\330\247\333\214\331\204-\330\250\331\207-\330\252\331\204\332\257\330\261\330\247\331\205-\330\250\330\257\331\210\331\206-\331\206\333\214\330\247\330\262-\330\250\331\207-\330\263\330\261\331\210\330\261/page/1/index.html" index 3b06cfa..cf07493 100644 --- "a/docs/tags/\330\247\331\276\331\204\331\210\330\257-\331\201\330\247\333\214\331\204-\330\250\331\207-\330\252\331\204\332\257\330\261\330\247\331\205-\330\250\330\257\331\210\331\206-\331\206\333\214\330\247\330\262-\330\250\331\207-\330\263\330\261\331\210\330\261/page/1/index.html" +++ "b/docs/tags/\330\247\331\276\331\204\331\210\330\257-\331\201\330\247\333\214\331\204-\330\250\331\207-\330\252\331\204\332\257\330\261\330\247\331\205-\330\250\330\257\331\210\331\206-\331\206\333\214\330\247\330\262-\330\250\331\207-\330\263\330\261\331\210\330\261/page/1/index.html" @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/%D8%A7%D9%BE%D9%84%D9%88%D8%AF-%D9%81%D8%A7%DB%8C%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85-%D8%A8%D8%AF%D9%88%D9%86-%D9%86%DB%8C%D8%A7%D8%B2-%D8%A8%D9%87-%D8%B3%D8%B1%D9%88%D8%B1/ - - - - - - +https://bit-orbit.github.io/tags/%D8%A7%D9%BE%D9%84%D9%88%D8%AF-%D9%81%D8%A7%DB%8C%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85-%D8%A8%D8%AF%D9%88%D9%86-%D9%86%DB%8C%D8%A7%D8%B2-%D8%A8%D9%87-%D8%B3%D8%B1%D9%88%D8%B1/ + \ No newline at end of file diff --git "a/docs/tags/\330\247\331\276\331\204\331\210\330\257-\331\205\331\210\331\202\330\252-\331\201\330\247\333\214\331\204/index.html" "b/docs/tags/\330\247\331\276\331\204\331\210\330\257-\331\205\331\210\331\202\330\252-\331\201\330\247\333\214\331\204/index.html" index 67eeac7..835b606 100644 --- "a/docs/tags/\330\247\331\276\331\204\331\210\330\257-\331\205\331\210\331\202\330\252-\331\201\330\247\333\214\331\204/index.html" +++ "b/docs/tags/\330\247\331\276\331\204\331\210\330\257-\331\205\331\210\331\202\330\252-\331\201\330\247\333\214\331\204/index.html" @@ -1,559 +1,37 @@ - - - - -Tag: اپلود موقت فایل - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

اپلود موقت فایل

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: اپلود موقت فایل - bit-orbit +

Tags

1 صفحه

اپلود موقت فایل

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git "a/docs/tags/\330\247\331\276\331\204\331\210\330\257-\331\205\331\210\331\202\330\252-\331\201\330\247\333\214\331\204/index.xml" "b/docs/tags/\330\247\331\276\331\204\331\210\330\257-\331\205\331\210\331\202\330\252-\331\201\330\247\333\214\331\204/index.xml" index 0be94ae..ceab82b 100644 --- "a/docs/tags/\330\247\331\276\331\204\331\210\330\257-\331\205\331\210\331\202\330\252-\331\201\330\247\333\214\331\204/index.xml" +++ "b/docs/tags/\330\247\331\276\331\204\331\210\330\257-\331\205\331\210\331\202\330\252-\331\201\330\247\333\214\331\204/index.xml" @@ -1,79 +1,65 @@ - - - - اپلود موقت فایل on bit-orbit - https://bit-orbit.github.io/tags/%D8%A7%D9%BE%D9%84%D9%88%D8%AF-%D9%85%D9%88%D9%82%D8%AA-%D9%81%D8%A7%DB%8C%D9%84/ - Recent content in اپلود موقت فایل on bit-orbit - Hugo -- gohugo.io - fa - Wed, 06 Mar 2024 23:50:46 +0330 - Crul Paste - https://bit-orbit.github.io/p/crul-paste/ - Wed, 06 Mar 2024 23:50:46 +0330 - - https://bit-orbit.github.io/p/crul-paste/ - <img src="https://bit-orbit.github.io/images/post/curlpaste.jpg" alt="Featured image of post Crul Paste" /><p>اول بیایید ببینم +اپلود موقت فایل on bit-orbithttps://bit-orbit.github.io/tags/%D8%A7%D9%BE%D9%84%D9%88%D8%AF-%D9%85%D9%88%D9%82%D8%AA-%D9%81%D8%A7%DB%8C%D9%84/Recent content in اپلود موقت فایل on bit-orbitHugo -- gohugo.iofaWed, 06 Mar 2024 23:50:46 +0330Crul Pastehttps://bit-orbit.github.io/p/crul-paste/Wed, 06 Mar 2024 23:50:46 +0330https://bit-orbit.github.io/p/crul-paste/<img src="https://bit-orbit.github.io/images/post/curlpaste.jpg" alt="Featured image of post Crul Paste" /><p>اول بیایید ببینم FileBin چیه! قبل از اون هم فکر می‌کنم همه بدونیم -<a class="link" href="https://virgool.io/@m_shabane/pastebin-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B1%D8%A7-%D9%87%DA%A9%D8%B1-%D9%87%D8%A7-%D8%B9%D8%A7%D8%B4%D9%82-%D8%A2%D9%86-%D9%87%D8%A7%D8%B3%D8%AA%D9%86%D8%AF-swafqm95gttp" target="_blank" rel="noopener" - >pastebin</a> +<a class="link" href="https://virgool.io/@m_shabane/pastebin-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B1%D8%A7-%D9%87%DA%A9%D8%B1-%D9%87%D8%A7-%D8%B9%D8%A7%D8%B4%D9%82-%D8%A2%D9%86-%D9%87%D8%A7%D8%B3%D8%AA%D9%86%D8%AF-swafqm95gttp" target="_blank" rel="noopener" +>pastebin</a> چیه. اگه نمی‌دونید خیلی ساده باید بگم یک سایتی که فقط روی اون متن به اشتراک می‌ذارن -مثلا ممکنه ارور ها یا حتی سورس یک برنامه باشه!</p> -<p>اما +مثلا ممکنه ارور ها یا حتی سورس یک برنامه باشه!</p> +<p>اما FileBin ها بجای تسکت فایل های شما رو نگهداری می‌کنند و به شما لینکی ارائه می‌کنند که فایل را برای دیگران اشتراک بگذارید، نمونه های زیادی هم وجود داره مثل -<a class="link" href="https://wormhole.app" target="_blank" rel="noopener" - >https://wormhole.app</a></p> -<p>اما خب از اونجایی که من زندگی‌ام رو توی ترمینال می‌گذرونم و ترمینال رو به باز کردن مرورگر برای اشتراک یک فایل ترجیح می‌دم، پس از +<a class="link" href="https://wormhole.app" target="_blank" rel="noopener" +>https://wormhole.app</a></p> +<p>اما خب از اونجایی که من زندگی‌ام رو توی ترمینال می‌گذرونم و ترمینال رو به باز کردن مرورگر برای اشتراک یک فایل ترجیح می‌دم، پس از FileBin هایی استفاده می‌کنم که بتونم تحت ترمینال به سادگی فایلم رو به اشتراک بذارم. برای مثال -<a class="link" href="https://0x0.st" target="_blank" rel="noopener" - >https://0x0.st</a></p> -<p>وقتی این رو سایت رو باز کنید هیچ گزینه‌ای برای انتخاب فایل و آپلود نمی‌بینید! خب پس چطور باید یک فایل را برای سایت آپلود کنید؟ +<a class="link" href="https://0x0.st" target="_blank" rel="noopener" +>https://0x0.st</a></p> +<p>وقتی این رو سایت رو باز کنید هیچ گزینه‌ای برای انتخاب فایل و آپلود نمی‌بینید! خب پس چطور باید یک فایل را برای سایت آپلود کنید؟ کافیه یک ریکوئست HTTP POST خیلی ساده به سایت بزنید که شامل فایتون باشه. این کار رو خیلی ساده می‌شه با curl -انجام داد.</p> -<p>مثلا بیایین اشتراک یک فایل رو ببینیم</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl https://0x0.st -F <span class="nv">file</span><span class="o">=</span>@/path/to/file -</span></span><span class="line"><span class="cl"><span class="c1"># https://0x0.st/zWKo.txt</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>این سایت خیلی خوبه +انجام داد.</p> +<p>مثلا بیایین اشتراک یک فایل رو ببینیم</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl https://0x0.st -F <span class="nv">file</span><span class="o">=</span>@/path/to/file +</span></span><span class="line"><span class="cl"><span class="c1"># https://0x0.st/zWKo.txt</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>این سایت خیلی خوبه اما از زمانی به بعد دیگه این سایت کاری که من نیاز دارم رو کفاف نداد! برای مثال من نیاز دارم فایلم بعد از اولین دانلود از روی سرور حذف بشه و از این مهم تر نیاز داشتم که چندین فایل رو با یک یوزنیم مشخص اپلود کنم که خب شخصی که قرار باشه فایل ها رو دانلود کنه، کافیه از یوزنیم استفاده کنه که راحت تر قابل حفظ کردن و اشتراک گذاشتنه. اینطوری بود که گفتم FileBin -خودم رو بنویسم :)</p> -<hr> -<p><strong>بیایید فیچر ها و روش استفاده ازش رو با هم ببینیم.</strong></p> -<p>فرض کنید شما یک فایل دارید که می‌خواهید با من به اشتراک بگذارید، +خودم رو بنویسم :)</p> +<hr> +<p><strong>بیایید فیچر ها و روش استفاده ازش رو با هم ببینیم.</strong></p> +<p>فرض کنید شما یک فایل دارید که می‌خواهید با من به اشتراک بگذارید، خیلی ساده ترمینال رو باز می‌کنید و با یک دستور فایل رو با یک URL -تقریبا تصادفی منتشر می‌کنید.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">file</span><span class="o">=</span>@/tmp/theFile.fli -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/theFile.fli</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>دقت کنید من از سوییچ +تقریبا تصادفی منتشر می‌کنید.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">file</span><span class="o">=</span>@/tmp/theFile.fli +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/theFile.fli</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>دقت کنید من از سوییچ -L استفاده می‌کنم، دلیل اینکار این هست که خب ممکنه سایت شما رو ریدایرکت کنه. مثلا از @@ -82,206 +68,201 @@ http https. برای همین این سوییچ رو استفاده می‌کنم. با این سوییچ دیگه نیازی نیست https:// -رو هم بنویسیم!</p> -</blockquote> -<p>حالا اگه نیاز دارین که فایلتون بعد از اولین دانلود از روی سرور حذف بشه و دیگه در دسترس نباشه +رو هم بنویسیم!</p> +</blockquote> +<p>حالا اگه نیاز دارین که فایلتون بعد از اولین دانلود از روی سرور حذف بشه و دیگه در دسترس نباشه کافیه از کلمه -<code>once</code> +<code>once</code> بجای -<code>file</code> -استفاده کنید.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@/tmp/theFile.fli -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/theFile_GKug7xb.fli</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>تا اینجای کار همه +<code>file</code> +استفاده کنید.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@/tmp/theFile.fli +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/theFile_GKug7xb.fli</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>تا اینجای کار همه URL های هر فایلی به صورت تصادفی هست و من نیاز دارم که چندین فایل رو زیر یک یوزنیم مشخص مثل -<code>arya</code> +<code>arya</code> قرار بدم. اینطوری وقتی قراره یک فایل رو برای همکارم توی شرکت بفرستم خیلی ساده ازش درخواست می‌کنم در سایت به ادرس -<code>/arya</code> +<code>/arya</code> بره. حالا چطوری اینکارو بکنیم خیلی ساده بجای -<code>once</code> +<code>once</code> یا -<code>file</code>, +<code>file</code>, همون -<code>username</code> -رو می‌نویسیم(توی مثال من از نام <strong><em>arya</em></strong> استفاده می‌کنیم)</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">arya</span><span class="o">=</span>@/tmp/pic.jpg -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/arya</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>تا اینجای کار مثلا شما چند بار چند فایل مختلف رو زیر یک یوزنیم قرار دادین -حالا چطور میشه همه اونها رو باهم دانلود کرد؟</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir/arya <span class="p">|</span> wget -i - -</span></span></code></pre></td></tr></table> -</div> -</div><p>حالا به این فکر کنید که یکنفر میاد و با یوزنیم های معقول ریکوئست میزنه به سایت و +<code>username</code> +رو می‌نویسیم(توی مثال من از نام <strong><em>arya</em></strong> استفاده می‌کنیم)</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">arya</span><span class="o">=</span>@/tmp/pic.jpg +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/arya</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>تا اینجای کار مثلا شما چند بار چند فایل مختلف رو زیر یک یوزنیم قرار دادین +حالا چطور میشه همه اونها رو باهم دانلود کرد؟</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir/arya <span class="p">|</span> wget -i - +</span></span></code></pre></td></tr></table> +</div> +</div><p>حالا به این فکر کنید که یکنفر میاد و با یوزنیم های معقول ریکوئست میزنه به سایت و فایل های بقیه رو دانلود می‌کنه، اینجاست که پسورد به کار میاد. برای گذاشتن پسورد روی هر فایل کافیه توی خود URL سایت پسورد رو بعنوان http parametr -بنویسد.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L <span class="s1">&#39;octocat.ir/?password=12345678&#39;</span> -F <span class="nv">once</span><span class="o">=</span>@/Desktop/TopSecret.fli -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/file/TopSecret/?password=12345678</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>اینجا دقت کنید که باید از کوتیشن استفاده کنیم چون علامت مساوی و علامت سوال رو bash وایلد کارد می‌بینه.</p> -</blockquote> -<p>برای دانلود هر فایلی هم که پسورد داره کافیه دقیقا مثل مثال قبلی عمل کنید و پسورد رو توی +بنویسد.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L <span class="s1">&#39;octocat.ir/?password=12345678&#39;</span> -F <span class="nv">once</span><span class="o">=</span>@/Desktop/TopSecret.fli +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/file/TopSecret/?password=12345678</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>اینجا دقت کنید که باید از کوتیشن استفاده کنیم چون علامت مساوی و علامت سوال رو bash وایلد کارد می‌بینه.</p> +</blockquote> +<p>برای دانلود هر فایلی هم که پسورد داره کافیه دقیقا مثل مثال قبلی عمل کنید و پسورد رو توی http parametr -وارد کنید</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ wget <span class="s1">&#39;octocat.ir/file/TopSecret/?password=12345678&#39;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>براتون سواله که چرا پسورد روی توی +وارد کنید</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ wget <span class="s1">&#39;octocat.ir/file/TopSecret/?password=12345678&#39;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>براتون سواله که چرا پسورد روی توی URL گذاشتم؟ می‌شد که مثلا توی http header پسورد بگیریم و بدیم، پس چرا توی -URL?</p> -<p>اینکار برای این هست که دسترسی به فایل ساده باشه. مثلا من وقتی می‌خام فایلی رو برای همکارم بفرستم +URL?</p> +<p>اینکار برای این هست که دسترسی به فایل ساده باشه. مثلا من وقتی می‌خام فایلی رو برای همکارم بفرستم و خب فرض کنم همکار من از header ها چیزی نمی‌دونه، و فقط با یک کلیک باید بتونه به فایل دسترسی پیدا کنه، اینجاست که من فقط یک URL -به اون می‌گم :)</p> -<hr> -<p>بعضی از ابزار ها +به اون می‌گم :)</p> +<hr> +<p>بعضی از ابزار ها hackable هستند! این به معنی ضعف امنیتی نیست، بلکه به این اشاره می‌کنه ابزار به روشی طراحی -شده که کاربران می‌تونند خارج از هدف اصلی اون ابزار از اون استفاه کنند.</p> -<p>برای مثال ابزار که من درست کردم برای اشتراک فایل هست، اما بنظرتون میشه یک دایرکتوری و یا یک متن رو هم باهاش به اشتراک گذاشت؟</p> -<p>قطعا! اما چطوری؟</p> -<p>برای اینکه یک دایرکتوری با تمامی ساب دایرکتوری هاش رو بفرستین +شده که کاربران می‌تونند خارج از هدف اصلی اون ابزار از اون استفاه کنند.</p> +<p>برای مثال ابزار که من درست کردم برای اشتراک فایل هست، اما بنظرتون میشه یک دایرکتوری و یا یک متن رو هم باهاش به اشتراک گذاشت؟</p> +<p>قطعا! اما چطوری؟</p> +<p>برای اینکه یک دایرکتوری با تمامی ساب دایرکتوری هاش رو بفرستین کافیه از -<code>tar</code> -استفاده کنید.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ tar -cf - ~/Pictures <span class="p">|</span> curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@- -</span></span><span class="line"><span class="cl"><span class="c1"># &#39;octocat.ir/file/_nUiuRPW/</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>با اینکار با استفاده از +<code>tar</code> +استفاده کنید.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ tar -cf - ~/Pictures <span class="p">|</span> curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@- +</span></span><span class="line"><span class="cl"><span class="c1"># &#39;octocat.ir/file/_nUiuRPW/</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>با اینکار با استفاده از tar تمامی فایل ها و دایرکتوری های مثلا پوشه -<em>~/Pictures</em> +<em>~/Pictures</em> رو به آرشیو -<code>tar</code> +<code>tar</code> تبدیل می‌کنید و بعد خروجی رو بعنوان ورودی به -<code>curl</code> -می‌فرستین.</p> -<p>حالا به این فکر کنید که بخواهیم یک متن رو منتشر کنیم، راهکار دقیقا مشابه قبلیه. +<code>curl</code> +می‌فرستین.</p> +<p>حالا به این فکر کنید که بخواهیم یک متن رو منتشر کنیم، راهکار دقیقا مشابه قبلیه. به این شکل که یک متن رو با استفاده از -<code>echo</code> +<code>echo</code> به ورودی استاندارد -<code>curl</code> -می‌فرستیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ <span class="nb">echo</span> <span class="s1">&#39;Some Random Text&#39;</span> <span class="p">|</span> curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@- -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/file/-_W00DSbS/</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>اینطوری خیلی راحت می‌شه خروجی هر کامندی رو روی به اشتراک گذاشت</p> -</blockquote> -<hr> -<p>سایت من توی آدرس +<code>curl</code> +می‌فرستیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ <span class="nb">echo</span> <span class="s1">&#39;Some Random Text&#39;</span> <span class="p">|</span> curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@- +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/file/-_W00DSbS/</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>اینطوری خیلی راحت می‌شه خروجی هر کامندی رو روی به اشتراک گذاشت</p> +</blockquote> +<hr> +<p>سایت من توی آدرس octocat.ir -در دسترسه، خوشحال می‌شم ازش استفاده کنید :)</p> -<blockquote> -<p>اینو بدونید که سایت به صورت دیفالت فایل ها رو برای 24 ساعت نگه‌میداره</p> -</blockquote> -<p>این سرویس رو منبع باز روی -<a class="link" href="https://github.com/shabane/CurlPaste/" target="_blank" rel="noopener" - >گیتهاب</a> -گذاشتم، اگه چیزی خواستید می‌تونید بهش اضافه کنید و یا مشکلاتش رو پچ کنید.</p> -<p>و اگه می‌خواهید برای خودتون این سرویس رو بیارید بالا از ایمیج داکر استفاده کنید</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">docker run -p 80:80 mshabane/curlpaste:latest -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>اگه نیاز دارین تا فایل ها برای تایم بالاتری نگه‌داری بشه، متغییر -<em>HOURS</em> +در دسترسه، خوشحال می‌شم ازش استفاده کنید :)</p> +<blockquote> +<p>اینو بدونید که سایت به صورت دیفالت فایل ها رو برای 24 ساعت نگه‌میداره</p> +</blockquote> +<p>این سرویس رو منبع باز روی +<a class="link" href="https://github.com/shabane/CurlPaste/" target="_blank" rel="noopener" +>گیتهاب</a> +گذاشتم، اگه چیزی خواستید می‌تونید بهش اضافه کنید و یا مشکلاتش رو پچ کنید.</p> +<p>و اگه می‌خواهید برای خودتون این سرویس رو بیارید بالا از ایمیج داکر استفاده کنید</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">docker run -p 80:80 mshabane/curlpaste:latest +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>اگه نیاز دارین تا فایل ها برای تایم بالاتری نگه‌داری بشه، متغییر +<em>HOURS</em> داخل فایل -<em>.env</em> -رو تغییر بدین.</p> -</blockquote> -<hr> -<p>ایده های دیگه‌ای هم برای سایت دارم، برای مثال اینکه کاربر بتونه زمان انقضای +<em>.env</em> +رو تغییر بدین.</p> +</blockquote> +<hr> +<p>ایده های دیگه‌ای هم برای سایت دارم، برای مثال اینکه کاربر بتونه زمان انقضای هر فایل رو خودش مشخص کنه. -مثلا به این شکل</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -L octocat.ir -F <span class="nv">arya_1</span><span class="o">=</span>/path/to/file -</span></span></code></pre></td></tr></table> -</div> -</div><p>اینطوری میشه یک زمان انقضا بر اساس ساعت برای هر فایل ایجاد کرد.</p> -<p>و خب همچنین میشه یک کوتاه کننده لینک هم بهش اضافه کنم، و لینک های کوتاه شده رو -ریدایرکت کنم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -L octocat.ir -F <span class="nv">url</span><span class="o">=</span><span class="s1">&#39;https://example.com/some/looooong/url/&#39;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>اگه اینها رو اضافه کنم، این پست رو اپدیت می‌کنم ولی خوشحال می‌شم شما -توی این پروژه مشارکت کنید.</p> - - - - - +مثلا به این شکل</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -L octocat.ir -F <span class="nv">arya_1</span><span class="o">=</span>/path/to/file +</span></span></code></pre></td></tr></table> +</div> +</div><p>اینطوری میشه یک زمان انقضا بر اساس ساعت برای هر فایل ایجاد کرد.</p> +<p>و خب همچنین میشه یک کوتاه کننده لینک هم بهش اضافه کنم، و لینک های کوتاه شده رو +ریدایرکت کنم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -L octocat.ir -F <span class="nv">url</span><span class="o">=</span><span class="s1">&#39;https://example.com/some/looooong/url/&#39;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>اگه اینها رو اضافه کنم، این پست رو اپدیت می‌کنم ولی خوشحال می‌شم شما +توی این پروژه مشارکت کنید.</p> \ No newline at end of file diff --git "a/docs/tags/\330\247\331\276\331\204\331\210\330\257-\331\205\331\210\331\202\330\252-\331\201\330\247\333\214\331\204/page/1/index.html" "b/docs/tags/\330\247\331\276\331\204\331\210\330\257-\331\205\331\210\331\202\330\252-\331\201\330\247\333\214\331\204/page/1/index.html" index 5cf5e26..7cafc13 100644 --- "a/docs/tags/\330\247\331\276\331\204\331\210\330\257-\331\205\331\210\331\202\330\252-\331\201\330\247\333\214\331\204/page/1/index.html" +++ "b/docs/tags/\330\247\331\276\331\204\331\210\330\257-\331\205\331\210\331\202\330\252-\331\201\330\247\333\214\331\204/page/1/index.html" @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/%D8%A7%D9%BE%D9%84%D9%88%D8%AF-%D9%85%D9%88%D9%82%D8%AA-%D9%81%D8%A7%DB%8C%D9%84/ - - - - - - +https://bit-orbit.github.io/tags/%D8%A7%D9%BE%D9%84%D9%88%D8%AF-%D9%85%D9%88%D9%82%D8%AA-%D9%81%D8%A7%DB%8C%D9%84/ + \ No newline at end of file diff --git "a/docs/tags/\330\252\331\201\330\247\331\210\330\252-\330\250\333\214\331\206-static-linking-\331\210-dynamic-linking/index.html" "b/docs/tags/\330\252\331\201\330\247\331\210\330\252-\330\250\333\214\331\206-static-linking-\331\210-dynamic-linking/index.html" index 90184ad..5ee231d 100644 --- "a/docs/tags/\330\252\331\201\330\247\331\210\330\252-\330\250\333\214\331\206-static-linking-\331\210-dynamic-linking/index.html" +++ "b/docs/tags/\330\252\331\201\330\247\331\210\330\252-\330\250\333\214\331\206-static-linking-\331\210-dynamic-linking/index.html" @@ -1,559 +1,37 @@ - - - - -Tag: تفاوت بین Static Linking و Dynamic Linking - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

تفاوت بین Static Linking و Dynamic Linking

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: تفاوت بین Static Linking و Dynamic Linking - bit-orbit +

Tags

1 صفحه

تفاوت بین Static Linking و Dynamic Linking

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git "a/docs/tags/\330\252\331\201\330\247\331\210\330\252-\330\250\333\214\331\206-static-linking-\331\210-dynamic-linking/index.xml" "b/docs/tags/\330\252\331\201\330\247\331\210\330\252-\330\250\333\214\331\206-static-linking-\331\210-dynamic-linking/index.xml" index bf5e262..b3f5f76 100644 --- "a/docs/tags/\330\252\331\201\330\247\331\210\330\252-\330\250\333\214\331\206-static-linking-\331\210-dynamic-linking/index.xml" +++ "b/docs/tags/\330\252\331\201\330\247\331\210\330\252-\330\250\333\214\331\206-static-linking-\331\210-dynamic-linking/index.xml" @@ -1,92 +1,73 @@ - - - - تفاوت بین Static Linking و Dynamic Linking on bit-orbit - https://bit-orbit.github.io/tags/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-%D8%A8%DB%8C%D9%86-static-linking-%D9%88-dynamic-linking/ - Recent content in تفاوت بین Static Linking و Dynamic Linking on bit-orbit - Hugo -- gohugo.io - fa - Fri, 03 Nov 2023 00:21:46 +0330 - تفاوت Staticlink و Dynamiclink در زبان های برنامه نویسی - https://bit-orbit.github.io/p/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-staticlink-%D9%88-dynamiclink-%D8%AF%D8%B1-%D8%B2%D8%A8%D8%A7%D9%86-%D9%87%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C/ - Fri, 03 Nov 2023 00:21:46 +0330 - - https://bit-orbit.github.io/p/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-staticlink-%D9%88-dynamiclink-%D8%AF%D8%B1-%D8%B2%D8%A8%D8%A7%D9%86-%D9%87%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C/ - <img src="https://bit-orbit.github.io/images/post/staticvsdynamic.jpg" alt="Featured image of post تفاوت Staticlink و Dynamiclink در زبان های برنامه نویسی" /><p>یکسری مفاهیمی در برنامه نویسی داریم که من تصمیم داریم درباره آنها توی چند پست توضیح بدم، اولین مورد +تفاوت بین Static Linking و Dynamic Linking on bit-orbithttps://bit-orbit.github.io/tags/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-%D8%A8%DB%8C%D9%86-static-linking-%D9%88-dynamic-linking/Recent content in تفاوت بین Static Linking و Dynamic Linking on bit-orbitHugo -- gohugo.iofaFri, 03 Nov 2023 00:21:46 +0330تفاوت Staticlink و Dynamiclink در زبان های برنامه نویسیhttps://bit-orbit.github.io/p/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-staticlink-%D9%88-dynamiclink-%D8%AF%D8%B1-%D8%B2%D8%A8%D8%A7%D9%86-%D9%87%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C/Fri, 03 Nov 2023 00:21:46 +0330https://bit-orbit.github.io/p/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-staticlink-%D9%88-dynamiclink-%D8%AF%D8%B1-%D8%B2%D8%A8%D8%A7%D9%86-%D9%87%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C/<img src="https://bit-orbit.github.io/images/post/staticvsdynamic.jpg" alt="Featured image of post تفاوت Staticlink و Dynamiclink در زبان های برنامه نویسی" /><p>یکسری مفاهیمی در برنامه نویسی داریم که من تصمیم داریم درباره آنها توی چند پست توضیح بدم، اولین مورد که شامل این پست می‌شه تفاوت static linking و dynamic linking در زبان های برامه نویسی هست‌ش. مفاهیم دیگه‌ای که داخل پست های بعدی می‌نویسم چیز هایی مثل -<strong>static type, dynamic type, compiler language, interpreter language</strong> و &hellip; -خواهد بود.</p> -<hr> -<ul> -<li> -<p>دو مفهموم +<strong>static type, dynamic type, compiler language, interpreter language</strong> و &hellip; +خواهد بود.</p> +<hr> +<ul> +<li> +<p>دو مفهموم static linking و dynamic linking -چه هستند؟</p> -</li> -<li> -<p>هر کدام چه مشکلات و فوایدی دارند؟</p> -</li> -</ul> -<hr> -<p>ما در نوشتن برنامه ها معمولا از لایبراری های زیادی استفاده می‌کنیم، حتی یک برانامه ساده. +چه هستند؟</p> +</li> +<li> +<p>هر کدام چه مشکلات و فوایدی دارند؟</p> +</li> +</ul> +<hr> +<p>ما در نوشتن برنامه ها معمولا از لایبراری های زیادی استفاده می‌کنیم، حتی یک برانامه ساده. سیستم ما برای اجرای یک برنامه، کد برنامه رو به ماشین-کد تبدیل می‌کنه و بعد خط به خط -اون ها رو اجرا می‌کنه.</p> -<p>اصطلاح +اون ها رو اجرا می‌کنه.</p> +<p>اصطلاح linking به روندی گفته می‌شود که کد شما به اشیاء(کد و داده) های خارجی برای استفاده از انها اشاره کند. معمولا دو روش برای اینکار وجود دارد، static linking(لینک کردن ایستا), -dynamic linking(لینک کردن پویا).</p> -<blockquote> -<p>static linking -زمانی اتفاق می‌افتد که کامپایلر منابع خارجی(لایبراری) ها را داخل فایل اجرایی برنامه کپی کند</p> -</blockquote> -<p>در واقع در این روش برنامه شما تمامی لایبراری هایی که شما در کد استفاده کردین رو +dynamic linking(لینک کردن پویا).</p> +<blockquote> +<p>static linking +زمانی اتفاق می‌افتد که کامپایلر منابع خارجی(لایبراری) ها را داخل فایل اجرایی برنامه کپی کند</p> +</blockquote> +<p>در واقع در این روش برنامه شما تمامی لایبراری هایی که شما در کد استفاده کردین رو با کد شما درون یک فایل اجرایی کامپایل می‌کند، زمانی که برنامه اجرا شود، تمامی لایبراری های -مورد نیازش وارد مموری کامپیوتر می‌شود.</p> -<p>فایده هایی که می‌تونم بهش اشاره کنم</p> -<ul> -<li>توی منتشر کردن برنامه به دیگران، مشکل نصب کامپوننت ها رو دیگه ندارن، و به راحتی اجرا می‌کنند.</li> -<li>ممکنه برنامه اندکی سریع تر اجرا بشه</li> -</ul> -<p>این روش واقعا خوبیه ولی خب معایب خودش رو هم داره</p> -<ul> -<li>فایل اجرایی حجم زیادی‌تری نسب‌ت به لینک کردن پویا داره</li> -<li>وقتی برنامه اجرا بشه، بخاطر اینکه همه لایبراری و داده های مورد نیاز داخل همان فایل اجرایی بود، برنامه رم زیادی استفاده می‌کنه.</li> -<li>اگر لایبراری های مورد استفاده تغییر کنند، برنامه نویس باید مجدد برنامه رو کامپایل و منتشر کنه</li> -</ul> -<blockquote> -<p>dynamic linking +مورد نیازش وارد مموری کامپیوتر می‌شود.</p> +<p>فایده هایی که می‌تونم بهش اشاره کنم</p> +<ul> +<li>توی منتشر کردن برنامه به دیگران، مشکل نصب کامپوننت ها رو دیگه ندارن، و به راحتی اجرا می‌کنند.</li> +<li>ممکنه برنامه اندکی سریع تر اجرا بشه</li> +</ul> +<p>این روش واقعا خوبیه ولی خب معایب خودش رو هم داره</p> +<ul> +<li>فایل اجرایی حجم زیادی‌تری نسب‌ت به لینک کردن پویا داره</li> +<li>وقتی برنامه اجرا بشه، بخاطر اینکه همه لایبراری و داده های مورد نیاز داخل همان فایل اجرایی بود، برنامه رم زیادی استفاده می‌کنه.</li> +<li>اگر لایبراری های مورد استفاده تغییر کنند، برنامه نویس باید مجدد برنامه رو کامپایل و منتشر کنه</li> +</ul> +<blockquote> +<p>dynamic linking لینک کردن پویا زمانی است که نام لایبراری خارجی در زمان اجرا وارد فایل اجرایی می‌شود. -و اینکه فقط در این زمان است که لایبراری مورد نیاز وارد مموری می‌شود.</p> -</blockquote> -<p>در این مواقع لایبراری ها باید در سیستم عامل از قبل نصب شده باشند، و یا در موقغ نصب برنامه جدید +و اینکه فقط در این زمان است که لایبراری مورد نیاز وارد مموری می‌شود.</p> +</blockquote> +<p>در این مواقع لایبراری ها باید در سیستم عامل از قبل نصب شده باشند، و یا در موقغ نصب برنامه جدید اون لایبراری ها نصب شوند. و اگر هر تغییری در لایبرار رخ بده، برنامه نویس نیاز نیست دوباره برنامه رو -کامپایل و منتشر کند، فقط لایبراری مورد نیاز اپدیت می‌شود.</p> -<p>این روش هم مزیت های خودش رو داره، مثلا:</p> -<ul> -<li>حجم فایل های اجرایی خیلی کمتری داره</li> -<li>تا زمانی که نیاز به لایبراری نشده باشد(اگر در کد نویسی رعایت شده باشه) لایبراری ها رم اشغال نمی‌کنند.</li> -</ul> -<p>مهمترین عیبی که می‌تونه این روش داشته باشه اینه که -حذف شدن و یا خراب شدن لایبراری باعث می‌شه برنامه دیگه اجرا نشه.</p> -<hr> -<blockquote> -<p>این مطلب خلاصه‌ای کلی بود برای آشنایی با این دو مفهموم +کامپایل و منتشر کند، فقط لایبراری مورد نیاز اپدیت می‌شود.</p> +<p>این روش هم مزیت های خودش رو داره، مثلا:</p> +<ul> +<li>حجم فایل های اجرایی خیلی کمتری داره</li> +<li>تا زمانی که نیاز به لایبراری نشده باشد(اگر در کد نویسی رعایت شده باشه) لایبراری ها رم اشغال نمی‌کنند.</li> +</ul> +<p>مهمترین عیبی که می‌تونه این روش داشته باشه اینه که +حذف شدن و یا خراب شدن لایبراری باعث می‌شه برنامه دیگه اجرا نشه.</p> +<hr> +<blockquote> +<p>این مطلب خلاصه‌ای کلی بود برای آشنایی با این دو مفهموم برای مطالعه بیشتر این -<a class="link" href="https://blog.hubspot.com/website/static-vs-dynamic-linking#static-linking" target="_blank" rel="noopener" - >لینک</a> -می‌تونه مفید باشه.</p> -</blockquote> -<hr> - - - - - +<a class="link" href="https://blog.hubspot.com/website/static-vs-dynamic-linking#static-linking" target="_blank" rel="noopener" +>لینک</a> +می‌تونه مفید باشه.</p> +</blockquote> +<hr> \ No newline at end of file diff --git "a/docs/tags/\330\252\331\201\330\247\331\210\330\252-\330\250\333\214\331\206-static-linking-\331\210-dynamic-linking/page/1/index.html" "b/docs/tags/\330\252\331\201\330\247\331\210\330\252-\330\250\333\214\331\206-static-linking-\331\210-dynamic-linking/page/1/index.html" index b1f23d9..0d381ca 100644 --- "a/docs/tags/\330\252\331\201\330\247\331\210\330\252-\330\250\333\214\331\206-static-linking-\331\210-dynamic-linking/page/1/index.html" +++ "b/docs/tags/\330\252\331\201\330\247\331\210\330\252-\330\250\333\214\331\206-static-linking-\331\210-dynamic-linking/page/1/index.html" @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-%D8%A8%DB%8C%D9%86-static-linking-%D9%88-dynamic-linking/ - - - - - - +https://bit-orbit.github.io/tags/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-%D8%A8%DB%8C%D9%86-static-linking-%D9%88-dynamic-linking/ + \ No newline at end of file diff --git "a/docs/tags/\330\254\330\247\333\214\332\257\330\262\333\214\331\206_\330\250\330\261\330\247\333\214_\331\210\330\247\330\252\330\263\330\247\331\276_\331\210_\330\252\331\204\332\257\330\261\330\247\331\205/index.html" "b/docs/tags/\330\254\330\247\333\214\332\257\330\262\333\214\331\206_\330\250\330\261\330\247\333\214_\331\210\330\247\330\252\330\263\330\247\331\276_\331\210_\330\252\331\204\332\257\330\261\330\247\331\205/index.html" index 311050c..bd7a3ab 100644 --- "a/docs/tags/\330\254\330\247\333\214\332\257\330\262\333\214\331\206_\330\250\330\261\330\247\333\214_\331\210\330\247\330\252\330\263\330\247\331\276_\331\210_\330\252\331\204\332\257\330\261\330\247\331\205/index.html" +++ "b/docs/tags/\330\254\330\247\333\214\332\257\330\262\333\214\331\206_\330\250\330\261\330\247\333\214_\331\210\330\247\330\252\330\263\330\247\331\276_\331\210_\330\252\331\204\332\257\330\261\330\247\331\205/index.html" @@ -1,559 +1,37 @@ - - - - -Tag: جایگزین_برای_واتساپ_و_تلگرام - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

جایگزین_برای_واتساپ_و_تلگرام

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: جایگزین_برای_واتساپ_و_تلگرام - bit-orbit +

Tags

1 صفحه

جایگزین_برای_واتساپ_و_تلگرام

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git "a/docs/tags/\330\254\330\247\333\214\332\257\330\262\333\214\331\206_\330\250\330\261\330\247\333\214_\331\210\330\247\330\252\330\263\330\247\331\276_\331\210_\330\252\331\204\332\257\330\261\330\247\331\205/index.xml" "b/docs/tags/\330\254\330\247\333\214\332\257\330\262\333\214\331\206_\330\250\330\261\330\247\333\214_\331\210\330\247\330\252\330\263\330\247\331\276_\331\210_\330\252\331\204\332\257\330\261\330\247\331\205/index.xml" index 6f74a15..da56093 100644 --- "a/docs/tags/\330\254\330\247\333\214\332\257\330\262\333\214\331\206_\330\250\330\261\330\247\333\214_\331\210\330\247\330\252\330\263\330\247\331\276_\331\210_\330\252\331\204\332\257\330\261\330\247\331\205/index.xml" +++ "b/docs/tags/\330\254\330\247\333\214\332\257\330\262\333\214\331\206_\330\250\330\261\330\247\333\214_\331\210\330\247\330\252\330\263\330\247\331\276_\331\210_\330\252\331\204\332\257\330\261\330\247\331\205/index.xml" @@ -1,18 +1,4 @@ - - - - جایگزین_برای_واتساپ_و_تلگرام on bit-orbit - https://bit-orbit.github.io/tags/%D8%AC%D8%A7%DB%8C%DA%AF%D8%B2%DB%8C%D9%86_%D8%A8%D8%B1%D8%A7%DB%8C_%D9%88%D8%A7%D8%AA%D8%B3%D8%A7%D9%BE_%D9%88_%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/ - Recent content in جایگزین_برای_واتساپ_و_تلگرام on bit-orbit - Hugo -- gohugo.io - fa - Sat, 01 Oct 2022 01:46:23 +0330 - ارتباط غیر متمرکز و در لحظه با پروتکل ماتریکس - https://bit-orbit.github.io/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/ - Sat, 01 Oct 2022 01:46:23 +0330 - - https://bit-orbit.github.io/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/ - <img src="https://bit-orbit.github.io/images/post/matrix.jpg" alt="Featured image of post ارتباط غیر متمرکز و در لحظه با پروتکل ماتریکس" /><p>ماتریکس یک پروتکل آزاد است! به این معنی که شما میتوانید از این پروتکل برای +جایگزین_برای_واتساپ_و_تلگرام on bit-orbithttps://bit-orbit.github.io/tags/%D8%AC%D8%A7%DB%8C%DA%AF%D8%B2%DB%8C%D9%86_%D8%A8%D8%B1%D8%A7%DB%8C_%D9%88%D8%A7%D8%AA%D8%B3%D8%A7%D9%BE_%D9%88_%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/Recent content in جایگزین_برای_واتساپ_و_تلگرام on bit-orbitHugo -- gohugo.iofaSat, 01 Oct 2022 01:46:23 +0330ارتباط غیر متمرکز و در لحظه با پروتکل ماتریکسhttps://bit-orbit.github.io/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/Sat, 01 Oct 2022 01:46:23 +0330https://bit-orbit.github.io/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/<img src="https://bit-orbit.github.io/images/post/matrix.jpg" alt="Featured image of post ارتباط غیر متمرکز و در لحظه با پروتکل ماتریکس" /><p>ماتریکس یک پروتکل آزاد است! به این معنی که شما میتوانید از این پروتکل برای ارتباطات تحت شبکه مانند پیامرسان، اینترنت چیز ها (IoT) و هر چیز دیگری @@ -20,76 +6,58 @@ های این پروتکل، رمزنگاری سر تا سر (E2E) است، این ویژگی باعث میشود حتی سرور های ماتریکس که داده های ما را -منتقل میکنند هم توانایی دسترسی به داده ها را نداشته باشند.</p> -<h3 id="پیام-رسان-ماتریکس">پیام رسان ماتریکس</h3> -<p>یکی از اصلی ترین استفاده های ماتریکس، پیامرسان است. +منتقل میکنند هم توانایی دسترسی به داده ها را نداشته باشند.</p> +<h3 id="پیام-رسان-ماتریکس">پیام رسان ماتریکس +</h3><p>یکی از اصلی ترین استفاده های ماتریکس، پیامرسان است. این پیامرسان به صورت غیر متمرکز عمل میکند. با این روش سانسور/فیلتر شدن سرور هایی که پیام ها را ذخیره و منتقل میکنند غیر ممکن میشود! چرا که این سرور ها قابل تغییر هستند و هر زمان که یکی از این سرور ها سانسور شود، شما همچنان میتوانید با سرور دیگری مجدد اکانت بسازید و در ارتباط بمانید. -و یا حتی از سرور خودتان استفاده کنید!</p> -<h3 id="ماتریکس-چگونه-کار-میکند">ماتریکس چگونه کار میکند؟</h3> -<p>هر سرور در ماتریکس -<em>HomeServer</em> +و یا حتی از سرور خودتان استفاده کنید!</p> +<h3 id="ماتریکس-چگونه-کار-میکند">ماتریکس چگونه کار میکند؟ +</h3><p>هر سرور در ماتریکس +<em>HomeServer</em> نامیده میشود، شما به عنوان -<em>Client</em> +<em>Client</em> انتخاب میکنید از هر HomeServer -که میخواهید استفاده کنید.</p> -<p>HomeServer +که میخواهید استفاده کنید.</p> +<p>HomeServer ها میتوانند سرور های عمومی مثل سروری که خود -<a class="link" href="matrix.org" ><strong>ماتریکس</strong></a> +<a class="link" href="matrix.org" ><strong>ماتریکس</strong></a> راه اندازی کرده است باشد و یا میتواند سرور های -<strong>شخصی خودتان</strong> -باشد.</p> -<p><a class="link" href="https://bit-orbit.github.io/images/post/page2-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page2-768x768.png" - - - - loading="lazy" - - alt="matrix-homeserver" - - -></a></p> -<p>زمانی که شما از یک +<strong>شخصی خودتان</strong> +باشد.</p> +<p><a class="link" href="https://bit-orbit.github.io/images/post/page2-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page2-768x768.png" +loading="lazy" +alt="matrix-homeserver" +></a></p> +<p>زمانی که شما از یک HomeServer استفاده میکنید، این به آن معنی است که کلاینت شما به اکانتتان در آن HomeServer -متصل میشود.</p> -<p><a class="link" href="https://bit-orbit.github.io/images/post/page3-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page3-768x768.png" - - - - loading="lazy" - - alt="matrix-homeserver" - - -></a></p> -<p>زمانی که شما پیامی ارسال میکنید، پیامتان به +متصل میشود.</p> +<p><a class="link" href="https://bit-orbit.github.io/images/post/page3-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page3-768x768.png" +loading="lazy" +alt="matrix-homeserver" +></a></p> +<p>زمانی که شما پیامی ارسال میکنید، پیامتان به HomeServer شما ارسال میشود، HomeServer -بعد از دریافت پیام از شما، آن را به کاربران مشترک در آن روم ارسال میکند.</p> -<blockquote> -<p>در ماتریکس هر نوع چت(شخصی و یا گروه) را +بعد از دریافت پیام از شما، آن را به کاربران مشترک در آن روم ارسال میکند.</p> +<blockquote> +<p>در ماتریکس هر نوع چت(شخصی و یا گروه) را room -مینامند</p> -</blockquote> -<p><a class="link" href="https://bit-orbit.github.io/images/post/page4-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page4-768x768.png" - - - - loading="lazy" - - alt="matrix-homeserver" - - -></a></p> -<p>در واقع زمانی که شما پیامی ارسال میکنید +مینامند</p> +</blockquote> +<p><a class="link" href="https://bit-orbit.github.io/images/post/page4-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page4-768x768.png" +loading="lazy" +alt="matrix-homeserver" +></a></p> +<p>در واقع زمانی که شما پیامی ارسال میکنید HomeServer پیام را برای کاربران ارسال میکند. این کاربران ممکن است کاربران همان HomeServer @@ -103,47 +71,41 @@ Homeserver HomerServer های دیگر ارسال خواهد کرد. و آن HomeServer -پیام را دریافت و به کاربران مربوطه ارسال خواهد کرد.</p> -<p><a class="link" href="https://bit-orbit.github.io/images/post/page6-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page6-768x768.png" - - - - loading="lazy" - - alt="matrix-homeserver" - - -></a></p> -<blockquote> -<p>زمانی که شما پیامی را برای کاربر +پیام را دریافت و به کاربران مربوطه ارسال خواهد کرد.</p> +<p><a class="link" href="https://bit-orbit.github.io/images/post/page6-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page6-768x768.png" +loading="lazy" +alt="matrix-homeserver" +></a></p> +<blockquote> +<p>زمانی که شما پیامی را برای کاربر HomeServer دیگری ارسال میکنید، پیام شما تنها در HomeServer خودتان ذخیره نخواهد شد. بلکه در HomeServer -کاربری/کاربرانی که پیام را به آن ارسال کرده اید هم ذخیره میشود.</p> -</blockquote> -<h3 id="اصطلاحات-در-ماتریکس">اصطلاحات در ماتریکس</h3> -<p>در ماتریکس چند اصطلاح وجود دارد که آشنایی با آنها به درک بهتر این پروتکل کمک میکند.</p> -<ul> -<li> -<p>HomeServer: +کاربری/کاربرانی که پیام را به آن ارسال کرده اید هم ذخیره میشود.</p> +</blockquote> +<h3 id="اصطلاحات-در-ماتریکس">اصطلاحات در ماتریکس +</h3><p>در ماتریکس چند اصطلاح وجود دارد که آشنایی با آنها به درک بهتر این پروتکل کمک میکند.</p> +<ul> +<li> +<p>HomeServer: سروری که شما در آن اکانت خود را میسازید. این سرور پیام های شما را ذخیره -و ارسال میکند.</p> -</li> -<li> -<p>Client: +و ارسال میکند.</p> +</li> +<li> +<p>Client: برای اینکه کاربران بتوانند از ماتریکس استفاده کنند، باید از ابزاری که از این -پروتکل بهره میبرد استفاده کنند. به اینگونه از ابزار ها کلاینت گفته میشود.</p> -</li> -<li> -<p>Event: +پروتکل بهره میبرد استفاده کنند. به اینگونه از ابزار ها کلاینت گفته میشود.</p> +</li> +<li> +<p>Event: هر نوع داده ای که توسط ماتریکس ارسال شود -<em>event</em> -نامیده میشود. برای مثال ممکن است شما پیام ارسال کنید و یا به یک پیام واکنش نشان دهید.</p> -</li> -<li> -<p>Room: +<em>event</em> +نامیده میشود. برای مثال ممکن است شما پیام ارسال کنید و یا به یک پیام واکنش نشان دهید.</p> +</li> +<li> +<p>Room: قسمتی است که کاربر با آن event ها را دریافت و ارسال میکند. @@ -154,10 +116,10 @@ room room میتوانند event -ها را دریافت کنند.</p> -</li> -<li> -<p>Space: +ها را دریافت کنند.</p> +</li> +<li> +<p>Space: Space نوعی خاصی از room @@ -165,66 +127,61 @@ room room ها است. space -میتواند هم شامل گروه و هم کاربران عادی شود.</p> -</li> -<li> -<p>Bridge: +میتواند هم شامل گروه و هم کاربران عادی شود.</p> +</li> +<li> +<p>Bridge: پل یا Bridge به راهکاری گفته میشود که شما میتوانید با استفاده از آن بین ماتریکس و پیامرسان های دیگر چت کنید. برای مثال شما با استفاده از Brdige تلگرام -میتوانید با ماتریکس به کاربران تلگرام پیام ارسال و دریافت کنید.</p> -</li> -</ul> -<h3 id="چگونه-از-ماتریکس-استفاده-کنیم">چگونه از ماتریکس استفاده کنیم؟</h3> -<p>برای استفاده از ماتریکس، شما کافیست یکی از کلاینت های آن را نصب و به یک +میتوانید با ماتریکس به کاربران تلگرام پیام ارسال و دریافت کنید.</p> +</li> +</ul> +<h3 id="چگونه-از-ماتریکس-استفاده-کنیم">چگونه از ماتریکس استفاده کنیم؟ +</h3><p>برای استفاده از ماتریکس، شما کافیست یکی از کلاینت های آن را نصب و به یک HomeServer -متصل شوید.</p> -<p>یکی از محبوب ترین کلاینت ها، کلاینت -<a class="link" href="https://element.io/" target="_blank" rel="noopener" - >Element</a> +متصل شوید.</p> +<p>یکی از محبوب ترین کلاینت ها، کلاینت +<a class="link" href="https://element.io/" target="_blank" rel="noopener" +>Element</a> است، که شامل نسخه -<a class="link" href="https://play.google.com/store/apps/details?id=im.vector.app" target="_blank" rel="noopener" - >Android</a>، -<a class="link" href="https://apps.apple.com/app/vector/id1083446067" target="_blank" rel="noopener" - >IOS</a>، -<a class="link" href="https://element.io/get-started#downloads" target="_blank" rel="noopener" - >Windows, Linux، Mac</a> +<a class="link" href="https://play.google.com/store/apps/details?id=im.vector.app" target="_blank" rel="noopener" +>Android</a>، +<a class="link" href="https://apps.apple.com/app/vector/id1083446067" target="_blank" rel="noopener" +>IOS</a>، +<a class="link" href="https://element.io/get-started#downloads" target="_blank" rel="noopener" +>Windows, Linux، Mac</a> و البته -<a class="link" href="https://app.element.io/" target="_blank" rel="noopener" - >نسخه تحت وب میشود</a>.</p> -<p>استفاده از المنت مانند هر پیامرسان دیگری ساده است، اما اگر نیاز به کمک دارید -<a class="link" href="https://static.element.io/pdfs/element-user-guide.pdf" target="_blank" rel="noopener" - >این لینک</a> -میتواند کمکتان کند.</p> -<h3 id="چطور-از-سرور-شخصی-خودمان-استفاده-کنیم">چطور از سرور شخصی خودمان استفاده کنیم؟</h3> -<p>شما مجبور نیستید سرویس ماتریکس را روی سرور شخصی خودتان اجرا کنید مگر اینکه:</p> -<ul> -<li>سرور های عمومی ماتریکس سانسور و از دسترس خارج شده باشند</li> -<li>و یا شاید نگران دیتایی هستید که روی سرور های -عمومی ماتریکس از طرف شما ذخیره میشود!(گرچه پیام ها تماما رمزنگاری سر تا سر میشود)</li> -<li>و یا حتی شاید میخواهید پیام رسان داخلی شرکت/خانه خودتان را داشته باشید</li> -<li>و یا البته ممکن است بخواهید +<a class="link" href="https://app.element.io/" target="_blank" rel="noopener" +>نسخه تحت وب میشود</a>.</p> +<p>استفاده از المنت مانند هر پیامرسان دیگری ساده است، اما اگر نیاز به کمک دارید +<a class="link" href="https://static.element.io/pdfs/element-user-guide.pdf" target="_blank" rel="noopener" +>این لینک</a> +میتواند کمکتان کند.</p> +<h3 id="چطور-از-سرور-شخصی-خودمان-استفاده-کنیم">چطور از سرور شخصی خودمان استفاده کنیم؟ +</h3><p>شما مجبور نیستید سرویس ماتریکس را روی سرور شخصی خودتان اجرا کنید مگر اینکه:</p> +<ul> +<li>سرور های عمومی ماتریکس سانسور و از دسترس خارج شده باشند</li> +<li>و یا شاید نگران دیتایی هستید که روی سرور های +عمومی ماتریکس از طرف شما ذخیره میشود!(گرچه پیام ها تماما رمزنگاری سر تا سر میشود)</li> +<li>و یا حتی شاید میخواهید پیام رسان داخلی شرکت/خانه خودتان را داشته باشید</li> +<li>و یا البته ممکن است بخواهید Bridge -بسازید.</li> -</ul> -<p>نسخه سرور ماتریکس -<a class="link" href="https://github.com/matrix-org/synapse" target="_blank" rel="noopener" - ><em>Synapse</em></a> +بسازید.</li> +</ul> +<p>نسخه سرور ماتریکس +<a class="link" href="https://github.com/matrix-org/synapse" target="_blank" rel="noopener" +><em>Synapse</em></a> نام دارد، شما میتوانید با استفاده از -<a class="link" href="https://hub.docker.com/r/matrixdotorg/synapse/" target="_blank" rel="noopener" - >ایمیج داکر رسمی ماتریکس</a>، -سرور شخصی خودتان را اجرا کنید.</p> -<h3 id="نتیجه-گیری">نتیجه گیری</h3> -<p>هدف من از نوشتن این پست در این روز های تلخ این بود که ابزاری را معرفی کنم +<a class="link" href="https://hub.docker.com/r/matrixdotorg/synapse/" target="_blank" rel="noopener" +>ایمیج داکر رسمی ماتریکس</a>، +سرور شخصی خودتان را اجرا کنید.</p> +<h3 id="نتیجه-گیری">نتیجه گیری +</h3><p>هدف من از نوشتن این پست در این روز های تلخ این بود که ابزاری را معرفی کنم تا ما با وجود قطعی های متعدد اینترنت و قطع دسترسی ما از سرور های خارجی، کماکان -در ارتباط نگهدارد و صدایمان را&hellip;</p> -<p>اگر روزی دسترسی ما از اینترنت قطع شد، کاری که لازم است برای در ارتباط ماندن انجام بدهیم -این است که یک سرویس ماتریکس داخلی راه اندازی کنیم.</p> -<hr> - - - - - +در ارتباط نگهدارد و صدایمان را&hellip;</p> +<p>اگر روزی دسترسی ما از اینترنت قطع شد، کاری که لازم است برای در ارتباط ماندن انجام بدهیم +این است که یک سرویس ماتریکس داخلی راه اندازی کنیم.</p> +<hr> \ No newline at end of file diff --git "a/docs/tags/\330\254\330\247\333\214\332\257\330\262\333\214\331\206_\330\250\330\261\330\247\333\214_\331\210\330\247\330\252\330\263\330\247\331\276_\331\210_\330\252\331\204\332\257\330\261\330\247\331\205/page/1/index.html" "b/docs/tags/\330\254\330\247\333\214\332\257\330\262\333\214\331\206_\330\250\330\261\330\247\333\214_\331\210\330\247\330\252\330\263\330\247\331\276_\331\210_\330\252\331\204\332\257\330\261\330\247\331\205/page/1/index.html" index c756554..a88475d 100644 --- "a/docs/tags/\330\254\330\247\333\214\332\257\330\262\333\214\331\206_\330\250\330\261\330\247\333\214_\331\210\330\247\330\252\330\263\330\247\331\276_\331\210_\330\252\331\204\332\257\330\261\330\247\331\205/page/1/index.html" +++ "b/docs/tags/\330\254\330\247\333\214\332\257\330\262\333\214\331\206_\330\250\330\261\330\247\333\214_\331\210\330\247\330\252\330\263\330\247\331\276_\331\210_\330\252\331\204\332\257\330\261\330\247\331\205/page/1/index.html" @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/%D8%AC%D8%A7%DB%8C%DA%AF%D8%B2%DB%8C%D9%86_%D8%A8%D8%B1%D8%A7%DB%8C_%D9%88%D8%A7%D8%AA%D8%B3%D8%A7%D9%BE_%D9%88_%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/ - - - - - - +https://bit-orbit.github.io/tags/%D8%AC%D8%A7%DB%8C%DA%AF%D8%B2%DB%8C%D9%86_%D8%A8%D8%B1%D8%A7%DB%8C_%D9%88%D8%A7%D8%AA%D8%B3%D8%A7%D9%BE_%D9%88_%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/ + \ No newline at end of file diff --git "a/docs/tags/\330\261\333\214\332\251\330\261\330\264\331\206-\330\250\333\214\331\206\331\207\330\247\333\214\330\252/index.html" "b/docs/tags/\330\261\333\214\332\251\330\261\330\264\331\206-\330\250\333\214\331\206\331\207\330\247\333\214\330\252/index.html" index fa72bd2..d34cbfd 100644 --- "a/docs/tags/\330\261\333\214\332\251\330\261\330\264\331\206-\330\250\333\214\331\206\331\207\330\247\333\214\330\252/index.html" +++ "b/docs/tags/\330\261\333\214\332\251\330\261\330\264\331\206-\330\250\333\214\331\206\331\207\330\247\333\214\330\252/index.html" @@ -1,559 +1,37 @@ - - - - -Tag: ریکرشن بینهایت - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

ریکرشن بینهایت

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: ریکرشن بینهایت - bit-orbit +

Tags

1 صفحه

ریکرشن بینهایت

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git "a/docs/tags/\330\261\333\214\332\251\330\261\330\264\331\206-\330\250\333\214\331\206\331\207\330\247\333\214\330\252/index.xml" "b/docs/tags/\330\261\333\214\332\251\330\261\330\264\331\206-\330\250\333\214\331\206\331\207\330\247\333\214\330\252/index.xml" index f01b9a1..f5a8b0d 100644 --- "a/docs/tags/\330\261\333\214\332\251\330\261\330\264\331\206-\330\250\333\214\331\206\331\207\330\247\333\214\330\252/index.xml" +++ "b/docs/tags/\330\261\333\214\332\251\330\261\330\264\331\206-\330\250\333\214\331\206\331\207\330\247\333\214\330\252/index.xml" @@ -1,18 +1,4 @@ - - - - ریکرشن بینهایت on bit-orbit - https://bit-orbit.github.io/tags/%D8%B1%DB%8C%DA%A9%D8%B1%D8%B4%D9%86-%D8%A8%DB%8C%D9%86%D9%87%D8%A7%DB%8C%D8%AA/ - Recent content in ریکرشن بینهایت on bit-orbit - Hugo -- gohugo.io - fa - Wed, 27 Dec 2023 16:39:27 +0330 - فورک بمب چیست و چطور کار می‌کند؟ - https://bit-orbit.github.io/p/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B7%D9%88%D8%B1-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF/ - Wed, 27 Dec 2023 16:39:27 +0330 - - https://bit-orbit.github.io/p/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B7%D9%88%D8%B1-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF/ - <img src="https://bit-orbit.github.io/images/post/fork_bomb.jpg" alt="Featured image of post فورک بمب چیست و چطور کار می‌کند؟" /><p>اوایل که لینوکس نصب کرده بودم کامند هایی که توی +ریکرشن بینهایت on bit-orbithttps://bit-orbit.github.io/tags/%D8%B1%DB%8C%DA%A9%D8%B1%D8%B4%D9%86-%D8%A8%DB%8C%D9%86%D9%87%D8%A7%DB%8C%D8%AA/Recent content in ریکرشن بینهایت on bit-orbitHugo -- gohugo.iofaWed, 27 Dec 2023 16:39:27 +0330فورک بمب چیست و چطور کار می‌کند؟https://bit-orbit.github.io/p/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B7%D9%88%D8%B1-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF/Wed, 27 Dec 2023 16:39:27 +0330https://bit-orbit.github.io/p/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B7%D9%88%D8%B1-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF/<img src="https://bit-orbit.github.io/images/post/fork_bomb.jpg" alt="Featured image of post فورک بمب چیست و چطور کار می‌کند؟" /><p>اوایل که لینوکس نصب کرده بودم کامند هایی که توی فروم های مختلف می‌دیدم و برای من جدید بود را دوست داشتم یاد بگیرم و بدانم کار آنها چی هست، برای همین هر کامندی را که می‌دیدم در @@ -21,306 +7,283 @@ هر کامندی اشتباهه بود. یکی از این کامند ها که اجرا کرده بودم، به اسم فورک بمب (fork bomb) -شناخته می‌شود. کامند به این صورت هست</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>:<span class="p">&amp;</span> <span class="o">}</span><span class="p">;</span>: -</span></span></code></pre></td></tr></table> -</div> -</div><p>اگر این کامند را اجرا کنید(امیدوارم تا الان نکرده باشید) تقریبا زیر یک دقیقه سیستم شما -هنگ می‌کند و مجبور می‌شوید سیستم را ریبوت کنید.</p> -<hr> -<p>توی این پست ساختار این کامند را تشریح می‌کنم و باهم +شناخته می‌شود. کامند به این صورت هست</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>:<span class="p">&amp;</span> <span class="o">}</span><span class="p">;</span>: +</span></span></code></pre></td></tr></table> +</div> +</div><p>اگر این کامند را اجرا کنید(امیدوارم تا الان نکرده باشید) تقریبا زیر یک دقیقه سیستم شما +هنگ می‌کند و مجبور می‌شوید سیستم را ریبوت کنید.</p> +<hr> +<p>توی این پست ساختار این کامند را تشریح می‌کنم و باهم کمی bash -یاد می‌گیریم.</p> -<p>بیایید اول با مفهوم +یاد می‌گیریم.</p> +<p>بیایید اول با مفهوم recustion آشنا بشیم، زمانی که یک قطعه کد خودش اجرا کند، recusion می‌گویم. مثلا شما یک فانکشن می‌نویسید به اسم -<em>fn</em> +<em>fn</em> و توی بدنه فانکشن فقط خود همین فانکشن را صدا می‌‌کنید، به این کار call recursion گفته می‌شود. فورک بمب دقیقا همین کار را می‌کند. به این -معنی که خودش را دائم اجرا می‌کند!</p> -<p>به این فکر کنید که وقتی یک پراسس خودش را اجرا می‌کند +معنی که خودش را دائم اجرا می‌کند!</p> +<p>به این فکر کنید که وقتی یک پراسس خودش را اجرا می‌کند ،مجدد پراسس های اجرا شده توسط اون هم دائم خودشان را اجرا می‌کنند، و دوباره هر پروسه‌ای که اجرا می‌شود بازم خودش را اجرا می‌کند و این روند تا زمانی که رم و پردازنده سیستم تحمل -داشته باشد ادامه دارد.</p> -<blockquote> -<p>درختی که می‌بینید را اجرای فورک بمب درنظر بگیرید، +داشته باشد ادامه دارد.</p> +<blockquote> +<p>درختی که می‌بینید را اجرای فورک بمب درنظر بگیرید، هر ستاره یک پروسه جدید است که توسط پروسه قبلی اجرا شده، و خودش هم دو پروسه جدید باز می‌کند و هر یک از پروسه ها -هم همین روند را ادامه می‌دهند.</p> -</blockquote> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt">10 -</span><span class="lnt">11 -</span><span class="lnt">12 -</span><span class="lnt">13 -</span><span class="lnt">14 -</span><span class="lnt">15 -</span><span class="lnt">16 -</span><span class="lnt">17 -</span><span class="lnt">18 -</span><span class="lnt">19 -</span><span class="lnt">20 -</span><span class="lnt">21 -</span><span class="lnt">22 -</span><span class="lnt">23 -</span><span class="lnt">24 -</span><span class="lnt">25 -</span><span class="lnt">26 -</span><span class="lnt">27 -</span><span class="lnt">28 -</span><span class="lnt">29 -</span><span class="lnt">30 -</span><span class="lnt">31 -</span><span class="lnt">32 -</span><span class="lnt">33 -</span><span class="lnt">34 -</span><span class="lnt">35 -</span><span class="lnt">36 -</span><span class="lnt">37 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w">   </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w">   </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><p>من برای اینکه سیستم‌ خودم هنگ نکند فورک بمب را روی داکر +هم همین روند را ادامه می‌دهند.</p> +</blockquote> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span><span class="lnt">19 +</span><span class="lnt">20 +</span><span class="lnt">21 +</span><span class="lnt">22 +</span><span class="lnt">23 +</span><span class="lnt">24 +</span><span class="lnt">25 +</span><span class="lnt">26 +</span><span class="lnt">27 +</span><span class="lnt">28 +</span><span class="lnt">29 +</span><span class="lnt">30 +</span><span class="lnt">31 +</span><span class="lnt">32 +</span><span class="lnt">33 +</span><span class="lnt">34 +</span><span class="lnt">35 +</span><span class="lnt">36 +</span><span class="lnt">37 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w">   </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w">   </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><p>من برای اینکه سیستم‌ خودم هنگ نکند فورک بمب را روی داکر اجرا کردم و خب حتی یک ثانیه هم طول نکشید و آن کانتینر -کاملا هنگ کرد.</p> -<blockquote> -<p>قبل از اجرا -<a class="link" href="https://bit-orbit.github.io/images/post/forkbomb_docker0.jpg" ><img src="https://bit-orbit.github.io/images/post/forkbomb_docker0.jpg" - - - - loading="lazy" - - alt="forkbomb on docker" - - -></a></p> -</blockquote> -<blockquote> -<p>زمان اجرا -<a class="link" href="https://bit-orbit.github.io/images/post/forkbomb_docker.jpg" ><img src="https://bit-orbit.github.io/images/post/forkbomb_docker.jpg" - - - - loading="lazy" - - alt="forkbomb on docker" - - -></a></p> -</blockquote> -<hr> -<p>بیایید وارد کد بشیم، این علامت ها و کاراکتر ها چی هستند؟</p> -<!-- برای تعریف یک فانکشن توی +کاملا هنگ کرد.</p> +<blockquote> +<p>قبل از اجرا +<a class="link" href="https://bit-orbit.github.io/images/post/forkbomb_docker0.jpg" ><img src="https://bit-orbit.github.io/images/post/forkbomb_docker0.jpg" +loading="lazy" +alt="forkbomb on docker" +></a></p> +</blockquote> +<blockquote> +<p>زمان اجرا +<a class="link" href="https://bit-orbit.github.io/images/post/forkbomb_docker.jpg" ><img src="https://bit-orbit.github.io/images/post/forkbomb_docker.jpg" +loading="lazy" +alt="forkbomb on docker" +></a></p> +</blockquote> +<hr> +<p>بیایید وارد کد بشیم، این علامت ها و کاراکتر ها چی هستند؟</p> +<!-- برای تعریف یک فانکشن توی bash -ما به این صورت عمل می‌کنیم که اول اسم فانکشن بعد پرانتز -و بعد کرلی براکت(توی فارسی می‌گیم آکولاد) و داخل کرلی +ما به این صورت عمل می‌کنیم که اول اسم فانکشن بعد پرانتز +و بعد کرلی براکت(توی فارسی می‌گیم آکولاد) و داخل کرلی براکت ما قطعه کد را می‌نویسیم. مثلا برای فانکشنی که یک اسم را روی صفحه چاپ کنه به این صورت عمل می‌کنیم - ```bash -pname(){ echo 'foo'; } -``` --> -<p>اگه دقت کنید اولین کاراکتر فورک بمب، علامت -<code>:</code> +pname(){ echo 'foo'; } +``` --> +<p>اگه دقت کنید اولین کاراکتر فورک بمب، علامت +<code>:</code> است. این علامت اسم فانکشن ما است. برخلاف قانون تعریف نام برای متغییر ها توی bash، می‌توانیم از کاراتر های یونیکد هم برای تعریف نام فانکشن استفاده کنیم، مثلا یک -کاراکتر چینی یا حتی ایموجی!</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span><span class="lnt">3 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">雨<span class="o">(){</span> <span class="nb">echo</span> <span class="s1">&#39;rain&#39;</span><span class="p">;</span> <span class="o">}</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">❤️<span class="o">(){</span> <span class="nb">echo</span> <span class="s1">&#39;love&#39;</span><span class="p">;</span> <span class="o">}</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>خب در ادامه علامت های -<code>()</code> +کاراکتر چینی یا حتی ایموجی!</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">雨<span class="o">(){</span> <span class="nb">echo</span> <span class="s1">&#39;rain&#39;</span><span class="p">;</span> <span class="o">}</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">❤️<span class="o">(){</span> <span class="nb">echo</span> <span class="s1">&#39;love&#39;</span><span class="p">;</span> <span class="o">}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>خب در ادامه علامت های +<code>()</code> را می‌بینیم، توی bash برای تعریف فانکشن قبل از اسم فانکشن هیچ کلمه کلیدی مثل fn, def, void و &hellip; نیاز نیست، فقط بجای آن باید -<strong>بعد از اسم فانکشن</strong> -پرانتز ها را بگذارید.</p> -<p>مثل خیلی از زبان های برنامه نویسی، بدنه فانکشن توی -کرلی براکت تعریف می‌شود.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){}</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>پس تا اینجا ما یک فانکشن ساده با نام -<code>:</code> -تعریف کردیم.</p> -<p>داخل بدنه این فانکشن، اسمی که برای فانکشن قرار دادیم +<strong>بعد از اسم فانکشن</strong> +پرانتز ها را بگذارید.</p> +<p>مثل خیلی از زبان های برنامه نویسی، بدنه فانکشن توی +کرلی براکت تعریف می‌شود.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>پس تا اینجا ما یک فانکشن ساده با نام +<code>:</code> +تعریف کردیم.</p> +<p>داخل بدنه این فانکشن، اسمی که برای فانکشن قرار دادیم همان -<code>:</code> +<code>:</code> را می‌نویسیم. با اینکار دقیقا call recursion را انجام دادیم، و باعث شدیم که برنامه خودش را -توی هر اجرا مجدد اجرا کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> : <span class="o">}</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>دقت کنید توی سینتکس +توی هر اجرا مجدد اجرا کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> : <span class="o">}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>دقت کنید توی سینتکس bash -حتما باید یک فاصله برای کدی که داخلی کرلی براکت می‌نویسم قرار بدیم</p> -</blockquote> -<p>علامت -<code>|</code> +حتما باید یک فاصله برای کدی که داخلی کرلی براکت می‌نویسم قرار بدیم</p> +</blockquote> +<p>علامت +<code>|</code> به اسم پایپ شناخته می‌شود، وظیفه این علامت دادن خروجی یک کامند بعنوان ورودی به یک کامند دیگر هست، حلا دقت کنید که ما خروجی اجرای -<code>:</code> -را به خودش می‌دهیم. دقیقا به این شکل</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>: <span class="o">}</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>با این علامت هر پروسه دو بار پروسه جدیدی از خودش می‌سازد +<code>:</code> +را به خودش می‌دهیم. دقیقا به این شکل</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>: <span class="o">}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>با این علامت هر پروسه دو بار پروسه جدیدی از خودش می‌سازد اگر از این علامت استفاده نکنیم، پروسه ما به صورت خطی خودش را اجرا خواهد کرد، اینطوری کد ما با یک حلقه -<code>while</code> -تفاوتی زیادی نخواهد داشت.</p> -<p>علامت -<code>&amp;</code> +<code>while</code> +تفاوتی زیادی نخواهد داشت.</p> +<p>علامت +<code>&amp;</code> اجرای یک کامند را به بکگراند(پس زمینه) می‌برد. برای مثال بعد از اجرای یک دستور باید صبر کنید پروسه آن تمام شود تا بتوانید دستور بعدی را اجرا کنید. ولی اگر از علامت -<code>&amp;</code> +<code>&amp;</code> بعد از هر دستور استفاده کنید، دیگر نیاز نیست صبر کنید تا روند اجرای آن برنامه تمام شود. درواقع با علامت -<code>&amp;</code> +<code>&amp;</code> شما می‌توانید هر برنامه را در بکگراند اجرا کنید. حالا توی فورک بمب این علامت باعث می‌شود تا فانشکنی که اجرا کردین درحالی که کارش به اتمام -نرسیده است، فانکشن بعدی اجرا بشود.</p> -<p><img src="https://bit-orbit.github.io/images/post/forkbomb_and.jpg" - - - - loading="lazy" - - alt="& in bash" - - -></p> -<p>و بعد علامت -<code>;</code> +نرسیده است، فانکشن بعدی اجرا بشود.</p> +<p><img src="https://bit-orbit.github.io/images/post/forkbomb_and.jpg" +loading="lazy" +alt="& in bash" +></p> +<p>و بعد علامت +<code>;</code> را می‌بینیم. این علامت کامند ها را از هم جدا می‌کند. مثلا شما می‌توانید چند کامند مختلف را توی یک خط بنویسید. توی فورک بمب این علامت فانکشنی که تعریف کردین را از -دستور بعدی(که اجرا کننده اون فانکشن هست)جدا می‌کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s1">&#39;foo&#39;</span><span class="p">;</span> <span class="nb">echo</span> <span class="s1">&#39;bar&#39;</span><span class="p">;</span> <span class="nb">echo</span> <span class="s1">&#39;baz&#39;</span><span class="p">;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>آخرین علامتی که توی فورک بمب داریم همون علامت -<code>:</code> +دستور بعدی(که اجرا کننده اون فانکشن هست)جدا می‌کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s1">&#39;foo&#39;</span><span class="p">;</span> <span class="nb">echo</span> <span class="s1">&#39;bar&#39;</span><span class="p">;</span> <span class="nb">echo</span> <span class="s1">&#39;baz&#39;</span><span class="p">;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>آخرین علامتی که توی فورک بمب داریم همون علامت +<code>:</code> یا همون اسمی هست که برای فانکشن قرار دادیم. خیلی ساده توی bash -برای اجرای یک فانکشن فقط اسم‌ش را می‌نویسیم.</p> -<p>و تمام! ما یاد گرفتیم چطور فورک بمب رو بنویسیم و دیگه -نیاز نیست حفظ‌ش کنیم :)</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>:<span class="p">&amp;</span> <span class="o">}</span><span class="p">;</span>: -</span></span></code></pre></td></tr></table> -</div> -</div> - - - - +برای اجرای یک فانکشن فقط اسم‌ش را می‌نویسیم.</p> +<p>و تمام! ما یاد گرفتیم چطور فورک بمب رو بنویسیم و دیگه +نیاز نیست حفظ‌ش کنیم :)</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>:<span class="p">&amp;</span> <span class="o">}</span><span class="p">;</span>: +</span></span></code></pre></td></tr></table> +</div> +</div> \ No newline at end of file diff --git "a/docs/tags/\330\261\333\214\332\251\330\261\330\264\331\206-\330\250\333\214\331\206\331\207\330\247\333\214\330\252/page/1/index.html" "b/docs/tags/\330\261\333\214\332\251\330\261\330\264\331\206-\330\250\333\214\331\206\331\207\330\247\333\214\330\252/page/1/index.html" index deb4947..32a798e 100644 --- "a/docs/tags/\330\261\333\214\332\251\330\261\330\264\331\206-\330\250\333\214\331\206\331\207\330\247\333\214\330\252/page/1/index.html" +++ "b/docs/tags/\330\261\333\214\332\251\330\261\330\264\331\206-\330\250\333\214\331\206\331\207\330\247\333\214\330\252/page/1/index.html" @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/%D8%B1%DB%8C%DA%A9%D8%B1%D8%B4%D9%86-%D8%A8%DB%8C%D9%86%D9%87%D8%A7%DB%8C%D8%AA/ - - - - - - +https://bit-orbit.github.io/tags/%D8%B1%DB%8C%DA%A9%D8%B1%D8%B4%D9%86-%D8%A8%DB%8C%D9%86%D9%87%D8%A7%DB%8C%D8%AA/ + \ No newline at end of file diff --git "a/docs/tags/\330\263\333\214\330\263\330\252\331\205-\330\271\330\247\331\205\331\204-umbrel-\330\254\333\214\330\263\330\252/index.html" "b/docs/tags/\330\263\333\214\330\263\330\252\331\205-\330\271\330\247\331\205\331\204-umbrel-\330\254\333\214\330\263\330\252/index.html" index b3350c9..9515cf7 100644 --- "a/docs/tags/\330\263\333\214\330\263\330\252\331\205-\330\271\330\247\331\205\331\204-umbrel-\330\254\333\214\330\263\330\252/index.html" +++ "b/docs/tags/\330\263\333\214\330\263\330\252\331\205-\330\271\330\247\331\205\331\204-umbrel-\330\254\333\214\330\263\330\252/index.html" @@ -1,559 +1,37 @@ - - - - -Tag: سیستم عامل Umbrel جیست - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

سیستم عامل Umbrel جیست

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: سیستم عامل Umbrel جیست - bit-orbit +

Tags

1 صفحه

سیستم عامل Umbrel جیست

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git "a/docs/tags/\330\263\333\214\330\263\330\252\331\205-\330\271\330\247\331\205\331\204-umbrel-\330\254\333\214\330\263\330\252/index.xml" "b/docs/tags/\330\263\333\214\330\263\330\252\331\205-\330\271\330\247\331\205\331\204-umbrel-\330\254\333\214\330\263\330\252/index.xml" index 6e9b4f0..287afbf 100644 --- "a/docs/tags/\330\263\333\214\330\263\330\252\331\205-\330\271\330\247\331\205\331\204-umbrel-\330\254\333\214\330\263\330\252/index.xml" +++ "b/docs/tags/\330\263\333\214\330\263\330\252\331\205-\330\271\330\247\331\205\331\204-umbrel-\330\254\333\214\330\263\330\252/index.xml" @@ -1,19 +1,5 @@ - - - - سیستم عامل Umbrel جیست on bit-orbit - https://bit-orbit.github.io/tags/%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-%D8%B9%D8%A7%D9%85%D9%84-umbrel-%D8%AC%DB%8C%D8%B3%D8%AA/ - Recent content in سیستم عامل Umbrel جیست on bit-orbit - Hugo -- gohugo.io - fa - Mon, 11 Dec 2023 01:39:34 +0330 - cloud را به خانه خود ببرید! - https://bit-orbit.github.io/p/cloud-%D8%B1%D8%A7-%D8%A8%D9%87-%D8%AE%D8%A7%D9%86%D9%87-%D8%AE%D9%88%D8%AF-%D8%A8%D8%A8%D8%B1%DB%8C%D8%AF/ - Mon, 11 Dec 2023 01:39:34 +0330 - - https://bit-orbit.github.io/p/cloud-%D8%B1%D8%A7-%D8%A8%D9%87-%D8%AE%D8%A7%D9%86%D9%87-%D8%AE%D9%88%D8%AF-%D8%A8%D8%A8%D8%B1%DB%8C%D8%AF/ - <img src="https://bit-orbit.github.io/images/post/umbrel.webp" alt="Featured image of post cloud را به خانه خود ببرید!" /><h3 id="چطور-این-ایده-به-ذهن-من-رسید-">چطور این ایده به ذهن من رسید ؟</h3> -<p>جریان این ایده به این شکل بود که خب ما ایرانی ها اینترنت +سیستم عامل Umbrel جیست on bit-orbithttps://bit-orbit.github.io/tags/%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-%D8%B9%D8%A7%D9%85%D9%84-umbrel-%D8%AC%DB%8C%D8%B3%D8%AA/Recent content in سیستم عامل Umbrel جیست on bit-orbitHugo -- gohugo.iofaMon, 11 Dec 2023 01:39:34 +0330cloud را به خانه خود ببرید!https://bit-orbit.github.io/p/cloud-%D8%B1%D8%A7-%D8%A8%D9%87-%D8%AE%D8%A7%D9%86%D9%87-%D8%AE%D9%88%D8%AF-%D8%A8%D8%A8%D8%B1%DB%8C%D8%AF/Mon, 11 Dec 2023 01:39:34 +0330https://bit-orbit.github.io/p/cloud-%D8%B1%D8%A7-%D8%A8%D9%87-%D8%AE%D8%A7%D9%86%D9%87-%D8%AE%D9%88%D8%AF-%D8%A8%D8%A8%D8%B1%DB%8C%D8%AF/<img src="https://bit-orbit.github.io/images/post/umbrel.webp" alt="Featured image of post cloud را به خانه خود ببرید!" /><h3 id="چطور-این-ایده-به-ذهن-من-رسید-">چطور این ایده به ذهن من رسید ؟ +</h3><p>جریان این ایده به این شکل بود که خب ما ایرانی ها اینترنت به شدت محدود شده‌ای داریم، برای همین ما برای استفاده از اینترنت از vpn @@ -26,100 +12,82 @@ ip vpn رو که به هزار زحمت وصل شده بود، قطع کنیم. خب چاره چیه؟ اینکه اگه یک سیستم توی خونه یا شرکت دارین -که همیشه روشنه رو تبدیل به یک سرور کنیم :)</p> -<p>توی این فکر بودم که نیازم رو به چنین سیستم عاملی حس کردم، بعد کمی نیاز های دیگه رو بهش اضافه کردم و یه پست +که همیشه روشنه رو تبدیل به یک سرور کنیم :)</p> +<p>توی این فکر بودم که نیازم رو به چنین سیستم عاملی حس کردم، بعد کمی نیاز های دیگه رو بهش اضافه کردم و یه پست داخل تلگرام نوشتم، یکی کامنت گذاشت و خب این سیستم عامل -را معرفی کرد.</p> -<hr> -<h3 id="umbrel-چیست-">umbrel چیست ؟</h3> -<p>درواقع +را معرفی کرد.</p> +<hr> +<h3 id="umbrel-چیست-">umbrel چیست ؟ +</h3><p>درواقع umbrel یک سیستم عامل است، زمانی که شما این سیستم عامل را نصب کنید، یک صفحه وب در اختیار شما می‌گذارد و شما از طریق این صفحه درون مرورگر خود می‌توانید به سیستم دسترسی داشته باشید. برای مثلا می‌توانید سرویس های مختلف و ابزار های -مختلف را روی +مختلف را روی umbrel -نصب و یا کانفیگ کنید.</p> -<p>سرویس هایی که +نصب و یا کانفیگ کنید.</p> +<p>سرویس هایی که umbrel ارائه می‌دهد تقریبا همان سرویس هایی هستند که شما در طول -روز از نسخه های تجاری آنها استفاده می‌کنید.</p> -<p>اگه دقیق تر بخواهم بگم، این سیستم عامل یک +روز از نسخه های تجاری آنها استفاده می‌کنید.</p> +<p>اگه دقیق تر بخواهم بگم، این سیستم عامل یک store در اختیار کاربران‌ش قرار می‌ده. و خب این یکی از مهم ترین کار هایی است که این سیستم عامل انجام می‌ده چرا که اگر این استور وجود نداشت، شما شخصا باید فرایند کانفیگ و نصب سرویس ها را به عهده می‌گرفتید(این کار یک متخصص دواپس -هست، خیلی هم جالیه)</p> -<p><img src="https://bit-orbit.github.io/images/post/umbrelstore.jpg" - - - - loading="lazy" - - alt="umbrel store" - - -></p> -<hr> -<h3 id="umbrel-چه-نیازی-را-برطرف-میکند-">umbrel چه نیازی را برطرف می‌کند ؟</h3> -<p>وقتی از سرویس های تحت اینترنت استفاده می‌کنید، +هست، خیلی هم جالیه)</p> +<p><img src="https://bit-orbit.github.io/images/post/umbrelstore.jpg" +loading="lazy" +alt="umbrel store" +></p> +<hr> +<h3 id="umbrel-چه-نیازی-را-برطرف-میکند-">umbrel چه نیازی را برطرف می‌کند ؟ +</h3><p>وقتی از سرویس های تحت اینترنت استفاده می‌کنید، به احتمال زیاد شما کالای اون شرکتی هستید که ابزار را در اختیارتون قرار داده است. اگر دقت کنیم می‌بینیم که این شرکت ها بسیاری کاربر دارند و خب برای ارائه درست خدمت به کاربرانشون سرور های زیادی اجاره می‌کنند سرویس ها رو دائم اپدیت و بهتر می‌کنند -و خب سرویس های متعددی هم ارائه می‌کنند.</p> -<p>همه این کار ها نیاز به هزینه های زیادی دارند، +و خب سرویس های متعددی هم ارائه می‌کنند.</p> +<p>همه این کار ها نیاز به هزینه های زیادی دارند، بودجه این شرکت ها فقط و فقط با تبلیغات تامین نمی‌شود بلکه با فروش اطلاعات کاربرانشون(خود ما) به شرکت ها و دولت ها -تامین می‌شود.</p> -<p><img src="https://bit-orbit.github.io/images/post/zuker.jpg" - - - - loading="lazy" - - alt="zukerberg spying" - - -></p> -<p>و البته اگر حتی شما برای سرویسی که استفاده می‌کنید +تامین می‌شود.</p> +<p><img src="https://bit-orbit.github.io/images/post/zuker.jpg" +loading="lazy" +alt="zukerberg spying" +></p> +<p>و البته اگر حتی شما برای سرویسی که استفاده می‌کنید هزینه‌ای پرداخت کنید، مثلا برای استفاده از گوگل دایو ماهانه هزینه هم پرداخت کنید، باز هم مشکلاتی وجود دارد، مثلا قانونا گوگل مالک فایلی است که شما روی سرور هایش -آپلود می‌کنید.</p> -<p>در چنین مواقعی هست که اصطلاح +آپلود می‌کنید.</p> +<p>در چنین مواقعی هست که اصطلاح self-hosting سرویس ها استفاده می‌شود. به این معنی که سرویس هایی که شما روزانه از آن استفاده می‌کنید را خودتان راه اندازی -کنید. اما اینکار نیاز به دانش بالایی داره.</p> -<p>سیستم عامل +کنید. اما اینکار نیاز به دانش بالایی داره.</p> +<p>سیستم عامل umbrel این کار را ساده کرده است، با این تفاوت که قبلا شما باید برای استفاده چند ابزار روی یک سرور، باید سرور رو به درستی کانفیگ می‌کردین سپس ابزار ها را کانفیگ، و بعد سرویس ها راه اجرا می‌کردین. اما الان فقط با یک کلیک شما سرویس توییتر خود را -راه اندازی می‌کنید!</p> -<p><img src="https://bit-orbit.github.io/images/post/umbrelselfhosting.jpg" - - - - loading="lazy" - - alt="umbrel self hosting" - - -></p> -<hr> -<h3 id="umbrel-به-روی-سیستم-عامل-دسکتاپ">umbrel به روی سیستم عامل دسکتاپ</h3> -<p>نصب +راه اندازی می‌کنید!</p> +<p><img src="https://bit-orbit.github.io/images/post/umbrelselfhosting.jpg" +loading="lazy" +alt="umbrel self hosting" +></p> +<hr> +<h3 id="umbrel-به-روی-سیستم-عامل-دسکتاپ">umbrel به روی سیستم عامل دسکتاپ +</h3><p>نصب umbrel بسیاز سادهست فقط کافیه یک سیستم عامل debian رو روی سیستمتون داشته باشید، یک ترمینال باز کنید و کامند -نصب را بزنید، با یک کامند این سیستم نصب می‌شه.</p> -<p>ولی خب اگر سیستم عاملی ندارید که بر پایه +نصب را بزنید، با یک کامند این سیستم نصب می‌شه.</p> +<p>ولی خب اگر سیستم عاملی ندارید که بر پایه debain باشه، می‌شه به سادگی روی ماشین مجازی یک دبیان نصب کنید، حالت شبکه اون سیستم عامل رو @@ -136,10 +104,10 @@ IP debain که umbrel -را روی ان نصب کردین را وارد کنید و تمام!</p> -<hr> -<h3 id="umbrel-به-روی-رزبری-پای">umbrel به روی رزبری پای</h3> -<p>رزبری پای! یک سخت افزار کوچک که تقریبا یک کامپیوتر کامل +را روی ان نصب کردین را وارد کنید و تمام!</p> +<hr> +<h3 id="umbrel-به-روی-رزبری-پای">umbrel به روی رزبری پای +</h3><p>رزبری پای! یک سخت افزار کوچک که تقریبا یک کامپیوتر کامل است! البته که قدرت پردازش بالایی ندارد ولی در IOT استفاده زیادی دارد. با توجه به اینکه پردازنده های @@ -151,24 +119,18 @@ umbrel را نصب کرد، برای همین سیستم عامل umbrel یک نسخه مخصوص برای رزبری پای دارد، کافیست آن را دانلود و -به روی ربزی خود نصب کنید.</p> -<p>به این دقت کنید که خب سعنی کنید یک هارد اکسترنال به +به روی ربزی خود نصب کنید.</p> +<p>به این دقت کنید که خب سعنی کنید یک هارد اکسترنال به رزبری متصل کنید که فضای کافی برای سروریسی مانند next cloud -داشته باشید.</p> -<p><img src="https://bit-orbit.github.io/images/post/umbrelonressbery.jpg" - - - - loading="lazy" - - alt="umbrel on ressbery pi" - - -></p> -<hr> -<h3 id="umbrel-بروی-سرور-شخصی">umbrel بروی سرور شخصی</h3> -<p>به سادگی اچرای یک کامند! کافیست فقط سیستم عامل +داشته باشید.</p> +<p><img src="https://bit-orbit.github.io/images/post/umbrelonressbery.jpg" +loading="lazy" +alt="umbrel on ressbery pi" +></p> +<hr> +<h3 id="umbrel-بروی-سرور-شخصی">umbrel بروی سرور شخصی +</h3><p>به سادگی اچرای یک کامند! کافیست فقط سیستم عامل سرورتون debain و یا کلا بر پایه @@ -177,10 +139,10 @@ debian ubuntu باشه. کامند اجرا را وارد کنید و بعد از اتمام فرایند نصب، IP -سرور را وارد مرورگر کنید، تمام!</p> -<hr> -<h3 id="دستگاه-umbrel">دستگاه umbrel</h3> -<p>شرکت سازنده +سرور را وارد مرورگر کنید، تمام!</p> +<hr> +<h3 id="دستگاه-umbrel">دستگاه umbrel +</h3><p>شرکت سازنده umbrel به جز سیستم عامل، یک دستگاهی طراحی کرده است که به صورت پیشفرض سیستم عامل @@ -192,35 +154,29 @@ umbrel به روی rassbery PI استفاده می‌کنید، شما نیاز به یک فن دارید تا این دستگاه -را دائم خنک کند، از طرفی خود فن هم باید خنک شود.</p> -<p>اینجاست که این دستگاه رو برای شرکت یا خانه‌ شما مناسب‌تر -می‌کند(مطمئن باشید تبلیغ نمی‌کنم)</p> -<p><img src="https://bit-orbit.github.io/images/post/umbreldevice.jpg" - - - - loading="lazy" - - alt="umbrel device" - - -></p> -<hr> -<h3 id="umbrel-چطور-کار-میکند-">umbrel چطور کار می‌کند ؟</h3> -<p>اگه بخواهم کمی فنی‌تر وارد ماجرا بشم، همونطور که گفت +را دائم خنک کند، از طرفی خود فن هم باید خنک شود.</p> +<p>اینجاست که این دستگاه رو برای شرکت یا خانه‌ شما مناسب‌تر +می‌کند(مطمئن باشید تبلیغ نمی‌کنم)</p> +<p><img src="https://bit-orbit.github.io/images/post/umbreldevice.jpg" +loading="lazy" +alt="umbrel device" +></p> +<hr> +<h3 id="umbrel-چطور-کار-میکند-">umbrel چطور کار می‌کند ؟ +</h3><p>اگه بخواهم کمی فنی‌تر وارد ماجرا بشم، همونطور که گفت این سیستم عامل بهترین ویژگی که ارائه می‌کند store آن است. البته که اینجا store به معنی فروشگاه نیست، بلکه شبیه یک بازاری است که همه -اجناس‌ش رایگان است :)</p> -<p>سرویس های +اجناس‌ش رایگان است :)</p> +<p>سرویس های umbrel همه سرویس هایی هستند که به صورت منبع باز در اختیار همه قرار گرفته است، این سرویس ها برای اجرا شدن نیاز به شخصی دارد که دانش کافی از سرور داشته باشد و خب نحوه کانفیگ -کردن هر کدام از ابزار ها و سرویس ها را بداند.</p> -<p>دانلود و نصب هر سرویس به صورت جدگانه ممکن است به مشکلات +کردن هر کدام از ابزار ها و سرویس ها را بداند.</p> +<p>دانلود و نصب هر سرویس به صورت جدگانه ممکن است به مشکلات متعددی برخورد کند، مثلا در نصب سرویسی مثل nexcloud شما ممکن است نیاز به ورژن خاصی از @@ -229,11 +185,11 @@ php nginx برای اجرای اسکریپت های php -هم واقعا به اندازه زیادی دردسر دارد.</p> -<p>اینجاست که داکر وارد ماجرا می‌شود! +هم واقعا به اندازه زیادی دردسر دارد.</p> +<p>اینجاست که داکر وارد ماجرا می‌شود! umbrel -از قبل تمامی سرویس ها را داکرایز کرده است.</p> -<p>داکرایز به چه معنیست؟ +از قبل تمامی سرویس ها را داکرایز کرده است.</p> +<p>داکرایز به چه معنیست؟ درواقع به این فکر کنید که شما یک برنامه را می‌خواهید نصب کنید، این سرویس توسط سازنده آن از ورژن خاصی از زبان مشخصی، لایبراری و فایل هایی استفاده کرده است که پیشفرض @@ -244,8 +200,8 @@ image قرار داده است، و بعد کافیست شما آن فایل را به برنامه docker engine -بدهید، آن برنامه باید بدون هیچ مشکلی اجرا شود.</p> -<p>سیستم عامل +بدهید، آن برنامه باید بدون هیچ مشکلی اجرا شود.</p> +<p>سیستم عامل umbrel دقیقا چنین کاری می‌کند. تمامی image @@ -253,20 +209,14 @@ image store برای شما شما لیست می‌کند، شما کافیست که دکمه install -را بزنید، بنگ! سرویس شما آماده است :)</p> -<p><img src="https://bit-orbit.github.io/images/post/umbreldocker.jpg" - - - - loading="lazy" - - alt="umbrel dockeriz" - - -></p> -<hr> -<h3 id="امنیت">امنیت</h3> -<p>اگر +را بزنید، بنگ! سرویس شما آماده است :)</p> +<p><img src="https://bit-orbit.github.io/images/post/umbreldocker.jpg" +loading="lazy" +alt="umbrel dockeriz" +></p> +<hr> +<h3 id="امنیت">امنیت +</h3><p>اگر umbrel را به روی چیزی به جز سرور دارید، حتی اگر برای آن یک دامنه هم بگیرید، @@ -276,8 +226,8 @@ umbrel tor به آن متصل شوید و یا یک VPN -سرور داخل شبکه داخلی خود راه اندازی کنید.</p> -<p>البته +سرور داخل شبکه داخلی خود راه اندازی کنید.</p> +<p>البته umbrel به جز tor @@ -287,60 +237,54 @@ VPN tailscale که مستقیم به روی umbrel -نصب می‌شود.</p> -<p><img src="https://bit-orbit.github.io/images/post/tailscalaumbrel.jpg" - - - - loading="lazy" - - alt="tailscala umbrel" - - -></p> -<hr> -<h3 id="سرویس-های-کاربردی-umbrel">سرویس های کاربردی umbrel</h3> -<ul> -<li>matrix</li> -</ul> -<blockquote> -<p>خیلی ساده بگم، می‌تونید با این سرویس +نصب می‌شود.</p> +<p><img src="https://bit-orbit.github.io/images/post/tailscalaumbrel.jpg" +loading="lazy" +alt="tailscala umbrel" +></p> +<hr> +<h3 id="سرویس-های-کاربردی-umbrel">سرویس های کاربردی umbrel +</h3><ul> +<li>matrix</li> +</ul> +<blockquote> +<p>خیلی ساده بگم، می‌تونید با این سرویس telegtam خودتون رو راه اندازی کنید. برای اینکه بیشتر درباراه این سرویس بدونید، -<a class="link" href="https://www.wiregeek.ir/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/" target="_blank" rel="noopener" - >این پست</a> -من را بخوانید.</p> -</blockquote> -<ul> -<li>nextcloud</li> -</ul> -<blockquote> -<p>خیلی شبیه به گوگل درایو است، به جز نسخه وب +<a class="link" href="https://www.wiregeek.ir/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/" target="_blank" rel="noopener" +>این پست</a> +من را بخوانید.</p> +</blockquote> +<ul> +<li>nextcloud</li> +</ul> +<blockquote> +<p>خیلی شبیه به گوگل درایو است، به جز نسخه وب حتی یک اپ اندروید هم دارد که می‌توانید آدرس nextcloud را درون آن وارد کنید و از هرکحا به فضای خودتون دسترسی داشته باشید. و خب حتی بعنوان ادمین -برای افراد خانواده و یا شرکت‌تون اکانت بسازید، و فضای شخصی خودشان را در اختیارشان قرار بدین.</p> -</blockquote> -<ul> -<li>qbittorrent</li> -</ul> -<blockquote> -<p>اگر تورنت را می‌شناسید، قطعا این کلاینت معروف را هم باید +برای افراد خانواده و یا شرکت‌تون اکانت بسازید، و فضای شخصی خودشان را در اختیارشان قرار بدین.</p> +</blockquote> +<ul> +<li>qbittorrent</li> +</ul> +<blockquote> +<p>اگر تورنت را می‌شناسید، قطعا این کلاینت معروف را هم باید بشناسید، این کلاینت یک نسخه وب دارد که داخل فروشگاه umbrel قرار دارد. فایل های خود را برای دانلود به این کلاینت بدین و در زمانی که از اینرنت استفاده نمی‌کنید مثلا 2 تا 7 صبح -آن ها را بگذارید تا دانلود بشوند.</p> -</blockquote> -<ul> -<li>pi-hole</li> -</ul> -<blockquote> -<p>برای خلاص شدن از تبلیغات اینترنت کافیه این سرویس +آن ها را بگذارید تا دانلود بشوند.</p> +</blockquote> +<ul> +<li>pi-hole</li> +</ul> +<blockquote> +<p>برای خلاص شدن از تبلیغات اینترنت کافیه این سرویس DNS را به روی umbrel @@ -348,13 +292,13 @@ umbrel DHCP را تنظیم کنید که IP -این سرویس را به دیگر دستگاه های شبکه بدهد.</p> -</blockquote> -<ul> -<li>Jellyfin</li> -</ul> -<blockquote> -<p>یکی از نیاز های واقعا اساسی من، این سرویس است. +این سرویس را به دیگر دستگاه های شبکه بدهد.</p> +</blockquote> +<ul> +<li>Jellyfin</li> +</ul> +<blockquote> +<p>یکی از نیاز های واقعا اساسی من، این سرویس است. فیلم هایی که می‌بینم، و یا قرار است که ببینم‌شون رو می‌تونم با این سرویس به درستی دنبال کنم. در اصل این سرویس برای پخش کردن فیلم ها ساخته شده‌ است. @@ -364,69 +308,58 @@ jellyfin فیلم ها رو تماشا کنید، مثلا اگر تلویزیون هوشمند دارید کافیست از طریق مرورگر آن وارد umbrel -خود بشین.</p> -</blockquote> -<p>-snapdrop</p> -<blockquote> -<p>سرویس خیلی ساده‌ای است که برای انتقال فایل داخل -شبکه لوکال استفاده می‌شود.</p> -</blockquote> -<ul> -<li>whoogle search</li> -</ul> -<blockquote> -<p>البته +خود بشین.</p> +</blockquote> +<p>-snapdrop</p> +<blockquote> +<p>سرویس خیلی ساده‌ای است که برای انتقال فایل داخل +شبکه لوکال استفاده می‌شود.</p> +</blockquote> +<ul> +<li>whoogle search</li> +</ul> +<blockquote> +<p>البته whoogle یک موتور جست و جوی meta است، به این معنی که خودش وب را خزش نمی‌کند و از موتور های جست و جوی دیگر برای نتیجه جست و جوی شما استفاده -می‌کند.</p> -</blockquote> -<ul> -<li>LlamaGPT</li> -</ul> -<blockquote> -<p>چیزی شبیه +می‌کند.</p> +</blockquote> +<ul> +<li>LlamaGPT</li> +</ul> +<blockquote> +<p>چیزی شبیه ChatGPT -ولی افلاین و کاملا خصوصی.</p> -</blockquote> -<hr> -<h3 id="راه-اندازی-سرویس-های-شخصی">راه اندازی سرویس های شخصی</h3> -<p>خیلی از سرویس ها هنوز به +ولی افلاین و کاملا خصوصی.</p> +</blockquote> +<hr> +<h3 id="راه-اندازی-سرویس-های-شخصی">راه اندازی سرویس های شخصی +</h3><p>خیلی از سرویس ها هنوز به umbrel اضافه نشده. اضافه کردن سرویس به خود store -هم کار سختی نیستی، کافیه فقط داکرایز کردن رو بلد باشین.</p> -<ul> -<li>cache server</li> -</ul> -<p>کش سرور ها معمولا با +هم کار سختی نیستی، کافیه فقط داکرایز کردن رو بلد باشین.</p> +<ul> +<li>cache server</li> +</ul> +<p>کش سرور ها معمولا با transparent proxy بدون اینکه کاربران متوجه پروکسی بشوند پیاده سازی می‌شوند. -کار آنها کاهش مصرف ترافیک است.</p> -<p>یکی از سرویس هایی که خیلی از شرکت ها برای کاهش هزینه های +کار آنها کاهش مصرف ترافیک است.</p> +<p>یکی از سرویس هایی که خیلی از شرکت ها برای کاهش هزینه های اینرنت و یا خب برای بهبود سرعت اینترنت می‌کنند، ارائه cache server -هست.</p> -<p>خیلی خلاصه بگم کش سرور محتوایی که کاربران بازدید می‌کنند +هست.</p> +<p>خیلی خلاصه بگم کش سرور محتوایی که کاربران بازدید می‌کنند را درون خود برای مدتی و با شرایطی از پیش تعیین شده نگه ‌می‌دارد و هر بار که کاربران به محتوای قبلی درخواست بدهند، دیگر آن ریکوئست تا سایت اصلی نمی‌رود و خود -کش سرور که در شبکه داخلی است جواب آن را می‌دهد</p> -<p><img src="https://bit-orbit.github.io/images/post/cacheumber.jpg" - - - - loading="lazy" - - alt="cache server" - - -></p> -<hr> - - - - - +کش سرور که در شبکه داخلی است جواب آن را می‌دهد</p> +<p><img src="https://bit-orbit.github.io/images/post/cacheumber.jpg" +loading="lazy" +alt="cache server" +></p> +<hr> \ No newline at end of file diff --git "a/docs/tags/\330\263\333\214\330\263\330\252\331\205-\330\271\330\247\331\205\331\204-umbrel-\330\254\333\214\330\263\330\252/page/1/index.html" "b/docs/tags/\330\263\333\214\330\263\330\252\331\205-\330\271\330\247\331\205\331\204-umbrel-\330\254\333\214\330\263\330\252/page/1/index.html" index 0a7c40d..96f6cb1 100644 --- "a/docs/tags/\330\263\333\214\330\263\330\252\331\205-\330\271\330\247\331\205\331\204-umbrel-\330\254\333\214\330\263\330\252/page/1/index.html" +++ "b/docs/tags/\330\263\333\214\330\263\330\252\331\205-\330\271\330\247\331\205\331\204-umbrel-\330\254\333\214\330\263\330\252/page/1/index.html" @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-%D8%B9%D8%A7%D9%85%D9%84-umbrel-%D8%AC%DB%8C%D8%B3%D8%AA/ - - - - - - +https://bit-orbit.github.io/tags/%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-%D8%B9%D8%A7%D9%85%D9%84-umbrel-%D8%AC%DB%8C%D8%B3%D8%AA/ + \ No newline at end of file diff --git "a/docs/tags/\330\264\333\214\330\261-\332\251\330\261\330\257\331\206-\331\201\330\247\333\214\331\204/index.html" "b/docs/tags/\330\264\333\214\330\261-\332\251\330\261\330\257\331\206-\331\201\330\247\333\214\331\204/index.html" index d74576d..68d2c12 100644 --- "a/docs/tags/\330\264\333\214\330\261-\332\251\330\261\330\257\331\206-\331\201\330\247\333\214\331\204/index.html" +++ "b/docs/tags/\330\264\333\214\330\261-\332\251\330\261\330\257\331\206-\331\201\330\247\333\214\331\204/index.html" @@ -1,559 +1,37 @@ - - - - -Tag: شیر کردن فایل - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

شیر کردن فایل

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: شیر کردن فایل - bit-orbit +

Tags

1 صفحه

شیر کردن فایل

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git "a/docs/tags/\330\264\333\214\330\261-\332\251\330\261\330\257\331\206-\331\201\330\247\333\214\331\204/index.xml" "b/docs/tags/\330\264\333\214\330\261-\332\251\330\261\330\257\331\206-\331\201\330\247\333\214\331\204/index.xml" index e733a84..405778d 100644 --- "a/docs/tags/\330\264\333\214\330\261-\332\251\330\261\330\257\331\206-\331\201\330\247\333\214\331\204/index.xml" +++ "b/docs/tags/\330\264\333\214\330\261-\332\251\330\261\330\257\331\206-\331\201\330\247\333\214\331\204/index.xml" @@ -1,79 +1,65 @@ - - - - شیر کردن فایل on bit-orbit - https://bit-orbit.github.io/tags/%D8%B4%DB%8C%D8%B1-%DA%A9%D8%B1%D8%AF%D9%86-%D9%81%D8%A7%DB%8C%D9%84/ - Recent content in شیر کردن فایل on bit-orbit - Hugo -- gohugo.io - fa - Wed, 06 Mar 2024 23:50:46 +0330 - Crul Paste - https://bit-orbit.github.io/p/crul-paste/ - Wed, 06 Mar 2024 23:50:46 +0330 - - https://bit-orbit.github.io/p/crul-paste/ - <img src="https://bit-orbit.github.io/images/post/curlpaste.jpg" alt="Featured image of post Crul Paste" /><p>اول بیایید ببینم +شیر کردن فایل on bit-orbithttps://bit-orbit.github.io/tags/%D8%B4%DB%8C%D8%B1-%DA%A9%D8%B1%D8%AF%D9%86-%D9%81%D8%A7%DB%8C%D9%84/Recent content in شیر کردن فایل on bit-orbitHugo -- gohugo.iofaWed, 06 Mar 2024 23:50:46 +0330Crul Pastehttps://bit-orbit.github.io/p/crul-paste/Wed, 06 Mar 2024 23:50:46 +0330https://bit-orbit.github.io/p/crul-paste/<img src="https://bit-orbit.github.io/images/post/curlpaste.jpg" alt="Featured image of post Crul Paste" /><p>اول بیایید ببینم FileBin چیه! قبل از اون هم فکر می‌کنم همه بدونیم -<a class="link" href="https://virgool.io/@m_shabane/pastebin-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B1%D8%A7-%D9%87%DA%A9%D8%B1-%D9%87%D8%A7-%D8%B9%D8%A7%D8%B4%D9%82-%D8%A2%D9%86-%D9%87%D8%A7%D8%B3%D8%AA%D9%86%D8%AF-swafqm95gttp" target="_blank" rel="noopener" - >pastebin</a> +<a class="link" href="https://virgool.io/@m_shabane/pastebin-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B1%D8%A7-%D9%87%DA%A9%D8%B1-%D9%87%D8%A7-%D8%B9%D8%A7%D8%B4%D9%82-%D8%A2%D9%86-%D9%87%D8%A7%D8%B3%D8%AA%D9%86%D8%AF-swafqm95gttp" target="_blank" rel="noopener" +>pastebin</a> چیه. اگه نمی‌دونید خیلی ساده باید بگم یک سایتی که فقط روی اون متن به اشتراک می‌ذارن -مثلا ممکنه ارور ها یا حتی سورس یک برنامه باشه!</p> -<p>اما +مثلا ممکنه ارور ها یا حتی سورس یک برنامه باشه!</p> +<p>اما FileBin ها بجای تسکت فایل های شما رو نگهداری می‌کنند و به شما لینکی ارائه می‌کنند که فایل را برای دیگران اشتراک بگذارید، نمونه های زیادی هم وجود داره مثل -<a class="link" href="https://wormhole.app" target="_blank" rel="noopener" - >https://wormhole.app</a></p> -<p>اما خب از اونجایی که من زندگی‌ام رو توی ترمینال می‌گذرونم و ترمینال رو به باز کردن مرورگر برای اشتراک یک فایل ترجیح می‌دم، پس از +<a class="link" href="https://wormhole.app" target="_blank" rel="noopener" +>https://wormhole.app</a></p> +<p>اما خب از اونجایی که من زندگی‌ام رو توی ترمینال می‌گذرونم و ترمینال رو به باز کردن مرورگر برای اشتراک یک فایل ترجیح می‌دم، پس از FileBin هایی استفاده می‌کنم که بتونم تحت ترمینال به سادگی فایلم رو به اشتراک بذارم. برای مثال -<a class="link" href="https://0x0.st" target="_blank" rel="noopener" - >https://0x0.st</a></p> -<p>وقتی این رو سایت رو باز کنید هیچ گزینه‌ای برای انتخاب فایل و آپلود نمی‌بینید! خب پس چطور باید یک فایل را برای سایت آپلود کنید؟ +<a class="link" href="https://0x0.st" target="_blank" rel="noopener" +>https://0x0.st</a></p> +<p>وقتی این رو سایت رو باز کنید هیچ گزینه‌ای برای انتخاب فایل و آپلود نمی‌بینید! خب پس چطور باید یک فایل را برای سایت آپلود کنید؟ کافیه یک ریکوئست HTTP POST خیلی ساده به سایت بزنید که شامل فایتون باشه. این کار رو خیلی ساده می‌شه با curl -انجام داد.</p> -<p>مثلا بیایین اشتراک یک فایل رو ببینیم</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl https://0x0.st -F <span class="nv">file</span><span class="o">=</span>@/path/to/file -</span></span><span class="line"><span class="cl"><span class="c1"># https://0x0.st/zWKo.txt</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>این سایت خیلی خوبه +انجام داد.</p> +<p>مثلا بیایین اشتراک یک فایل رو ببینیم</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl https://0x0.st -F <span class="nv">file</span><span class="o">=</span>@/path/to/file +</span></span><span class="line"><span class="cl"><span class="c1"># https://0x0.st/zWKo.txt</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>این سایت خیلی خوبه اما از زمانی به بعد دیگه این سایت کاری که من نیاز دارم رو کفاف نداد! برای مثال من نیاز دارم فایلم بعد از اولین دانلود از روی سرور حذف بشه و از این مهم تر نیاز داشتم که چندین فایل رو با یک یوزنیم مشخص اپلود کنم که خب شخصی که قرار باشه فایل ها رو دانلود کنه، کافیه از یوزنیم استفاده کنه که راحت تر قابل حفظ کردن و اشتراک گذاشتنه. اینطوری بود که گفتم FileBin -خودم رو بنویسم :)</p> -<hr> -<p><strong>بیایید فیچر ها و روش استفاده ازش رو با هم ببینیم.</strong></p> -<p>فرض کنید شما یک فایل دارید که می‌خواهید با من به اشتراک بگذارید، +خودم رو بنویسم :)</p> +<hr> +<p><strong>بیایید فیچر ها و روش استفاده ازش رو با هم ببینیم.</strong></p> +<p>فرض کنید شما یک فایل دارید که می‌خواهید با من به اشتراک بگذارید، خیلی ساده ترمینال رو باز می‌کنید و با یک دستور فایل رو با یک URL -تقریبا تصادفی منتشر می‌کنید.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">file</span><span class="o">=</span>@/tmp/theFile.fli -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/theFile.fli</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>دقت کنید من از سوییچ +تقریبا تصادفی منتشر می‌کنید.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">file</span><span class="o">=</span>@/tmp/theFile.fli +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/theFile.fli</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>دقت کنید من از سوییچ -L استفاده می‌کنم، دلیل اینکار این هست که خب ممکنه سایت شما رو ریدایرکت کنه. مثلا از @@ -82,206 +68,201 @@ http https. برای همین این سوییچ رو استفاده می‌کنم. با این سوییچ دیگه نیازی نیست https:// -رو هم بنویسیم!</p> -</blockquote> -<p>حالا اگه نیاز دارین که فایلتون بعد از اولین دانلود از روی سرور حذف بشه و دیگه در دسترس نباشه +رو هم بنویسیم!</p> +</blockquote> +<p>حالا اگه نیاز دارین که فایلتون بعد از اولین دانلود از روی سرور حذف بشه و دیگه در دسترس نباشه کافیه از کلمه -<code>once</code> +<code>once</code> بجای -<code>file</code> -استفاده کنید.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@/tmp/theFile.fli -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/theFile_GKug7xb.fli</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>تا اینجای کار همه +<code>file</code> +استفاده کنید.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@/tmp/theFile.fli +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/theFile_GKug7xb.fli</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>تا اینجای کار همه URL های هر فایلی به صورت تصادفی هست و من نیاز دارم که چندین فایل رو زیر یک یوزنیم مشخص مثل -<code>arya</code> +<code>arya</code> قرار بدم. اینطوری وقتی قراره یک فایل رو برای همکارم توی شرکت بفرستم خیلی ساده ازش درخواست می‌کنم در سایت به ادرس -<code>/arya</code> +<code>/arya</code> بره. حالا چطوری اینکارو بکنیم خیلی ساده بجای -<code>once</code> +<code>once</code> یا -<code>file</code>, +<code>file</code>, همون -<code>username</code> -رو می‌نویسیم(توی مثال من از نام <strong><em>arya</em></strong> استفاده می‌کنیم)</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">arya</span><span class="o">=</span>@/tmp/pic.jpg -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/arya</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>تا اینجای کار مثلا شما چند بار چند فایل مختلف رو زیر یک یوزنیم قرار دادین -حالا چطور میشه همه اونها رو باهم دانلود کرد؟</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir/arya <span class="p">|</span> wget -i - -</span></span></code></pre></td></tr></table> -</div> -</div><p>حالا به این فکر کنید که یکنفر میاد و با یوزنیم های معقول ریکوئست میزنه به سایت و +<code>username</code> +رو می‌نویسیم(توی مثال من از نام <strong><em>arya</em></strong> استفاده می‌کنیم)</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">arya</span><span class="o">=</span>@/tmp/pic.jpg +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/arya</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>تا اینجای کار مثلا شما چند بار چند فایل مختلف رو زیر یک یوزنیم قرار دادین +حالا چطور میشه همه اونها رو باهم دانلود کرد؟</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir/arya <span class="p">|</span> wget -i - +</span></span></code></pre></td></tr></table> +</div> +</div><p>حالا به این فکر کنید که یکنفر میاد و با یوزنیم های معقول ریکوئست میزنه به سایت و فایل های بقیه رو دانلود می‌کنه، اینجاست که پسورد به کار میاد. برای گذاشتن پسورد روی هر فایل کافیه توی خود URL سایت پسورد رو بعنوان http parametr -بنویسد.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L <span class="s1">&#39;octocat.ir/?password=12345678&#39;</span> -F <span class="nv">once</span><span class="o">=</span>@/Desktop/TopSecret.fli -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/file/TopSecret/?password=12345678</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>اینجا دقت کنید که باید از کوتیشن استفاده کنیم چون علامت مساوی و علامت سوال رو bash وایلد کارد می‌بینه.</p> -</blockquote> -<p>برای دانلود هر فایلی هم که پسورد داره کافیه دقیقا مثل مثال قبلی عمل کنید و پسورد رو توی +بنویسد.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L <span class="s1">&#39;octocat.ir/?password=12345678&#39;</span> -F <span class="nv">once</span><span class="o">=</span>@/Desktop/TopSecret.fli +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/file/TopSecret/?password=12345678</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>اینجا دقت کنید که باید از کوتیشن استفاده کنیم چون علامت مساوی و علامت سوال رو bash وایلد کارد می‌بینه.</p> +</blockquote> +<p>برای دانلود هر فایلی هم که پسورد داره کافیه دقیقا مثل مثال قبلی عمل کنید و پسورد رو توی http parametr -وارد کنید</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ wget <span class="s1">&#39;octocat.ir/file/TopSecret/?password=12345678&#39;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>براتون سواله که چرا پسورد روی توی +وارد کنید</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ wget <span class="s1">&#39;octocat.ir/file/TopSecret/?password=12345678&#39;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>براتون سواله که چرا پسورد روی توی URL گذاشتم؟ می‌شد که مثلا توی http header پسورد بگیریم و بدیم، پس چرا توی -URL?</p> -<p>اینکار برای این هست که دسترسی به فایل ساده باشه. مثلا من وقتی می‌خام فایلی رو برای همکارم بفرستم +URL?</p> +<p>اینکار برای این هست که دسترسی به فایل ساده باشه. مثلا من وقتی می‌خام فایلی رو برای همکارم بفرستم و خب فرض کنم همکار من از header ها چیزی نمی‌دونه، و فقط با یک کلیک باید بتونه به فایل دسترسی پیدا کنه، اینجاست که من فقط یک URL -به اون می‌گم :)</p> -<hr> -<p>بعضی از ابزار ها +به اون می‌گم :)</p> +<hr> +<p>بعضی از ابزار ها hackable هستند! این به معنی ضعف امنیتی نیست، بلکه به این اشاره می‌کنه ابزار به روشی طراحی -شده که کاربران می‌تونند خارج از هدف اصلی اون ابزار از اون استفاه کنند.</p> -<p>برای مثال ابزار که من درست کردم برای اشتراک فایل هست، اما بنظرتون میشه یک دایرکتوری و یا یک متن رو هم باهاش به اشتراک گذاشت؟</p> -<p>قطعا! اما چطوری؟</p> -<p>برای اینکه یک دایرکتوری با تمامی ساب دایرکتوری هاش رو بفرستین +شده که کاربران می‌تونند خارج از هدف اصلی اون ابزار از اون استفاه کنند.</p> +<p>برای مثال ابزار که من درست کردم برای اشتراک فایل هست، اما بنظرتون میشه یک دایرکتوری و یا یک متن رو هم باهاش به اشتراک گذاشت؟</p> +<p>قطعا! اما چطوری؟</p> +<p>برای اینکه یک دایرکتوری با تمامی ساب دایرکتوری هاش رو بفرستین کافیه از -<code>tar</code> -استفاده کنید.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ tar -cf - ~/Pictures <span class="p">|</span> curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@- -</span></span><span class="line"><span class="cl"><span class="c1"># &#39;octocat.ir/file/_nUiuRPW/</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>با اینکار با استفاده از +<code>tar</code> +استفاده کنید.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ tar -cf - ~/Pictures <span class="p">|</span> curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@- +</span></span><span class="line"><span class="cl"><span class="c1"># &#39;octocat.ir/file/_nUiuRPW/</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>با اینکار با استفاده از tar تمامی فایل ها و دایرکتوری های مثلا پوشه -<em>~/Pictures</em> +<em>~/Pictures</em> رو به آرشیو -<code>tar</code> +<code>tar</code> تبدیل می‌کنید و بعد خروجی رو بعنوان ورودی به -<code>curl</code> -می‌فرستین.</p> -<p>حالا به این فکر کنید که بخواهیم یک متن رو منتشر کنیم، راهکار دقیقا مشابه قبلیه. +<code>curl</code> +می‌فرستین.</p> +<p>حالا به این فکر کنید که بخواهیم یک متن رو منتشر کنیم، راهکار دقیقا مشابه قبلیه. به این شکل که یک متن رو با استفاده از -<code>echo</code> +<code>echo</code> به ورودی استاندارد -<code>curl</code> -می‌فرستیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ <span class="nb">echo</span> <span class="s1">&#39;Some Random Text&#39;</span> <span class="p">|</span> curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@- -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/file/-_W00DSbS/</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>اینطوری خیلی راحت می‌شه خروجی هر کامندی رو روی به اشتراک گذاشت</p> -</blockquote> -<hr> -<p>سایت من توی آدرس +<code>curl</code> +می‌فرستیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ <span class="nb">echo</span> <span class="s1">&#39;Some Random Text&#39;</span> <span class="p">|</span> curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@- +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/file/-_W00DSbS/</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>اینطوری خیلی راحت می‌شه خروجی هر کامندی رو روی به اشتراک گذاشت</p> +</blockquote> +<hr> +<p>سایت من توی آدرس octocat.ir -در دسترسه، خوشحال می‌شم ازش استفاده کنید :)</p> -<blockquote> -<p>اینو بدونید که سایت به صورت دیفالت فایل ها رو برای 24 ساعت نگه‌میداره</p> -</blockquote> -<p>این سرویس رو منبع باز روی -<a class="link" href="https://github.com/shabane/CurlPaste/" target="_blank" rel="noopener" - >گیتهاب</a> -گذاشتم، اگه چیزی خواستید می‌تونید بهش اضافه کنید و یا مشکلاتش رو پچ کنید.</p> -<p>و اگه می‌خواهید برای خودتون این سرویس رو بیارید بالا از ایمیج داکر استفاده کنید</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">docker run -p 80:80 mshabane/curlpaste:latest -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>اگه نیاز دارین تا فایل ها برای تایم بالاتری نگه‌داری بشه، متغییر -<em>HOURS</em> +در دسترسه، خوشحال می‌شم ازش استفاده کنید :)</p> +<blockquote> +<p>اینو بدونید که سایت به صورت دیفالت فایل ها رو برای 24 ساعت نگه‌میداره</p> +</blockquote> +<p>این سرویس رو منبع باز روی +<a class="link" href="https://github.com/shabane/CurlPaste/" target="_blank" rel="noopener" +>گیتهاب</a> +گذاشتم، اگه چیزی خواستید می‌تونید بهش اضافه کنید و یا مشکلاتش رو پچ کنید.</p> +<p>و اگه می‌خواهید برای خودتون این سرویس رو بیارید بالا از ایمیج داکر استفاده کنید</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">docker run -p 80:80 mshabane/curlpaste:latest +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>اگه نیاز دارین تا فایل ها برای تایم بالاتری نگه‌داری بشه، متغییر +<em>HOURS</em> داخل فایل -<em>.env</em> -رو تغییر بدین.</p> -</blockquote> -<hr> -<p>ایده های دیگه‌ای هم برای سایت دارم، برای مثال اینکه کاربر بتونه زمان انقضای +<em>.env</em> +رو تغییر بدین.</p> +</blockquote> +<hr> +<p>ایده های دیگه‌ای هم برای سایت دارم، برای مثال اینکه کاربر بتونه زمان انقضای هر فایل رو خودش مشخص کنه. -مثلا به این شکل</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -L octocat.ir -F <span class="nv">arya_1</span><span class="o">=</span>/path/to/file -</span></span></code></pre></td></tr></table> -</div> -</div><p>اینطوری میشه یک زمان انقضا بر اساس ساعت برای هر فایل ایجاد کرد.</p> -<p>و خب همچنین میشه یک کوتاه کننده لینک هم بهش اضافه کنم، و لینک های کوتاه شده رو -ریدایرکت کنم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -L octocat.ir -F <span class="nv">url</span><span class="o">=</span><span class="s1">&#39;https://example.com/some/looooong/url/&#39;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>اگه اینها رو اضافه کنم، این پست رو اپدیت می‌کنم ولی خوشحال می‌شم شما -توی این پروژه مشارکت کنید.</p> - - - - - +مثلا به این شکل</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -L octocat.ir -F <span class="nv">arya_1</span><span class="o">=</span>/path/to/file +</span></span></code></pre></td></tr></table> +</div> +</div><p>اینطوری میشه یک زمان انقضا بر اساس ساعت برای هر فایل ایجاد کرد.</p> +<p>و خب همچنین میشه یک کوتاه کننده لینک هم بهش اضافه کنم، و لینک های کوتاه شده رو +ریدایرکت کنم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -L octocat.ir -F <span class="nv">url</span><span class="o">=</span><span class="s1">&#39;https://example.com/some/looooong/url/&#39;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>اگه اینها رو اضافه کنم، این پست رو اپدیت می‌کنم ولی خوشحال می‌شم شما +توی این پروژه مشارکت کنید.</p> \ No newline at end of file diff --git "a/docs/tags/\330\264\333\214\330\261-\332\251\330\261\330\257\331\206-\331\201\330\247\333\214\331\204/page/1/index.html" "b/docs/tags/\330\264\333\214\330\261-\332\251\330\261\330\257\331\206-\331\201\330\247\333\214\331\204/page/1/index.html" index 54da9e3..7c4fc72 100644 --- "a/docs/tags/\330\264\333\214\330\261-\332\251\330\261\330\257\331\206-\331\201\330\247\333\214\331\204/page/1/index.html" +++ "b/docs/tags/\330\264\333\214\330\261-\332\251\330\261\330\257\331\206-\331\201\330\247\333\214\331\204/page/1/index.html" @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/%D8%B4%DB%8C%D8%B1-%DA%A9%D8%B1%D8%AF%D9%86-%D9%81%D8%A7%DB%8C%D9%84/ - - - - - - +https://bit-orbit.github.io/tags/%D8%B4%DB%8C%D8%B1-%DA%A9%D8%B1%D8%AF%D9%86-%D9%81%D8%A7%DB%8C%D9%84/ + \ No newline at end of file diff --git "a/docs/tags/\331\201\330\247\333\214\331\204-\330\250\333\214\331\206-\330\250\330\247-curl/index.html" "b/docs/tags/\331\201\330\247\333\214\331\204-\330\250\333\214\331\206-\330\250\330\247-curl/index.html" index 13ed59b..e21a8e6 100644 --- "a/docs/tags/\331\201\330\247\333\214\331\204-\330\250\333\214\331\206-\330\250\330\247-curl/index.html" +++ "b/docs/tags/\331\201\330\247\333\214\331\204-\330\250\333\214\331\206-\330\250\330\247-curl/index.html" @@ -1,559 +1,37 @@ - - - - -Tag: فایل بین با Curl - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

فایل بین با Curl

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: فایل بین با Curl - bit-orbit +

Tags

1 صفحه

فایل بین با Curl

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git "a/docs/tags/\331\201\330\247\333\214\331\204-\330\250\333\214\331\206-\330\250\330\247-curl/index.xml" "b/docs/tags/\331\201\330\247\333\214\331\204-\330\250\333\214\331\206-\330\250\330\247-curl/index.xml" index ef1d7c7..0167e0b 100644 --- "a/docs/tags/\331\201\330\247\333\214\331\204-\330\250\333\214\331\206-\330\250\330\247-curl/index.xml" +++ "b/docs/tags/\331\201\330\247\333\214\331\204-\330\250\333\214\331\206-\330\250\330\247-curl/index.xml" @@ -1,79 +1,65 @@ - - - - فایل بین با Curl on bit-orbit - https://bit-orbit.github.io/tags/%D9%81%D8%A7%DB%8C%D9%84-%D8%A8%DB%8C%D9%86-%D8%A8%D8%A7-curl/ - Recent content in فایل بین با Curl on bit-orbit - Hugo -- gohugo.io - fa - Wed, 06 Mar 2024 23:50:46 +0330 - Crul Paste - https://bit-orbit.github.io/p/crul-paste/ - Wed, 06 Mar 2024 23:50:46 +0330 - - https://bit-orbit.github.io/p/crul-paste/ - <img src="https://bit-orbit.github.io/images/post/curlpaste.jpg" alt="Featured image of post Crul Paste" /><p>اول بیایید ببینم +فایل بین با Curl on bit-orbithttps://bit-orbit.github.io/tags/%D9%81%D8%A7%DB%8C%D9%84-%D8%A8%DB%8C%D9%86-%D8%A8%D8%A7-curl/Recent content in فایل بین با Curl on bit-orbitHugo -- gohugo.iofaWed, 06 Mar 2024 23:50:46 +0330Crul Pastehttps://bit-orbit.github.io/p/crul-paste/Wed, 06 Mar 2024 23:50:46 +0330https://bit-orbit.github.io/p/crul-paste/<img src="https://bit-orbit.github.io/images/post/curlpaste.jpg" alt="Featured image of post Crul Paste" /><p>اول بیایید ببینم FileBin چیه! قبل از اون هم فکر می‌کنم همه بدونیم -<a class="link" href="https://virgool.io/@m_shabane/pastebin-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B1%D8%A7-%D9%87%DA%A9%D8%B1-%D9%87%D8%A7-%D8%B9%D8%A7%D8%B4%D9%82-%D8%A2%D9%86-%D9%87%D8%A7%D8%B3%D8%AA%D9%86%D8%AF-swafqm95gttp" target="_blank" rel="noopener" - >pastebin</a> +<a class="link" href="https://virgool.io/@m_shabane/pastebin-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B1%D8%A7-%D9%87%DA%A9%D8%B1-%D9%87%D8%A7-%D8%B9%D8%A7%D8%B4%D9%82-%D8%A2%D9%86-%D9%87%D8%A7%D8%B3%D8%AA%D9%86%D8%AF-swafqm95gttp" target="_blank" rel="noopener" +>pastebin</a> چیه. اگه نمی‌دونید خیلی ساده باید بگم یک سایتی که فقط روی اون متن به اشتراک می‌ذارن -مثلا ممکنه ارور ها یا حتی سورس یک برنامه باشه!</p> -<p>اما +مثلا ممکنه ارور ها یا حتی سورس یک برنامه باشه!</p> +<p>اما FileBin ها بجای تسکت فایل های شما رو نگهداری می‌کنند و به شما لینکی ارائه می‌کنند که فایل را برای دیگران اشتراک بگذارید، نمونه های زیادی هم وجود داره مثل -<a class="link" href="https://wormhole.app" target="_blank" rel="noopener" - >https://wormhole.app</a></p> -<p>اما خب از اونجایی که من زندگی‌ام رو توی ترمینال می‌گذرونم و ترمینال رو به باز کردن مرورگر برای اشتراک یک فایل ترجیح می‌دم، پس از +<a class="link" href="https://wormhole.app" target="_blank" rel="noopener" +>https://wormhole.app</a></p> +<p>اما خب از اونجایی که من زندگی‌ام رو توی ترمینال می‌گذرونم و ترمینال رو به باز کردن مرورگر برای اشتراک یک فایل ترجیح می‌دم، پس از FileBin هایی استفاده می‌کنم که بتونم تحت ترمینال به سادگی فایلم رو به اشتراک بذارم. برای مثال -<a class="link" href="https://0x0.st" target="_blank" rel="noopener" - >https://0x0.st</a></p> -<p>وقتی این رو سایت رو باز کنید هیچ گزینه‌ای برای انتخاب فایل و آپلود نمی‌بینید! خب پس چطور باید یک فایل را برای سایت آپلود کنید؟ +<a class="link" href="https://0x0.st" target="_blank" rel="noopener" +>https://0x0.st</a></p> +<p>وقتی این رو سایت رو باز کنید هیچ گزینه‌ای برای انتخاب فایل و آپلود نمی‌بینید! خب پس چطور باید یک فایل را برای سایت آپلود کنید؟ کافیه یک ریکوئست HTTP POST خیلی ساده به سایت بزنید که شامل فایتون باشه. این کار رو خیلی ساده می‌شه با curl -انجام داد.</p> -<p>مثلا بیایین اشتراک یک فایل رو ببینیم</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl https://0x0.st -F <span class="nv">file</span><span class="o">=</span>@/path/to/file -</span></span><span class="line"><span class="cl"><span class="c1"># https://0x0.st/zWKo.txt</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>این سایت خیلی خوبه +انجام داد.</p> +<p>مثلا بیایین اشتراک یک فایل رو ببینیم</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl https://0x0.st -F <span class="nv">file</span><span class="o">=</span>@/path/to/file +</span></span><span class="line"><span class="cl"><span class="c1"># https://0x0.st/zWKo.txt</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>این سایت خیلی خوبه اما از زمانی به بعد دیگه این سایت کاری که من نیاز دارم رو کفاف نداد! برای مثال من نیاز دارم فایلم بعد از اولین دانلود از روی سرور حذف بشه و از این مهم تر نیاز داشتم که چندین فایل رو با یک یوزنیم مشخص اپلود کنم که خب شخصی که قرار باشه فایل ها رو دانلود کنه، کافیه از یوزنیم استفاده کنه که راحت تر قابل حفظ کردن و اشتراک گذاشتنه. اینطوری بود که گفتم FileBin -خودم رو بنویسم :)</p> -<hr> -<p><strong>بیایید فیچر ها و روش استفاده ازش رو با هم ببینیم.</strong></p> -<p>فرض کنید شما یک فایل دارید که می‌خواهید با من به اشتراک بگذارید، +خودم رو بنویسم :)</p> +<hr> +<p><strong>بیایید فیچر ها و روش استفاده ازش رو با هم ببینیم.</strong></p> +<p>فرض کنید شما یک فایل دارید که می‌خواهید با من به اشتراک بگذارید، خیلی ساده ترمینال رو باز می‌کنید و با یک دستور فایل رو با یک URL -تقریبا تصادفی منتشر می‌کنید.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">file</span><span class="o">=</span>@/tmp/theFile.fli -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/theFile.fli</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>دقت کنید من از سوییچ +تقریبا تصادفی منتشر می‌کنید.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">file</span><span class="o">=</span>@/tmp/theFile.fli +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/theFile.fli</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>دقت کنید من از سوییچ -L استفاده می‌کنم، دلیل اینکار این هست که خب ممکنه سایت شما رو ریدایرکت کنه. مثلا از @@ -82,206 +68,201 @@ http https. برای همین این سوییچ رو استفاده می‌کنم. با این سوییچ دیگه نیازی نیست https:// -رو هم بنویسیم!</p> -</blockquote> -<p>حالا اگه نیاز دارین که فایلتون بعد از اولین دانلود از روی سرور حذف بشه و دیگه در دسترس نباشه +رو هم بنویسیم!</p> +</blockquote> +<p>حالا اگه نیاز دارین که فایلتون بعد از اولین دانلود از روی سرور حذف بشه و دیگه در دسترس نباشه کافیه از کلمه -<code>once</code> +<code>once</code> بجای -<code>file</code> -استفاده کنید.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@/tmp/theFile.fli -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/theFile_GKug7xb.fli</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>تا اینجای کار همه +<code>file</code> +استفاده کنید.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@/tmp/theFile.fli +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/theFile_GKug7xb.fli</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>تا اینجای کار همه URL های هر فایلی به صورت تصادفی هست و من نیاز دارم که چندین فایل رو زیر یک یوزنیم مشخص مثل -<code>arya</code> +<code>arya</code> قرار بدم. اینطوری وقتی قراره یک فایل رو برای همکارم توی شرکت بفرستم خیلی ساده ازش درخواست می‌کنم در سایت به ادرس -<code>/arya</code> +<code>/arya</code> بره. حالا چطوری اینکارو بکنیم خیلی ساده بجای -<code>once</code> +<code>once</code> یا -<code>file</code>, +<code>file</code>, همون -<code>username</code> -رو می‌نویسیم(توی مثال من از نام <strong><em>arya</em></strong> استفاده می‌کنیم)</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">arya</span><span class="o">=</span>@/tmp/pic.jpg -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/arya</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>تا اینجای کار مثلا شما چند بار چند فایل مختلف رو زیر یک یوزنیم قرار دادین -حالا چطور میشه همه اونها رو باهم دانلود کرد؟</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir/arya <span class="p">|</span> wget -i - -</span></span></code></pre></td></tr></table> -</div> -</div><p>حالا به این فکر کنید که یکنفر میاد و با یوزنیم های معقول ریکوئست میزنه به سایت و +<code>username</code> +رو می‌نویسیم(توی مثال من از نام <strong><em>arya</em></strong> استفاده می‌کنیم)</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir -F <span class="nv">arya</span><span class="o">=</span>@/tmp/pic.jpg +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/arya</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>تا اینجای کار مثلا شما چند بار چند فایل مختلف رو زیر یک یوزنیم قرار دادین +حالا چطور میشه همه اونها رو باهم دانلود کرد؟</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L octocat.ir/arya <span class="p">|</span> wget -i - +</span></span></code></pre></td></tr></table> +</div> +</div><p>حالا به این فکر کنید که یکنفر میاد و با یوزنیم های معقول ریکوئست میزنه به سایت و فایل های بقیه رو دانلود می‌کنه، اینجاست که پسورد به کار میاد. برای گذاشتن پسورد روی هر فایل کافیه توی خود URL سایت پسورد رو بعنوان http parametr -بنویسد.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L <span class="s1">&#39;octocat.ir/?password=12345678&#39;</span> -F <span class="nv">once</span><span class="o">=</span>@/Desktop/TopSecret.fli -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/file/TopSecret/?password=12345678</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>اینجا دقت کنید که باید از کوتیشن استفاده کنیم چون علامت مساوی و علامت سوال رو bash وایلد کارد می‌بینه.</p> -</blockquote> -<p>برای دانلود هر فایلی هم که پسورد داره کافیه دقیقا مثل مثال قبلی عمل کنید و پسورد رو توی +بنویسد.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ curl -L <span class="s1">&#39;octocat.ir/?password=12345678&#39;</span> -F <span class="nv">once</span><span class="o">=</span>@/Desktop/TopSecret.fli +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/file/TopSecret/?password=12345678</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>اینجا دقت کنید که باید از کوتیشن استفاده کنیم چون علامت مساوی و علامت سوال رو bash وایلد کارد می‌بینه.</p> +</blockquote> +<p>برای دانلود هر فایلی هم که پسورد داره کافیه دقیقا مثل مثال قبلی عمل کنید و پسورد رو توی http parametr -وارد کنید</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ wget <span class="s1">&#39;octocat.ir/file/TopSecret/?password=12345678&#39;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>براتون سواله که چرا پسورد روی توی +وارد کنید</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ wget <span class="s1">&#39;octocat.ir/file/TopSecret/?password=12345678&#39;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>براتون سواله که چرا پسورد روی توی URL گذاشتم؟ می‌شد که مثلا توی http header پسورد بگیریم و بدیم، پس چرا توی -URL?</p> -<p>اینکار برای این هست که دسترسی به فایل ساده باشه. مثلا من وقتی می‌خام فایلی رو برای همکارم بفرستم +URL?</p> +<p>اینکار برای این هست که دسترسی به فایل ساده باشه. مثلا من وقتی می‌خام فایلی رو برای همکارم بفرستم و خب فرض کنم همکار من از header ها چیزی نمی‌دونه، و فقط با یک کلیک باید بتونه به فایل دسترسی پیدا کنه، اینجاست که من فقط یک URL -به اون می‌گم :)</p> -<hr> -<p>بعضی از ابزار ها +به اون می‌گم :)</p> +<hr> +<p>بعضی از ابزار ها hackable هستند! این به معنی ضعف امنیتی نیست، بلکه به این اشاره می‌کنه ابزار به روشی طراحی -شده که کاربران می‌تونند خارج از هدف اصلی اون ابزار از اون استفاه کنند.</p> -<p>برای مثال ابزار که من درست کردم برای اشتراک فایل هست، اما بنظرتون میشه یک دایرکتوری و یا یک متن رو هم باهاش به اشتراک گذاشت؟</p> -<p>قطعا! اما چطوری؟</p> -<p>برای اینکه یک دایرکتوری با تمامی ساب دایرکتوری هاش رو بفرستین +شده که کاربران می‌تونند خارج از هدف اصلی اون ابزار از اون استفاه کنند.</p> +<p>برای مثال ابزار که من درست کردم برای اشتراک فایل هست، اما بنظرتون میشه یک دایرکتوری و یا یک متن رو هم باهاش به اشتراک گذاشت؟</p> +<p>قطعا! اما چطوری؟</p> +<p>برای اینکه یک دایرکتوری با تمامی ساب دایرکتوری هاش رو بفرستین کافیه از -<code>tar</code> -استفاده کنید.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ tar -cf - ~/Pictures <span class="p">|</span> curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@- -</span></span><span class="line"><span class="cl"><span class="c1"># &#39;octocat.ir/file/_nUiuRPW/</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>با اینکار با استفاده از +<code>tar</code> +استفاده کنید.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ tar -cf - ~/Pictures <span class="p">|</span> curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@- +</span></span><span class="line"><span class="cl"><span class="c1"># &#39;octocat.ir/file/_nUiuRPW/</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>با اینکار با استفاده از tar تمامی فایل ها و دایرکتوری های مثلا پوشه -<em>~/Pictures</em> +<em>~/Pictures</em> رو به آرشیو -<code>tar</code> +<code>tar</code> تبدیل می‌کنید و بعد خروجی رو بعنوان ورودی به -<code>curl</code> -می‌فرستین.</p> -<p>حالا به این فکر کنید که بخواهیم یک متن رو منتشر کنیم، راهکار دقیقا مشابه قبلیه. +<code>curl</code> +می‌فرستین.</p> +<p>حالا به این فکر کنید که بخواهیم یک متن رو منتشر کنیم، راهکار دقیقا مشابه قبلیه. به این شکل که یک متن رو با استفاده از -<code>echo</code> +<code>echo</code> به ورودی استاندارد -<code>curl</code> -می‌فرستیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ <span class="nb">echo</span> <span class="s1">&#39;Some Random Text&#39;</span> <span class="p">|</span> curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@- -</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/file/-_W00DSbS/</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>اینطوری خیلی راحت می‌شه خروجی هر کامندی رو روی به اشتراک گذاشت</p> -</blockquote> -<hr> -<p>سایت من توی آدرس +<code>curl</code> +می‌فرستیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ <span class="nb">echo</span> <span class="s1">&#39;Some Random Text&#39;</span> <span class="p">|</span> curl -L octocat.ir -F <span class="nv">once</span><span class="o">=</span>@- +</span></span><span class="line"><span class="cl"><span class="c1"># octocat.ir/file/-_W00DSbS/</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>اینطوری خیلی راحت می‌شه خروجی هر کامندی رو روی به اشتراک گذاشت</p> +</blockquote> +<hr> +<p>سایت من توی آدرس octocat.ir -در دسترسه، خوشحال می‌شم ازش استفاده کنید :)</p> -<blockquote> -<p>اینو بدونید که سایت به صورت دیفالت فایل ها رو برای 24 ساعت نگه‌میداره</p> -</blockquote> -<p>این سرویس رو منبع باز روی -<a class="link" href="https://github.com/shabane/CurlPaste/" target="_blank" rel="noopener" - >گیتهاب</a> -گذاشتم، اگه چیزی خواستید می‌تونید بهش اضافه کنید و یا مشکلاتش رو پچ کنید.</p> -<p>و اگه می‌خواهید برای خودتون این سرویس رو بیارید بالا از ایمیج داکر استفاده کنید</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">docker run -p 80:80 mshabane/curlpaste:latest -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>اگه نیاز دارین تا فایل ها برای تایم بالاتری نگه‌داری بشه، متغییر -<em>HOURS</em> +در دسترسه، خوشحال می‌شم ازش استفاده کنید :)</p> +<blockquote> +<p>اینو بدونید که سایت به صورت دیفالت فایل ها رو برای 24 ساعت نگه‌میداره</p> +</blockquote> +<p>این سرویس رو منبع باز روی +<a class="link" href="https://github.com/shabane/CurlPaste/" target="_blank" rel="noopener" +>گیتهاب</a> +گذاشتم، اگه چیزی خواستید می‌تونید بهش اضافه کنید و یا مشکلاتش رو پچ کنید.</p> +<p>و اگه می‌خواهید برای خودتون این سرویس رو بیارید بالا از ایمیج داکر استفاده کنید</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">docker run -p 80:80 mshabane/curlpaste:latest +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>اگه نیاز دارین تا فایل ها برای تایم بالاتری نگه‌داری بشه، متغییر +<em>HOURS</em> داخل فایل -<em>.env</em> -رو تغییر بدین.</p> -</blockquote> -<hr> -<p>ایده های دیگه‌ای هم برای سایت دارم، برای مثال اینکه کاربر بتونه زمان انقضای +<em>.env</em> +رو تغییر بدین.</p> +</blockquote> +<hr> +<p>ایده های دیگه‌ای هم برای سایت دارم، برای مثال اینکه کاربر بتونه زمان انقضای هر فایل رو خودش مشخص کنه. -مثلا به این شکل</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -L octocat.ir -F <span class="nv">arya_1</span><span class="o">=</span>/path/to/file -</span></span></code></pre></td></tr></table> -</div> -</div><p>اینطوری میشه یک زمان انقضا بر اساس ساعت برای هر فایل ایجاد کرد.</p> -<p>و خب همچنین میشه یک کوتاه کننده لینک هم بهش اضافه کنم، و لینک های کوتاه شده رو -ریدایرکت کنم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -L octocat.ir -F <span class="nv">url</span><span class="o">=</span><span class="s1">&#39;https://example.com/some/looooong/url/&#39;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>اگه اینها رو اضافه کنم، این پست رو اپدیت می‌کنم ولی خوشحال می‌شم شما -توی این پروژه مشارکت کنید.</p> - - - - - +مثلا به این شکل</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -L octocat.ir -F <span class="nv">arya_1</span><span class="o">=</span>/path/to/file +</span></span></code></pre></td></tr></table> +</div> +</div><p>اینطوری میشه یک زمان انقضا بر اساس ساعت برای هر فایل ایجاد کرد.</p> +<p>و خب همچنین میشه یک کوتاه کننده لینک هم بهش اضافه کنم، و لینک های کوتاه شده رو +ریدایرکت کنم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -L octocat.ir -F <span class="nv">url</span><span class="o">=</span><span class="s1">&#39;https://example.com/some/looooong/url/&#39;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>اگه اینها رو اضافه کنم، این پست رو اپدیت می‌کنم ولی خوشحال می‌شم شما +توی این پروژه مشارکت کنید.</p> \ No newline at end of file diff --git "a/docs/tags/\331\201\330\247\333\214\331\204-\330\250\333\214\331\206-\330\250\330\247-curl/page/1/index.html" "b/docs/tags/\331\201\330\247\333\214\331\204-\330\250\333\214\331\206-\330\250\330\247-curl/page/1/index.html" index 3990eb2..c35d4af 100644 --- "a/docs/tags/\331\201\330\247\333\214\331\204-\330\250\333\214\331\206-\330\250\330\247-curl/page/1/index.html" +++ "b/docs/tags/\331\201\330\247\333\214\331\204-\330\250\333\214\331\206-\330\250\330\247-curl/page/1/index.html" @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/%D9%81%D8%A7%DB%8C%D9%84-%D8%A8%DB%8C%D9%86-%D8%A8%D8%A7-curl/ - - - - - - +https://bit-orbit.github.io/tags/%D9%81%D8%A7%DB%8C%D9%84-%D8%A8%DB%8C%D9%86-%D8%A8%D8%A7-curl/ + \ No newline at end of file diff --git "a/docs/tags/\331\201\330\261\331\202-\330\250\333\214\331\206-static-linking-\331\210-dynamic-linking-\332\206\333\214\330\263\330\252/index.html" "b/docs/tags/\331\201\330\261\331\202-\330\250\333\214\331\206-static-linking-\331\210-dynamic-linking-\332\206\333\214\330\263\330\252/index.html" index b45e0e0..1c39328 100644 --- "a/docs/tags/\331\201\330\261\331\202-\330\250\333\214\331\206-static-linking-\331\210-dynamic-linking-\332\206\333\214\330\263\330\252/index.html" +++ "b/docs/tags/\331\201\330\261\331\202-\330\250\333\214\331\206-static-linking-\331\210-dynamic-linking-\332\206\333\214\330\263\330\252/index.html" @@ -1,559 +1,37 @@ - - - - -Tag: فرق بین Static Linking و Dynamic Linking چیست - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

فرق بین Static Linking و Dynamic Linking چیست

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: فرق بین Static Linking و Dynamic Linking چیست - bit-orbit +

Tags

1 صفحه

فرق بین Static Linking و Dynamic Linking چیست

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git "a/docs/tags/\331\201\330\261\331\202-\330\250\333\214\331\206-static-linking-\331\210-dynamic-linking-\332\206\333\214\330\263\330\252/index.xml" "b/docs/tags/\331\201\330\261\331\202-\330\250\333\214\331\206-static-linking-\331\210-dynamic-linking-\332\206\333\214\330\263\330\252/index.xml" index 7d382c8..5eb5d8d 100644 --- "a/docs/tags/\331\201\330\261\331\202-\330\250\333\214\331\206-static-linking-\331\210-dynamic-linking-\332\206\333\214\330\263\330\252/index.xml" +++ "b/docs/tags/\331\201\330\261\331\202-\330\250\333\214\331\206-static-linking-\331\210-dynamic-linking-\332\206\333\214\330\263\330\252/index.xml" @@ -1,92 +1,73 @@ - - - - فرق بین Static Linking و Dynamic Linking چیست on bit-orbit - https://bit-orbit.github.io/tags/%D9%81%D8%B1%D9%82-%D8%A8%DB%8C%D9%86-static-linking-%D9%88-dynamic-linking-%DA%86%DB%8C%D8%B3%D8%AA/ - Recent content in فرق بین Static Linking و Dynamic Linking چیست on bit-orbit - Hugo -- gohugo.io - fa - Fri, 03 Nov 2023 00:21:46 +0330 - تفاوت Staticlink و Dynamiclink در زبان های برنامه نویسی - https://bit-orbit.github.io/p/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-staticlink-%D9%88-dynamiclink-%D8%AF%D8%B1-%D8%B2%D8%A8%D8%A7%D9%86-%D9%87%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C/ - Fri, 03 Nov 2023 00:21:46 +0330 - - https://bit-orbit.github.io/p/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-staticlink-%D9%88-dynamiclink-%D8%AF%D8%B1-%D8%B2%D8%A8%D8%A7%D9%86-%D9%87%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C/ - <img src="https://bit-orbit.github.io/images/post/staticvsdynamic.jpg" alt="Featured image of post تفاوت Staticlink و Dynamiclink در زبان های برنامه نویسی" /><p>یکسری مفاهیمی در برنامه نویسی داریم که من تصمیم داریم درباره آنها توی چند پست توضیح بدم، اولین مورد +فرق بین Static Linking و Dynamic Linking چیست on bit-orbithttps://bit-orbit.github.io/tags/%D9%81%D8%B1%D9%82-%D8%A8%DB%8C%D9%86-static-linking-%D9%88-dynamic-linking-%DA%86%DB%8C%D8%B3%D8%AA/Recent content in فرق بین Static Linking و Dynamic Linking چیست on bit-orbitHugo -- gohugo.iofaFri, 03 Nov 2023 00:21:46 +0330تفاوت Staticlink و Dynamiclink در زبان های برنامه نویسیhttps://bit-orbit.github.io/p/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-staticlink-%D9%88-dynamiclink-%D8%AF%D8%B1-%D8%B2%D8%A8%D8%A7%D9%86-%D9%87%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C/Fri, 03 Nov 2023 00:21:46 +0330https://bit-orbit.github.io/p/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-staticlink-%D9%88-dynamiclink-%D8%AF%D8%B1-%D8%B2%D8%A8%D8%A7%D9%86-%D9%87%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C/<img src="https://bit-orbit.github.io/images/post/staticvsdynamic.jpg" alt="Featured image of post تفاوت Staticlink و Dynamiclink در زبان های برنامه نویسی" /><p>یکسری مفاهیمی در برنامه نویسی داریم که من تصمیم داریم درباره آنها توی چند پست توضیح بدم، اولین مورد که شامل این پست می‌شه تفاوت static linking و dynamic linking در زبان های برامه نویسی هست‌ش. مفاهیم دیگه‌ای که داخل پست های بعدی می‌نویسم چیز هایی مثل -<strong>static type, dynamic type, compiler language, interpreter language</strong> و &hellip; -خواهد بود.</p> -<hr> -<ul> -<li> -<p>دو مفهموم +<strong>static type, dynamic type, compiler language, interpreter language</strong> و &hellip; +خواهد بود.</p> +<hr> +<ul> +<li> +<p>دو مفهموم static linking و dynamic linking -چه هستند؟</p> -</li> -<li> -<p>هر کدام چه مشکلات و فوایدی دارند؟</p> -</li> -</ul> -<hr> -<p>ما در نوشتن برنامه ها معمولا از لایبراری های زیادی استفاده می‌کنیم، حتی یک برانامه ساده. +چه هستند؟</p> +</li> +<li> +<p>هر کدام چه مشکلات و فوایدی دارند؟</p> +</li> +</ul> +<hr> +<p>ما در نوشتن برنامه ها معمولا از لایبراری های زیادی استفاده می‌کنیم، حتی یک برانامه ساده. سیستم ما برای اجرای یک برنامه، کد برنامه رو به ماشین-کد تبدیل می‌کنه و بعد خط به خط -اون ها رو اجرا می‌کنه.</p> -<p>اصطلاح +اون ها رو اجرا می‌کنه.</p> +<p>اصطلاح linking به روندی گفته می‌شود که کد شما به اشیاء(کد و داده) های خارجی برای استفاده از انها اشاره کند. معمولا دو روش برای اینکار وجود دارد، static linking(لینک کردن ایستا), -dynamic linking(لینک کردن پویا).</p> -<blockquote> -<p>static linking -زمانی اتفاق می‌افتد که کامپایلر منابع خارجی(لایبراری) ها را داخل فایل اجرایی برنامه کپی کند</p> -</blockquote> -<p>در واقع در این روش برنامه شما تمامی لایبراری هایی که شما در کد استفاده کردین رو +dynamic linking(لینک کردن پویا).</p> +<blockquote> +<p>static linking +زمانی اتفاق می‌افتد که کامپایلر منابع خارجی(لایبراری) ها را داخل فایل اجرایی برنامه کپی کند</p> +</blockquote> +<p>در واقع در این روش برنامه شما تمامی لایبراری هایی که شما در کد استفاده کردین رو با کد شما درون یک فایل اجرایی کامپایل می‌کند، زمانی که برنامه اجرا شود، تمامی لایبراری های -مورد نیازش وارد مموری کامپیوتر می‌شود.</p> -<p>فایده هایی که می‌تونم بهش اشاره کنم</p> -<ul> -<li>توی منتشر کردن برنامه به دیگران، مشکل نصب کامپوننت ها رو دیگه ندارن، و به راحتی اجرا می‌کنند.</li> -<li>ممکنه برنامه اندکی سریع تر اجرا بشه</li> -</ul> -<p>این روش واقعا خوبیه ولی خب معایب خودش رو هم داره</p> -<ul> -<li>فایل اجرایی حجم زیادی‌تری نسب‌ت به لینک کردن پویا داره</li> -<li>وقتی برنامه اجرا بشه، بخاطر اینکه همه لایبراری و داده های مورد نیاز داخل همان فایل اجرایی بود، برنامه رم زیادی استفاده می‌کنه.</li> -<li>اگر لایبراری های مورد استفاده تغییر کنند، برنامه نویس باید مجدد برنامه رو کامپایل و منتشر کنه</li> -</ul> -<blockquote> -<p>dynamic linking +مورد نیازش وارد مموری کامپیوتر می‌شود.</p> +<p>فایده هایی که می‌تونم بهش اشاره کنم</p> +<ul> +<li>توی منتشر کردن برنامه به دیگران، مشکل نصب کامپوننت ها رو دیگه ندارن، و به راحتی اجرا می‌کنند.</li> +<li>ممکنه برنامه اندکی سریع تر اجرا بشه</li> +</ul> +<p>این روش واقعا خوبیه ولی خب معایب خودش رو هم داره</p> +<ul> +<li>فایل اجرایی حجم زیادی‌تری نسب‌ت به لینک کردن پویا داره</li> +<li>وقتی برنامه اجرا بشه، بخاطر اینکه همه لایبراری و داده های مورد نیاز داخل همان فایل اجرایی بود، برنامه رم زیادی استفاده می‌کنه.</li> +<li>اگر لایبراری های مورد استفاده تغییر کنند، برنامه نویس باید مجدد برنامه رو کامپایل و منتشر کنه</li> +</ul> +<blockquote> +<p>dynamic linking لینک کردن پویا زمانی است که نام لایبراری خارجی در زمان اجرا وارد فایل اجرایی می‌شود. -و اینکه فقط در این زمان است که لایبراری مورد نیاز وارد مموری می‌شود.</p> -</blockquote> -<p>در این مواقع لایبراری ها باید در سیستم عامل از قبل نصب شده باشند، و یا در موقغ نصب برنامه جدید +و اینکه فقط در این زمان است که لایبراری مورد نیاز وارد مموری می‌شود.</p> +</blockquote> +<p>در این مواقع لایبراری ها باید در سیستم عامل از قبل نصب شده باشند، و یا در موقغ نصب برنامه جدید اون لایبراری ها نصب شوند. و اگر هر تغییری در لایبرار رخ بده، برنامه نویس نیاز نیست دوباره برنامه رو -کامپایل و منتشر کند، فقط لایبراری مورد نیاز اپدیت می‌شود.</p> -<p>این روش هم مزیت های خودش رو داره، مثلا:</p> -<ul> -<li>حجم فایل های اجرایی خیلی کمتری داره</li> -<li>تا زمانی که نیاز به لایبراری نشده باشد(اگر در کد نویسی رعایت شده باشه) لایبراری ها رم اشغال نمی‌کنند.</li> -</ul> -<p>مهمترین عیبی که می‌تونه این روش داشته باشه اینه که -حذف شدن و یا خراب شدن لایبراری باعث می‌شه برنامه دیگه اجرا نشه.</p> -<hr> -<blockquote> -<p>این مطلب خلاصه‌ای کلی بود برای آشنایی با این دو مفهموم +کامپایل و منتشر کند، فقط لایبراری مورد نیاز اپدیت می‌شود.</p> +<p>این روش هم مزیت های خودش رو داره، مثلا:</p> +<ul> +<li>حجم فایل های اجرایی خیلی کمتری داره</li> +<li>تا زمانی که نیاز به لایبراری نشده باشد(اگر در کد نویسی رعایت شده باشه) لایبراری ها رم اشغال نمی‌کنند.</li> +</ul> +<p>مهمترین عیبی که می‌تونه این روش داشته باشه اینه که +حذف شدن و یا خراب شدن لایبراری باعث می‌شه برنامه دیگه اجرا نشه.</p> +<hr> +<blockquote> +<p>این مطلب خلاصه‌ای کلی بود برای آشنایی با این دو مفهموم برای مطالعه بیشتر این -<a class="link" href="https://blog.hubspot.com/website/static-vs-dynamic-linking#static-linking" target="_blank" rel="noopener" - >لینک</a> -می‌تونه مفید باشه.</p> -</blockquote> -<hr> - - - - - +<a class="link" href="https://blog.hubspot.com/website/static-vs-dynamic-linking#static-linking" target="_blank" rel="noopener" +>لینک</a> +می‌تونه مفید باشه.</p> +</blockquote> +<hr> \ No newline at end of file diff --git "a/docs/tags/\331\201\330\261\331\202-\330\250\333\214\331\206-static-linking-\331\210-dynamic-linking-\332\206\333\214\330\263\330\252/page/1/index.html" "b/docs/tags/\331\201\330\261\331\202-\330\250\333\214\331\206-static-linking-\331\210-dynamic-linking-\332\206\333\214\330\263\330\252/page/1/index.html" index f583f76..735179a 100644 --- "a/docs/tags/\331\201\330\261\331\202-\330\250\333\214\331\206-static-linking-\331\210-dynamic-linking-\332\206\333\214\330\263\330\252/page/1/index.html" +++ "b/docs/tags/\331\201\330\261\331\202-\330\250\333\214\331\206-static-linking-\331\210-dynamic-linking-\332\206\333\214\330\263\330\252/page/1/index.html" @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/%D9%81%D8%B1%D9%82-%D8%A8%DB%8C%D9%86-static-linking-%D9%88-dynamic-linking-%DA%86%DB%8C%D8%B3%D8%AA/ - - - - - - +https://bit-orbit.github.io/tags/%D9%81%D8%B1%D9%82-%D8%A8%DB%8C%D9%86-static-linking-%D9%88-dynamic-linking-%DA%86%DB%8C%D8%B3%D8%AA/ + \ No newline at end of file diff --git "a/docs/tags/\331\201\331\210\330\261\332\251-\330\250\331\210\331\205\330\250-\332\206\333\214\330\263\330\252/index.html" "b/docs/tags/\331\201\331\210\330\261\332\251-\330\250\331\210\331\205\330\250-\332\206\333\214\330\263\330\252/index.html" index a1906b5..187a677 100644 --- "a/docs/tags/\331\201\331\210\330\261\332\251-\330\250\331\210\331\205\330\250-\332\206\333\214\330\263\330\252/index.html" +++ "b/docs/tags/\331\201\331\210\330\261\332\251-\330\250\331\210\331\205\330\250-\332\206\333\214\330\263\330\252/index.html" @@ -1,559 +1,37 @@ - - - - -Tag: فورک بومب چیست - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

فورک بومب چیست

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: فورک بومب چیست - bit-orbit +

Tags

1 صفحه

فورک بومب چیست

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git "a/docs/tags/\331\201\331\210\330\261\332\251-\330\250\331\210\331\205\330\250-\332\206\333\214\330\263\330\252/index.xml" "b/docs/tags/\331\201\331\210\330\261\332\251-\330\250\331\210\331\205\330\250-\332\206\333\214\330\263\330\252/index.xml" index 1929138..58f3655 100644 --- "a/docs/tags/\331\201\331\210\330\261\332\251-\330\250\331\210\331\205\330\250-\332\206\333\214\330\263\330\252/index.xml" +++ "b/docs/tags/\331\201\331\210\330\261\332\251-\330\250\331\210\331\205\330\250-\332\206\333\214\330\263\330\252/index.xml" @@ -1,18 +1,4 @@ - - - - فورک بومب چیست on bit-orbit - https://bit-orbit.github.io/tags/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%88%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA/ - Recent content in فورک بومب چیست on bit-orbit - Hugo -- gohugo.io - fa - Wed, 27 Dec 2023 16:39:27 +0330 - فورک بمب چیست و چطور کار می‌کند؟ - https://bit-orbit.github.io/p/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B7%D9%88%D8%B1-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF/ - Wed, 27 Dec 2023 16:39:27 +0330 - - https://bit-orbit.github.io/p/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B7%D9%88%D8%B1-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF/ - <img src="https://bit-orbit.github.io/images/post/fork_bomb.jpg" alt="Featured image of post فورک بمب چیست و چطور کار می‌کند؟" /><p>اوایل که لینوکس نصب کرده بودم کامند هایی که توی +فورک بومب چیست on bit-orbithttps://bit-orbit.github.io/tags/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%88%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA/Recent content in فورک بومب چیست on bit-orbitHugo -- gohugo.iofaWed, 27 Dec 2023 16:39:27 +0330فورک بمب چیست و چطور کار می‌کند؟https://bit-orbit.github.io/p/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B7%D9%88%D8%B1-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF/Wed, 27 Dec 2023 16:39:27 +0330https://bit-orbit.github.io/p/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D8%B7%D9%88%D8%B1-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF/<img src="https://bit-orbit.github.io/images/post/fork_bomb.jpg" alt="Featured image of post فورک بمب چیست و چطور کار می‌کند؟" /><p>اوایل که لینوکس نصب کرده بودم کامند هایی که توی فروم های مختلف می‌دیدم و برای من جدید بود را دوست داشتم یاد بگیرم و بدانم کار آنها چی هست، برای همین هر کامندی را که می‌دیدم در @@ -21,306 +7,283 @@ هر کامندی اشتباهه بود. یکی از این کامند ها که اجرا کرده بودم، به اسم فورک بمب (fork bomb) -شناخته می‌شود. کامند به این صورت هست</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>:<span class="p">&amp;</span> <span class="o">}</span><span class="p">;</span>: -</span></span></code></pre></td></tr></table> -</div> -</div><p>اگر این کامند را اجرا کنید(امیدوارم تا الان نکرده باشید) تقریبا زیر یک دقیقه سیستم شما -هنگ می‌کند و مجبور می‌شوید سیستم را ریبوت کنید.</p> -<hr> -<p>توی این پست ساختار این کامند را تشریح می‌کنم و باهم +شناخته می‌شود. کامند به این صورت هست</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>:<span class="p">&amp;</span> <span class="o">}</span><span class="p">;</span>: +</span></span></code></pre></td></tr></table> +</div> +</div><p>اگر این کامند را اجرا کنید(امیدوارم تا الان نکرده باشید) تقریبا زیر یک دقیقه سیستم شما +هنگ می‌کند و مجبور می‌شوید سیستم را ریبوت کنید.</p> +<hr> +<p>توی این پست ساختار این کامند را تشریح می‌کنم و باهم کمی bash -یاد می‌گیریم.</p> -<p>بیایید اول با مفهوم +یاد می‌گیریم.</p> +<p>بیایید اول با مفهوم recustion آشنا بشیم، زمانی که یک قطعه کد خودش اجرا کند، recusion می‌گویم. مثلا شما یک فانکشن می‌نویسید به اسم -<em>fn</em> +<em>fn</em> و توی بدنه فانکشن فقط خود همین فانکشن را صدا می‌‌کنید، به این کار call recursion گفته می‌شود. فورک بمب دقیقا همین کار را می‌کند. به این -معنی که خودش را دائم اجرا می‌کند!</p> -<p>به این فکر کنید که وقتی یک پراسس خودش را اجرا می‌کند +معنی که خودش را دائم اجرا می‌کند!</p> +<p>به این فکر کنید که وقتی یک پراسس خودش را اجرا می‌کند ،مجدد پراسس های اجرا شده توسط اون هم دائم خودشان را اجرا می‌کنند، و دوباره هر پروسه‌ای که اجرا می‌شود بازم خودش را اجرا می‌کند و این روند تا زمانی که رم و پردازنده سیستم تحمل -داشته باشد ادامه دارد.</p> -<blockquote> -<p>درختی که می‌بینید را اجرای فورک بمب درنظر بگیرید، +داشته باشد ادامه دارد.</p> +<blockquote> +<p>درختی که می‌بینید را اجرای فورک بمب درنظر بگیرید، هر ستاره یک پروسه جدید است که توسط پروسه قبلی اجرا شده، و خودش هم دو پروسه جدید باز می‌کند و هر یک از پروسه ها -هم همین روند را ادامه می‌دهند.</p> -</blockquote> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt">10 -</span><span class="lnt">11 -</span><span class="lnt">12 -</span><span class="lnt">13 -</span><span class="lnt">14 -</span><span class="lnt">15 -</span><span class="lnt">16 -</span><span class="lnt">17 -</span><span class="lnt">18 -</span><span class="lnt">19 -</span><span class="lnt">20 -</span><span class="lnt">21 -</span><span class="lnt">22 -</span><span class="lnt">23 -</span><span class="lnt">24 -</span><span class="lnt">25 -</span><span class="lnt">26 -</span><span class="lnt">27 -</span><span class="lnt">28 -</span><span class="lnt">29 -</span><span class="lnt">30 -</span><span class="lnt">31 -</span><span class="lnt">32 -</span><span class="lnt">33 -</span><span class="lnt">34 -</span><span class="lnt">35 -</span><span class="lnt">36 -</span><span class="lnt">37 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w">   </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w">   </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> -</span></span></span></code></pre></td></tr></table> -</div> -</div><p>من برای اینکه سیستم‌ خودم هنگ نکند فورک بمب را روی داکر +هم همین روند را ادامه می‌دهند.</p> +</blockquote> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span><span class="lnt">19 +</span><span class="lnt">20 +</span><span class="lnt">21 +</span><span class="lnt">22 +</span><span class="lnt">23 +</span><span class="lnt">24 +</span><span class="lnt">25 +</span><span class="lnt">26 +</span><span class="lnt">27 +</span><span class="lnt">28 +</span><span class="lnt">29 +</span><span class="lnt">30 +</span><span class="lnt">31 +</span><span class="lnt">32 +</span><span class="lnt">33 +</span><span class="lnt">34 +</span><span class="lnt">35 +</span><span class="lnt">36 +</span><span class="lnt">37 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w">   </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w">   </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="o">*</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><p>من برای اینکه سیستم‌ خودم هنگ نکند فورک بمب را روی داکر اجرا کردم و خب حتی یک ثانیه هم طول نکشید و آن کانتینر -کاملا هنگ کرد.</p> -<blockquote> -<p>قبل از اجرا -<a class="link" href="https://bit-orbit.github.io/images/post/forkbomb_docker0.jpg" ><img src="https://bit-orbit.github.io/images/post/forkbomb_docker0.jpg" - - - - loading="lazy" - - alt="forkbomb on docker" - - -></a></p> -</blockquote> -<blockquote> -<p>زمان اجرا -<a class="link" href="https://bit-orbit.github.io/images/post/forkbomb_docker.jpg" ><img src="https://bit-orbit.github.io/images/post/forkbomb_docker.jpg" - - - - loading="lazy" - - alt="forkbomb on docker" - - -></a></p> -</blockquote> -<hr> -<p>بیایید وارد کد بشیم، این علامت ها و کاراکتر ها چی هستند؟</p> -<!-- برای تعریف یک فانکشن توی +کاملا هنگ کرد.</p> +<blockquote> +<p>قبل از اجرا +<a class="link" href="https://bit-orbit.github.io/images/post/forkbomb_docker0.jpg" ><img src="https://bit-orbit.github.io/images/post/forkbomb_docker0.jpg" +loading="lazy" +alt="forkbomb on docker" +></a></p> +</blockquote> +<blockquote> +<p>زمان اجرا +<a class="link" href="https://bit-orbit.github.io/images/post/forkbomb_docker.jpg" ><img src="https://bit-orbit.github.io/images/post/forkbomb_docker.jpg" +loading="lazy" +alt="forkbomb on docker" +></a></p> +</blockquote> +<hr> +<p>بیایید وارد کد بشیم، این علامت ها و کاراکتر ها چی هستند؟</p> +<!-- برای تعریف یک فانکشن توی bash -ما به این صورت عمل می‌کنیم که اول اسم فانکشن بعد پرانتز -و بعد کرلی براکت(توی فارسی می‌گیم آکولاد) و داخل کرلی +ما به این صورت عمل می‌کنیم که اول اسم فانکشن بعد پرانتز +و بعد کرلی براکت(توی فارسی می‌گیم آکولاد) و داخل کرلی براکت ما قطعه کد را می‌نویسیم. مثلا برای فانکشنی که یک اسم را روی صفحه چاپ کنه به این صورت عمل می‌کنیم - ```bash -pname(){ echo 'foo'; } -``` --> -<p>اگه دقت کنید اولین کاراکتر فورک بمب، علامت -<code>:</code> +pname(){ echo 'foo'; } +``` --> +<p>اگه دقت کنید اولین کاراکتر فورک بمب، علامت +<code>:</code> است. این علامت اسم فانکشن ما است. برخلاف قانون تعریف نام برای متغییر ها توی bash، می‌توانیم از کاراتر های یونیکد هم برای تعریف نام فانکشن استفاده کنیم، مثلا یک -کاراکتر چینی یا حتی ایموجی!</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span><span class="lnt">3 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">雨<span class="o">(){</span> <span class="nb">echo</span> <span class="s1">&#39;rain&#39;</span><span class="p">;</span> <span class="o">}</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">❤️<span class="o">(){</span> <span class="nb">echo</span> <span class="s1">&#39;love&#39;</span><span class="p">;</span> <span class="o">}</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>خب در ادامه علامت های -<code>()</code> +کاراکتر چینی یا حتی ایموجی!</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">雨<span class="o">(){</span> <span class="nb">echo</span> <span class="s1">&#39;rain&#39;</span><span class="p">;</span> <span class="o">}</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">❤️<span class="o">(){</span> <span class="nb">echo</span> <span class="s1">&#39;love&#39;</span><span class="p">;</span> <span class="o">}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>خب در ادامه علامت های +<code>()</code> را می‌بینیم، توی bash برای تعریف فانکشن قبل از اسم فانکشن هیچ کلمه کلیدی مثل fn, def, void و &hellip; نیاز نیست، فقط بجای آن باید -<strong>بعد از اسم فانکشن</strong> -پرانتز ها را بگذارید.</p> -<p>مثل خیلی از زبان های برنامه نویسی، بدنه فانکشن توی -کرلی براکت تعریف می‌شود.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){}</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>پس تا اینجا ما یک فانکشن ساده با نام -<code>:</code> -تعریف کردیم.</p> -<p>داخل بدنه این فانکشن، اسمی که برای فانکشن قرار دادیم +<strong>بعد از اسم فانکشن</strong> +پرانتز ها را بگذارید.</p> +<p>مثل خیلی از زبان های برنامه نویسی، بدنه فانکشن توی +کرلی براکت تعریف می‌شود.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>پس تا اینجا ما یک فانکشن ساده با نام +<code>:</code> +تعریف کردیم.</p> +<p>داخل بدنه این فانکشن، اسمی که برای فانکشن قرار دادیم همان -<code>:</code> +<code>:</code> را می‌نویسیم. با اینکار دقیقا call recursion را انجام دادیم، و باعث شدیم که برنامه خودش را -توی هر اجرا مجدد اجرا کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> : <span class="o">}</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>دقت کنید توی سینتکس +توی هر اجرا مجدد اجرا کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> : <span class="o">}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>دقت کنید توی سینتکس bash -حتما باید یک فاصله برای کدی که داخلی کرلی براکت می‌نویسم قرار بدیم</p> -</blockquote> -<p>علامت -<code>|</code> +حتما باید یک فاصله برای کدی که داخلی کرلی براکت می‌نویسم قرار بدیم</p> +</blockquote> +<p>علامت +<code>|</code> به اسم پایپ شناخته می‌شود، وظیفه این علامت دادن خروجی یک کامند بعنوان ورودی به یک کامند دیگر هست، حلا دقت کنید که ما خروجی اجرای -<code>:</code> -را به خودش می‌دهیم. دقیقا به این شکل</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>: <span class="o">}</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>با این علامت هر پروسه دو بار پروسه جدیدی از خودش می‌سازد +<code>:</code> +را به خودش می‌دهیم. دقیقا به این شکل</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>: <span class="o">}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>با این علامت هر پروسه دو بار پروسه جدیدی از خودش می‌سازد اگر از این علامت استفاده نکنیم، پروسه ما به صورت خطی خودش را اجرا خواهد کرد، اینطوری کد ما با یک حلقه -<code>while</code> -تفاوتی زیادی نخواهد داشت.</p> -<p>علامت -<code>&amp;</code> +<code>while</code> +تفاوتی زیادی نخواهد داشت.</p> +<p>علامت +<code>&amp;</code> اجرای یک کامند را به بکگراند(پس زمینه) می‌برد. برای مثال بعد از اجرای یک دستور باید صبر کنید پروسه آن تمام شود تا بتوانید دستور بعدی را اجرا کنید. ولی اگر از علامت -<code>&amp;</code> +<code>&amp;</code> بعد از هر دستور استفاده کنید، دیگر نیاز نیست صبر کنید تا روند اجرای آن برنامه تمام شود. درواقع با علامت -<code>&amp;</code> +<code>&amp;</code> شما می‌توانید هر برنامه را در بکگراند اجرا کنید. حالا توی فورک بمب این علامت باعث می‌شود تا فانشکنی که اجرا کردین درحالی که کارش به اتمام -نرسیده است، فانکشن بعدی اجرا بشود.</p> -<p><img src="https://bit-orbit.github.io/images/post/forkbomb_and.jpg" - - - - loading="lazy" - - alt="& in bash" - - -></p> -<p>و بعد علامت -<code>;</code> +نرسیده است، فانکشن بعدی اجرا بشود.</p> +<p><img src="https://bit-orbit.github.io/images/post/forkbomb_and.jpg" +loading="lazy" +alt="& in bash" +></p> +<p>و بعد علامت +<code>;</code> را می‌بینیم. این علامت کامند ها را از هم جدا می‌کند. مثلا شما می‌توانید چند کامند مختلف را توی یک خط بنویسید. توی فورک بمب این علامت فانکشنی که تعریف کردین را از -دستور بعدی(که اجرا کننده اون فانکشن هست)جدا می‌کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s1">&#39;foo&#39;</span><span class="p">;</span> <span class="nb">echo</span> <span class="s1">&#39;bar&#39;</span><span class="p">;</span> <span class="nb">echo</span> <span class="s1">&#39;baz&#39;</span><span class="p">;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>آخرین علامتی که توی فورک بمب داریم همون علامت -<code>:</code> +دستور بعدی(که اجرا کننده اون فانکشن هست)جدا می‌کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s1">&#39;foo&#39;</span><span class="p">;</span> <span class="nb">echo</span> <span class="s1">&#39;bar&#39;</span><span class="p">;</span> <span class="nb">echo</span> <span class="s1">&#39;baz&#39;</span><span class="p">;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>آخرین علامتی که توی فورک بمب داریم همون علامت +<code>:</code> یا همون اسمی هست که برای فانکشن قرار دادیم. خیلی ساده توی bash -برای اجرای یک فانکشن فقط اسم‌ش را می‌نویسیم.</p> -<p>و تمام! ما یاد گرفتیم چطور فورک بمب رو بنویسیم و دیگه -نیاز نیست حفظ‌ش کنیم :)</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>:<span class="p">&amp;</span> <span class="o">}</span><span class="p">;</span>: -</span></span></code></pre></td></tr></table> -</div> -</div> - - - - +برای اجرای یک فانکشن فقط اسم‌ش را می‌نویسیم.</p> +<p>و تمام! ما یاد گرفتیم چطور فورک بمب رو بنویسیم و دیگه +نیاز نیست حفظ‌ش کنیم :)</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:<span class="o">(){</span> :<span class="p">|</span>:<span class="p">&amp;</span> <span class="o">}</span><span class="p">;</span>: +</span></span></code></pre></td></tr></table> +</div> +</div> \ No newline at end of file diff --git "a/docs/tags/\331\201\331\210\330\261\332\251-\330\250\331\210\331\205\330\250-\332\206\333\214\330\263\330\252/page/1/index.html" "b/docs/tags/\331\201\331\210\330\261\332\251-\330\250\331\210\331\205\330\250-\332\206\333\214\330\263\330\252/page/1/index.html" index 5ef33fd..cd6f84c 100644 --- "a/docs/tags/\331\201\331\210\330\261\332\251-\330\250\331\210\331\205\330\250-\332\206\333\214\330\263\330\252/page/1/index.html" +++ "b/docs/tags/\331\201\331\210\330\261\332\251-\330\250\331\210\331\205\330\250-\332\206\333\214\330\263\330\252/page/1/index.html" @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%88%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA/ - - - - - - +https://bit-orbit.github.io/tags/%D9%81%D9%88%D8%B1%DA%A9-%D8%A8%D9%88%D9%85%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA/ + \ No newline at end of file diff --git "a/docs/tags/\331\204\330\247\332\251-\332\251\330\261\330\257\331\206-\331\201\330\247\333\214\331\204-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263-\332\206\333\214\330\263\330\252/index.html" "b/docs/tags/\331\204\330\247\332\251-\332\251\330\261\330\257\331\206-\331\201\330\247\333\214\331\204-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263-\332\206\333\214\330\263\330\252/index.html" index 2b7ed64..a6930c0 100644 --- "a/docs/tags/\331\204\330\247\332\251-\332\251\330\261\330\257\331\206-\331\201\330\247\333\214\331\204-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263-\332\206\333\214\330\263\330\252/index.html" +++ "b/docs/tags/\331\204\330\247\332\251-\332\251\330\261\330\257\331\206-\331\201\330\247\333\214\331\204-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263-\332\206\333\214\330\263\330\252/index.html" @@ -1,559 +1,37 @@ - - - - -Tag: لاک کردن فایل در لینوکس چیست؟ - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

لاک کردن فایل در لینوکس چیست؟

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: لاک کردن فایل در لینوکس چیست؟ - bit-orbit +

Tags

1 صفحه

لاک کردن فایل در لینوکس چیست؟

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git "a/docs/tags/\331\204\330\247\332\251-\332\251\330\261\330\257\331\206-\331\201\330\247\333\214\331\204-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263-\332\206\333\214\330\263\330\252/index.xml" "b/docs/tags/\331\204\330\247\332\251-\332\251\330\261\330\257\331\206-\331\201\330\247\333\214\331\204-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263-\332\206\333\214\330\263\330\252/index.xml" index 641da06..6989b7f 100644 --- "a/docs/tags/\331\204\330\247\332\251-\332\251\330\261\330\257\331\206-\331\201\330\247\333\214\331\204-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263-\332\206\333\214\330\263\330\252/index.xml" +++ "b/docs/tags/\331\204\330\247\332\251-\332\251\330\261\330\257\331\206-\331\201\330\247\333\214\331\204-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263-\332\206\333\214\330\263\330\252/index.xml" @@ -1,186 +1,161 @@ - - - - لاک کردن فایل در لینوکس چیست؟ on bit-orbit - https://bit-orbit.github.io/tags/%D9%84%D8%A7%DA%A9-%DA%A9%D8%B1%D8%AF%D9%86-%D9%81%D8%A7%DB%8C%D9%84-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA/ - Recent content in لاک کردن فایل در لینوکس چیست؟ on bit-orbit - Hugo -- gohugo.io - fa - Fri, 09 Feb 2024 01:49:42 +0330 - Linux File Locking چیست؟ - https://bit-orbit.github.io/p/linux-file-locking-%DA%86%DB%8C%D8%B3%D8%AA/ - Fri, 09 Feb 2024 01:49:42 +0330 - - https://bit-orbit.github.io/p/linux-file-locking-%DA%86%DB%8C%D8%B3%D8%AA/ - <img src="https://bit-orbit.github.io/images/post/flilock.jpeg" alt="Featured image of post Linux File Locking چیست؟" /><p>بیایید قبل از اینکه راه حل را ببینیم، اول مشکل را دقیق تر برسی کنیم. +لاک کردن فایل در لینوکس چیست؟ on bit-orbithttps://bit-orbit.github.io/tags/%D9%84%D8%A7%DA%A9-%DA%A9%D8%B1%D8%AF%D9%86-%D9%81%D8%A7%DB%8C%D9%84-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA/Recent content in لاک کردن فایل در لینوکس چیست؟ on bit-orbitHugo -- gohugo.iofaFri, 09 Feb 2024 01:49:42 +0330Linux File Locking چیست؟https://bit-orbit.github.io/p/linux-file-locking-%DA%86%DB%8C%D8%B3%D8%AA/Fri, 09 Feb 2024 01:49:42 +0330https://bit-orbit.github.io/p/linux-file-locking-%DA%86%DB%8C%D8%B3%D8%AA/<img src="https://bit-orbit.github.io/images/post/flilock.jpeg" alt="Featured image of post Linux File Locking چیست؟" /><p>بیایید قبل از اینکه راه حل را ببینیم، اول مشکل را دقیق تر برسی کنیم. به این فکر کنید که شما یک فایلی دارید که شامل یک عدد است که اشاره می‌کند به مقدار اعتباری که کاربر در حسابش دارد. حالا اگر قرار باشد یک پورسه اون مقدار را بر اساس ارائه سرویسی، از حساب کاربر کم کند، و پروسه دیگری به دلیل افزایش اعتبار، مقداری را به حساب -کاربر اضافه کند، چه مشکلاتی اتفاق می‌افتد؟</p> -<p>برای اینکه دقیق تر بشیم، این روند رو باهم پیش می‌بریم. +کاربر اضافه کند، چه مشکلاتی اتفاق می‌افتد؟</p> +<p>برای اینکه دقیق تر بشیم، این روند رو باهم پیش می‌بریم. فرض کنید فایلی به اسم amount.txt مقدار 100 داخلش نوشته شده است. و دو پروسه کم و اضافه کردن را اجرا می‌کنیم. توی این مثال،‌ ما می‌خواهیم مقدار 20 از حساب کاربر کم و مقدار 50 به حساب کاربر -اضافه کنیم، پس ما انتظار داریم در انتها فایل ما مقدار 130 را درونش ذخیره کرده باشد.</p> -<ul> -<li>پروسه اول فایل را می‌خواند و مقدار 100 را در حاظه‌اش نگه می‌دارد</li> -<li>پروسه دوم فایل را می‌خواند و مقدار 100 را در حاظه‌اش نگه می‌دارد</li> -<li>پروسه اول مقدار 20 را از 100 کم می‌کند و مقدار 80 را در حافظه ذخیره می‌کند</li> -<li>پروسه دوم مقدار 50 را به 100 اضافه می‌کند و مقدار 150 را در حافظه ذخیره می‌کند</li> -<li>پروسه اول مقدار 80 را در فایل ذخیره می‌کند</li> -<li>پروسه دوم مقدار 150 را در فایل ذخیره می‌کند</li> -</ul> -<p>همینطور که همه ما انتظار داشتیم، ما باید در این فایل مقدار 130 را ذخیره می‌کردیم، +اضافه کنیم، پس ما انتظار داریم در انتها فایل ما مقدار 130 را درونش ذخیره کرده باشد.</p> +<ul> +<li>پروسه اول فایل را می‌خواند و مقدار 100 را در حاظه‌اش نگه می‌دارد</li> +<li>پروسه دوم فایل را می‌خواند و مقدار 100 را در حاظه‌اش نگه می‌دارد</li> +<li>پروسه اول مقدار 20 را از 100 کم می‌کند و مقدار 80 را در حافظه ذخیره می‌کند</li> +<li>پروسه دوم مقدار 50 را به 100 اضافه می‌کند و مقدار 150 را در حافظه ذخیره می‌کند</li> +<li>پروسه اول مقدار 80 را در فایل ذخیره می‌کند</li> +<li>پروسه دوم مقدار 150 را در فایل ذخیره می‌کند</li> +</ul> +<p>همینطور که همه ما انتظار داشتیم، ما باید در این فایل مقدار 130 را ذخیره می‌کردیم، اما پروسه های ما به دلیل اینکه هیچ همکاری و یا هیچ مکانیزمی دیگری ندارند که این مقدار ها را به یکدیگر اطلاع دهند، مشکل -<a class="link" href="https://en.wikipedia.org/wiki/Race_condition#Software" target="_blank" rel="noopener" - >Race condition</a> -رخ می‌دهد.</p> -<p>یکی از راه حل های این مشکل +<a class="link" href="https://en.wikipedia.org/wiki/Race_condition#Software" target="_blank" rel="noopener" +>Race condition</a> +رخ می‌دهد.</p> +<p>یکی از راه حل های این مشکل lock کردن فایل توسط هر پروسه است، که به این کار file locking -گفته می‌شود.</p> -<p><strong>file locking</strong> -یک مکانیزم برای کنترل دسترسی چندین پروسه به یک فایل است.</p> -<blockquote> -<p>توی لینوکس یکی از دستورات خطرناکی که داریم دستور +گفته می‌شود.</p> +<p><strong>file locking</strong> +یک مکانیزم برای کنترل دسترسی چندین پروسه به یک فایل است.</p> +<blockquote> +<p>توی لینوکس یکی از دستورات خطرناکی که داریم دستور sudo rm -rf / است. وقتی این دستور را اجرا کنیم کل فایل های لینوکس ما حذف می‌شود. دلیل اینکار این است که لینوکس به صورت پیشفرض فایل های باز شده را lock -نمی‌کند.</p> -</blockquote> -<p>با اینحال لینوکس دو مکانیزم مختلف -<em>advisory</em> و <em>mandatory</em> -را پشتیبانی می‌کند.</p> -<blockquote> -<p>توی این پست بیشتر تمرکز من روی مکانیزم +نمی‌کند.</p> +</blockquote> +<p>با اینحال لینوکس دو مکانیزم مختلف +<em>advisory</em> و <em>mandatory</em> +را پشتیبانی می‌کند.</p> +<blockquote> +<p>توی این پست بیشتر تمرکز من روی مکانیزم advisory locking(مشورتی) -است.</p> -</blockquote> -<p>این روش به این شکل عمل می‌کند که هیچ پروسه‌ای مجبور به اجرای این روش نیست و اگر حتی +است.</p> +</blockquote> +<p>این روش به این شکل عمل می‌کند که هیچ پروسه‌ای مجبور به اجرای این روش نیست و اگر حتی فایل توسط یک پروسه‌ای lock شده باشد، باز هم پروسه های دیگر می‌توانند به lock بودن فایل اهمیت ندهند و مقدار آن را تغییر دهند. این اتفاق به این دلیل می‌افتد که advisory lock -توسط سیستم عامل و یا فایل سیستم انجام نمی‌شود.</p> -<p>خب بیایید با یک مثال این فرایند را برسی کنیم. مثل مثال قبلی فرض کنید ما مقدار 100 +توسط سیستم عامل و یا فایل سیستم انجام نمی‌شود.</p> +<p>خب بیایید با یک مثال این فرایند را برسی کنیم. مثل مثال قبلی فرض کنید ما مقدار 100 را داخل فایل amount.txt -داریم و می‌خواهیم مقدار 20 از آن کم و مقدار 50 به آن اضافه کنیم.</p> -<ul> -<li>پروسه اول قبل از خواندن فایل، فایل را لاک می‌کند</li> -<li>پروسه دوم برای لاک کردن فایل اقدام می‌کند و از جایی که پروسه اول از پیش فایل را لاک کرده است، برای آزاد شدن لاک صبر می‌کند</li> -<li>پروسه اول مقدار 20 را از 100 کم می‌کند و مقدار 80 را درون فایل می‌نویسد</li> -<li>پروسه اول لاک فایل را آزاد می‌کند.</li> -<li>پروسه دوم فایل را لاک و مقدار جدید 80 را از فایل می‌خواند</li> -<li>پروسه دوم مقدار 50 را به 80 اضافه و مقدار 120 را درون فایل می‌نویسد</li> -<li>پروسه دوم لاک فایل را آزاد می‌کند تا پروسه های دیگر بتوانند با فایل کار کنند.</li> -</ul> -<hr> -<p>اگر شما می‌خواهید این مکانیزم را روی یک فایل اجرا کنید، دستور +داریم و می‌خواهیم مقدار 20 از آن کم و مقدار 50 به آن اضافه کنیم.</p> +<ul> +<li>پروسه اول قبل از خواندن فایل، فایل را لاک می‌کند</li> +<li>پروسه دوم برای لاک کردن فایل اقدام می‌کند و از جایی که پروسه اول از پیش فایل را لاک کرده است، برای آزاد شدن لاک صبر می‌کند</li> +<li>پروسه اول مقدار 20 را از 100 کم می‌کند و مقدار 80 را درون فایل می‌نویسد</li> +<li>پروسه اول لاک فایل را آزاد می‌کند.</li> +<li>پروسه دوم فایل را لاک و مقدار جدید 80 را از فایل می‌خواند</li> +<li>پروسه دوم مقدار 50 را به 80 اضافه و مقدار 120 را درون فایل می‌نویسد</li> +<li>پروسه دوم لاک فایل را آزاد می‌کند تا پروسه های دیگر بتوانند با فایل کار کنند.</li> +</ul> +<hr> +<p>اگر شما می‌خواهید این مکانیزم را روی یک فایل اجرا کنید، دستور flock -برای شما اینکار را خواهد کرد.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">flock <span class="o">[</span>options<span class="o">]</span> file<span class="p">|</span>directory <span class="nb">command</span> <span class="o">[</span>arguments<span class="o">]</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>این کامند در حالت عادی از شما یک فایل و یک دستور خواهد گرفت و مکانیزم +برای شما اینکار را خواهد کرد.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">flock <span class="o">[</span>options<span class="o">]</span> file<span class="p">|</span>directory <span class="nb">command</span> <span class="o">[</span>arguments<span class="o">]</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>این کامند در حالت عادی از شما یک فایل و یک دستور خواهد گرفت و مکانیزم advisory lock -را روی ان فایل اجرا خواهد کرد.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">flock /tmp/fli <span class="nb">echo</span> 12&gt;/tmp/fli -</span></span></code></pre></td></tr></table> -</div> -</div><p>برای اینکه روند را بهتر درک کنیم یک فایل +را روی ان فایل اجرا خواهد کرد.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">flock /tmp/fli <span class="nb">echo</span> 12&gt;/tmp/fli +</span></span></code></pre></td></tr></table> +</div> +</div><p>برای اینکه روند را بهتر درک کنیم یک فایل bash -می‌نویسیم که بتوانیم مثال اولیه را روی آن اجرا کنیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt">10 -</span><span class="lnt">11 -</span><span class="lnt">12 -</span><span class="lnt">13 -</span><span class="lnt">14 -</span><span class="lnt">15 -</span><span class="lnt">16 -</span><span class="lnt">17 -</span><span class="lnt">18 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="cp">#!/bin/bash -</span></span></span><span class="line"><span class="cl"><span class="cp"></span><span class="nv">file</span><span class="o">=</span><span class="s2">&#34;balance.dat&#34;</span> -</span></span><span class="line"><span class="cl"><span class="nv">value</span><span class="o">=</span><span class="k">$(</span>cat <span class="nv">$file</span><span class="k">)</span> -</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Read current balance:</span><span class="nv">$value</span><span class="s2">&#34;</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl"><span class="c1">#sleep 10 seconds to simulate business calculation</span> -</span></span><span class="line"><span class="cl"><span class="nv">progress</span><span class="o">=</span><span class="m">10</span> -</span></span><span class="line"><span class="cl"><span class="k">while</span> <span class="o">[[</span> <span class="nv">$progress</span> -lt <span class="m">101</span> <span class="o">]]</span><span class="p">;</span> <span class="k">do</span> -</span></span><span class="line"><span class="cl"> <span class="nb">echo</span> -n -e <span class="s2">&#34;\033[77DCalculating new balance..</span><span class="nv">$progress</span><span class="s2">%&#34;</span> -</span></span><span class="line"><span class="cl"> sleep <span class="m">1</span> -</span></span><span class="line"><span class="cl"> <span class="nv">progress</span><span class="o">=</span><span class="k">$((</span><span class="m">10</span><span class="o">+</span>progress<span class="k">))</span> -</span></span><span class="line"><span class="cl"><span class="k">done</span> -</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;&#34;</span> -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl"><span class="nv">value</span><span class="o">=</span><span class="k">$((</span>value+<span class="nv">$1</span><span class="k">))</span> -</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Write new balance (</span><span class="nv">$value</span><span class="s2">) back to </span><span class="nv">$file</span><span class="s2">.&#34;</span> -</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="nv">$value</span> &gt; <span class="s2">&#34;</span><span class="nv">$file</span><span class="s2">&#34;</span> -</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Done.&#34;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>ما این فایل را همزمان با دو ترمینال اجرا می‌کنیم.</p> -<p><img src="https://bit-orbit.github.io/images/post/advisory_lock.gif" - - - - loading="lazy" - - alt="advisory lock" - - -></p> -<p>همینطور که می‌بینید پروسه دوم برای اینکه محتوای فایل را تغییر دهد، باید صبر کند تا لاک فایل -آزاد شود.</p> -<hr> -<p>این پست خلاصه‌ای بود از -<a class="link" href="https://www.baeldung.com/linux/file-locking" target="_blank" rel="noopener" - >این بلاگ</a> +می‌نویسیم که بتوانیم مثال اولیه را روی آن اجرا کنیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="cp">#!/bin/bash +</span></span></span><span class="line"><span class="cl"><span class="cp"></span><span class="nv">file</span><span class="o">=</span><span class="s2">&#34;balance.dat&#34;</span> +</span></span><span class="line"><span class="cl"><span class="nv">value</span><span class="o">=</span><span class="k">$(</span>cat <span class="nv">$file</span><span class="k">)</span> +</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Read current balance:</span><span class="nv">$value</span><span class="s2">&#34;</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="c1">#sleep 10 seconds to simulate business calculation</span> +</span></span><span class="line"><span class="cl"><span class="nv">progress</span><span class="o">=</span><span class="m">10</span> +</span></span><span class="line"><span class="cl"><span class="k">while</span> <span class="o">[[</span> <span class="nv">$progress</span> -lt <span class="m">101</span> <span class="o">]]</span><span class="p">;</span> <span class="k">do</span> +</span></span><span class="line"><span class="cl"> <span class="nb">echo</span> -n -e <span class="s2">&#34;\033[77DCalculating new balance..</span><span class="nv">$progress</span><span class="s2">%&#34;</span> +</span></span><span class="line"><span class="cl"> sleep <span class="m">1</span> +</span></span><span class="line"><span class="cl"> <span class="nv">progress</span><span class="o">=</span><span class="k">$((</span><span class="m">10</span><span class="o">+</span>progress<span class="k">))</span> +</span></span><span class="line"><span class="cl"><span class="k">done</span> +</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;&#34;</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="nv">value</span><span class="o">=</span><span class="k">$((</span>value+<span class="nv">$1</span><span class="k">))</span> +</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Write new balance (</span><span class="nv">$value</span><span class="s2">) back to </span><span class="nv">$file</span><span class="s2">.&#34;</span> +</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="nv">$value</span> &gt; <span class="s2">&#34;</span><span class="nv">$file</span><span class="s2">&#34;</span> +</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Done.&#34;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>ما این فایل را همزمان با دو ترمینال اجرا می‌کنیم.</p> +<p><img src="https://bit-orbit.github.io/images/post/advisory_lock.gif" +loading="lazy" +alt="advisory lock" +></p> +<p>همینطور که می‌بینید پروسه دوم برای اینکه محتوای فایل را تغییر دهد، باید صبر کند تا لاک فایل +آزاد شود.</p> +<hr> +<p>این پست خلاصه‌ای بود از +<a class="link" href="https://www.baeldung.com/linux/file-locking" target="_blank" rel="noopener" +>این بلاگ</a> که هر دو نوع advisory lock و mandatory lock -را توضیح می‌دهد.</p> -<p>برای من سوال بود که من چطور می‌توانم مکانیزمی که +را توضیح می‌دهد.</p> +<p>برای من سوال بود که من چطور می‌توانم مکانیزمی که flock استفاده می‌کند را در برنامه های خودم پیاده سازی کنم، و خب نتیجه این بود که معمولا برای advisory lock هر زبانی یک کتابخانه استاندار دارد توی -<a class="link" href="https://docs.python.org/3/library/fcntl.html" target="_blank" rel="noopener" - >پایتون کتابخانه</a> -<code>fcntl</code> -اینکار را انجام می‌دهد.</p> - - - - - +<a class="link" href="https://docs.python.org/3/library/fcntl.html" target="_blank" rel="noopener" +>پایتون کتابخانه</a> +<code>fcntl</code> +اینکار را انجام می‌دهد.</p> \ No newline at end of file diff --git "a/docs/tags/\331\204\330\247\332\251-\332\251\330\261\330\257\331\206-\331\201\330\247\333\214\331\204-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263-\332\206\333\214\330\263\330\252/page/1/index.html" "b/docs/tags/\331\204\330\247\332\251-\332\251\330\261\330\257\331\206-\331\201\330\247\333\214\331\204-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263-\332\206\333\214\330\263\330\252/page/1/index.html" index d7fdb79..0a8d5f3 100644 --- "a/docs/tags/\331\204\330\247\332\251-\332\251\330\261\330\257\331\206-\331\201\330\247\333\214\331\204-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263-\332\206\333\214\330\263\330\252/page/1/index.html" +++ "b/docs/tags/\331\204\330\247\332\251-\332\251\330\261\330\257\331\206-\331\201\330\247\333\214\331\204-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263-\332\206\333\214\330\263\330\252/page/1/index.html" @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/%D9%84%D8%A7%DA%A9-%DA%A9%D8%B1%D8%AF%D9%86-%D9%81%D8%A7%DB%8C%D9%84-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA/ - - - - - - +https://bit-orbit.github.io/tags/%D9%84%D8%A7%DA%A9-%DA%A9%D8%B1%D8%AF%D9%86-%D9%81%D8%A7%DB%8C%D9%84-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%DA%86%DB%8C%D8%B3%D8%AA/ + \ No newline at end of file diff --git "a/docs/tags/\331\205\330\247\330\252\330\261\333\214\332\251\330\263_\332\206\333\214\330\263\330\252/index.html" "b/docs/tags/\331\205\330\247\330\252\330\261\333\214\332\251\330\263_\332\206\333\214\330\263\330\252/index.html" index d2bd594..10bf731 100644 --- "a/docs/tags/\331\205\330\247\330\252\330\261\333\214\332\251\330\263_\332\206\333\214\330\263\330\252/index.html" +++ "b/docs/tags/\331\205\330\247\330\252\330\261\333\214\332\251\330\263_\332\206\333\214\330\263\330\252/index.html" @@ -1,559 +1,37 @@ - - - - -Tag: ماتریکس_چیست - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

ماتریکس_چیست

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: ماتریکس_چیست - bit-orbit + \ No newline at end of file diff --git "a/docs/tags/\331\205\330\247\330\252\330\261\333\214\332\251\330\263_\332\206\333\214\330\263\330\252/index.xml" "b/docs/tags/\331\205\330\247\330\252\330\261\333\214\332\251\330\263_\332\206\333\214\330\263\330\252/index.xml" index 70e692b..e8b9fea 100644 --- "a/docs/tags/\331\205\330\247\330\252\330\261\333\214\332\251\330\263_\332\206\333\214\330\263\330\252/index.xml" +++ "b/docs/tags/\331\205\330\247\330\252\330\261\333\214\332\251\330\263_\332\206\333\214\330\263\330\252/index.xml" @@ -1,18 +1,4 @@ - - - - ماتریکس_چیست on bit-orbit - https://bit-orbit.github.io/tags/%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3_%DA%86%DB%8C%D8%B3%D8%AA/ - Recent content in ماتریکس_چیست on bit-orbit - Hugo -- gohugo.io - fa - Sat, 01 Oct 2022 01:46:23 +0330 - ارتباط غیر متمرکز و در لحظه با پروتکل ماتریکس - https://bit-orbit.github.io/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/ - Sat, 01 Oct 2022 01:46:23 +0330 - - https://bit-orbit.github.io/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/ - <img src="https://bit-orbit.github.io/images/post/matrix.jpg" alt="Featured image of post ارتباط غیر متمرکز و در لحظه با پروتکل ماتریکس" /><p>ماتریکس یک پروتکل آزاد است! به این معنی که شما میتوانید از این پروتکل برای +ماتریکس_چیست on bit-orbithttps://bit-orbit.github.io/tags/%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3_%DA%86%DB%8C%D8%B3%D8%AA/Recent content in ماتریکس_چیست on bit-orbitHugo -- gohugo.iofaSat, 01 Oct 2022 01:46:23 +0330ارتباط غیر متمرکز و در لحظه با پروتکل ماتریکسhttps://bit-orbit.github.io/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/Sat, 01 Oct 2022 01:46:23 +0330https://bit-orbit.github.io/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/<img src="https://bit-orbit.github.io/images/post/matrix.jpg" alt="Featured image of post ارتباط غیر متمرکز و در لحظه با پروتکل ماتریکس" /><p>ماتریکس یک پروتکل آزاد است! به این معنی که شما میتوانید از این پروتکل برای ارتباطات تحت شبکه مانند پیامرسان، اینترنت چیز ها (IoT) و هر چیز دیگری @@ -20,76 +6,58 @@ های این پروتکل، رمزنگاری سر تا سر (E2E) است، این ویژگی باعث میشود حتی سرور های ماتریکس که داده های ما را -منتقل میکنند هم توانایی دسترسی به داده ها را نداشته باشند.</p> -<h3 id="پیام-رسان-ماتریکس">پیام رسان ماتریکس</h3> -<p>یکی از اصلی ترین استفاده های ماتریکس، پیامرسان است. +منتقل میکنند هم توانایی دسترسی به داده ها را نداشته باشند.</p> +<h3 id="پیام-رسان-ماتریکس">پیام رسان ماتریکس +</h3><p>یکی از اصلی ترین استفاده های ماتریکس، پیامرسان است. این پیامرسان به صورت غیر متمرکز عمل میکند. با این روش سانسور/فیلتر شدن سرور هایی که پیام ها را ذخیره و منتقل میکنند غیر ممکن میشود! چرا که این سرور ها قابل تغییر هستند و هر زمان که یکی از این سرور ها سانسور شود، شما همچنان میتوانید با سرور دیگری مجدد اکانت بسازید و در ارتباط بمانید. -و یا حتی از سرور خودتان استفاده کنید!</p> -<h3 id="ماتریکس-چگونه-کار-میکند">ماتریکس چگونه کار میکند؟</h3> -<p>هر سرور در ماتریکس -<em>HomeServer</em> +و یا حتی از سرور خودتان استفاده کنید!</p> +<h3 id="ماتریکس-چگونه-کار-میکند">ماتریکس چگونه کار میکند؟ +</h3><p>هر سرور در ماتریکس +<em>HomeServer</em> نامیده میشود، شما به عنوان -<em>Client</em> +<em>Client</em> انتخاب میکنید از هر HomeServer -که میخواهید استفاده کنید.</p> -<p>HomeServer +که میخواهید استفاده کنید.</p> +<p>HomeServer ها میتوانند سرور های عمومی مثل سروری که خود -<a class="link" href="matrix.org" ><strong>ماتریکس</strong></a> +<a class="link" href="matrix.org" ><strong>ماتریکس</strong></a> راه اندازی کرده است باشد و یا میتواند سرور های -<strong>شخصی خودتان</strong> -باشد.</p> -<p><a class="link" href="https://bit-orbit.github.io/images/post/page2-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page2-768x768.png" - - - - loading="lazy" - - alt="matrix-homeserver" - - -></a></p> -<p>زمانی که شما از یک +<strong>شخصی خودتان</strong> +باشد.</p> +<p><a class="link" href="https://bit-orbit.github.io/images/post/page2-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page2-768x768.png" +loading="lazy" +alt="matrix-homeserver" +></a></p> +<p>زمانی که شما از یک HomeServer استفاده میکنید، این به آن معنی است که کلاینت شما به اکانتتان در آن HomeServer -متصل میشود.</p> -<p><a class="link" href="https://bit-orbit.github.io/images/post/page3-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page3-768x768.png" - - - - loading="lazy" - - alt="matrix-homeserver" - - -></a></p> -<p>زمانی که شما پیامی ارسال میکنید، پیامتان به +متصل میشود.</p> +<p><a class="link" href="https://bit-orbit.github.io/images/post/page3-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page3-768x768.png" +loading="lazy" +alt="matrix-homeserver" +></a></p> +<p>زمانی که شما پیامی ارسال میکنید، پیامتان به HomeServer شما ارسال میشود، HomeServer -بعد از دریافت پیام از شما، آن را به کاربران مشترک در آن روم ارسال میکند.</p> -<blockquote> -<p>در ماتریکس هر نوع چت(شخصی و یا گروه) را +بعد از دریافت پیام از شما، آن را به کاربران مشترک در آن روم ارسال میکند.</p> +<blockquote> +<p>در ماتریکس هر نوع چت(شخصی و یا گروه) را room -مینامند</p> -</blockquote> -<p><a class="link" href="https://bit-orbit.github.io/images/post/page4-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page4-768x768.png" - - - - loading="lazy" - - alt="matrix-homeserver" - - -></a></p> -<p>در واقع زمانی که شما پیامی ارسال میکنید +مینامند</p> +</blockquote> +<p><a class="link" href="https://bit-orbit.github.io/images/post/page4-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page4-768x768.png" +loading="lazy" +alt="matrix-homeserver" +></a></p> +<p>در واقع زمانی که شما پیامی ارسال میکنید HomeServer پیام را برای کاربران ارسال میکند. این کاربران ممکن است کاربران همان HomeServer @@ -103,47 +71,41 @@ Homeserver HomerServer های دیگر ارسال خواهد کرد. و آن HomeServer -پیام را دریافت و به کاربران مربوطه ارسال خواهد کرد.</p> -<p><a class="link" href="https://bit-orbit.github.io/images/post/page6-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page6-768x768.png" - - - - loading="lazy" - - alt="matrix-homeserver" - - -></a></p> -<blockquote> -<p>زمانی که شما پیامی را برای کاربر +پیام را دریافت و به کاربران مربوطه ارسال خواهد کرد.</p> +<p><a class="link" href="https://bit-orbit.github.io/images/post/page6-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page6-768x768.png" +loading="lazy" +alt="matrix-homeserver" +></a></p> +<blockquote> +<p>زمانی که شما پیامی را برای کاربر HomeServer دیگری ارسال میکنید، پیام شما تنها در HomeServer خودتان ذخیره نخواهد شد. بلکه در HomeServer -کاربری/کاربرانی که پیام را به آن ارسال کرده اید هم ذخیره میشود.</p> -</blockquote> -<h3 id="اصطلاحات-در-ماتریکس">اصطلاحات در ماتریکس</h3> -<p>در ماتریکس چند اصطلاح وجود دارد که آشنایی با آنها به درک بهتر این پروتکل کمک میکند.</p> -<ul> -<li> -<p>HomeServer: +کاربری/کاربرانی که پیام را به آن ارسال کرده اید هم ذخیره میشود.</p> +</blockquote> +<h3 id="اصطلاحات-در-ماتریکس">اصطلاحات در ماتریکس +</h3><p>در ماتریکس چند اصطلاح وجود دارد که آشنایی با آنها به درک بهتر این پروتکل کمک میکند.</p> +<ul> +<li> +<p>HomeServer: سروری که شما در آن اکانت خود را میسازید. این سرور پیام های شما را ذخیره -و ارسال میکند.</p> -</li> -<li> -<p>Client: +و ارسال میکند.</p> +</li> +<li> +<p>Client: برای اینکه کاربران بتوانند از ماتریکس استفاده کنند، باید از ابزاری که از این -پروتکل بهره میبرد استفاده کنند. به اینگونه از ابزار ها کلاینت گفته میشود.</p> -</li> -<li> -<p>Event: +پروتکل بهره میبرد استفاده کنند. به اینگونه از ابزار ها کلاینت گفته میشود.</p> +</li> +<li> +<p>Event: هر نوع داده ای که توسط ماتریکس ارسال شود -<em>event</em> -نامیده میشود. برای مثال ممکن است شما پیام ارسال کنید و یا به یک پیام واکنش نشان دهید.</p> -</li> -<li> -<p>Room: +<em>event</em> +نامیده میشود. برای مثال ممکن است شما پیام ارسال کنید و یا به یک پیام واکنش نشان دهید.</p> +</li> +<li> +<p>Room: قسمتی است که کاربر با آن event ها را دریافت و ارسال میکند. @@ -154,10 +116,10 @@ room room میتوانند event -ها را دریافت کنند.</p> -</li> -<li> -<p>Space: +ها را دریافت کنند.</p> +</li> +<li> +<p>Space: Space نوعی خاصی از room @@ -165,66 +127,61 @@ room room ها است. space -میتواند هم شامل گروه و هم کاربران عادی شود.</p> -</li> -<li> -<p>Bridge: +میتواند هم شامل گروه و هم کاربران عادی شود.</p> +</li> +<li> +<p>Bridge: پل یا Bridge به راهکاری گفته میشود که شما میتوانید با استفاده از آن بین ماتریکس و پیامرسان های دیگر چت کنید. برای مثال شما با استفاده از Brdige تلگرام -میتوانید با ماتریکس به کاربران تلگرام پیام ارسال و دریافت کنید.</p> -</li> -</ul> -<h3 id="چگونه-از-ماتریکس-استفاده-کنیم">چگونه از ماتریکس استفاده کنیم؟</h3> -<p>برای استفاده از ماتریکس، شما کافیست یکی از کلاینت های آن را نصب و به یک +میتوانید با ماتریکس به کاربران تلگرام پیام ارسال و دریافت کنید.</p> +</li> +</ul> +<h3 id="چگونه-از-ماتریکس-استفاده-کنیم">چگونه از ماتریکس استفاده کنیم؟ +</h3><p>برای استفاده از ماتریکس، شما کافیست یکی از کلاینت های آن را نصب و به یک HomeServer -متصل شوید.</p> -<p>یکی از محبوب ترین کلاینت ها، کلاینت -<a class="link" href="https://element.io/" target="_blank" rel="noopener" - >Element</a> +متصل شوید.</p> +<p>یکی از محبوب ترین کلاینت ها، کلاینت +<a class="link" href="https://element.io/" target="_blank" rel="noopener" +>Element</a> است، که شامل نسخه -<a class="link" href="https://play.google.com/store/apps/details?id=im.vector.app" target="_blank" rel="noopener" - >Android</a>، -<a class="link" href="https://apps.apple.com/app/vector/id1083446067" target="_blank" rel="noopener" - >IOS</a>، -<a class="link" href="https://element.io/get-started#downloads" target="_blank" rel="noopener" - >Windows, Linux، Mac</a> +<a class="link" href="https://play.google.com/store/apps/details?id=im.vector.app" target="_blank" rel="noopener" +>Android</a>، +<a class="link" href="https://apps.apple.com/app/vector/id1083446067" target="_blank" rel="noopener" +>IOS</a>، +<a class="link" href="https://element.io/get-started#downloads" target="_blank" rel="noopener" +>Windows, Linux، Mac</a> و البته -<a class="link" href="https://app.element.io/" target="_blank" rel="noopener" - >نسخه تحت وب میشود</a>.</p> -<p>استفاده از المنت مانند هر پیامرسان دیگری ساده است، اما اگر نیاز به کمک دارید -<a class="link" href="https://static.element.io/pdfs/element-user-guide.pdf" target="_blank" rel="noopener" - >این لینک</a> -میتواند کمکتان کند.</p> -<h3 id="چطور-از-سرور-شخصی-خودمان-استفاده-کنیم">چطور از سرور شخصی خودمان استفاده کنیم؟</h3> -<p>شما مجبور نیستید سرویس ماتریکس را روی سرور شخصی خودتان اجرا کنید مگر اینکه:</p> -<ul> -<li>سرور های عمومی ماتریکس سانسور و از دسترس خارج شده باشند</li> -<li>و یا شاید نگران دیتایی هستید که روی سرور های -عمومی ماتریکس از طرف شما ذخیره میشود!(گرچه پیام ها تماما رمزنگاری سر تا سر میشود)</li> -<li>و یا حتی شاید میخواهید پیام رسان داخلی شرکت/خانه خودتان را داشته باشید</li> -<li>و یا البته ممکن است بخواهید +<a class="link" href="https://app.element.io/" target="_blank" rel="noopener" +>نسخه تحت وب میشود</a>.</p> +<p>استفاده از المنت مانند هر پیامرسان دیگری ساده است، اما اگر نیاز به کمک دارید +<a class="link" href="https://static.element.io/pdfs/element-user-guide.pdf" target="_blank" rel="noopener" +>این لینک</a> +میتواند کمکتان کند.</p> +<h3 id="چطور-از-سرور-شخصی-خودمان-استفاده-کنیم">چطور از سرور شخصی خودمان استفاده کنیم؟ +</h3><p>شما مجبور نیستید سرویس ماتریکس را روی سرور شخصی خودتان اجرا کنید مگر اینکه:</p> +<ul> +<li>سرور های عمومی ماتریکس سانسور و از دسترس خارج شده باشند</li> +<li>و یا شاید نگران دیتایی هستید که روی سرور های +عمومی ماتریکس از طرف شما ذخیره میشود!(گرچه پیام ها تماما رمزنگاری سر تا سر میشود)</li> +<li>و یا حتی شاید میخواهید پیام رسان داخلی شرکت/خانه خودتان را داشته باشید</li> +<li>و یا البته ممکن است بخواهید Bridge -بسازید.</li> -</ul> -<p>نسخه سرور ماتریکس -<a class="link" href="https://github.com/matrix-org/synapse" target="_blank" rel="noopener" - ><em>Synapse</em></a> +بسازید.</li> +</ul> +<p>نسخه سرور ماتریکس +<a class="link" href="https://github.com/matrix-org/synapse" target="_blank" rel="noopener" +><em>Synapse</em></a> نام دارد، شما میتوانید با استفاده از -<a class="link" href="https://hub.docker.com/r/matrixdotorg/synapse/" target="_blank" rel="noopener" - >ایمیج داکر رسمی ماتریکس</a>، -سرور شخصی خودتان را اجرا کنید.</p> -<h3 id="نتیجه-گیری">نتیجه گیری</h3> -<p>هدف من از نوشتن این پست در این روز های تلخ این بود که ابزاری را معرفی کنم +<a class="link" href="https://hub.docker.com/r/matrixdotorg/synapse/" target="_blank" rel="noopener" +>ایمیج داکر رسمی ماتریکس</a>، +سرور شخصی خودتان را اجرا کنید.</p> +<h3 id="نتیجه-گیری">نتیجه گیری +</h3><p>هدف من از نوشتن این پست در این روز های تلخ این بود که ابزاری را معرفی کنم تا ما با وجود قطعی های متعدد اینترنت و قطع دسترسی ما از سرور های خارجی، کماکان -در ارتباط نگهدارد و صدایمان را&hellip;</p> -<p>اگر روزی دسترسی ما از اینترنت قطع شد، کاری که لازم است برای در ارتباط ماندن انجام بدهیم -این است که یک سرویس ماتریکس داخلی راه اندازی کنیم.</p> -<hr> - - - - - +در ارتباط نگهدارد و صدایمان را&hellip;</p> +<p>اگر روزی دسترسی ما از اینترنت قطع شد، کاری که لازم است برای در ارتباط ماندن انجام بدهیم +این است که یک سرویس ماتریکس داخلی راه اندازی کنیم.</p> +<hr> \ No newline at end of file diff --git "a/docs/tags/\331\205\330\247\330\252\330\261\333\214\332\251\330\263_\332\206\333\214\330\263\330\252/page/1/index.html" "b/docs/tags/\331\205\330\247\330\252\330\261\333\214\332\251\330\263_\332\206\333\214\330\263\330\252/page/1/index.html" index b00afcc..3ed5260 100644 --- "a/docs/tags/\331\205\330\247\330\252\330\261\333\214\332\251\330\263_\332\206\333\214\330\263\330\252/page/1/index.html" +++ "b/docs/tags/\331\205\330\247\330\252\330\261\333\214\332\251\330\263_\332\206\333\214\330\263\330\252/page/1/index.html" @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3_%DA%86%DB%8C%D8%B3%D8%AA/ - - - - - - +https://bit-orbit.github.io/tags/%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3_%DA%86%DB%8C%D8%B3%D8%AA/ + \ No newline at end of file diff --git "a/docs/tags/\331\206\330\255\331\210\331\207-\330\247\330\263\330\252\331\201\330\247\330\257\331\207-\330\247\330\262-\332\257\331\210\332\257\331\204-\332\251\331\210\331\204\330\250/index.html" "b/docs/tags/\331\206\330\255\331\210\331\207-\330\247\330\263\330\252\331\201\330\247\330\257\331\207-\330\247\330\262-\332\257\331\210\332\257\331\204-\332\251\331\210\331\204\330\250/index.html" index 042cd16..6af594e 100644 --- "a/docs/tags/\331\206\330\255\331\210\331\207-\330\247\330\263\330\252\331\201\330\247\330\257\331\207-\330\247\330\262-\332\257\331\210\332\257\331\204-\332\251\331\210\331\204\330\250/index.html" +++ "b/docs/tags/\331\206\330\255\331\210\331\207-\330\247\330\263\330\252\331\201\330\247\330\257\331\207-\330\247\330\262-\332\257\331\210\332\257\331\204-\332\251\331\210\331\204\330\250/index.html" @@ -1,559 +1,37 @@ - - - - -Tag: نحوه استفاده از گوگل کولب - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

نحوه استفاده از گوگل کولب

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: نحوه استفاده از گوگل کولب - bit-orbit +

Tags

1 صفحه

نحوه استفاده از گوگل کولب

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git "a/docs/tags/\331\206\330\255\331\210\331\207-\330\247\330\263\330\252\331\201\330\247\330\257\331\207-\330\247\330\262-\332\257\331\210\332\257\331\204-\332\251\331\210\331\204\330\250/index.xml" "b/docs/tags/\331\206\330\255\331\210\331\207-\330\247\330\263\330\252\331\201\330\247\330\257\331\207-\330\247\330\262-\332\257\331\210\332\257\331\204-\332\251\331\210\331\204\330\250/index.xml" index 717d56a..b3522ae 100644 --- "a/docs/tags/\331\206\330\255\331\210\331\207-\330\247\330\263\330\252\331\201\330\247\330\257\331\207-\330\247\330\262-\332\257\331\210\332\257\331\204-\332\251\331\210\331\204\330\250/index.xml" +++ "b/docs/tags/\331\206\330\255\331\210\331\207-\330\247\330\263\330\252\331\201\330\247\330\257\331\207-\330\247\330\262-\332\257\331\210\332\257\331\204-\332\251\331\210\331\204\330\250/index.xml" @@ -1,18 +1,4 @@ - - - - نحوه استفاده از گوگل کولب on bit-orbit - https://bit-orbit.github.io/tags/%D9%86%D8%AD%D9%88%D9%87-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%DA%A9%D9%88%D9%84%D8%A8/ - Recent content in نحوه استفاده از گوگل کولب on bit-orbit - Hugo -- gohugo.io - fa - Mon, 18 Dec 2023 00:08:38 +0330 - از گوگل به تلگرام! - https://bit-orbit.github.io/p/%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/ - Mon, 18 Dec 2023 00:08:38 +0330 - - https://bit-orbit.github.io/p/%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/ - <img src="https://bit-orbit.github.io/images/post/colab.jpg" alt="Featured image of post از گوگل به تلگرام!" /><p>به احتمال زیاد سایت +نحوه استفاده از گوگل کولب on bit-orbithttps://bit-orbit.github.io/tags/%D9%86%D8%AD%D9%88%D9%87-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%DA%A9%D9%88%D9%84%D8%A8/Recent content in نحوه استفاده از گوگل کولب on bit-orbitHugo -- gohugo.iofaMon, 18 Dec 2023 00:08:38 +0330از گوگل به تلگرام!https://bit-orbit.github.io/p/%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/Mon, 18 Dec 2023 00:08:38 +0330https://bit-orbit.github.io/p/%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/<img src="https://bit-orbit.github.io/images/post/colab.jpg" alt="Featured image of post از گوگل به تلگرام!" /><p>به احتمال زیاد سایت google colab رو می‌شناسید، این سایت برای کسانی که پایتون کار می‌کنند یک معجزه‌ست. خیلی راحت شما می‌توانید کد پایتون خود @@ -22,30 +8,30 @@ google colab این سرویس گوگل واقعا کار رو راحت می‌کنه. حالا فرض کنید این فایل رو باید با تیم به اشتراک بگذارید، خیلی راحت این سروریس به گوگل درایو شما متصل می‌شه -و فایل رو براتون آپلود می‌کنه.</p> -<p>اما من توی این پست می‌خواهم کار متفاوتی با این سرویس +و فایل رو براتون آپلود می‌کنه.</p> +<p>اما من توی این پست می‌خواهم کار متفاوتی با این سرویس انجام بدم، جای اینکه فایل‌م رو توی گوگل درایو آپلود کنم می‌خواهم که یک پلی لیست موزیک راک رو که فایل با فرمت zip هست رو روی google colab دانلود کنم و بعد با همین کولب فایل -ها را استخراج و به تلگرام اپلود کنم.</p> -<p>اینو بگم که خب روی کولب خیلی تریک های جالب دیگه‌ای هم +ها را استخراج و به تلگرام اپلود کنم.</p> +<p>اینو بگم که خب روی کولب خیلی تریک های جالب دیگه‌ای هم می‌زنند، مثلا من یه تایمی به کولب ssh می‌کردم و بعنوان vpn -استفاده می‌کردم.</p> -<hr> -<p>ادرس سرویس +استفاده می‌کردم.</p> +<hr> +<p>ادرس سرویس google colab -<a class="link" href="https://colab.research.google.com/" target="_blank" rel="noopener" - >این</a> +<a class="link" href="https://colab.research.google.com/" target="_blank" rel="noopener" +>این</a> هست، ولی من یک اسکریپت نوشتم که به اون نیاز داریم برای همین -<a class="link" href="https://colab.research.google.com/github/shabane/upload-to-telegram/blob/master/upload_to_telegram.ipynb" target="_blank" rel="noopener" - >این لینک</a> +<a class="link" href="https://colab.research.google.com/github/shabane/upload-to-telegram/blob/master/upload_to_telegram.ipynb" target="_blank" rel="noopener" +>این لینک</a> رو باز کنید تا اسکریپتی که من نوشته‌م توی colab @@ -53,229 +39,200 @@ colab jupyter کار کرده باشین این محیط باید براتون خیلی آشنا باشه. اگر نه، خیلی ساده بگم، این محیط دستورات پایتون رو -براتون روی سروس های گوگل ران می‌کنه :)</p> -<p>خب ما یه فایل این برای مثالمون نیاز داریم، من یک پلی +براتون روی سروس های گوگل ران می‌کنه :)</p> +<p>خب ما یه فایل این برای مثالمون نیاز داریم، من یک پلی لیست راک از AC/DC -که از تورنت می‌گیرم رو برای اینکار استفاده می‌کنم.</p> -<p>اول من فایل رو باید دانلود کنم، من از تورنت برای دانلود +که از تورنت می‌گیرم رو برای اینکار استفاده می‌کنم.</p> +<p>اول من فایل رو باید دانلود کنم، من از تورنت برای دانلود موزیک، فیلم و &hellip; استفاده می‌کنم. پس کافیه لینک تورنت رو به برنامه aria2c بدم و یا فایل رو با یک سایت دانلودر تورنت دانلود کنم و لینک‌ش رو بدم به برنامه -wget</p> -<p>برای اینکه دستورات خودتون رو اجرا کنید از بالای سایت +wget</p> +<p>برای اینکه دستورات خودتون رو اجرا کنید از بالای سایت گزینه -<em>+ code</em> +<em>+ code</em> رو بزنید تا یک code snipp جدید براتون باز کنه. توی این قسمت فقط می‌شه کد های پایتون رو اجرا کرد ولی اگه از علامت -<strong>!</strong> +<strong>!</strong> قبل از دستور استفاده کنیم اون رو بعنوان دستور bash اجرا خواهد کرد. و خب بیس سیستم عامل هم دبیان هست -و دستورات دبیانی رو اجرا می‌کنه.</p> -<p>پس اگه مستقیم قرار بود فایل رو از تورنت بگیرم باید برنامه +و دستورات دبیانی رو اجرا می‌کنه.</p> +<p>پس اگه مستقیم قرار بود فایل رو از تورنت بگیرم باید برنامه aria2 -رو نصب می‌کردم. برای نصب کافیه این دستور رو بزنیم</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!sudo apt-get install aria2 -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>دقت کنید که از علامت -<code>!</code> -قبل از دستور استفاده کردم.</p> -</blockquote> -<p>بعد از نصب، لینک رو می‌دیم به برنامه تا فایل ها رو برامون -دانلود کنه.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!aria2c <span class="s1">&#39;&lt;your magnet link&gt;&#39;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>به این دقت کنید که برنامه با کامند +رو نصب می‌کردم. برای نصب کافیه این دستور رو بزنیم</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!sudo apt-get install aria2 +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>دقت کنید که از علامت +<code>!</code> +قبل از دستور استفاده کردم.</p> +</blockquote> +<p>بعد از نصب، لینک رو می‌دیم به برنامه تا فایل ها رو برامون +دانلود کنه.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!aria2c <span class="s1">&#39;&lt;your magnet link&gt;&#39;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>به این دقت کنید که برنامه با کامند aria2c اجرا می‌شه. ولی با به اسم aria2 -نصب می‌شه.</p> -</blockquote> -<p>و یا اینکه لینک دانلود مستقیم رو به برنامه +نصب می‌شه.</p> +</blockquote> +<p>و یا اینکه لینک دانلود مستقیم رو به برنامه wget می‌دیم. این برنامه به صورت دیفالت نصب هست و لازم نیست -کار خاصی بکنیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!wget <span class="s1">&#39;&lt;your file link&gt;&#39;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p><img src="https://bit-orbit.github.io/images/post/wgetcolab.jpg" - - - - loading="lazy" - - alt="from google to telegram as cloud" - - -></p> -<p>بعد از اینکه فایل روی سرور گوگل دانلود شد کافیه فایل -رو به تلگرام آپلود کنیم! ولی قبل‌ش چند کاری هست که باید -باهم بکنیم.</p> -<ul> -<li>فایل من زیپه پس باید استخراج کنم.</li> -<li>فایل ها توی دایرکتوری های تو در تو قرار دارند، و باید همه فایل های مورد نظرم رو که توی این مورد +کار خاصی بکنیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!wget <span class="s1">&#39;&lt;your file link&gt;&#39;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p><img src="https://bit-orbit.github.io/images/post/wgetcolab.jpg" +loading="lazy" +alt="from google to telegram as cloud" +></p> +<p>بعد از اینکه فایل روی سرور گوگل دانلود شد کافیه فایل +رو به تلگرام آپلود کنیم! ولی قبل‌ش چند کاری هست که باید +باهم بکنیم.</p> +<ul> +<li>فایل من زیپه پس باید استخراج کنم.</li> +<li>فایل ها توی دایرکتوری های تو در تو قرار دارند، و باید همه فایل های مورد نظرم رو که توی این مورد mp3 هستند رو بیارم داخل پوشه‌ای که اسکریپت دیفالت آنجا ران -می‌شه.</li> -<li>نیاز به یک کانال تلگرام دارم که فایل ها مستقیم اونجا -اپلود بشوند</li> -<li>یک توکن ربات تلگرام هم نیازه که با استفاده از دسترسی -ربات به کانال، فایل ها رو اپلود کنیم.</li> -</ul> -<p>خب برای اسختراج فایل ها خیلی ساده از کامند -<code>unzip</code> -و اسم فایل جلوی این کامند استفاده می‌کنیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!unzip &lt;your file name&gt; -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>با کامند -<code>ls</code> -نام فایلی که دانلود کردین رو می‌تونید ببینید.</p> -</blockquote> -<p><img src="https://bit-orbit.github.io/images/post/unzipcolab.jpg" - - - - loading="lazy" - - alt="uizip in colab" - - -></p> -<p>با اجرای کامند -<code>tree</code> -می‌تونید دایرکتوری های تو در تو رو ببینید.</p> -<p><img src="https://bit-orbit.github.io/images/post/treecolab.jpg" - - - - loading="lazy" - - alt="tree in colab" - - -></p> -<p>توی این مرحله من همه فایل های +می‌شه.</li> +<li>نیاز به یک کانال تلگرام دارم که فایل ها مستقیم اونجا +اپلود بشوند</li> +<li>یک توکن ربات تلگرام هم نیازه که با استفاده از دسترسی +ربات به کانال، فایل ها رو اپلود کنیم.</li> +</ul> +<p>خب برای اسختراج فایل ها خیلی ساده از کامند +<code>unzip</code> +و اسم فایل جلوی این کامند استفاده می‌کنیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!unzip &lt;your file name&gt; +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>با کامند +<code>ls</code> +نام فایلی که دانلود کردین رو می‌تونید ببینید.</p> +</blockquote> +<p><img src="https://bit-orbit.github.io/images/post/unzipcolab.jpg" +loading="lazy" +alt="uizip in colab" +></p> +<p>با اجرای کامند +<code>tree</code> +می‌تونید دایرکتوری های تو در تو رو ببینید.</p> +<p><img src="https://bit-orbit.github.io/images/post/treecolab.jpg" +loading="lazy" +alt="tree in colab" +></p> +<p>توی این مرحله من همه فایل های mp3 رو باید بیارم توی پوشه اصلی که اسکریپت‌ اپلود اجرا میشه، دلیل این کار این هست که این اسکریپ‌ت فقط فایل های mp3 -داخل همین پوشه رو پیدا و اپلود می‌کنه.</p> -<p>برای انتقال این فایل ها از پوشه های تو در تو به یک پوشه از کامند -<code>find</code> +داخل همین پوشه رو پیدا و اپلود می‌کنه.</p> +<p>برای انتقال این فایل ها از پوشه های تو در تو به یک پوشه از کامند +<code>find</code> استفاده می‌کنم و هر فایل که پیدا می‌شه رو با کامند -<code>mv</code> -به پوشه اصلی‌مون انتقال می‌دم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!find . -type f -iname <span class="s1">&#39;*mp3&#39;</span> -exec mv <span class="o">{}</span> . <span class="se">\;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>بیایید سوییچ های این دستور رو بهتون بگم</p> -<ul> -<li>type-</li> -</ul> -<p>این سوییچ انواع نوع فایل ها رو مشخص می‌کنه. مثلا شما می‌تونید دنبال یک دایرکتوری، فایل، سوکت و &hellip; بگردین</p> -<ul> -<li>iname-</li> -</ul> -<p>این سویچ که مشخص هست نام فایل رو ازتون می‌گیره که شما می‌تونید پترن ریجکس بدین بهش. +<code>mv</code> +به پوشه اصلی‌مون انتقال می‌دم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!find . -type f -iname <span class="s1">&#39;*mp3&#39;</span> -exec mv <span class="o">{}</span> . <span class="se">\;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>بیایید سوییچ های این دستور رو بهتون بگم</p> +<ul> +<li>type-</li> +</ul> +<p>این سوییچ انواع نوع فایل ها رو مشخص می‌کنه. مثلا شما می‌تونید دنبال یک دایرکتوری، فایل، سوکت و &hellip; بگردین</p> +<ul> +<li>iname-</li> +</ul> +<p>این سویچ که مشخص هست نام فایل رو ازتون می‌گیره که شما می‌تونید پترن ریجکس بدین بهش. و اون -<strong>i</strong> -مشخص می‌کنه که نام فایل به کوچیکی و بزرگی حساس نباشه.</p> -<ul> -<li>exec-</li> -</ul> -<p>یک کامندی رو ازتون می‌گیره و روی تک تک ریزالت های جست و جو اون کامند رو اجرا می‌کنه. +<strong>i</strong> +مشخص می‌کنه که نام فایل به کوچیکی و بزرگی حساس نباشه.</p> +<ul> +<li>exec-</li> +</ul> +<p>یک کامندی رو ازتون می‌گیره و روی تک تک ریزالت های جست و جو اون کامند رو اجرا می‌کنه. من کامند -<code>mv</code> +<code>mv</code> رو دادم که برای انتقال فایل استفاده می‌شه. علامت های -<strong>{}</strong> -هم یک متغییر هست که نام فایل تک به تک جای اون قرار می‌گیره.</p> -<blockquote> -<p>پایان سوییچ +<strong>{}</strong> +هم یک متغییر هست که نام فایل تک به تک جای اون قرار می‌گیره.</p> +<blockquote> +<p>پایان سوییچ exec همیشه با -<code>;\</code> -مشخص می‌شه.</p> -</blockquote> -<p>خب تا اینجا که خیلی ساده بود،‌ نه؟</p> -<p>مرحله آخر اینه که یک ربات با -<a class="link" href="https://t.me/BotFather" target="_blank" rel="noopener" - >این ربات</a> -بسازین، و بعد اون رو عضو یک کانالی که می‌سازید بکنید، کانال رو فعلا پابلیک بسازید و یک یوزرنیم بهش بدین.</p> -<p>توکن ربات رو کپی کنید و توی اسکریپت من، جایی که نوشته -<your token> +<code>;\</code> +مشخص می‌شه.</p> +</blockquote> +<p>خب تا اینجا که خیلی ساده بود،‌ نه؟</p> +<p>مرحله آخر اینه که یک ربات با +<a class="link" href="https://t.me/BotFather" target="_blank" rel="noopener" +>این ربات</a> +بسازین، و بعد اون رو عضو یک کانالی که می‌سازید بکنید، کانال رو فعلا پابلیک بسازید و یک یوزرنیم بهش بدین.</p> +<p>توکن ربات رو کپی کنید و توی اسکریپت من، جایی که نوشته +<your token> وارد کنید و توی قسمت -<chat id> -هم ایدی کانالتون رو با علامت @ اول جایگذاری کنید.</p> -<p><img src="https://bit-orbit.github.io/images/post/acdccolab.jpg" - - - - loading="lazy" - - alt="ac and dc telegram channel" - - -></p> -<blockquote> -<p>اگه کانال پرایوت دارید باید بجای ای‌دی کانال از +<chat id> +هم ایدی کانالتون رو با علامت @ اول جایگذاری کنید.</p> +<p><img src="https://bit-orbit.github.io/images/post/acdccolab.jpg" +loading="lazy" +alt="ac and dc telegram channel" +></p> +<blockquote> +<p>اگه کانال پرایوت دارید باید بجای ای‌دی کانال از chatid -استفاده کنید، که یک ای‌دی عددی هست.</p> -</blockquote> -<p><strong>تمام</strong>!‌ -کافیه برنامه رو اجرا کنید و کانال تلگرامتون رو نگاه کنید :)</p> -<blockquote> -<p>اگه خیلی زیاد دارین فایل اپلود می‌کنید احتمالا تلگرام ارور +استفاده کنید، که یک ای‌دی عددی هست.</p> +</blockquote> +<p><strong>تمام</strong>!‌ +کافیه برنامه رو اجرا کنید و کانال تلگرامتون رو نگاه کنید :)</p> +<blockquote> +<p>اگه خیلی زیاد دارین فایل اپلود می‌کنید احتمالا تلگرام ارور flood mood بهتون بده. توی این مورد کافیه فقط صبر کنید، اسکریپت از اجرا قطع نمی‌شه و روی همون فایل مجددا اجرا می‌شه -تا بالاخره فایل اپلود بشه.</p> -</blockquote> -<blockquote> -<p>هرچیزی رو می‌تونید آپلود کنید ولی دقت کنید که ربات ها محدودیت حجم اپلود دارن که نهایتش 50MB هست</p> -</blockquote> -<blockquote> -<p>اینم بگم که توی اسکریپت اگه +تا بالاخره فایل اپلود بشه.</p> +</blockquote> +<blockquote> +<p>هرچیزی رو می‌تونید آپلود کنید ولی دقت کنید که ربات ها محدودیت حجم اپلود دارن که نهایتش 50MB هست</p> +</blockquote> +<blockquote> +<p>اینم بگم که توی اسکریپت اگه mp3 -رو به چیز دیگه‌ای تغییر بدین، اسکریپت به دنبال اون پسوند ها خواهد گشت.</p> -</blockquote> - - - - - +رو به چیز دیگه‌ای تغییر بدین، اسکریپت به دنبال اون پسوند ها خواهد گشت.</p> +</blockquote> \ No newline at end of file diff --git "a/docs/tags/\331\206\330\255\331\210\331\207-\330\247\330\263\330\252\331\201\330\247\330\257\331\207-\330\247\330\262-\332\257\331\210\332\257\331\204-\332\251\331\210\331\204\330\250/page/1/index.html" "b/docs/tags/\331\206\330\255\331\210\331\207-\330\247\330\263\330\252\331\201\330\247\330\257\331\207-\330\247\330\262-\332\257\331\210\332\257\331\204-\332\251\331\210\331\204\330\250/page/1/index.html" index eb43a4b..731b561 100644 --- "a/docs/tags/\331\206\330\255\331\210\331\207-\330\247\330\263\330\252\331\201\330\247\330\257\331\207-\330\247\330\262-\332\257\331\210\332\257\331\204-\332\251\331\210\331\204\330\250/page/1/index.html" +++ "b/docs/tags/\331\206\330\255\331\210\331\207-\330\247\330\263\330\252\331\201\330\247\330\257\331\207-\330\247\330\262-\332\257\331\210\332\257\331\204-\332\251\331\210\331\204\330\250/page/1/index.html" @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/%D9%86%D8%AD%D9%88%D9%87-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%DA%A9%D9%88%D9%84%D8%A8/ - - - - - - +https://bit-orbit.github.io/tags/%D9%86%D8%AD%D9%88%D9%87-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%DA%A9%D9%88%D9%84%D8%A8/ + \ No newline at end of file diff --git "a/docs/tags/\331\276\333\214\330\247\331\205\330\261\330\263\330\247\331\206/index.html" "b/docs/tags/\331\276\333\214\330\247\331\205\330\261\330\263\330\247\331\206/index.html" index 740ab6d..54e0e2b 100644 --- "a/docs/tags/\331\276\333\214\330\247\331\205\330\261\330\263\330\247\331\206/index.html" +++ "b/docs/tags/\331\276\333\214\330\247\331\205\330\261\330\263\330\247\331\206/index.html" @@ -1,559 +1,37 @@ - - - - -Tag: پیامرسان - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

پیامرسان

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: پیامرسان - bit-orbit + \ No newline at end of file diff --git "a/docs/tags/\331\276\333\214\330\247\331\205\330\261\330\263\330\247\331\206/index.xml" "b/docs/tags/\331\276\333\214\330\247\331\205\330\261\330\263\330\247\331\206/index.xml" index 60f329d..5af09d2 100644 --- "a/docs/tags/\331\276\333\214\330\247\331\205\330\261\330\263\330\247\331\206/index.xml" +++ "b/docs/tags/\331\276\333\214\330\247\331\205\330\261\330\263\330\247\331\206/index.xml" @@ -1,18 +1,4 @@ - - - - پیامرسان on bit-orbit - https://bit-orbit.github.io/tags/%D9%BE%DB%8C%D8%A7%D9%85%D8%B1%D8%B3%D8%A7%D9%86/ - Recent content in پیامرسان on bit-orbit - Hugo -- gohugo.io - fa - Sat, 01 Oct 2022 01:46:23 +0330 - ارتباط غیر متمرکز و در لحظه با پروتکل ماتریکس - https://bit-orbit.github.io/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/ - Sat, 01 Oct 2022 01:46:23 +0330 - - https://bit-orbit.github.io/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/ - <img src="https://bit-orbit.github.io/images/post/matrix.jpg" alt="Featured image of post ارتباط غیر متمرکز و در لحظه با پروتکل ماتریکس" /><p>ماتریکس یک پروتکل آزاد است! به این معنی که شما میتوانید از این پروتکل برای +پیامرسان on bit-orbithttps://bit-orbit.github.io/tags/%D9%BE%DB%8C%D8%A7%D9%85%D8%B1%D8%B3%D8%A7%D9%86/Recent content in پیامرسان on bit-orbitHugo -- gohugo.iofaSat, 01 Oct 2022 01:46:23 +0330ارتباط غیر متمرکز و در لحظه با پروتکل ماتریکسhttps://bit-orbit.github.io/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/Sat, 01 Oct 2022 01:46:23 +0330https://bit-orbit.github.io/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/<img src="https://bit-orbit.github.io/images/post/matrix.jpg" alt="Featured image of post ارتباط غیر متمرکز و در لحظه با پروتکل ماتریکس" /><p>ماتریکس یک پروتکل آزاد است! به این معنی که شما میتوانید از این پروتکل برای ارتباطات تحت شبکه مانند پیامرسان، اینترنت چیز ها (IoT) و هر چیز دیگری @@ -20,76 +6,58 @@ های این پروتکل، رمزنگاری سر تا سر (E2E) است، این ویژگی باعث میشود حتی سرور های ماتریکس که داده های ما را -منتقل میکنند هم توانایی دسترسی به داده ها را نداشته باشند.</p> -<h3 id="پیام-رسان-ماتریکس">پیام رسان ماتریکس</h3> -<p>یکی از اصلی ترین استفاده های ماتریکس، پیامرسان است. +منتقل میکنند هم توانایی دسترسی به داده ها را نداشته باشند.</p> +<h3 id="پیام-رسان-ماتریکس">پیام رسان ماتریکس +</h3><p>یکی از اصلی ترین استفاده های ماتریکس، پیامرسان است. این پیامرسان به صورت غیر متمرکز عمل میکند. با این روش سانسور/فیلتر شدن سرور هایی که پیام ها را ذخیره و منتقل میکنند غیر ممکن میشود! چرا که این سرور ها قابل تغییر هستند و هر زمان که یکی از این سرور ها سانسور شود، شما همچنان میتوانید با سرور دیگری مجدد اکانت بسازید و در ارتباط بمانید. -و یا حتی از سرور خودتان استفاده کنید!</p> -<h3 id="ماتریکس-چگونه-کار-میکند">ماتریکس چگونه کار میکند؟</h3> -<p>هر سرور در ماتریکس -<em>HomeServer</em> +و یا حتی از سرور خودتان استفاده کنید!</p> +<h3 id="ماتریکس-چگونه-کار-میکند">ماتریکس چگونه کار میکند؟ +</h3><p>هر سرور در ماتریکس +<em>HomeServer</em> نامیده میشود، شما به عنوان -<em>Client</em> +<em>Client</em> انتخاب میکنید از هر HomeServer -که میخواهید استفاده کنید.</p> -<p>HomeServer +که میخواهید استفاده کنید.</p> +<p>HomeServer ها میتوانند سرور های عمومی مثل سروری که خود -<a class="link" href="matrix.org" ><strong>ماتریکس</strong></a> +<a class="link" href="matrix.org" ><strong>ماتریکس</strong></a> راه اندازی کرده است باشد و یا میتواند سرور های -<strong>شخصی خودتان</strong> -باشد.</p> -<p><a class="link" href="https://bit-orbit.github.io/images/post/page2-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page2-768x768.png" - - - - loading="lazy" - - alt="matrix-homeserver" - - -></a></p> -<p>زمانی که شما از یک +<strong>شخصی خودتان</strong> +باشد.</p> +<p><a class="link" href="https://bit-orbit.github.io/images/post/page2-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page2-768x768.png" +loading="lazy" +alt="matrix-homeserver" +></a></p> +<p>زمانی که شما از یک HomeServer استفاده میکنید، این به آن معنی است که کلاینت شما به اکانتتان در آن HomeServer -متصل میشود.</p> -<p><a class="link" href="https://bit-orbit.github.io/images/post/page3-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page3-768x768.png" - - - - loading="lazy" - - alt="matrix-homeserver" - - -></a></p> -<p>زمانی که شما پیامی ارسال میکنید، پیامتان به +متصل میشود.</p> +<p><a class="link" href="https://bit-orbit.github.io/images/post/page3-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page3-768x768.png" +loading="lazy" +alt="matrix-homeserver" +></a></p> +<p>زمانی که شما پیامی ارسال میکنید، پیامتان به HomeServer شما ارسال میشود، HomeServer -بعد از دریافت پیام از شما، آن را به کاربران مشترک در آن روم ارسال میکند.</p> -<blockquote> -<p>در ماتریکس هر نوع چت(شخصی و یا گروه) را +بعد از دریافت پیام از شما، آن را به کاربران مشترک در آن روم ارسال میکند.</p> +<blockquote> +<p>در ماتریکس هر نوع چت(شخصی و یا گروه) را room -مینامند</p> -</blockquote> -<p><a class="link" href="https://bit-orbit.github.io/images/post/page4-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page4-768x768.png" - - - - loading="lazy" - - alt="matrix-homeserver" - - -></a></p> -<p>در واقع زمانی که شما پیامی ارسال میکنید +مینامند</p> +</blockquote> +<p><a class="link" href="https://bit-orbit.github.io/images/post/page4-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page4-768x768.png" +loading="lazy" +alt="matrix-homeserver" +></a></p> +<p>در واقع زمانی که شما پیامی ارسال میکنید HomeServer پیام را برای کاربران ارسال میکند. این کاربران ممکن است کاربران همان HomeServer @@ -103,47 +71,41 @@ Homeserver HomerServer های دیگر ارسال خواهد کرد. و آن HomeServer -پیام را دریافت و به کاربران مربوطه ارسال خواهد کرد.</p> -<p><a class="link" href="https://bit-orbit.github.io/images/post/page6-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page6-768x768.png" - - - - loading="lazy" - - alt="matrix-homeserver" - - -></a></p> -<blockquote> -<p>زمانی که شما پیامی را برای کاربر +پیام را دریافت و به کاربران مربوطه ارسال خواهد کرد.</p> +<p><a class="link" href="https://bit-orbit.github.io/images/post/page6-768x768.png" ><img src="https://bit-orbit.github.io/images/post/page6-768x768.png" +loading="lazy" +alt="matrix-homeserver" +></a></p> +<blockquote> +<p>زمانی که شما پیامی را برای کاربر HomeServer دیگری ارسال میکنید، پیام شما تنها در HomeServer خودتان ذخیره نخواهد شد. بلکه در HomeServer -کاربری/کاربرانی که پیام را به آن ارسال کرده اید هم ذخیره میشود.</p> -</blockquote> -<h3 id="اصطلاحات-در-ماتریکس">اصطلاحات در ماتریکس</h3> -<p>در ماتریکس چند اصطلاح وجود دارد که آشنایی با آنها به درک بهتر این پروتکل کمک میکند.</p> -<ul> -<li> -<p>HomeServer: +کاربری/کاربرانی که پیام را به آن ارسال کرده اید هم ذخیره میشود.</p> +</blockquote> +<h3 id="اصطلاحات-در-ماتریکس">اصطلاحات در ماتریکس +</h3><p>در ماتریکس چند اصطلاح وجود دارد که آشنایی با آنها به درک بهتر این پروتکل کمک میکند.</p> +<ul> +<li> +<p>HomeServer: سروری که شما در آن اکانت خود را میسازید. این سرور پیام های شما را ذخیره -و ارسال میکند.</p> -</li> -<li> -<p>Client: +و ارسال میکند.</p> +</li> +<li> +<p>Client: برای اینکه کاربران بتوانند از ماتریکس استفاده کنند، باید از ابزاری که از این -پروتکل بهره میبرد استفاده کنند. به اینگونه از ابزار ها کلاینت گفته میشود.</p> -</li> -<li> -<p>Event: +پروتکل بهره میبرد استفاده کنند. به اینگونه از ابزار ها کلاینت گفته میشود.</p> +</li> +<li> +<p>Event: هر نوع داده ای که توسط ماتریکس ارسال شود -<em>event</em> -نامیده میشود. برای مثال ممکن است شما پیام ارسال کنید و یا به یک پیام واکنش نشان دهید.</p> -</li> -<li> -<p>Room: +<em>event</em> +نامیده میشود. برای مثال ممکن است شما پیام ارسال کنید و یا به یک پیام واکنش نشان دهید.</p> +</li> +<li> +<p>Room: قسمتی است که کاربر با آن event ها را دریافت و ارسال میکند. @@ -154,10 +116,10 @@ room room میتوانند event -ها را دریافت کنند.</p> -</li> -<li> -<p>Space: +ها را دریافت کنند.</p> +</li> +<li> +<p>Space: Space نوعی خاصی از room @@ -165,66 +127,61 @@ room room ها است. space -میتواند هم شامل گروه و هم کاربران عادی شود.</p> -</li> -<li> -<p>Bridge: +میتواند هم شامل گروه و هم کاربران عادی شود.</p> +</li> +<li> +<p>Bridge: پل یا Bridge به راهکاری گفته میشود که شما میتوانید با استفاده از آن بین ماتریکس و پیامرسان های دیگر چت کنید. برای مثال شما با استفاده از Brdige تلگرام -میتوانید با ماتریکس به کاربران تلگرام پیام ارسال و دریافت کنید.</p> -</li> -</ul> -<h3 id="چگونه-از-ماتریکس-استفاده-کنیم">چگونه از ماتریکس استفاده کنیم؟</h3> -<p>برای استفاده از ماتریکس، شما کافیست یکی از کلاینت های آن را نصب و به یک +میتوانید با ماتریکس به کاربران تلگرام پیام ارسال و دریافت کنید.</p> +</li> +</ul> +<h3 id="چگونه-از-ماتریکس-استفاده-کنیم">چگونه از ماتریکس استفاده کنیم؟ +</h3><p>برای استفاده از ماتریکس، شما کافیست یکی از کلاینت های آن را نصب و به یک HomeServer -متصل شوید.</p> -<p>یکی از محبوب ترین کلاینت ها، کلاینت -<a class="link" href="https://element.io/" target="_blank" rel="noopener" - >Element</a> +متصل شوید.</p> +<p>یکی از محبوب ترین کلاینت ها، کلاینت +<a class="link" href="https://element.io/" target="_blank" rel="noopener" +>Element</a> است، که شامل نسخه -<a class="link" href="https://play.google.com/store/apps/details?id=im.vector.app" target="_blank" rel="noopener" - >Android</a>، -<a class="link" href="https://apps.apple.com/app/vector/id1083446067" target="_blank" rel="noopener" - >IOS</a>، -<a class="link" href="https://element.io/get-started#downloads" target="_blank" rel="noopener" - >Windows, Linux، Mac</a> +<a class="link" href="https://play.google.com/store/apps/details?id=im.vector.app" target="_blank" rel="noopener" +>Android</a>، +<a class="link" href="https://apps.apple.com/app/vector/id1083446067" target="_blank" rel="noopener" +>IOS</a>، +<a class="link" href="https://element.io/get-started#downloads" target="_blank" rel="noopener" +>Windows, Linux، Mac</a> و البته -<a class="link" href="https://app.element.io/" target="_blank" rel="noopener" - >نسخه تحت وب میشود</a>.</p> -<p>استفاده از المنت مانند هر پیامرسان دیگری ساده است، اما اگر نیاز به کمک دارید -<a class="link" href="https://static.element.io/pdfs/element-user-guide.pdf" target="_blank" rel="noopener" - >این لینک</a> -میتواند کمکتان کند.</p> -<h3 id="چطور-از-سرور-شخصی-خودمان-استفاده-کنیم">چطور از سرور شخصی خودمان استفاده کنیم؟</h3> -<p>شما مجبور نیستید سرویس ماتریکس را روی سرور شخصی خودتان اجرا کنید مگر اینکه:</p> -<ul> -<li>سرور های عمومی ماتریکس سانسور و از دسترس خارج شده باشند</li> -<li>و یا شاید نگران دیتایی هستید که روی سرور های -عمومی ماتریکس از طرف شما ذخیره میشود!(گرچه پیام ها تماما رمزنگاری سر تا سر میشود)</li> -<li>و یا حتی شاید میخواهید پیام رسان داخلی شرکت/خانه خودتان را داشته باشید</li> -<li>و یا البته ممکن است بخواهید +<a class="link" href="https://app.element.io/" target="_blank" rel="noopener" +>نسخه تحت وب میشود</a>.</p> +<p>استفاده از المنت مانند هر پیامرسان دیگری ساده است، اما اگر نیاز به کمک دارید +<a class="link" href="https://static.element.io/pdfs/element-user-guide.pdf" target="_blank" rel="noopener" +>این لینک</a> +میتواند کمکتان کند.</p> +<h3 id="چطور-از-سرور-شخصی-خودمان-استفاده-کنیم">چطور از سرور شخصی خودمان استفاده کنیم؟ +</h3><p>شما مجبور نیستید سرویس ماتریکس را روی سرور شخصی خودتان اجرا کنید مگر اینکه:</p> +<ul> +<li>سرور های عمومی ماتریکس سانسور و از دسترس خارج شده باشند</li> +<li>و یا شاید نگران دیتایی هستید که روی سرور های +عمومی ماتریکس از طرف شما ذخیره میشود!(گرچه پیام ها تماما رمزنگاری سر تا سر میشود)</li> +<li>و یا حتی شاید میخواهید پیام رسان داخلی شرکت/خانه خودتان را داشته باشید</li> +<li>و یا البته ممکن است بخواهید Bridge -بسازید.</li> -</ul> -<p>نسخه سرور ماتریکس -<a class="link" href="https://github.com/matrix-org/synapse" target="_blank" rel="noopener" - ><em>Synapse</em></a> +بسازید.</li> +</ul> +<p>نسخه سرور ماتریکس +<a class="link" href="https://github.com/matrix-org/synapse" target="_blank" rel="noopener" +><em>Synapse</em></a> نام دارد، شما میتوانید با استفاده از -<a class="link" href="https://hub.docker.com/r/matrixdotorg/synapse/" target="_blank" rel="noopener" - >ایمیج داکر رسمی ماتریکس</a>، -سرور شخصی خودتان را اجرا کنید.</p> -<h3 id="نتیجه-گیری">نتیجه گیری</h3> -<p>هدف من از نوشتن این پست در این روز های تلخ این بود که ابزاری را معرفی کنم +<a class="link" href="https://hub.docker.com/r/matrixdotorg/synapse/" target="_blank" rel="noopener" +>ایمیج داکر رسمی ماتریکس</a>، +سرور شخصی خودتان را اجرا کنید.</p> +<h3 id="نتیجه-گیری">نتیجه گیری +</h3><p>هدف من از نوشتن این پست در این روز های تلخ این بود که ابزاری را معرفی کنم تا ما با وجود قطعی های متعدد اینترنت و قطع دسترسی ما از سرور های خارجی، کماکان -در ارتباط نگهدارد و صدایمان را&hellip;</p> -<p>اگر روزی دسترسی ما از اینترنت قطع شد، کاری که لازم است برای در ارتباط ماندن انجام بدهیم -این است که یک سرویس ماتریکس داخلی راه اندازی کنیم.</p> -<hr> - - - - - +در ارتباط نگهدارد و صدایمان را&hellip;</p> +<p>اگر روزی دسترسی ما از اینترنت قطع شد، کاری که لازم است برای در ارتباط ماندن انجام بدهیم +این است که یک سرویس ماتریکس داخلی راه اندازی کنیم.</p> +<hr> \ No newline at end of file diff --git "a/docs/tags/\331\276\333\214\330\247\331\205\330\261\330\263\330\247\331\206/page/1/index.html" "b/docs/tags/\331\276\333\214\330\247\331\205\330\261\330\263\330\247\331\206/page/1/index.html" index 1676998..c9f7376 100644 --- "a/docs/tags/\331\276\333\214\330\247\331\205\330\261\330\263\330\247\331\206/page/1/index.html" +++ "b/docs/tags/\331\276\333\214\330\247\331\205\330\261\330\263\330\247\331\206/page/1/index.html" @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/%D9%BE%DB%8C%D8%A7%D9%85%D8%B1%D8%B3%D8%A7%D9%86/ - - - - - - +https://bit-orbit.github.io/tags/%D9%BE%DB%8C%D8%A7%D9%85%D8%B1%D8%B3%D8%A7%D9%86/ + \ No newline at end of file diff --git "a/docs/tags/\332\206\330\267\331\210\330\261-cloud-\330\257\330\261-\330\256\330\247\331\206\331\207-\330\257\330\247\330\264\330\252\331\207-\330\250\330\247\330\264\333\214\331\205/index.html" "b/docs/tags/\332\206\330\267\331\210\330\261-cloud-\330\257\330\261-\330\256\330\247\331\206\331\207-\330\257\330\247\330\264\330\252\331\207-\330\250\330\247\330\264\333\214\331\205/index.html" index d078a93..f1ac91d 100644 --- "a/docs/tags/\332\206\330\267\331\210\330\261-cloud-\330\257\330\261-\330\256\330\247\331\206\331\207-\330\257\330\247\330\264\330\252\331\207-\330\250\330\247\330\264\333\214\331\205/index.html" +++ "b/docs/tags/\332\206\330\267\331\210\330\261-cloud-\330\257\330\261-\330\256\330\247\331\206\331\207-\330\257\330\247\330\264\330\252\331\207-\330\250\330\247\330\264\333\214\331\205/index.html" @@ -1,559 +1,37 @@ - - - - -Tag: چطور Cloud در خانه داشته باشیم - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

چطور Cloud در خانه داشته باشیم

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: چطور Cloud در خانه داشته باشیم - bit-orbit +

Tags

1 صفحه

چطور Cloud در خانه داشته باشیم

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git "a/docs/tags/\332\206\330\267\331\210\330\261-cloud-\330\257\330\261-\330\256\330\247\331\206\331\207-\330\257\330\247\330\264\330\252\331\207-\330\250\330\247\330\264\333\214\331\205/index.xml" "b/docs/tags/\332\206\330\267\331\210\330\261-cloud-\330\257\330\261-\330\256\330\247\331\206\331\207-\330\257\330\247\330\264\330\252\331\207-\330\250\330\247\330\264\333\214\331\205/index.xml" index 223d23c..9eaf1d4 100644 --- "a/docs/tags/\332\206\330\267\331\210\330\261-cloud-\330\257\330\261-\330\256\330\247\331\206\331\207-\330\257\330\247\330\264\330\252\331\207-\330\250\330\247\330\264\333\214\331\205/index.xml" +++ "b/docs/tags/\332\206\330\267\331\210\330\261-cloud-\330\257\330\261-\330\256\330\247\331\206\331\207-\330\257\330\247\330\264\330\252\331\207-\330\250\330\247\330\264\333\214\331\205/index.xml" @@ -1,19 +1,5 @@ - - - - چطور Cloud در خانه داشته باشیم on bit-orbit - https://bit-orbit.github.io/tags/%DA%86%D8%B7%D9%88%D8%B1-cloud-%D8%AF%D8%B1-%D8%AE%D8%A7%D9%86%D9%87-%D8%AF%D8%A7%D8%B4%D8%AA%D9%87-%D8%A8%D8%A7%D8%B4%DB%8C%D9%85/ - Recent content in چطور Cloud در خانه داشته باشیم on bit-orbit - Hugo -- gohugo.io - fa - Mon, 11 Dec 2023 01:39:34 +0330 - cloud را به خانه خود ببرید! - https://bit-orbit.github.io/p/cloud-%D8%B1%D8%A7-%D8%A8%D9%87-%D8%AE%D8%A7%D9%86%D9%87-%D8%AE%D9%88%D8%AF-%D8%A8%D8%A8%D8%B1%DB%8C%D8%AF/ - Mon, 11 Dec 2023 01:39:34 +0330 - - https://bit-orbit.github.io/p/cloud-%D8%B1%D8%A7-%D8%A8%D9%87-%D8%AE%D8%A7%D9%86%D9%87-%D8%AE%D9%88%D8%AF-%D8%A8%D8%A8%D8%B1%DB%8C%D8%AF/ - <img src="https://bit-orbit.github.io/images/post/umbrel.webp" alt="Featured image of post cloud را به خانه خود ببرید!" /><h3 id="چطور-این-ایده-به-ذهن-من-رسید-">چطور این ایده به ذهن من رسید ؟</h3> -<p>جریان این ایده به این شکل بود که خب ما ایرانی ها اینترنت +چطور Cloud در خانه داشته باشیم on bit-orbithttps://bit-orbit.github.io/tags/%DA%86%D8%B7%D9%88%D8%B1-cloud-%D8%AF%D8%B1-%D8%AE%D8%A7%D9%86%D9%87-%D8%AF%D8%A7%D8%B4%D8%AA%D9%87-%D8%A8%D8%A7%D8%B4%DB%8C%D9%85/Recent content in چطور Cloud در خانه داشته باشیم on bit-orbitHugo -- gohugo.iofaMon, 11 Dec 2023 01:39:34 +0330cloud را به خانه خود ببرید!https://bit-orbit.github.io/p/cloud-%D8%B1%D8%A7-%D8%A8%D9%87-%D8%AE%D8%A7%D9%86%D9%87-%D8%AE%D9%88%D8%AF-%D8%A8%D8%A8%D8%B1%DB%8C%D8%AF/Mon, 11 Dec 2023 01:39:34 +0330https://bit-orbit.github.io/p/cloud-%D8%B1%D8%A7-%D8%A8%D9%87-%D8%AE%D8%A7%D9%86%D9%87-%D8%AE%D9%88%D8%AF-%D8%A8%D8%A8%D8%B1%DB%8C%D8%AF/<img src="https://bit-orbit.github.io/images/post/umbrel.webp" alt="Featured image of post cloud را به خانه خود ببرید!" /><h3 id="چطور-این-ایده-به-ذهن-من-رسید-">چطور این ایده به ذهن من رسید ؟ +</h3><p>جریان این ایده به این شکل بود که خب ما ایرانی ها اینترنت به شدت محدود شده‌ای داریم، برای همین ما برای استفاده از اینترنت از vpn @@ -26,100 +12,82 @@ ip vpn رو که به هزار زحمت وصل شده بود، قطع کنیم. خب چاره چیه؟ اینکه اگه یک سیستم توی خونه یا شرکت دارین -که همیشه روشنه رو تبدیل به یک سرور کنیم :)</p> -<p>توی این فکر بودم که نیازم رو به چنین سیستم عاملی حس کردم، بعد کمی نیاز های دیگه رو بهش اضافه کردم و یه پست +که همیشه روشنه رو تبدیل به یک سرور کنیم :)</p> +<p>توی این فکر بودم که نیازم رو به چنین سیستم عاملی حس کردم، بعد کمی نیاز های دیگه رو بهش اضافه کردم و یه پست داخل تلگرام نوشتم، یکی کامنت گذاشت و خب این سیستم عامل -را معرفی کرد.</p> -<hr> -<h3 id="umbrel-چیست-">umbrel چیست ؟</h3> -<p>درواقع +را معرفی کرد.</p> +<hr> +<h3 id="umbrel-چیست-">umbrel چیست ؟ +</h3><p>درواقع umbrel یک سیستم عامل است، زمانی که شما این سیستم عامل را نصب کنید، یک صفحه وب در اختیار شما می‌گذارد و شما از طریق این صفحه درون مرورگر خود می‌توانید به سیستم دسترسی داشته باشید. برای مثلا می‌توانید سرویس های مختلف و ابزار های -مختلف را روی +مختلف را روی umbrel -نصب و یا کانفیگ کنید.</p> -<p>سرویس هایی که +نصب و یا کانفیگ کنید.</p> +<p>سرویس هایی که umbrel ارائه می‌دهد تقریبا همان سرویس هایی هستند که شما در طول -روز از نسخه های تجاری آنها استفاده می‌کنید.</p> -<p>اگه دقیق تر بخواهم بگم، این سیستم عامل یک +روز از نسخه های تجاری آنها استفاده می‌کنید.</p> +<p>اگه دقیق تر بخواهم بگم، این سیستم عامل یک store در اختیار کاربران‌ش قرار می‌ده. و خب این یکی از مهم ترین کار هایی است که این سیستم عامل انجام می‌ده چرا که اگر این استور وجود نداشت، شما شخصا باید فرایند کانفیگ و نصب سرویس ها را به عهده می‌گرفتید(این کار یک متخصص دواپس -هست، خیلی هم جالیه)</p> -<p><img src="https://bit-orbit.github.io/images/post/umbrelstore.jpg" - - - - loading="lazy" - - alt="umbrel store" - - -></p> -<hr> -<h3 id="umbrel-چه-نیازی-را-برطرف-میکند-">umbrel چه نیازی را برطرف می‌کند ؟</h3> -<p>وقتی از سرویس های تحت اینترنت استفاده می‌کنید، +هست، خیلی هم جالیه)</p> +<p><img src="https://bit-orbit.github.io/images/post/umbrelstore.jpg" +loading="lazy" +alt="umbrel store" +></p> +<hr> +<h3 id="umbrel-چه-نیازی-را-برطرف-میکند-">umbrel چه نیازی را برطرف می‌کند ؟ +</h3><p>وقتی از سرویس های تحت اینترنت استفاده می‌کنید، به احتمال زیاد شما کالای اون شرکتی هستید که ابزار را در اختیارتون قرار داده است. اگر دقت کنیم می‌بینیم که این شرکت ها بسیاری کاربر دارند و خب برای ارائه درست خدمت به کاربرانشون سرور های زیادی اجاره می‌کنند سرویس ها رو دائم اپدیت و بهتر می‌کنند -و خب سرویس های متعددی هم ارائه می‌کنند.</p> -<p>همه این کار ها نیاز به هزینه های زیادی دارند، +و خب سرویس های متعددی هم ارائه می‌کنند.</p> +<p>همه این کار ها نیاز به هزینه های زیادی دارند، بودجه این شرکت ها فقط و فقط با تبلیغات تامین نمی‌شود بلکه با فروش اطلاعات کاربرانشون(خود ما) به شرکت ها و دولت ها -تامین می‌شود.</p> -<p><img src="https://bit-orbit.github.io/images/post/zuker.jpg" - - - - loading="lazy" - - alt="zukerberg spying" - - -></p> -<p>و البته اگر حتی شما برای سرویسی که استفاده می‌کنید +تامین می‌شود.</p> +<p><img src="https://bit-orbit.github.io/images/post/zuker.jpg" +loading="lazy" +alt="zukerberg spying" +></p> +<p>و البته اگر حتی شما برای سرویسی که استفاده می‌کنید هزینه‌ای پرداخت کنید، مثلا برای استفاده از گوگل دایو ماهانه هزینه هم پرداخت کنید، باز هم مشکلاتی وجود دارد، مثلا قانونا گوگل مالک فایلی است که شما روی سرور هایش -آپلود می‌کنید.</p> -<p>در چنین مواقعی هست که اصطلاح +آپلود می‌کنید.</p> +<p>در چنین مواقعی هست که اصطلاح self-hosting سرویس ها استفاده می‌شود. به این معنی که سرویس هایی که شما روزانه از آن استفاده می‌کنید را خودتان راه اندازی -کنید. اما اینکار نیاز به دانش بالایی داره.</p> -<p>سیستم عامل +کنید. اما اینکار نیاز به دانش بالایی داره.</p> +<p>سیستم عامل umbrel این کار را ساده کرده است، با این تفاوت که قبلا شما باید برای استفاده چند ابزار روی یک سرور، باید سرور رو به درستی کانفیگ می‌کردین سپس ابزار ها را کانفیگ، و بعد سرویس ها راه اجرا می‌کردین. اما الان فقط با یک کلیک شما سرویس توییتر خود را -راه اندازی می‌کنید!</p> -<p><img src="https://bit-orbit.github.io/images/post/umbrelselfhosting.jpg" - - - - loading="lazy" - - alt="umbrel self hosting" - - -></p> -<hr> -<h3 id="umbrel-به-روی-سیستم-عامل-دسکتاپ">umbrel به روی سیستم عامل دسکتاپ</h3> -<p>نصب +راه اندازی می‌کنید!</p> +<p><img src="https://bit-orbit.github.io/images/post/umbrelselfhosting.jpg" +loading="lazy" +alt="umbrel self hosting" +></p> +<hr> +<h3 id="umbrel-به-روی-سیستم-عامل-دسکتاپ">umbrel به روی سیستم عامل دسکتاپ +</h3><p>نصب umbrel بسیاز سادهست فقط کافیه یک سیستم عامل debian رو روی سیستمتون داشته باشید، یک ترمینال باز کنید و کامند -نصب را بزنید، با یک کامند این سیستم نصب می‌شه.</p> -<p>ولی خب اگر سیستم عاملی ندارید که بر پایه +نصب را بزنید، با یک کامند این سیستم نصب می‌شه.</p> +<p>ولی خب اگر سیستم عاملی ندارید که بر پایه debain باشه، می‌شه به سادگی روی ماشین مجازی یک دبیان نصب کنید، حالت شبکه اون سیستم عامل رو @@ -136,10 +104,10 @@ IP debain که umbrel -را روی ان نصب کردین را وارد کنید و تمام!</p> -<hr> -<h3 id="umbrel-به-روی-رزبری-پای">umbrel به روی رزبری پای</h3> -<p>رزبری پای! یک سخت افزار کوچک که تقریبا یک کامپیوتر کامل +را روی ان نصب کردین را وارد کنید و تمام!</p> +<hr> +<h3 id="umbrel-به-روی-رزبری-پای">umbrel به روی رزبری پای +</h3><p>رزبری پای! یک سخت افزار کوچک که تقریبا یک کامپیوتر کامل است! البته که قدرت پردازش بالایی ندارد ولی در IOT استفاده زیادی دارد. با توجه به اینکه پردازنده های @@ -151,24 +119,18 @@ umbrel را نصب کرد، برای همین سیستم عامل umbrel یک نسخه مخصوص برای رزبری پای دارد، کافیست آن را دانلود و -به روی ربزی خود نصب کنید.</p> -<p>به این دقت کنید که خب سعنی کنید یک هارد اکسترنال به +به روی ربزی خود نصب کنید.</p> +<p>به این دقت کنید که خب سعنی کنید یک هارد اکسترنال به رزبری متصل کنید که فضای کافی برای سروریسی مانند next cloud -داشته باشید.</p> -<p><img src="https://bit-orbit.github.io/images/post/umbrelonressbery.jpg" - - - - loading="lazy" - - alt="umbrel on ressbery pi" - - -></p> -<hr> -<h3 id="umbrel-بروی-سرور-شخصی">umbrel بروی سرور شخصی</h3> -<p>به سادگی اچرای یک کامند! کافیست فقط سیستم عامل +داشته باشید.</p> +<p><img src="https://bit-orbit.github.io/images/post/umbrelonressbery.jpg" +loading="lazy" +alt="umbrel on ressbery pi" +></p> +<hr> +<h3 id="umbrel-بروی-سرور-شخصی">umbrel بروی سرور شخصی +</h3><p>به سادگی اچرای یک کامند! کافیست فقط سیستم عامل سرورتون debain و یا کلا بر پایه @@ -177,10 +139,10 @@ debian ubuntu باشه. کامند اجرا را وارد کنید و بعد از اتمام فرایند نصب، IP -سرور را وارد مرورگر کنید، تمام!</p> -<hr> -<h3 id="دستگاه-umbrel">دستگاه umbrel</h3> -<p>شرکت سازنده +سرور را وارد مرورگر کنید، تمام!</p> +<hr> +<h3 id="دستگاه-umbrel">دستگاه umbrel +</h3><p>شرکت سازنده umbrel به جز سیستم عامل، یک دستگاهی طراحی کرده است که به صورت پیشفرض سیستم عامل @@ -192,35 +154,29 @@ umbrel به روی rassbery PI استفاده می‌کنید، شما نیاز به یک فن دارید تا این دستگاه -را دائم خنک کند، از طرفی خود فن هم باید خنک شود.</p> -<p>اینجاست که این دستگاه رو برای شرکت یا خانه‌ شما مناسب‌تر -می‌کند(مطمئن باشید تبلیغ نمی‌کنم)</p> -<p><img src="https://bit-orbit.github.io/images/post/umbreldevice.jpg" - - - - loading="lazy" - - alt="umbrel device" - - -></p> -<hr> -<h3 id="umbrel-چطور-کار-میکند-">umbrel چطور کار می‌کند ؟</h3> -<p>اگه بخواهم کمی فنی‌تر وارد ماجرا بشم، همونطور که گفت +را دائم خنک کند، از طرفی خود فن هم باید خنک شود.</p> +<p>اینجاست که این دستگاه رو برای شرکت یا خانه‌ شما مناسب‌تر +می‌کند(مطمئن باشید تبلیغ نمی‌کنم)</p> +<p><img src="https://bit-orbit.github.io/images/post/umbreldevice.jpg" +loading="lazy" +alt="umbrel device" +></p> +<hr> +<h3 id="umbrel-چطور-کار-میکند-">umbrel چطور کار می‌کند ؟ +</h3><p>اگه بخواهم کمی فنی‌تر وارد ماجرا بشم، همونطور که گفت این سیستم عامل بهترین ویژگی که ارائه می‌کند store آن است. البته که اینجا store به معنی فروشگاه نیست، بلکه شبیه یک بازاری است که همه -اجناس‌ش رایگان است :)</p> -<p>سرویس های +اجناس‌ش رایگان است :)</p> +<p>سرویس های umbrel همه سرویس هایی هستند که به صورت منبع باز در اختیار همه قرار گرفته است، این سرویس ها برای اجرا شدن نیاز به شخصی دارد که دانش کافی از سرور داشته باشد و خب نحوه کانفیگ -کردن هر کدام از ابزار ها و سرویس ها را بداند.</p> -<p>دانلود و نصب هر سرویس به صورت جدگانه ممکن است به مشکلات +کردن هر کدام از ابزار ها و سرویس ها را بداند.</p> +<p>دانلود و نصب هر سرویس به صورت جدگانه ممکن است به مشکلات متعددی برخورد کند، مثلا در نصب سرویسی مثل nexcloud شما ممکن است نیاز به ورژن خاصی از @@ -229,11 +185,11 @@ php nginx برای اجرای اسکریپت های php -هم واقعا به اندازه زیادی دردسر دارد.</p> -<p>اینجاست که داکر وارد ماجرا می‌شود! +هم واقعا به اندازه زیادی دردسر دارد.</p> +<p>اینجاست که داکر وارد ماجرا می‌شود! umbrel -از قبل تمامی سرویس ها را داکرایز کرده است.</p> -<p>داکرایز به چه معنیست؟ +از قبل تمامی سرویس ها را داکرایز کرده است.</p> +<p>داکرایز به چه معنیست؟ درواقع به این فکر کنید که شما یک برنامه را می‌خواهید نصب کنید، این سرویس توسط سازنده آن از ورژن خاصی از زبان مشخصی، لایبراری و فایل هایی استفاده کرده است که پیشفرض @@ -244,8 +200,8 @@ image قرار داده است، و بعد کافیست شما آن فایل را به برنامه docker engine -بدهید، آن برنامه باید بدون هیچ مشکلی اجرا شود.</p> -<p>سیستم عامل +بدهید، آن برنامه باید بدون هیچ مشکلی اجرا شود.</p> +<p>سیستم عامل umbrel دقیقا چنین کاری می‌کند. تمامی image @@ -253,20 +209,14 @@ image store برای شما شما لیست می‌کند، شما کافیست که دکمه install -را بزنید، بنگ! سرویس شما آماده است :)</p> -<p><img src="https://bit-orbit.github.io/images/post/umbreldocker.jpg" - - - - loading="lazy" - - alt="umbrel dockeriz" - - -></p> -<hr> -<h3 id="امنیت">امنیت</h3> -<p>اگر +را بزنید، بنگ! سرویس شما آماده است :)</p> +<p><img src="https://bit-orbit.github.io/images/post/umbreldocker.jpg" +loading="lazy" +alt="umbrel dockeriz" +></p> +<hr> +<h3 id="امنیت">امنیت +</h3><p>اگر umbrel را به روی چیزی به جز سرور دارید، حتی اگر برای آن یک دامنه هم بگیرید، @@ -276,8 +226,8 @@ umbrel tor به آن متصل شوید و یا یک VPN -سرور داخل شبکه داخلی خود راه اندازی کنید.</p> -<p>البته +سرور داخل شبکه داخلی خود راه اندازی کنید.</p> +<p>البته umbrel به جز tor @@ -287,60 +237,54 @@ VPN tailscale که مستقیم به روی umbrel -نصب می‌شود.</p> -<p><img src="https://bit-orbit.github.io/images/post/tailscalaumbrel.jpg" - - - - loading="lazy" - - alt="tailscala umbrel" - - -></p> -<hr> -<h3 id="سرویس-های-کاربردی-umbrel">سرویس های کاربردی umbrel</h3> -<ul> -<li>matrix</li> -</ul> -<blockquote> -<p>خیلی ساده بگم، می‌تونید با این سرویس +نصب می‌شود.</p> +<p><img src="https://bit-orbit.github.io/images/post/tailscalaumbrel.jpg" +loading="lazy" +alt="tailscala umbrel" +></p> +<hr> +<h3 id="سرویس-های-کاربردی-umbrel">سرویس های کاربردی umbrel +</h3><ul> +<li>matrix</li> +</ul> +<blockquote> +<p>خیلی ساده بگم، می‌تونید با این سرویس telegtam خودتون رو راه اندازی کنید. برای اینکه بیشتر درباراه این سرویس بدونید، -<a class="link" href="https://www.wiregeek.ir/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/" target="_blank" rel="noopener" - >این پست</a> -من را بخوانید.</p> -</blockquote> -<ul> -<li>nextcloud</li> -</ul> -<blockquote> -<p>خیلی شبیه به گوگل درایو است، به جز نسخه وب +<a class="link" href="https://www.wiregeek.ir/p/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%BA%DB%8C%D8%B1-%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%D9%88-%D8%AF%D8%B1-%D9%84%D8%AD%D8%B8%D9%87-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%DA%A9%D8%B3/" target="_blank" rel="noopener" +>این پست</a> +من را بخوانید.</p> +</blockquote> +<ul> +<li>nextcloud</li> +</ul> +<blockquote> +<p>خیلی شبیه به گوگل درایو است، به جز نسخه وب حتی یک اپ اندروید هم دارد که می‌توانید آدرس nextcloud را درون آن وارد کنید و از هرکحا به فضای خودتون دسترسی داشته باشید. و خب حتی بعنوان ادمین -برای افراد خانواده و یا شرکت‌تون اکانت بسازید، و فضای شخصی خودشان را در اختیارشان قرار بدین.</p> -</blockquote> -<ul> -<li>qbittorrent</li> -</ul> -<blockquote> -<p>اگر تورنت را می‌شناسید، قطعا این کلاینت معروف را هم باید +برای افراد خانواده و یا شرکت‌تون اکانت بسازید، و فضای شخصی خودشان را در اختیارشان قرار بدین.</p> +</blockquote> +<ul> +<li>qbittorrent</li> +</ul> +<blockquote> +<p>اگر تورنت را می‌شناسید، قطعا این کلاینت معروف را هم باید بشناسید، این کلاینت یک نسخه وب دارد که داخل فروشگاه umbrel قرار دارد. فایل های خود را برای دانلود به این کلاینت بدین و در زمانی که از اینرنت استفاده نمی‌کنید مثلا 2 تا 7 صبح -آن ها را بگذارید تا دانلود بشوند.</p> -</blockquote> -<ul> -<li>pi-hole</li> -</ul> -<blockquote> -<p>برای خلاص شدن از تبلیغات اینترنت کافیه این سرویس +آن ها را بگذارید تا دانلود بشوند.</p> +</blockquote> +<ul> +<li>pi-hole</li> +</ul> +<blockquote> +<p>برای خلاص شدن از تبلیغات اینترنت کافیه این سرویس DNS را به روی umbrel @@ -348,13 +292,13 @@ umbrel DHCP را تنظیم کنید که IP -این سرویس را به دیگر دستگاه های شبکه بدهد.</p> -</blockquote> -<ul> -<li>Jellyfin</li> -</ul> -<blockquote> -<p>یکی از نیاز های واقعا اساسی من، این سرویس است. +این سرویس را به دیگر دستگاه های شبکه بدهد.</p> +</blockquote> +<ul> +<li>Jellyfin</li> +</ul> +<blockquote> +<p>یکی از نیاز های واقعا اساسی من، این سرویس است. فیلم هایی که می‌بینم، و یا قرار است که ببینم‌شون رو می‌تونم با این سرویس به درستی دنبال کنم. در اصل این سرویس برای پخش کردن فیلم ها ساخته شده‌ است. @@ -364,69 +308,58 @@ jellyfin فیلم ها رو تماشا کنید، مثلا اگر تلویزیون هوشمند دارید کافیست از طریق مرورگر آن وارد umbrel -خود بشین.</p> -</blockquote> -<p>-snapdrop</p> -<blockquote> -<p>سرویس خیلی ساده‌ای است که برای انتقال فایل داخل -شبکه لوکال استفاده می‌شود.</p> -</blockquote> -<ul> -<li>whoogle search</li> -</ul> -<blockquote> -<p>البته +خود بشین.</p> +</blockquote> +<p>-snapdrop</p> +<blockquote> +<p>سرویس خیلی ساده‌ای است که برای انتقال فایل داخل +شبکه لوکال استفاده می‌شود.</p> +</blockquote> +<ul> +<li>whoogle search</li> +</ul> +<blockquote> +<p>البته whoogle یک موتور جست و جوی meta است، به این معنی که خودش وب را خزش نمی‌کند و از موتور های جست و جوی دیگر برای نتیجه جست و جوی شما استفاده -می‌کند.</p> -</blockquote> -<ul> -<li>LlamaGPT</li> -</ul> -<blockquote> -<p>چیزی شبیه +می‌کند.</p> +</blockquote> +<ul> +<li>LlamaGPT</li> +</ul> +<blockquote> +<p>چیزی شبیه ChatGPT -ولی افلاین و کاملا خصوصی.</p> -</blockquote> -<hr> -<h3 id="راه-اندازی-سرویس-های-شخصی">راه اندازی سرویس های شخصی</h3> -<p>خیلی از سرویس ها هنوز به +ولی افلاین و کاملا خصوصی.</p> +</blockquote> +<hr> +<h3 id="راه-اندازی-سرویس-های-شخصی">راه اندازی سرویس های شخصی +</h3><p>خیلی از سرویس ها هنوز به umbrel اضافه نشده. اضافه کردن سرویس به خود store -هم کار سختی نیستی، کافیه فقط داکرایز کردن رو بلد باشین.</p> -<ul> -<li>cache server</li> -</ul> -<p>کش سرور ها معمولا با +هم کار سختی نیستی، کافیه فقط داکرایز کردن رو بلد باشین.</p> +<ul> +<li>cache server</li> +</ul> +<p>کش سرور ها معمولا با transparent proxy بدون اینکه کاربران متوجه پروکسی بشوند پیاده سازی می‌شوند. -کار آنها کاهش مصرف ترافیک است.</p> -<p>یکی از سرویس هایی که خیلی از شرکت ها برای کاهش هزینه های +کار آنها کاهش مصرف ترافیک است.</p> +<p>یکی از سرویس هایی که خیلی از شرکت ها برای کاهش هزینه های اینرنت و یا خب برای بهبود سرعت اینترنت می‌کنند، ارائه cache server -هست.</p> -<p>خیلی خلاصه بگم کش سرور محتوایی که کاربران بازدید می‌کنند +هست.</p> +<p>خیلی خلاصه بگم کش سرور محتوایی که کاربران بازدید می‌کنند را درون خود برای مدتی و با شرایطی از پیش تعیین شده نگه ‌می‌دارد و هر بار که کاربران به محتوای قبلی درخواست بدهند، دیگر آن ریکوئست تا سایت اصلی نمی‌رود و خود -کش سرور که در شبکه داخلی است جواب آن را می‌دهد</p> -<p><img src="https://bit-orbit.github.io/images/post/cacheumber.jpg" - - - - loading="lazy" - - alt="cache server" - - -></p> -<hr> - - - - - +کش سرور که در شبکه داخلی است جواب آن را می‌دهد</p> +<p><img src="https://bit-orbit.github.io/images/post/cacheumber.jpg" +loading="lazy" +alt="cache server" +></p> +<hr> \ No newline at end of file diff --git "a/docs/tags/\332\206\330\267\331\210\330\261-cloud-\330\257\330\261-\330\256\330\247\331\206\331\207-\330\257\330\247\330\264\330\252\331\207-\330\250\330\247\330\264\333\214\331\205/page/1/index.html" "b/docs/tags/\332\206\330\267\331\210\330\261-cloud-\330\257\330\261-\330\256\330\247\331\206\331\207-\330\257\330\247\330\264\330\252\331\207-\330\250\330\247\330\264\333\214\331\205/page/1/index.html" index 595bece..9364530 100644 --- "a/docs/tags/\332\206\330\267\331\210\330\261-cloud-\330\257\330\261-\330\256\330\247\331\206\331\207-\330\257\330\247\330\264\330\252\331\207-\330\250\330\247\330\264\333\214\331\205/page/1/index.html" +++ "b/docs/tags/\332\206\330\267\331\210\330\261-cloud-\330\257\330\261-\330\256\330\247\331\206\331\207-\330\257\330\247\330\264\330\252\331\207-\330\250\330\247\330\264\333\214\331\205/page/1/index.html" @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/%DA%86%D8%B7%D9%88%D8%B1-cloud-%D8%AF%D8%B1-%D8%AE%D8%A7%D9%86%D9%87-%D8%AF%D8%A7%D8%B4%D8%AA%D9%87-%D8%A8%D8%A7%D8%B4%DB%8C%D9%85/ - - - - - - +https://bit-orbit.github.io/tags/%DA%86%D8%B7%D9%88%D8%B1-cloud-%D8%AF%D8%B1-%D8%AE%D8%A7%D9%86%D9%87-%D8%AF%D8%A7%D8%B4%D8%AA%D9%87-%D8%A8%D8%A7%D8%B4%DB%8C%D9%85/ + \ No newline at end of file diff --git "a/docs/tags/\332\206\330\267\331\210\330\261\333\214-\330\250\330\247-\330\263\330\261\331\210\330\261-\330\250\331\207-\330\252\331\204\332\257\330\261\330\247\331\205-\331\201\330\247\333\214\331\204-\330\247\331\276\331\204\331\210\330\257-\332\251\331\206\333\214\331\205/index.html" "b/docs/tags/\332\206\330\267\331\210\330\261\333\214-\330\250\330\247-\330\263\330\261\331\210\330\261-\330\250\331\207-\330\252\331\204\332\257\330\261\330\247\331\205-\331\201\330\247\333\214\331\204-\330\247\331\276\331\204\331\210\330\257-\332\251\331\206\333\214\331\205/index.html" index 7f1b18d..0761205 100644 --- "a/docs/tags/\332\206\330\267\331\210\330\261\333\214-\330\250\330\247-\330\263\330\261\331\210\330\261-\330\250\331\207-\330\252\331\204\332\257\330\261\330\247\331\205-\331\201\330\247\333\214\331\204-\330\247\331\276\331\204\331\210\330\257-\332\251\331\206\333\214\331\205/index.html" +++ "b/docs/tags/\332\206\330\267\331\210\330\261\333\214-\330\250\330\247-\330\263\330\261\331\210\330\261-\330\250\331\207-\330\252\331\204\332\257\330\261\330\247\331\205-\331\201\330\247\333\214\331\204-\330\247\331\276\331\204\331\210\330\257-\332\251\331\206\333\214\331\205/index.html" @@ -1,559 +1,37 @@ - - - - -Tag: چطوری با سرور به تلگرام فایل اپلود کنیم - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

چطوری با سرور به تلگرام فایل اپلود کنیم

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: چطوری با سرور به تلگرام فایل اپلود کنیم - bit-orbit +

Tags

1 صفحه

چطوری با سرور به تلگرام فایل اپلود کنیم

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git "a/docs/tags/\332\206\330\267\331\210\330\261\333\214-\330\250\330\247-\330\263\330\261\331\210\330\261-\330\250\331\207-\330\252\331\204\332\257\330\261\330\247\331\205-\331\201\330\247\333\214\331\204-\330\247\331\276\331\204\331\210\330\257-\332\251\331\206\333\214\331\205/index.xml" "b/docs/tags/\332\206\330\267\331\210\330\261\333\214-\330\250\330\247-\330\263\330\261\331\210\330\261-\330\250\331\207-\330\252\331\204\332\257\330\261\330\247\331\205-\331\201\330\247\333\214\331\204-\330\247\331\276\331\204\331\210\330\257-\332\251\331\206\333\214\331\205/index.xml" index 40db4be..bb7e2a0 100644 --- "a/docs/tags/\332\206\330\267\331\210\330\261\333\214-\330\250\330\247-\330\263\330\261\331\210\330\261-\330\250\331\207-\330\252\331\204\332\257\330\261\330\247\331\205-\331\201\330\247\333\214\331\204-\330\247\331\276\331\204\331\210\330\257-\332\251\331\206\333\214\331\205/index.xml" +++ "b/docs/tags/\332\206\330\267\331\210\330\261\333\214-\330\250\330\247-\330\263\330\261\331\210\330\261-\330\250\331\207-\330\252\331\204\332\257\330\261\330\247\331\205-\331\201\330\247\333\214\331\204-\330\247\331\276\331\204\331\210\330\257-\332\251\331\206\333\214\331\205/index.xml" @@ -1,18 +1,4 @@ - - - - چطوری با سرور به تلگرام فایل اپلود کنیم on bit-orbit - https://bit-orbit.github.io/tags/%DA%86%D8%B7%D9%88%D8%B1%DB%8C-%D8%A8%D8%A7-%D8%B3%D8%B1%D9%88%D8%B1-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85-%D9%81%D8%A7%DB%8C%D9%84-%D8%A7%D9%BE%D9%84%D9%88%D8%AF-%DA%A9%D9%86%DB%8C%D9%85/ - Recent content in چطوری با سرور به تلگرام فایل اپلود کنیم on bit-orbit - Hugo -- gohugo.io - fa - Mon, 18 Dec 2023 00:08:38 +0330 - از گوگل به تلگرام! - https://bit-orbit.github.io/p/%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/ - Mon, 18 Dec 2023 00:08:38 +0330 - - https://bit-orbit.github.io/p/%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/ - <img src="https://bit-orbit.github.io/images/post/colab.jpg" alt="Featured image of post از گوگل به تلگرام!" /><p>به احتمال زیاد سایت +چطوری با سرور به تلگرام فایل اپلود کنیم on bit-orbithttps://bit-orbit.github.io/tags/%DA%86%D8%B7%D9%88%D8%B1%DB%8C-%D8%A8%D8%A7-%D8%B3%D8%B1%D9%88%D8%B1-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85-%D9%81%D8%A7%DB%8C%D9%84-%D8%A7%D9%BE%D9%84%D9%88%D8%AF-%DA%A9%D9%86%DB%8C%D9%85/Recent content in چطوری با سرور به تلگرام فایل اپلود کنیم on bit-orbitHugo -- gohugo.iofaMon, 18 Dec 2023 00:08:38 +0330از گوگل به تلگرام!https://bit-orbit.github.io/p/%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/Mon, 18 Dec 2023 00:08:38 +0330https://bit-orbit.github.io/p/%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/<img src="https://bit-orbit.github.io/images/post/colab.jpg" alt="Featured image of post از گوگل به تلگرام!" /><p>به احتمال زیاد سایت google colab رو می‌شناسید، این سایت برای کسانی که پایتون کار می‌کنند یک معجزه‌ست. خیلی راحت شما می‌توانید کد پایتون خود @@ -22,30 +8,30 @@ google colab این سرویس گوگل واقعا کار رو راحت می‌کنه. حالا فرض کنید این فایل رو باید با تیم به اشتراک بگذارید، خیلی راحت این سروریس به گوگل درایو شما متصل می‌شه -و فایل رو براتون آپلود می‌کنه.</p> -<p>اما من توی این پست می‌خواهم کار متفاوتی با این سرویس +و فایل رو براتون آپلود می‌کنه.</p> +<p>اما من توی این پست می‌خواهم کار متفاوتی با این سرویس انجام بدم، جای اینکه فایل‌م رو توی گوگل درایو آپلود کنم می‌خواهم که یک پلی لیست موزیک راک رو که فایل با فرمت zip هست رو روی google colab دانلود کنم و بعد با همین کولب فایل -ها را استخراج و به تلگرام اپلود کنم.</p> -<p>اینو بگم که خب روی کولب خیلی تریک های جالب دیگه‌ای هم +ها را استخراج و به تلگرام اپلود کنم.</p> +<p>اینو بگم که خب روی کولب خیلی تریک های جالب دیگه‌ای هم می‌زنند، مثلا من یه تایمی به کولب ssh می‌کردم و بعنوان vpn -استفاده می‌کردم.</p> -<hr> -<p>ادرس سرویس +استفاده می‌کردم.</p> +<hr> +<p>ادرس سرویس google colab -<a class="link" href="https://colab.research.google.com/" target="_blank" rel="noopener" - >این</a> +<a class="link" href="https://colab.research.google.com/" target="_blank" rel="noopener" +>این</a> هست، ولی من یک اسکریپت نوشتم که به اون نیاز داریم برای همین -<a class="link" href="https://colab.research.google.com/github/shabane/upload-to-telegram/blob/master/upload_to_telegram.ipynb" target="_blank" rel="noopener" - >این لینک</a> +<a class="link" href="https://colab.research.google.com/github/shabane/upload-to-telegram/blob/master/upload_to_telegram.ipynb" target="_blank" rel="noopener" +>این لینک</a> رو باز کنید تا اسکریپتی که من نوشته‌م توی colab @@ -53,229 +39,200 @@ colab jupyter کار کرده باشین این محیط باید براتون خیلی آشنا باشه. اگر نه، خیلی ساده بگم، این محیط دستورات پایتون رو -براتون روی سروس های گوگل ران می‌کنه :)</p> -<p>خب ما یه فایل این برای مثالمون نیاز داریم، من یک پلی +براتون روی سروس های گوگل ران می‌کنه :)</p> +<p>خب ما یه فایل این برای مثالمون نیاز داریم، من یک پلی لیست راک از AC/DC -که از تورنت می‌گیرم رو برای اینکار استفاده می‌کنم.</p> -<p>اول من فایل رو باید دانلود کنم، من از تورنت برای دانلود +که از تورنت می‌گیرم رو برای اینکار استفاده می‌کنم.</p> +<p>اول من فایل رو باید دانلود کنم، من از تورنت برای دانلود موزیک، فیلم و &hellip; استفاده می‌کنم. پس کافیه لینک تورنت رو به برنامه aria2c بدم و یا فایل رو با یک سایت دانلودر تورنت دانلود کنم و لینک‌ش رو بدم به برنامه -wget</p> -<p>برای اینکه دستورات خودتون رو اجرا کنید از بالای سایت +wget</p> +<p>برای اینکه دستورات خودتون رو اجرا کنید از بالای سایت گزینه -<em>+ code</em> +<em>+ code</em> رو بزنید تا یک code snipp جدید براتون باز کنه. توی این قسمت فقط می‌شه کد های پایتون رو اجرا کرد ولی اگه از علامت -<strong>!</strong> +<strong>!</strong> قبل از دستور استفاده کنیم اون رو بعنوان دستور bash اجرا خواهد کرد. و خب بیس سیستم عامل هم دبیان هست -و دستورات دبیانی رو اجرا می‌کنه.</p> -<p>پس اگه مستقیم قرار بود فایل رو از تورنت بگیرم باید برنامه +و دستورات دبیانی رو اجرا می‌کنه.</p> +<p>پس اگه مستقیم قرار بود فایل رو از تورنت بگیرم باید برنامه aria2 -رو نصب می‌کردم. برای نصب کافیه این دستور رو بزنیم</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!sudo apt-get install aria2 -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>دقت کنید که از علامت -<code>!</code> -قبل از دستور استفاده کردم.</p> -</blockquote> -<p>بعد از نصب، لینک رو می‌دیم به برنامه تا فایل ها رو برامون -دانلود کنه.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!aria2c <span class="s1">&#39;&lt;your magnet link&gt;&#39;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>به این دقت کنید که برنامه با کامند +رو نصب می‌کردم. برای نصب کافیه این دستور رو بزنیم</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!sudo apt-get install aria2 +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>دقت کنید که از علامت +<code>!</code> +قبل از دستور استفاده کردم.</p> +</blockquote> +<p>بعد از نصب، لینک رو می‌دیم به برنامه تا فایل ها رو برامون +دانلود کنه.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!aria2c <span class="s1">&#39;&lt;your magnet link&gt;&#39;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>به این دقت کنید که برنامه با کامند aria2c اجرا می‌شه. ولی با به اسم aria2 -نصب می‌شه.</p> -</blockquote> -<p>و یا اینکه لینک دانلود مستقیم رو به برنامه +نصب می‌شه.</p> +</blockquote> +<p>و یا اینکه لینک دانلود مستقیم رو به برنامه wget می‌دیم. این برنامه به صورت دیفالت نصب هست و لازم نیست -کار خاصی بکنیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!wget <span class="s1">&#39;&lt;your file link&gt;&#39;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p><img src="https://bit-orbit.github.io/images/post/wgetcolab.jpg" - - - - loading="lazy" - - alt="from google to telegram as cloud" - - -></p> -<p>بعد از اینکه فایل روی سرور گوگل دانلود شد کافیه فایل -رو به تلگرام آپلود کنیم! ولی قبل‌ش چند کاری هست که باید -باهم بکنیم.</p> -<ul> -<li>فایل من زیپه پس باید استخراج کنم.</li> -<li>فایل ها توی دایرکتوری های تو در تو قرار دارند، و باید همه فایل های مورد نظرم رو که توی این مورد +کار خاصی بکنیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!wget <span class="s1">&#39;&lt;your file link&gt;&#39;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p><img src="https://bit-orbit.github.io/images/post/wgetcolab.jpg" +loading="lazy" +alt="from google to telegram as cloud" +></p> +<p>بعد از اینکه فایل روی سرور گوگل دانلود شد کافیه فایل +رو به تلگرام آپلود کنیم! ولی قبل‌ش چند کاری هست که باید +باهم بکنیم.</p> +<ul> +<li>فایل من زیپه پس باید استخراج کنم.</li> +<li>فایل ها توی دایرکتوری های تو در تو قرار دارند، و باید همه فایل های مورد نظرم رو که توی این مورد mp3 هستند رو بیارم داخل پوشه‌ای که اسکریپت دیفالت آنجا ران -می‌شه.</li> -<li>نیاز به یک کانال تلگرام دارم که فایل ها مستقیم اونجا -اپلود بشوند</li> -<li>یک توکن ربات تلگرام هم نیازه که با استفاده از دسترسی -ربات به کانال، فایل ها رو اپلود کنیم.</li> -</ul> -<p>خب برای اسختراج فایل ها خیلی ساده از کامند -<code>unzip</code> -و اسم فایل جلوی این کامند استفاده می‌کنیم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!unzip &lt;your file name&gt; -</span></span></code></pre></td></tr></table> -</div> -</div><blockquote> -<p>با کامند -<code>ls</code> -نام فایلی که دانلود کردین رو می‌تونید ببینید.</p> -</blockquote> -<p><img src="https://bit-orbit.github.io/images/post/unzipcolab.jpg" - - - - loading="lazy" - - alt="uizip in colab" - - -></p> -<p>با اجرای کامند -<code>tree</code> -می‌تونید دایرکتوری های تو در تو رو ببینید.</p> -<p><img src="https://bit-orbit.github.io/images/post/treecolab.jpg" - - - - loading="lazy" - - alt="tree in colab" - - -></p> -<p>توی این مرحله من همه فایل های +می‌شه.</li> +<li>نیاز به یک کانال تلگرام دارم که فایل ها مستقیم اونجا +اپلود بشوند</li> +<li>یک توکن ربات تلگرام هم نیازه که با استفاده از دسترسی +ربات به کانال، فایل ها رو اپلود کنیم.</li> +</ul> +<p>خب برای اسختراج فایل ها خیلی ساده از کامند +<code>unzip</code> +و اسم فایل جلوی این کامند استفاده می‌کنیم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!unzip &lt;your file name&gt; +</span></span></code></pre></td></tr></table> +</div> +</div><blockquote> +<p>با کامند +<code>ls</code> +نام فایلی که دانلود کردین رو می‌تونید ببینید.</p> +</blockquote> +<p><img src="https://bit-orbit.github.io/images/post/unzipcolab.jpg" +loading="lazy" +alt="uizip in colab" +></p> +<p>با اجرای کامند +<code>tree</code> +می‌تونید دایرکتوری های تو در تو رو ببینید.</p> +<p><img src="https://bit-orbit.github.io/images/post/treecolab.jpg" +loading="lazy" +alt="tree in colab" +></p> +<p>توی این مرحله من همه فایل های mp3 رو باید بیارم توی پوشه اصلی که اسکریپت‌ اپلود اجرا میشه، دلیل این کار این هست که این اسکریپ‌ت فقط فایل های mp3 -داخل همین پوشه رو پیدا و اپلود می‌کنه.</p> -<p>برای انتقال این فایل ها از پوشه های تو در تو به یک پوشه از کامند -<code>find</code> +داخل همین پوشه رو پیدا و اپلود می‌کنه.</p> +<p>برای انتقال این فایل ها از پوشه های تو در تو به یک پوشه از کامند +<code>find</code> استفاده می‌کنم و هر فایل که پیدا می‌شه رو با کامند -<code>mv</code> -به پوشه اصلی‌مون انتقال می‌دم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!find . -type f -iname <span class="s1">&#39;*mp3&#39;</span> -exec mv <span class="o">{}</span> . <span class="se">\;</span> -</span></span></code></pre></td></tr></table> -</div> -</div><p>بیایید سوییچ های این دستور رو بهتون بگم</p> -<ul> -<li>type-</li> -</ul> -<p>این سوییچ انواع نوع فایل ها رو مشخص می‌کنه. مثلا شما می‌تونید دنبال یک دایرکتوری، فایل، سوکت و &hellip; بگردین</p> -<ul> -<li>iname-</li> -</ul> -<p>این سویچ که مشخص هست نام فایل رو ازتون می‌گیره که شما می‌تونید پترن ریجکس بدین بهش. +<code>mv</code> +به پوشه اصلی‌مون انتقال می‌دم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">!find . -type f -iname <span class="s1">&#39;*mp3&#39;</span> -exec mv <span class="o">{}</span> . <span class="se">\;</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>بیایید سوییچ های این دستور رو بهتون بگم</p> +<ul> +<li>type-</li> +</ul> +<p>این سوییچ انواع نوع فایل ها رو مشخص می‌کنه. مثلا شما می‌تونید دنبال یک دایرکتوری، فایل، سوکت و &hellip; بگردین</p> +<ul> +<li>iname-</li> +</ul> +<p>این سویچ که مشخص هست نام فایل رو ازتون می‌گیره که شما می‌تونید پترن ریجکس بدین بهش. و اون -<strong>i</strong> -مشخص می‌کنه که نام فایل به کوچیکی و بزرگی حساس نباشه.</p> -<ul> -<li>exec-</li> -</ul> -<p>یک کامندی رو ازتون می‌گیره و روی تک تک ریزالت های جست و جو اون کامند رو اجرا می‌کنه. +<strong>i</strong> +مشخص می‌کنه که نام فایل به کوچیکی و بزرگی حساس نباشه.</p> +<ul> +<li>exec-</li> +</ul> +<p>یک کامندی رو ازتون می‌گیره و روی تک تک ریزالت های جست و جو اون کامند رو اجرا می‌کنه. من کامند -<code>mv</code> +<code>mv</code> رو دادم که برای انتقال فایل استفاده می‌شه. علامت های -<strong>{}</strong> -هم یک متغییر هست که نام فایل تک به تک جای اون قرار می‌گیره.</p> -<blockquote> -<p>پایان سوییچ +<strong>{}</strong> +هم یک متغییر هست که نام فایل تک به تک جای اون قرار می‌گیره.</p> +<blockquote> +<p>پایان سوییچ exec همیشه با -<code>;\</code> -مشخص می‌شه.</p> -</blockquote> -<p>خب تا اینجا که خیلی ساده بود،‌ نه؟</p> -<p>مرحله آخر اینه که یک ربات با -<a class="link" href="https://t.me/BotFather" target="_blank" rel="noopener" - >این ربات</a> -بسازین، و بعد اون رو عضو یک کانالی که می‌سازید بکنید، کانال رو فعلا پابلیک بسازید و یک یوزرنیم بهش بدین.</p> -<p>توکن ربات رو کپی کنید و توی اسکریپت من، جایی که نوشته -<your token> +<code>;\</code> +مشخص می‌شه.</p> +</blockquote> +<p>خب تا اینجا که خیلی ساده بود،‌ نه؟</p> +<p>مرحله آخر اینه که یک ربات با +<a class="link" href="https://t.me/BotFather" target="_blank" rel="noopener" +>این ربات</a> +بسازین، و بعد اون رو عضو یک کانالی که می‌سازید بکنید، کانال رو فعلا پابلیک بسازید و یک یوزرنیم بهش بدین.</p> +<p>توکن ربات رو کپی کنید و توی اسکریپت من، جایی که نوشته +<your token> وارد کنید و توی قسمت -<chat id> -هم ایدی کانالتون رو با علامت @ اول جایگذاری کنید.</p> -<p><img src="https://bit-orbit.github.io/images/post/acdccolab.jpg" - - - - loading="lazy" - - alt="ac and dc telegram channel" - - -></p> -<blockquote> -<p>اگه کانال پرایوت دارید باید بجای ای‌دی کانال از +<chat id> +هم ایدی کانالتون رو با علامت @ اول جایگذاری کنید.</p> +<p><img src="https://bit-orbit.github.io/images/post/acdccolab.jpg" +loading="lazy" +alt="ac and dc telegram channel" +></p> +<blockquote> +<p>اگه کانال پرایوت دارید باید بجای ای‌دی کانال از chatid -استفاده کنید، که یک ای‌دی عددی هست.</p> -</blockquote> -<p><strong>تمام</strong>!‌ -کافیه برنامه رو اجرا کنید و کانال تلگرامتون رو نگاه کنید :)</p> -<blockquote> -<p>اگه خیلی زیاد دارین فایل اپلود می‌کنید احتمالا تلگرام ارور +استفاده کنید، که یک ای‌دی عددی هست.</p> +</blockquote> +<p><strong>تمام</strong>!‌ +کافیه برنامه رو اجرا کنید و کانال تلگرامتون رو نگاه کنید :)</p> +<blockquote> +<p>اگه خیلی زیاد دارین فایل اپلود می‌کنید احتمالا تلگرام ارور flood mood بهتون بده. توی این مورد کافیه فقط صبر کنید، اسکریپت از اجرا قطع نمی‌شه و روی همون فایل مجددا اجرا می‌شه -تا بالاخره فایل اپلود بشه.</p> -</blockquote> -<blockquote> -<p>هرچیزی رو می‌تونید آپلود کنید ولی دقت کنید که ربات ها محدودیت حجم اپلود دارن که نهایتش 50MB هست</p> -</blockquote> -<blockquote> -<p>اینم بگم که توی اسکریپت اگه +تا بالاخره فایل اپلود بشه.</p> +</blockquote> +<blockquote> +<p>هرچیزی رو می‌تونید آپلود کنید ولی دقت کنید که ربات ها محدودیت حجم اپلود دارن که نهایتش 50MB هست</p> +</blockquote> +<blockquote> +<p>اینم بگم که توی اسکریپت اگه mp3 -رو به چیز دیگه‌ای تغییر بدین، اسکریپت به دنبال اون پسوند ها خواهد گشت.</p> -</blockquote> - - - - - +رو به چیز دیگه‌ای تغییر بدین، اسکریپت به دنبال اون پسوند ها خواهد گشت.</p> +</blockquote> \ No newline at end of file diff --git "a/docs/tags/\332\206\330\267\331\210\330\261\333\214-\330\250\330\247-\330\263\330\261\331\210\330\261-\330\250\331\207-\330\252\331\204\332\257\330\261\330\247\331\205-\331\201\330\247\333\214\331\204-\330\247\331\276\331\204\331\210\330\257-\332\251\331\206\333\214\331\205/page/1/index.html" "b/docs/tags/\332\206\330\267\331\210\330\261\333\214-\330\250\330\247-\330\263\330\261\331\210\330\261-\330\250\331\207-\330\252\331\204\332\257\330\261\330\247\331\205-\331\201\330\247\333\214\331\204-\330\247\331\276\331\204\331\210\330\257-\332\251\331\206\333\214\331\205/page/1/index.html" index e268720..20f2eb6 100644 --- "a/docs/tags/\332\206\330\267\331\210\330\261\333\214-\330\250\330\247-\330\263\330\261\331\210\330\261-\330\250\331\207-\330\252\331\204\332\257\330\261\330\247\331\205-\331\201\330\247\333\214\331\204-\330\247\331\276\331\204\331\210\330\257-\332\251\331\206\333\214\331\205/page/1/index.html" +++ "b/docs/tags/\332\206\330\267\331\210\330\261\333\214-\330\250\330\247-\330\263\330\261\331\210\330\261-\330\250\331\207-\330\252\331\204\332\257\330\261\330\247\331\205-\331\201\330\247\333\214\331\204-\330\247\331\276\331\204\331\210\330\257-\332\251\331\206\333\214\331\205/page/1/index.html" @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/%DA%86%D8%B7%D9%88%D8%B1%DB%8C-%D8%A8%D8%A7-%D8%B3%D8%B1%D9%88%D8%B1-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85-%D9%81%D8%A7%DB%8C%D9%84-%D8%A7%D9%BE%D9%84%D9%88%D8%AF-%DA%A9%D9%86%DB%8C%D9%85/ - - - - - - +https://bit-orbit.github.io/tags/%DA%86%D8%B7%D9%88%D8%B1%DB%8C-%D8%A8%D8%A7-%D8%B3%D8%B1%D9%88%D8%B1-%D8%A8%D9%87-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85-%D9%81%D8%A7%DB%8C%D9%84-%D8%A7%D9%BE%D9%84%D9%88%D8%AF-%DA%A9%D9%86%DB%8C%D9%85/ + \ No newline at end of file diff --git "a/docs/tags/\332\251\330\247\331\206\331\201\333\214\332\257-\332\251\330\261\330\257\331\206-dns-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263/index.html" "b/docs/tags/\332\251\330\247\331\206\331\201\333\214\332\257-\332\251\330\261\330\257\331\206-dns-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263/index.html" index d7aac70..c14c0bc 100644 --- "a/docs/tags/\332\251\330\247\331\206\331\201\333\214\332\257-\332\251\330\261\330\257\331\206-dns-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263/index.html" +++ "b/docs/tags/\332\251\330\247\331\206\331\201\333\214\332\257-\332\251\330\261\330\257\331\206-dns-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263/index.html" @@ -1,559 +1,37 @@ - - - - -Tag: کانفیگ کردن DNS در لینوکس - bit-orbit - - - - - - - - - - - - - - - -
- - - - -
-
-

- - Tags - -

- -
-
-

1 صفحه

-

کانفیگ کردن DNS در لینوکس

- -
-
-
- -
- - - -
-
- - -
- قدرت گرفته از Hugo
- قالب Stack ساخته شده توسط Jimmy -
-
- - -
-
- - - - - +Tag: کانفیگ کردن DNS در لینوکس - bit-orbit +

Tags

1 صفحه

کانفیگ کردن DNS در لینوکس

قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy
\ No newline at end of file diff --git "a/docs/tags/\332\251\330\247\331\206\331\201\333\214\332\257-\332\251\330\261\330\257\331\206-dns-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263/index.xml" "b/docs/tags/\332\251\330\247\331\206\331\201\333\214\332\257-\332\251\330\261\330\257\331\206-dns-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263/index.xml" index bc81b94..a782431 100644 --- "a/docs/tags/\332\251\330\247\331\206\331\201\333\214\332\257-\332\251\330\261\330\257\331\206-dns-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263/index.xml" +++ "b/docs/tags/\332\251\330\247\331\206\331\201\333\214\332\257-\332\251\330\261\330\257\331\206-dns-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263/index.xml" @@ -1,32 +1,18 @@ - - - - کانفیگ کردن DNS در لینوکس on bit-orbit - https://bit-orbit.github.io/tags/%DA%A9%D8%A7%D9%86%D9%81%DB%8C%DA%AF-%DA%A9%D8%B1%D8%AF%D9%86-dns-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3/ - Recent content in کانفیگ کردن DNS در لینوکس on bit-orbit - Hugo -- gohugo.io - fa - Thu, 01 Aug 2024 03:03:46 +0330 - etc/resolve.conf/ - https://bit-orbit.github.io/p/etc/resolve.conf/ - Thu, 01 Aug 2024 03:03:46 +0330 - - https://bit-orbit.github.io/p/etc/resolve.conf/ - <img src="https://bit-orbit.github.io/images/post/OIG4.jpeg" alt="Featured image of post etc/resolve.conf/" /><span style='font-size: 25px'> -<h3 id="مقدمه">مقدمه</h3> -<p>همیشه موقع ویرایش فایل -<em>resolve.conf</em> +کانفیگ کردن DNS در لینوکس on bit-orbithttps://bit-orbit.github.io/tags/%DA%A9%D8%A7%D9%86%D9%81%DB%8C%DA%AF-%DA%A9%D8%B1%D8%AF%D9%86-dns-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3/Recent content in کانفیگ کردن DNS در لینوکس on bit-orbitHugo -- gohugo.iofaThu, 01 Aug 2024 03:03:46 +0330etc/resolve.conf/https://bit-orbit.github.io/p/etc/resolve.conf/Thu, 01 Aug 2024 03:03:46 +0330https://bit-orbit.github.io/p/etc/resolve.conf/<img src="https://bit-orbit.github.io/images/post/OIG4.jpeg" alt="Featured image of post etc/resolve.conf/" /><span style='font-size: 25px'> +<h3 id="مقدمه">مقدمه +</h3><p>همیشه موقع ویرایش فایل +<em>resolve.conf</em> برام سوال بود که گزین های دیگه‌ای که توی این فایل تنظیم شده‌اند چکاری انجام می‌دهند. درواقع من همیشه دستور -<code>namveserver</code> +<code>namveserver</code> را برای تغییر سرور -<em>dns</em> +<em>dns</em> ویرایش می‌کردم. اما دستور هایی دیگه‌ای هم برای این فایل وجود دارد که لیست آنها در -<code>man resolve.conf</code> -توضیح داده شده است.</p> -<p>توی این پست من بعضی از دستورات این فایل را توضیح می‌دم.</p> -<blockquote> -<p>در مرحله اول یادتون باشه لینوکس هایی که +<code>man resolve.conf</code> +توضیح داده شده است.</p> +<p>توی این پست من بعضی از دستورات این فایل را توضیح می‌دم.</p> +<blockquote> +<p>در مرحله اول یادتون باشه لینوکس هایی که systemd دارند، معمولا از سرویس systemd-resolved @@ -36,48 +22,48 @@ DNS resolve می‌کند و سپس آنها را کش می‌کند که یک دامنه را چندین بار resolve -نکند.</p> -</blockquote> -<blockquote> -<p>یک دامنه حد اقل از <em>دو</em> بخش تشکیل می‌شود.</p> -<ol> -<li>TLD</li> -<li>Domain</li> -</ol> -</blockquote> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span><span class="lnt">3 -</span><span class="lnt">4 -</span><span class="lnt">5 -</span><span class="lnt">6 -</span><span class="lnt">7 -</span><span class="lnt">8 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">bin.example.com -</span></span><span class="line"><span class="cl">│ │ │ -</span></span><span class="line"><span class="cl">│ │ └─► TDL(Top Level Domain) -</span></span><span class="line"><span class="cl">│ │ -</span></span><span class="line"><span class="cl">│ └───────► Domain -</span></span><span class="line"><span class="cl">│ -</span></span><span class="line"><span class="cl">└─────────────► SubDomain -</span></span><span class="line"><span class="cl"> -</span></span></code></pre></td></tr></table> -</div> -</div><hr> -<h3 id="دستورات">دستورات</h3> -<ul> -<li> -<p>1 <code>nameserver</code></p> -<p>این دستور برای تعیین +نکند.</p> +</blockquote> +<blockquote> +<p>یک دامنه حد اقل از <em>دو</em> بخش تشکیل می‌شود.</p> +<ol> +<li>TLD</li> +<li>Domain</li> +</ol> +</blockquote> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span><span class="lnt">8 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">bin.example.com +</span></span><span class="line"><span class="cl">│ │ │ +</span></span><span class="line"><span class="cl">│ │ └─► TDL(Top Level Domain) +</span></span><span class="line"><span class="cl">│ │ +</span></span><span class="line"><span class="cl">│ └───────► Domain +</span></span><span class="line"><span class="cl">│ +</span></span><span class="line"><span class="cl">└─────────────► SubDomain +</span></span><span class="line"><span class="cl"> +</span></span></code></pre></td></tr></table> +</div> +</div><hr> +<h3 id="دستورات">دستورات +</h3><ul> +<li> +<p>1 <code>nameserver</code></p> +<p>این دستور برای تعیین IP یک سرور DNS -استفاده می‌شود.(در واقع اینجا منظورم یک سرویسی است که به نامه دامنه ها پاسخ دهد که به آن NS می‌گویم.)</p> -<p>شما می‌توانید تا حداقل سه +استفاده می‌شود.(در واقع اینجا منظورم یک سرویسی است که به نامه دامنه ها پاسخ دهد که به آن NS می‌گویم.)</p> +<p>شما می‌توانید تا حداقل سه IP لیست کنید، و resolver @@ -86,68 +72,68 @@ resolver NS جواب گو نباشد، از دیگر NS -های لیست شده استفاده خواهد شد.</p> -<p>اگر به همین ترتیب هر یک از +های لیست شده استفاده خواهد شد.</p> +<p>اگر به همین ترتیب هر یک از NS -ها جوابگو نباشد، کوئری ها از اول شروع می‌شود تا به حداکثر تعداد کوئری تعیین شده برسد.</p> -<p>برای مثال من می‌توانم چند +ها جوابگو نباشد، کوئری ها از اول شروع می‌شود تا به حداکثر تعداد کوئری تعیین شده برسد.</p> +<p>برای مثال من می‌توانم چند NS -مختلف را برای خودم تعیین کنم.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">nameserver 1.1.1.1 -</span></span><span class="line"><span class="cl">nameserver 8.8.8.8 -</span></span></code></pre></td></tr></table> -</div> -</div></li> -</ul> -<hr> -<ul> -<li> -<p>2 <code>options</code></p> -<p>برای این دستور متغیر های مختلفی را می‌توان تعیین کرد.</p> -<ul> -<li> -<p>2.1 <code>ndots</code></p> -<ul> -<li> -<p>حداقل هر دامنه‌ای در سطح اینترنت یک نقطه دارد، برای مثال +مختلف را برای خودم تعیین کنم.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">nameserver 1.1.1.1 +</span></span><span class="line"><span class="cl">nameserver 8.8.8.8 +</span></span></code></pre></td></tr></table> +</div> +</div></li> +</ul> +<hr> +<ul> +<li> +<p>2 <code>options</code></p> +<p>برای این دستور متغیر های مختلفی را می‌توان تعیین کرد.</p> +<ul> +<li> +<p>2.1 <code>ndots</code></p> +<ul> +<li> +<p>حداقل هر دامنه‌ای در سطح اینترنت یک نقطه دارد، برای مثال google.com یک نقطه دارد. شما می‌توانید با این متغیر تعین کنید که دامنه‌های در سطح اینترنت باید چند نقطه داشته باشند، هر نقطه نشانه ساب دامنه‌ است. -برای مثال به صورت پیشفرض این متغیر <em>1</em> تنظیم شده است. +برای مثال به صورت پیشفرض این متغیر <em>1</em> تنظیم شده است. به این معنی است که هر دامنه‌ای یک نقطه داشت، این دامنه در سطح اینترنت است. ولی اگر شما مقدار این متغیر را 2 تنظیم کنید، دامنه‌ای مثل -<code>google.com</code> +<code>google.com</code> بعنوان دامنه لوکال تشخیص داده خواهد شد و -<code>hostname</code> +<code>hostname</code> شما به اول دامنه اضافه خواهد شد. مثلا اگر -<code>hostname</code> +<code>hostname</code> شما -<code>arya</code> +<code>arya</code> باشد، دامنه به این شکل کوئری زده خواهد شد -<code>google.com.arya</code></p> -<p>در صورتی که شما برای جست و جوی یک دامنه از هیچ -<strong>TLD</strong> +<code>google.com.arya</code></p> +<p>در صورتی که شما برای جست و جوی یک دامنه از هیچ +<strong>TLD</strong> استفاده نکید، از -<code>hostname</code> +<code>hostname</code> و یا از مقداری که برای -<code>search</code> -مشخص کرده‌اید استفاده خواهد شد.</p> -</li> -</ul> -</li> -<li> -<p>2.2 <code>timeout</code></p> -<ul> -<li>این متغیر تعیین می‌کند که +<code>search</code> +مشخص کرده‌اید استفاده خواهد شد.</p> +</li> +</ul> +</li> +<li> +<p>2.2 <code>timeout</code></p> +<ul> +<li>این متغیر تعیین می‌کند که resolver چه مقدار زمانی باید منتظر جواب از سمت NS @@ -155,19 +141,19 @@ NS NS جواب نداد، از NS -های بعدی سوال کند.</li> -</ul> -</li> -<li> -<p>2.3 <code>attempts</code></p> -<ul> -<li>این متغیر تعین می‌کند که +های بعدی سوال کند.</li> +</ul> +</li> +<li> +<p>2.3 <code>attempts</code></p> +<ul> +<li>این متغیر تعین می‌کند که resolver در صورت جواب ندادن توسط NS -باید در نهایت چند کوئری دیگر ارسال کند.</li> -</ul> -<p>برای مثال اگر اولین +باید در نهایت چند کوئری دیگر ارسال کند.</li> +</ul> +<p>برای مثال اگر اولین NS پاسخ نداد، سوال از NS @@ -178,12 +164,12 @@ attempts attempts مجوع سوال ها از همه NS -ها است.)</p> -</li> -<li> -<p>2.4 <code>rotate</code></p> -<ul> -<li>به صورت پیشفرض کوئری های +ها است.)</p> +</li> +<li> +<p>2.4 <code>rotate</code></p> +<ul> +<li>به صورت پیشفرض کوئری های DNS همه برای اولین NS @@ -194,50 +180,50 @@ NS ها تقسیم کنیم، کافیست از این متغیر استفاده کنیم. اینکار باعث می‌شود که هر کوئری ها به صورت چرخشی به ترتیب به NS -های لیست شده ارسال شود.</li> -</ul> -</li> -</ul> -</li> -</ul> -<hr> -<ul> -<li>3 <code>search</code> +های لیست شده ارسال شود.</li> +</ul> +</li> +</ul> +</li> +</ul> +<hr> +<ul> +<li>3 <code>search</code> همانطور که در مثال بالا گفتم، ما نام دامنه ها را تنظیم می‌کنیم که حداقل وقتی یک نقطه دارند، resolver آنها را دامنه‌ در سطح اینترنت در نظر بگیرد و به NS کوئری بزند. ولی اگر هیچ نقطه‌ای نداشت و یا شما -<code>ndots</code> +<code>ndots</code> را بیشتر یا مساوی با 2 نتظیم کرده باشید، -<code>hostname</code> +<code>hostname</code> سیستم شما به آخر آن دامنه اضافه خواهد شد و یک دامنه داخلی (local) تلقی خواهد شد. اما اگر می‌خواهید قبل از اضافه شدن -<code>hostname</code> -به آن چیز دیگری اضافه کنید، کافیست متغیر سرچ را تعریف کنید و یک یا چند مقدار برای آن تعیین کنید.</li> -</ul> -<hr> -<h3 id="سرویس-systemd-resolve">سرویس systemd-resolve</h3> -<p>اگر به فایل +<code>hostname</code> +به آن چیز دیگری اضافه کنید، کافیست متغیر سرچ را تعریف کنید و یک یا چند مقدار برای آن تعیین کنید.</li> +</ul> +<hr> +<h3 id="سرویس-systemd-resolve">سرویس systemd-resolve +</h3><p>اگر به فایل /etc/resolve.conf نگاه کنید، می‌بینید که یک ns برای شما تنظیم شده است که IP -آن داخلی است.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl"># cat /etc/resolve.conf -</span></span><span class="line"><span class="cl">nameserver 127.0.0.53 -</span></span></code></pre></td></tr></table> -</div> -</div><p>همانطور که توی نکته‌ای در مقدمه این پست گفتم، +آن داخلی است.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl"># cat /etc/resolve.conf +</span></span><span class="line"><span class="cl">nameserver 127.0.0.53 +</span></span></code></pre></td></tr></table> +</div> +</div><p>همانطور که توی نکته‌ای در مقدمه این پست گفتم، سیستم عاملی هایی که از systemd استفاده می‌کنند معمولا سرویس @@ -249,80 +235,76 @@ IP 127.0.0.53 و 127.0.0.54 -شنود می‌کند.</p> -<p>این سرویس خودش یک کانفیگ در -<code>etc/ststemd/resolved.conf/</code> -دارد.</p> -<p>اگر داخل این فایل را نگاه کنیم، می‌بنیم که در قسمت +شنود می‌کند.</p> +<p>این سرویس خودش یک کانفیگ در +<code>etc/ststemd/resolved.conf/</code> +دارد.</p> +<p>اگر داخل این فایل را نگاه کنیم، می‌بنیم که در قسمت ‌DNS می‌توان NS های بالاتر را وارد کرد، اینکار باعث می‌شود که سیستم شما وقتی یک دامنه را در حافظه کش خود نداشت، از NS -های بالاتر که در این فایل تنظیم شده است سوال کند.</p> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt">1 -</span><span class="lnt">2 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">[Resolve] -</span></span><span class="line"><span class="cl">DNS=1.1.1.1 8.8.8.8 -</span></span></code></pre></td></tr></table> -</div> -</div><p>ابته تاکید کنم در صورتی از این +های بالاتر که در این فایل تنظیم شده است سوال کند.</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">[Resolve] +</span></span><span class="line"><span class="cl">DNS=1.1.1.1 8.8.8.8 +</span></span></code></pre></td></tr></table> +</div> +</div><p>ابته تاکید کنم در صورتی از این NS ها استفاده می‌شود که شما ‌از 127.0.0.53 و 127.0.0.54 در کانفیگ /etc/resolve.conf -استفاده کرده باشید.</p> -<blockquote> -<p>تفاوت 127.0.0.54 این است که هر کوئری را مستقیم به +استفاده کرده باشید.</p> +<blockquote> +<p>تفاوت 127.0.0.54 این است که هر کوئری را مستقیم به NS بالاتر ارسال خواهد کرد و از دیتای کش شده استفاده نمی‌کند. -ولی 127.0.0.53 از قابلیت کش استفاده می‌کند.</p> -</blockquote> -<hr> -<h3 id="مثال">مثال</h3> -<div class="highlight"><div class="chroma"> -<table class="lntable"><tr><td class="lntd"> -<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 -</span><span class="lnt"> 2 -</span><span class="lnt"> 3 -</span><span class="lnt"> 4 -</span><span class="lnt"> 5 -</span><span class="lnt"> 6 -</span><span class="lnt"> 7 -</span><span class="lnt"> 8 -</span><span class="lnt"> 9 -</span><span class="lnt">10 -</span></code></pre></td> -<td class="lntd"> -<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">nameserver 1.1.1.1 -</span></span><span class="line"><span class="cl">nameserver 8.8.8.8 -</span></span><span class="line"><span class="cl">nameserver 9.9.9.9 -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">options ndots:1 -</span></span><span class="line"><span class="cl">options timeout:2 -</span></span><span class="line"><span class="cl">options attempts:3 -</span></span><span class="line"><span class="cl">options rotate -</span></span><span class="line"><span class="cl"> -</span></span><span class="line"><span class="cl">search server1 server2 -</span></span></code></pre></td></tr></table> -</div> -</div><hr> -<h3 id="سخنی-با-شما">سخنی با شما</h3> -<p>این را بگم که +ولی 127.0.0.53 از قابلیت کش استفاده می‌کند.</p> +</blockquote> +<hr> +<h3 id="مثال">مثال +</h3><div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">nameserver 1.1.1.1 +</span></span><span class="line"><span class="cl">nameserver 8.8.8.8 +</span></span><span class="line"><span class="cl">nameserver 9.9.9.9 +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">options ndots:1 +</span></span><span class="line"><span class="cl">options timeout:2 +</span></span><span class="line"><span class="cl">options attempts:3 +</span></span><span class="line"><span class="cl">options rotate +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl">search server1 server2 +</span></span></code></pre></td></tr></table> +</div> +</div><hr> +<h3 id="سخنی-با-شما">سخنی با شما +</h3><p>این را بگم که DNS به صورت recursive(بازگشتی) عمل می‌کنه، این یعنی وقتی شما یک کوئری ارسال می‌کنید، این کوئری هر بار به یک سرور بالاتر ارسال می‌شود تا در نهایت به جواب برسه. و خب این موضوع خودش در نهایت یک جریان -خیلی جالب داره که امیدوارم یک روز اون رو هم بنویسم :)</p> -</span> - - - - +خیلی جالب داره که امیدوارم یک روز اون رو هم بنویسم :)</p> +</span> \ No newline at end of file diff --git "a/docs/tags/\332\251\330\247\331\206\331\201\333\214\332\257-\332\251\330\261\330\257\331\206-dns-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263/page/1/index.html" "b/docs/tags/\332\251\330\247\331\206\331\201\333\214\332\257-\332\251\330\261\330\257\331\206-dns-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263/page/1/index.html" index 1760231..d31ca3d 100644 --- "a/docs/tags/\332\251\330\247\331\206\331\201\333\214\332\257-\332\251\330\261\330\257\331\206-dns-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263/page/1/index.html" +++ "b/docs/tags/\332\251\330\247\331\206\331\201\333\214\332\257-\332\251\330\261\330\257\331\206-dns-\330\257\330\261-\331\204\333\214\331\206\331\210\332\251\330\263/page/1/index.html" @@ -1,10 +1,2 @@ - - - - https://bit-orbit.github.io/tags/%DA%A9%D8%A7%D9%86%D9%81%DB%8C%DA%AF-%DA%A9%D8%B1%D8%AF%D9%86-dns-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3/ - - - - - - +https://bit-orbit.github.io/tags/%DA%A9%D8%A7%D9%86%D9%81%DB%8C%DA%AF-%DA%A9%D8%B1%D8%AF%D9%86-dns-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3/ + \ No newline at end of file diff --git a/docs/ts/main.js b/docs/ts/main.js index 91ab333..69ec30f 100644 --- a/docs/ts/main.js +++ b/docs/ts/main.js @@ -1,7 +1,7 @@ -(()=>{var g=class e{galleryUID;items=[];constructor(t,r=1){if(window.PhotoSwipe==null||window.PhotoSwipeUI_Default==null){console.error("PhotoSwipe lib not loaded.");return}this.galleryUID=r,e.createGallery(t),this.loadItems(t),this.bindClick()}loadItems(t){this.items=[];let r=t.querySelectorAll("figure.gallery-image");for(let i of r){let n=i.querySelector("figcaption"),o=i.querySelector("img"),s={w:parseInt(o.getAttribute("width")),h:parseInt(o.getAttribute("height")),src:o.src,msrc:o.getAttribute("data-thumb")||o.src,el:i};n&&(s.title=n.innerHTML),this.items.push(s)}}static createGallery(t){let r=t.querySelectorAll("img.gallery-image");for(let o of Array.from(r)){let s=o.closest("p");if(!s||!t.contains(s)||(s.textContent.trim()==""&&s.classList.add("no-text"),!s.classList.contains("no-text")))continue;let d=o.parentElement.tagName=="A",m=o,a=document.createElement("figure");if(a.style.setProperty("flex-grow",o.getAttribute("data-flex-grow")||"1"),a.style.setProperty("flex-basis",o.getAttribute("data-flex-basis")||"0"),d&&(m=o.parentElement),m.parentElement.insertBefore(a,m),a.appendChild(m),o.hasAttribute("alt")){let l=document.createElement("figcaption");l.innerText=o.getAttribute("alt"),a.appendChild(l)}if(!d){a.className="gallery-image";let l=document.createElement("a");l.href=o.src,l.setAttribute("target","_blank"),o.parentNode.insertBefore(l,o),l.appendChild(o)}}let i=t.querySelectorAll("figure.gallery-image"),n=[];for(let o of i)n.length?o.previousElementSibling===n[n.length-1]?n.push(o):n.length&&(e.wrap(n),n=[o]):n=[o];n.length>0&&e.wrap(n)}static wrap(t){let r=document.createElement("div");r.className="gallery";let i=t[0].parentNode,n=t[0];i.insertBefore(r,n);for(let o of t)r.appendChild(o)}open(t){let r=document.querySelector(".pswp");new window.PhotoSwipe(r,window.PhotoSwipeUI_Default,this.items,{index:t,galleryUID:this.galleryUID,getThumbBoundsFn:n=>{let o=this.items[n].el.getElementsByTagName("img")[0],s=window.pageYOffset||document.documentElement.scrollTop,c=o.getBoundingClientRect();return{x:c.left,y:c.top+s,w:c.width}}}).init()}bindClick(){for(let[t,r]of this.items.entries())r.el.querySelector("a").addEventListener("click",n=>{n.preventDefault(),this.open(t)})}},b=g;var u={};if(localStorage.hasOwnProperty("StackColorsCache"))try{u=JSON.parse(localStorage.getItem("StackColorsCache"))}catch{u={}}async function S(e,t,r){if(!e)return await Vibrant.from(r).getPalette();if(!u.hasOwnProperty(e)||u[e].hash!==t){let i=await Vibrant.from(r).getPalette();u[e]={hash:t,Vibrant:{hex:i.Vibrant.hex,rgb:i.Vibrant.rgb,bodyTextColor:i.Vibrant.bodyTextColor},DarkMuted:{hex:i.DarkMuted.hex,rgb:i.DarkMuted.rgb,bodyTextColor:i.DarkMuted.bodyTextColor}},localStorage.setItem("StackColorsCache",JSON.stringify(u))}return u[e]}var D=(e,t=500)=>{e.classList.add("transiting"),e.style.transitionProperty="height, margin, padding",e.style.transitionDuration=t+"ms",e.style.height=e.offsetHeight+"px",e.offsetHeight,e.style.overflow="hidden",e.style.height="0",e.style.paddingTop="0",e.style.paddingBottom="0",e.style.marginTop="0",e.style.marginBottom="0",window.setTimeout(()=>{e.classList.remove("show"),e.style.removeProperty("height"),e.style.removeProperty("padding-top"),e.style.removeProperty("padding-bottom"),e.style.removeProperty("margin-top"),e.style.removeProperty("margin-bottom"),e.style.removeProperty("overflow"),e.style.removeProperty("transition-duration"),e.style.removeProperty("transition-property"),e.classList.remove("transiting")},t)},q=(e,t=500)=>{e.classList.add("transiting"),e.style.removeProperty("display"),e.classList.add("show");let r=e.offsetHeight;e.style.overflow="hidden",e.style.height="0",e.style.paddingTop="0",e.style.paddingBottom="0",e.style.marginTop="0",e.style.marginBottom="0",e.offsetHeight,e.style.transitionProperty="height, margin, padding",e.style.transitionDuration=t+"ms",e.style.height=r+"px",e.style.removeProperty("padding-top"),e.style.removeProperty("padding-bottom"),e.style.removeProperty("margin-top"),e.style.removeProperty("margin-bottom"),window.setTimeout(()=>{e.style.removeProperty("height"),e.style.removeProperty("overflow"),e.style.removeProperty("transition-duration"),e.style.removeProperty("transition-property"),e.classList.remove("transiting")},t)},B=(e,t=500)=>window.getComputedStyle(e).display==="none"?q(e,t):D(e,t);function v(){let e=document.getElementById("toggle-menu");e&&e.addEventListener("click",()=>{document.getElementById("main-menu").classList.contains("transiting")||(document.body.classList.toggle("show-menu"),B(document.getElementById("main-menu"),300),e.classList.toggle("is-active"))})}function N(e,t,r){var i=document.createElement(e);for(let n in t)if(n&&t.hasOwnProperty(n)){let o=t[n];n=="dangerouslySetInnerHTML"?i.innerHTML=o.__html:o===!0?i.setAttribute(n,n):o!==!1&&o!=null&&i.setAttribute(n,o.toString())}for(let n=2;n{this.isDark()?this.currentScheme="light":this.currentScheme="dark",this.setBodyClass(),this.currentScheme==this.systemPreferScheme&&(this.currentScheme="auto"),this.saveScheme()})}isDark(){return this.currentScheme=="dark"||this.currentScheme=="auto"&&this.systemPreferScheme=="dark"}dispatchEvent(t){let r=new CustomEvent("onColorSchemeChange",{detail:t});window.dispatchEvent(r)}setBodyClass(){this.isDark()?document.documentElement.dataset.scheme="dark":document.documentElement.dataset.scheme="light",this.dispatchEvent(document.documentElement.dataset.scheme)}getSavedScheme(){let t=localStorage.getItem(this.localStorageKey);return t=="light"||t=="dark"||t=="auto"?t:"auto"}bindMatchMedia(){window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",t=>{t.matches?this.systemPreferScheme="dark":this.systemPreferScheme="light",this.setBodyClass()})}},E=y;function p(e){let t;return()=>{t&&window.cancelAnimationFrame(t),t=window.requestAnimationFrame(()=>e())}}var O=".article-content h1[id], .article-content h2[id], .article-content h3[id], .article-content h4[id], .article-content h5[id], .article-content h6[id]",T="#TableOfContents",L="#TableOfContents li",k="active-class";function V(e,t){let r=e.querySelector("a").offsetHeight,i=e.offsetTop-t.offsetHeight/2+r/2-t.offsetTop;i<0&&(i=0),t.scrollTo({top:i,behavior:"smooth"})}function U(e){let t={};return e.forEach(r=>{let n=r.querySelector("a").getAttribute("href");n.startsWith("#")&&(t[n.slice(1)]=r)}),t}function C(e){let t=[];return e.forEach(r=>{t.push({id:r.id,offset:r.offsetTop})}),t.sort((r,i)=>r.offset-i.offset),t}function M(){let e=document.querySelectorAll(O);if(!e){console.warn("No header matched query",e);return}let t=document.querySelector(T);if(!t){console.warn("No toc matched query",T);return}let r=document.querySelectorAll(L);if(!r){console.warn("No navigation matched query",L);return}let i=C(e),n=!1;t.addEventListener("mouseenter",p(()=>n=!0)),t.addEventListener("mouseleave",p(()=>n=!1));let o,s=U(r);function c(){let m=document.documentElement.scrollTop||document.body.scrollTop,a;i.forEach(f=>{m>=f.offset-20&&(a=document.getElementById(f.id))});let l;a&&(l=s[a.id]),a&&!l?console.debug("No link found for section",a):l!==o&&(o&&o.classList.remove(k),l&&(l.classList.add(k),n||V(l,t)),o=l)}window.addEventListener("scroll",p(c));function d(){i=C(e),c()}window.addEventListener("resize",p(d))}var $="a[href]";function P(){document.querySelectorAll($).forEach(e=>{e.getAttribute("href").startsWith("#")&&e.addEventListener("click",r=>{r.preventDefault();let i=decodeURI(e.getAttribute("href").substring(1)),n=document.getElementById(i),o=n.getBoundingClientRect().top-document.documentElement.getBoundingClientRect().top;window.history.pushState({},"",e.getAttribute("href")),scrollTo({top:o,behavior:"smooth"})})})}var x={init:()=>{v();let e=document.querySelector(".article-content");e&&(new b(e),P(),M());let t=document.querySelector(".article-list--tile");t&&new IntersectionObserver(async(s,c)=>{s.forEach(d=>{if(!d.isIntersecting)return;c.unobserve(d.target),d.target.querySelectorAll("article.has-image").forEach(async a=>{let l=a.querySelector("img"),f=l.src,H=l.getAttribute("data-key"),I=l.getAttribute("data-hash"),A=a.querySelector(".article-details"),h=await S(H,I,f);A.style.background=` +(()=>{var g=class e{galleryUID;items=[];constructor(t,r=1){if(window.PhotoSwipe==null||window.PhotoSwipeUI_Default==null){console.error("PhotoSwipe lib not loaded.");return}this.galleryUID=r,e.createGallery(t),this.loadItems(t),this.bindClick()}loadItems(t){this.items=[];let r=t.querySelectorAll("figure.gallery-image");for(let i of r){let n=i.querySelector("figcaption"),o=i.querySelector("img"),s={w:parseInt(o.getAttribute("width")),h:parseInt(o.getAttribute("height")),src:o.src,msrc:o.getAttribute("data-thumb")||o.src,el:i};n&&(s.title=n.innerHTML),this.items.push(s)}}static createGallery(t){let r=t.querySelectorAll("img.gallery-image");for(let o of Array.from(r)){let s=o.closest("p");if(!s||!t.contains(s)||(s.textContent.trim()==""&&s.classList.add("no-text"),!s.classList.contains("no-text")))continue;let d=o.parentElement.tagName=="A",m=o,c=document.createElement("figure");if(c.style.setProperty("flex-grow",o.getAttribute("data-flex-grow")||"1"),c.style.setProperty("flex-basis",o.getAttribute("data-flex-basis")||"0"),d&&(m=o.parentElement),m.parentElement.insertBefore(c,m),c.appendChild(m),o.hasAttribute("alt")){let l=document.createElement("figcaption");l.innerText=o.getAttribute("alt"),c.appendChild(l)}if(!d){c.className="gallery-image";let l=document.createElement("a");l.href=o.src,l.setAttribute("target","_blank"),o.parentNode.insertBefore(l,o),l.appendChild(o)}}let i=t.querySelectorAll("figure.gallery-image"),n=[];for(let o of i)n.length?o.previousElementSibling===n[n.length-1]?n.push(o):n.length&&(e.wrap(n),n=[o]):n=[o];n.length>0&&e.wrap(n)}static wrap(t){let r=document.createElement("div");r.className="gallery";let i=t[0].parentNode,n=t[0];i.insertBefore(r,n);for(let o of t)r.appendChild(o)}open(t){let r=document.querySelector(".pswp");new window.PhotoSwipe(r,window.PhotoSwipeUI_Default,this.items,{index:t,galleryUID:this.galleryUID,getThumbBoundsFn:n=>{let o=this.items[n].el.getElementsByTagName("img")[0],s=window.pageYOffset||document.documentElement.scrollTop,a=o.getBoundingClientRect();return{x:a.left,y:a.top+s,w:a.width}}}).init()}bindClick(){for(let[t,r]of this.items.entries())r.el.querySelector("a").addEventListener("click",n=>{n.preventDefault(),this.open(t)})}},b=g;var h={};if(localStorage.hasOwnProperty("StackColorsCache"))try{h=JSON.parse(localStorage.getItem("StackColorsCache"))}catch{h={}}async function S(e,t,r){if(!e)return await Vibrant.from(r).getPalette();if(!h.hasOwnProperty(e)||h[e].hash!==t){let i=await Vibrant.from(r).getPalette();h[e]={hash:t,Vibrant:{hex:i.Vibrant.hex,rgb:i.Vibrant.rgb,bodyTextColor:i.Vibrant.bodyTextColor},DarkMuted:{hex:i.DarkMuted.hex,rgb:i.DarkMuted.rgb,bodyTextColor:i.DarkMuted.bodyTextColor}},localStorage.setItem("StackColorsCache",JSON.stringify(h))}return h[e]}var D=(e,t=500)=>{e.classList.add("transiting"),e.style.transitionProperty="height, margin, padding",e.style.transitionDuration=t+"ms",e.style.height=e.offsetHeight+"px",e.offsetHeight,e.style.overflow="hidden",e.style.height="0",e.style.paddingTop="0",e.style.paddingBottom="0",e.style.marginTop="0",e.style.marginBottom="0",window.setTimeout(()=>{e.classList.remove("show"),e.style.removeProperty("height"),e.style.removeProperty("padding-top"),e.style.removeProperty("padding-bottom"),e.style.removeProperty("margin-top"),e.style.removeProperty("margin-bottom"),e.style.removeProperty("overflow"),e.style.removeProperty("transition-duration"),e.style.removeProperty("transition-property"),e.classList.remove("transiting")},t)},q=(e,t=500)=>{e.classList.add("transiting"),e.style.removeProperty("display"),e.classList.add("show");let r=e.offsetHeight;e.style.overflow="hidden",e.style.height="0",e.style.paddingTop="0",e.style.paddingBottom="0",e.style.marginTop="0",e.style.marginBottom="0",e.offsetHeight,e.style.transitionProperty="height, margin, padding",e.style.transitionDuration=t+"ms",e.style.height=r+"px",e.style.removeProperty("padding-top"),e.style.removeProperty("padding-bottom"),e.style.removeProperty("margin-top"),e.style.removeProperty("margin-bottom"),window.setTimeout(()=>{e.style.removeProperty("height"),e.style.removeProperty("overflow"),e.style.removeProperty("transition-duration"),e.style.removeProperty("transition-property"),e.classList.remove("transiting")},t)},B=(e,t=500)=>window.getComputedStyle(e).display==="none"?q(e,t):D(e,t);function w(){let e=document.getElementById("toggle-menu");e&&e.addEventListener("click",()=>{document.getElementById("main-menu").classList.contains("transiting")||(document.body.classList.toggle("show-menu"),B(document.getElementById("main-menu"),300),e.classList.toggle("is-active"))})}function N(e,t,r){var i=document.createElement(e);for(let n in t)if(n&&t.hasOwnProperty(n)){let o=t[n];n=="dangerouslySetInnerHTML"?i.innerHTML=o.__html:o===!0?i.setAttribute(n,n):o!==!1&&o!=null&&i.setAttribute(n,o.toString())}for(let n=2;n{this.isDark()?this.currentScheme="light":this.currentScheme="dark",this.setBodyClass(),this.currentScheme==this.systemPreferScheme&&(this.currentScheme="auto"),this.saveScheme()})}isDark(){return this.currentScheme=="dark"||this.currentScheme=="auto"&&this.systemPreferScheme=="dark"}dispatchEvent(t){let r=new CustomEvent("onColorSchemeChange",{detail:t});window.dispatchEvent(r)}setBodyClass(){this.isDark()?document.documentElement.dataset.scheme="dark":document.documentElement.dataset.scheme="light",this.dispatchEvent(document.documentElement.dataset.scheme)}getSavedScheme(){let t=localStorage.getItem(this.localStorageKey);return t=="light"||t=="dark"||t=="auto"?t:"auto"}bindMatchMedia(){window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",t=>{t.matches?this.systemPreferScheme="dark":this.systemPreferScheme="light",this.setBodyClass()})}},E=y;function p(e){let t;return()=>{t&&window.cancelAnimationFrame(t),t=window.requestAnimationFrame(()=>e())}}var O=".article-content h1[id], .article-content h2[id], .article-content h3[id], .article-content h4[id], .article-content h5[id], .article-content h6[id]",T="#TableOfContents",L="#TableOfContents li",k="active-class";function V(e,t){let r=e.querySelector("a").offsetHeight,i=e.offsetTop-t.offsetHeight/2+r/2-t.offsetTop;i<0&&(i=0),t.scrollTo({top:i,behavior:"smooth"})}function U(e){let t={};return e.forEach(r=>{let n=r.querySelector("a").getAttribute("href");n.startsWith("#")&&(t[n.slice(1)]=r)}),t}function C(e){let t=[];return e.forEach(r=>{t.push({id:r.id,offset:r.offsetTop})}),t.sort((r,i)=>r.offset-i.offset),t}function M(){let e=document.querySelectorAll(O);if(!e){console.warn("No header matched query",e);return}let t=document.querySelector(T);if(!t){console.warn("No toc matched query",T);return}let r=document.querySelectorAll(L);if(!r){console.warn("No navigation matched query",L);return}let i=C(e),n=!1;t.addEventListener("mouseenter",p(()=>n=!0)),t.addEventListener("mouseleave",p(()=>n=!1));let o,s=U(r);function a(){let m=document.documentElement.scrollTop||document.body.scrollTop,c;i.forEach(f=>{m>=f.offset-20&&(c=document.getElementById(f.id))});let l;c&&(l=s[c.id]),c&&!l?console.debug("No link found for section",c):l!==o&&(o&&o.classList.remove(k),l&&(l.classList.add(k),n||V(l,t)),o=l)}window.addEventListener("scroll",p(a));function d(){i=C(e),a()}window.addEventListener("resize",p(d))}var $="a[href]";function P(){document.querySelectorAll($).forEach(e=>{e.getAttribute("href").startsWith("#")&&e.addEventListener("click",r=>{r.preventDefault();let i=decodeURI(e.getAttribute("href").substring(1)),n=document.getElementById(i),o=n.getBoundingClientRect().top-document.documentElement.getBoundingClientRect().top;window.history.pushState({},"",e.getAttribute("href")),scrollTo({top:o,behavior:"smooth"})})})}var x={init:()=>{w();let e=document.querySelector(".article-content");e&&(new b(e),P(),M());let t=document.querySelector(".article-list--tile");t&&new IntersectionObserver(async(s,a)=>{s.forEach(d=>{if(!d.isIntersecting)return;a.unobserve(d.target),d.target.querySelectorAll("article.has-image").forEach(async c=>{let l=c.querySelector("img"),f=l.src,H=l.getAttribute("data-key"),I=l.getAttribute("data-hash"),A=c.querySelector(".article-details"),u=await S(H,I,f);A.style.background=` linear-gradient(0deg, - rgba(${h.DarkMuted.rgb[0]}, ${h.DarkMuted.rgb[1]}, ${h.DarkMuted.rgb[2]}, 0.5) 0%, - rgba(${h.Vibrant.rgb[0]}, ${h.Vibrant.rgb[1]}, ${h.Vibrant.rgb[2]}, 0.75) 100%)`})})}).observe(t);let r=document.querySelectorAll(".article-content div.highlight"),i="Copy",n="Copied!";r.forEach(o=>{let s=document.createElement("button");s.innerHTML=i,s.classList.add("copyCodeButton"),o.appendChild(s);let c=o.querySelector("code[data-lang]");c&&s.addEventListener("click",()=>{navigator.clipboard.writeText(c.textContent).then(()=>{s.textContent=n,setTimeout(()=>{s.textContent=i},1e3)}).catch(d=>{alert(d),console.log("Something went wrong",d)})})}),new E(document.getElementById("dark-mode-toggle"))}};window.addEventListener("load",()=>{setTimeout(function(){x.init()},0)});window.Stack=x;window.createElement=w;})(); + rgba(${u.DarkMuted.rgb[0]}, ${u.DarkMuted.rgb[1]}, ${u.DarkMuted.rgb[2]}, 0.5) 0%, + rgba(${u.Vibrant.rgb[0]}, ${u.Vibrant.rgb[1]}, ${u.Vibrant.rgb[2]}, 0.75) 100%)`})})}).observe(t);let r=document.querySelectorAll(".article-content div.highlight"),i="Copy",n="Copied!";r.forEach(o=>{let s=document.createElement("button");s.innerHTML=i,s.classList.add("copyCodeButton"),o.appendChild(s);let a=o.querySelector("code[data-lang]");a&&s.addEventListener("click",()=>{navigator.clipboard.writeText(a.textContent).then(()=>{s.textContent=n,setTimeout(()=>{s.textContent=i},1e3)}).catch(d=>{alert(d),console.log("Something went wrong",d)})})}),new E(document.getElementById("dark-mode-toggle"))}};window.addEventListener("load",()=>{setTimeout(function(){x.init()},0)});window.Stack=x;window.createElement=v;})(); /*! * Hugo Theme Stack * diff --git a/resources/_gen/assets/scss/style.scss_77b10c8e87ff110a62c52933fe3f7f11.content b/resources/_gen/assets/scss/style.scss_77b10c8e87ff110a62c52933fe3f7f11.content index bb25dfd..9b90269 100644 --- a/resources/_gen/assets/scss/style.scss_77b10c8e87ff110a62c52933fe3f7f11.content +++ b/resources/_gen/assets/scss/style.scss_77b10c8e87ff110a62c52933fe3f7f11.content @@ -7,4 +7,4 @@ * @description Tasty CSS-animated hamburgers * @author Jonathan Suh @jonsuh * @site https://jonsuh.com/hamburgers -* @link https://github.com/jonsuh/hamburgers*/.hamburger{padding-top:10px;display:inline-block;cursor:pointer;transition-property:opacity,filter;transition-duration:.15s;transition-timing-function:linear;font:inherit;color:inherit;text-transform:none;background-color:transparent;border:0;margin:0;overflow:visible}.hamburger:hover{opacity:.7}.hamburger.is-active:hover{opacity:.7}.hamburger.is-active .hamburger-inner,.hamburger.is-active .hamburger-inner::before,.hamburger.is-active .hamburger-inner::after{background-color:#000}.hamburger-box{width:30px;height:24px;display:inline-block;position:relative}.hamburger-inner{display:block;top:50%;margin-top:-2px}.hamburger-inner,.hamburger-inner::before,.hamburger-inner::after{width:30px;height:2px;background-color:var(--card-text-color-main);border-radius:4px;position:absolute;transition-property:transform;transition-duration:.15s;transition-timing-function:ease}.hamburger-inner::before,.hamburger-inner::after{content:"";display:block}.hamburger-inner::before{top:-10px}.hamburger-inner::after{bottom:-10px}.hamburger--spin .hamburger-inner{transition-duration:.22s;transition-timing-function:cubic-bezier(.55,.055,.675,.19)}.hamburger--spin .hamburger-inner::before{transition:top .1s .25s ease-in,opacity .1s ease-in}.hamburger--spin .hamburger-inner::after{transition:bottom .1s .25s ease-in,transform .22s cubic-bezier(.55,.055,.675,.19)}.hamburger--spin.is-active .hamburger-inner{transform:rotate(225deg);transition-delay:.12s;transition-timing-function:cubic-bezier(.215,.61,.355,1)}.hamburger--spin.is-active .hamburger-inner::before{top:0;opacity:0;transition:top .1s ease-out,opacity .1s .12s ease-out}.hamburger--spin.is-active .hamburger-inner::after{bottom:0;transform:rotate(-90deg);transition:bottom .1s ease-out,transform .22s .12s cubic-bezier(.215,.61,.355,1)}#toggle-menu{background:0 0;border:none;position:absolute;right:0;top:0;z-index:2;cursor:pointer;outline:none}[dir=rtl] #toggle-menu{left:0;right:auto}@media(min-width:768px){#toggle-menu{display:none}}#toggle-menu.is-active .hamburger-inner,#toggle-menu.is-active .hamburger-inner::before,#toggle-menu.is-active .hamburger-inner::after{background-color:var(--accent-color)}.menu{padding-left:0;list-style:none;flex-direction:column;overflow-y:auto;flex-grow:1;font-size:1.4rem;background-color:var(--card-background);box-shadow:var(--shadow-l1);display:none;margin:0 calc(var(--container-padding) * -1);padding:30px}@media(min-width:1280px){.menu{padding:15px 0}}.menu,.menu .menu-bottom-section{gap:30px}@media(min-width:1280px){.menu,.menu .menu-bottom-section{gap:25px}}.menu.show{display:flex}@media(min-width:768px){.menu{align-items:flex-end;display:flex;background-color:transparent;padding:0;box-shadow:none;margin:0}}.menu li{position:relative;vertical-align:middle;padding:0}@media(min-width:768px){.menu li{width:100%}}.menu li svg{stroke:currentColor;stroke-width:1.33;width:20px;height:20px}.menu li a{height:100%;display:inline-flex;align-items:center;color:var(--body-text-color);gap:var(--menu-icon-separation)}.menu li span{flex:1}.menu li.current a{color:var(--accent-color);font-weight:700}.menu .menu-bottom-section{margin-top:auto;display:flex;flex-direction:column;width:100%}.social-menu{list-style:none;padding:0;margin:0;display:flex;flex-direction:row;gap:10px}.social-menu svg{width:24px;height:24px;stroke:var(--body-text-color);stroke-width:1.33}.article-list{display:flex;flex-direction:column;gap:var(--section-separation)}.article-list article{display:flex;flex-direction:column;background-color:var(--card-background);box-shadow:var(--shadow-l1);border-radius:var(--card-border-radius);overflow:hidden;transition:box-shadow .3s ease}.article-list article:hover{box-shadow:var(--shadow-l2)}.article-list article .article-image img{width:100%;height:150px;object-fit:cover}@media(min-width:768px){.article-list article .article-image img{height:200px}}@media(min-width:1280px){.article-list article .article-image img{height:250px}}.article-list article:nth-child(5n+1) .article-category a{background:#8ea885;color:#fff}.article-list article:nth-child(5n+2) .article-category a{background:#df7988;color:#fff}.article-list article:nth-child(5n+3) .article-category a{background:#0177b8;color:#fff}.article-list article:nth-child(5n+4) .article-category a{background:#ffb900;color:#fff}.article-list article:nth-child(5n+5) .article-category a{background:#6b69d6;color:#fff}.article-details{display:flex;flex-direction:column;justify-content:center;padding:var(--card-padding);gap:15px}.article-title{font-family:var(--article-font-family);font-weight:600;margin:0;color:var(--card-text-color-main);font-size:2.2rem}@media(min-width:1280px){.article-title{font-size:2.4rem}}.article-title a{color:var(--card-text-color-main)}.article-title a:hover{color:var(--card-text-color-main)}.article-subtitle{font-weight:400;color:var(--card-text-color-secondary);line-height:1.5;margin:0;font-size:1.75rem}@media(min-width:1280px){.article-subtitle{font-size:2rem}}.article-title-wrapper{display:flex;flex-direction:column;gap:8px}.article-time,.article-translations{display:flex;color:var(--card-text-color-tertiary);gap:15px}.article-time svg,.article-translations svg{vertical-align:middle;width:20px;height:20px;stroke-width:1.33;flex-shrink:0}.article-time time,.article-time a,.article-translations time,.article-translations a{font-size:1.4rem;color:var(--card-text-color-tertiary)}.article-time>div,.article-translations>div{display:inline-flex;align-items:center;gap:15px}.article-time{flex-wrap:wrap}.article-translations>div{flex-wrap:wrap}.article-category,.article-tags{display:flex;gap:10px}.article-category a,.article-tags a{color:var(--accent-color-text);background-color:var(--accent-color);padding:8px 16px;border-radius:var(--tag-border-radius);display:inline-block;font-size:1.4rem;transition:background-color .5s ease}.article-category a:hover,.article-tags a:hover{color:var(--accent-color-text);background-color:var(--accent-color-darker)}.article-list--compact{border-radius:var(--card-border-radius);box-shadow:var(--shadow-l1);background-color:var(--card-background);--image-size:50px}@media(min-width:768px){.article-list--compact{--image-size:60px}}.article-list--compact article>a{display:flex;align-items:center;padding:var(--small-card-padding);gap:15px}.article-list--compact article:not(:last-of-type){border-bottom:1.5px solid var(--card-separator-color)}.article-list--compact article .article-details{flex-grow:1;padding:0;min-height:var(--image-size);gap:10px}.article-list--compact article .article-title{margin:0;font-size:1.6rem}@media(min-width:768px){.article-list--compact article .article-title{font-size:1.8rem}}.article-list--compact article .article-image img{width:var(--image-size);height:var(--image-size);object-fit:cover}.article-list--compact article .article-time{font-size:1.4rem}.article-list--compact article .article-preview{font-size:1.4rem;color:var(--card-text-color-tertiary);margin-top:10px;line-height:1.5}.article-list--tile article{border-radius:var(--card-border-radius);overflow:hidden;position:relative;height:350px;width:250px;box-shadow:var(--shadow-l1);transition:box-shadow .3s ease;background-color:var(--card-background)}.article-list--tile article:hover{box-shadow:var(--shadow-l2)}.article-list--tile article.has-image .article-details{background-color:rgba(0,0,0,.25)}.article-list--tile article.has-image .article-title{color:#fff}.article-list--tile article .article-image{position:absolute;top:0;left:0;width:100%;height:100%}.article-list--tile article .article-image img{width:100%;height:100%;object-fit:cover}.article-list--tile article .article-details{border-radius:var(--card-border-radius);position:relative;height:100%;width:100%;display:flex;flex-direction:column;justify-content:flex-end;z-index:2;padding:15px}@media(min-width:640px){.article-list--tile article .article-details{padding:20px}}.article-list--tile article .article-title{font-size:2rem;font-weight:500;color:var(--card-text-color-main)}@media(min-width:640px){.article-list--tile article .article-title{font-size:2.2rem}}.widget{display:flex;flex-direction:column}.widget .widget-icon svg{width:32px;height:32px;stroke-width:1.6;color:var(--body-text-color)}.tagCloud .tagCloud-tags{display:flex;flex-wrap:wrap;gap:10px}.tagCloud .tagCloud-tags a{background:var(--card-background);box-shadow:var(--shadow-l1);border-radius:var(--tag-border-radius);padding:8px 20px;color:var(--card-text-color-main);font-size:1.4rem;transition:box-shadow .3s ease}.tagCloud .tagCloud-tags a:hover{box-shadow:var(--shadow-l2)}.widget.archives .widget-archive--list{border-radius:var(--card-border-radius);box-shadow:var(--shadow-l1);background-color:var(--card-background)}.widget.archives .archives-year:not(:last-of-type){border-bottom:1.5px solid var(--card-separator-color)}.widget.archives .archives-year a{font-size:1.4rem;padding:18px 25px;display:flex}.widget.archives .archives-year a span.year{flex:1;color:var(--card-text-color-main);font-weight:700}.widget.archives .archives-year a span.count{color:var(--card-text-color-tertiary)}footer.site-footer{padding:20px 0 var(--section-separation);font-size:1.4rem;line-height:1.75}footer.site-footer:before{content:"";display:block;height:3px;width:50px;background:var(--body-text-color);margin-bottom:20px}footer.site-footer .copyright{color:var(--accent-color);font-weight:700;margin-bottom:5px}footer.site-footer .powerby{color:var(--body-text-color);font-weight:400;font-size:1.2rem}footer.site-footer .powerby a{color:var(--body-text-color)}.pagination{display:flex;background-color:var(--card-background);box-shadow:var(--shadow-l1);border-radius:var(--card-border-radius);overflow:hidden;flex-wrap:wrap}.pagination .page-link{padding:16px 32px;display:inline-flex;color:var(--card-text-color-secondary)}.pagination .page-link.current{font-weight:700;background-color:var(--card-background-selected);color:var(--card-text-color-main)}@media(min-width:768px){.sidebar.sticky{position:sticky}}.left-sidebar{display:flex;flex-direction:column;flex-shrink:0;align-self:stretch;gap:var(--sidebar-element-separation);max-width:none;width:100%;position:relative;--sidebar-avatar-size:100px;--sidebar-element-separation:20px;--emoji-size:40px;--emoji-font-size:20px}@media(min-width:768px){.left-sidebar{width:auto;padding-top:var(--main-top-padding);padding-bottom:var(--main-top-padding);max-height:100vh}}@media(min-width:1536px){.left-sidebar{--sidebar-avatar-size:120px;--sidebar-element-separation:25px;--emoji-size:40px}}.left-sidebar.sticky{top:0}.left-sidebar.compact{--sidebar-avatar-size:80px;--emoji-size:30px;--emoji-font-size:15px}@media(min-width:1024px){.left-sidebar.compact header{flex-direction:row}}.left-sidebar.compact header .site-meta{gap:5px}.left-sidebar.compact header .site-name{font-size:1.4rem}@media(min-width:1536px){.left-sidebar.compact header .site-name{font-size:1.75rem}}.left-sidebar.compact header .site-description{font-size:1.4rem}.right-sidebar{width:100%;display:none;flex-direction:column;gap:var(--widget-separation)}.right-sidebar.sticky{top:0}@media(min-width:1024px){.right-sidebar{padding-top:var(--main-top-padding);padding-bottom:var(--main-top-padding)}}.sidebar header{z-index:1;transition:box-shadow .5s ease;display:flex;flex-direction:column;gap:var(--sidebar-element-separation)}@media(min-width:768px){.sidebar header{padding:0}}.sidebar header .site-avatar{position:relative;margin:0;width:var(--sidebar-avatar-size);height:var(--sidebar-avatar-size);flex-shrink:0}.sidebar header .site-avatar .site-logo{width:100%;height:100%;border-radius:100%;box-shadow:var(--shadow-l1)}.sidebar header .site-avatar .emoji{position:absolute;width:var(--emoji-size);height:var(--emoji-size);line-height:var(--emoji-size);border-radius:100%;bottom:0;right:0;text-align:center;font-size:var(--emoji-font-size);background-color:var(--card-background);box-shadow:var(--shadow-l2)}.sidebar header .site-meta{display:flex;flex-direction:column;gap:10px;justify-content:center}.sidebar header .site-name{color:var(--accent-color);margin:0;font-size:1.6rem}@media(min-width:1536px){.sidebar header .site-name{font-size:1.8rem}}.sidebar header .site-description{color:var(--body-text-color);font-weight:400;margin:0;font-size:1.4rem}@media(min-width:1536px){.sidebar header .site-description{font-size:1.6rem}}[data-scheme=dark] #dark-mode-toggle{color:var(--accent-color);font-weight:700}[data-scheme=dark] #dark-mode-toggle .icon-tabler-toggle-left{display:none}[data-scheme=dark] #dark-mode-toggle .icon-tabler-toggle-right{display:unset}#dark-mode-toggle{margin-top:auto;color:var(--body-text-color);display:flex;align-items:center;cursor:pointer;gap:var(--menu-icon-separation)}#dark-mode-toggle .icon-tabler-toggle-right{display:none}#i18n-switch{color:var(--body-text-color);display:inline-flex;align-content:center;gap:var(--menu-icon-separation)}#i18n-switch select{border:0;background-color:transparent;color:var(--body-text-color)}#i18n-switch select option{color:var(--card-text-color-main);background-color:var(--card-background)}html{font-size:62.5%;overflow-y:scroll}*{box-sizing:border-box}body{background:var(--body-background);margin:0;font-family:var(--base-font-family);font-size:1.6rem;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{scrollbar-width:auto;scrollbar-color:var(--scrollbar-thumb)transparent}::-webkit-scrollbar{height:auto}::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb)}::-webkit-scrollbar-track{background-color:transparent}.article-page.hide-sidebar-sm .left-sidebar{display:none}@media(min-width:768px){.article-page.hide-sidebar-sm .left-sidebar{display:inherit}}.article-page .main-article{background:var(--card-background);border-radius:var(--card-border-radius);box-shadow:var(--shadow-l1);overflow:hidden}.article-page .main-article .article-header .article-image img{height:auto;width:100%;max-height:50vh;object-fit:cover}.article-page .main-article .article-header .article-details{padding:var(--card-padding);padding-bottom:0}.article-page .main-article .article-content{margin:var(--card-padding)0;color:var(--card-text-color-main)}.article-page .main-article .article-content .footnotes{font-family:var(--base-font-family)}.article-page .main-article .article-content img{max-width:100%;height:auto}.article-page .main-article .article-footer{margin:var(--card-padding);margin-top:0}.article-page .main-article .article-footer section:not(:first-child){margin-top:var(--card-padding)}.article-page .main-article .article-footer section{color:var(--card-text-color-tertiary);text-transform:uppercase;display:flex;align-items:center;font-size:1.4rem;gap:15px}.article-page .main-article .article-footer section svg{width:20px;height:20px;stroke-width:1.33}.article-page .main-article .article-footer .article-tags{flex-wrap:wrap;text-transform:unset}.article-page .main-article .article-footer .article-copyright a,.article-page .main-article .article-footer .article-lastmod a{color:var(--body-text-color)}.article-page .main-article .article-footer .article-copyright a.link,.article-page .main-article .article-footer .article-lastmod a.link{box-shadow:unset}.widget--toc{background-color:var(--card-background);border-radius:var(--card-border-radius);box-shadow:var(--shadow-l1);display:flex;flex-direction:column;color:var(--card-text-color-main);overflow:hidden}.widget--toc ::-webkit-scrollbar-thumb{background-color:var(--card-separator-color)}.widget--toc #TableOfContents{overflow-x:auto;max-height:75vh}.widget--toc #TableOfContents ol,.widget--toc #TableOfContents ul{margin:0;padding:0}.widget--toc #TableOfContents ol{list-style-type:none;counter-reset:item}.widget--toc #TableOfContents ol li a:first-of-type::before{counter-increment:item;content:counters(item,".")". ";font-weight:700;margin-right:5px}.widget--toc #TableOfContents>ul{padding:0 1em}.widget--toc #TableOfContents li{margin:15px 0 15px 20px;padding:5px}.widget--toc #TableOfContents li>ol,.widget--toc #TableOfContents li>ul{margin-top:10px;padding-left:10px;margin-bottom:-5px}.widget--toc #TableOfContents li>ol>li:last-child,.widget--toc #TableOfContents li>ul>li:last-child{margin-bottom:0}.widget--toc #TableOfContents li.active-class>a{border-left:var(--heading-border-size)solid var(--accent-color);font-weight:700}.widget--toc #TableOfContents ul li.active-class>a{display:block}.widget--toc #TableOfContents>ul>li.active-class>a{margin-left:calc(-25px - 1em);padding-left:calc(25px + 1em - var(--heading-border-size))}.widget--toc #TableOfContents>ol>li.active-class>a{margin-left:calc(-9px - 1em);padding-left:calc(9px + 1em - var(--heading-border-size));display:block}.widget--toc #TableOfContents>ul>li>ul>li.active-class>a{margin-left:calc(-60px - 1em);padding-left:calc(60px + 1em - var(--heading-border-size))}.widget--toc #TableOfContents>ol>li>ol>li.active-class>a{margin-left:calc(-44px - 1em);padding-left:calc(44px + 1em - var(--heading-border-size));display:block}.widget--toc #TableOfContents>ul>li>ul>li>ul>li.active-class>a{margin-left:calc(-95px - 1em);padding-left:calc(95px + 1em - var(--heading-border-size))}.widget--toc #TableOfContents>ol>li>ol>li>ol>li.active-class>a{margin-left:calc(-79px - 1em);padding-left:calc(79px + 1em - var(--heading-border-size));display:block}.widget--toc #TableOfContents>ul>li>ul>li>ul>li>ul>li.active-class>a{margin-left:calc(-130px - 1em);padding-left:calc(130px + 1em - var(--heading-border-size))}.widget--toc #TableOfContents>ol>li>ol>li>ol>li>ol>li.active-class>a{margin-left:calc(-114px - 1em);padding-left:calc(114px + 1em - var(--heading-border-size));display:block}.widget--toc #TableOfContents>ul>li>ul>li>ul>li>ul>li>ul>li.active-class>a{margin-left:calc(-165px - 1em);padding-left:calc(165px + 1em - var(--heading-border-size))}.widget--toc #TableOfContents>ol>li>ol>li>ol>li>ol>li>ol>li.active-class>a{margin-left:calc(-149px - 1em);padding-left:calc(149px + 1em - var(--heading-border-size));display:block}.related-content{overflow-x:auto;padding-bottom:15px}.related-content>.flex{float:left}.related-content article{margin-right:15px;flex-shrink:0;overflow:hidden;width:250px;height:150px}.related-content article .article-title{font-size:1.8rem;margin:0}.related-content article.has-image .article-details{padding:20px;background:linear-gradient(0deg,rgba(0,0,0,.25) 0%,rgba(0,0,0,.75) 100%)}.article-content{font-family:var(--article-font-family);font-size:var(--article-font-size);padding:0 var(--card-padding);line-height:var(--article-line-height)}.article-content>p{margin:1.5em 0}.article-content h1,.article-content h2,.article-content h3,.article-content h4,.article-content h5,.article-content h6{margin-inline-start:calc((var(--card-padding)) * -1);padding-inline-start:calc(var(--card-padding) - var(--heading-border-size));border-inline-start:var(--heading-border-size)solid var(--accent-color)}.article-content figure{text-align:center}.article-content figure figcaption{font-size:1.4rem;color:var(--card-text-color-secondary)}.article-content blockquote{position:relative;margin:1.5em 0;border-inline-start:var(--blockquote-border-size)solid var(--card-separator-color);padding:15px calc(var(--card-padding) - var(--blockquote-border-size));background-color:var(--blockquote-background-color)}.article-content blockquote .cite{display:block;text-align:right;font-size:.75em}.article-content blockquote .cite a{text-decoration:underline}.article-content hr{width:100px;margin:40px auto;background:var(--card-text-color-tertiary);height:2px;border:0;opacity:.55}.article-content code{color:var(--code-text-color);background-color:var(--code-background-color);padding:2px 4px;border-radius:var(--tag-border-radius);font-family:var(--code-font-family)}.article-content a,.article-content code{word-break:break-word}.article-content .gallery{position:relative;display:flex;flex-direction:row;justify-content:center;margin:1.5em 0;gap:10px}.article-content .gallery figure{margin:0}.article-content pre{overflow-x:auto;display:block;background-color:var(--pre-background-color);color:var(--pre-text-color);font-family:var(--code-font-family);line-height:1.428571429;word-break:break-all;padding:var(--card-padding)}[dir=rtl] .article-content pre{direction:ltr}.article-content pre code{color:unset;border:none;background:0 0;padding:0}.article-content .highlight{background-color:var(--pre-background-color);padding:var(--card-padding);position:relative}.article-content .highlight:hover .copyCodeButton{opacity:1}[dir=rtl] .article-content .highlight{direction:ltr}.article-content .highlight pre{margin:initial;padding:0;margin:0;width:auto}.article-content .copyCodeButton{position:absolute;top:calc(var(--card-padding));right:calc(var(--card-padding));background:var(--card-background);border:none;box-shadow:var(--shadow-l2);border-radius:var(--tag-border-radius);padding:8px 16px;color:var(--card-text-color-main);cursor:pointer;font-size:14px;opacity:0;transition:opacity .3s ease}.article-content .table-wrapper{padding:0 var(--card-padding);overflow-x:auto;display:block}.article-content table{width:100%;border-collapse:collapse;border-spacing:0;margin-bottom:1.5em;font-size:.96em}.article-content th,.article-content td{text-align:left;padding:4px 8px 4px 10px;border:1px solid var(--table-border-color)}.article-content td{vertical-align:top}.article-content tr:nth-child(even){background-color:var(--tr-even-background-color)}.article-content .twitter-tweet{color:var(--card-text-color-main)}.article-content .video-wrapper{position:relative;width:100%;height:0;padding-bottom:56.25%;overflow:hidden}.article-content .video-wrapper>iframe,.article-content .video-wrapper>video{position:absolute;width:100%;height:100%;left:0;top:0;border:0}.article-content .gitlab-embed-snippets{margin:0!important}.article-content .gitlab-embed-snippets .file-holder.snippet-file-content{margin-block-end:0!important;margin-block-start:0!important;margin-left:calc((var(--card-padding)) * -1)!important;margin-right:calc((var(--card-padding)) * -1)!important;padding:0 var(--card-padding)!important}.article-content blockquote,.article-content figure,.article-content .highlight,.article-content pre,.article-content .gallery,.article-content .video-wrapper,.article-content .table-wrapper,.article-content .s_video_simple{margin-left:calc((var(--card-padding)) * -1);margin-right:calc((var(--card-padding)) * -1);width:calc(100% + var(--card-padding) * 2)}.article-content .katex-display>.katex{overflow-x:auto;overflow-y:hidden}.article-content kbd{border:1px solid var(--kbd-border-color);font-weight:700;font-size:.9em;line-height:1;padding:2px 4px;border-radius:4px;display:inline-block}.section-card{border-radius:var(--card-border-radius);background-color:var(--card-background);padding:var(--small-card-padding);box-shadow:var(--shadow-l1);display:flex;align-items:center;gap:20px;--separation:15px}.section-card .section-term{font-size:2.2rem;margin:0;color:var(--card-text-color-main)}.section-card .section-description{font-weight:400;color:var(--card-text-color-secondary);font-size:1.6rem;margin:0}.section-card .section-details{flex-grow:1;display:flex;flex-direction:column;gap:8px}.section-card .section-image img{width:60px;height:60px}.section-card .section-count{color:var(--card-text-color-tertiary);font-size:1.4rem;margin:0;font-weight:700;text-transform:uppercase}.subsection-list{overflow-x:auto}.subsection-list .article-list--tile{display:flex;padding-bottom:15px}.subsection-list .article-list--tile article{width:250px;height:150px;margin-right:20px;flex-shrink:0}.subsection-list .article-list--tile article .article-title{margin:0;font-size:1.8rem}.subsection-list .article-list--tile article .article-details{padding:20px}.not-found-card{background-color:var(--card-background);box-shadow:var(--shadow-l1);border-radius:var(--card-border-radius);padding:var(--card-padding)}.search-form{position:relative;--button-size:80px}.search-form.widget{--button-size:60px}.search-form.widget label{font-size:1.3rem;top:10px}.search-form.widget input{font-size:1.5rem;padding:30px 20px 15px}.search-form p{position:relative;margin:0}.search-form label{position:absolute;top:15px;inset-inline-start:20px;font-size:1.4rem;color:var(--card-text-color-tertiary)}.search-form input{padding:40px 20px 20px;border-radius:var(--card-border-radius);background-color:var(--card-background);box-shadow:var(--shadow-l1);color:var(--card-text-color-main);width:100%;border:0;-webkit-appearance:none;transition:box-shadow .3s ease;font-size:1.8rem}.search-form input:focus{outline:0;box-shadow:var(--shadow-l2)}.search-form button{position:absolute;inset-inline-end:0;top:0;height:100%;width:var(--button-size);cursor:pointer;background-color:transparent;border:0;padding:0 10px}.search-form button:focus{outline:0}.search-form button:focus svg{stroke-width:2;color:var(--accent-color)}.search-form button svg{color:var(--card-text-color-secondary);stroke-width:1.33;transition:all .3s ease;width:20px;height:20px}a{text-decoration:none;color:var(--accent-color)}a:hover{color:var(--accent-color-darker)}a.link{box-shadow:0 -2px rgba(var(--link-background-color),var(--link-background-opacity))inset;transition:all .3s ease}a.link:hover{box-shadow:0 calc(-1rem * var(--article-line-height))rgba(var(--link-background-color),var(--link-background-opacity-hover))inset}.section-title{text-transform:uppercase;margin-top:0;margin-bottom:10px;display:block;font-size:1.6rem;font-weight:700;color:var(--body-text-color)}.section-title a{color:var(--body-text-color)} \ No newline at end of file +* @link https://github.com/jonsuh/hamburgers*/.hamburger{padding-top:10px;display:inline-block;cursor:pointer;transition-property:opacity,filter;transition-duration:.15s;transition-timing-function:linear;font:inherit;color:inherit;text-transform:none;background-color:transparent;border:0;margin:0;overflow:visible}.hamburger:hover{opacity:.7}.hamburger.is-active:hover{opacity:.7}.hamburger.is-active .hamburger-inner,.hamburger.is-active .hamburger-inner::before,.hamburger.is-active .hamburger-inner::after{background-color:#000}.hamburger-box{width:30px;height:24px;display:inline-block;position:relative}.hamburger-inner{display:block;top:50%;margin-top:-2px}.hamburger-inner,.hamburger-inner::before,.hamburger-inner::after{width:30px;height:2px;background-color:var(--card-text-color-main);border-radius:4px;position:absolute;transition-property:transform;transition-duration:.15s;transition-timing-function:ease}.hamburger-inner::before,.hamburger-inner::after{content:"";display:block}.hamburger-inner::before{top:-10px}.hamburger-inner::after{bottom:-10px}.hamburger--spin .hamburger-inner{transition-duration:.22s;transition-timing-function:cubic-bezier(.55,.055,.675,.19)}.hamburger--spin .hamburger-inner::before{transition:top .1s .25s ease-in,opacity .1s ease-in}.hamburger--spin .hamburger-inner::after{transition:bottom .1s .25s ease-in,transform .22s cubic-bezier(.55,.055,.675,.19)}.hamburger--spin.is-active .hamburger-inner{transform:rotate(225deg);transition-delay:.12s;transition-timing-function:cubic-bezier(.215,.61,.355,1)}.hamburger--spin.is-active .hamburger-inner::before{top:0;opacity:0;transition:top .1s ease-out,opacity .1s .12s ease-out}.hamburger--spin.is-active .hamburger-inner::after{bottom:0;transform:rotate(-90deg);transition:bottom .1s ease-out,transform .22s .12s cubic-bezier(.215,.61,.355,1)}#toggle-menu{background:0 0;border:none;position:absolute;right:0;top:0;z-index:2;cursor:pointer;outline:none}[dir=rtl] #toggle-menu{left:0;right:auto}@media(min-width:768px){#toggle-menu{display:none}}#toggle-menu.is-active .hamburger-inner,#toggle-menu.is-active .hamburger-inner::before,#toggle-menu.is-active .hamburger-inner::after{background-color:var(--accent-color)}#main-menu{list-style:none;overflow-y:auto;flex-grow:1;font-size:1.4rem;background-color:var(--card-background);box-shadow:var(--shadow-l1);display:none;margin:0 calc(var(--container-padding) * -1);padding:30px}@media(min-width:1280px){#main-menu{padding:15px 0}}#main-menu,#main-menu .menu-bottom-section ol{flex-direction:column;gap:30px}@media(min-width:1280px){#main-menu,#main-menu .menu-bottom-section ol{gap:25px}}#main-menu.show{display:flex}@media(min-width:768px){#main-menu{align-items:flex-end;display:flex;background-color:transparent;padding:0;box-shadow:none;margin:0}}#main-menu li{position:relative;vertical-align:middle;padding:0}@media(min-width:768px){#main-menu li{width:100%}}#main-menu li svg{stroke:currentColor;stroke-width:1.33;width:20px;height:20px}#main-menu li a{height:100%;display:inline-flex;align-items:center;color:var(--body-text-color);gap:var(--menu-icon-separation)}#main-menu li span{flex:1}#main-menu li.current a{color:var(--accent-color);font-weight:700}#main-menu li.menu-bottom-section{margin-top:auto}#main-menu li.menu-bottom-section ol{display:flex;padding-left:0}.menu-social{list-style:none;padding:0;margin:0;display:flex;flex-direction:row;gap:10px}.menu-social svg{width:24px;height:24px;stroke:var(--body-text-color);stroke-width:1.33}.article-list{display:flex;flex-direction:column;gap:var(--section-separation)}.article-list article{display:flex;flex-direction:column;background-color:var(--card-background);box-shadow:var(--shadow-l1);border-radius:var(--card-border-radius);overflow:hidden;transition:box-shadow .3s ease}.article-list article:hover{box-shadow:var(--shadow-l2)}.article-list article .article-image img{width:100%;height:150px;object-fit:cover}@media(min-width:768px){.article-list article .article-image img{height:200px}}@media(min-width:1280px){.article-list article .article-image img{height:250px}}.article-list article:nth-child(5n+1) .article-category a{background:#8ea885;color:#fff}.article-list article:nth-child(5n+2) .article-category a{background:#df7988;color:#fff}.article-list article:nth-child(5n+3) .article-category a{background:#0177b8;color:#fff}.article-list article:nth-child(5n+4) .article-category a{background:#ffb900;color:#fff}.article-list article:nth-child(5n+5) .article-category a{background:#6b69d6;color:#fff}.article-details{display:flex;flex-direction:column;justify-content:center;padding:var(--card-padding);gap:15px}.article-title{font-family:var(--article-font-family);font-weight:600;margin:0;color:var(--card-text-color-main);font-size:2.2rem}@media(min-width:1280px){.article-title{font-size:2.4rem}}.article-title a{color:var(--card-text-color-main)}.article-title a:hover{color:var(--card-text-color-main)}.article-subtitle{font-weight:400;color:var(--card-text-color-secondary);line-height:1.5;margin:0;font-size:1.75rem}@media(min-width:1280px){.article-subtitle{font-size:2rem}}.article-title-wrapper{display:flex;flex-direction:column;gap:8px}.article-time,.article-translations{display:flex;color:var(--card-text-color-tertiary);gap:15px}.article-time svg,.article-translations svg{vertical-align:middle;width:20px;height:20px;stroke-width:1.33;flex-shrink:0}.article-time time,.article-time a,.article-translations time,.article-translations a{font-size:1.4rem;color:var(--card-text-color-tertiary)}.article-time>div,.article-translations>div{display:inline-flex;align-items:center;gap:15px}.article-time{flex-wrap:wrap}.article-translations>div{flex-wrap:wrap}.article-category,.article-tags{display:flex;gap:10px;flex-wrap:wrap}.article-category a,.article-tags a{color:var(--accent-color-text);background-color:var(--accent-color);padding:8px 16px;border-radius:var(--tag-border-radius);display:inline-block;font-size:1.4rem;transition:background-color .5s ease}.article-category a:hover,.article-tags a:hover{color:var(--accent-color-text);background-color:var(--accent-color-darker)}.article-list--compact{border-radius:var(--card-border-radius);box-shadow:var(--shadow-l1);background-color:var(--card-background);--image-size:50px}@media(min-width:768px){.article-list--compact{--image-size:60px}}.article-list--compact article>a{display:flex;align-items:center;padding:var(--small-card-padding);gap:15px}.article-list--compact article:not(:last-of-type){border-bottom:1.5px solid var(--card-separator-color)}.article-list--compact article .article-details{flex-grow:1;padding:0;min-height:var(--image-size);gap:10px}.article-list--compact article .article-title{margin:0;font-size:1.6rem}@media(min-width:768px){.article-list--compact article .article-title{font-size:1.8rem}}.article-list--compact article .article-image img{width:var(--image-size);height:var(--image-size);object-fit:cover}.article-list--compact article .article-time{font-size:1.4rem}.article-list--compact article .article-preview{font-size:1.4rem;color:var(--card-text-color-tertiary);margin-top:10px;line-height:1.5}.article-list--tile article{border-radius:var(--card-border-radius);overflow:hidden;position:relative;height:350px;width:250px;box-shadow:var(--shadow-l1);transition:box-shadow .3s ease;background-color:var(--card-background)}.article-list--tile article:hover{box-shadow:var(--shadow-l2)}.article-list--tile article.has-image .article-details{background-color:rgba(0,0,0,.25)}.article-list--tile article.has-image .article-title{color:#fff}.article-list--tile article .article-image{position:absolute;top:0;left:0;width:100%;height:100%}.article-list--tile article .article-image img{width:100%;height:100%;object-fit:cover}.article-list--tile article .article-details{border-radius:var(--card-border-radius);position:relative;height:100%;width:100%;display:flex;flex-direction:column;justify-content:flex-end;z-index:2;padding:15px}@media(min-width:640px){.article-list--tile article .article-details{padding:20px}}.article-list--tile article .article-title{font-size:2rem;font-weight:500;color:var(--card-text-color-main)}@media(min-width:640px){.article-list--tile article .article-title{font-size:2.2rem}}.widget{display:flex;flex-direction:column}.widget .widget-icon svg{width:32px;height:32px;stroke-width:1.6;color:var(--body-text-color)}.tagCloud .tagCloud-tags{display:flex;flex-wrap:wrap;gap:10px}.tagCloud .tagCloud-tags a{background:var(--card-background);box-shadow:var(--shadow-l1);border-radius:var(--tag-border-radius);padding:8px 20px;color:var(--card-text-color-main);font-size:1.4rem;transition:box-shadow .3s ease}.tagCloud .tagCloud-tags a:hover{box-shadow:var(--shadow-l2)}.widget.archives .widget-archive--list{border-radius:var(--card-border-radius);box-shadow:var(--shadow-l1);background-color:var(--card-background)}.widget.archives .archives-year:not(:last-of-type){border-bottom:1.5px solid var(--card-separator-color)}.widget.archives .archives-year a{font-size:1.4rem;padding:18px 25px;display:flex}.widget.archives .archives-year a span.year{flex:1;color:var(--card-text-color-main);font-weight:700}.widget.archives .archives-year a span.count{color:var(--card-text-color-tertiary)}footer.site-footer{padding:20px 0 var(--section-separation);font-size:1.4rem;line-height:1.75}footer.site-footer:before{content:"";display:block;height:3px;width:50px;background:var(--body-text-color);margin-bottom:20px}footer.site-footer .copyright{color:var(--accent-color);font-weight:700;margin-bottom:5px}footer.site-footer .powerby{color:var(--body-text-color);font-weight:400;font-size:1.2rem}footer.site-footer .powerby a{color:var(--body-text-color)}.pagination{display:flex;background-color:var(--card-background);box-shadow:var(--shadow-l1);border-radius:var(--card-border-radius);overflow:hidden;flex-wrap:wrap}.pagination .page-link{padding:16px 32px;display:inline-flex;color:var(--card-text-color-secondary)}.pagination .page-link.current{font-weight:700;background-color:var(--card-background-selected);color:var(--card-text-color-main)}@media(min-width:768px){.sidebar.sticky{position:sticky}}.left-sidebar{display:flex;flex-direction:column;flex-shrink:0;align-self:stretch;gap:var(--sidebar-element-separation);max-width:none;width:100%;position:relative;--sidebar-avatar-size:100px;--sidebar-element-separation:20px;--emoji-size:40px;--emoji-font-size:20px}@media(min-width:768px){.left-sidebar{width:auto;padding-top:var(--main-top-padding);padding-bottom:var(--main-top-padding);max-height:100vh}}@media(min-width:1536px){.left-sidebar{--sidebar-avatar-size:120px;--sidebar-element-separation:25px;--emoji-size:40px}}.left-sidebar.sticky{top:0}.left-sidebar.compact{--sidebar-avatar-size:80px;--emoji-size:30px;--emoji-font-size:15px}@media(min-width:1024px){.left-sidebar.compact header{flex-direction:row}}.left-sidebar.compact header .site-meta{gap:5px}.left-sidebar.compact header .site-name{font-size:1.4rem}@media(min-width:1536px){.left-sidebar.compact header .site-name{font-size:1.75rem}}.left-sidebar.compact header .site-description{font-size:1.4rem}.right-sidebar{width:100%;display:none;flex-direction:column;gap:var(--widget-separation)}.right-sidebar.sticky{top:0}@media(min-width:1024px){.right-sidebar{padding-top:var(--main-top-padding);padding-bottom:var(--main-top-padding)}}.sidebar header{z-index:1;transition:box-shadow .5s ease;display:flex;flex-direction:column;gap:var(--sidebar-element-separation)}@media(min-width:768px){.sidebar header{padding:0}}.sidebar header .site-avatar{position:relative;margin:0;width:var(--sidebar-avatar-size);height:var(--sidebar-avatar-size);flex-shrink:0}.sidebar header .site-avatar .site-logo{width:100%;height:100%;border-radius:100%;box-shadow:var(--shadow-l1)}.sidebar header .site-avatar .emoji{position:absolute;width:var(--emoji-size);height:var(--emoji-size);line-height:var(--emoji-size);border-radius:100%;bottom:0;right:0;text-align:center;font-size:var(--emoji-font-size);background-color:var(--card-background);box-shadow:var(--shadow-l2)}.sidebar header .site-meta{display:flex;flex-direction:column;gap:10px;justify-content:center}.sidebar header .site-name{color:var(--accent-color);margin:0;font-size:1.6rem}@media(min-width:1536px){.sidebar header .site-name{font-size:1.8rem}}.sidebar header .site-description{color:var(--body-text-color);font-weight:400;margin:0;font-size:1.4rem}@media(min-width:1536px){.sidebar header .site-description{font-size:1.6rem}}[data-scheme=dark] #dark-mode-toggle{color:var(--accent-color);font-weight:700}[data-scheme=dark] #dark-mode-toggle .icon-tabler-toggle-left{display:none}[data-scheme=dark] #dark-mode-toggle .icon-tabler-toggle-right{display:unset}#dark-mode-toggle{margin-top:auto;color:var(--body-text-color);display:flex;align-items:center;cursor:pointer;gap:var(--menu-icon-separation)}#dark-mode-toggle .icon-tabler-toggle-right{display:none}#i18n-switch{color:var(--body-text-color);display:inline-flex;align-content:center;gap:var(--menu-icon-separation)}#i18n-switch select{border:0;background-color:transparent;color:var(--body-text-color)}#i18n-switch select option{color:var(--card-text-color-main);background-color:var(--card-background)}html{font-size:62.5%;overflow-y:scroll}*{box-sizing:border-box}body{background:var(--body-background);margin:0;font-family:var(--base-font-family);font-size:1.6rem;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{scrollbar-width:auto;scrollbar-color:var(--scrollbar-thumb)transparent}::-webkit-scrollbar{height:auto}::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb)}::-webkit-scrollbar-track{background-color:transparent}.article-page.hide-sidebar-sm .left-sidebar{display:none}@media(min-width:768px){.article-page.hide-sidebar-sm .left-sidebar{display:inherit}}.article-page .main-article{background:var(--card-background);border-radius:var(--card-border-radius);box-shadow:var(--shadow-l1);overflow:hidden}.article-page .main-article .article-header .article-image img{height:auto;width:100%;max-height:50vh;object-fit:cover}.article-page .main-article .article-header .article-details{padding:var(--card-padding);padding-bottom:0}.article-page .main-article .article-content{margin:var(--card-padding)0;color:var(--card-text-color-main)}.article-page .main-article .article-content .footnotes{font-family:var(--base-font-family)}.article-page .main-article .article-content img{max-width:100%;height:auto}.article-page .main-article .article-footer{margin:var(--card-padding);margin-top:0}.article-page .main-article .article-footer section:not(:first-child){margin-top:var(--card-padding)}.article-page .main-article .article-footer section{color:var(--card-text-color-tertiary);text-transform:uppercase;display:flex;align-items:center;font-size:1.4rem;gap:15px}.article-page .main-article .article-footer section svg{width:20px;height:20px;stroke-width:1.33}.article-page .main-article .article-footer .article-tags{text-transform:unset}.article-page .main-article .article-footer .article-copyright a,.article-page .main-article .article-footer .article-lastmod a{color:var(--body-text-color)}.article-page .main-article .article-footer .article-copyright a.link,.article-page .main-article .article-footer .article-lastmod a.link{box-shadow:unset}.widget--toc{background-color:var(--card-background);border-radius:var(--card-border-radius);box-shadow:var(--shadow-l1);display:flex;flex-direction:column;color:var(--card-text-color-main);overflow:hidden}.widget--toc ::-webkit-scrollbar-thumb{background-color:var(--card-separator-color)}.widget--toc #TableOfContents{overflow-x:auto;max-height:75vh}.widget--toc #TableOfContents ol,.widget--toc #TableOfContents ul{margin:0;padding:0}.widget--toc #TableOfContents ol{list-style-type:none;counter-reset:item}.widget--toc #TableOfContents ol li a:first-of-type::before{counter-increment:item;content:counters(item,".")". ";font-weight:700;margin-right:5px}.widget--toc #TableOfContents>ul{padding:0 1em}.widget--toc #TableOfContents li{margin:15px 0 15px 20px;padding:5px}.widget--toc #TableOfContents li>ol,.widget--toc #TableOfContents li>ul{margin-top:10px;padding-left:10px;margin-bottom:-5px}.widget--toc #TableOfContents li>ol>li:last-child,.widget--toc #TableOfContents li>ul>li:last-child{margin-bottom:0}.widget--toc #TableOfContents li.active-class>a{border-left:var(--heading-border-size)solid var(--accent-color);font-weight:700}.widget--toc #TableOfContents ul li.active-class>a{display:block}.widget--toc #TableOfContents>ul>li.active-class>a{margin-left:calc(-25px - 1em);padding-left:calc(25px + 1em - var(--heading-border-size))}.widget--toc #TableOfContents>ol>li.active-class>a{margin-left:calc(-9px - 1em);padding-left:calc(9px + 1em - var(--heading-border-size));display:block}.widget--toc #TableOfContents>ul>li>ul>li.active-class>a{margin-left:calc(-60px - 1em);padding-left:calc(60px + 1em - var(--heading-border-size))}.widget--toc #TableOfContents>ol>li>ol>li.active-class>a{margin-left:calc(-44px - 1em);padding-left:calc(44px + 1em - var(--heading-border-size));display:block}.widget--toc #TableOfContents>ul>li>ul>li>ul>li.active-class>a{margin-left:calc(-95px - 1em);padding-left:calc(95px + 1em - var(--heading-border-size))}.widget--toc #TableOfContents>ol>li>ol>li>ol>li.active-class>a{margin-left:calc(-79px - 1em);padding-left:calc(79px + 1em - var(--heading-border-size));display:block}.widget--toc #TableOfContents>ul>li>ul>li>ul>li>ul>li.active-class>a{margin-left:calc(-130px - 1em);padding-left:calc(130px + 1em - var(--heading-border-size))}.widget--toc #TableOfContents>ol>li>ol>li>ol>li>ol>li.active-class>a{margin-left:calc(-114px - 1em);padding-left:calc(114px + 1em - var(--heading-border-size));display:block}.widget--toc #TableOfContents>ul>li>ul>li>ul>li>ul>li>ul>li.active-class>a{margin-left:calc(-165px - 1em);padding-left:calc(165px + 1em - var(--heading-border-size))}.widget--toc #TableOfContents>ol>li>ol>li>ol>li>ol>li>ol>li.active-class>a{margin-left:calc(-149px - 1em);padding-left:calc(149px + 1em - var(--heading-border-size));display:block}.related-content{overflow-x:auto;padding-bottom:15px}.related-content>.flex{float:left}.related-content article{margin-right:15px;flex-shrink:0;overflow:hidden;width:250px;height:150px}.related-content article .article-title{font-size:1.8rem;margin:0}.related-content article.has-image .article-details{padding:20px;background:linear-gradient(0deg,rgba(0,0,0,.25) 0%,rgba(0,0,0,.75) 100%)}.article-content{font-family:var(--article-font-family);font-size:var(--article-font-size);padding:0 var(--card-padding);line-height:var(--article-line-height)}.article-content>p{margin:1.5em 0}.article-content h1,.article-content h2,.article-content h3,.article-content h4,.article-content h5,.article-content h6{margin-inline-start:calc((var(--card-padding)) * -1);padding-inline-start:calc(var(--card-padding) - var(--heading-border-size));border-inline-start:var(--heading-border-size)solid var(--accent-color);position:relative}.article-content h1 a.header-anchor,.article-content h2 a.header-anchor,.article-content h3 a.header-anchor,.article-content h4 a.header-anchor,.article-content h5 a.header-anchor,.article-content h6 a.header-anchor{transition:opacity .3s ease;opacity:0;position:absolute;left:0;width:var(--card-padding);text-align:center;color:var(--accent-color)}.article-content h1 a.header-anchor:before,.article-content h2 a.header-anchor:before,.article-content h3 a.header-anchor:before,.article-content h4 a.header-anchor:before,.article-content h5 a.header-anchor:before,.article-content h6 a.header-anchor:before{content:"#"}.article-content h1:hover a.header-anchor,.article-content h1:focus a.header-anchor,.article-content h2:hover a.header-anchor,.article-content h2:focus a.header-anchor,.article-content h3:hover a.header-anchor,.article-content h3:focus a.header-anchor,.article-content h4:hover a.header-anchor,.article-content h4:focus a.header-anchor,.article-content h5:hover a.header-anchor,.article-content h5:focus a.header-anchor,.article-content h6:hover a.header-anchor,.article-content h6:focus a.header-anchor{opacity:1}.article-content figure{text-align:center}.article-content figure figcaption{font-size:1.4rem;color:var(--card-text-color-secondary)}.article-content blockquote{position:relative;margin:1.5em 0;border-inline-start:var(--blockquote-border-size)solid var(--card-separator-color);padding:15px calc(var(--card-padding) - var(--blockquote-border-size));background-color:var(--blockquote-background-color)}.article-content blockquote .cite{display:block;text-align:right;font-size:.75em}.article-content blockquote .cite a{text-decoration:underline}.article-content hr{width:100px;margin:40px auto;background:var(--card-text-color-tertiary);height:2px;border:0;opacity:.55}.article-content code{color:var(--code-text-color);background-color:var(--code-background-color);padding:2px 4px;border-radius:var(--tag-border-radius);font-family:var(--code-font-family)}.article-content a,.article-content code{word-break:break-word}.article-content .gallery{position:relative;display:flex;flex-direction:row;justify-content:center;margin:1.5em 0;gap:10px}.article-content .gallery figure{margin:0}.article-content pre{overflow-x:auto;display:block;background-color:var(--pre-background-color);color:var(--pre-text-color);font-family:var(--code-font-family);line-height:1.428571429;word-break:break-all;padding:var(--card-padding)}[dir=rtl] .article-content pre{direction:ltr}.article-content pre code{color:unset;border:none;background:0 0;padding:0}.article-content .highlight{background-color:var(--pre-background-color);padding:var(--card-padding);position:relative}.article-content .highlight:hover .copyCodeButton{opacity:1}[dir=rtl] .article-content .highlight{direction:ltr}.article-content .highlight pre{margin:initial;padding:0;margin:0;width:auto}.article-content .copyCodeButton{position:absolute;top:calc(var(--card-padding));right:calc(var(--card-padding));background:var(--card-background);border:none;box-shadow:var(--shadow-l2);border-radius:var(--tag-border-radius);padding:8px 16px;color:var(--card-text-color-main);cursor:pointer;font-size:14px;opacity:0;transition:opacity .3s ease}.article-content .table-wrapper{padding:0 var(--card-padding);overflow-x:auto;display:block}.article-content table{width:100%;border-collapse:collapse;border-spacing:0;margin-bottom:1.5em;font-size:.96em}.article-content th,.article-content td{text-align:left;padding:4px 8px 4px 10px;border:1px solid var(--table-border-color)}.article-content td{vertical-align:top}.article-content tr:nth-child(even){background-color:var(--tr-even-background-color)}.article-content .twitter-tweet{color:var(--card-text-color-main)}.article-content .video-wrapper{position:relative;width:100%;height:0;padding-bottom:56.25%;overflow:hidden}.article-content .video-wrapper>iframe,.article-content .video-wrapper>video{position:absolute;width:100%;height:100%;left:0;top:0;border:0}.article-content .gitlab-embed-snippets{margin:0!important}.article-content .gitlab-embed-snippets .file-holder.snippet-file-content{margin-block-end:0!important;margin-block-start:0!important;margin-left:calc((var(--card-padding)) * -1)!important;margin-right:calc((var(--card-padding)) * -1)!important;padding:0 var(--card-padding)!important}.article-content blockquote,.article-content figure,.article-content .highlight,.article-content pre,.article-content .gallery,.article-content .video-wrapper,.article-content .table-wrapper,.article-content .s_video_simple{margin-left:calc((var(--card-padding)) * -1);margin-right:calc((var(--card-padding)) * -1);width:calc(100% + var(--card-padding) * 2)}.article-content .katex-display>.katex{overflow-x:auto;overflow-y:hidden}.article-content kbd{border:1px solid var(--kbd-border-color);font-weight:700;font-size:.9em;line-height:1;padding:2px 4px;border-radius:4px;display:inline-block}.section-card{border-radius:var(--card-border-radius);background-color:var(--card-background);padding:var(--small-card-padding);box-shadow:var(--shadow-l1);display:flex;align-items:center;gap:20px;--separation:15px}.section-card .section-term{font-size:2.2rem;margin:0;color:var(--card-text-color-main)}.section-card .section-description{font-weight:400;color:var(--card-text-color-secondary);font-size:1.6rem;margin:0}.section-card .section-details{flex-grow:1;display:flex;flex-direction:column;gap:8px}.section-card .section-image img{width:60px;height:60px}.section-card .section-count{color:var(--card-text-color-tertiary);font-size:1.4rem;margin:0;font-weight:700;text-transform:uppercase}.subsection-list{overflow-x:auto}.subsection-list .article-list--tile{display:flex;padding-bottom:15px}.subsection-list .article-list--tile article{width:250px;height:150px;margin-right:20px;flex-shrink:0}.subsection-list .article-list--tile article .article-title{margin:0;font-size:1.8rem}.subsection-list .article-list--tile article .article-details{padding:20px}.not-found-card{background-color:var(--card-background);box-shadow:var(--shadow-l1);border-radius:var(--card-border-radius);padding:var(--card-padding)}.search-form{position:relative;--button-size:80px}.search-form.widget{--button-size:60px}.search-form.widget label{font-size:1.3rem;top:10px}.search-form.widget input{font-size:1.5rem;padding:30px 20px 15px}.search-form p{position:relative;margin:0}.search-form label{position:absolute;top:15px;inset-inline-start:20px;font-size:1.4rem;color:var(--card-text-color-tertiary)}.search-form input{padding:40px 20px 20px;border-radius:var(--card-border-radius);background-color:var(--card-background);box-shadow:var(--shadow-l1);color:var(--card-text-color-main);width:100%;border:0;-webkit-appearance:none;transition:box-shadow .3s ease;font-size:1.8rem}.search-form input:focus{outline:0;box-shadow:var(--shadow-l2)}.search-form button{position:absolute;inset-inline-end:0;top:0;height:100%;width:var(--button-size);cursor:pointer;background-color:transparent;border:0;padding:0 10px}.search-form button:focus{outline:0}.search-form button:focus svg{stroke-width:2;color:var(--accent-color)}.search-form button svg{color:var(--card-text-color-secondary);stroke-width:1.33;transition:all .3s ease;width:20px;height:20px}a{text-decoration:none;color:var(--accent-color)}a:hover{color:var(--accent-color-darker)}a.link{box-shadow:0 -2px rgba(var(--link-background-color),var(--link-background-opacity))inset;transition:all .3s ease}a.link:hover{box-shadow:0 calc(-1rem * var(--article-line-height))rgba(var(--link-background-color),var(--link-background-opacity-hover))inset}.section-title{text-transform:uppercase;margin-top:0;margin-bottom:10px;display:block;font-size:1.6rem;font-weight:700;color:var(--body-text-color)}.section-title a{color:var(--body-text-color)} \ No newline at end of file diff --git a/resources/_gen/assets/scss/style.scss_77b10c8e87ff110a62c52933fe3f7f11.json b/resources/_gen/assets/scss/style.scss_77b10c8e87ff110a62c52933fe3f7f11.json index 4fcb1ea..7d2227f 100644 --- a/resources/_gen/assets/scss/style.scss_77b10c8e87ff110a62c52933fe3f7f11.json +++ b/resources/_gen/assets/scss/style.scss_77b10c8e87ff110a62c52933fe3f7f11.json @@ -1 +1 @@ -{"Target":"/scss/style.min.abbd69b2908fdfcd5179898beaafd374514a86538d81639ddd2c58c06ae54e40.css","MediaType":"text/css","Data":{"Integrity":"sha256-q71pspCP381ReYmL6q/TdFFKhlONgWOd3SxYwGrlTkA="}} \ No newline at end of file +{"Target":"/scss/style.min.663803bebe609202d5b39d848f2d7c2dc8b598a2d879efa079fa88893d29c49c.css","MediaType":"text/css","Data":{"Integrity":"sha256-ZjgDvr5gkgLVs52Ejy18Lci1mKLYee+gefqIiT0pxJw="}} \ No newline at end of file

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 literal 0 HcmV?d00001 diff --git a/docs/images/post/OIG2.jpeg b/docs/images/post/OIG2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..c2b2762ad842770c58559e20c22e965d848cf03d GIT binary patch literal 236468 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 z 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